diff --git a/.out/AccountHelper.sol/AccountHelper.json b/.out/AccountHelper.sol/AccountHelper.json index 6bac79e0b..4c5199797 100644 --- a/.out/AccountHelper.sol/AccountHelper.json +++ b/.out/AccountHelper.sol/AccountHelper.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"isSystemActor","inputs":[{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x60808060405234601857608e908161001e823930815050f35b600080fdfe6080806040526004361015601257600080fd5b60003560e01c635d3f8a6914602657600080fd5b60203660031901126053576004356001600160a01b038116919082900360535760209160ff60981b148152f35b600080fdfea2646970667358221220a68cfeb6ce6fe5ab87c1d872ad609dc3c957d43ea1ed4e786fd87e5275e58c6164736f6c63430008130033","sourceMap":"208:159:59:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b60003560e01c635d3f8a6914602657600080fd5b60203660031901126053576004356001600160a01b038116919082900360535760209160ff60981b148152f35b600080fdfea2646970667358221220a68cfeb6ce6fe5ab87c1d872ad609dc3c957d43ea1ed4e786fd87e5275e58c6164736f6c63430008130033","sourceMap":"208:159:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;208:159:59;;;;;;-1:-1:-1;;;;;208:159:59;;;;;;;;;;540:42:1;;;;323:35:59;208:159;;;;;;","linkReferences":{}},"methodIdentifiers":{"isSystemActor(address)":"5d3f8a69"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isSystemActor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for checking account type\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/AccountHelper.sol\":\"AccountHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"pure","type":"function","name":"isSystemActor","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/AccountHelper.sol":"AccountHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/AccountHelper.sol","id":40448,"exportedSymbols":{"AccountHelper":[40447],"FilAddress":[1428]},"nodeType":"SourceUnit","src":"46:322:59","nodes":[{"id":40430,"nodeType":"PragmaDirective","src":"46:23:59","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40432,"nodeType":"ImportDirective","src":"71:56:59","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40448,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":40431,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"79:10:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40447,"nodeType":"ContractDefinition","src":"208:159:59","nodes":[{"id":40446,"nodeType":"FunctionDefinition","src":"236:129:59","nodes":[],"body":{"id":40445,"nodeType":"Block","src":"306:59:59","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":40443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40440,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40435,"src":"323:8:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":40441,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"335:10:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":40442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"346:12:59","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"335:23:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"323:35:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40439,"id":40444,"nodeType":"Return","src":"316:42:59"}]},"functionSelector":"5d3f8a69","implemented":true,"kind":"function","modifiers":[],"name":"isSystemActor","nameLocation":"245:13:59","parameters":{"id":40436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40435,"mutability":"mutable","name":"_address","nameLocation":"267:8:59","nodeType":"VariableDeclaration","scope":40446,"src":"259:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40434,"name":"address","nodeType":"ElementaryTypeName","src":"259:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"258:18:59"},"returnParameters":{"id":40439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40446,"src":"300:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40437,"name":"bool","nodeType":"ElementaryTypeName","src":"300:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"299:6:59"},"scope":40447,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"AccountHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":40433,"nodeType":"StructuredDocumentation","src":"129:79:59","text":"@title Helper library for checking account type\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[40447],"name":"AccountHelper","nameLocation":"216:13:59","scope":40448,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":59} \ No newline at end of file +{"abi":[{"type":"function","name":"isSystemActor","inputs":[{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x60808060405234601857608e908161001e823930815050f35b600080fdfe6080806040526004361015601257600080fd5b60003560e01c635d3f8a6914602657600080fd5b60203660031901126053576004356001600160a01b038116919082900360535760209160ff60981b148152f35b600080fdfea2646970667358221220a68cfeb6ce6fe5ab87c1d872ad609dc3c957d43ea1ed4e786fd87e5275e58c6164736f6c63430008130033","sourceMap":"208:159:59:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b60003560e01c635d3f8a6914602657600080fd5b60203660031901126053576004356001600160a01b038116919082900360535760209160ff60981b148152f35b600080fdfea2646970667358221220a68cfeb6ce6fe5ab87c1d872ad609dc3c957d43ea1ed4e786fd87e5275e58c6164736f6c63430008130033","sourceMap":"208:159:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;208:159:59;;;;;;-1:-1:-1;;;;;208:159:59;;;;;;;;;;540:42:1;;;;323:35:59;208:159;;;;;;","linkReferences":{}},"methodIdentifiers":{"isSystemActor(address)":"5d3f8a69"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isSystemActor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for checking account type\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/AccountHelper.sol\":\"AccountHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"pure","type":"function","name":"isSystemActor","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/AccountHelper.sol":"AccountHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/AccountHelper.sol","id":40392,"exportedSymbols":{"AccountHelper":[40391],"FilAddress":[1428]},"nodeType":"SourceUnit","src":"46:322:59","nodes":[{"id":40374,"nodeType":"PragmaDirective","src":"46:23:59","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40376,"nodeType":"ImportDirective","src":"71:56:59","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40392,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":40375,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"79:10:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40391,"nodeType":"ContractDefinition","src":"208:159:59","nodes":[{"id":40390,"nodeType":"FunctionDefinition","src":"236:129:59","nodes":[],"body":{"id":40389,"nodeType":"Block","src":"306:59:59","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":40387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40384,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40379,"src":"323:8:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":40385,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"335:10:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":40386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"346:12:59","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"335:23:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"323:35:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40383,"id":40388,"nodeType":"Return","src":"316:42:59"}]},"functionSelector":"5d3f8a69","implemented":true,"kind":"function","modifiers":[],"name":"isSystemActor","nameLocation":"245:13:59","parameters":{"id":40380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40379,"mutability":"mutable","name":"_address","nameLocation":"267:8:59","nodeType":"VariableDeclaration","scope":40390,"src":"259:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40378,"name":"address","nodeType":"ElementaryTypeName","src":"259:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"258:18:59"},"returnParameters":{"id":40383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40390,"src":"300:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40381,"name":"bool","nodeType":"ElementaryTypeName","src":"300:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"299:6:59"},"scope":40391,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"AccountHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":40377,"nodeType":"StructuredDocumentation","src":"129:79:59","text":"@title Helper library for checking account type\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[40391],"name":"AccountHelper","nameLocation":"216:13:59","scope":40392,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":59} \ No newline at end of file diff --git a/.out/BottomUpRouterFacet.sol/BottomUpRouterFacet.json b/.out/BottomUpRouterFacet.sol/BottomUpRouterFacet.json index 698f69bee..3b015ebe8 100644 --- a/.out/BottomUpRouterFacet.sol/BottomUpRouterFacet.json +++ b/.out/BottomUpRouterFacet.sol/BottomUpRouterFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addBottomUpMsgBatchSignature","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"membershipProof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pruneBottomUpMsgBatches","inputs":[{"name":"newRetentionHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"BatchAlreadyExists","inputs":[]},{"type":"error","name":"BatchNotCreated","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"FailedAddIncompleteQuorum","inputs":[]},{"type":"error","name":"FailedAddSignatory","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"FailedRemoveIncompleteQuorum","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidBatchSource","inputs":[]},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgNonce","inputs":[]},{"type":"error","name":"InvalidRetentionHeight","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"NotAuthorized","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"NotEnoughSubnetCircSupply","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"NotSystemActor","inputs":[]},{"type":"error","name":"QuorumAlreadyProcessed","inputs":[]},{"type":"error","name":"SignatureReplay","inputs":[]},{"type":"error","name":"SubnetNotFound","inputs":[]},{"type":"error","name":"ZeroMembershipWeight","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657612a56908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220b48c09038cb95ca358f6b3b986231aac3e6aa9fe9a876f90865eb1782122308064736f6c63430008130033","sourceMap":"1412:5237:49:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":9972,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":8849,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":8487,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3053,"length":20},{"start":7556,"length":20},{"start":8232,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220b48c09038cb95ca358f6b3b986231aac3e6aa9fe9a876f90865eb1782122308064736f6c63430008130033","sourceMap":"1412:5237:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;5254:43:49;1412:5237;5299:22;;;;;;1412:5237;5254:43;1412:5237;6065:40:67;;;;6061:102;;6210:22;;;;;;5254:43:49;1412:5237;;;;6178:30:67;1412:5237:49;;;6257:15:67;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6296:27:67;1412:5237:49;;;;;;;;;;;;;;6178:30:67;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;6473:9:67;;1412:5237:49;6484:5:67;;;;;;1412:5237:49;;;;;6178:30:67;;6473:9;1412:5237:49;;;;6518:21:67;1412:5237:49;;;;;-1:-1:-1;;;;;6543:13:67;;;;:::i;:::-;1412:5237:49;;;;;;6511:46:67;1412:5237:49;;;6511:46:67;:::i;:::-;1412:5237:49;6473:9:67;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6061:102:67;1412:5237:49;;-1:-1:-1;;;6128:24:67;;1412:5237:49;;6128:24:67;5242:55:49;1412:5237;;;5346:20;1412:5237;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5242:55;1412:5237;;;;5242:55;;1412:5237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;5254:27;1412:5237;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;4574:73:64;;:::i;:::-;4001:32:49;1412:5237;;;;;;:::i;:::-;4001:32;:::i;:::-;4290:24;1412:5237;;;;;;4270:17;;1412:5237;;4270:49;;;:86;;;1412:5237;4266:143;;1412:5237;4270:17;;1412:5237;;;3597:20:63;1412:5237:49;;3597:39:63;1412:5237:49;;;3597:39:63;1412:5237:49;4419:111;;1412:5237;;;4689:17;;;1412:5237;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;4270:17;;1412:5237;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4689:17;;;;;;2548:38:67;;4689:17:49;;;;;;:::i;:::-;1412:5237;;;4689:17;;4679:28;1412:5237;4841:20;1412:5237;;;4711:20:67;1412:5237:49;;4270:17;;1412:5237;4699:32:67;4695:94;;1412:5237:49;;4803:21:67;;;4799:81;;1412:5237:49;;;;;;;;;10884:32:36;1412:5237:49;4270:17;;1412:5237;10884:32:36;:::i;:::-;5066:3:67;5062:68;;1412:5237:49;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;5165:183:67;;1412:5237:49;;;;7293:3:67;1412:5237:49;5165:183:67;;1412:5237:49;;;;;5165:183:67;;1412:5237:49;;;;5165:183:67;;1412:5237:49;;;;;4270:17;;1412:5237;;;5390:15:67;1412:5237:49;;;;;;;;;;;;;;;;;;3597:39:63;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4201:17:63;;1412:5237:49;;;;;3597:20:63;1412:5237:49;;;;;4242:14:63;;;1412:5237:49;-1:-1:-1;;;;;1412:5237:49;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;3597:39:63;4266:13;;1412:5237:49;;4330:10:63;;;;1412:5237:49;;;4586:6:63;;;1412:5237:49;4373:13:63;;;;;;1412:5237:49;4362:9:63;4598:13;:10;;;:13;:::i;:::-;;1412:5237:49;;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4362:9:63;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;5062:68:67;1412:5237:49;;-1:-1:-1;;;5092:27:67;;1412:5237:49;;5092:27:67;4799:81;1412:5237:49;;-1:-1:-1;;;4847:22:67;;1412:5237:49;;4847:22:67;4695:94;1412:5237:49;;-1:-1:-1;;;4754:24:67;;1412:5237:49;;4754:24:67;1412:5237:49;2548:38:67;;;;;;;;1412:5237:49;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;1412:5237:49;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;;1412:5237:49;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1412:5237:49;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4419:111;1412:5237;;-1:-1:-1;;;4499:20:49;;1412:5237;;4499:20;4266:143;1412:5237;;-1:-1:-1;;;4379:19:49;;1412:5237;;4379:19;4270:86;:17;1412:5237;4270:17;;1412:5237;4323:12;:33;;4270:86;;1412:5237;;;;;;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;:::i;:::-;6910:20:67;1412:5237:49;;;6901:29:67;6897:91;;1412:5237:49;;;;2943:20:63;1412:5237:49;;2989:17:63;1412:5237:49;;;2989:17:63;1412:5237:49;2989:22:63;6346:62:49;;1412:5237;;;;1810:15:67;1412:5237:49;;;;;;1952:38:67;1412:5237:49;;;1952:38:67;:::i;:::-;1412:5237:49;;;;;;;;;;2000:89:67;;1412:5237:49;;;;;;2177:27:67;1412:5237:49;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;4352:12:36;1412:5237:49;;;;;;2173:119:67;;1412:5237:49;;;-1:-1:-1;;;;;1412:5237:49;;;2548:38:67;;1412:5237:49;;;;;;;;;2548:38:67;;;1412:5237:49;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;2538:49:67;;1412:5237:49;;;;;;;;;;;:::i;:::-;;2515:74:67;;2662:13;1412:5237:49;2662:13:67;;1412:5237:49;2145:27:33;2187:13;1412:5237:49;2182:116:33;2220:3;1412:5237:49;;2202:16:33;;;;;2278:8;;;;:::i;:::-;1412:5237:49;;9511:5:33;;;;;;1412:5237:49;9711:119:33;1412:5237:49;9711:119:33;1412:5237:49;;9711:119:33;9511:51;2220:3;-1:-1:-1;;1412:5237:49;;;;;;2187:13:33;;;9511:51;9711:119;1412:5237:49;9711:119:33;1412:5237:49;9711:119:33;1412:5237:49;;9711:119:33;9511:51;;2202:16;;1379:33;2708:77:67;;1412:5237:49;;;;2177:27:67;1412:5237:49;;8399:50:36;1412:5237:49;;;;;;;;;;8399:50:36;:::i;:::-;2958:3:67;2954:61;;1412:5237:49;;;;3024:21:67;1412:5237:49;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;:::i;:::-;;;;;;2182:116:33;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3095:18:67;;:28;1412:5237:49;;;;3095:28:67;:::i;:::-;1412:5237:49;;;2989:17:63;3160:14:67;;1412:5237:49;3138:36:67;;;3134:871;;1412:5237:49;3134:871:67;1412:5237:49;3195:12:67;;1412:5237:49;;3195:12:67;;1412:5237:49;;;;;-1:-1:-1;;;1412:5237:49;;;;;11184:35:36;1412:5237:49;;11184:35:36;:::i;:::-;3404:3:67;3400:87;;3509:212;1412:5237:49;3509:212:67;1412:5237:49;6182:27;1412:5237;;;;;;;;;;;;;3509:212:67;;;:::i;:::-;;;;3190:805;1412:5237:49;3400:87:67;1412:5237:49;;-1:-1:-1;;;3438:30:67;;1412:5237:49;;3438:30:67;3190:805;1412:5237:49;;;;3765:215:67;1412:5237:49;3765:215:67;1412:5237:49;6182:27;1412:5237;;;;;;;;;;;;3765:215:67;;;:::i;1412:5237:49:-;;;;-1:-1:-1;1412:5237:49;;;;;2548:38:67;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1412:5237:49;;;;2954:61:67;1412:5237:49;;-1:-1:-1;;;2984:20:67;;1412:5237:49;;2984:20:67;2708:77;1412:5237:49;;-1:-1:-1;;;2741:33:67;;-1:-1:-1;;;;;1412:5237:49;;;;2741:33:67;;1412:5237:49;;;2741:33:67;2173:119;1412:5237:49;;-1:-1:-1;;;2264:17:67;;1412:5237:49;;2264:17:67;2000:89;1412:5237:49;;-1:-1:-1;;;2060:18:67;;1412:5237:49;;2060:18:67;1412:5237:49;;;;;;;;;;;;6346:62;1412:5237;;-1:-1:-1;;;6380:17:49;;1412:5237;;6380:17;1412:5237;;;;;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;;-1:-1:-1;1412:5237:49;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;2008:14;;;;:::i;:::-;1412:5237;:::i;:::-;2008:23;;1412:5237;;;;;;2008:25;;;1412:5237;2008:25;;1412:5237;;;;;;;;;;;;:::i;:::-;2008:25;;;;;;;;;;1412:5237;2008:25;;;1412:5237;-1:-1:-1;;;;;;1412:5237:49;2037:10;1412:5237;;;2008:39;2004:97;;2111:32;1412:5237;;;;:::i;2111:32::-;2037:10;12849:19:63;12845:78;;1412:5237:49;;;;;;:::i;:::-;;12959:13:63;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;12959:35:63;;1412:5237:49;;12959:35:63;;1412:5237:49;;;;;;:::i;:::-;2037:10;1412:5237;;;;12959:35:63;;;;;;;;1412:5237:49;12959:35:63;;;1412:5237:49;13012:19:63;;;;:::i;:::-;2245:13:49;;;2241:67;;1412:5237;;;2397:10;;1412:5237;2397:10;;2346:16;2397:10;:::i;:::-;1412:5237;;-1:-1:-1;2440:18:49;;;;;;2670:21;;;;;;:::i;:::-;2706:17;;;1412:5237;;2706:31;;;;2702:96;;1412:5237;;;;;;;;;;;;;;2921:10;1412:5237;;2921:10;:::i;:::-;2910:9;;;;1412:5237;:::i;:::-;;;;;:::i;:::-;;;;14383:9:63;1412:5237:49;14394:19:63;;;;;;1412:5237:49;;;;;2947:24;1412:5237;;;;2943:497;;1412:5237;2943:497;1412:5237;;3216:165;;;;;;;;;;3314:12;3216:165;;;1412:5237;;;;;;;;;;;;3216:165;;1412:5237;;;;;;;;;;;;;;;;4419:21:29;;:29;4415:108;;4574:31;;4622:69;4574:31;1412:5237:49;4574:31:29;;;;2037:10:49;;4574:31:29;;1412:5237:49;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;2037:10;4622:69:29;:::i;1412:5237:49:-;;;-1:-1:-1;1412:5237:49;;4415:108:29;-1:-1:-1;;;4471:41:29;;4427:4;4471:41;;;1412:5237:49;4471:41:29;1412:5237:49;-1:-1:-1;;;;1412:5237:49;;;;;;;;14383:9:63;14454:12;;;1412:5237:49;14454:12:63;;;:::i;:::-;;;;:::i;:::-;1412:5237:49;14383:9:63;;1412:5237:49;;;;;;;;;;;;2702:96;1412:5237;;-1:-1:-1;;;2760:27:49;;1412:5237;;2760:27;2429:9;2490:10;;2531:37;1412:5237;2490:10;2543:25;:21;:13;2476:41;2490:10;;1412:5237;2490:21;:13;:10;;;;;;;:::i;:::-;:13;;:::i;:::-;:21;;:::i;:::-;:27;1412:5237;2476:41;;:::i;:::-;2543:10;;;;;:::i;2531:37::-;1412:5237;;2429:9;;;2241:67;1412:5237;;-1:-1:-1;;;2281:16:49;;1412:5237;;2281:16;12959:35:63;;;;1412:5237:49;12959:35:63;;;;;;:::i;:::-;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13012:19:63;1412:5237:49;;;;;;12959:35:63;;1412:5237:49;;;;;;:::i;:::-;;;;;;;;;;;12959:35:63;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12845:78:63;1412:5237:49;;-1:-1:-1;;;12891:21:63;;1412:5237:49;;12891:21:63;2004:97:49;1412:5237;;-1:-1:-1;;;;;;2070:20:49;;1412:5237;;2070:20;2008:25;;;;;;;;;;;;;;;;;:::i;:::-;;;1412:5237;;;;;;;:::i;:::-;2008:25;;;;;;;;;1412:5237;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;:::o;:::-;;2548:38:67;;;1412:5237:49;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;:::o;:::-;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1412:5237:49;;;;2548:38:67;1412:5237:49;-1:-1:-1;;1412:5237:49;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;1412:5237:49;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;-1:-1:-1;1412:5237:49;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;:::o;6737:692:29:-;;6952:471;;;1412:5237:49;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;1412:5237:49;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;1412:5237:49;;;7261:24:29;;;1412:5237:49;;;7261:24:29;6952:471;-1:-1:-1;1412:5237:49;;8828:21:29;:17;;9000:142;;;;;;8824:411;1412:5237:49;;-1:-1:-1;;;8628:17:29;;;;;1412:5237:49;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;1412:5237:49;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;;2548:38:67;1412:5237:49;-1:-1:-1;;1412:5237:49;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;1412:5237:49;;-1:-1:-1;1412:5237:49;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;2548:38:67;;;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;2548:38:67;;-1:-1:-1;1412:5237:49;2548:38:67;-1:-1:-1;;1412:5237:49;;;2548:38:67;1412:5237:49;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;2548:38:67;;;;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13234:272:63:-;1412:5237:49;13443:15:63;1412:5237:49;;;;;;;13443:17:63;;;;;;;;;;;;1412:5237:49;;;;;;:::i;:::-;13443:17:63;;;;;;;;;;3946:45:64;13443:17:63;;;13234:272;1412:5237:49;3946:45:64;1412:5237:49;3946:45:64;1412:5237:49;;;;;3946:45:64;1412:5237:49;13480:9:63;1412:5237:49;13443:17:63;13480:9;;1412:5237:49;:::i;:::-;;;;;;;;;;;;13480:19:63;;;13443:17;13480:19;;1412:5237:49;;;;;;:::i;:::-;13480:19:63;;;;;;;;;3946:45:64;13480:19:63;;;13234:272;13479:20;;;13234:272;:::o;13480:19::-;;;;;;-1:-1:-1;13480:19:63;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;13443:17;;;;;;;;;;;;;;;:::i;:::-;;;1412:5237:49;;;;;;13443:17:63;;;1412:5237:49;;;13443:17:63;;;;;1412:5237:49;;;;;-1:-1:-1;;;;;15328:13:63;1412:5237:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2548:38:67;1412:5237:49;-1:-1:-1;;1412:5237:49;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;:::o;14837:2300:63:-;;15012:19;:16;;;:19;;:28;:36;1412:5237:49;;;;;;;15012:38:63;;;;;1412:5237:49;15012:38:63;;;;;;1412:5237:49;;;;;;:::i;:::-;15012:38:63;;;;;;;;;;3946:45:64;15012:38:63;;;14837:2300;15008:102;;;15292:16;;;:19;;:28;1412:5237:49;;;;;;;15292:50:63;;;;;;1412:5237:49;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;15292:50:63;;;;;;;;;;3946:45:64;15292:50:63;;;14837:2300;15291:51;;15287:172;;1412:5237:49;15613:32:63;3946:45:64;1412:5237:49;;;;;;:::i;:::-;;;;;;;;15678:16:63;;1412:5237:49;15678:16:63;;1412:5237:49;;;;;;;;;;;15678:41:63;;;;;1412:5237:49;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;15678:41:63;:26;;:41;;;;;;;3946:45:64;15678:41:63;;;14837:2300;1412:5237:49;;;;:::i;:::-;15746:19:63;15733:32;;15746:19;;15945:34;;;;;:::i;:::-;15997:11;;15993:78;;1412:5237:49;16088:27:63;;1412:5237:49;;-1:-1:-1;;;;;1412:5237:49;;;;;16119:16:63;:22;:16;;:22;1412:5237:49;;16088:53:63;;16084:121;;16218:32;;1412:5237:49;16218:32:63;;1412:5237:49;16218:32:63;-1:-1:-1;;;16218:32:63;;;;:::i;:::-;1412:5237:49;;;;-1:-1:-1;;;1412:5237:49;;;;;16453:9:63;1412:5237:49;:::i;:::-;;;;;;;;;;;;16453:20:63;;;;;;1412:5237:49;;;;;;:::i;:::-;16453:20:63;;;;;;;;;;;;;3946:45:64;16453:20:63;;;15729:1310;-1:-1:-1;1412:5237:49;;-1:-1:-1;;;16430:59:63;;1412:5237:49;;;;;-1:-1:-1;;;;;1412:5237:49;16430:59:63;;;;;;;3946:45:64;16430:59:63;;;15729:1310;16415:74;3946:45:64;16415:74:63;1412:5237:49;16415:74:63;15729:1310;;1412:5237:49;;;;;;;;;;17100:30:63;;;;1412:5237:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;17100:30:63;:16;;:30;;;;;;;;14837:2300;;;:::o;17100:30::-;;;3946:45:64;17100:30:63;;;;;;:::i;:::-;;;1412:5237:49;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;17100:30:63:-;1412:5237:49;;;3946:45:64;1412:5237:49;;;;;16430:59:63;;;;;;;;;;;;;;:::i;:::-;;;1412:5237:49;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;3946:45:64;1412:5237:49;;;;;;;;:::i;:::-;;;;;16430:59:63;;;;;1412:5237:49;;;;16430:59:63;;;;;;1412:5237:49;;;3946:45:64;1412:5237:49;;;;;16453:20:63;;-1:-1:-1;16453:20:63;-1:-1:-1;16453:20:63;;;;;;;;;;;;;:::i;:::-;;;1412:5237:49;;;;;;;;;;:::i;:::-;16453:20:63;;;;;;;;16084:121;1412:5237:49;;-1:-1:-1;;;16168:22:63;;1412:5237:49;;16168:22:63;15993:78;1412:5237:49;;-1:-1:-1;;;16035:21:63;;1412:5237:49;;16035:21:63;15729:1310;1412:5237:49;;;;;;;;;:::i;:::-;16510:31:63;16506:533;;15729:1310;3946:45:64;15729:1310:63;1412:5237:49;15729:1310:63;;;16506:533;1412:5237:49;;16677:21:63;1412:5237:49;-1:-1:-1;;;;;1412:5237:49;;;;;16702:16:63;:22;:16;;:22;1412:5237:49;;16677:47:63;;16673:115;;16801:26;1412:5237:49;16801:26:63;-1:-1:-1;;;16801:26:63;3946:45:64;16801:26:63;;:::i;:::-;1412:5237:49;;;;-1:-1:-1;;;1412:5237:49;;;16677:21:63;1412:5237:49;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;4618:99:76;;;;1412:5237:49;16506:533:63;;;;;;;16673:115;1412:5237:49;;-1:-1:-1;;;16751:22:63;;1412:5237:49;;16751:22:63;15678:41;;;;;;;;;;;;;;:::i;:::-;;;1412:5237:49;;;;;;;;;;;;15678:41:63;;;;;;;;;;1412:5237:49;;;3946:45:64;1412:5237:49;;;;;15287:172:63;1412:5237:49;;;;;;;;;;2508:20:60;;;1412:5237:49;;;;2508:20:60;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;-1:-1:-1;;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2508:20:60;2548:38:67;;2508:20:60;;;;;;:::i;:::-;1412:5237:49;2498:31:60;;3946:45:64;1412:5237:49;;3946:45:64;1412:5237:49;;:::i;15292:50:63:-;;;;;;;;;;;;;;:::i;:::-;;;;15008:102;1412:5237:49;;-1:-1:-1;;;15073:26:63;;1412:5237:49;;15073:26:63;15012:38;;;;;;;;;;;;;;:::i;:::-;;;;;1412:5237:49;;;3946:45:64;1412:5237:49;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;17298:361:63;17459:10;;;;1412:5237:49;-1:-1:-1;;;;;17479:25:63;1412:5237:49;;-1:-1:-1;17455:108:63;;17576:10;1412:5237:49;17576:22:63;17572:81;;17298:361::o;17572:81::-;17459:10;1412:5237:49;-1:-1:-1;;;17621:21:63;;;;;17455:108;17459:10;1412:5237:49;-1:-1:-1;;;17527:25:63;;;;;4430:138:64;1412:5237:49;;-1:-1:-1;;;4486:26:64;;:10;:26;;;1412:5237:49;4486:26:64;1412:5237:49;;;4486:24:64;:26;;;;;;;-1:-1:-1;4486:26:64;;;4430:138;4485:27;;4481:81;;4430:138::o;4481:81::-;1412:5237:49;;-1:-1:-1;;;4535:16:64;;4486:26;;4535:16;4486:26;;;;;;;;;;;;;;:::i;:::-;;;;1412:5237:49;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;2483:766:32:-;1412:5237:49;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;1412:5237:49;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;1412:5237:49:-;5015:22:67;1412:5237:49;;;;;;5015:22:67;-1:-1:-1;1412:5237:49;;;;-1:-1:-1;1412:5237:49;:::o;2215:404:36:-;-1:-1:-1;1412:5237:49;;;4352:12:36;1412:5237:49;;;;;;;;5015:22:67;1412:5237:49;-1:-1:-1;;;1412:5237:49;;;;;;;;;;4352:12:36;1412:5237:49;;;5015:22:67;1412:5237:49;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5015:22:67;1412:5237:49;;;;4352:12:36;1412:5237:49;;;;4352:12:36;2548:11;:::o;1412:5237:49:-;-1:-1:-1;;;1412:5237:49;;;;;;;;2294:319:36;2590:12;;;:::o;2215:404::-;-1:-1:-1;1412:5237:49;;;4352:12:36;;;1412:5237:49;;;;;;2299:21:36;;1412:5237:49;;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;-1:-1:-1;1412:5237:49;;;;;;-1:-1:-1;1412:5237:49;2494:12:36;1412:5237:49;;;-1:-1:-1;1412:5237:49;;;2548:11:36;:::o;2294:319::-;2590:12;;-1:-1:-1;2590:12:36;:::o;2787:1388::-;-1:-1:-1;1412:5237:49;;;2990:12:36;1412:5237:49;;;;;;-1:-1:-1;;1412:5237:49;3024:15:36;;;;-1:-1:-1;;1412:5237:49;;;;;;;;;3345:22:67;1412:5237:49;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;1412:5237:49;;;3345:22:67;1412:5237:49;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3345:22:67;1412:5237:49;;;2990:12:36;1412:5237:49;;;;;;2990:12:36;4104:11;:::o;1412:5237:49:-;-1:-1:-1;;;1412:5237:49;;;;;;;;3502:398:36;1412:5237:49;3572:22:36;3694:26;3572:22;;:::i;:::-;1412:5237:49;;;;;;3694:26:36;;;;:::i;1412:5237:49:-;;;;;2990:12:36;1412:5237:49;;;;;;3502:398:36;;;;;1412:5237:49;-1:-1:-1;;;1412:5237:49;;;;;;;;;-1:-1:-1;;;1412:5237:49;;;;;;;;3020:1149:36;4146:12;;;:::o","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":9944,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":8821,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":8459,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3025,"length":20},{"start":7528,"length":20},{"start":8204,"length":20}]}}},"methodIdentifiers":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":"0db0f77c","createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":"32e7661f","execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":"0bed7615","pruneBottomUpMsgBatches(uint256)":"bacc656d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddSignatory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedRemoveIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRetentionHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughSubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuorumAlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureReplay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMembershipWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"membershipProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"addBottomUpMsgBatchSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"execBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newRetentionHeight\",\"type\":\"uint256\"}],\"name\":\"pruneBottomUpMsgBatches\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)\":{\"params\":{\"height\":\"- the height of the block in the checkpoint\",\"membershipProof\":\"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`\",\"signature\":\"- the signature of the checkpoint\",\"weight\":\"- the weight of the validator\"}},\"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)\":{\"params\":{\"batch\":\"- a bottom-up batch\",\"membershipRootHash\":\"- a root hash of the Merkle tree built from the validator public keys and their weight\",\"membershipWeight\":\"- the total weight of the membership\"}},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"details\":\"this method is called by the corresponding subnet actor. Called from a subnet actor if the batch is valid.\",\"params\":{\"batch\":\"The batch of bottom-up cross-network messages to be executed.\"}},\"pruneBottomUpMsgBatches(uint256)\":{\"params\":{\"newRetentionHeight\":\"- the height of the oldest batch to keep\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)\":{\"notice\":\"checks whether the provided batch signature for the block at height `height` is valid and accumulates that\"},\"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)\":{\"notice\":\"cuts a new message batch if the batch period is reached without the maximum number of messages being reached.\"},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"notice\":\"submit a batch of cross-net messages for execution.\"},\"pruneBottomUpMsgBatches(uint256)\":{\"notice\":\"Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/BottomUpRouterFacet.sol\":\"BottomUpRouterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"BatchAlreadyExists"},{"inputs":[],"type":"error","name":"BatchNotCreated"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"FailedAddIncompleteQuorum"},{"inputs":[],"type":"error","name":"FailedAddSignatory"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"FailedRemoveIncompleteQuorum"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidBatchSource"},{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgNonce"},{"inputs":[],"type":"error","name":"InvalidRetentionHeight"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotAuthorized"},{"inputs":[],"type":"error","name":"NotEnoughSubnetCircSupply"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[],"type":"error","name":"QuorumAlreadyProcessed"},{"inputs":[],"type":"error","name":"SignatureReplay"},{"inputs":[],"type":"error","name":"SubnetNotFound"},{"inputs":[],"type":"error","name":"ZeroMembershipWeight"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32[]","name":"membershipProof","type":"bytes32[]"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addBottomUpMsgBatchSignature"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}],"stateMutability":"nonpayable","type":"function","name":"execBottomUpMsgBatch"},{"inputs":[{"internalType":"uint256","name":"newRetentionHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pruneBottomUpMsgBatches"}],"devdoc":{"kind":"dev","methods":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":{"params":{"height":"- the height of the block in the checkpoint","membershipProof":"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`","signature":"- the signature of the checkpoint","weight":"- the weight of the validator"}},"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":{"params":{"batch":"- a bottom-up batch","membershipRootHash":"- a root hash of the Merkle tree built from the validator public keys and their weight","membershipWeight":"- the total weight of the membership"}},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"details":"this method is called by the corresponding subnet actor. Called from a subnet actor if the batch is valid.","params":{"batch":"The batch of bottom-up cross-network messages to be executed."}},"pruneBottomUpMsgBatches(uint256)":{"params":{"newRetentionHeight":"- the height of the oldest batch to keep"}}},"version":1},"userdoc":{"kind":"user","methods":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":{"notice":"checks whether the provided batch signature for the block at height `height` is valid and accumulates that"},"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":{"notice":"cuts a new message batch if the batch period is reached without the maximum number of messages being reached."},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"notice":"submit a batch of cross-net messages for execution."},"pruneBottomUpMsgBatches(uint256)":{"notice":"Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/BottomUpRouterFacet.sol":"BottomUpRouterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","id":39602,"exportedSymbols":{"Address":[32838],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpMsgBatch":[49945],"BottomUpRouterFacet":[39601],"CrossMsg":[49974],"CrossMsgHelper":[40781],"GatewayActorModifiers":[43137],"IPCMsgType":[37364],"ISubnetActor":[40428],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"LibGateway":[42944],"LibQuorum":[43948],"MaxMsgsPerBatchExceeded":[37382],"NotEnoughSubnetCircSupply":[37474],"NotRegisteredSubnet":[37482],"QuorumObjKind":[50012],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorGetterFacet":[50887],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:6604:49","nodes":[{"id":39237,"nodeType":"PragmaDirective","src":"46:23:49","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39239,"nodeType":"ImportDirective","src":"71:63:49","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":40429,"symbolAliases":[{"foreign":{"id":39238,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40428,"src":"79:12:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39241,"nodeType":"ImportDirective","src":"135:75:49","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":39240,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"143:21:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39243,"nodeType":"ImportDirective","src":"211:60:49","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39242,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"219:16:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39245,"nodeType":"ImportDirective","src":"272:52:49","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":39244,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"280:10:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39258,"nodeType":"ImportDirective","src":"325:293:49","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39246,"name":"BatchNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37388,"src":"333:15:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39247,"name":"BatchAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37380,"src":"350:18:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39248,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"370:17:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39249,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37474,"src":"389:25:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39250,"name":"SubnetNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37506,"src":"416:15:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39251,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"433:14:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39252,"name":"InvalidBatchSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37412,"src":"449:18:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39253,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"469:23:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39254,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"494:19:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39255,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"515:24:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39256,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"541:19:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39257,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"562:20:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39260,"nodeType":"ImportDirective","src":"619:48:49","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":39259,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"627:6:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39262,"nodeType":"ImportDirective","src":"668:50:49","nodes":[],"absolutePath":"src/lib/LibQuorum.sol","file":"../../lib/LibQuorum.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":43949,"symbolAliases":[{"foreign":{"id":39261,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"676:9:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39264,"nodeType":"ImportDirective","src":"719:55:49","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":39263,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"727:13:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39266,"nodeType":"ImportDirective","src":"775:65:49","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":39265,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"783:7:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39268,"nodeType":"ImportDirective","src":"841:54:49","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":39267,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"849:10:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39271,"nodeType":"ImportDirective","src":"897:62:49","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39269,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"905:8:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39270,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"915:8:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39273,"nodeType":"ImportDirective","src":"960:60:49","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":39272,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"968:14:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39275,"nodeType":"ImportDirective","src":"1022:68:49","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":39274,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"1030:18:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39277,"nodeType":"ImportDirective","src":"1091:54:49","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":39276,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"1099:12:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39279,"nodeType":"ImportDirective","src":"1146:79:49","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":39278,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1154:22:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39281,"nodeType":"ImportDirective","src":"1227:60:49","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":39280,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"1235:14:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39283,"nodeType":"ImportDirective","src":"1288:66:49","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":39282,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"1296:17:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39285,"nodeType":"ImportDirective","src":"1355:55:49","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39284,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"1363:11:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39601,"nodeType":"ContractDefinition","src":"1412:5237:49","nodes":[{"id":39291,"nodeType":"UsingForDirective","src":"1472:34:49","nodes":[],"global":false,"libraryName":{"id":39288,"name":"SubnetIDHelper","nameLocations":["1478:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1478:14:49"},"typeName":{"id":39290,"nodeType":"UserDefinedTypeName","pathNode":{"id":39289,"name":"SubnetID","nameLocations":["1497:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1497:8:49"},"referencedDeclaration":50077,"src":"1497:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":39295,"nodeType":"UsingForDirective","src":"1511:34:49","nodes":[],"global":false,"libraryName":{"id":39292,"name":"CrossMsgHelper","nameLocations":["1517:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"1517:14:49"},"typeName":{"id":39294,"nodeType":"UserDefinedTypeName","pathNode":{"id":39293,"name":"CrossMsg","nameLocations":["1536:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1536:8:49"},"referencedDeclaration":49974,"src":"1536:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":39299,"nodeType":"UsingForDirective","src":"1550:42:49","nodes":[],"global":false,"libraryName":{"id":39296,"name":"SupplySourceHelper","nameLocations":["1556:18:49"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1556:18:49"},"typeName":{"id":39298,"nodeType":"UserDefinedTypeName","pathNode":{"id":39297,"name":"SupplySource","nameLocations":["1579:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1579:12:49"},"referencedDeclaration":50226,"src":"1579:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":39303,"nodeType":"UsingForDirective","src":"1597:40:49","nodes":[],"global":false,"libraryName":{"id":39300,"name":"StorableMsgHelper","nameLocations":["1603:17:49"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"1603:17:49"},"typeName":{"id":39302,"nodeType":"UserDefinedTypeName","pathNode":{"id":39301,"name":"StorableMsg","nameLocations":["1625:11:49"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"1625:11:49"},"referencedDeclaration":49991,"src":"1625:11:49","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":39442,"nodeType":"FunctionDefinition","src":"1922:1524:49","nodes":[],"body":{"id":39441,"nodeType":"Block","src":"1994:1452:49","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":39316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":39310,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2008:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2014:8:49","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49936,"src":"2008:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":39312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2023:8:49","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"2008:23:49","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2008:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":39314,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2037:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2041:6:49","memberName":"sender","nodeType":"MemberAccess","src":"2037:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2008:39:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39321,"nodeType":"IfStatement","src":"2004:97:49","trueBody":{"id":39320,"nodeType":"Block","src":"2049:52:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39317,"name":"InvalidBatchSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37412,"src":"2070:18:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2070:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39319,"nodeType":"RevertStatement","src":"2063:27:49"}]}},{"expression":{"arguments":[{"id":39325,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2137:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39322,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"2111:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2122:14:49","memberName":"checkMsgLength","nodeType":"MemberAccess","referencedDeclaration":42943,"src":"2111:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) view"}},"id":39326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39327,"nodeType":"ExpressionStatement","src":"2111:32:49"},{"assignments":[39329,39332],"declarations":[{"constant":false,"id":39329,"mutability":"mutable","name":"subnetExists","nameLocation":"2160:12:49","nodeType":"VariableDeclaration","scope":39441,"src":"2155:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39328,"name":"bool","nodeType":"ElementaryTypeName","src":"2155:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39332,"mutability":"mutable","name":"subnet","nameLocation":"2189:6:49","nodeType":"VariableDeclaration","scope":39441,"src":"2174:21:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":39331,"nodeType":"UserDefinedTypeName","pathNode":{"id":39330,"name":"Subnet","nameLocations":["2174:6:49"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"2174:6:49"},"referencedDeclaration":50091,"src":"2174:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":39338,"initialValue":{"arguments":[{"expression":{"id":39335,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2220:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2224:6:49","memberName":"sender","nodeType":"MemberAccess","src":"2220:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":39333,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"2199:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:9:49","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"2199:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":39337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2199:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"2154:77:49"},{"condition":{"id":39340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2245:13:49","subExpression":{"id":39339,"name":"subnetExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39329,"src":"2246:12:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39345,"nodeType":"IfStatement","src":"2241:67:49","trueBody":{"id":39344,"nodeType":"Block","src":"2260:48:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39341,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"2281:14:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:16:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39343,"nodeType":"RevertStatement","src":"2274:23:49"}]}},{"assignments":[39347],"declarations":[{"constant":false,"id":39347,"mutability":"mutable","name":"totalValue","nameLocation":"2326:10:49","nodeType":"VariableDeclaration","scope":39441,"src":"2318:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39346,"name":"uint256","nodeType":"ElementaryTypeName","src":"2318:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39348,"nodeType":"VariableDeclarationStatement","src":"2318:18:49"},{"assignments":[39350],"declarations":[{"constant":false,"id":39350,"mutability":"mutable","name":"totalFee","nameLocation":"2354:8:49","nodeType":"VariableDeclaration","scope":39441,"src":"2346:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39349,"name":"uint256","nodeType":"ElementaryTypeName","src":"2346:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39351,"nodeType":"VariableDeclarationStatement","src":"2346:16:49"},{"assignments":[39353],"declarations":[{"constant":false,"id":39353,"mutability":"mutable","name":"crossMsgLength","nameLocation":"2380:14:49","nodeType":"VariableDeclaration","scope":39441,"src":"2372:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39352,"name":"uint256","nodeType":"ElementaryTypeName","src":"2372:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39357,"initialValue":{"expression":{"expression":{"id":39354,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2397:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2403:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"2397:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":39356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2408:6:49","memberName":"length","nodeType":"MemberAccess","src":"2397:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2372:42:49"},{"body":{"id":39386,"nodeType":"Block","src":"2462:176:49","statements":[{"expression":{"id":39371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39364,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39347,"src":"2476:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"baseExpression":{"expression":{"id":39365,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2490:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2496:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"2490:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":39368,"indexExpression":{"id":39367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2501:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2490:13:49","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":39369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2504:7:49","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2490:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":39370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2512:5:49","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"2490:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2476:41:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39372,"nodeType":"ExpressionStatement","src":"2476:41:49"},{"expression":{"id":39380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39373,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"2531:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"baseExpression":{"expression":{"id":39374,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2543:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2549:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"2543:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":39377,"indexExpression":{"id":39376,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2554:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2543:13:49","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":39378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2557:7:49","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2543:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":39379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2565:3:49","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":49990,"src":"2543:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2531:37:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39381,"nodeType":"ExpressionStatement","src":"2531:37:49"},{"id":39385,"nodeType":"UncheckedBlock","src":"2582:46:49","statements":[{"expression":{"id":39383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2610:3:49","subExpression":{"id":39382,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2612:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39384,"nodeType":"ExpressionStatement","src":"2610:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39361,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2440:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39362,"name":"crossMsgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39353,"src":"2444:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2440:18:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39387,"initializationExpression":{"assignments":[39359],"declarations":[{"constant":false,"id":39359,"mutability":"mutable","name":"i","nameLocation":"2437:1:49","nodeType":"VariableDeclaration","scope":39387,"src":"2429:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39358,"name":"uint256","nodeType":"ElementaryTypeName","src":"2429:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39360,"nodeType":"VariableDeclarationStatement","src":"2429:9:49"},"nodeType":"ForStatement","src":"2424:214:49"},{"assignments":[39389],"declarations":[{"constant":false,"id":39389,"mutability":"mutable","name":"totalAmount","nameLocation":"2656:11:49","nodeType":"VariableDeclaration","scope":39441,"src":"2648:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39388,"name":"uint256","nodeType":"ElementaryTypeName","src":"2648:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39393,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39390,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"2670:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":39391,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39347,"src":"2681:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2670:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2648:43:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39394,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"2706:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2713:10:49","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"2706:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39396,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39389,"src":"2726:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2706:31:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39402,"nodeType":"IfStatement","src":"2702:96:49","trueBody":{"id":39401,"nodeType":"Block","src":"2739:59:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39398,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37474,"src":"2760:25:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2760:27:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39400,"nodeType":"RevertStatement","src":"2753:34:49"}]}},{"expression":{"id":39407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39403,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"2808:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2815:10:49","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"2808:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":39406,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39389,"src":"2829:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2808:32:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39408,"nodeType":"ExpressionStatement","src":"2808:32:49"},{"expression":{"arguments":[{"expression":{"id":39412,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"2910:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2917:2:49","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"2910:9:49","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},{"expression":{"id":39414,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2921:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2927:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"2921:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":39409,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"2885:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2896:13:49","memberName":"applyMessages","nodeType":"MemberAccess","referencedDeclaration":42752,"src":"2885:24:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory[] memory)"}},"id":39416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:47:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39417,"nodeType":"ExpressionStatement","src":"2885:47:49"},{"condition":{"expression":{"id":39418,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2947:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2949:22:49","memberName":"crossMsgRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43067,"src":"2947:24:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39440,"nodeType":"IfStatement","src":"2943:497:49","trueBody":{"id":39439,"nodeType":"Block","src":"2973:467:49","statements":[{"expression":{"arguments":[{"expression":{"id":39423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3182:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3186:6:49","memberName":"sender","nodeType":"MemberAccess","src":"3182:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":39427,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40428,"src":"3252:12:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISubnetActor_$40428_$","typeString":"type(contract ISubnetActor)"}},"id":39428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3265:26:49","memberName":"distributeRewardToRelayers","nodeType":"MemberAccess","referencedDeclaration":40427,"src":"3252:39:49","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"}},{"components":[{"expression":{"id":39429,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3314:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":39430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3320:6:49","memberName":"number","nodeType":"MemberAccess","src":"3314:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39431,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"3328:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39432,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"3338:13:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$50012_$","typeString":"type(enum QuorumObjKind)"}},"id":39433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3352:10:49","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":50010,"src":"3338:24:49","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}}],"id":39434,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3313:50:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$","typeString":"tuple(uint256,uint256,enum QuorumObjKind)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"},{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$","typeString":"tuple(uint256,uint256,enum QuorumObjKind)"}],"expression":{"id":39425,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3216:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3220:10:49","memberName":"encodeCall","nodeType":"MemberAccess","src":"3216:14:49","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3216:165:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":39436,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"3406:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39420,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"3126:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":39422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3134:21:49","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32570,"src":"3126:29:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":39437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3174:6:49","3210:4:49","3399:5:49"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3126:303:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":39438,"nodeType":"ExpressionStatement","src":"3126:303:49"}]}}]},"documentation":{"id":39304,"nodeType":"StructuredDocumentation","src":"1643:274:49","text":"@notice submit a batch of cross-net messages for execution.\n @dev this method is called by the corresponding subnet actor.\n Called from a subnet actor if the batch is valid.\n @param batch The batch of bottom-up cross-network messages to be executed."},"functionSelector":"0bed7615","implemented":true,"kind":"function","modifiers":[],"name":"execBottomUpMsgBatch","nameLocation":"1931:20:49","parameters":{"id":39308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39307,"mutability":"mutable","name":"batch","nameLocation":"1978:5:49","nodeType":"VariableDeclaration","scope":39442,"src":"1952:31:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":39306,"nodeType":"UserDefinedTypeName","pathNode":{"id":39305,"name":"BottomUpMsgBatch","nameLocations":["1952:16:49"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"1952:16:49"},"referencedDeclaration":49945,"src":"1952:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"1951:33:49"},"returnParameters":{"id":39309,"nodeType":"ParameterList","parameters":[],"src":"1994:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39515,"nodeType":"FunctionDefinition","src":"3817:1111:49","nodes":[],"body":{"id":39514,"nodeType":"Block","src":"3991:937:49","nodes":[],"statements":[{"expression":{"arguments":[{"id":39458,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4027:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39455,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4001:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4012:14:49","memberName":"checkMsgLength","nodeType":"MemberAccess","referencedDeclaration":42943,"src":"4001:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) view"}},"id":39459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4001:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39460,"nodeType":"ExpressionStatement","src":"4001:32:49"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39461,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4270:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4276:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4270:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":39463,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4290:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4292:22:49","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":43045,"src":"4290:24:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4270:44:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4318:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4270:49:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39468,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4323:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":39469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4329:6:49","memberName":"number","nodeType":"MemberAccess","src":"4323:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":39470,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4339:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4345:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4339:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4323:33:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4270:86:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39478,"nodeType":"IfStatement","src":"4266:143:49","trueBody":{"id":39477,"nodeType":"Block","src":"4358:51:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39474,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"4379:17:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4379:19:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39476,"nodeType":"RevertStatement","src":"4372:26:49"}]}},{"condition":{"arguments":[{"expression":{"id":39481,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4458:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4464:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4458:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39479,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4423:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4434:23:49","memberName":"bottomUpBatchMsgsExists","nodeType":"MemberAccess","referencedDeclaration":41916,"src":"4423:34:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":39483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4423:53:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39488,"nodeType":"IfStatement","src":"4419:111:49","trueBody":{"id":39487,"nodeType":"Block","src":"4478:52:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39484,"name":"BatchAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37380,"src":"4499:18:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4499:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39486,"nodeType":"RevertStatement","src":"4492:27:49"}]}},{"expression":{"arguments":[{"expression":{"id":39492,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4587:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4589:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"4587:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"expression":{"id":39494,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4639:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4645:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4639:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":39499,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4700:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39497,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4689:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4693:6:49","memberName":"encode","nodeType":"MemberAccess","src":"4689:10:49","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4689:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":39496,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4679:9:49","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":39501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4679:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39502,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39448,"src":"4741:18:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39503,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39450,"src":"4791:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39504,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4841:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4843:18:49","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":43030,"src":"4841:20:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":39489,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"4540:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4550:16:49","memberName":"createQuorumInfo","nodeType":"MemberAccess","referencedDeclaration":43740,"src":"4540:26:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32,bytes32,uint256,uint256)"}},"id":39506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4581:4:49","4628:9:49","4670:7:49","4721:18:49","4773:16:49","4821:18:49"],"names":["self","objHeight","objHash","membershipRootHash","membershipWeight","majorityPercentage"],"nodeType":"FunctionCall","src":"4540:332:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39507,"nodeType":"ExpressionStatement","src":"4540:332:49"},{"expression":{"arguments":[{"id":39511,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4915:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39508,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4882:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4893:21:49","memberName":"storeBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":42007,"src":"4882:32:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory)"}},"id":39512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4882:39:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39513,"nodeType":"ExpressionStatement","src":"4882:39:49"}]},"documentation":{"id":39443,"nodeType":"StructuredDocumentation","src":"3452:360:49","text":"@notice cuts a new message batch if the batch period is reached without\n the maximum number of messages being reached.\n @param batch - a bottom-up batch\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership"},"functionSelector":"32e7661f","implemented":true,"kind":"function","modifiers":[{"id":39453,"kind":"modifierInvocation","modifierName":{"id":39452,"name":"systemActorOnly","nameLocations":["3975:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"3975:15:49"},"nodeType":"ModifierInvocation","src":"3975:15:49"}],"name":"createBottomUpMsgBatch","nameLocation":"3826:22:49","parameters":{"id":39451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39446,"mutability":"mutable","name":"batch","nameLocation":"3884:5:49","nodeType":"VariableDeclaration","scope":39515,"src":"3858:31:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":39445,"nodeType":"UserDefinedTypeName","pathNode":{"id":39444,"name":"BottomUpMsgBatch","nameLocations":["3858:16:49"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"3858:16:49"},"referencedDeclaration":49945,"src":"3858:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":39448,"mutability":"mutable","name":"membershipRootHash","nameLocation":"3907:18:49","nodeType":"VariableDeclaration","scope":39515,"src":"3899:26:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3899:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39450,"mutability":"mutable","name":"membershipWeight","nameLocation":"3943:16:49","nodeType":"VariableDeclaration","scope":39515,"src":"3935:24:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39449,"name":"uint256","nodeType":"ElementaryTypeName","src":"3935:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3848:117:49"},"returnParameters":{"id":39454,"nodeType":"ParameterList","parameters":[],"src":"3991:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39553,"nodeType":"FunctionDefinition","src":"5141:386:49","nodes":[],"body":{"id":39552,"nodeType":"Block","src":"5227:300:49","nodes":[],"statements":[{"body":{"id":39542,"nodeType":"Block","src":"5325:114:49","statements":[{"expression":{"id":39536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5339:30:49","subExpression":{"baseExpression":{"expression":{"id":39532,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5346:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5348:18:49","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"5346:20:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":39535,"indexExpression":{"id":39534,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"5367:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5346:23:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39537,"nodeType":"ExpressionStatement","src":"5339:30:49"},{"id":39541,"nodeType":"UncheckedBlock","src":"5383:46:49","statements":[{"expression":{"id":39539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5411:3:49","subExpression":{"id":39538,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"5413:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39540,"nodeType":"ExpressionStatement","src":"5411:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39529,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"5299:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39530,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39518,"src":"5303:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5299:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39543,"initializationExpression":{"assignments":[39524],"declarations":[{"constant":false,"id":39524,"mutability":"mutable","name":"h","nameLocation":"5250:1:49","nodeType":"VariableDeclaration","scope":39543,"src":"5242:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39523,"name":"uint256","nodeType":"ElementaryTypeName","src":"5242:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39528,"initialValue":{"expression":{"expression":{"id":39525,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5254:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5256:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"5254:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":39527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5282:15:49","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"5254:43:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5242:55:49"},"nodeType":"ForStatement","src":"5237:202:49"},{"expression":{"arguments":[{"expression":{"id":39547,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5472:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5474:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"5472:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39549,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39518,"src":"5501:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39544,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"5449:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5459:12:49","memberName":"pruneQuorums","nodeType":"MemberAccess","referencedDeclaration":43833,"src":"5449:22:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256)"}},"id":39550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5449:71:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39551,"nodeType":"ExpressionStatement","src":"5449:71:49"}]},"documentation":{"id":39516,"nodeType":"StructuredDocumentation","src":"4934:202:49","text":"@notice Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)\n @param newRetentionHeight - the height of the oldest batch to keep"},"functionSelector":"bacc656d","implemented":true,"kind":"function","modifiers":[{"id":39521,"kind":"modifierInvocation","modifierName":{"id":39520,"name":"systemActorOnly","nameLocations":["5211:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"5211:15:49"},"nodeType":"ModifierInvocation","src":"5211:15:49"}],"name":"pruneBottomUpMsgBatches","nameLocation":"5150:23:49","parameters":{"id":39519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39518,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"5182:18:49","nodeType":"VariableDeclaration","scope":39553,"src":"5174:26:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39517,"name":"uint256","nodeType":"ElementaryTypeName","src":"5174:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5173:28:49"},"returnParameters":{"id":39522,"nodeType":"ParameterList","parameters":[],"src":"5227:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39600,"nodeType":"FunctionDefinition","src":"5962:685:49","nodes":[],"body":{"id":39599,"nodeType":"Block","src":"6137:510:49","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":39569,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"6182:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6184:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"6182:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39571,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"6211:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39566,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"6147:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6157:24:49","memberName":"isHeightAlreadyProcessed","nodeType":"MemberAccess","referencedDeclaration":43851,"src":"6147:34:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256) view"}},"id":39572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6147:71:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39573,"nodeType":"ExpressionStatement","src":"6147:71:49"},{"assignments":[39575,null],"declarations":[{"constant":false,"id":39575,"mutability":"mutable","name":"exists","nameLocation":"6286:6:49","nodeType":"VariableDeclaration","scope":39599,"src":"6281:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39574,"name":"bool","nodeType":"ElementaryTypeName","src":"6281:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":39580,"initialValue":{"arguments":[{"id":39578,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"6329:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39576,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"6298:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6309:19:49","memberName":"getBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41868,"src":"6298:30:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpMsgBatch_$49945_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpMsgBatch storage pointer)"}},"id":39579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:38:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpMsgBatch_$49945_storage_ptr_$","typeString":"tuple(bool,struct BottomUpMsgBatch storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"6280:56:49"},{"condition":{"id":39582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6350:7:49","subExpression":{"id":39581,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39575,"src":"6351:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39587,"nodeType":"IfStatement","src":"6346:62:49","trueBody":{"id":39586,"nodeType":"Block","src":"6359:49:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39583,"name":"BatchNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37388,"src":"6380:15:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6380:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39585,"nodeType":"RevertStatement","src":"6373:24:49"}]}},{"expression":{"arguments":[{"expression":{"id":39591,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"6466:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6468:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"6466:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39593,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"6515:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39594,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39559,"src":"6552:15:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":39595,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39561,"src":"6589:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39596,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39563,"src":"6620:9:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":39588,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"6417:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6427:18:49","memberName":"addQuorumSignature","nodeType":"MemberAccess","referencedDeclaration":43664,"src":"6417:28:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32[] memory,uint256,bytes memory)"}},"id":39597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6460:4:49","6507:6:49","6535:15:49","6581:6:49","6609:9:49"],"names":["self","height","membershipProof","weight","signature"],"nodeType":"FunctionCall","src":"6417:223:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39598,"nodeType":"ExpressionStatement","src":"6417:223:49"}]},"documentation":{"id":39554,"nodeType":"StructuredDocumentation","src":"5533:424:49","text":"@notice checks whether the provided batch signature for the block at height `height` is valid and accumulates that\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the checkpoint"},"functionSelector":"0db0f77c","implemented":true,"kind":"function","modifiers":[],"name":"addBottomUpMsgBatchSignature","nameLocation":"5971:28:49","parameters":{"id":39564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39556,"mutability":"mutable","name":"height","nameLocation":"6017:6:49","nodeType":"VariableDeclaration","scope":39600,"src":"6009:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39555,"name":"uint256","nodeType":"ElementaryTypeName","src":"6009:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39559,"mutability":"mutable","name":"membershipProof","nameLocation":"6050:15:49","nodeType":"VariableDeclaration","scope":39600,"src":"6033:32:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":39557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6033:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39558,"nodeType":"ArrayTypeName","src":"6033:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":39561,"mutability":"mutable","name":"weight","nameLocation":"6083:6:49","nodeType":"VariableDeclaration","scope":39600,"src":"6075:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39560,"name":"uint256","nodeType":"ElementaryTypeName","src":"6075:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39563,"mutability":"mutable","name":"signature","nameLocation":"6112:9:49","nodeType":"VariableDeclaration","scope":39600,"src":"6099:22:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39562,"name":"bytes","nodeType":"ElementaryTypeName","src":"6099:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5999:128:49"},"returnParameters":{"id":39565,"nodeType":"ParameterList","parameters":[],"src":"6137:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":39286,"name":"GatewayActorModifiers","nameLocations":["1444:21:49"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"1444:21:49"},"id":39287,"nodeType":"InheritanceSpecifier","src":"1444:21:49"}],"canonicalName":"BottomUpRouterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[39601,43137],"name":"BottomUpRouterFacet","nameLocation":"1421:19:49","scope":39602,"usedErrors":[32461,32466,32469,37380,37382,37384,37388,37394,37396,37398,37402,37406,37408,37412,37420,37424,37432,37434,37458,37474,37482,37486,37502,37508,37512]}],"license":"MIT OR Apache-2.0"},"id":49} \ No newline at end of file +{"abi":[{"type":"function","name":"addBottomUpMsgBatchSignature","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"membershipProof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pruneBottomUpMsgBatches","inputs":[{"name":"newRetentionHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"BatchAlreadyExists","inputs":[]},{"type":"error","name":"BatchNotCreated","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"FailedAddIncompleteQuorum","inputs":[]},{"type":"error","name":"FailedAddSignatory","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"FailedRemoveIncompleteQuorum","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidBatchSource","inputs":[]},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgNonce","inputs":[]},{"type":"error","name":"InvalidRetentionHeight","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"NotAuthorized","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"NotEnoughSubnetCircSupply","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"NotSystemActor","inputs":[]},{"type":"error","name":"QuorumAlreadyProcessed","inputs":[]},{"type":"error","name":"SignatureReplay","inputs":[]},{"type":"error","name":"SubnetNotFound","inputs":[]},{"type":"error","name":"ZeroMembershipWeight","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657612a56908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220c4d6de27f1233bb2baddb6170a0e148c0cd1cbad72a5f55f9b520ca9f859118f64736f6c63430008130033","sourceMap":"1425:5250:49:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":9972,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":8849,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":8487,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3053,"length":20},{"start":7556,"length":20},{"start":8232,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220c4d6de27f1233bb2baddb6170a0e148c0cd1cbad72a5f55f9b520ca9f859118f64736f6c63430008130033","sourceMap":"1425:5250:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;5280:43:49;1425:5250;5325:22;;;;;;1425:5250;5280:43;1425:5250;6065:40:67;;;;6061:102;;6210:22;;;;;;5280:43:49;1425:5250;;;;6178:30:67;1425:5250:49;;;6257:15:67;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6296:27:67;1425:5250:49;;;;;;;;;;;;;;6178:30:67;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;6473:9:67;;1425:5250:49;6484:5:67;;;;;;1425:5250:49;;;;;6178:30:67;;6473:9;1425:5250:49;;;;6518:21:67;1425:5250:49;;;;;-1:-1:-1;;;;;6543:13:67;;;;:::i;:::-;1425:5250:49;;;;;;6511:46:67;1425:5250:49;;;6511:46:67;:::i;:::-;1425:5250:49;6473:9:67;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6061:102:67;1425:5250:49;;-1:-1:-1;;;6128:24:67;;1425:5250:49;;6128:24:67;5268:55:49;1425:5250;;;5372:20;1425:5250;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5268:55;1425:5250;;;;5268:55;;1425:5250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;5280:27;1425:5250;;;;;;;;;;;;;-1:-1:-1;;1425:5250:49;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;4574:73:64;;:::i;:::-;4027:32:49;1425:5250;;;;;;:::i;:::-;4027:32;:::i;:::-;4316:24;1425:5250;;;;;;4296:17;;1425:5250;;4296:49;;;:86;;;1425:5250;4292:143;;1425:5250;4296:17;;1425:5250;;;3597:20:63;1425:5250:49;;3597:39:63;1425:5250:49;;;3597:39:63;1425:5250:49;4445:111;;1425:5250;;;4715:17;;;1425:5250;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;4296:17;;1425:5250;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4715:17;;;;;;2548:38:67;;4715:17:49;;;;;;:::i;:::-;1425:5250;;;4715:17;;4705:28;1425:5250;4867:20;1425:5250;;;4711:20:67;1425:5250:49;;4296:17;;1425:5250;4699:32:67;4695:94;;1425:5250:49;;4803:21:67;;;4799:81;;1425:5250:49;;;;;;;;;10884:32:36;1425:5250:49;4296:17;;1425:5250;10884:32:36;:::i;:::-;5066:3:67;5062:68;;1425:5250:49;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;5165:183:67;;1425:5250:49;;;;7293:3:67;1425:5250:49;5165:183:67;;1425:5250:49;;;;;5165:183:67;;1425:5250:49;;;;5165:183:67;;1425:5250:49;;;;;4296:17;;1425:5250;;;5390:15:67;1425:5250:49;;;;;;;;;;;;;;;;;;3597:39:63;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4201:17:63;;1425:5250:49;;;;;3597:20:63;1425:5250:49;;;;;4242:14:63;;;1425:5250:49;-1:-1:-1;;;;;1425:5250:49;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1425:5250:49;;3597:39:63;4266:13;;1425:5250:49;;4330:10:63;;;;1425:5250:49;;;4586:6:63;;;1425:5250:49;4373:13:63;;;;;;1425:5250:49;4362:9:63;4598:13;:10;;;:13;:::i;:::-;;1425:5250:49;;;-1:-1:-1;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4362:9:63;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;5062:68:67;1425:5250:49;;-1:-1:-1;;;5092:27:67;;1425:5250:49;;5092:27:67;4799:81;1425:5250:49;;-1:-1:-1;;;4847:22:67;;1425:5250:49;;4847:22:67;4695:94;1425:5250:49;;-1:-1:-1;;;4754:24:67;;1425:5250:49;;4754:24:67;1425:5250:49;2548:38:67;;;;;;;;1425:5250:49;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;1425:5250:49;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;;1425:5250:49;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1425:5250:49;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4445:111;1425:5250;;-1:-1:-1;;;4525:20:49;;1425:5250;;4525:20;4292:143;1425:5250;;-1:-1:-1;;;4405:19:49;;1425:5250;;4405:19;4296:86;:17;1425:5250;4296:17;;1425:5250;4349:12;:33;;4296:86;;1425:5250;;;;;;;;;;;;;;;;;;-1:-1:-1;;1425:5250:49;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;:::i;:::-;6910:20:67;1425:5250:49;;;6901:29:67;6897:91;;1425:5250:49;;;;2943:20:63;1425:5250:49;;2989:17:63;1425:5250:49;;;2989:17:63;1425:5250:49;2989:22:63;6372:62:49;;1425:5250;;;;1810:15:67;1425:5250:49;;;;;;1952:38:67;1425:5250:49;;;1952:38:67;:::i;:::-;1425:5250:49;;;;;;;;;;2000:89:67;;1425:5250:49;;;;;;2177:27:67;1425:5250:49;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;4352:12:36;1425:5250:49;;;;;;2173:119:67;;1425:5250:49;;;-1:-1:-1;;;;;1425:5250:49;;;2548:38:67;;1425:5250:49;;;;;;;;;2548:38:67;;;1425:5250:49;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;2538:49:67;;1425:5250:49;;;;;;;;;;;:::i;:::-;;2515:74:67;;2662:13;1425:5250:49;2662:13:67;;1425:5250:49;2145:27:33;2187:13;1425:5250:49;2182:116:33;2220:3;1425:5250:49;;2202:16:33;;;;;2278:8;;;;:::i;:::-;1425:5250:49;;9511:5:33;;;;;;1425:5250:49;9711:119:33;1425:5250:49;9711:119:33;1425:5250:49;;9711:119:33;9511:51;2220:3;-1:-1:-1;;1425:5250:49;;;;;;2187:13:33;;;9511:51;9711:119;1425:5250:49;9711:119:33;1425:5250:49;9711:119:33;1425:5250:49;;9711:119:33;9511:51;;2202:16;;1379:33;2708:77:67;;1425:5250:49;;;;2177:27:67;1425:5250:49;;8399:50:36;1425:5250:49;;;;;;;;;;8399:50:36;:::i;:::-;2958:3:67;2954:61;;1425:5250:49;;;;3024:21:67;1425:5250:49;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;:::i;:::-;;;;;;2182:116:33;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3095:18:67;;:28;1425:5250:49;;;;3095:28:67;:::i;:::-;1425:5250:49;;;2989:17:63;3160:14:67;;1425:5250:49;3138:36:67;;;3134:871;;1425:5250:49;3134:871:67;1425:5250:49;3195:12:67;;1425:5250:49;;3195:12:67;;1425:5250:49;;;;;-1:-1:-1;;;1425:5250:49;;;;;11184:35:36;1425:5250:49;;11184:35:36;:::i;:::-;3404:3:67;3400:87;;3509:212;1425:5250:49;3509:212:67;1425:5250:49;6208:27;1425:5250;;;;;;;;;;;;;3509:212:67;;;:::i;:::-;;;;3190:805;1425:5250:49;3400:87:67;1425:5250:49;;-1:-1:-1;;;3438:30:67;;1425:5250:49;;3438:30:67;3190:805;1425:5250:49;;;;3765:215:67;1425:5250:49;3765:215:67;1425:5250:49;6208:27;1425:5250;;;;;;;;;;;;3765:215:67;;;:::i;1425:5250:49:-;;;;-1:-1:-1;1425:5250:49;;;;;2548:38:67;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1425:5250:49;;;;2954:61:67;1425:5250:49;;-1:-1:-1;;;2984:20:67;;1425:5250:49;;2984:20:67;2708:77;1425:5250:49;;-1:-1:-1;;;2741:33:67;;-1:-1:-1;;;;;1425:5250:49;;;;2741:33:67;;1425:5250:49;;;2741:33:67;2173:119;1425:5250:49;;-1:-1:-1;;;2264:17:67;;1425:5250:49;;2264:17:67;2000:89;1425:5250:49;;-1:-1:-1;;;2060:18:67;;1425:5250:49;;2060:18:67;1425:5250:49;;;;;;;;;;;;6372:62;1425:5250;;-1:-1:-1;;;6406:17:49;;1425:5250;;6406:17;1425:5250;;;;;;;;;;;;;;;;;-1:-1:-1;;1425:5250:49;;;;;-1:-1:-1;1425:5250:49;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;2021:14;;;;:::i;:::-;1425:5250;:::i;:::-;2021:23;;1425:5250;;;;;;2021:25;;;1425:5250;2021:25;;1425:5250;;;;;;;;;;;;:::i;:::-;2021:25;;;;;;;;;;1425:5250;2021:25;;;1425:5250;-1:-1:-1;;;;;;1425:5250:49;2050:10;1425:5250;;;2021:39;2017:97;;2124:32;1425:5250;;;;:::i;2124:32::-;2050:10;12849:19:63;12845:78;;1425:5250:49;;;;;;:::i;:::-;;12959:13:63;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;12959:35:63;;1425:5250:49;;12959:35:63;;1425:5250:49;;;;;;:::i;:::-;2050:10;1425:5250;;;;12959:35:63;;;;;;;;1425:5250:49;12959:35:63;;;1425:5250:49;13012:19:63;;;;:::i;:::-;2258:13:49;;;2254:67;;1425:5250;;;2410:10;;1425:5250;2410:10;;2359:16;2410:10;:::i;:::-;1425:5250;;-1:-1:-1;2453:18:49;;;;;;2683:21;;;;;;:::i;:::-;2719:17;;;1425:5250;;2719:31;;;;2715:96;;1425:5250;;;;;;;;;;;;;;2934:10;1425:5250;;2934:10;:::i;:::-;2923:9;;;;1425:5250;:::i;:::-;;;;;:::i;:::-;;;;14383:9:63;1425:5250:49;14394:19:63;;;;;;1425:5250:49;;;;;2960:24;1425:5250;;;;2956:510;;1425:5250;2956:510;1425:5250;;3229:178;;;;;;;;;;3340:12;3229:178;;;1425:5250;;;;;;;;;;;;3229:178;;1425:5250;;;;;;;;;;;;;;;;4419:21:29;;:29;4415:108;;4574:31;;4622:69;4574:31;1425:5250:49;4574:31:29;;;;2050:10:49;;4574:31:29;;1425:5250:49;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;2050:10;4622:69:29;:::i;1425:5250:49:-;;;-1:-1:-1;1425:5250:49;;4415:108:29;-1:-1:-1;;;4471:41:29;;4427:4;4471:41;;;1425:5250:49;4471:41:29;1425:5250:49;-1:-1:-1;;;;1425:5250:49;;;;;;;;14383:9:63;14454:12;;;1425:5250:49;14454:12:63;;;:::i;:::-;;;;:::i;:::-;1425:5250:49;14383:9:63;;1425:5250:49;;;;;;;;;;;;2715:96;1425:5250;;-1:-1:-1;;;2773:27:49;;1425:5250;;2773:27;2442:9;2503:10;;2544:37;1425:5250;2503:10;2556:25;:21;:13;2489:41;2503:10;;1425:5250;2503:21;:13;:10;;;;;;;:::i;:::-;:13;;:::i;:::-;:21;;:::i;:::-;:27;1425:5250;2489:41;;:::i;:::-;2556:10;;;;;:::i;2544:37::-;1425:5250;;2442:9;;;2254:67;1425:5250;;-1:-1:-1;;;2294:16:49;;1425:5250;;2294:16;12959:35:63;;;;1425:5250:49;12959:35:63;;;;;;:::i;:::-;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13012:19:63;1425:5250:49;;;;;;12959:35:63;;1425:5250:49;;;;;;:::i;:::-;;;;;;;;;;;12959:35:63;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12845:78:63;1425:5250:49;;-1:-1:-1;;;12891:21:63;;1425:5250:49;;12891:21:63;2017:97:49;1425:5250;;-1:-1:-1;;;;;;2083:20:49;;1425:5250;;2083:20;2021:25;;;;;;;;;;;;;;;;;:::i;:::-;;;1425:5250;;;;;;;:::i;:::-;2021:25;;;;;;;;;1425:5250;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;:::o;:::-;;2548:38:67;;;1425:5250:49;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;:::o;:::-;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1425:5250:49;;;;2548:38:67;1425:5250:49;-1:-1:-1;;1425:5250:49;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1425:5250:49;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1425:5250:49;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1425:5250:49;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;1425:5250:49;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1425:5250:49;;-1:-1:-1;1425:5250:49;;-1:-1:-1;1425:5250:49;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;1425:5250:49;;;;;-1:-1:-1;1425:5250:49;;;;;;;;;;;;;;-1:-1:-1;1425:5250:49;;;:::o;6737:692:29:-;;6952:471;;;1425:5250:49;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;1425:5250:49;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;1425:5250:49;;;7261:24:29;;;1425:5250:49;;;7261:24:29;6952:471;-1:-1:-1;1425:5250:49;;8828:21:29;:17;;9000:142;;;;;;8824:411;1425:5250:49;;-1:-1:-1;;;8628:17:29;;;;;1425:5250:49;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;1425:5250:49;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1425:5250:49;;;;;;2548:38:67;1425:5250:49;-1:-1:-1;;1425:5250:49;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;-1:-1:-1;1425:5250:49;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;;1425:5250:49;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;1425:5250:49;;-1:-1:-1;1425:5250:49;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1425:5250:49;;;;;2548:38:67;;;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1425:5250:49;;;;;;;;;;;;-1:-1:-1;1425:5250:49;;;;;;;;;;;2548:38:67;;-1:-1:-1;1425:5250:49;2548:38:67;-1:-1:-1;;1425:5250:49;;;2548:38:67;1425:5250:49;;;;;;;;;-1:-1:-1;1425:5250:49;;;;;;;;;;;;;;;;-1:-1:-1;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;1425:5250:49;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;-1:-1:-1;;;1425:5250:49;;;;;;;;;;;;-1:-1:-1;1425:5250:49;;;;;2548:38:67;;;;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1425:5250:49;;;;;;;;;;;;;;;;-1:-1:-1;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13234:272:63:-;1425:5250:49;13443:15:63;1425:5250:49;;;;;;;13443:17:63;;;;;;;;;;;;1425:5250:49;;;;;;:::i;:::-;13443:17:63;;;;;;;;;;3946:45:64;13443:17:63;;;13234:272;1425:5250:49;3946:45:64;1425:5250:49;3946:45:64;1425:5250:49;;;;;3946:45:64;1425:5250:49;13480:9:63;1425:5250:49;13443:17:63;13480:9;;1425:5250:49;:::i;:::-;;;;;;;;;;;;13480:19:63;;;13443:17;13480:19;;1425:5250:49;;;;;;:::i;:::-;13480:19:63;;;;;;;;;3946:45:64;13480:19:63;;;13234:272;13479:20;;;13234:272;:::o;13480:19::-;;;;;;-1:-1:-1;13480:19:63;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;13443:17;;;;;;;;;;;;;;;:::i;:::-;;;1425:5250:49;;;;;;13443:17:63;;;1425:5250:49;;;13443:17:63;;;;;1425:5250:49;;;;;-1:-1:-1;;;;;15328:13:63;1425:5250:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1425:5250:49;;;-1:-1:-1;1425:5250:49;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1425:5250:49;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2548:38:67;1425:5250:49;-1:-1:-1;;1425:5250:49;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;:::o;14837:2300:63:-;;15012:19;:16;;;:19;;:28;:36;1425:5250:49;;;;;;;15012:38:63;;;;;1425:5250:49;15012:38:63;;;;;;1425:5250:49;;;;;;:::i;:::-;15012:38:63;;;;;;;;;;3946:45:64;15012:38:63;;;14837:2300;15008:102;;;15292:16;;;:19;;:28;1425:5250:49;;;;;;;15292:50:63;;;;;;1425:5250:49;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;15292:50:63;;;;;;;;;;3946:45:64;15292:50:63;;;14837:2300;15291:51;;15287:172;;1425:5250:49;15613:32:63;3946:45:64;1425:5250:49;;;;;;:::i;:::-;;;;;;;;15678:16:63;;1425:5250:49;15678:16:63;;1425:5250:49;;;;;;;;;;;15678:41:63;;;;;1425:5250:49;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;15678:41:63;:26;;:41;;;;;;;3946:45:64;15678:41:63;;;14837:2300;1425:5250:49;;;;:::i;:::-;15746:19:63;15733:32;;15746:19;;15945:34;;;;;:::i;:::-;15997:11;;15993:78;;1425:5250:49;16088:27:63;;1425:5250:49;;-1:-1:-1;;;;;1425:5250:49;;;;;16119:16:63;:22;:16;;:22;1425:5250:49;;16088:53:63;;16084:121;;16218:32;;1425:5250:49;16218:32:63;;1425:5250:49;16218:32:63;-1:-1:-1;;;16218:32:63;;;;:::i;:::-;1425:5250:49;;;;-1:-1:-1;;;1425:5250:49;;;;;16453:9:63;1425:5250:49;:::i;:::-;;;;;;;;;;;;16453:20:63;;;;;;1425:5250:49;;;;;;:::i;:::-;16453:20:63;;;;;;;;;;;;;3946:45:64;16453:20:63;;;15729:1310;-1:-1:-1;1425:5250:49;;-1:-1:-1;;;16430:59:63;;1425:5250:49;;;;;-1:-1:-1;;;;;1425:5250:49;16430:59:63;;;;;;;3946:45:64;16430:59:63;;;15729:1310;16415:74;3946:45:64;16415:74:63;1425:5250:49;16415:74:63;15729:1310;;1425:5250:49;;;;;;;;;;17100:30:63;;;;1425:5250:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;17100:30:63;:16;;:30;;;;;;;;14837:2300;;;:::o;17100:30::-;;;3946:45:64;17100:30:63;;;;;;:::i;:::-;;;1425:5250:49;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;17100:30:63:-;1425:5250:49;;;3946:45:64;1425:5250:49;;;;;16430:59:63;;;;;;;;;;;;;;:::i;:::-;;;1425:5250:49;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;3946:45:64;1425:5250:49;;;;;;;;:::i;:::-;;;;;16430:59:63;;;;;1425:5250:49;;;;16430:59:63;;;;;;1425:5250:49;;;3946:45:64;1425:5250:49;;;;;16453:20:63;;-1:-1:-1;16453:20:63;-1:-1:-1;16453:20:63;;;;;;;;;;;;;:::i;:::-;;;1425:5250:49;;;;;;;;;;:::i;:::-;16453:20:63;;;;;;;;16084:121;1425:5250:49;;-1:-1:-1;;;16168:22:63;;1425:5250:49;;16168:22:63;15993:78;1425:5250:49;;-1:-1:-1;;;16035:21:63;;1425:5250:49;;16035:21:63;15729:1310;1425:5250:49;;;;;;;;;:::i;:::-;16510:31:63;16506:533;;15729:1310;3946:45:64;15729:1310:63;1425:5250:49;15729:1310:63;;;16506:533;1425:5250:49;;16677:21:63;1425:5250:49;-1:-1:-1;;;;;1425:5250:49;;;;;16702:16:63;:22;:16;;:22;1425:5250:49;;16677:47:63;;16673:115;;16801:26;1425:5250:49;16801:26:63;-1:-1:-1;;;16801:26:63;3946:45:64;16801:26:63;;:::i;:::-;1425:5250:49;;;;-1:-1:-1;;;1425:5250:49;;;16677:21:63;1425:5250:49;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;4618:99:76;;;;1425:5250:49;16506:533:63;;;;;;;16673:115;1425:5250:49;;-1:-1:-1;;;16751:22:63;;1425:5250:49;;16751:22:63;15678:41;;;;;;;;;;;;;;:::i;:::-;;;1425:5250:49;;;;;;;;;;;;15678:41:63;;;;;;;;;;1425:5250:49;;;3946:45:64;1425:5250:49;;;;;15287:172:63;1425:5250:49;;;;;;;;;;2508:20:60;;;1425:5250:49;;;;2508:20:60;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;-1:-1:-1;;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2508:20:60;2548:38:67;;2508:20:60;;;;;;:::i;:::-;1425:5250:49;2498:31:60;;3946:45:64;1425:5250:49;;3946:45:64;1425:5250:49;;:::i;15292:50:63:-;;;;;;;;;;;;;;:::i;:::-;;;;15008:102;1425:5250:49;;-1:-1:-1;;;15073:26:63;;1425:5250:49;;15073:26:63;15012:38;;;;;;;;;;;;;;:::i;:::-;;;;;1425:5250:49;;;3946:45:64;1425:5250:49;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1425:5250:49;;;;;;;;;;;;;;;17298:361:63;17459:10;;;;1425:5250:49;-1:-1:-1;;;;;17479:25:63;1425:5250:49;;-1:-1:-1;17455:108:63;;17576:10;1425:5250:49;17576:22:63;17572:81;;17298:361::o;17572:81::-;17459:10;1425:5250:49;-1:-1:-1;;;17621:21:63;;;;;17455:108;17459:10;1425:5250:49;-1:-1:-1;;;17527:25:63;;;;;4430:138:64;1425:5250:49;;-1:-1:-1;;;4486:26:64;;:10;:26;;;1425:5250:49;4486:26:64;1425:5250:49;;;4486:24:64;:26;;;;;;;-1:-1:-1;4486:26:64;;;4430:138;4485:27;;4481:81;;4430:138::o;4481:81::-;1425:5250:49;;-1:-1:-1;;;4535:16:64;;4486:26;;4535:16;4486:26;;;;;;;;;;;;;;:::i;:::-;;;;1425:5250:49;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;2483:766:32:-;1425:5250:49;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;1425:5250:49;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;1425:5250:49;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;1425:5250:49;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;1425:5250:49:-;5015:22:67;1425:5250:49;;;;;;5015:22:67;-1:-1:-1;1425:5250:49;;;;-1:-1:-1;1425:5250:49;:::o;2215:404:36:-;-1:-1:-1;1425:5250:49;;;4352:12:36;1425:5250:49;;;;;;;;5015:22:67;1425:5250:49;-1:-1:-1;;;1425:5250:49;;;;;;;;;;4352:12:36;1425:5250:49;;;5015:22:67;1425:5250:49;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5015:22:67;1425:5250:49;;;;4352:12:36;1425:5250:49;;;;4352:12:36;2548:11;:::o;1425:5250:49:-;-1:-1:-1;;;1425:5250:49;;;;;;;;2294:319:36;2590:12;;;:::o;2215:404::-;-1:-1:-1;1425:5250:49;;;4352:12:36;;;1425:5250:49;;;;;;2299:21:36;;1425:5250:49;;;-1:-1:-1;;;1425:5250:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1425:5250:49;;-1:-1:-1;1425:5250:49;;;;;;-1:-1:-1;1425:5250:49;2494:12:36;1425:5250:49;;;-1:-1:-1;1425:5250:49;;;2548:11:36;:::o;2294:319::-;2590:12;;-1:-1:-1;2590:12:36;:::o;2787:1388::-;-1:-1:-1;1425:5250:49;;;2990:12:36;1425:5250:49;;;;;;-1:-1:-1;;1425:5250:49;3024:15:36;;;;-1:-1:-1;;1425:5250:49;;;;;;;;;3345:22:67;1425:5250:49;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;1425:5250:49;;;3345:22:67;1425:5250:49;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3345:22:67;1425:5250:49;;;2990:12:36;1425:5250:49;;;;;;2990:12:36;4104:11;:::o;1425:5250:49:-;-1:-1:-1;;;1425:5250:49;;;;;;;;3502:398:36;1425:5250:49;3572:22:36;3694:26;3572:22;;:::i;:::-;1425:5250:49;;;;;;3694:26:36;;;;:::i;1425:5250:49:-;;;;;2990:12:36;1425:5250:49;;;;;;3502:398:36;;;;;1425:5250:49;-1:-1:-1;;;1425:5250:49;;;;;;;;;-1:-1:-1;;;1425:5250:49;;;;;;;;3020:1149:36;4146:12;;;:::o","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":9944,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":8821,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":8459,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3025,"length":20},{"start":7528,"length":20},{"start":8204,"length":20}]}}},"methodIdentifiers":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":"0db0f77c","createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":"32e7661f","execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":"0bed7615","pruneBottomUpMsgBatches(uint256)":"bacc656d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddSignatory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedRemoveIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRetentionHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughSubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuorumAlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureReplay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMembershipWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"membershipProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"addBottomUpMsgBatchSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"execBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newRetentionHeight\",\"type\":\"uint256\"}],\"name\":\"pruneBottomUpMsgBatches\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)\":{\"params\":{\"height\":\"- the height of the block in the checkpoint\",\"membershipProof\":\"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`\",\"signature\":\"- the signature of the checkpoint\",\"weight\":\"- the weight of the validator\"}},\"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)\":{\"params\":{\"batch\":\"- a bottom-up batch\",\"membershipRootHash\":\"- a root hash of the Merkle tree built from the validator public keys and their weight\",\"membershipWeight\":\"- the total weight of the membership\"}},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"details\":\"this method is called by the corresponding subnet actor. Called from a subnet actor if the batch is valid.\",\"params\":{\"batch\":\"The batch of bottom-up cross-network messages to be executed.\"}},\"pruneBottomUpMsgBatches(uint256)\":{\"params\":{\"newRetentionHeight\":\"- the height of the oldest batch to keep\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)\":{\"notice\":\"checks whether the provided batch signature for the block at height `height` is valid and accumulates that\"},\"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)\":{\"notice\":\"cuts a new message batch if the batch period is reached without the maximum number of messages being reached.\"},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"notice\":\"submit a batch of cross-net messages for execution.\"},\"pruneBottomUpMsgBatches(uint256)\":{\"notice\":\"Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/BottomUpRouterFacet.sol\":\"BottomUpRouterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402\",\"dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3\",\"dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"BatchAlreadyExists"},{"inputs":[],"type":"error","name":"BatchNotCreated"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"FailedAddIncompleteQuorum"},{"inputs":[],"type":"error","name":"FailedAddSignatory"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"FailedRemoveIncompleteQuorum"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidBatchSource"},{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgNonce"},{"inputs":[],"type":"error","name":"InvalidRetentionHeight"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotAuthorized"},{"inputs":[],"type":"error","name":"NotEnoughSubnetCircSupply"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[],"type":"error","name":"QuorumAlreadyProcessed"},{"inputs":[],"type":"error","name":"SignatureReplay"},{"inputs":[],"type":"error","name":"SubnetNotFound"},{"inputs":[],"type":"error","name":"ZeroMembershipWeight"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32[]","name":"membershipProof","type":"bytes32[]"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addBottomUpMsgBatchSignature"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}],"stateMutability":"nonpayable","type":"function","name":"execBottomUpMsgBatch"},{"inputs":[{"internalType":"uint256","name":"newRetentionHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pruneBottomUpMsgBatches"}],"devdoc":{"kind":"dev","methods":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":{"params":{"height":"- the height of the block in the checkpoint","membershipProof":"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`","signature":"- the signature of the checkpoint","weight":"- the weight of the validator"}},"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":{"params":{"batch":"- a bottom-up batch","membershipRootHash":"- a root hash of the Merkle tree built from the validator public keys and their weight","membershipWeight":"- the total weight of the membership"}},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"details":"this method is called by the corresponding subnet actor. Called from a subnet actor if the batch is valid.","params":{"batch":"The batch of bottom-up cross-network messages to be executed."}},"pruneBottomUpMsgBatches(uint256)":{"params":{"newRetentionHeight":"- the height of the oldest batch to keep"}}},"version":1},"userdoc":{"kind":"user","methods":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":{"notice":"checks whether the provided batch signature for the block at height `height` is valid and accumulates that"},"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":{"notice":"cuts a new message batch if the batch period is reached without the maximum number of messages being reached."},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"notice":"submit a batch of cross-net messages for execution."},"pruneBottomUpMsgBatches(uint256)":{"notice":"Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/BottomUpRouterFacet.sol":"BottomUpRouterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa","urls":["bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402","dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451","urls":["bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3","dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","id":39602,"exportedSymbols":{"Address":[32838],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpMsgBatch":[49898],"BottomUpRouterFacet":[39601],"CrossMsg":[49927],"CrossMsgHelper":[40725],"GatewayActorModifiers":[43081],"IPCMsgType":[37364],"IRelayerRewardDistributor":[40372],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"LibGateway":[42888],"LibQuorum":[43901],"MaxMsgsPerBatchExceeded":[37382],"NotEnoughSubnetCircSupply":[37474],"NotRegisteredSubnet":[37482],"QuorumObjKind":[49965],"StorableMsg":[49944],"StorableMsgHelper":[47414],"Subnet":[50044],"SubnetActorGetterFacet":[51235],"SubnetID":[50030],"SubnetIDHelper":[48025],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SupplySource":[50179],"SupplySourceHelper":[48351]},"nodeType":"SourceUnit","src":"46:6630:49","nodes":[{"id":39237,"nodeType":"PragmaDirective","src":"46:23:49","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39239,"nodeType":"ImportDirective","src":"71:76:49","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":40373,"symbolAliases":[{"foreign":{"id":39238,"name":"IRelayerRewardDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40372,"src":"79:25:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39241,"nodeType":"ImportDirective","src":"148:75:49","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":43082,"symbolAliases":[{"foreign":{"id":39240,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43081,"src":"156:21:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39243,"nodeType":"ImportDirective","src":"224:60:49","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":39242,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49898,"src":"232:16:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39245,"nodeType":"ImportDirective","src":"285:52:49","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":42889,"symbolAliases":[{"foreign":{"id":39244,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"293:10:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39258,"nodeType":"ImportDirective","src":"338:293:49","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39246,"name":"BatchNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37388,"src":"346:15:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39247,"name":"BatchAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37380,"src":"363:18:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39248,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"383:17:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39249,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37474,"src":"402:25:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39250,"name":"SubnetNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37506,"src":"429:15:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39251,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"446:14:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39252,"name":"InvalidBatchSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37412,"src":"462:18:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39253,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"482:23:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39254,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"507:19:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39255,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"528:24:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39256,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"554:19:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39257,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"575:20:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39260,"nodeType":"ImportDirective","src":"632:48:49","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":39259,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"640:6:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39262,"nodeType":"ImportDirective","src":"681:50:49","nodes":[],"absolutePath":"src/lib/LibQuorum.sol","file":"../../lib/LibQuorum.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":43902,"symbolAliases":[{"foreign":{"id":39261,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"689:9:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39264,"nodeType":"ImportDirective","src":"732:55:49","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":50013,"symbolAliases":[{"foreign":{"id":39263,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49965,"src":"740:13:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39266,"nodeType":"ImportDirective","src":"788:65:49","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":39265,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"796:7:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39268,"nodeType":"ImportDirective","src":"854:54:49","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":39267,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"862:10:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39271,"nodeType":"ImportDirective","src":"910:62:49","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":39269,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"918:8:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39270,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"928:8:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39273,"nodeType":"ImportDirective","src":"973:60:49","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":39272,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"981:14:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39275,"nodeType":"ImportDirective","src":"1035:68:49","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":39274,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"1043:18:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39277,"nodeType":"ImportDirective","src":"1104:54:49","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":39276,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"1112:12:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39279,"nodeType":"ImportDirective","src":"1159:79:49","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":39278,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"1167:22:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39281,"nodeType":"ImportDirective","src":"1240:60:49","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":39280,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"1248:14:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39283,"nodeType":"ImportDirective","src":"1301:66:49","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":39282,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"1309:17:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39285,"nodeType":"ImportDirective","src":"1368:55:49","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":39284,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"1376:11:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39601,"nodeType":"ContractDefinition","src":"1425:5250:49","nodes":[{"id":39291,"nodeType":"UsingForDirective","src":"1485:34:49","nodes":[],"global":false,"libraryName":{"id":39288,"name":"SubnetIDHelper","nameLocations":["1491:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"1491:14:49"},"typeName":{"id":39290,"nodeType":"UserDefinedTypeName","pathNode":{"id":39289,"name":"SubnetID","nameLocations":["1510:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1510:8:49"},"referencedDeclaration":50030,"src":"1510:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":39295,"nodeType":"UsingForDirective","src":"1524:34:49","nodes":[],"global":false,"libraryName":{"id":39292,"name":"CrossMsgHelper","nameLocations":["1530:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"1530:14:49"},"typeName":{"id":39294,"nodeType":"UserDefinedTypeName","pathNode":{"id":39293,"name":"CrossMsg","nameLocations":["1549:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"1549:8:49"},"referencedDeclaration":49927,"src":"1549:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":39299,"nodeType":"UsingForDirective","src":"1563:42:49","nodes":[],"global":false,"libraryName":{"id":39296,"name":"SupplySourceHelper","nameLocations":["1569:18:49"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"1569:18:49"},"typeName":{"id":39298,"nodeType":"UserDefinedTypeName","pathNode":{"id":39297,"name":"SupplySource","nameLocations":["1592:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"1592:12:49"},"referencedDeclaration":50179,"src":"1592:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":39303,"nodeType":"UsingForDirective","src":"1610:40:49","nodes":[],"global":false,"libraryName":{"id":39300,"name":"StorableMsgHelper","nameLocations":["1616:17:49"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"1616:17:49"},"typeName":{"id":39302,"nodeType":"UserDefinedTypeName","pathNode":{"id":39301,"name":"StorableMsg","nameLocations":["1638:11:49"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"1638:11:49"},"referencedDeclaration":49944,"src":"1638:11:49","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":39442,"nodeType":"FunctionDefinition","src":"1935:1537:49","nodes":[],"body":{"id":39441,"nodeType":"Block","src":"2007:1465:49","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":39316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":39310,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2021:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2027:8:49","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49889,"src":"2021:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":39312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2036:8:49","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47718,"src":"2021:23:49","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2021:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":39314,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2050:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2054:6:49","memberName":"sender","nodeType":"MemberAccess","src":"2050:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2021:39:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39321,"nodeType":"IfStatement","src":"2017:97:49","trueBody":{"id":39320,"nodeType":"Block","src":"2062:52:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39317,"name":"InvalidBatchSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37412,"src":"2083:18:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2083:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39319,"nodeType":"RevertStatement","src":"2076:27:49"}]}},{"expression":{"arguments":[{"id":39325,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2150:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39322,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"2124:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2135:14:49","memberName":"checkMsgLength","nodeType":"MemberAccess","referencedDeclaration":42887,"src":"2124:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) view"}},"id":39326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2124:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39327,"nodeType":"ExpressionStatement","src":"2124:32:49"},{"assignments":[39329,39332],"declarations":[{"constant":false,"id":39329,"mutability":"mutable","name":"subnetExists","nameLocation":"2173:12:49","nodeType":"VariableDeclaration","scope":39441,"src":"2168:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39328,"name":"bool","nodeType":"ElementaryTypeName","src":"2168:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39332,"mutability":"mutable","name":"subnet","nameLocation":"2202:6:49","nodeType":"VariableDeclaration","scope":39441,"src":"2187:21:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":39331,"nodeType":"UserDefinedTypeName","pathNode":{"id":39330,"name":"Subnet","nameLocations":["2187:6:49"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"2187:6:49"},"referencedDeclaration":50044,"src":"2187:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":39338,"initialValue":{"arguments":[{"expression":{"id":39335,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2233:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2237:6:49","memberName":"sender","nodeType":"MemberAccess","src":"2233:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":39333,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"2212:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2223:9:49","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42599,"src":"2212:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":39337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"2167:77:49"},{"condition":{"id":39340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2258:13:49","subExpression":{"id":39339,"name":"subnetExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39329,"src":"2259:12:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39345,"nodeType":"IfStatement","src":"2254:67:49","trueBody":{"id":39344,"nodeType":"Block","src":"2273:48:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39341,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"2294:14:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2294:16:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39343,"nodeType":"RevertStatement","src":"2287:23:49"}]}},{"assignments":[39347],"declarations":[{"constant":false,"id":39347,"mutability":"mutable","name":"totalValue","nameLocation":"2339:10:49","nodeType":"VariableDeclaration","scope":39441,"src":"2331:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39346,"name":"uint256","nodeType":"ElementaryTypeName","src":"2331:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39348,"nodeType":"VariableDeclarationStatement","src":"2331:18:49"},{"assignments":[39350],"declarations":[{"constant":false,"id":39350,"mutability":"mutable","name":"totalFee","nameLocation":"2367:8:49","nodeType":"VariableDeclaration","scope":39441,"src":"2359:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39349,"name":"uint256","nodeType":"ElementaryTypeName","src":"2359:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39351,"nodeType":"VariableDeclarationStatement","src":"2359:16:49"},{"assignments":[39353],"declarations":[{"constant":false,"id":39353,"mutability":"mutable","name":"crossMsgLength","nameLocation":"2393:14:49","nodeType":"VariableDeclaration","scope":39441,"src":"2385:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39352,"name":"uint256","nodeType":"ElementaryTypeName","src":"2385:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39357,"initialValue":{"expression":{"expression":{"id":39354,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2410:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2416:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"2410:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":39356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2421:6:49","memberName":"length","nodeType":"MemberAccess","src":"2410:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2385:42:49"},{"body":{"id":39386,"nodeType":"Block","src":"2475:176:49","statements":[{"expression":{"id":39371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39364,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39347,"src":"2489:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"baseExpression":{"expression":{"id":39365,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2503:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2509:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"2503:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":39368,"indexExpression":{"id":39367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2514:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2503:13:49","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":39369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2517:7:49","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"2503:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":39370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2525:5:49","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49935,"src":"2503:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2489:41:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39372,"nodeType":"ExpressionStatement","src":"2489:41:49"},{"expression":{"id":39380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39373,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"2544:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"baseExpression":{"expression":{"id":39374,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2556:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2562:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"2556:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":39377,"indexExpression":{"id":39376,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2567:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2556:13:49","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":39378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2570:7:49","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"2556:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":39379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2578:3:49","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":49943,"src":"2556:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2544:37:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39381,"nodeType":"ExpressionStatement","src":"2544:37:49"},{"id":39385,"nodeType":"UncheckedBlock","src":"2595:46:49","statements":[{"expression":{"id":39383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2623:3:49","subExpression":{"id":39382,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2625:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39384,"nodeType":"ExpressionStatement","src":"2623:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39361,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2453:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39362,"name":"crossMsgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39353,"src":"2457:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2453:18:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39387,"initializationExpression":{"assignments":[39359],"declarations":[{"constant":false,"id":39359,"mutability":"mutable","name":"i","nameLocation":"2450:1:49","nodeType":"VariableDeclaration","scope":39387,"src":"2442:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39358,"name":"uint256","nodeType":"ElementaryTypeName","src":"2442:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39360,"nodeType":"VariableDeclarationStatement","src":"2442:9:49"},"nodeType":"ForStatement","src":"2437:214:49"},{"assignments":[39389],"declarations":[{"constant":false,"id":39389,"mutability":"mutable","name":"totalAmount","nameLocation":"2669:11:49","nodeType":"VariableDeclaration","scope":39441,"src":"2661:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39388,"name":"uint256","nodeType":"ElementaryTypeName","src":"2661:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39393,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39390,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"2683:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":39391,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39347,"src":"2694:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2683:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2661:43:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39394,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"2719:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2726:10:49","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"2719:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39396,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39389,"src":"2739:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2719:31:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39402,"nodeType":"IfStatement","src":"2715:96:49","trueBody":{"id":39401,"nodeType":"Block","src":"2752:59:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39398,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37474,"src":"2773:25:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:27:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39400,"nodeType":"RevertStatement","src":"2766:34:49"}]}},{"expression":{"id":39407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39403,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"2821:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2828:10:49","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"2821:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":39406,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39389,"src":"2842:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2821:32:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39408,"nodeType":"ExpressionStatement","src":"2821:32:49"},{"expression":{"arguments":[{"expression":{"id":39412,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"2923:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2930:2:49","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"2923:9:49","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},{"expression":{"id":39414,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2934:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2940:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"2934:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":39409,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"2898:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2909:13:49","memberName":"applyMessages","nodeType":"MemberAccess","referencedDeclaration":42696,"src":"2898:24:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory[] memory)"}},"id":39416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2898:47:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39417,"nodeType":"ExpressionStatement","src":"2898:47:49"},{"condition":{"expression":{"id":39418,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2960:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2962:22:49","memberName":"crossMsgRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43011,"src":"2960:24:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39440,"nodeType":"IfStatement","src":"2956:510:49","trueBody":{"id":39439,"nodeType":"Block","src":"2986:480:49","statements":[{"expression":{"arguments":[{"expression":{"id":39423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3195:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3199:6:49","memberName":"sender","nodeType":"MemberAccess","src":"3195:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":39427,"name":"IRelayerRewardDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40372,"src":"3265:25:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRelayerRewardDistributor_$40372_$","typeString":"type(contract IRelayerRewardDistributor)"}},"id":39428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3291:26:49","memberName":"distributeRewardToRelayers","nodeType":"MemberAccess","referencedDeclaration":40371,"src":"3265:52:49","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$49965_$returns$__$","typeString":"function IRelayerRewardDistributor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"}},{"components":[{"expression":{"id":39429,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3340:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":39430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3346:6:49","memberName":"number","nodeType":"MemberAccess","src":"3340:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39431,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"3354:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39432,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49965,"src":"3364:13:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$49965_$","typeString":"type(enum QuorumObjKind)"}},"id":39433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3378:10:49","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":49963,"src":"3364:24:49","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}}],"id":39434,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3339:50:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$49965_$","typeString":"tuple(uint256,uint256,enum QuorumObjKind)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$49965_$returns$__$","typeString":"function IRelayerRewardDistributor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"},{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$49965_$","typeString":"tuple(uint256,uint256,enum QuorumObjKind)"}],"expression":{"id":39425,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3229:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3233:10:49","memberName":"encodeCall","nodeType":"MemberAccess","src":"3229:14:49","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3229:178:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":39436,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"3432:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39420,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"3139:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":39422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3147:21:49","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32570,"src":"3139:29:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":39437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3187:6:49","3223:4:49","3425:5:49"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3139:316:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":39438,"nodeType":"ExpressionStatement","src":"3139:316:49"}]}}]},"documentation":{"id":39304,"nodeType":"StructuredDocumentation","src":"1656:274:49","text":"@notice submit a batch of cross-net messages for execution.\n @dev this method is called by the corresponding subnet actor.\n Called from a subnet actor if the batch is valid.\n @param batch The batch of bottom-up cross-network messages to be executed."},"functionSelector":"0bed7615","implemented":true,"kind":"function","modifiers":[],"name":"execBottomUpMsgBatch","nameLocation":"1944:20:49","parameters":{"id":39308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39307,"mutability":"mutable","name":"batch","nameLocation":"1991:5:49","nodeType":"VariableDeclaration","scope":39442,"src":"1965:31:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":39306,"nodeType":"UserDefinedTypeName","pathNode":{"id":39305,"name":"BottomUpMsgBatch","nameLocations":["1965:16:49"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"1965:16:49"},"referencedDeclaration":49898,"src":"1965:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"1964:33:49"},"returnParameters":{"id":39309,"nodeType":"ParameterList","parameters":[],"src":"2007:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39515,"nodeType":"FunctionDefinition","src":"3843:1111:49","nodes":[],"body":{"id":39514,"nodeType":"Block","src":"4017:937:49","nodes":[],"statements":[{"expression":{"arguments":[{"id":39458,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4053:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39455,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"4027:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4038:14:49","memberName":"checkMsgLength","nodeType":"MemberAccess","referencedDeclaration":42887,"src":"4027:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) view"}},"id":39459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4027:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39460,"nodeType":"ExpressionStatement","src":"4027:32:49"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39461,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4296:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4302:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"4296:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":39463,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"4316:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4318:22:49","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":42989,"src":"4316:24:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4296:44:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4344:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4296:49:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39468,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4349:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":39469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4355:6:49","memberName":"number","nodeType":"MemberAccess","src":"4349:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":39470,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4365:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4371:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"4365:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4349:33:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4296:86:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39478,"nodeType":"IfStatement","src":"4292:143:49","trueBody":{"id":39477,"nodeType":"Block","src":"4384:51:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39474,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"4405:17:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4405:19:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39476,"nodeType":"RevertStatement","src":"4398:26:49"}]}},{"condition":{"arguments":[{"expression":{"id":39481,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4484:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4490:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"4484:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39479,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"4449:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4460:23:49","memberName":"bottomUpBatchMsgsExists","nodeType":"MemberAccess","referencedDeclaration":41860,"src":"4449:34:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":39483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4449:53:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39488,"nodeType":"IfStatement","src":"4445:111:49","trueBody":{"id":39487,"nodeType":"Block","src":"4504:52:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39484,"name":"BatchAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37380,"src":"4525:18:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4525:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39486,"nodeType":"RevertStatement","src":"4518:27:49"}]}},{"expression":{"arguments":[{"expression":{"id":39492,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"4613:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4615:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"4613:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},{"expression":{"id":39494,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4665:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4671:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"4665:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":39499,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4726:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39497,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4715:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4719:6:49","memberName":"encode","nodeType":"MemberAccess","src":"4715:10:49","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4715:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":39496,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4705:9:49","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":39501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4705:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39502,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39448,"src":"4767:18:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39503,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39450,"src":"4817:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39504,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"4867:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4869:18:49","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":42974,"src":"4867:20:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":39489,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"4566:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43901_$","typeString":"type(library LibQuorum)"}},"id":39491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4576:16:49","memberName":"createQuorumInfo","nodeType":"MemberAccess","referencedDeclaration":43693,"src":"4566:26:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50012_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32,bytes32,uint256,uint256)"}},"id":39506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4607:4:49","4654:9:49","4696:7:49","4747:18:49","4799:16:49","4847:18:49"],"names":["self","objHeight","objHash","membershipRootHash","membershipWeight","majorityPercentage"],"nodeType":"FunctionCall","src":"4566:332:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39507,"nodeType":"ExpressionStatement","src":"4566:332:49"},{"expression":{"arguments":[{"id":39511,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4941:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39508,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"4908:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4919:21:49","memberName":"storeBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41951,"src":"4908:32:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory)"}},"id":39512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4908:39:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39513,"nodeType":"ExpressionStatement","src":"4908:39:49"}]},"documentation":{"id":39443,"nodeType":"StructuredDocumentation","src":"3478:360:49","text":"@notice cuts a new message batch if the batch period is reached without\n the maximum number of messages being reached.\n @param batch - a bottom-up batch\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership"},"functionSelector":"32e7661f","implemented":true,"kind":"function","modifiers":[{"id":39453,"kind":"modifierInvocation","modifierName":{"id":39452,"name":"systemActorOnly","nameLocations":["4001:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":43080,"src":"4001:15:49"},"nodeType":"ModifierInvocation","src":"4001:15:49"}],"name":"createBottomUpMsgBatch","nameLocation":"3852:22:49","parameters":{"id":39451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39446,"mutability":"mutable","name":"batch","nameLocation":"3910:5:49","nodeType":"VariableDeclaration","scope":39515,"src":"3884:31:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":39445,"nodeType":"UserDefinedTypeName","pathNode":{"id":39444,"name":"BottomUpMsgBatch","nameLocations":["3884:16:49"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"3884:16:49"},"referencedDeclaration":49898,"src":"3884:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":39448,"mutability":"mutable","name":"membershipRootHash","nameLocation":"3933:18:49","nodeType":"VariableDeclaration","scope":39515,"src":"3925:26:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3925:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39450,"mutability":"mutable","name":"membershipWeight","nameLocation":"3969:16:49","nodeType":"VariableDeclaration","scope":39515,"src":"3961:24:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39449,"name":"uint256","nodeType":"ElementaryTypeName","src":"3961:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3874:117:49"},"returnParameters":{"id":39454,"nodeType":"ParameterList","parameters":[],"src":"4017:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39553,"nodeType":"FunctionDefinition","src":"5167:386:49","nodes":[],"body":{"id":39552,"nodeType":"Block","src":"5253:300:49","nodes":[],"statements":[{"body":{"id":39542,"nodeType":"Block","src":"5351:114:49","statements":[{"expression":{"id":39536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5365:30:49","subExpression":{"baseExpression":{"expression":{"id":39532,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"5372:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5374:18:49","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42952,"src":"5372:20:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":39535,"indexExpression":{"id":39534,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"5393:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5372:23:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39537,"nodeType":"ExpressionStatement","src":"5365:30:49"},{"id":39541,"nodeType":"UncheckedBlock","src":"5409:46:49","statements":[{"expression":{"id":39539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5437:3:49","subExpression":{"id":39538,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"5439:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39540,"nodeType":"ExpressionStatement","src":"5437:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39529,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"5325:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39530,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39518,"src":"5329:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5325:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39543,"initializationExpression":{"assignments":[39524],"declarations":[{"constant":false,"id":39524,"mutability":"mutable","name":"h","nameLocation":"5276:1:49","nodeType":"VariableDeclaration","scope":39543,"src":"5268:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39523,"name":"uint256","nodeType":"ElementaryTypeName","src":"5268:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39528,"initialValue":{"expression":{"expression":{"id":39525,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"5280:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5282:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"5280:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":39527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5308:15:49","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"5280:43:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5268:55:49"},"nodeType":"ForStatement","src":"5263:202:49"},{"expression":{"arguments":[{"expression":{"id":39547,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"5498:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5500:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"5498:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},{"id":39549,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39518,"src":"5527:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39544,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"5475:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43901_$","typeString":"type(library LibQuorum)"}},"id":39546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5485:12:49","memberName":"pruneQuorums","nodeType":"MemberAccess","referencedDeclaration":43786,"src":"5475:22:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50012_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256)"}},"id":39550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5475:71:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39551,"nodeType":"ExpressionStatement","src":"5475:71:49"}]},"documentation":{"id":39516,"nodeType":"StructuredDocumentation","src":"4960:202:49","text":"@notice Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)\n @param newRetentionHeight - the height of the oldest batch to keep"},"functionSelector":"bacc656d","implemented":true,"kind":"function","modifiers":[{"id":39521,"kind":"modifierInvocation","modifierName":{"id":39520,"name":"systemActorOnly","nameLocations":["5237:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":43080,"src":"5237:15:49"},"nodeType":"ModifierInvocation","src":"5237:15:49"}],"name":"pruneBottomUpMsgBatches","nameLocation":"5176:23:49","parameters":{"id":39519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39518,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"5208:18:49","nodeType":"VariableDeclaration","scope":39553,"src":"5200:26:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39517,"name":"uint256","nodeType":"ElementaryTypeName","src":"5200:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5199:28:49"},"returnParameters":{"id":39522,"nodeType":"ParameterList","parameters":[],"src":"5253:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39600,"nodeType":"FunctionDefinition","src":"5988:685:49","nodes":[],"body":{"id":39599,"nodeType":"Block","src":"6163:510:49","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":39569,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"6208:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6210:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"6208:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},{"id":39571,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"6237:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39566,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"6173:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43901_$","typeString":"type(library LibQuorum)"}},"id":39568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6183:24:49","memberName":"isHeightAlreadyProcessed","nodeType":"MemberAccess","referencedDeclaration":43804,"src":"6173:34:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_QuorumMap_$50012_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256) view"}},"id":39572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6173:71:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39573,"nodeType":"ExpressionStatement","src":"6173:71:49"},{"assignments":[39575,null],"declarations":[{"constant":false,"id":39575,"mutability":"mutable","name":"exists","nameLocation":"6312:6:49","nodeType":"VariableDeclaration","scope":39599,"src":"6307:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39574,"name":"bool","nodeType":"ElementaryTypeName","src":"6307:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":39580,"initialValue":{"arguments":[{"id":39578,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"6355:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39576,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"6324:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6335:19:49","memberName":"getBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41812,"src":"6324:30:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpMsgBatch_$49898_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpMsgBatch storage pointer)"}},"id":39579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6324:38:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpMsgBatch_$49898_storage_ptr_$","typeString":"tuple(bool,struct BottomUpMsgBatch storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"6306:56:49"},{"condition":{"id":39582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6376:7:49","subExpression":{"id":39581,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39575,"src":"6377:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39587,"nodeType":"IfStatement","src":"6372:62:49","trueBody":{"id":39586,"nodeType":"Block","src":"6385:49:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39583,"name":"BatchNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37388,"src":"6406:15:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6406:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39585,"nodeType":"RevertStatement","src":"6399:24:49"}]}},{"expression":{"arguments":[{"expression":{"id":39591,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"6492:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6494:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"6492:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},{"id":39593,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"6541:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39594,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39559,"src":"6578:15:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":39595,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39561,"src":"6615:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39596,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39563,"src":"6646:9:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":39588,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"6443:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43901_$","typeString":"type(library LibQuorum)"}},"id":39590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6453:18:49","memberName":"addQuorumSignature","nodeType":"MemberAccess","referencedDeclaration":43617,"src":"6443:28:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50012_storage_ptr_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32[] memory,uint256,bytes memory)"}},"id":39597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6486:4:49","6533:6:49","6561:15:49","6607:6:49","6635:9:49"],"names":["self","height","membershipProof","weight","signature"],"nodeType":"FunctionCall","src":"6443:223:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39598,"nodeType":"ExpressionStatement","src":"6443:223:49"}]},"documentation":{"id":39554,"nodeType":"StructuredDocumentation","src":"5559:424:49","text":"@notice checks whether the provided batch signature for the block at height `height` is valid and accumulates that\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the checkpoint"},"functionSelector":"0db0f77c","implemented":true,"kind":"function","modifiers":[],"name":"addBottomUpMsgBatchSignature","nameLocation":"5997:28:49","parameters":{"id":39564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39556,"mutability":"mutable","name":"height","nameLocation":"6043:6:49","nodeType":"VariableDeclaration","scope":39600,"src":"6035:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39555,"name":"uint256","nodeType":"ElementaryTypeName","src":"6035:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39559,"mutability":"mutable","name":"membershipProof","nameLocation":"6076:15:49","nodeType":"VariableDeclaration","scope":39600,"src":"6059:32:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":39557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6059:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39558,"nodeType":"ArrayTypeName","src":"6059:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":39561,"mutability":"mutable","name":"weight","nameLocation":"6109:6:49","nodeType":"VariableDeclaration","scope":39600,"src":"6101:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39560,"name":"uint256","nodeType":"ElementaryTypeName","src":"6101:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39563,"mutability":"mutable","name":"signature","nameLocation":"6138:9:49","nodeType":"VariableDeclaration","scope":39600,"src":"6125:22:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39562,"name":"bytes","nodeType":"ElementaryTypeName","src":"6125:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6025:128:49"},"returnParameters":{"id":39565,"nodeType":"ParameterList","parameters":[],"src":"6163:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":39286,"name":"GatewayActorModifiers","nameLocations":["1457:21:49"],"nodeType":"IdentifierPath","referencedDeclaration":43081,"src":"1457:21:49"},"id":39287,"nodeType":"InheritanceSpecifier","src":"1457:21:49"}],"canonicalName":"BottomUpRouterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[39601,43081],"name":"BottomUpRouterFacet","nameLocation":"1434:19:49","scope":39602,"usedErrors":[32461,32466,32469,37380,37382,37384,37388,37394,37396,37398,37402,37406,37408,37412,37420,37424,37432,37434,37458,37474,37482,37486,37502,37508,37512]}],"license":"MIT OR Apache-2.0"},"id":49} \ No newline at end of file diff --git a/.out/CheckpointingFacet.sol/CheckpointingFacet.json b/.out/CheckpointingFacet.sol/CheckpointingFacet.json index ec937c641..c8cf00cdd 100644 --- a/.out/CheckpointingFacet.sol/CheckpointingFacet.json +++ b/.out/CheckpointingFacet.sol/CheckpointingFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addCheckpointSignature","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"membershipProof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pruneBottomUpCheckpoints","inputs":[{"name":"newRetentionHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"CheckpointAlreadyExists","inputs":[]},{"type":"error","name":"CheckpointNotCreated","inputs":[]},{"type":"error","name":"FailedAddIncompleteQuorum","inputs":[]},{"type":"error","name":"FailedAddSignatory","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"FailedRemoveIncompleteQuorum","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointSource","inputs":[]},{"type":"error","name":"InvalidRetentionHeight","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidSubnet","inputs":[]},{"type":"error","name":"NotAuthorized","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"NotSystemActor","inputs":[]},{"type":"error","name":"QuorumAlreadyProcessed","inputs":[]},{"type":"error","name":"SignatureReplay","inputs":[]},{"type":"error","name":"SubnetNotFound","inputs":[]},{"type":"error","name":"ZeroMembershipWeight","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657611768908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220290a93e36b6805df006441b141a908ae17483412928035e4fb087e0eb0d40d6264736f6c63430008130033","sourceMap":"1175:4924:50:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":5025,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2961,"length":20},{"start":3180,"length":20},{"start":3260,"length":20},{"start":3441,"length":20},{"start":3622,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220290a93e36b6805df006441b141a908ae17483412928035e4fb087e0eb0d40d6264736f6c63430008130033","sourceMap":"1175:4924:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;4468:37:50;1175:4924;4507:22;;;;;;1175:4924;4468:37;1175:4924;6065:40:67;;;;6061:102;;6210:22;;;;;;4468:37:50;1175:4924;;;;6178:30:67;1175:4924:50;;;6257:15:67;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6296:27:67;1175:4924:50;;;;;;;;;;;;;;6178:30:67;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;6473:9:67;;1175:4924:50;6484:5:67;;;;;;1175:4924:50;;;;;6178:30:67;;6473:9;1175:4924:50;;;;6518:21:67;1175:4924:50;;;;;-1:-1:-1;;;;;6543:13:67;;;;:::i;:::-;1175:4924:50;;;;;;;;;;;;;:::i;:::-;;;;;6473:9:67;1175:4924:50;;;6473:9:67;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6296:27:67;1175:4924:50;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6061:102:67;1175:4924:50;;-1:-1:-1;;;6128:24:67;;1175:4924:50;;6128:24:67;4456:49:50;1175:4924;;;4554:21;1175:4924;;;;;;;;;;;;;;;;;;;;;;;;4456:49;1175:4924;;;;;;;;;;;;;;;4456:49;;1175:4924;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;1175:4924:50;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;1175:4924:50;3017:22;;;1175:4924;;3042:21;1175:4924;;;;;;;3013:113;;1175:4924;;;;;3282:21:63;1175:4924:50;;3282:40:63;1175:4924:50;;;3282:40:63;1175:4924:50;3135:122;;1175:4924;;3415:22;;;;1175:4924;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3415:22;1175:4924;;;;;;;;;:::i;:::-;;;;;;3415:22;2548:38:67;;3415:22:50;;;;;;:::i;:::-;1175:4924;3405:33;;1175:4924;3572:20;1175:4924;;4711:20:67;1175:4924:50;4699:32:67;;4695:94;;4803:21;;4799:81;;1175:4924:50;;;;;;;;;10884:32:36;;;:::i;:::-;5066:3:67;5062:68;;1175:4924:50;;;;;;;;;;;;;;;;;;;;5165:183:67;;;1175:4924:50;;;;;;;5165:183:67;;1175:4924:50;;;;;5165:183:67;;1175:4924:50;;;;5165:183:67;;1175:4924:50;;;;;;;5390:15:67;1175:4924:50;;;;;;;;;;;;;;;;;;3282:40:63;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3282:21:63;1175:4924:50;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3282:40:63;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5062:68:67;1175:4924:50;;-1:-1:-1;;;5092:27:67;;1175:4924:50;;5092:27:67;1175:4924:50;;;;;;;;;;;;4799:81:67;1175:4924:50;;-1:-1:-1;;;4847:22:67;;1175:4924:50;;4847:22:67;4695:94;1175:4924:50;;-1:-1:-1;;;4754:24:67;;1175:4924:50;;4754:24:67;1175:4924:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;3135:122;1175:4924;;-1:-1:-1;;;3221:25:50;;1175:4924;;3221:25;3013:113;1175:4924;;-1:-1:-1;;;3091:24:50;;1175:4924;;3091:24;1175:4924;;;;;;;;;;;;;;;;;;-1:-1:-1;;1175:4924:50;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6910:20:67;1175:4924:50;;;6901:29:67;6897:91;;1175:4924:50;;;;2562:21:63;1175:4924:50;;2609:22:63;1175:4924:50;;;2609:22:63;1175:4924:50;2609:27:63;5797:67:50;;1175:4924;;;;1810:15:67;1175:4924:50;;;;;;1952:38:67;1175:4924:50;;;1952:38:67;:::i;:::-;1175:4924:50;;;;;;;;;;2000:89:67;;1175:4924:50;;;;;;2177:27:67;1175:4924:50;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;4352:12:36;1175:4924:50;;;;;;2173:119:67;;1175:4924:50;;;-1:-1:-1;;;;;1175:4924:50;;;2548:38:67;;1175:4924:50;;;;;;;;;2548:38:67;;;1175:4924:50;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;2538:49:67;;1175:4924:50;;;;;;;;;;;:::i;:::-;;2515:74:67;;2662:13;1175:4924:50;2662:13:67;;1175:4924:50;2145:27:33;2187:13;1175:4924:50;2182:116:33;2220:3;1175:4924:50;;2202:16:33;;;;;2278:8;;;;:::i;:::-;1175:4924:50;;9511:5:33;;;;;;1175:4924:50;9711:119:33;1175:4924:50;9711:119:33;1175:4924:50;;9711:119:33;9511:51;2220:3;-1:-1:-1;;1175:4924:50;;;;;;2187:13:33;;;1175:4924:50;;;;;;;;;;;;9511:51:33;9711:119;1175:4924:50;9711:119:33;1175:4924:50;9711:119:33;1175:4924:50;;9711:119:33;9511:51;;2202:16;;1379:33;2708:77:67;;1175:4924:50;;;;2177:27:67;1175:4924:50;;8399:50:36;1175:4924:50;;;;;;;;;;8399:50:36;:::i;:::-;2958:3:67;2954:61;;1175:4924:50;;;;3024:21:67;1175:4924:50;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;:::i;:::-;;;;;;2182:116:33;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3095:18:67;;1175:4924:50;;;;;;;;;;;;;;2609:22:63;3160:14:67;;1175:4924:50;3138:36:67;;;3134:871;;1175:4924:50;3134:871:67;1175:4924:50;3195:12:67;;1175:4924:50;;3195:12:67;;1175:4924:50;;;;;-1:-1:-1;;;1175:4924:50;;;;;11184:35:36;1175:4924:50;;11184:35:36;:::i;:::-;3404:3:67;3400:87;;3509:212;1175:4924:50;3509:212:67;1175:4924:50;5637:21;1175:4924;;;;;;;;;;;;;3509:212:67;;;:::i;:::-;;;;3190:805;1175:4924:50;3400:87:67;1175:4924:50;;-1:-1:-1;;;3438:30:67;;1175:4924:50;;3438:30:67;3190:805;1175:4924:50;;;;3765:215:67;1175:4924:50;3765:215:67;1175:4924:50;5637:21;1175:4924;;;;;;;;;;;;3765:215:67;;;:::i;1175:4924:50:-;;;;-1:-1:-1;1175:4924:50;;;;;2548:38:67;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1175:4924:50;;;;;;;;;;;;;;;;2954:61:67;1175:4924:50;;-1:-1:-1;;;2984:20:67;;1175:4924:50;;2984:20:67;2708:77;1175:4924:50;;-1:-1:-1;;;2741:33:67;;-1:-1:-1;;;;;1175:4924:50;;;;2741:33:67;;1175:4924:50;;;2741:33:67;2173:119;1175:4924:50;;-1:-1:-1;;;2264:17:67;;1175:4924:50;;2264:17:67;2000:89;1175:4924:50;;-1:-1:-1;;;2060:18:67;;1175:4924:50;;2060:18:67;1175:4924:50;;;;;;;;;;;;5797:67;1175:4924;;-1:-1:-1;;;5831:22:50;;1175:4924;;5831:22;1175:4924;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1175:4924:50;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;1729:19;1175:4924;;;;1729:19;:::i;:::-;1175:4924;:::i;:::-;;;;;;;;;;1729:30;;;1175:4924;1729:30;;1175:4924;;;;;;:::i;:::-;1729:30;:28;;:30;;;;;;;1175:4924;1729:30;;;1175:4924;-1:-1:-1;1763:10:50;-1:-1:-1;;;;;1175:4924:50;;;1729:44;1725:107;;1763:10;12849:19:63;12845:78;;1175:4924:50;;;;;:::i;:::-;-1:-1:-1;;;;;12959:13:63;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;12959:35:63;;1175:4924:50;;12959:35:63;;1175:4924:50;;;;;;:::i;:::-;1763:10;1175:4924;;;;12959:35:63;1729:28:50;;12959:35:63;;;;;;;1175:4924:50;12959:35:63;;;1175:4924:50;;;;;;;;;;;;;;13443:17:63;;;1175:4924:50;13443:17:63;;1175:4924:50;;;;;;:::i;:::-;13443:17:63;1729:28:50;;13443:17:63;;;;;;;1175:4924:50;13443:17:63;;;1175:4924:50;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1175:4924:50;13480:9:63;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;13480:19:63;;;1175:4924:50;13480:19:63;;1175:4924:50;;;;;;:::i;:::-;13480:19:63;1729:28:50;;13480:19:63;;;;;;;1175:4924:50;13480:19:63;;;1175:4924:50;13479:20:63;1928:67:50;;1175:4924;;;;2009:19;1175:4924;;;;2009:19;:::i;1175:4924::-;;;;;;;;;;2009:37;;1175:4924;;2009:37;;1175:4924;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13480:9:63;-1:-1:-1;;;;;1175:4924:50;13480:9:63;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2009:37;;;;;1175:4924;2009:37;;1729:28;;2009:37;;;;;;;1175:4924;2009:37;;;1175:4924;2008:38;;2004:91;;1175:4924;2109:26;1175:4924;;;;2105:411;;1175:4924;2105:411;1175:4924;;;;2296:168;;;;;;;;2394:22;1175:4924;;2296:168;;1175:4924;;;;;;;;;;;;2296:168;;1175:4924;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;4574:31:29;4622:69;;1175:4924:50;;;;;1763:10;4574:31:29;;1175:4924:50;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;1763:10;4622:69:29;:::i;1175:4924:50:-;;;;;2004:91;1175:4924;;-1:-1:-1;;;2069:15:50;;1175:4924;;2069:15;2009:37;;;;1175:4924;2009:37;1175:4924;2009:37;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1175:4924;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;-1:-1:-1;1175:4924:50;;;;;;;;;;;;;1928:67;1175:4924;;-1:-1:-1;;;1968:16:50;;1175:4924;;1968:16;13480:19:63;;;;1175:4924:50;13480:19:63;1175:4924:50;13480:19:63;;;;;;;:::i;:::-;;;;1175:4924:50;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;13443:17:63;;;1175:4924:50;13443:17:63;;1175:4924:50;13443:17:63;;;;;;1175:4924:50;13443:17:63;;;:::i;:::-;;;1175:4924:50;;;;;13443:17:63;;;;;;-1:-1:-1;13443:17:63;;12959:35;;;;;1175:4924:50;12959:35:63;;;;;;:::i;:::-;;;1175:4924:50;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1175:4924:50;;;;;;;;12959:35:63;;1175:4924:50;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;12845:78:63;1175:4924:50;;-1:-1:-1;;;12891:21:63;;1175:4924:50;;12891:21:63;1725:107:50;1175:4924;;-1:-1:-1;;;1796:25:50;;1175:4924;;1796:25;1729:30;;;1175:4924;1729:30;;1175:4924;1729:30;;;;;;1175:4924;1729:30;;;:::i;:::-;;;1175:4924;;;;;;;:::i;:::-;1729:30;;;;;;-1:-1:-1;1729:30:50;;1175:4924;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;:::o;:::-;;2548:38:67;;;1175:4924:50;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;:::o;:::-;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1175:4924:50;;;;2548:38:67;1175:4924:50;-1:-1:-1;;1175:4924:50;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1175:4924:50;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1175:4924:50;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6737:692:29:-;;6952:471;;;1175:4924:50;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;1175:4924:50;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;1175:4924:50;;;7261:24:29;;;1175:4924:50;;;7261:24:29;6952:471;-1:-1:-1;1175:4924:50;;8828:21:29;:17;;9000:142;;;;;;8824:411;1175:4924:50;;-1:-1:-1;;;8628:17:29;;;;;1175:4924:50;;;;;;;;:::o;:::-;-1:-1:-1;1175:4924:50;;;;;;4430:138:64;1175:4924:50;;-1:-1:-1;;;4486:26:64;;:10;:26;;;1175:4924:50;4486:26:64;1175:4924:50;;;4486:24:64;:26;;;;;;;-1:-1:-1;4486:26:64;;;4430:138;4485:27;;4481:81;;4430:138::o;4481:81::-;1175:4924:50;;-1:-1:-1;;;4535:16:64;;4486:26;;4535:16;4486:26;;;;;;;;;;;;;;:::i;:::-;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2483:766:32:-;1175:4924:50;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;1175:4924:50;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;1175:4924:50:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;5015:22:67;1175:4924:50;;;;;;5015:22:67;-1:-1:-1;1175:4924:50;;;;-1:-1:-1;1175:4924:50;:::o;2215:404:36:-;-1:-1:-1;1175:4924:50;;;4352:12:36;1175:4924:50;;;;;;;;5015:22:67;1175:4924:50;-1:-1:-1;;;1175:4924:50;;;;;;;;;;4352:12:36;1175:4924:50;;;5015:22:67;1175:4924:50;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5015:22:67;1175:4924:50;;;;4352:12:36;1175:4924:50;;;;4352:12:36;2548:11;:::o;1175:4924:50:-;-1:-1:-1;;;1175:4924:50;;;;;;;;2294:319:36;2590:12;;;:::o;2215:404::-;-1:-1:-1;1175:4924:50;;;4352:12:36;;;1175:4924:50;;;;;;2299:21:36;;1175:4924:50;;;-1:-1:-1;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1175:4924:50;;-1:-1:-1;1175:4924:50;;;;;;-1:-1:-1;1175:4924:50;2494:12:36;1175:4924:50;;;-1:-1:-1;1175:4924:50;;;2548:11:36;:::o;2294:319::-;2590:12;;-1:-1:-1;2590:12:36;:::o;2787:1388::-;-1:-1:-1;1175:4924:50;;;2990:12:36;1175:4924:50;;;;;;-1:-1:-1;;1175:4924:50;3024:15:36;;;;-1:-1:-1;;1175:4924:50;;;;;;;;;3345:22:67;1175:4924:50;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;1175:4924:50;;;3345:22:67;1175:4924:50;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3345:22:67;1175:4924:50;;;2990:12:36;1175:4924:50;;;;;;2990:12:36;4104:11;:::o;1175:4924:50:-;-1:-1:-1;;;1175:4924:50;;;;;;;;3502:398:36;1175:4924:50;3572:22:36;3694:26;3572:22;;:::i;:::-;1175:4924:50;;;;;;3694:26:36;;;;:::i;1175:4924:50:-;;;;;2990:12:36;1175:4924:50;;;;;;3502:398:36;;;;;1175:4924:50;-1:-1:-1;;;1175:4924:50;;;;;;;;;-1:-1:-1;;;1175:4924:50;;;;;;;;3020:1149:36;4146:12;;;:::o","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":4997,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2933,"length":20},{"start":3152,"length":20},{"start":3232,"length":20},{"start":3413,"length":20},{"start":3594,"length":20}]}}},"methodIdentifiers":{"addCheckpointSignature(uint256,bytes32[],uint256,bytes)":"53b4e7bf","commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":"47dc9b4f","createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":"74303771","pruneBottomUpCheckpoints(uint256)":"ac818379"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddSignatory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedRemoveIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRetentionHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuorumAlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureReplay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMembershipWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"membershipProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"addCheckpointSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"commitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newRetentionHeight\",\"type\":\"uint256\"}],\"name\":\"pruneBottomUpCheckpoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"addCheckpointSignature(uint256,bytes32[],uint256,bytes)\":{\"details\":\"If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`\",\"params\":{\"height\":\"- the height of the block in the checkpoint\",\"membershipProof\":\"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`\",\"signature\":\"- the signature of the checkpoint\",\"weight\":\"- the weight of the validator\"}},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"details\":\"this method is called by the corresponding subnet actor. Called from a subnet actor if the checkpoint is cryptographically valid.\",\"params\":{\"checkpoint\":\"The bottom-up checkpoint to be committed.\"}},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"params\":{\"checkpoint\":\"- a bottom-up checkpoint\",\"membershipRootHash\":\"- a root hash of the Merkle tree built from the validator public keys and their weight\",\"membershipWeight\":\"- the total weight of the membership\"}},\"pruneBottomUpCheckpoints(uint256)\":{\"details\":\"`retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\",\"params\":{\"newRetentionHeight\":\"- the height of the oldest checkpoint to keep\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addCheckpointSignature(uint256,bytes32[],uint256,bytes)\":{\"notice\":\"checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it\"},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"notice\":\"submit a verified checkpoint in the gateway to trigger side-effects.\"},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"notice\":\"creates a new bottom-up checkpoint\"},\"pruneBottomUpCheckpoints(uint256)\":{\"notice\":\"Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/CheckpointingFacet.sol\":\"CheckpointingFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"CheckpointAlreadyExists"},{"inputs":[],"type":"error","name":"CheckpointNotCreated"},{"inputs":[],"type":"error","name":"FailedAddIncompleteQuorum"},{"inputs":[],"type":"error","name":"FailedAddSignatory"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"FailedRemoveIncompleteQuorum"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointSource"},{"inputs":[],"type":"error","name":"InvalidRetentionHeight"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"InvalidSubnet"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotAuthorized"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[],"type":"error","name":"QuorumAlreadyProcessed"},{"inputs":[],"type":"error","name":"SignatureReplay"},{"inputs":[],"type":"error","name":"SubnetNotFound"},{"inputs":[],"type":"error","name":"ZeroMembershipWeight"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32[]","name":"membershipProof","type":"bytes32[]"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addCheckpointSignature"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"commitCheckpoint"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpCheckpoint"},{"inputs":[{"internalType":"uint256","name":"newRetentionHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pruneBottomUpCheckpoints"}],"devdoc":{"kind":"dev","methods":{"addCheckpointSignature(uint256,bytes32[],uint256,bytes)":{"details":"If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`","params":{"height":"- the height of the block in the checkpoint","membershipProof":"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`","signature":"- the signature of the checkpoint","weight":"- the weight of the validator"}},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"details":"this method is called by the corresponding subnet actor. Called from a subnet actor if the checkpoint is cryptographically valid.","params":{"checkpoint":"The bottom-up checkpoint to be committed."}},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"params":{"checkpoint":"- a bottom-up checkpoint","membershipRootHash":"- a root hash of the Merkle tree built from the validator public keys and their weight","membershipWeight":"- the total weight of the membership"}},"pruneBottomUpCheckpoints(uint256)":{"details":"`retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.","params":{"newRetentionHeight":"- the height of the oldest checkpoint to keep"}}},"version":1},"userdoc":{"kind":"user","methods":{"addCheckpointSignature(uint256,bytes32[],uint256,bytes)":{"notice":"checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it"},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"notice":"submit a verified checkpoint in the gateway to trigger side-effects."},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"notice":"creates a new bottom-up checkpoint"},"pruneBottomUpCheckpoints(uint256)":{"notice":"Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/CheckpointingFacet.sol":"CheckpointingFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/CheckpointingFacet.sol","id":39871,"exportedSymbols":{"Address":[32838],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"GatewayActorModifiers":[43137],"ISubnetActor":[40428],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"InvalidSubnet":[37446],"LibGateway":[42944],"LibQuorum":[43948],"MaxMsgsPerBatchExceeded":[37382],"NotEnoughBalance":[37462],"NotEnoughSubnetCircSupply":[37474],"NotRegisteredSubnet":[37482],"QuorumObjKind":[50012],"Subnet":[50091],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508]},"nodeType":"SourceUnit","src":"46:6054:50","nodes":[{"id":39603,"nodeType":"PragmaDirective","src":"46:23:50","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39605,"nodeType":"ImportDirective","src":"71:75:50","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":39604,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"79:21:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39607,"nodeType":"ImportDirective","src":"147:62:50","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39606,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"155:18:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39609,"nodeType":"ImportDirective","src":"210:52:50","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":39608,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"218:10:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39611,"nodeType":"ImportDirective","src":"263:50:50","nodes":[],"absolutePath":"src/lib/LibQuorum.sol","file":"../../lib/LibQuorum.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":43949,"symbolAliases":[{"foreign":{"id":39610,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"271:9:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39613,"nodeType":"ImportDirective","src":"314:48:50","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":39612,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"322:6:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39615,"nodeType":"ImportDirective","src":"363:55:50","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":39614,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"371:13:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39617,"nodeType":"ImportDirective","src":"419:65:50","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":39616,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"427:7:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39619,"nodeType":"ImportDirective","src":"485:63:50","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":40429,"symbolAliases":[{"foreign":{"id":39618,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40428,"src":"493:12:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39628,"nodeType":"ImportDirective","src":"550:224:50","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39620,"name":"InvalidBatchSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37412,"src":"558:18:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39621,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37462,"src":"578:16:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39622,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"596:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39623,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"621:19:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39624,"name":"InvalidCheckpointSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37410,"src":"642:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39625,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"667:20:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39626,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"689:24:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39627,"name":"CheckpointAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37378,"src":"715:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39634,"nodeType":"ImportDirective","src":"775:133:50","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39629,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"783:19:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39630,"name":"SubnetNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37506,"src":"804:15:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39631,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"821:14:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39632,"name":"InvalidSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37446,"src":"837:13:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39633,"name":"CheckpointNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37386,"src":"852:20:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39640,"nodeType":"ImportDirective","src":"909:149:50","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39635,"name":"BatchNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37388,"src":"917:15:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39636,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"934:17:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39637,"name":"BatchAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37380,"src":"953:18:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39638,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37474,"src":"973:25:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39639,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"1000:22:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39642,"nodeType":"ImportDirective","src":"1060:52:50","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39641,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"1068:8:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39644,"nodeType":"ImportDirective","src":"1113:60:50","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":39643,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"1121:14:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39870,"nodeType":"ContractDefinition","src":"1175:4924:50","nodes":[{"id":39650,"nodeType":"UsingForDirective","src":"1234:34:50","nodes":[],"global":false,"libraryName":{"id":39647,"name":"SubnetIDHelper","nameLocations":["1240:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1240:14:50"},"typeName":{"id":39649,"nodeType":"UserDefinedTypeName","pathNode":{"id":39648,"name":"SubnetID","nameLocations":["1259:8:50"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1259:8:50"},"referencedDeclaration":50077,"src":"1259:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":39723,"nodeType":"FunctionDefinition","src":"1582:940:50","nodes":[],"body":{"id":39722,"nodeType":"Block","src":"1657:865:50","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":39663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":39657,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39654,"src":"1729:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1740:8:50","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49922,"src":"1729:19:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":39659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1749:8:50","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"1729:28:50","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1729:30:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":39661,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1763:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1767:6:50","memberName":"sender","nodeType":"MemberAccess","src":"1763:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1729:44:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39668,"nodeType":"IfStatement","src":"1725:107:50","trueBody":{"id":39667,"nodeType":"Block","src":"1775:57:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39664,"name":"InvalidCheckpointSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37410,"src":"1796:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1796:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39666,"nodeType":"RevertStatement","src":"1789:32:50"}]}},{"assignments":[39670,39673],"declarations":[{"constant":false,"id":39670,"mutability":"mutable","name":"subnetExists","nameLocation":"1847:12:50","nodeType":"VariableDeclaration","scope":39722,"src":"1842:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39669,"name":"bool","nodeType":"ElementaryTypeName","src":"1842:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39673,"mutability":"mutable","name":"subnet","nameLocation":"1876:6:50","nodeType":"VariableDeclaration","scope":39722,"src":"1861:21:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":39672,"nodeType":"UserDefinedTypeName","pathNode":{"id":39671,"name":"Subnet","nameLocations":["1861:6:50"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"1861:6:50"},"referencedDeclaration":50091,"src":"1861:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":39679,"initialValue":{"arguments":[{"expression":{"id":39676,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1907:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1911:6:50","memberName":"sender","nodeType":"MemberAccess","src":"1907:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":39674,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"1886:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1897:9:50","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"1886:20:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":39678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1886:32:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"1841:77:50"},{"condition":{"id":39681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1932:13:50","subExpression":{"id":39680,"name":"subnetExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39670,"src":"1933:12:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39686,"nodeType":"IfStatement","src":"1928:67:50","trueBody":{"id":39685,"nodeType":"Block","src":"1947:48:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39682,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"1968:14:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:16:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39684,"nodeType":"RevertStatement","src":"1961:23:50"}]}},{"condition":{"id":39693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2008:38:50","subExpression":{"arguments":[{"expression":{"id":39690,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39673,"src":"2036:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2043:2:50","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"2036:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":39687,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39654,"src":"2009:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2020:8:50","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49922,"src":"2009:19:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":39689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2029:6:50","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"2009:26:50","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2009:37:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39698,"nodeType":"IfStatement","src":"2004:91:50","trueBody":{"id":39697,"nodeType":"Block","src":"2048:47:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39694,"name":"InvalidSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37446,"src":"2069:13:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2069:15:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39696,"nodeType":"RevertStatement","src":"2062:22:50"}]}},{"condition":{"expression":{"id":39699,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2109:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2111:24:50","memberName":"checkpointRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43064,"src":"2109:26:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39721,"nodeType":"IfStatement","src":"2105:411:50","trueBody":{"id":39720,"nodeType":"Block","src":"2137:379:50","statements":[{"expression":{"arguments":[{"expression":{"id":39704,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2262:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2266:6:50","memberName":"sender","nodeType":"MemberAccess","src":"2262:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":39708,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40428,"src":"2332:12:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISubnetActor_$40428_$","typeString":"type(contract ISubnetActor)"}},"id":39709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2345:26:50","memberName":"distributeRewardToRelayers","nodeType":"MemberAccess","referencedDeclaration":40427,"src":"2332:39:50","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"}},{"components":[{"expression":{"id":39710,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39654,"src":"2394:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2405:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"2394:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":39712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2418:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":39713,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"2421:13:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$50012_$","typeString":"type(enum QuorumObjKind)"}},"id":39714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2435:10:50","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":50010,"src":"2421:24:50","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}}],"id":39715,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2393:53:50","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_rational_0_by_1_$_t_enum$_QuorumObjKind_$50012_$","typeString":"tuple(uint256,int_const 0,enum QuorumObjKind)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"},{"typeIdentifier":"t_tuple$_t_uint256_$_t_rational_0_by_1_$_t_enum$_QuorumObjKind_$50012_$","typeString":"tuple(uint256,int_const 0,enum QuorumObjKind)"}],"expression":{"id":39706,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2296:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2300:10:50","memberName":"encodeCall","nodeType":"MemberAccess","src":"2296:14:50","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2296:168:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":39717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2489:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":39701,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"2206:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":39703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2214:21:50","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32570,"src":"2206:29:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":39718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2254:6:50","2290:4:50","2482:5:50"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"2206:299:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":39719,"nodeType":"ExpressionStatement","src":"2206:299:50"}]}}]},"documentation":{"id":39651,"nodeType":"StructuredDocumentation","src":"1274:303:50","text":"@notice submit a verified checkpoint in the gateway to trigger side-effects.\n @dev this method is called by the corresponding subnet actor.\n Called from a subnet actor if the checkpoint is cryptographically valid.\n @param checkpoint The bottom-up checkpoint to be committed."},"functionSelector":"47dc9b4f","implemented":true,"kind":"function","modifiers":[],"name":"commitCheckpoint","nameLocation":"1591:16:50","parameters":{"id":39655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39654,"mutability":"mutable","name":"checkpoint","nameLocation":"1636:10:50","nodeType":"VariableDeclaration","scope":39723,"src":"1608:38:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":39653,"nodeType":"UserDefinedTypeName","pathNode":{"id":39652,"name":"BottomUpCheckpoint","nameLocations":["1608:18:50"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1608:18:50"},"referencedDeclaration":49932,"src":"1608:18:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1607:40:50"},"returnParameters":{"id":39656,"nodeType":"ParameterList","parameters":[],"src":"1657:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39784,"nodeType":"FunctionDefinition","src":"2820:846:50","nodes":[],"body":{"id":39783,"nodeType":"Block","src":"3003:663:50","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39736,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3017:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3028:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3017:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":39738,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3042:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3044:19:50","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":43042,"src":"3042:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3017:46:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3067:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3017:51:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39747,"nodeType":"IfStatement","src":"3013:113:50","trueBody":{"id":39746,"nodeType":"Block","src":"3070:56:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39743,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"3091:22:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3091:24:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39745,"nodeType":"RevertStatement","src":"3084:31:50"}]}},{"condition":{"arguments":[{"expression":{"id":39750,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3175:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3186:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3175:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39748,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3139:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3150:24:50","memberName":"bottomUpCheckpointExists","nodeType":"MemberAccess","referencedDeclaration":41892,"src":"3139:35:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":39752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3139:59:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39757,"nodeType":"IfStatement","src":"3135:122:50","trueBody":{"id":39756,"nodeType":"Block","src":"3200:57:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39753,"name":"CheckpointAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37378,"src":"3221:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3221:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39755,"nodeType":"RevertStatement","src":"3214:32:50"}]}},{"expression":{"arguments":[{"expression":{"id":39761,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3314:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3316:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"3314:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"expression":{"id":39763,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3360:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3371:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3360:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":39768,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3426:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":39766,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3415:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3419:6:50","memberName":"encode","nodeType":"MemberAccess","src":"3415:10:50","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3415:22:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":39765,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3405:9:50","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":39770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3405:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39771,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39729,"src":"3472:18:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39772,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39731,"src":"3522:16:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39773,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3572:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3574:18:50","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":43030,"src":"3572:20:50","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":39758,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"3267:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3277:16:50","memberName":"createQuorumInfo","nodeType":"MemberAccess","referencedDeclaration":43740,"src":"3267:26:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32,bytes32,uint256,uint256)"}},"id":39775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3308:4:50","3349:9:50","3396:7:50","3452:18:50","3504:16:50","3552:18:50"],"names":["self","objHeight","objHash","membershipRootHash","membershipWeight","majorityPercentage"],"nodeType":"FunctionCall","src":"3267:336:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39776,"nodeType":"ExpressionStatement","src":"3267:336:50"},{"expression":{"arguments":[{"id":39780,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3648:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":39777,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3613:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3624:23:50","memberName":"storeBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41940,"src":"3613:34:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory)"}},"id":39781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3613:46:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39782,"nodeType":"ExpressionStatement","src":"3613:46:50"}]},"documentation":{"id":39724,"nodeType":"StructuredDocumentation","src":"2528:287:50","text":"@notice creates a new bottom-up checkpoint\n @param checkpoint - a bottom-up checkpoint\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership"},"functionSelector":"74303771","implemented":true,"kind":"function","modifiers":[{"id":39734,"kind":"modifierInvocation","modifierName":{"id":39733,"name":"systemActorOnly","nameLocations":["2987:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"2987:15:50"},"nodeType":"ModifierInvocation","src":"2987:15:50"}],"name":"createBottomUpCheckpoint","nameLocation":"2829:24:50","parameters":{"id":39732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39727,"mutability":"mutable","name":"checkpoint","nameLocation":"2891:10:50","nodeType":"VariableDeclaration","scope":39784,"src":"2863:38:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":39726,"nodeType":"UserDefinedTypeName","pathNode":{"id":39725,"name":"BottomUpCheckpoint","nameLocations":["2863:18:50"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"2863:18:50"},"referencedDeclaration":49932,"src":"2863:18:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":39729,"mutability":"mutable","name":"membershipRootHash","nameLocation":"2919:18:50","nodeType":"VariableDeclaration","scope":39784,"src":"2911:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2911:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39731,"mutability":"mutable","name":"membershipWeight","nameLocation":"2955:16:50","nodeType":"VariableDeclaration","scope":39784,"src":"2947:24:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39730,"name":"uint256","nodeType":"ElementaryTypeName","src":"2947:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2853:124:50"},"returnParameters":{"id":39735,"nodeType":"ParameterList","parameters":[],"src":"3003:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39822,"nodeType":"FunctionDefinition","src":"4153:577:50","nodes":[],"body":{"id":39821,"nodeType":"Block","src":"4240:490:50","nodes":[],"statements":[{"body":{"id":39811,"nodeType":"Block","src":"4533:115:50","statements":[{"expression":{"id":39805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4547:31:50","subExpression":{"baseExpression":{"expression":{"id":39801,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4554:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4556:19:50","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"4554:21:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":39804,"indexExpression":{"id":39803,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39793,"src":"4576:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4554:24:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39806,"nodeType":"ExpressionStatement","src":"4547:31:50"},{"id":39810,"nodeType":"UncheckedBlock","src":"4592:46:50","statements":[{"expression":{"id":39808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4620:3:50","subExpression":{"id":39807,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39793,"src":"4622:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39809,"nodeType":"ExpressionStatement","src":"4620:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39798,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39793,"src":"4507:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39799,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39787,"src":"4511:18:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4507:22:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39812,"initializationExpression":{"assignments":[39793],"declarations":[{"constant":false,"id":39793,"mutability":"mutable","name":"h","nameLocation":"4464:1:50","nodeType":"VariableDeclaration","scope":39812,"src":"4456:9:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39792,"name":"uint256","nodeType":"ElementaryTypeName","src":"4456:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39797,"initialValue":{"expression":{"expression":{"id":39794,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4468:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4470:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"4468:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":39796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4490:15:50","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"4468:37:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4456:49:50"},"nodeType":"ForStatement","src":"4451:197:50"},{"expression":{"arguments":[{"expression":{"id":39816,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4681:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4683:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"4681:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39818,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39787,"src":"4704:18:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39813,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"4658:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4668:12:50","memberName":"pruneQuorums","nodeType":"MemberAccess","referencedDeclaration":43833,"src":"4658:22:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256)"}},"id":39819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4658:65:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39820,"nodeType":"ExpressionStatement","src":"4658:65:50"}]},"documentation":{"id":39785,"nodeType":"StructuredDocumentation","src":"3672:476:50","text":"@notice Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\n @dev `retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing.\n All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\n @param newRetentionHeight - the height of the oldest checkpoint to keep"},"functionSelector":"ac818379","implemented":true,"kind":"function","modifiers":[{"id":39790,"kind":"modifierInvocation","modifierName":{"id":39789,"name":"systemActorOnly","nameLocations":["4224:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"4224:15:50"},"nodeType":"ModifierInvocation","src":"4224:15:50"}],"name":"pruneBottomUpCheckpoints","nameLocation":"4162:24:50","parameters":{"id":39788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39787,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"4195:18:50","nodeType":"VariableDeclaration","scope":39822,"src":"4187:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39786,"name":"uint256","nodeType":"ElementaryTypeName","src":"4187:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4186:28:50"},"returnParameters":{"id":39791,"nodeType":"ParameterList","parameters":[],"src":"4240:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39869,"nodeType":"FunctionDefinition","src":"5303:794:50","nodes":[],"body":{"id":39868,"nodeType":"Block","src":"5472:625:50","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":39838,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5637:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5639:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"5637:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39840,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39825,"src":"5660:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39835,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"5602:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5612:24:50","memberName":"isHeightAlreadyProcessed","nodeType":"MemberAccess","referencedDeclaration":43851,"src":"5602:34:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256) view"}},"id":39841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5602:65:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39842,"nodeType":"ExpressionStatement","src":"5602:65:50"},{"assignments":[39844,null],"declarations":[{"constant":false,"id":39844,"mutability":"mutable","name":"exists","nameLocation":"5735:6:50","nodeType":"VariableDeclaration","scope":39868,"src":"5730:11:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39843,"name":"bool","nodeType":"ElementaryTypeName","src":"5730:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":39849,"initialValue":{"arguments":[{"id":39847,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39825,"src":"5780:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39845,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"5747:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5758:21:50","memberName":"getBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41835,"src":"5747:32:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpCheckpoint storage pointer)"}},"id":39848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5747:40:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"5729:58:50"},{"condition":{"id":39851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5801:7:50","subExpression":{"id":39850,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39844,"src":"5802:6:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39856,"nodeType":"IfStatement","src":"5797:67:50","trueBody":{"id":39855,"nodeType":"Block","src":"5810:54:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39852,"name":"CheckpointNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37386,"src":"5831:20:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5831:22:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39854,"nodeType":"RevertStatement","src":"5824:29:50"}]}},{"expression":{"arguments":[{"expression":{"id":39860,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5922:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5924:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"5922:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39862,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39825,"src":"5965:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39863,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39828,"src":"6002:15:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":39864,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39830,"src":"6039:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39865,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39832,"src":"6070:9:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":39857,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"5873:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5883:18:50","memberName":"addQuorumSignature","nodeType":"MemberAccess","referencedDeclaration":43664,"src":"5873:28:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32[] memory,uint256,bytes memory)"}},"id":39866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5916:4:50","5957:6:50","5985:15:50","6031:6:50","6059:9:50"],"names":["self","height","membershipProof","weight","signature"],"nodeType":"FunctionCall","src":"5873:217:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39867,"nodeType":"ExpressionStatement","src":"5873:217:50"}]},"documentation":{"id":39823,"nodeType":"StructuredDocumentation","src":"4736:562:50","text":"@notice checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it\n @dev If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the checkpoint"},"functionSelector":"53b4e7bf","implemented":true,"kind":"function","modifiers":[],"name":"addCheckpointSignature","nameLocation":"5312:22:50","parameters":{"id":39833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39825,"mutability":"mutable","name":"height","nameLocation":"5352:6:50","nodeType":"VariableDeclaration","scope":39869,"src":"5344:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39824,"name":"uint256","nodeType":"ElementaryTypeName","src":"5344:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39828,"mutability":"mutable","name":"membershipProof","nameLocation":"5385:15:50","nodeType":"VariableDeclaration","scope":39869,"src":"5368:32:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":39826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5368:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39827,"nodeType":"ArrayTypeName","src":"5368:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":39830,"mutability":"mutable","name":"weight","nameLocation":"5418:6:50","nodeType":"VariableDeclaration","scope":39869,"src":"5410:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39829,"name":"uint256","nodeType":"ElementaryTypeName","src":"5410:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39832,"mutability":"mutable","name":"signature","nameLocation":"5447:9:50","nodeType":"VariableDeclaration","scope":39869,"src":"5434:22:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39831,"name":"bytes","nodeType":"ElementaryTypeName","src":"5434:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5334:128:50"},"returnParameters":{"id":39834,"nodeType":"ParameterList","parameters":[],"src":"5472:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":39645,"name":"GatewayActorModifiers","nameLocations":["1206:21:50"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"1206:21:50"},"id":39646,"nodeType":"InheritanceSpecifier","src":"1206:21:50"}],"canonicalName":"CheckpointingFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[39870,43137],"name":"CheckpointingFacet","nameLocation":"1184:18:50","scope":39871,"usedErrors":[32461,32466,32469,37378,37384,37386,37394,37396,37398,37402,37404,37410,37432,37434,37446,37458,37486,37502,37508,37512]}],"license":"MIT OR Apache-2.0"},"id":50} \ No newline at end of file +{"abi":[{"type":"function","name":"addCheckpointSignature","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"membershipProof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pruneBottomUpCheckpoints","inputs":[{"name":"newRetentionHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"CheckpointAlreadyExists","inputs":[]},{"type":"error","name":"CheckpointNotCreated","inputs":[]},{"type":"error","name":"FailedAddIncompleteQuorum","inputs":[]},{"type":"error","name":"FailedAddSignatory","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"FailedRemoveIncompleteQuorum","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointSource","inputs":[]},{"type":"error","name":"InvalidRetentionHeight","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidSubnet","inputs":[]},{"type":"error","name":"NotAuthorized","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"NotSystemActor","inputs":[]},{"type":"error","name":"QuorumAlreadyProcessed","inputs":[]},{"type":"error","name":"SignatureReplay","inputs":[]},{"type":"error","name":"SubnetNotFound","inputs":[]},{"type":"error","name":"ZeroMembershipWeight","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657611768908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220dfde9bd283f04b3e3a7a27bf2503b849d602efb13f7bbc32d0ef932af181aa8264736f6c63430008130033","sourceMap":"1188:4937:50:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":5025,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2961,"length":20},{"start":3180,"length":20},{"start":3260,"length":20},{"start":3441,"length":20},{"start":3622,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220dfde9bd283f04b3e3a7a27bf2503b849d602efb13f7bbc32d0ef932af181aa8264736f6c63430008130033","sourceMap":"1188:4937:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;4494:37:50;1188:4937;4533:22;;;;;;1188:4937;4494:37;1188:4937;6065:40:67;;;;6061:102;;6210:22;;;;;;4494:37:50;1188:4937;;;;6178:30:67;1188:4937:50;;;6257:15:67;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6296:27:67;1188:4937:50;;;;;;;;;;;;;;6178:30:67;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;6473:9:67;;1188:4937:50;6484:5:67;;;;;;1188:4937:50;;;;;6178:30:67;;6473:9;1188:4937:50;;;;6518:21:67;1188:4937:50;;;;;-1:-1:-1;;;;;6543:13:67;;;;:::i;:::-;1188:4937:50;;;;;;;;;;;;;:::i;:::-;;;;;6473:9:67;1188:4937:50;;;6473:9:67;;;;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6296:27:67;1188:4937:50;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6061:102:67;1188:4937:50;;-1:-1:-1;;;6128:24:67;;1188:4937:50;;6128:24:67;4482:49:50;1188:4937;;;4580:21;1188:4937;;;;;;;;;;;;;;;;;;;;;;;;4482:49;1188:4937;;;;;;;;;;;;;;;4482:49;;1188:4937;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;1188:4937:50;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;1188:4937:50;3043:22;;;1188:4937;;3068:21;1188:4937;;;;;;;3039:113;;1188:4937;;;;;3282:21:63;1188:4937:50;;3282:40:63;1188:4937:50;;;3282:40:63;1188:4937:50;3161:122;;1188:4937;;3441:22;;;;1188:4937;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3441:22;1188:4937;;;;;;;;;:::i;:::-;;;;;;3441:22;2548:38:67;;3441:22:50;;;;;;:::i;:::-;1188:4937;3431:33;;1188:4937;3598:20;1188:4937;;4711:20:67;1188:4937:50;4699:32:67;;4695:94;;4803:21;;4799:81;;1188:4937:50;;;;;;;;;10884:32:36;;;:::i;:::-;5066:3:67;5062:68;;1188:4937:50;;;;;;;;;;;;;;;;;;;;5165:183:67;;;1188:4937:50;;;;;;;5165:183:67;;1188:4937:50;;;;;5165:183:67;;1188:4937:50;;;;5165:183:67;;1188:4937:50;;;;;;;5390:15:67;1188:4937:50;;;;;;;;;;;;;;;;;;3282:40:63;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3282:21:63;1188:4937:50;;;;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3282:40:63;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5062:68:67;1188:4937:50;;-1:-1:-1;;;5092:27:67;;1188:4937:50;;5092:27:67;1188:4937:50;;;;;;;;;;;;4799:81:67;1188:4937:50;;-1:-1:-1;;;4847:22:67;;1188:4937:50;;4847:22:67;4695:94;1188:4937:50;;-1:-1:-1;;;4754:24:67;;1188:4937:50;;4754:24:67;1188:4937:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;3161:122;1188:4937;;-1:-1:-1;;;3247:25:50;;1188:4937;;3247:25;3039:113;1188:4937;;-1:-1:-1;;;3117:24:50;;1188:4937;;3117:24;1188:4937;;;;;;;;;;;;;;;;;;-1:-1:-1;;1188:4937:50;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6910:20:67;1188:4937:50;;;6901:29:67;6897:91;;1188:4937:50;;;;2562:21:63;1188:4937:50;;2609:22:63;1188:4937:50;;;2609:22:63;1188:4937:50;2609:27:63;5823:67:50;;1188:4937;;;;1810:15:67;1188:4937:50;;;;;;1952:38:67;1188:4937:50;;;1952:38:67;:::i;:::-;1188:4937:50;;;;;;;;;;2000:89:67;;1188:4937:50;;;;;;2177:27:67;1188:4937:50;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;4352:12:36;1188:4937:50;;;;;;2173:119:67;;1188:4937:50;;;-1:-1:-1;;;;;1188:4937:50;;;2548:38:67;;1188:4937:50;;;;;;;;;2548:38:67;;;1188:4937:50;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;2538:49:67;;1188:4937:50;;;;;;;;;;;:::i;:::-;;2515:74:67;;2662:13;1188:4937:50;2662:13:67;;1188:4937:50;2145:27:33;2187:13;1188:4937:50;2182:116:33;2220:3;1188:4937:50;;2202:16:33;;;;;2278:8;;;;:::i;:::-;1188:4937:50;;9511:5:33;;;;;;1188:4937:50;9711:119:33;1188:4937:50;9711:119:33;1188:4937:50;;9711:119:33;9511:51;2220:3;-1:-1:-1;;1188:4937:50;;;;;;2187:13:33;;;1188:4937:50;;;;;;;;;;;;9511:51:33;9711:119;1188:4937:50;9711:119:33;1188:4937:50;9711:119:33;1188:4937:50;;9711:119:33;9511:51;;2202:16;;1379:33;2708:77:67;;1188:4937:50;;;;2177:27:67;1188:4937:50;;8399:50:36;1188:4937:50;;;;;;;;;;8399:50:36;:::i;:::-;2958:3:67;2954:61;;1188:4937:50;;;;3024:21:67;1188:4937:50;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;:::i;:::-;;;;;;2182:116:33;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3095:18:67;;1188:4937:50;;;;;;;;;;;;;;2609:22:63;3160:14:67;;1188:4937:50;3138:36:67;;;3134:871;;1188:4937:50;3134:871:67;1188:4937:50;3195:12:67;;1188:4937:50;;3195:12:67;;1188:4937:50;;;;;-1:-1:-1;;;1188:4937:50;;;;;11184:35:36;1188:4937:50;;11184:35:36;:::i;:::-;3404:3:67;3400:87;;3509:212;1188:4937:50;3509:212:67;1188:4937:50;5663:21;1188:4937;;;;;;;;;;;;;3509:212:67;;;:::i;:::-;;;;3190:805;1188:4937:50;3400:87:67;1188:4937:50;;-1:-1:-1;;;3438:30:67;;1188:4937:50;;3438:30:67;3190:805;1188:4937:50;;;;3765:215:67;1188:4937:50;3765:215:67;1188:4937:50;5663:21;1188:4937;;;;;;;;;;;;3765:215:67;;;:::i;1188:4937:50:-;;;;-1:-1:-1;1188:4937:50;;;;;2548:38:67;;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1188:4937:50;;;;;;;;;;;;;;;;2954:61:67;1188:4937:50;;-1:-1:-1;;;2984:20:67;;1188:4937:50;;2984:20:67;2708:77;1188:4937:50;;-1:-1:-1;;;2741:33:67;;-1:-1:-1;;;;;1188:4937:50;;;;2741:33:67;;1188:4937:50;;;2741:33:67;2173:119;1188:4937:50;;-1:-1:-1;;;2264:17:67;;1188:4937:50;;2264:17:67;2000:89;1188:4937:50;;-1:-1:-1;;;2060:18:67;;1188:4937:50;;2060:18:67;1188:4937:50;;;;;;;;;;;;5823:67;1188:4937;;-1:-1:-1;;;5857:22:50;;1188:4937;;5857:22;1188:4937;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1188:4937:50;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;;;1742:19;1188:4937;;;;1742:19;:::i;:::-;1188:4937;:::i;:::-;;;;;;;;;;1742:30;;;1188:4937;1742:30;;1188:4937;;;;;;:::i;:::-;1742:30;:28;;:30;;;;;;;1188:4937;1742:30;;;1188:4937;-1:-1:-1;1776:10:50;-1:-1:-1;;;;;1188:4937:50;;;1742:44;1738:107;;1776:10;12849:19:63;12845:78;;1188:4937:50;;;;;:::i;:::-;-1:-1:-1;;;;;12959:13:63;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;12959:35:63;;1188:4937:50;;12959:35:63;;1188:4937:50;;;;;;:::i;:::-;1776:10;1188:4937;;;;12959:35:63;1742:28:50;;12959:35:63;;;;;;;1188:4937:50;12959:35:63;;;1188:4937:50;;;;;;;;;;;;;;13443:17:63;;;1188:4937:50;13443:17:63;;1188:4937:50;;;;;;:::i;:::-;13443:17:63;1742:28:50;;13443:17:63;;;;;;;1188:4937:50;13443:17:63;;;1188:4937:50;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1188:4937:50;13480:9:63;;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;13480:19:63;;;1188:4937:50;13480:19:63;;1188:4937:50;;;;;;:::i;:::-;13480:19:63;1742:28:50;;13480:19:63;;;;;;;1188:4937:50;13480:19:63;;;1188:4937:50;13479:20:63;1941:67:50;;1188:4937;;;;2022:19;1188:4937;;;;2022:19;:::i;1188:4937::-;;;;;;;;;;2022:37;;1188:4937;;2022:37;;1188:4937;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13480:9:63;-1:-1:-1;;;;;1188:4937:50;13480:9:63;;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2022:37;;;;;1188:4937;2022:37;;1742:28;;2022:37;;;;;;;1188:4937;2022:37;;;1188:4937;2021:38;;2017:91;;1188:4937;2122:26;1188:4937;;;;2118:424;;1188:4937;2118:424;1188:4937;;;;2309:181;;;;;;;;2420:22;1188:4937;;2309:181;;1188:4937;;;;;;;;;;;;2309:181;;1188:4937;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;4574:31:29;4622:69;;1188:4937:50;;;;;1776:10;4574:31:29;;1188:4937:50;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;1776:10;4622:69:29;:::i;1188:4937:50:-;;;;;2017:91;1188:4937;;-1:-1:-1;;;2082:15:50;;1188:4937;;2082:15;2022:37;;;;1188:4937;2022:37;1188:4937;2022:37;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1188:4937;;;;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;-1:-1:-1;1188:4937:50;;;;;;;;;;;;;1941:67;1188:4937;;-1:-1:-1;;;1981:16:50;;1188:4937;;1981:16;13480:19:63;;;;1188:4937:50;13480:19:63;1188:4937:50;13480:19:63;;;;;;;:::i;:::-;;;;1188:4937:50;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;13443:17:63;;;1188:4937:50;13443:17:63;;1188:4937:50;13443:17:63;;;;;;1188:4937:50;13443:17:63;;;:::i;:::-;;;1188:4937:50;;;;;13443:17:63;;;;;;-1:-1:-1;13443:17:63;;12959:35;;;;;1188:4937:50;12959:35:63;;;;;;:::i;:::-;;;1188:4937:50;;;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1188:4937:50;;;;;;;;12959:35:63;;1188:4937:50;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;12845:78:63;1188:4937:50;;-1:-1:-1;;;12891:21:63;;1188:4937:50;;12891:21:63;1738:107:50;1188:4937;;-1:-1:-1;;;1809:25:50;;1188:4937;;1809:25;1742:30;;;1188:4937;1742:30;;1188:4937;1742:30;;;;;;1188:4937;1742:30;;;:::i;:::-;;;1188:4937;;;;;;;:::i;:::-;1742:30;;;;;;-1:-1:-1;1742:30:50;;1188:4937;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;:::o;:::-;;2548:38:67;;;1188:4937:50;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;:::o;:::-;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1188:4937:50;;;;2548:38:67;1188:4937:50;-1:-1:-1;;1188:4937:50;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1188:4937:50;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1188:4937:50;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6737:692:29:-;;6952:471;;;1188:4937:50;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;1188:4937:50;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;1188:4937:50;;;7261:24:29;;;1188:4937:50;;;7261:24:29;6952:471;-1:-1:-1;1188:4937:50;;8828:21:29;:17;;9000:142;;;;;;8824:411;1188:4937:50;;-1:-1:-1;;;8628:17:29;;;;;1188:4937:50;;;;;;;;:::o;:::-;-1:-1:-1;1188:4937:50;;;;;;4430:138:64;1188:4937:50;;-1:-1:-1;;;4486:26:64;;:10;:26;;;1188:4937:50;4486:26:64;1188:4937:50;;;4486:24:64;:26;;;;;;;-1:-1:-1;4486:26:64;;;4430:138;4485:27;;4481:81;;4430:138::o;4481:81::-;1188:4937:50;;-1:-1:-1;;;4535:16:64;;4486:26;;4535:16;4486:26;;;;;;;;;;;;;;:::i;:::-;;;;1188:4937:50;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2483:766:32:-;1188:4937:50;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;1188:4937:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;1188:4937:50;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;1188:4937:50;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;1188:4937:50:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;5015:22:67;1188:4937:50;;;;;;5015:22:67;-1:-1:-1;1188:4937:50;;;;-1:-1:-1;1188:4937:50;:::o;2215:404:36:-;-1:-1:-1;1188:4937:50;;;4352:12:36;1188:4937:50;;;;;;;;5015:22:67;1188:4937:50;-1:-1:-1;;;1188:4937:50;;;;;;;;;;4352:12:36;1188:4937:50;;;5015:22:67;1188:4937:50;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5015:22:67;1188:4937:50;;;;4352:12:36;1188:4937:50;;;;4352:12:36;2548:11;:::o;1188:4937:50:-;-1:-1:-1;;;1188:4937:50;;;;;;;;2294:319:36;2590:12;;;:::o;2215:404::-;-1:-1:-1;1188:4937:50;;;4352:12:36;;;1188:4937:50;;;;;;2299:21:36;;1188:4937:50;;;-1:-1:-1;;;1188:4937:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1188:4937:50;;-1:-1:-1;1188:4937:50;;;;;;-1:-1:-1;1188:4937:50;2494:12:36;1188:4937:50;;;-1:-1:-1;1188:4937:50;;;2548:11:36;:::o;2294:319::-;2590:12;;-1:-1:-1;2590:12:36;:::o;2787:1388::-;-1:-1:-1;1188:4937:50;;;2990:12:36;1188:4937:50;;;;;;-1:-1:-1;;1188:4937:50;3024:15:36;;;;-1:-1:-1;;1188:4937:50;;;;;;;;;3345:22:67;1188:4937:50;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;1188:4937:50;;;3345:22:67;1188:4937:50;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3345:22:67;1188:4937:50;;;2990:12:36;1188:4937:50;;;;;;2990:12:36;4104:11;:::o;1188:4937:50:-;-1:-1:-1;;;1188:4937:50;;;;;;;;3502:398:36;1188:4937:50;3572:22:36;3694:26;3572:22;;:::i;:::-;1188:4937:50;;;;;;3694:26:36;;;;:::i;1188:4937:50:-;;;;;2990:12:36;1188:4937:50;;;;;;3502:398:36;;;;;1188:4937:50;-1:-1:-1;;;1188:4937:50;;;;;;;;;-1:-1:-1;;;1188:4937:50;;;;;;;;3020:1149:36;4146:12;;;:::o","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":4997,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2933,"length":20},{"start":3152,"length":20},{"start":3232,"length":20},{"start":3413,"length":20},{"start":3594,"length":20}]}}},"methodIdentifiers":{"addCheckpointSignature(uint256,bytes32[],uint256,bytes)":"53b4e7bf","commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":"47dc9b4f","createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":"74303771","pruneBottomUpCheckpoints(uint256)":"ac818379"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddSignatory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedRemoveIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRetentionHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuorumAlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureReplay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMembershipWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"membershipProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"addCheckpointSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"commitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newRetentionHeight\",\"type\":\"uint256\"}],\"name\":\"pruneBottomUpCheckpoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"addCheckpointSignature(uint256,bytes32[],uint256,bytes)\":{\"details\":\"If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`\",\"params\":{\"height\":\"- the height of the block in the checkpoint\",\"membershipProof\":\"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`\",\"signature\":\"- the signature of the checkpoint\",\"weight\":\"- the weight of the validator\"}},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"details\":\"this method is called by the corresponding subnet actor. Called from a subnet actor if the checkpoint is cryptographically valid.\",\"params\":{\"checkpoint\":\"The bottom-up checkpoint to be committed.\"}},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"params\":{\"checkpoint\":\"- a bottom-up checkpoint\",\"membershipRootHash\":\"- a root hash of the Merkle tree built from the validator public keys and their weight\",\"membershipWeight\":\"- the total weight of the membership\"}},\"pruneBottomUpCheckpoints(uint256)\":{\"details\":\"`retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\",\"params\":{\"newRetentionHeight\":\"- the height of the oldest checkpoint to keep\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addCheckpointSignature(uint256,bytes32[],uint256,bytes)\":{\"notice\":\"checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it\"},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"notice\":\"submit a verified checkpoint in the gateway to trigger side-effects.\"},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"notice\":\"creates a new bottom-up checkpoint\"},\"pruneBottomUpCheckpoints(uint256)\":{\"notice\":\"Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/CheckpointingFacet.sol\":\"CheckpointingFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd\",\"dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3\",\"dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"CheckpointAlreadyExists"},{"inputs":[],"type":"error","name":"CheckpointNotCreated"},{"inputs":[],"type":"error","name":"FailedAddIncompleteQuorum"},{"inputs":[],"type":"error","name":"FailedAddSignatory"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"FailedRemoveIncompleteQuorum"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointSource"},{"inputs":[],"type":"error","name":"InvalidRetentionHeight"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"InvalidSubnet"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotAuthorized"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[],"type":"error","name":"QuorumAlreadyProcessed"},{"inputs":[],"type":"error","name":"SignatureReplay"},{"inputs":[],"type":"error","name":"SubnetNotFound"},{"inputs":[],"type":"error","name":"ZeroMembershipWeight"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32[]","name":"membershipProof","type":"bytes32[]"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addCheckpointSignature"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"commitCheckpoint"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpCheckpoint"},{"inputs":[{"internalType":"uint256","name":"newRetentionHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pruneBottomUpCheckpoints"}],"devdoc":{"kind":"dev","methods":{"addCheckpointSignature(uint256,bytes32[],uint256,bytes)":{"details":"If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`","params":{"height":"- the height of the block in the checkpoint","membershipProof":"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`","signature":"- the signature of the checkpoint","weight":"- the weight of the validator"}},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"details":"this method is called by the corresponding subnet actor. Called from a subnet actor if the checkpoint is cryptographically valid.","params":{"checkpoint":"The bottom-up checkpoint to be committed."}},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"params":{"checkpoint":"- a bottom-up checkpoint","membershipRootHash":"- a root hash of the Merkle tree built from the validator public keys and their weight","membershipWeight":"- the total weight of the membership"}},"pruneBottomUpCheckpoints(uint256)":{"details":"`retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.","params":{"newRetentionHeight":"- the height of the oldest checkpoint to keep"}}},"version":1},"userdoc":{"kind":"user","methods":{"addCheckpointSignature(uint256,bytes32[],uint256,bytes)":{"notice":"checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it"},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"notice":"submit a verified checkpoint in the gateway to trigger side-effects."},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"notice":"creates a new bottom-up checkpoint"},"pruneBottomUpCheckpoints(uint256)":{"notice":"Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/CheckpointingFacet.sol":"CheckpointingFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6","urls":["bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd","dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451","urls":["bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3","dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/CheckpointingFacet.sol","id":39871,"exportedSymbols":{"Address":[32838],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49885],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"GatewayActorModifiers":[43081],"IRelayerRewardDistributor":[40372],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"InvalidSubnet":[37446],"LibGateway":[42888],"LibQuorum":[43901],"MaxMsgsPerBatchExceeded":[37382],"NotEnoughBalance":[37462],"NotEnoughSubnetCircSupply":[37474],"NotRegisteredSubnet":[37482],"QuorumObjKind":[49965],"Subnet":[50044],"SubnetID":[50030],"SubnetIDHelper":[48025],"SubnetNotActive":[37506],"SubnetNotFound":[37508]},"nodeType":"SourceUnit","src":"46:6080:50","nodes":[{"id":39603,"nodeType":"PragmaDirective","src":"46:23:50","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39605,"nodeType":"ImportDirective","src":"71:75:50","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":43082,"symbolAliases":[{"foreign":{"id":39604,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43081,"src":"79:21:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39607,"nodeType":"ImportDirective","src":"147:62:50","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":39606,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"155:18:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39609,"nodeType":"ImportDirective","src":"210:52:50","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":42889,"symbolAliases":[{"foreign":{"id":39608,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"218:10:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39611,"nodeType":"ImportDirective","src":"263:50:50","nodes":[],"absolutePath":"src/lib/LibQuorum.sol","file":"../../lib/LibQuorum.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":43902,"symbolAliases":[{"foreign":{"id":39610,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"271:9:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39613,"nodeType":"ImportDirective","src":"314:48:50","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":39612,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"322:6:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39615,"nodeType":"ImportDirective","src":"363:55:50","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":50013,"symbolAliases":[{"foreign":{"id":39614,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49965,"src":"371:13:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39617,"nodeType":"ImportDirective","src":"419:65:50","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":39616,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"427:7:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39619,"nodeType":"ImportDirective","src":"485:76:50","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":40373,"symbolAliases":[{"foreign":{"id":39618,"name":"IRelayerRewardDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40372,"src":"493:25:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39628,"nodeType":"ImportDirective","src":"563:224:50","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39620,"name":"InvalidBatchSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37412,"src":"571:18:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39621,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37462,"src":"591:16:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39622,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"609:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39623,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"634:19:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39624,"name":"InvalidCheckpointSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37410,"src":"655:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39625,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"680:20:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39626,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"702:24:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39627,"name":"CheckpointAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37378,"src":"728:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39634,"nodeType":"ImportDirective","src":"788:133:50","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39629,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"796:19:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39630,"name":"SubnetNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37506,"src":"817:15:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39631,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"834:14:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39632,"name":"InvalidSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37446,"src":"850:13:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39633,"name":"CheckpointNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37386,"src":"865:20:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39640,"nodeType":"ImportDirective","src":"922:149:50","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39635,"name":"BatchNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37388,"src":"930:15:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39636,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"947:17:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39637,"name":"BatchAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37380,"src":"966:18:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39638,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37474,"src":"986:25:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39639,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"1013:22:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39642,"nodeType":"ImportDirective","src":"1073:52:50","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":39641,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"1081:8:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39644,"nodeType":"ImportDirective","src":"1126:60:50","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":39643,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"1134:14:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39870,"nodeType":"ContractDefinition","src":"1188:4937:50","nodes":[{"id":39650,"nodeType":"UsingForDirective","src":"1247:34:50","nodes":[],"global":false,"libraryName":{"id":39647,"name":"SubnetIDHelper","nameLocations":["1253:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"1253:14:50"},"typeName":{"id":39649,"nodeType":"UserDefinedTypeName","pathNode":{"id":39648,"name":"SubnetID","nameLocations":["1272:8:50"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1272:8:50"},"referencedDeclaration":50030,"src":"1272:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":39723,"nodeType":"FunctionDefinition","src":"1595:953:50","nodes":[],"body":{"id":39722,"nodeType":"Block","src":"1670:878:50","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":39663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":39657,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39654,"src":"1742:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1753:8:50","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49875,"src":"1742:19:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":39659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1762:8:50","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47718,"src":"1742:28:50","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1742:30:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":39661,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1776:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1780:6:50","memberName":"sender","nodeType":"MemberAccess","src":"1776:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1742:44:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39668,"nodeType":"IfStatement","src":"1738:107:50","trueBody":{"id":39667,"nodeType":"Block","src":"1788:57:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39664,"name":"InvalidCheckpointSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37410,"src":"1809:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39666,"nodeType":"RevertStatement","src":"1802:32:50"}]}},{"assignments":[39670,39673],"declarations":[{"constant":false,"id":39670,"mutability":"mutable","name":"subnetExists","nameLocation":"1860:12:50","nodeType":"VariableDeclaration","scope":39722,"src":"1855:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39669,"name":"bool","nodeType":"ElementaryTypeName","src":"1855:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39673,"mutability":"mutable","name":"subnet","nameLocation":"1889:6:50","nodeType":"VariableDeclaration","scope":39722,"src":"1874:21:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":39672,"nodeType":"UserDefinedTypeName","pathNode":{"id":39671,"name":"Subnet","nameLocations":["1874:6:50"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"1874:6:50"},"referencedDeclaration":50044,"src":"1874:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":39679,"initialValue":{"arguments":[{"expression":{"id":39676,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1920:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1924:6:50","memberName":"sender","nodeType":"MemberAccess","src":"1920:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":39674,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"1899:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1910:9:50","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42599,"src":"1899:20:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":39678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1899:32:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"1854:77:50"},{"condition":{"id":39681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1945:13:50","subExpression":{"id":39680,"name":"subnetExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39670,"src":"1946:12:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39686,"nodeType":"IfStatement","src":"1941:67:50","trueBody":{"id":39685,"nodeType":"Block","src":"1960:48:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39682,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"1981:14:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1981:16:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39684,"nodeType":"RevertStatement","src":"1974:23:50"}]}},{"condition":{"id":39693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2021:38:50","subExpression":{"arguments":[{"expression":{"id":39690,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39673,"src":"2049:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2056:2:50","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"2049:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":39687,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39654,"src":"2022:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2033:8:50","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49875,"src":"2022:19:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":39689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2042:6:50","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47778,"src":"2022:26:50","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2022:37:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39698,"nodeType":"IfStatement","src":"2017:91:50","trueBody":{"id":39697,"nodeType":"Block","src":"2061:47:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39694,"name":"InvalidSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37446,"src":"2082:13:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2082:15:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39696,"nodeType":"RevertStatement","src":"2075:22:50"}]}},{"condition":{"expression":{"id":39699,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2122:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2124:24:50","memberName":"checkpointRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"2122:26:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39721,"nodeType":"IfStatement","src":"2118:424:50","trueBody":{"id":39720,"nodeType":"Block","src":"2150:392:50","statements":[{"expression":{"arguments":[{"expression":{"id":39704,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2275:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2279:6:50","memberName":"sender","nodeType":"MemberAccess","src":"2275:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":39708,"name":"IRelayerRewardDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40372,"src":"2345:25:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRelayerRewardDistributor_$40372_$","typeString":"type(contract IRelayerRewardDistributor)"}},"id":39709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2371:26:50","memberName":"distributeRewardToRelayers","nodeType":"MemberAccess","referencedDeclaration":40371,"src":"2345:52:50","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$49965_$returns$__$","typeString":"function IRelayerRewardDistributor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"}},{"components":[{"expression":{"id":39710,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39654,"src":"2420:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2431:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"2420:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":39712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2444:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":39713,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49965,"src":"2447:13:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$49965_$","typeString":"type(enum QuorumObjKind)"}},"id":39714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2461:10:50","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":49963,"src":"2447:24:50","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}}],"id":39715,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2419:53:50","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_rational_0_by_1_$_t_enum$_QuorumObjKind_$49965_$","typeString":"tuple(uint256,int_const 0,enum QuorumObjKind)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$49965_$returns$__$","typeString":"function IRelayerRewardDistributor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"},{"typeIdentifier":"t_tuple$_t_uint256_$_t_rational_0_by_1_$_t_enum$_QuorumObjKind_$49965_$","typeString":"tuple(uint256,int_const 0,enum QuorumObjKind)"}],"expression":{"id":39706,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2309:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2313:10:50","memberName":"encodeCall","nodeType":"MemberAccess","src":"2309:14:50","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2309:181:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":39717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2515:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":39701,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"2219:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":39703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2227:21:50","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32570,"src":"2219:29:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":39718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2267:6:50","2303:4:50","2508:5:50"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"2219:312:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":39719,"nodeType":"ExpressionStatement","src":"2219:312:50"}]}}]},"documentation":{"id":39651,"nodeType":"StructuredDocumentation","src":"1287:303:50","text":"@notice submit a verified checkpoint in the gateway to trigger side-effects.\n @dev this method is called by the corresponding subnet actor.\n Called from a subnet actor if the checkpoint is cryptographically valid.\n @param checkpoint The bottom-up checkpoint to be committed."},"functionSelector":"47dc9b4f","implemented":true,"kind":"function","modifiers":[],"name":"commitCheckpoint","nameLocation":"1604:16:50","parameters":{"id":39655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39654,"mutability":"mutable","name":"checkpoint","nameLocation":"1649:10:50","nodeType":"VariableDeclaration","scope":39723,"src":"1621:38:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":39653,"nodeType":"UserDefinedTypeName","pathNode":{"id":39652,"name":"BottomUpCheckpoint","nameLocations":["1621:18:50"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"1621:18:50"},"referencedDeclaration":49885,"src":"1621:18:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1620:40:50"},"returnParameters":{"id":39656,"nodeType":"ParameterList","parameters":[],"src":"1670:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39784,"nodeType":"FunctionDefinition","src":"2846:846:50","nodes":[],"body":{"id":39783,"nodeType":"Block","src":"3029:663:50","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39736,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3043:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3054:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"3043:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":39738,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"3068:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3070:19:50","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":42986,"src":"3068:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3043:46:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3093:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3043:51:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39747,"nodeType":"IfStatement","src":"3039:113:50","trueBody":{"id":39746,"nodeType":"Block","src":"3096:56:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39743,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"3117:22:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3117:24:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39745,"nodeType":"RevertStatement","src":"3110:31:50"}]}},{"condition":{"arguments":[{"expression":{"id":39750,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3201:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3212:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"3201:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39748,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"3165:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3176:24:50","memberName":"bottomUpCheckpointExists","nodeType":"MemberAccess","referencedDeclaration":41836,"src":"3165:35:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":39752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3165:59:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39757,"nodeType":"IfStatement","src":"3161:122:50","trueBody":{"id":39756,"nodeType":"Block","src":"3226:57:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39753,"name":"CheckpointAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37378,"src":"3247:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3247:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39755,"nodeType":"RevertStatement","src":"3240:32:50"}]}},{"expression":{"arguments":[{"expression":{"id":39761,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"3340:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3342:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"3340:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},{"expression":{"id":39763,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3386:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3397:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"3386:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":39768,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3452:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":39766,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3441:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3445:6:50","memberName":"encode","nodeType":"MemberAccess","src":"3441:10:50","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3441:22:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":39765,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3431:9:50","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":39770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3431:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39771,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39729,"src":"3498:18:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39772,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39731,"src":"3548:16:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39773,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"3598:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3600:18:50","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":42974,"src":"3598:20:50","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":39758,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"3293:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43901_$","typeString":"type(library LibQuorum)"}},"id":39760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3303:16:50","memberName":"createQuorumInfo","nodeType":"MemberAccess","referencedDeclaration":43693,"src":"3293:26:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50012_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32,bytes32,uint256,uint256)"}},"id":39775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3334:4:50","3375:9:50","3422:7:50","3478:18:50","3530:16:50","3578:18:50"],"names":["self","objHeight","objHash","membershipRootHash","membershipWeight","majorityPercentage"],"nodeType":"FunctionCall","src":"3293:336:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39776,"nodeType":"ExpressionStatement","src":"3293:336:50"},{"expression":{"arguments":[{"id":39780,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3674:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":39777,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"3639:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3650:23:50","memberName":"storeBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41884,"src":"3639:34:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory)"}},"id":39781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3639:46:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39782,"nodeType":"ExpressionStatement","src":"3639:46:50"}]},"documentation":{"id":39724,"nodeType":"StructuredDocumentation","src":"2554:287:50","text":"@notice creates a new bottom-up checkpoint\n @param checkpoint - a bottom-up checkpoint\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership"},"functionSelector":"74303771","implemented":true,"kind":"function","modifiers":[{"id":39734,"kind":"modifierInvocation","modifierName":{"id":39733,"name":"systemActorOnly","nameLocations":["3013:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":43080,"src":"3013:15:50"},"nodeType":"ModifierInvocation","src":"3013:15:50"}],"name":"createBottomUpCheckpoint","nameLocation":"2855:24:50","parameters":{"id":39732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39727,"mutability":"mutable","name":"checkpoint","nameLocation":"2917:10:50","nodeType":"VariableDeclaration","scope":39784,"src":"2889:38:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":39726,"nodeType":"UserDefinedTypeName","pathNode":{"id":39725,"name":"BottomUpCheckpoint","nameLocations":["2889:18:50"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"2889:18:50"},"referencedDeclaration":49885,"src":"2889:18:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":39729,"mutability":"mutable","name":"membershipRootHash","nameLocation":"2945:18:50","nodeType":"VariableDeclaration","scope":39784,"src":"2937:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2937:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39731,"mutability":"mutable","name":"membershipWeight","nameLocation":"2981:16:50","nodeType":"VariableDeclaration","scope":39784,"src":"2973:24:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39730,"name":"uint256","nodeType":"ElementaryTypeName","src":"2973:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2879:124:50"},"returnParameters":{"id":39735,"nodeType":"ParameterList","parameters":[],"src":"3029:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39822,"nodeType":"FunctionDefinition","src":"4179:577:50","nodes":[],"body":{"id":39821,"nodeType":"Block","src":"4266:490:50","nodes":[],"statements":[{"body":{"id":39811,"nodeType":"Block","src":"4559:115:50","statements":[{"expression":{"id":39805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4573:31:50","subExpression":{"baseExpression":{"expression":{"id":39801,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"4580:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4582:19:50","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42946,"src":"4580:21:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":39804,"indexExpression":{"id":39803,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39793,"src":"4602:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4580:24:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39806,"nodeType":"ExpressionStatement","src":"4573:31:50"},{"id":39810,"nodeType":"UncheckedBlock","src":"4618:46:50","statements":[{"expression":{"id":39808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4646:3:50","subExpression":{"id":39807,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39793,"src":"4648:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39809,"nodeType":"ExpressionStatement","src":"4646:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39798,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39793,"src":"4533:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39799,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39787,"src":"4537:18:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4533:22:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39812,"initializationExpression":{"assignments":[39793],"declarations":[{"constant":false,"id":39793,"mutability":"mutable","name":"h","nameLocation":"4490:1:50","nodeType":"VariableDeclaration","scope":39812,"src":"4482:9:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39792,"name":"uint256","nodeType":"ElementaryTypeName","src":"4482:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39797,"initialValue":{"expression":{"expression":{"id":39794,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"4494:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4496:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"4494:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":39796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4516:15:50","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"4494:37:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4482:49:50"},"nodeType":"ForStatement","src":"4477:197:50"},{"expression":{"arguments":[{"expression":{"id":39816,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"4707:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4709:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"4707:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},{"id":39818,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39787,"src":"4730:18:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39813,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"4684:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43901_$","typeString":"type(library LibQuorum)"}},"id":39815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4694:12:50","memberName":"pruneQuorums","nodeType":"MemberAccess","referencedDeclaration":43786,"src":"4684:22:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50012_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256)"}},"id":39819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4684:65:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39820,"nodeType":"ExpressionStatement","src":"4684:65:50"}]},"documentation":{"id":39785,"nodeType":"StructuredDocumentation","src":"3698:476:50","text":"@notice Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\n @dev `retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing.\n All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\n @param newRetentionHeight - the height of the oldest checkpoint to keep"},"functionSelector":"ac818379","implemented":true,"kind":"function","modifiers":[{"id":39790,"kind":"modifierInvocation","modifierName":{"id":39789,"name":"systemActorOnly","nameLocations":["4250:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":43080,"src":"4250:15:50"},"nodeType":"ModifierInvocation","src":"4250:15:50"}],"name":"pruneBottomUpCheckpoints","nameLocation":"4188:24:50","parameters":{"id":39788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39787,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"4221:18:50","nodeType":"VariableDeclaration","scope":39822,"src":"4213:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39786,"name":"uint256","nodeType":"ElementaryTypeName","src":"4213:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4212:28:50"},"returnParameters":{"id":39791,"nodeType":"ParameterList","parameters":[],"src":"4266:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39869,"nodeType":"FunctionDefinition","src":"5329:794:50","nodes":[],"body":{"id":39868,"nodeType":"Block","src":"5498:625:50","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":39838,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"5663:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5665:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"5663:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},{"id":39840,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39825,"src":"5686:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39835,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"5628:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43901_$","typeString":"type(library LibQuorum)"}},"id":39837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5638:24:50","memberName":"isHeightAlreadyProcessed","nodeType":"MemberAccess","referencedDeclaration":43804,"src":"5628:34:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_QuorumMap_$50012_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256) view"}},"id":39841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5628:65:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39842,"nodeType":"ExpressionStatement","src":"5628:65:50"},{"assignments":[39844,null],"declarations":[{"constant":false,"id":39844,"mutability":"mutable","name":"exists","nameLocation":"5761:6:50","nodeType":"VariableDeclaration","scope":39868,"src":"5756:11:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39843,"name":"bool","nodeType":"ElementaryTypeName","src":"5756:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":39849,"initialValue":{"arguments":[{"id":39847,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39825,"src":"5806:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39845,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"5773:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5784:21:50","memberName":"getBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41779,"src":"5773:32:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpCheckpoint storage pointer)"}},"id":39848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5773:40:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"5755:58:50"},{"condition":{"id":39851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5827:7:50","subExpression":{"id":39850,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39844,"src":"5828:6:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39856,"nodeType":"IfStatement","src":"5823:67:50","trueBody":{"id":39855,"nodeType":"Block","src":"5836:54:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39852,"name":"CheckpointNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37386,"src":"5857:20:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5857:22:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39854,"nodeType":"RevertStatement","src":"5850:29:50"}]}},{"expression":{"arguments":[{"expression":{"id":39860,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"5948:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5950:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"5948:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},{"id":39862,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39825,"src":"5991:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39863,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39828,"src":"6028:15:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":39864,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39830,"src":"6065:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39865,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39832,"src":"6096:9:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":39857,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"5899:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43901_$","typeString":"type(library LibQuorum)"}},"id":39859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5909:18:50","memberName":"addQuorumSignature","nodeType":"MemberAccess","referencedDeclaration":43617,"src":"5899:28:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50012_storage_ptr_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32[] memory,uint256,bytes memory)"}},"id":39866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5942:4:50","5983:6:50","6011:15:50","6057:6:50","6085:9:50"],"names":["self","height","membershipProof","weight","signature"],"nodeType":"FunctionCall","src":"5899:217:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39867,"nodeType":"ExpressionStatement","src":"5899:217:50"}]},"documentation":{"id":39823,"nodeType":"StructuredDocumentation","src":"4762:562:50","text":"@notice checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it\n @dev If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the checkpoint"},"functionSelector":"53b4e7bf","implemented":true,"kind":"function","modifiers":[],"name":"addCheckpointSignature","nameLocation":"5338:22:50","parameters":{"id":39833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39825,"mutability":"mutable","name":"height","nameLocation":"5378:6:50","nodeType":"VariableDeclaration","scope":39869,"src":"5370:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39824,"name":"uint256","nodeType":"ElementaryTypeName","src":"5370:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39828,"mutability":"mutable","name":"membershipProof","nameLocation":"5411:15:50","nodeType":"VariableDeclaration","scope":39869,"src":"5394:32:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":39826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5394:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39827,"nodeType":"ArrayTypeName","src":"5394:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":39830,"mutability":"mutable","name":"weight","nameLocation":"5444:6:50","nodeType":"VariableDeclaration","scope":39869,"src":"5436:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39829,"name":"uint256","nodeType":"ElementaryTypeName","src":"5436:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39832,"mutability":"mutable","name":"signature","nameLocation":"5473:9:50","nodeType":"VariableDeclaration","scope":39869,"src":"5460:22:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39831,"name":"bytes","nodeType":"ElementaryTypeName","src":"5460:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5360:128:50"},"returnParameters":{"id":39834,"nodeType":"ParameterList","parameters":[],"src":"5498:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":39645,"name":"GatewayActorModifiers","nameLocations":["1219:21:50"],"nodeType":"IdentifierPath","referencedDeclaration":43081,"src":"1219:21:50"},"id":39646,"nodeType":"InheritanceSpecifier","src":"1219:21:50"}],"canonicalName":"CheckpointingFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[39870,43081],"name":"CheckpointingFacet","nameLocation":"1197:18:50","scope":39871,"usedErrors":[32461,32466,32469,37378,37384,37386,37394,37396,37398,37402,37404,37410,37432,37434,37446,37458,37486,37502,37508,37512]}],"license":"MIT OR Apache-2.0"},"id":50} \ No newline at end of file diff --git a/.out/CrossMsgHelper.sol/CrossMsgHelper.json b/.out/CrossMsgHelper.sol/CrossMsgHelper.json index 8145fd843..715cfdd28 100644 --- a/.out/CrossMsgHelper.sol/CrossMsgHelper.json +++ b/.out/CrossMsgHelper.sol/CrossMsgHelper.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"createFundMsg","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"signer","type":"address","internalType":"address"},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"stateMutability":"pure"},{"type":"function","name":"createReleaseMsg","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"signer","type":"address","internalType":"address"},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"stateMutability":"pure"},{"type":"function","name":"isSorted","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"NotDelegatedEvmAddress","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523461001c576117c390816100228239308160650152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063716868301461008f57806373b464b714610062578063898414751461005d578063ba094234146100585763f230beb21461005357600080fd5b610973565b610847565b610657565b307f0000000000000000000000000000000000000000000000000000000000000000036105db575b600080fd5b602036600319011261008a576001600160401b036004351161008a5736602360043501121561008a57600435600401356100c881610338565b906100d660405192836102e9565b80825260208201903660248260051b60043501011161008a57602460043501915b60248260051b600435010183106101285761012461011485610c7b565b6040519081529081906020820190565b0390f35b82356001600160401b03811161008a576023199160406004358301360384011261008a5760405190610159826102ae565b602483600435010135936001600160401b03851161008a5760e090858560043501013603011261008a5761018b61030a565b9160248585600435010101356001600160401b03811161008a576101bb90602436918888600435010101016104ed565b83526001600160401b0360448686600435010101351161008a576101ee36600435860187016044810135016024016104ed565b6020840152600435840185016064810135604085015261021090608401610360565b606084015261022760a48686600435010101610554565b608084015260c48585600435010101356001600160401b03811161008a576044602095869560e4602499610269610287968c3691848860043501010101610483565b60a0840152836004350101013560c082015284526004350101610569565b8382015281520193019290506100f7565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102c957604052565b610298565b606081019081106001600160401b038211176102c957604052565b90601f801991011681019081106001600160401b038211176102c957604052565b6040519060e082018281106001600160401b038211176102c957604052565b60405190610336826102ae565b565b6001600160401b0381116102c95760051b60200190565b6001600160401b0381160361008a57565b35906103368261034f565b6001600160a01b0381160361008a57565b919060408382031261008a5760405192610395846102ae565b8381356103a18161034f565b815260209182810135906001600160401b03821161008a57019280601f8501121561008a5783356103d181610338565b946103df60405196876102e9565b818652848087019260051b82010192831161008a5784809101915b83831061040957505050500152565b819083356104168161036b565b81520191019084906103fa565b359060ff8216820361008a57565b6001600160401b0381116102c957601f01601f191660200190565b92919261045882610431565b9161046660405193846102e9565b82948184528183011161008a578281602093846000960137010152565b9080601f8301121561008a5781602061049e9335910161044c565b90565b919060408382031261008a57604051906104ba826102ae565b81936104c581610423565b83526020810135916001600160401b03831161008a576020926104e89201610483565b910152565b919060408382031261008a5760405190610506826102ae565b81938035916001600160401b039283811161008a578161052791840161037c565b8452602082013592831161008a576020926104e892016104a1565b6001600160e01b031981160361008a57565b359061033682610542565b8015150361008a57565b35906103368261055f565b9081604091031261008a5790565b60005b8381106105955750506000910152565b8181015183820152602001610585565b906020916105be81518092818552858086019101610582565b601f01601f1916010190565b90602061049e9281815201906105a5565b606036600319011261008a576004356001600160401b03811161008a57610606903690600401610574565b604036602319011261008a5760405161061e816102ae565b60243590600282101561008a576101249261064b9282526044356106418161036b565b6020830152611089565b604051918291826105ca565b602036600319011261008a576001600160401b0360043581811161008a573660238201121561008a57806004013591821161008a573660248360051b8301011161008a5760209160246106aa920161125c565b6040519015158152f35b60a060031982011261008a576001600160401b039160043583811161008a57826106e091600401610574565b926024356106ed8161036b565b9260443591821161008a5761070491600401610574565b906064359060843590565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061074d575050505090565b83516001600160a01b03168552938101939281019260010161073f565b6040602061049e938161078485518584528584019061070f565b940151908281860391015260ff815116845201519181602082015201906105a5565b61049e906020815260406020845194828285015260c06108356107d6885160e0606089015261014088019061076a565b6107f1858a015191605f1992838a83030160808b015261076a565b90868a015160a08901526001600160401b0360608b0151168489015263ffffffff60e01b60808b01511660e089015260a08a015190888303016101008901526105a5565b96015161012085015201511515910152565b61086e6108906108af610859366106b4565b93959192610868979197610a7d565b506112c2565b94610877610329565b95610882368361037c565b87526020870152369061037c565b94604051956308c7427760e11b87528680600096879360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561096e57610124968593610946575b506108f1906108e7610329565b93845236906104a1565b60208301526108fe610bcb565b9161090761030a565b9586526020860152604085015282606085015282608085015260a084015260c0830152610932610329565b9182526020820152604051918291826107a6565b6108f1919350610967903d8088833e61095f81836102e9565b810190610ae8565b92906108da565b610bb4565b6109b661097f366106b4565b919492939061098c610a7d565b50610997368361037c565b95604051966308c7427760e11b88528780600097889360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af495861561096e57610124978697610a1b575b50906109ef6108f1926112c2565b6109f7610329565b9788526020880152610a12610a0a610329565b94369061037c565b845236906104a1565b6108f192919750610a386109ef913d808a833e61095f81836102e9565b979192506109e1565b60405190610a4e826102ae565b6060602083600081520152565b60405190610a68826102ae565b81610a71610a41565b815260206104e8610a41565b60405190610a8a826102ae565b60405160e08101836001600160401b038211838310176102c957600092602092604052610ab5610a5b565b8152610abf610a5b565b83820152836040820152836060820152836080820152606060a08201528360c082015281520152565b906020808383031261008a5782516001600160401b039384821161008a57019260408484031261008a5760405193610b1f856102ae565b8051610b2a8161034f565b85528281015191821161008a57019180601f8401121561008a578251610b4f81610338565b93610b5d60405195866102e9565b818552838086019260051b82010192831161008a5783809101915b838310610b89575050505082015290565b81908351610b968161036b565b8152019101908390610b78565b90602061049e92818152019061070f565b6040513d6000823e3d90fd5b61049e9036906104a1565b60405190602082018281106001600160401b038211176102c95760405260008252565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110610c5e575050509360408381938161049e97980151908281860391015260ff815116845201519382015201906105a5565b82516001600160a01b031688529685019691850191600101610c2a565b60408051908160209384820194838301908087528251809252606080850182828560051b8801019501966000925b858410610ccf57505050505050610cc9925003601f1981018352826102e9565b51902090565b919360019193959750808097605f198c8203018752610d838b519183808451948a845289610d718c8851610d0f60e09182848b01526101208a0190610bee565b906001600160401b03610d33888d015193603f19948c898782850301910152610bee565b938c015195608096878c01528c0151169460a095868b015263ffffffff60e01b908c0151169460c095868b01528b01519189840301908901526105a5565b96015161010085015201511515910152565b990194019401918896949197959397610ca9565b90359060de198136030182121561008a570190565b903590603e198136030182121561008a570190565b3561049e81610542565b903590601e198136030182121561008a57018035906001600160401b03821161008a5760200191813603831361008a57565b3561049e8161055f565b9035603e198236030181121561008a570190565b9035601e198236030181121561008a5701602081359101916001600160401b03821161008a57813603831361008a57565b908060209392818452848401376000828201840152601f01601f1916010190565b906040610e8f61049e9360ff610e8282610423565b1684526020810190610e1b565b9190928160208201520191610e4c565b919091610eac8180610e07565b604084526080840193813592610ec18461034f565b6001600160401b03809416604083015260209283810135601e198236030181121561008a570195838735970194871161008a578660051b3603851361008a578690604060608501525260a08201936000965b808810610f3b57505061049e9495508083610f2f920190610e07565b91818403910152610e6d565b909484806001928835610f4d8161036b565b848060a01b0316815201960197019690610f13565b6020815281359060de198336030182121561008a57604061104260208561049e950195838286015260c0611033610fae610f9c8a80610e07565b60e060608a0152610140890190610e9f565b610fd1610fbd868c018c610e07565b91605f1992838b83030160808c0152610e9f565b90878b013560a08a01526001600160401b0360608c0135610ff18161034f565b16848a015261101661100560808d01610554565b6001600160e01b03191660e08b0152565b61102360a08c018c610e1b565b918a8403016101008b0152610e4c565b97013561012086015201610569565b1515910152565b60246103369193929360405194859163ffffffff60e01b1660208301526110798151809260208686019101610582565b81010360048101855201836102e9565b9060406110968380610d97565b0135906110cb6110c66110c16110bc6110b26110b28880610d97565b6020810190610dac565b610bc0565b61141d565b6111a2565b906001600160e01b03196110ea60806110e48780610d97565b01610dc1565b16156111845761113e846111186111116111078361049e99610d97565b60a0810190610dcb565b369161044c565b9061112560208201610dfd565b61114e575b60806110e48261113993610d97565b611049565b916001600160a01b0316906116e2565b905061113960806110e460405161117a8161116c8760208301610f62565b03601f1981018352826102e9565b939250505061112a565b61119a93506001600160a01b03909116906114d5565b61049e610bcb565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b146111e7575b156111e3576111d5906111fa565b906111de575090565b905090565b5090565b50506001600160401b03811660016111c7565b60009081526016600a6020836002607f60991b015afa9181519161040a8360018060a01b03169360a01c61ffff1603611250575b83158015611245575b61123e5750565b9250829150565b5060163d1415611237565b6000935091508161122e565b600090815b8383106112715750505050600190565b6001600160401b03606061129361128d8660051b860186610dac565b80610d97565b013561129e8161034f565b16809110156112b3575b600190920191611261565b82156112a85750505050600090565b6113576001600160401b03916112d6610a41565b50604051906bffffffffffffffffffffffff199060601b16602082015260148152611300816102ae565b61116c60405191611310836102ce565b600a83526001600160801b036020840160148152604085019283526040519687956020808801525116604086015251166060840152516060608084015260a08301906105a5565b61135f610329565b6004815290602082015290565b906020808383031261008a5782516001600160401b039384821161008a57019260608484031261008a57604051936113a3856102ce565b80516113ae8161034f565b8552828101516001600160801b038116810361008a5783860152604081015191821161008a570182601f8201121561008a578051906113ec82610431565b936113fa60405195866102e9565b82855283838301011161008a57826114159385019101610582565b604082015290565b600460ff61142c835160ff1690565b16036114a35760206114499101516020808251830101910161136c565b600a6001600160401b0361146483516001600160401b031690565b16036114a35760146001600160801b0361148860208401516001600160801b031690565b16036114a3576040016014815151036114a357516014015190565b60405163c5f8961f60e01b8152600490fd5b600211156114bf57565b634e487b7160e01b600052602160045260246000fd5b805160028110156114bf576114e9816114b5565b611543575081471061152b576000918291829182916001600160a01b03165af1611511611623565b501561151957565b604051630a12f52160e11b8152600490fd5b60405163cd78605960e01b8152306004820152602490fd5b919060018351611552816114b5565b61155b816114b5565b1461156557505050565b60209290920151610336926001600160a01b0390811691165b60405163a9059cbb60e01b60208201526001600160a01b0392831660248201526044808201949094529283526080830191906001600160401b038311848410176102c9576115d192604052169182611653565b80519081151591826115ff575b50506115e75750565b60249060405190635274afe760e01b82526004820152fd5b819250906020918101031261008a576020015161161b8161055f565b1538806115de565b3d1561164e573d9061163482610431565b9161164260405193846102e9565b82523d6000602084013e565b606090565b60008061049e9360208151910182855af161166c611623565b91611694565b9082471061152b5760008161049e946020839451920190855af161166c611623565b90156116d2578151156116a5575090565b803b156116b0575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561151957805190602001fd5b9291906060938315611772575b805160028110156114bf57611703816114b5565b61171b575061049e93506001600160a01b0316611672565b600181949293945161172c816114b5565b611735816114b5565b14611742575b5050505090565b6020015161176994506001600160a01b0392831692611764929184911661157e565b611653565b3880808061173b565b9350611787826001600160a01b038316611653565b936116ef56fea2646970667358221220e8b14ba86041f34684449dab009ab57e503e31cbeeaadfb1d17f57e279caadb164736f6c63430008130033","sourceMap":"763:3563:60:-:0;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2261,"length":20},{"start":2524,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063716868301461008f57806373b464b714610062578063898414751461005d578063ba094234146100585763f230beb21461005357600080fd5b610973565b610847565b610657565b307f0000000000000000000000000000000000000000000000000000000000000000036105db575b600080fd5b602036600319011261008a576001600160401b036004351161008a5736602360043501121561008a57600435600401356100c881610338565b906100d660405192836102e9565b80825260208201903660248260051b60043501011161008a57602460043501915b60248260051b600435010183106101285761012461011485610c7b565b6040519081529081906020820190565b0390f35b82356001600160401b03811161008a576023199160406004358301360384011261008a5760405190610159826102ae565b602483600435010135936001600160401b03851161008a5760e090858560043501013603011261008a5761018b61030a565b9160248585600435010101356001600160401b03811161008a576101bb90602436918888600435010101016104ed565b83526001600160401b0360448686600435010101351161008a576101ee36600435860187016044810135016024016104ed565b6020840152600435840185016064810135604085015261021090608401610360565b606084015261022760a48686600435010101610554565b608084015260c48585600435010101356001600160401b03811161008a576044602095869560e4602499610269610287968c3691848860043501010101610483565b60a0840152836004350101013560c082015284526004350101610569565b8382015281520193019290506100f7565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102c957604052565b610298565b606081019081106001600160401b038211176102c957604052565b90601f801991011681019081106001600160401b038211176102c957604052565b6040519060e082018281106001600160401b038211176102c957604052565b60405190610336826102ae565b565b6001600160401b0381116102c95760051b60200190565b6001600160401b0381160361008a57565b35906103368261034f565b6001600160a01b0381160361008a57565b919060408382031261008a5760405192610395846102ae565b8381356103a18161034f565b815260209182810135906001600160401b03821161008a57019280601f8501121561008a5783356103d181610338565b946103df60405196876102e9565b818652848087019260051b82010192831161008a5784809101915b83831061040957505050500152565b819083356104168161036b565b81520191019084906103fa565b359060ff8216820361008a57565b6001600160401b0381116102c957601f01601f191660200190565b92919261045882610431565b9161046660405193846102e9565b82948184528183011161008a578281602093846000960137010152565b9080601f8301121561008a5781602061049e9335910161044c565b90565b919060408382031261008a57604051906104ba826102ae565b81936104c581610423565b83526020810135916001600160401b03831161008a576020926104e89201610483565b910152565b919060408382031261008a5760405190610506826102ae565b81938035916001600160401b039283811161008a578161052791840161037c565b8452602082013592831161008a576020926104e892016104a1565b6001600160e01b031981160361008a57565b359061033682610542565b8015150361008a57565b35906103368261055f565b9081604091031261008a5790565b60005b8381106105955750506000910152565b8181015183820152602001610585565b906020916105be81518092818552858086019101610582565b601f01601f1916010190565b90602061049e9281815201906105a5565b606036600319011261008a576004356001600160401b03811161008a57610606903690600401610574565b604036602319011261008a5760405161061e816102ae565b60243590600282101561008a576101249261064b9282526044356106418161036b565b6020830152611089565b604051918291826105ca565b602036600319011261008a576001600160401b0360043581811161008a573660238201121561008a57806004013591821161008a573660248360051b8301011161008a5760209160246106aa920161125c565b6040519015158152f35b60a060031982011261008a576001600160401b039160043583811161008a57826106e091600401610574565b926024356106ed8161036b565b9260443591821161008a5761070491600401610574565b906064359060843590565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061074d575050505090565b83516001600160a01b03168552938101939281019260010161073f565b6040602061049e938161078485518584528584019061070f565b940151908281860391015260ff815116845201519181602082015201906105a5565b61049e906020815260406020845194828285015260c06108356107d6885160e0606089015261014088019061076a565b6107f1858a015191605f1992838a83030160808b015261076a565b90868a015160a08901526001600160401b0360608b0151168489015263ffffffff60e01b60808b01511660e089015260a08a015190888303016101008901526105a5565b96015161012085015201511515910152565b61086e6108906108af610859366106b4565b93959192610868979197610a7d565b506112c2565b94610877610329565b95610882368361037c565b87526020870152369061037c565b94604051956308c7427760e11b87528680600096879360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561096e57610124968593610946575b506108f1906108e7610329565b93845236906104a1565b60208301526108fe610bcb565b9161090761030a565b9586526020860152604085015282606085015282608085015260a084015260c0830152610932610329565b9182526020820152604051918291826107a6565b6108f1919350610967903d8088833e61095f81836102e9565b810190610ae8565b92906108da565b610bb4565b6109b661097f366106b4565b919492939061098c610a7d565b50610997368361037c565b95604051966308c7427760e11b88528780600097889360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af495861561096e57610124978697610a1b575b50906109ef6108f1926112c2565b6109f7610329565b9788526020880152610a12610a0a610329565b94369061037c565b845236906104a1565b6108f192919750610a386109ef913d808a833e61095f81836102e9565b979192506109e1565b60405190610a4e826102ae565b6060602083600081520152565b60405190610a68826102ae565b81610a71610a41565b815260206104e8610a41565b60405190610a8a826102ae565b60405160e08101836001600160401b038211838310176102c957600092602092604052610ab5610a5b565b8152610abf610a5b565b83820152836040820152836060820152836080820152606060a08201528360c082015281520152565b906020808383031261008a5782516001600160401b039384821161008a57019260408484031261008a5760405193610b1f856102ae565b8051610b2a8161034f565b85528281015191821161008a57019180601f8401121561008a578251610b4f81610338565b93610b5d60405195866102e9565b818552838086019260051b82010192831161008a5783809101915b838310610b89575050505082015290565b81908351610b968161036b565b8152019101908390610b78565b90602061049e92818152019061070f565b6040513d6000823e3d90fd5b61049e9036906104a1565b60405190602082018281106001600160401b038211176102c95760405260008252565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110610c5e575050509360408381938161049e97980151908281860391015260ff815116845201519382015201906105a5565b82516001600160a01b031688529685019691850191600101610c2a565b60408051908160209384820194838301908087528251809252606080850182828560051b8801019501966000925b858410610ccf57505050505050610cc9925003601f1981018352826102e9565b51902090565b919360019193959750808097605f198c8203018752610d838b519183808451948a845289610d718c8851610d0f60e09182848b01526101208a0190610bee565b906001600160401b03610d33888d015193603f19948c898782850301910152610bee565b938c015195608096878c01528c0151169460a095868b015263ffffffff60e01b908c0151169460c095868b01528b01519189840301908901526105a5565b96015161010085015201511515910152565b990194019401918896949197959397610ca9565b90359060de198136030182121561008a570190565b903590603e198136030182121561008a570190565b3561049e81610542565b903590601e198136030182121561008a57018035906001600160401b03821161008a5760200191813603831361008a57565b3561049e8161055f565b9035603e198236030181121561008a570190565b9035601e198236030181121561008a5701602081359101916001600160401b03821161008a57813603831361008a57565b908060209392818452848401376000828201840152601f01601f1916010190565b906040610e8f61049e9360ff610e8282610423565b1684526020810190610e1b565b9190928160208201520191610e4c565b919091610eac8180610e07565b604084526080840193813592610ec18461034f565b6001600160401b03809416604083015260209283810135601e198236030181121561008a570195838735970194871161008a578660051b3603851361008a578690604060608501525260a08201936000965b808810610f3b57505061049e9495508083610f2f920190610e07565b91818403910152610e6d565b909484806001928835610f4d8161036b565b848060a01b0316815201960197019690610f13565b6020815281359060de198336030182121561008a57604061104260208561049e950195838286015260c0611033610fae610f9c8a80610e07565b60e060608a0152610140890190610e9f565b610fd1610fbd868c018c610e07565b91605f1992838b83030160808c0152610e9f565b90878b013560a08a01526001600160401b0360608c0135610ff18161034f565b16848a015261101661100560808d01610554565b6001600160e01b03191660e08b0152565b61102360a08c018c610e1b565b918a8403016101008b0152610e4c565b97013561012086015201610569565b1515910152565b60246103369193929360405194859163ffffffff60e01b1660208301526110798151809260208686019101610582565b81010360048101855201836102e9565b9060406110968380610d97565b0135906110cb6110c66110c16110bc6110b26110b28880610d97565b6020810190610dac565b610bc0565b61141d565b6111a2565b906001600160e01b03196110ea60806110e48780610d97565b01610dc1565b16156111845761113e846111186111116111078361049e99610d97565b60a0810190610dcb565b369161044c565b9061112560208201610dfd565b61114e575b60806110e48261113993610d97565b611049565b916001600160a01b0316906116e2565b905061113960806110e460405161117a8161116c8760208301610f62565b03601f1981018352826102e9565b939250505061112a565b61119a93506001600160a01b03909116906114d5565b61049e610bcb565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b146111e7575b156111e3576111d5906111fa565b906111de575090565b905090565b5090565b50506001600160401b03811660016111c7565b60009081526016600a6020836002607f60991b015afa9181519161040a8360018060a01b03169360a01c61ffff1603611250575b83158015611245575b61123e5750565b9250829150565b5060163d1415611237565b6000935091508161122e565b600090815b8383106112715750505050600190565b6001600160401b03606061129361128d8660051b860186610dac565b80610d97565b013561129e8161034f565b16809110156112b3575b600190920191611261565b82156112a85750505050600090565b6113576001600160401b03916112d6610a41565b50604051906bffffffffffffffffffffffff199060601b16602082015260148152611300816102ae565b61116c60405191611310836102ce565b600a83526001600160801b036020840160148152604085019283526040519687956020808801525116604086015251166060840152516060608084015260a08301906105a5565b61135f610329565b6004815290602082015290565b906020808383031261008a5782516001600160401b039384821161008a57019260608484031261008a57604051936113a3856102ce565b80516113ae8161034f565b8552828101516001600160801b038116810361008a5783860152604081015191821161008a570182601f8201121561008a578051906113ec82610431565b936113fa60405195866102e9565b82855283838301011161008a57826114159385019101610582565b604082015290565b600460ff61142c835160ff1690565b16036114a35760206114499101516020808251830101910161136c565b600a6001600160401b0361146483516001600160401b031690565b16036114a35760146001600160801b0361148860208401516001600160801b031690565b16036114a3576040016014815151036114a357516014015190565b60405163c5f8961f60e01b8152600490fd5b600211156114bf57565b634e487b7160e01b600052602160045260246000fd5b805160028110156114bf576114e9816114b5565b611543575081471061152b576000918291829182916001600160a01b03165af1611511611623565b501561151957565b604051630a12f52160e11b8152600490fd5b60405163cd78605960e01b8152306004820152602490fd5b919060018351611552816114b5565b61155b816114b5565b1461156557505050565b60209290920151610336926001600160a01b0390811691165b60405163a9059cbb60e01b60208201526001600160a01b0392831660248201526044808201949094529283526080830191906001600160401b038311848410176102c9576115d192604052169182611653565b80519081151591826115ff575b50506115e75750565b60249060405190635274afe760e01b82526004820152fd5b819250906020918101031261008a576020015161161b8161055f565b1538806115de565b3d1561164e573d9061163482610431565b9161164260405193846102e9565b82523d6000602084013e565b606090565b60008061049e9360208151910182855af161166c611623565b91611694565b9082471061152b5760008161049e946020839451920190855af161166c611623565b90156116d2578151156116a5575090565b803b156116b0575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561151957805190602001fd5b9291906060938315611772575b805160028110156114bf57611703816114b5565b61171b575061049e93506001600160a01b0316611672565b600181949293945161172c816114b5565b611735816114b5565b14611742575b5050505090565b6020015161176994506001600160a01b0392831692611764929184911661157e565b611653565b3880808061173b565b9350611787826001600160a01b038316611653565b936116ef56fea2646970667358221220e8b14ba86041f34684449dab009ab57e503e31cbeeaadfb1d17f57e279caadb164736f6c63430008130033","sourceMap":"763:3563:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;763:3563:60;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;-1:-1:-1;;763:3563:60;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;763:3563:60;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;763:3563:60;;;;;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;763:3563:60;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;763:3563:60;;;;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;763:3563:60;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;763:3563:60;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;763:3563:60;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1307:29;763:3563;1386:24;763:3563;;;:::i;:::-;;;;;;;;;;:::i;:::-;;1307:29;:::i;:::-;763:3563;;;:::i;:::-;;;;;;:::i;:::-;;;1265:73;;;763:3563;;;;:::i;:::-;;;;;;;;1386:24;;-1:-1:-1;;;1386:24:60;;;763:3563;1386:24;;;:::i;:::-;;:22;;:24;;;;;;;763:3563;1386:24;;;;;763:3563;;;;;;:::i;:::-;;;;;;;:::i;:::-;1265:73;1364:64;;763:3563;234:9:40;;:::i;:::-;763:3563:60;;;:::i;:::-;;;;1265:73;1225:398;;763:3563;;1225:398;;763:3563;1225:398;;;;193:9:40;1225:398:60;;;;193:9:40;1225:398:60;;;763:3563;1225:398;;;763:3563;;;:::i;:::-;;;;1265:73;1189:481;;193:9:40;763:3563:60;;;;;;;:::i;1386:24::-;763:3563;1386:24;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;763:3563::-;2011:24;763:3563;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;2011:24;;-1:-1:-1;;;2011:24:60;;;763:3563;2011:24;;;:::i;:::-;;:22;;:24;;;;;;;763:3563;2011:24;;;;;763:3563;2049:29;;;763:3563;2049:29;;:::i;:::-;763:3563;;:::i;:::-;;;;1989:91;;;763:3563;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;2011:24::-;763:3563;2011:24;;;;;2049:29;2011:24;;;;;;;;;;:::i;:::-;;;;;;;763:3563;;;;;;;:::i;:::-;;;;-1:-1:-1;763:3563:60;;;;:::o;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;-1:-1:-1;763:3563:60;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;234:9:40:-;763:3563:60;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;-1:-1:-1;234:9:40;;:::o;763:3563:60:-;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;2542:131;763:3563;;;2644:21;;;;;;;763:3563;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;763:3563:60;;;;;;;2644:21;;;;;;;;;;763:3563;;2644:21;;;;;;:::i;:::-;763:3563;2634:32;;2542:131;:::o;763:3563::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;763:3563:60;;;;;;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;763:3563:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;2930:751::-;;3065:22;:16;;;;:::i;:::-;:22;763:3563;3117:16;:62;:50;:48;:30;:19;:16;;;;:::i;:::-;:19;;;;;:::i;:30::-;:48;:::i;:::-;:50;:::i;:::-;:62;:::i;:::-;763:3563;-1:-1:-1;;;;;;3194:23:60;;:16;;;;:::i;:::-;:23;;:::i;:::-;763:3563;3194:38;3190:169;;3531:45;3391:16;763:3563;3391:23;:16;;3594:80;3391:16;;:::i;:::-;:23;;;;;:::i;:::-;763:3563;;;:::i;:::-;3429:16;;3117:19;3429:16;;;:::i;:::-;3425:76;;2930:751;3194:23;3544:16;;:23;:16;;:::i;:23::-;3531:45;:::i;:::-;763:3563;-1:-1:-1;;;;;763:3563:60;;3594:80;:::i;3425:76::-;763:3563;;3544:23;3194;3544:16;3065:22;763:3563;3470:20;;;;3117:19;3470:20;;;:::i;:::-;;763:3563;;3470:20;;;;;;:::i;:::-;3425:76;;;;;;;3190:169;3309:5;;-1:-1:-1;;;;;;763:3563:60;;;;3309:5;:::i;:::-;234:9:40;;:::i;2356:528:1:-;-1:-1:-1;;4542:339:1;;;-1:-1:-1;;;4542:339:1;;;2356:528;2559:5;2555:45;;2762:17;;;:::i;:::-;2793:8;;;2817:9;;:::o;2789:89::-;2857:10;;;:::o;2555:45::-;2580:9;;:::o;4542:339::-;-1:-1:-1;;;;;;;4542:339:1;;;;;7171:2211;7309:1653;;;;;;;;-1:-1:-1;;;;;7309:1653:1;;;;;763:3563:60;7309:1653:1;763:3563:60;;;;;;7309:1653:1;;763:3563:60;7309:1653:1;;;;;;7171:2211;9289:8;;763:3563:60;;9289:34:1;;7171:2211;9285:91;;7171:2211;:::o;9285:91::-;9339:26;-1:-1:-1;9339:26:1;;-1:-1:-1;9339:26:1:o;9289:34::-;13622:37;7309:1653;13622:37;9301:22;;9289:34;;7309:1653;;;-1:-1:-1;7309:1653:1;-1:-1:-1;7309:1653:1;;;3765:559:60;763:3563;3928:9;;3939:10;;;;;;4306:11;;;;763:3563;3765:559;:::o;3928:9::-;-1:-1:-1;;;;;3983:26:60;:20;763:3563;;;;;;;;:::i;:::-;3983:20;;:::i;:::-;:26;763:3563;;;;:::i;:::-;;4028:18;;;;4024:171;;3928:9;763:3563;4209:17;763:3563;;3928:9;;;4024:171;4120:6;4116:65;4024:171;4116:65;4150:12;;;;763:3563;4150:12;:::o;581:314:61:-;695:118;-1:-1:-1;;;;;581:314:61;763:3563:60;;:::i;:::-;;;;480:2:61;4542:339:1;480:2:61;;;;;779:22;;;480:2;779:22;;;;;;:::i;:::-;480:2;763:3563:60;;;;;;:::i;:::-;;193:9:40;;-1:-1:-1;;;;;779:22:61;719:84;;779:22;480:2;;763:3563:60;719:84:61;;763:3563:60;;;;;695:118:61;;;779:22;695:118;;;480:2;;763:3563:60;;480:2:61;;763:3563:60;480:2:61;;;;;;;;;;;;;;;;;:::i;695:118::-;763:3563:60;;:::i;:::-;;438:1:61;;837:51;779:22;837:51;;763:3563:60;581:314:61;:::o;763:3563:60:-;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;480:2:61;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;1412:649:61:-;438:1;763:3563:60;;;;;;;;;;1520:32:61;1516:94;;1667:18;1656:50;1667:18;;;;763:3563:60;;;1656:50:61;;;;;;:::i;:::-;480:2;-1:-1:-1;;;;;763:3563:60;;;-1:-1:-1;;;;;763:3563:60;;;;;1721:32:61;1717:94;;1844:2;-1:-1:-1;;;;;763:3563:60;1667:18:61;1824:16;;763:3563:60;-1:-1:-1;;;;;480:2:61;;;763:3563:60;480:2:61;1824:22;1820:84;;1917:16;;1844:2;1917:16;;763:3563:60;1917:29:61;1913:91;;2037:16;2193:60;;;763:3563:60;:::o;1913:91:61:-;1917:16;763:3563:60;-1:-1:-1;;;1969:24:61;;438:1;;1969:24;763:3563:60;;-1:-1:-1;763:3563:60;;;:::o;:::-;;;;;;;;;;;;2735:383:76;763:3563:60;;;;;;;;;;;:::i;:::-;2852:38:76;;1615:21:29;;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;763:3563:60;1749:33:29;;;;:::i;:::-;;1796:8;1792:63;;2735:383:76:o;1792:63:29:-;763:3563:60;;-1:-1:-1;;;1827:17:29;;;;;1611:109;763:3563:60;;-1:-1:-1;;;1668:41:29;;1623:4;1668:41;;;763:3563:60;;;1668:41:29;2848:264:76;763:3563:60;;;;;;;;:::i;:::-;;;;:::i;:::-;2971:37:76;2967:145;;2848:264;;;2735:383::o;2967:145::-;3031:25;;;;;763:3563:60;3024:77:76;;-1:-1:-1;;;;;763:3563:60;;;;;1254:160:28;763:3563:60;;-1:-1:-1;;;1363:43:28;;;;-1:-1:-1;;;;;763:3563:60;;;1363:43:28;;;763:3563:60;;;;;;;;;1363:43:28;;;763:3563:60;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;2709:53:29;763:3563:60;;;;2709:53:29;;;:::i;:::-;763:3563:60;;5134:22:28;;;;:57;;;;1254:160;5130:135;;;;1254:160;:::o;5130:135::-;1363:43;763:3563:60;;;5214:40:28;;;;;;;;;763:3563:60;5214:40:28;5134:57;5161:30;;;;1363:43;5161:30;;;763:3563:60;;;;1363:43:28;5161:30;763:3563:60;;;;:::i;:::-;5160:31:28;5134:57;;;;763:3563:60;;;;;;234:9:40;;;;:::i;:::-;763:3563:60;;;;;;;:::i;:::-;234:9:40;;763:3563:60;-1:-1:-1;763:3563:60;;;;:::o;:::-;;;:::o;4215:483:29:-;-1:-1:-1;4215:483:29;4622:69;4215:483;4574:31;;;;;;;;;;;:::i;:::-;4622:69;;:::i;4215:483::-;;4419:21;;:29;4415:108;;4574:31;;4622:69;4574:31;;;;;;;;;;;;;:::i;6737:692::-;;6952:471;;;763:3563:60;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;763:3563:60;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;763:3563:60;;;7261:24:29;;;763:3563:60;;;7261:24:29;6952:471;-1:-1:-1;763:3563:60;;8828:21:29;:17;;9000:142;;;;;;3224:896:76;;;;763:3563:60;3460:10:76;;;3456:81;;3224:896;763:3563:60;;;;;;;;;;;:::i;:::-;3608:38:76;;-1:-1:-1;3803:57:29;;-1:-1:-1;;;;;;763:3563:60;3803:57:29;:::i;3604:490:76:-;3856:16;763:3563:60;;;;;;;;;:::i;:::-;;;;:::i;:::-;3835:37:76;3831:263;;3604:490;;;;;3224:896;:::o;3831:263::-;3962:25;;763:3563:60;2709:53:29;;-1:-1:-1;;;;;;763:3563:60;;;;3955:74:76;;;763:3563:60;;;3955:74:76;:::i;:::-;2709:53:29;:::i;:::-;3831:263:76;;;;;;3456:81;763:3563:60;-1:-1:-1;2709:53:29;763:3563:60;-1:-1:-1;;;;;763:3563:60;;2709:53:29;:::i;:::-;3456:81:76;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2227,"length":20},{"start":2490,"length":20}]}},"immutableReferences":{"library_deploy_address":[{"start":101,"length":32}]}},"methodIdentifiers":{"createFundMsg(SubnetID,address,FvmAddress,uint256,uint256)":"f230beb2","createReleaseMsg(SubnetID,address,FvmAddress,uint256,uint256)":"ba094234","execute(CrossMsg,SupplySource)":"73b464b7","isSorted(CrossMsg[])":"89841475","toHash(CrossMsg[])":"71686830"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegatedEvmAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createFundMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createReleaseMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"isSorted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for manipulating StorableMsg struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/CrossMsgHelper.sol\":\"CrossMsgHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"NotDelegatedEvmAddress"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"signer","type":"address"},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"createFundMsg","outputs":[{"internalType":"struct CrossMsg","name":"","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"signer","type":"address"},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"createReleaseMsg","outputs":[{"internalType":"struct CrossMsg","name":"","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"isSorted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/CrossMsgHelper.sol":"CrossMsgHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/CrossMsgHelper.sol","id":40782,"exportedSymbols":{"Address":[32838],"CrossMsg":[49974],"CrossMsgHelper":[40781],"EMPTY_BYTES":[36873],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"IPCAddress":[50204],"METHOD_SEND":[36879],"StorableMsg":[49991],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:4281:60","nodes":[{"id":40449,"nodeType":"PragmaDirective","src":"46:23:60","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40452,"nodeType":"ImportDirective","src":"71:68:60","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":40450,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"79:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40451,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"92:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40455,"nodeType":"ImportDirective","src":"140:62:60","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":40453,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"148:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40454,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"161:8:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40458,"nodeType":"ImportDirective","src":"203:59:60","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":40456,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"211:8:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40457,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"221:10:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40460,"nodeType":"ImportDirective","src":"263:57:60","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":40459,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"271:14:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40462,"nodeType":"ImportDirective","src":"321:61:60","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":40461,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"329:16:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40464,"nodeType":"ImportDirective","src":"383:53:60","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":40463,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"391:10:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40466,"nodeType":"ImportDirective","src":"437:56:60","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":40465,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"445:10:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40468,"nodeType":"ImportDirective","src":"494:65:60","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":40467,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"502:7:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40470,"nodeType":"ImportDirective","src":"560:51:60","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":40469,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"568:12:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40472,"nodeType":"ImportDirective","src":"612:60:60","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"./SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":40471,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"620:18:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40781,"nodeType":"ContractDefinition","src":"763:3563:60","nodes":[{"id":40477,"nodeType":"UsingForDirective","src":"792:34:60","nodes":[],"global":false,"libraryName":{"id":40474,"name":"SubnetIDHelper","nameLocations":["798:14:60"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"798:14:60"},"typeName":{"id":40476,"nodeType":"UserDefinedTypeName","pathNode":{"id":40475,"name":"SubnetID","nameLocations":["817:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"817:8:60"},"referencedDeclaration":50077,"src":"817:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":40480,"nodeType":"UsingForDirective","src":"831:29:60","nodes":[],"global":false,"libraryName":{"id":40478,"name":"FilAddress","nameLocations":["837:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"837:10:60"},"typeName":{"id":40479,"name":"address","nodeType":"ElementaryTypeName","src":"852:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":40484,"nodeType":"UsingForDirective","src":"865:38:60","nodes":[],"global":false,"libraryName":{"id":40481,"name":"FvmAddressHelper","nameLocations":["871:16:60"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"871:16:60"},"typeName":{"id":40483,"nodeType":"UserDefinedTypeName","pathNode":{"id":40482,"name":"FvmAddress","nameLocations":["892:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"892:10:60"},"referencedDeclaration":49998,"src":"892:10:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":40488,"nodeType":"UsingForDirective","src":"908:42:60","nodes":[],"global":false,"libraryName":{"id":40485,"name":"SupplySourceHelper","nameLocations":["914:18:60"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"914:18:60"},"typeName":{"id":40487,"nodeType":"UserDefinedTypeName","pathNode":{"id":40486,"name":"SupplySource","nameLocations":["937:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"937:12:60"},"referencedDeclaration":50226,"src":"937:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":40531,"nodeType":"FunctionDefinition","src":"956:721:60","nodes":[],"body":{"id":40530,"nodeType":"Block","src":"1160:517:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":40509,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40491,"src":"1287:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},{"arguments":[{"id":40512,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40493,"src":"1329:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40510,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"1307:16:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":40511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1324:4:60","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"1307:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":40513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1307:29:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":40508,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"1265:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1277:8:60","1295:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1265:73:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40516,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40491,"src":"1386:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":40517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1393:15:60","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47578,"src":"1386:22:60","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":40518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1386:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":40519,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40496,"src":"1424:2:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}],"id":40515,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"1364:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1376:8:60","1412:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1364:64:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"id":40521,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40498,"src":"1457:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":40522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1491:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":40523,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"1522:11:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40524,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"1563:11:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40525,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40500,"src":"1601:3:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40507,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"1225:11:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":40526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1259:4:60","1360:2:60","1450:5:60","1484:5:60","1514:6:60","1555:6:60","1596:3:60"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"1225:398:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":40527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1650:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40506,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"1189:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":40528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1216:7:60","1641:7:60"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"1189:481:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"functionReturnParameters":40505,"id":40529,"nodeType":"Return","src":"1170:500:60"}]},"functionSelector":"ba094234","implemented":true,"kind":"function","modifiers":[],"name":"createReleaseMsg","nameLocation":"965:16:60","parameters":{"id":40501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40491,"mutability":"mutable","name":"subnet","nameLocation":"1009:6:60","nodeType":"VariableDeclaration","scope":40531,"src":"991:24:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40490,"nodeType":"UserDefinedTypeName","pathNode":{"id":40489,"name":"SubnetID","nameLocations":["991:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"991:8:60"},"referencedDeclaration":50077,"src":"991:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40493,"mutability":"mutable","name":"signer","nameLocation":"1033:6:60","nodeType":"VariableDeclaration","scope":40531,"src":"1025:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40492,"name":"address","nodeType":"ElementaryTypeName","src":"1025:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40496,"mutability":"mutable","name":"to","nameLocation":"1069:2:60","nodeType":"VariableDeclaration","scope":40531,"src":"1049:22:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40495,"nodeType":"UserDefinedTypeName","pathNode":{"id":40494,"name":"FvmAddress","nameLocations":["1049:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1049:10:60"},"referencedDeclaration":49998,"src":"1049:10:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40498,"mutability":"mutable","name":"value","nameLocation":"1089:5:60","nodeType":"VariableDeclaration","scope":40531,"src":"1081:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40497,"name":"uint256","nodeType":"ElementaryTypeName","src":"1081:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40500,"mutability":"mutable","name":"fee","nameLocation":"1112:3:60","nodeType":"VariableDeclaration","scope":40531,"src":"1104:11:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40499,"name":"uint256","nodeType":"ElementaryTypeName","src":"1104:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"981:140:60"},"returnParameters":{"id":40505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40504,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40531,"src":"1143:15:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40503,"nodeType":"UserDefinedTypeName","pathNode":{"id":40502,"name":"CrossMsg","nameLocations":["1143:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1143:8:60"},"referencedDeclaration":49974,"src":"1143:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1142:17:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40574,"nodeType":"FunctionDefinition","src":"1683:718:60","nodes":[],"body":{"id":40573,"nodeType":"Block","src":"1884:517:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40552,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40534,"src":"2011:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":40553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2018:15:60","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47578,"src":"2011:22:60","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":40554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2011:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":40557,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40536,"src":"2071:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40555,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"2049:16:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":40556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2066:4:60","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"2049:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":40558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2049:29:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":40551,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"1989:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2001:8:60","2037:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1989:91:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"id":40561,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40534,"src":"2128:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},{"id":40562,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40539,"src":"2148:2:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}],"id":40560,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"2106:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2118:8:60","2136:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"2106:46:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"id":40564,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40541,"src":"2181:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":40565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2215:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":40566,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"2246:11:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40567,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2287:11:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40568,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40543,"src":"2325:3:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40550,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"1949:11:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":40569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1983:4:60","2102:2:60","2174:5:60","2208:5:60","2238:6:60","2279:6:60","2320:3:60"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"1949:398:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":40570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2374:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40549,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"1913:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":40571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1940:7:60","2365:7:60"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"1913:481:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"functionReturnParameters":40548,"id":40572,"nodeType":"Return","src":"1894:500:60"}]},"functionSelector":"f230beb2","implemented":true,"kind":"function","modifiers":[],"name":"createFundMsg","nameLocation":"1692:13:60","parameters":{"id":40544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40534,"mutability":"mutable","name":"subnet","nameLocation":"1733:6:60","nodeType":"VariableDeclaration","scope":40574,"src":"1715:24:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40533,"nodeType":"UserDefinedTypeName","pathNode":{"id":40532,"name":"SubnetID","nameLocations":["1715:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1715:8:60"},"referencedDeclaration":50077,"src":"1715:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40536,"mutability":"mutable","name":"signer","nameLocation":"1757:6:60","nodeType":"VariableDeclaration","scope":40574,"src":"1749:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40535,"name":"address","nodeType":"ElementaryTypeName","src":"1749:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40539,"mutability":"mutable","name":"to","nameLocation":"1793:2:60","nodeType":"VariableDeclaration","scope":40574,"src":"1773:22:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40538,"nodeType":"UserDefinedTypeName","pathNode":{"id":40537,"name":"FvmAddress","nameLocations":["1773:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1773:10:60"},"referencedDeclaration":49998,"src":"1773:10:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40541,"mutability":"mutable","name":"value","nameLocation":"1813:5:60","nodeType":"VariableDeclaration","scope":40574,"src":"1805:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40540,"name":"uint256","nodeType":"ElementaryTypeName","src":"1805:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40543,"mutability":"mutable","name":"fee","nameLocation":"1836:3:60","nodeType":"VariableDeclaration","scope":40574,"src":"1828:11:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40542,"name":"uint256","nodeType":"ElementaryTypeName","src":"1828:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1705:140:60"},"returnParameters":{"id":40548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40574,"src":"1867:15:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40546,"nodeType":"UserDefinedTypeName","pathNode":{"id":40545,"name":"CrossMsg","nameLocations":["1867:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1867:8:60"},"referencedDeclaration":49974,"src":"1867:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1866:17:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40590,"nodeType":"FunctionDefinition","src":"2407:129:60","nodes":[],"body":{"id":40589,"nodeType":"Block","src":"2481:55:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40585,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40577,"src":"2519:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":40583,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2508:3:60","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2512:6:60","memberName":"encode","nodeType":"MemberAccess","src":"2508:10:60","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40582,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2498:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:31:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40581,"id":40588,"nodeType":"Return","src":"2491:38:60"}]},"implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"2416:6:60","parameters":{"id":40578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40577,"mutability":"mutable","name":"crossMsg","nameLocation":"2439:8:60","nodeType":"VariableDeclaration","scope":40590,"src":"2423:24:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40576,"nodeType":"UserDefinedTypeName","pathNode":{"id":40575,"name":"CrossMsg","nameLocations":["2423:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"2423:8:60"},"referencedDeclaration":49974,"src":"2423:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2422:26:60"},"returnParameters":{"id":40581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40590,"src":"2472:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40579,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2472:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2471:9:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40607,"nodeType":"FunctionDefinition","src":"2542:131:60","nodes":[],"body":{"id":40606,"nodeType":"Block","src":"2617:56:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40602,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40594,"src":"2655:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":40600,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2644:3:60","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2648:6:60","memberName":"encode","nodeType":"MemberAccess","src":"2644:10:60","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2644:21:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40599,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2634:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2634:32:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40598,"id":40605,"nodeType":"Return","src":"2627:39:60"}]},"functionSelector":"71686830","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"2551:6:60","parameters":{"id":40595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40594,"mutability":"mutable","name":"crossMsgs","nameLocation":"2576:9:60","nodeType":"VariableDeclaration","scope":40607,"src":"2558:27:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":40592,"nodeType":"UserDefinedTypeName","pathNode":{"id":40591,"name":"CrossMsg","nameLocations":["2558:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"2558:8:60"},"referencedDeclaration":49974,"src":"2558:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":40593,"nodeType":"ArrayTypeName","src":"2558:10:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"2557:29:60"},"returnParameters":{"id":40598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40597,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40607,"src":"2608:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2608:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2607:9:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40638,"nodeType":"FunctionDefinition","src":"2679:245:60","nodes":[],"body":{"id":40637,"nodeType":"Block","src":"2751:173:60","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40615,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40610,"src":"2780:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2789:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2780:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2797:5:60","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"2780:22:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2780:27:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"expression":{"id":40620,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40610,"src":"2823:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2832:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2823:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2840:2:60","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"2823:19:60","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":40623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2843:8:60","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"2823:28:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":40624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2852:4:60","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2823:33:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2860:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2823:38:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2780:81:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"expression":{"id":40628,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40610,"src":"2877:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2886:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2877:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2894:4:60","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"2877:21:60","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":40631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2899:8:60","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"2877:30:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":40632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2908:4:60","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2877:35:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2916:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2877:40:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2780:137:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40614,"id":40636,"nodeType":"Return","src":"2761:156:60"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"2688:7:60","parameters":{"id":40611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40610,"mutability":"mutable","name":"crossMsg","nameLocation":"2712:8:60","nodeType":"VariableDeclaration","scope":40638,"src":"2696:24:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40609,"nodeType":"UserDefinedTypeName","pathNode":{"id":40608,"name":"CrossMsg","nameLocations":["2696:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"2696:8:60"},"referencedDeclaration":49974,"src":"2696:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2695:26:60"},"returnParameters":{"id":40614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40638,"src":"2745:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40612,"name":"bool","nodeType":"ElementaryTypeName","src":"2745:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2744:6:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40724,"nodeType":"FunctionDefinition","src":"2930:751:60","nodes":[],"body":{"id":40723,"nodeType":"Block","src":"3039:642:60","nodes":[],"statements":[{"assignments":[40650],"declarations":[{"constant":false,"id":40650,"mutability":"mutable","name":"value","nameLocation":"3057:5:60","nodeType":"VariableDeclaration","scope":40723,"src":"3049:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40649,"name":"uint256","nodeType":"ElementaryTypeName","src":"3049:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40654,"initialValue":{"expression":{"expression":{"id":40651,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3065:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3074:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3065:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3082:5:60","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"3065:22:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3049:38:60"},{"assignments":[40656],"declarations":[{"constant":false,"id":40656,"mutability":"mutable","name":"recipient","nameLocation":"3105:9:60","nodeType":"VariableDeclaration","scope":40723,"src":"3097:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40655,"name":"address","nodeType":"ElementaryTypeName","src":"3097:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40665,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"expression":{"id":40657,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3117:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3126:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3117:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3134:2:60","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"3117:19:60","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":40660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3137:10:60","memberName":"rawAddress","nodeType":"MemberAccess","referencedDeclaration":50203,"src":"3117:30:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}},"id":40661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3148:17:60","memberName":"extractEvmAddress","nodeType":"MemberAccess","referencedDeclaration":40952,"src":"3117:48:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (struct FvmAddress memory) pure returns (address)"}},"id":40662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3117:50:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3168:9:60","memberName":"normalize","nodeType":"MemberAccess","referencedDeclaration":1220,"src":"3117:60:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address) view returns (address)"}},"id":40664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3117:62:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3097:82:60"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":40670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40666,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3194:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3203:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3194:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3211:6:60","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":49986,"src":"3194:23:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":40669,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"3221:11:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3194:38:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40684,"nodeType":"IfStatement","src":"3190:169:60","trueBody":{"id":40683,"nodeType":"Block","src":"3234:125:60","statements":[{"expression":{"arguments":[{"arguments":[{"id":40676,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40656,"src":"3290:9:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3282:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":40674,"name":"address","nodeType":"ElementaryTypeName","src":"3282:8:60","stateMutability":"payable","typeDescriptions":{}}},"id":40677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3282:18:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":40678,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40650,"src":"3309:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40671,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40644,"src":"3248:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":40673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3261:8:60","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":48263,"src":"3248:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SupplySource_$50226_memory_ptr_$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory,address payable,uint256)"}},"id":40679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3271:9:60","3302:5:60"],"names":["recipient","value"],"nodeType":"FunctionCall","src":"3248:68:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40680,"nodeType":"ExpressionStatement","src":"3248:68:60"},{"expression":{"id":40681,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3337:11:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":40648,"id":40682,"nodeType":"Return","src":"3330:18:60"}]}},{"assignments":[40686],"declarations":[{"constant":false,"id":40686,"mutability":"mutable","name":"params","nameLocation":"3382:6:60","nodeType":"VariableDeclaration","scope":40723,"src":"3369:19:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40685,"name":"bytes","nodeType":"ElementaryTypeName","src":"3369:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40690,"initialValue":{"expression":{"expression":{"id":40687,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3391:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3400:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3391:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3408:6:60","memberName":"params","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"3391:23:60","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"3369:45:60"},{"condition":{"expression":{"id":40691,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3429:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3438:7:60","memberName":"wrapped","nodeType":"MemberAccess","referencedDeclaration":49973,"src":"3429:16:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40701,"nodeType":"IfStatement","src":"3425:76:60","trueBody":{"id":40700,"nodeType":"Block","src":"3447:54:60","statements":[{"expression":{"id":40698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40693,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40686,"src":"3461:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":40696,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3481:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}],"expression":{"id":40694,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3470:3:60","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3474:6:60","memberName":"encode","nodeType":"MemberAccess","src":"3470:10:60","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3470:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3461:29:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40699,"nodeType":"ExpressionStatement","src":"3461:29:60"}]}},{"assignments":[40703],"declarations":[{"constant":false,"id":40703,"mutability":"mutable","name":"data","nameLocation":"3524:4:60","nodeType":"VariableDeclaration","scope":40723,"src":"3511:17:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40702,"name":"bytes","nodeType":"ElementaryTypeName","src":"3511:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40712,"initialValue":{"arguments":[{"expression":{"expression":{"id":40707,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3544:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3553:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3544:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3561:6:60","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":49986,"src":"3544:23:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40710,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40686,"src":"3569:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3531:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":40704,"name":"bytes","nodeType":"ElementaryTypeName","src":"3531:5:60","typeDescriptions":{}}},"id":40706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3537:6:60","memberName":"concat","nodeType":"MemberAccess","src":"3531:12:60","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3531:45:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3511:65:60"},{"expression":{"arguments":[{"arguments":[{"id":40717,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40656,"src":"3636:9:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3628:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":40715,"name":"address","nodeType":"ElementaryTypeName","src":"3628:8:60","stateMutability":"payable","typeDescriptions":{}}},"id":40718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3628:18:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":40719,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40703,"src":"3654:4:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40720,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40650,"src":"3667:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40713,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40644,"src":"3594:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":40714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3607:11:60","memberName":"performCall","nodeType":"MemberAccess","referencedDeclaration":48334,"src":"3594:24:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SupplySource_$50226_memory_ptr_$_t_address_payable_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory,address payable,bytes memory,uint256) returns (bytes memory)"}},"id":40721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3620:6:60","3648:4:60","3660:5:60"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3594:80:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":40648,"id":40722,"nodeType":"Return","src":"3587:87:60"}]},"functionSelector":"73b464b7","implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"2939:7:60","parameters":{"id":40645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40641,"mutability":"mutable","name":"crossMsg","nameLocation":"2965:8:60","nodeType":"VariableDeclaration","scope":40724,"src":"2947:26:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40640,"nodeType":"UserDefinedTypeName","pathNode":{"id":40639,"name":"CrossMsg","nameLocations":["2947:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"2947:8:60"},"referencedDeclaration":49974,"src":"2947:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"},{"constant":false,"id":40644,"mutability":"mutable","name":"supplySource","nameLocation":"2995:12:60","nodeType":"VariableDeclaration","scope":40724,"src":"2975:32:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":40643,"nodeType":"UserDefinedTypeName","pathNode":{"id":40642,"name":"SupplySource","nameLocations":["2975:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"2975:12:60"},"referencedDeclaration":50226,"src":"2975:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"2946:62:60"},"returnParameters":{"id":40648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40647,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40724,"src":"3025:12:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40646,"name":"bytes","nodeType":"ElementaryTypeName","src":"3025:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3024:14:60"},"scope":40781,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40780,"nodeType":"FunctionDefinition","src":"3765:559:60","nodes":[],"body":{"id":40779,"nodeType":"Block","src":"3843:481:60","nodes":[],"statements":[{"assignments":[40734],"declarations":[{"constant":false,"id":40734,"mutability":"mutable","name":"prevNonce","nameLocation":"3861:9:60","nodeType":"VariableDeclaration","scope":40779,"src":"3853:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40733,"name":"uint256","nodeType":"ElementaryTypeName","src":"3853:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40735,"nodeType":"VariableDeclarationStatement","src":"3853:17:60"},{"assignments":[40737],"declarations":[{"constant":false,"id":40737,"mutability":"mutable","name":"length","nameLocation":"3888:6:60","nodeType":"VariableDeclaration","scope":40779,"src":"3880:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40736,"name":"uint256","nodeType":"ElementaryTypeName","src":"3880:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40740,"initialValue":{"expression":{"id":40738,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40728,"src":"3897:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":40739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3907:6:60","memberName":"length","nodeType":"MemberAccess","src":"3897:16:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3880:33:60"},{"body":{"id":40775,"nodeType":"Block","src":"3953:343:60","statements":[{"assignments":[40748],"declarations":[{"constant":false,"id":40748,"mutability":"mutable","name":"nonce","nameLocation":"3975:5:60","nodeType":"VariableDeclaration","scope":40775,"src":"3967:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40747,"name":"uint256","nodeType":"ElementaryTypeName","src":"3967:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40754,"initialValue":{"expression":{"expression":{"baseExpression":{"id":40749,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40728,"src":"3983:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":40751,"indexExpression":{"id":40750,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40742,"src":"3993:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3983:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3996:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3983:20:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4004:5:60","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"3983:26:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"3967:42:60"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40755,"name":"prevNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40734,"src":"4028:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":40756,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40748,"src":"4041:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4028:18:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40766,"nodeType":"IfStatement","src":"4024:171:60","trueBody":{"id":40765,"nodeType":"Block","src":"4048:147:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40758,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40742,"src":"4120:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":40759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4125:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4120:6:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40764,"nodeType":"IfStatement","src":"4116:65:60","trueBody":{"id":40763,"nodeType":"Block","src":"4128:53:60","statements":[{"expression":{"hexValue":"66616c7365","id":40761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4157:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":40732,"id":40762,"nodeType":"Return","src":"4150:12:60"}]}}]}},{"expression":{"id":40769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40767,"name":"prevNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40734,"src":"4209:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":40768,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40748,"src":"4221:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4209:17:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40770,"nodeType":"ExpressionStatement","src":"4209:17:60"},{"id":40774,"nodeType":"UncheckedBlock","src":"4240:46:60","statements":[{"expression":{"id":40772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4268:3:60","subExpression":{"id":40771,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40742,"src":"4270:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40773,"nodeType":"ExpressionStatement","src":"4268:3:60"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40744,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40742,"src":"3939:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40745,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40737,"src":"3943:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3939:10:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40776,"initializationExpression":{"assignments":[40742],"declarations":[{"constant":false,"id":40742,"mutability":"mutable","name":"i","nameLocation":"3936:1:60","nodeType":"VariableDeclaration","scope":40776,"src":"3928:9:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40741,"name":"uint256","nodeType":"ElementaryTypeName","src":"3928:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40743,"nodeType":"VariableDeclarationStatement","src":"3928:9:60"},"nodeType":"ForStatement","src":"3923:373:60"},{"expression":{"hexValue":"74727565","id":40777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4313:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":40732,"id":40778,"nodeType":"Return","src":"4306:11:60"}]},"functionSelector":"89841475","implemented":true,"kind":"function","modifiers":[],"name":"isSorted","nameLocation":"3774:8:60","parameters":{"id":40729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40728,"mutability":"mutable","name":"crossMsgs","nameLocation":"3803:9:60","nodeType":"VariableDeclaration","scope":40780,"src":"3783:29:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":40726,"nodeType":"UserDefinedTypeName","pathNode":{"id":40725,"name":"CrossMsg","nameLocations":["3783:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"3783:8:60"},"referencedDeclaration":49974,"src":"3783:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":40727,"nodeType":"ArrayTypeName","src":"3783:10:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"3782:31:60"},"returnParameters":{"id":40732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40731,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40780,"src":"3837:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40730,"name":"bool","nodeType":"ElementaryTypeName","src":"3837:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3836:6:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"CrossMsgHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":40473,"nodeType":"StructuredDocumentation","src":"674:89:60","text":"@title Helper library for manipulating StorableMsg struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[40781],"name":"CrossMsgHelper","nameLocation":"771:14:60","scope":40782,"usedErrors":[32118,32461,32466,32469,40803]}],"license":"MIT OR Apache-2.0"},"id":60} \ No newline at end of file +{"abi":[{"type":"function","name":"createFundMsg","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"signer","type":"address","internalType":"address"},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"stateMutability":"pure"},{"type":"function","name":"createReleaseMsg","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"signer","type":"address","internalType":"address"},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"stateMutability":"pure"},{"type":"function","name":"isSorted","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"NotDelegatedEvmAddress","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523461001c576117c390816100228239308160650152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063716868301461008f57806373b464b714610062578063898414751461005d578063ba094234146100585763f230beb21461005357600080fd5b610973565b610847565b610657565b307f0000000000000000000000000000000000000000000000000000000000000000036105db575b600080fd5b602036600319011261008a576001600160401b036004351161008a5736602360043501121561008a57600435600401356100c881610338565b906100d660405192836102e9565b80825260208201903660248260051b60043501011161008a57602460043501915b60248260051b600435010183106101285761012461011485610c7b565b6040519081529081906020820190565b0390f35b82356001600160401b03811161008a576023199160406004358301360384011261008a5760405190610159826102ae565b602483600435010135936001600160401b03851161008a5760e090858560043501013603011261008a5761018b61030a565b9160248585600435010101356001600160401b03811161008a576101bb90602436918888600435010101016104ed565b83526001600160401b0360448686600435010101351161008a576101ee36600435860187016044810135016024016104ed565b6020840152600435840185016064810135604085015261021090608401610360565b606084015261022760a48686600435010101610554565b608084015260c48585600435010101356001600160401b03811161008a576044602095869560e4602499610269610287968c3691848860043501010101610483565b60a0840152836004350101013560c082015284526004350101610569565b8382015281520193019290506100f7565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102c957604052565b610298565b606081019081106001600160401b038211176102c957604052565b90601f801991011681019081106001600160401b038211176102c957604052565b6040519060e082018281106001600160401b038211176102c957604052565b60405190610336826102ae565b565b6001600160401b0381116102c95760051b60200190565b6001600160401b0381160361008a57565b35906103368261034f565b6001600160a01b0381160361008a57565b919060408382031261008a5760405192610395846102ae565b8381356103a18161034f565b815260209182810135906001600160401b03821161008a57019280601f8501121561008a5783356103d181610338565b946103df60405196876102e9565b818652848087019260051b82010192831161008a5784809101915b83831061040957505050500152565b819083356104168161036b565b81520191019084906103fa565b359060ff8216820361008a57565b6001600160401b0381116102c957601f01601f191660200190565b92919261045882610431565b9161046660405193846102e9565b82948184528183011161008a578281602093846000960137010152565b9080601f8301121561008a5781602061049e9335910161044c565b90565b919060408382031261008a57604051906104ba826102ae565b81936104c581610423565b83526020810135916001600160401b03831161008a576020926104e89201610483565b910152565b919060408382031261008a5760405190610506826102ae565b81938035916001600160401b039283811161008a578161052791840161037c565b8452602082013592831161008a576020926104e892016104a1565b6001600160e01b031981160361008a57565b359061033682610542565b8015150361008a57565b35906103368261055f565b9081604091031261008a5790565b60005b8381106105955750506000910152565b8181015183820152602001610585565b906020916105be81518092818552858086019101610582565b601f01601f1916010190565b90602061049e9281815201906105a5565b606036600319011261008a576004356001600160401b03811161008a57610606903690600401610574565b604036602319011261008a5760405161061e816102ae565b60243590600282101561008a576101249261064b9282526044356106418161036b565b6020830152611089565b604051918291826105ca565b602036600319011261008a576001600160401b0360043581811161008a573660238201121561008a57806004013591821161008a573660248360051b8301011161008a5760209160246106aa920161125c565b6040519015158152f35b60a060031982011261008a576001600160401b039160043583811161008a57826106e091600401610574565b926024356106ed8161036b565b9260443591821161008a5761070491600401610574565b906064359060843590565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061074d575050505090565b83516001600160a01b03168552938101939281019260010161073f565b6040602061049e938161078485518584528584019061070f565b940151908281860391015260ff815116845201519181602082015201906105a5565b61049e906020815260406020845194828285015260c06108356107d6885160e0606089015261014088019061076a565b6107f1858a015191605f1992838a83030160808b015261076a565b90868a015160a08901526001600160401b0360608b0151168489015263ffffffff60e01b60808b01511660e089015260a08a015190888303016101008901526105a5565b96015161012085015201511515910152565b61086e6108906108af610859366106b4565b93959192610868979197610a7d565b506112c2565b94610877610329565b95610882368361037c565b87526020870152369061037c565b94604051956308c7427760e11b87528680600096879360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561096e57610124968593610946575b506108f1906108e7610329565b93845236906104a1565b60208301526108fe610bcb565b9161090761030a565b9586526020860152604085015282606085015282608085015260a084015260c0830152610932610329565b9182526020820152604051918291826107a6565b6108f1919350610967903d8088833e61095f81836102e9565b810190610ae8565b92906108da565b610bb4565b6109b661097f366106b4565b919492939061098c610a7d565b50610997368361037c565b95604051966308c7427760e11b88528780600097889360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af495861561096e57610124978697610a1b575b50906109ef6108f1926112c2565b6109f7610329565b9788526020880152610a12610a0a610329565b94369061037c565b845236906104a1565b6108f192919750610a386109ef913d808a833e61095f81836102e9565b979192506109e1565b60405190610a4e826102ae565b6060602083600081520152565b60405190610a68826102ae565b81610a71610a41565b815260206104e8610a41565b60405190610a8a826102ae565b60405160e08101836001600160401b038211838310176102c957600092602092604052610ab5610a5b565b8152610abf610a5b565b83820152836040820152836060820152836080820152606060a08201528360c082015281520152565b906020808383031261008a5782516001600160401b039384821161008a57019260408484031261008a5760405193610b1f856102ae565b8051610b2a8161034f565b85528281015191821161008a57019180601f8401121561008a578251610b4f81610338565b93610b5d60405195866102e9565b818552838086019260051b82010192831161008a5783809101915b838310610b89575050505082015290565b81908351610b968161036b565b8152019101908390610b78565b90602061049e92818152019061070f565b6040513d6000823e3d90fd5b61049e9036906104a1565b60405190602082018281106001600160401b038211176102c95760405260008252565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110610c5e575050509360408381938161049e97980151908281860391015260ff815116845201519382015201906105a5565b82516001600160a01b031688529685019691850191600101610c2a565b60408051908160209384820194838301908087528251809252606080850182828560051b8801019501966000925b858410610ccf57505050505050610cc9925003601f1981018352826102e9565b51902090565b919360019193959750808097605f198c8203018752610d838b519183808451948a845289610d718c8851610d0f60e09182848b01526101208a0190610bee565b906001600160401b03610d33888d015193603f19948c898782850301910152610bee565b938c015195608096878c01528c0151169460a095868b015263ffffffff60e01b908c0151169460c095868b01528b01519189840301908901526105a5565b96015161010085015201511515910152565b990194019401918896949197959397610ca9565b90359060de198136030182121561008a570190565b903590603e198136030182121561008a570190565b3561049e81610542565b903590601e198136030182121561008a57018035906001600160401b03821161008a5760200191813603831361008a57565b3561049e8161055f565b9035603e198236030181121561008a570190565b9035601e198236030181121561008a5701602081359101916001600160401b03821161008a57813603831361008a57565b908060209392818452848401376000828201840152601f01601f1916010190565b906040610e8f61049e9360ff610e8282610423565b1684526020810190610e1b565b9190928160208201520191610e4c565b919091610eac8180610e07565b604084526080840193813592610ec18461034f565b6001600160401b03809416604083015260209283810135601e198236030181121561008a570195838735970194871161008a578660051b3603851361008a578690604060608501525260a08201936000965b808810610f3b57505061049e9495508083610f2f920190610e07565b91818403910152610e6d565b909484806001928835610f4d8161036b565b848060a01b0316815201960197019690610f13565b6020815281359060de198336030182121561008a57604061104260208561049e950195838286015260c0611033610fae610f9c8a80610e07565b60e060608a0152610140890190610e9f565b610fd1610fbd868c018c610e07565b91605f1992838b83030160808c0152610e9f565b90878b013560a08a01526001600160401b0360608c0135610ff18161034f565b16848a015261101661100560808d01610554565b6001600160e01b03191660e08b0152565b61102360a08c018c610e1b565b918a8403016101008b0152610e4c565b97013561012086015201610569565b1515910152565b60246103369193929360405194859163ffffffff60e01b1660208301526110798151809260208686019101610582565b81010360048101855201836102e9565b9060406110968380610d97565b0135906110cb6110c66110c16110bc6110b26110b28880610d97565b6020810190610dac565b610bc0565b61141d565b6111a2565b906001600160e01b03196110ea60806110e48780610d97565b01610dc1565b16156111845761113e846111186111116111078361049e99610d97565b60a0810190610dcb565b369161044c565b9061112560208201610dfd565b61114e575b60806110e48261113993610d97565b611049565b916001600160a01b0316906116e2565b905061113960806110e460405161117a8161116c8760208301610f62565b03601f1981018352826102e9565b939250505061112a565b61119a93506001600160a01b03909116906114d5565b61049e610bcb565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b146111e7575b156111e3576111d5906111fa565b906111de575090565b905090565b5090565b50506001600160401b03811660016111c7565b60009081526016600a6020836002607f60991b015afa9181519161040a8360018060a01b03169360a01c61ffff1603611250575b83158015611245575b61123e5750565b9250829150565b5060163d1415611237565b6000935091508161122e565b600090815b8383106112715750505050600190565b6001600160401b03606061129361128d8660051b860186610dac565b80610d97565b013561129e8161034f565b16809110156112b3575b600190920191611261565b82156112a85750505050600090565b6113576001600160401b03916112d6610a41565b50604051906bffffffffffffffffffffffff199060601b16602082015260148152611300816102ae565b61116c60405191611310836102ce565b600a83526001600160801b036020840160148152604085019283526040519687956020808801525116604086015251166060840152516060608084015260a08301906105a5565b61135f610329565b6004815290602082015290565b906020808383031261008a5782516001600160401b039384821161008a57019260608484031261008a57604051936113a3856102ce565b80516113ae8161034f565b8552828101516001600160801b038116810361008a5783860152604081015191821161008a570182601f8201121561008a578051906113ec82610431565b936113fa60405195866102e9565b82855283838301011161008a57826114159385019101610582565b604082015290565b600460ff61142c835160ff1690565b16036114a35760206114499101516020808251830101910161136c565b600a6001600160401b0361146483516001600160401b031690565b16036114a35760146001600160801b0361148860208401516001600160801b031690565b16036114a3576040016014815151036114a357516014015190565b60405163c5f8961f60e01b8152600490fd5b600211156114bf57565b634e487b7160e01b600052602160045260246000fd5b805160028110156114bf576114e9816114b5565b611543575081471061152b576000918291829182916001600160a01b03165af1611511611623565b501561151957565b604051630a12f52160e11b8152600490fd5b60405163cd78605960e01b8152306004820152602490fd5b919060018351611552816114b5565b61155b816114b5565b1461156557505050565b60209290920151610336926001600160a01b0390811691165b60405163a9059cbb60e01b60208201526001600160a01b0392831660248201526044808201949094529283526080830191906001600160401b038311848410176102c9576115d192604052169182611653565b80519081151591826115ff575b50506115e75750565b60249060405190635274afe760e01b82526004820152fd5b819250906020918101031261008a576020015161161b8161055f565b1538806115de565b3d1561164e573d9061163482610431565b9161164260405193846102e9565b82523d6000602084013e565b606090565b60008061049e9360208151910182855af161166c611623565b91611694565b9082471061152b5760008161049e946020839451920190855af161166c611623565b90156116d2578151156116a5575090565b803b156116b0575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561151957805190602001fd5b9291906060938315611772575b805160028110156114bf57611703816114b5565b61171b575061049e93506001600160a01b0316611672565b600181949293945161172c816114b5565b611735816114b5565b14611742575b5050505090565b6020015161176994506001600160a01b0392831692611764929184911661157e565b611653565b3880808061173b565b9350611787826001600160a01b038316611653565b936116ef56fea2646970667358221220e8b14ba86041f34684449dab009ab57e503e31cbeeaadfb1d17f57e279caadb164736f6c63430008130033","sourceMap":"763:3563:60:-:0;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2261,"length":20},{"start":2524,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063716868301461008f57806373b464b714610062578063898414751461005d578063ba094234146100585763f230beb21461005357600080fd5b610973565b610847565b610657565b307f0000000000000000000000000000000000000000000000000000000000000000036105db575b600080fd5b602036600319011261008a576001600160401b036004351161008a5736602360043501121561008a57600435600401356100c881610338565b906100d660405192836102e9565b80825260208201903660248260051b60043501011161008a57602460043501915b60248260051b600435010183106101285761012461011485610c7b565b6040519081529081906020820190565b0390f35b82356001600160401b03811161008a576023199160406004358301360384011261008a5760405190610159826102ae565b602483600435010135936001600160401b03851161008a5760e090858560043501013603011261008a5761018b61030a565b9160248585600435010101356001600160401b03811161008a576101bb90602436918888600435010101016104ed565b83526001600160401b0360448686600435010101351161008a576101ee36600435860187016044810135016024016104ed565b6020840152600435840185016064810135604085015261021090608401610360565b606084015261022760a48686600435010101610554565b608084015260c48585600435010101356001600160401b03811161008a576044602095869560e4602499610269610287968c3691848860043501010101610483565b60a0840152836004350101013560c082015284526004350101610569565b8382015281520193019290506100f7565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102c957604052565b610298565b606081019081106001600160401b038211176102c957604052565b90601f801991011681019081106001600160401b038211176102c957604052565b6040519060e082018281106001600160401b038211176102c957604052565b60405190610336826102ae565b565b6001600160401b0381116102c95760051b60200190565b6001600160401b0381160361008a57565b35906103368261034f565b6001600160a01b0381160361008a57565b919060408382031261008a5760405192610395846102ae565b8381356103a18161034f565b815260209182810135906001600160401b03821161008a57019280601f8501121561008a5783356103d181610338565b946103df60405196876102e9565b818652848087019260051b82010192831161008a5784809101915b83831061040957505050500152565b819083356104168161036b565b81520191019084906103fa565b359060ff8216820361008a57565b6001600160401b0381116102c957601f01601f191660200190565b92919261045882610431565b9161046660405193846102e9565b82948184528183011161008a578281602093846000960137010152565b9080601f8301121561008a5781602061049e9335910161044c565b90565b919060408382031261008a57604051906104ba826102ae565b81936104c581610423565b83526020810135916001600160401b03831161008a576020926104e89201610483565b910152565b919060408382031261008a5760405190610506826102ae565b81938035916001600160401b039283811161008a578161052791840161037c565b8452602082013592831161008a576020926104e892016104a1565b6001600160e01b031981160361008a57565b359061033682610542565b8015150361008a57565b35906103368261055f565b9081604091031261008a5790565b60005b8381106105955750506000910152565b8181015183820152602001610585565b906020916105be81518092818552858086019101610582565b601f01601f1916010190565b90602061049e9281815201906105a5565b606036600319011261008a576004356001600160401b03811161008a57610606903690600401610574565b604036602319011261008a5760405161061e816102ae565b60243590600282101561008a576101249261064b9282526044356106418161036b565b6020830152611089565b604051918291826105ca565b602036600319011261008a576001600160401b0360043581811161008a573660238201121561008a57806004013591821161008a573660248360051b8301011161008a5760209160246106aa920161125c565b6040519015158152f35b60a060031982011261008a576001600160401b039160043583811161008a57826106e091600401610574565b926024356106ed8161036b565b9260443591821161008a5761070491600401610574565b906064359060843590565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061074d575050505090565b83516001600160a01b03168552938101939281019260010161073f565b6040602061049e938161078485518584528584019061070f565b940151908281860391015260ff815116845201519181602082015201906105a5565b61049e906020815260406020845194828285015260c06108356107d6885160e0606089015261014088019061076a565b6107f1858a015191605f1992838a83030160808b015261076a565b90868a015160a08901526001600160401b0360608b0151168489015263ffffffff60e01b60808b01511660e089015260a08a015190888303016101008901526105a5565b96015161012085015201511515910152565b61086e6108906108af610859366106b4565b93959192610868979197610a7d565b506112c2565b94610877610329565b95610882368361037c565b87526020870152369061037c565b94604051956308c7427760e11b87528680600096879360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561096e57610124968593610946575b506108f1906108e7610329565b93845236906104a1565b60208301526108fe610bcb565b9161090761030a565b9586526020860152604085015282606085015282608085015260a084015260c0830152610932610329565b9182526020820152604051918291826107a6565b6108f1919350610967903d8088833e61095f81836102e9565b810190610ae8565b92906108da565b610bb4565b6109b661097f366106b4565b919492939061098c610a7d565b50610997368361037c565b95604051966308c7427760e11b88528780600097889360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af495861561096e57610124978697610a1b575b50906109ef6108f1926112c2565b6109f7610329565b9788526020880152610a12610a0a610329565b94369061037c565b845236906104a1565b6108f192919750610a386109ef913d808a833e61095f81836102e9565b979192506109e1565b60405190610a4e826102ae565b6060602083600081520152565b60405190610a68826102ae565b81610a71610a41565b815260206104e8610a41565b60405190610a8a826102ae565b60405160e08101836001600160401b038211838310176102c957600092602092604052610ab5610a5b565b8152610abf610a5b565b83820152836040820152836060820152836080820152606060a08201528360c082015281520152565b906020808383031261008a5782516001600160401b039384821161008a57019260408484031261008a5760405193610b1f856102ae565b8051610b2a8161034f565b85528281015191821161008a57019180601f8401121561008a578251610b4f81610338565b93610b5d60405195866102e9565b818552838086019260051b82010192831161008a5783809101915b838310610b89575050505082015290565b81908351610b968161036b565b8152019101908390610b78565b90602061049e92818152019061070f565b6040513d6000823e3d90fd5b61049e9036906104a1565b60405190602082018281106001600160401b038211176102c95760405260008252565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110610c5e575050509360408381938161049e97980151908281860391015260ff815116845201519382015201906105a5565b82516001600160a01b031688529685019691850191600101610c2a565b60408051908160209384820194838301908087528251809252606080850182828560051b8801019501966000925b858410610ccf57505050505050610cc9925003601f1981018352826102e9565b51902090565b919360019193959750808097605f198c8203018752610d838b519183808451948a845289610d718c8851610d0f60e09182848b01526101208a0190610bee565b906001600160401b03610d33888d015193603f19948c898782850301910152610bee565b938c015195608096878c01528c0151169460a095868b015263ffffffff60e01b908c0151169460c095868b01528b01519189840301908901526105a5565b96015161010085015201511515910152565b990194019401918896949197959397610ca9565b90359060de198136030182121561008a570190565b903590603e198136030182121561008a570190565b3561049e81610542565b903590601e198136030182121561008a57018035906001600160401b03821161008a5760200191813603831361008a57565b3561049e8161055f565b9035603e198236030181121561008a570190565b9035601e198236030181121561008a5701602081359101916001600160401b03821161008a57813603831361008a57565b908060209392818452848401376000828201840152601f01601f1916010190565b906040610e8f61049e9360ff610e8282610423565b1684526020810190610e1b565b9190928160208201520191610e4c565b919091610eac8180610e07565b604084526080840193813592610ec18461034f565b6001600160401b03809416604083015260209283810135601e198236030181121561008a570195838735970194871161008a578660051b3603851361008a578690604060608501525260a08201936000965b808810610f3b57505061049e9495508083610f2f920190610e07565b91818403910152610e6d565b909484806001928835610f4d8161036b565b848060a01b0316815201960197019690610f13565b6020815281359060de198336030182121561008a57604061104260208561049e950195838286015260c0611033610fae610f9c8a80610e07565b60e060608a0152610140890190610e9f565b610fd1610fbd868c018c610e07565b91605f1992838b83030160808c0152610e9f565b90878b013560a08a01526001600160401b0360608c0135610ff18161034f565b16848a015261101661100560808d01610554565b6001600160e01b03191660e08b0152565b61102360a08c018c610e1b565b918a8403016101008b0152610e4c565b97013561012086015201610569565b1515910152565b60246103369193929360405194859163ffffffff60e01b1660208301526110798151809260208686019101610582565b81010360048101855201836102e9565b9060406110968380610d97565b0135906110cb6110c66110c16110bc6110b26110b28880610d97565b6020810190610dac565b610bc0565b61141d565b6111a2565b906001600160e01b03196110ea60806110e48780610d97565b01610dc1565b16156111845761113e846111186111116111078361049e99610d97565b60a0810190610dcb565b369161044c565b9061112560208201610dfd565b61114e575b60806110e48261113993610d97565b611049565b916001600160a01b0316906116e2565b905061113960806110e460405161117a8161116c8760208301610f62565b03601f1981018352826102e9565b939250505061112a565b61119a93506001600160a01b03909116906114d5565b61049e610bcb565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b146111e7575b156111e3576111d5906111fa565b906111de575090565b905090565b5090565b50506001600160401b03811660016111c7565b60009081526016600a6020836002607f60991b015afa9181519161040a8360018060a01b03169360a01c61ffff1603611250575b83158015611245575b61123e5750565b9250829150565b5060163d1415611237565b6000935091508161122e565b600090815b8383106112715750505050600190565b6001600160401b03606061129361128d8660051b860186610dac565b80610d97565b013561129e8161034f565b16809110156112b3575b600190920191611261565b82156112a85750505050600090565b6113576001600160401b03916112d6610a41565b50604051906bffffffffffffffffffffffff199060601b16602082015260148152611300816102ae565b61116c60405191611310836102ce565b600a83526001600160801b036020840160148152604085019283526040519687956020808801525116604086015251166060840152516060608084015260a08301906105a5565b61135f610329565b6004815290602082015290565b906020808383031261008a5782516001600160401b039384821161008a57019260608484031261008a57604051936113a3856102ce565b80516113ae8161034f565b8552828101516001600160801b038116810361008a5783860152604081015191821161008a570182601f8201121561008a578051906113ec82610431565b936113fa60405195866102e9565b82855283838301011161008a57826114159385019101610582565b604082015290565b600460ff61142c835160ff1690565b16036114a35760206114499101516020808251830101910161136c565b600a6001600160401b0361146483516001600160401b031690565b16036114a35760146001600160801b0361148860208401516001600160801b031690565b16036114a3576040016014815151036114a357516014015190565b60405163c5f8961f60e01b8152600490fd5b600211156114bf57565b634e487b7160e01b600052602160045260246000fd5b805160028110156114bf576114e9816114b5565b611543575081471061152b576000918291829182916001600160a01b03165af1611511611623565b501561151957565b604051630a12f52160e11b8152600490fd5b60405163cd78605960e01b8152306004820152602490fd5b919060018351611552816114b5565b61155b816114b5565b1461156557505050565b60209290920151610336926001600160a01b0390811691165b60405163a9059cbb60e01b60208201526001600160a01b0392831660248201526044808201949094529283526080830191906001600160401b038311848410176102c9576115d192604052169182611653565b80519081151591826115ff575b50506115e75750565b60249060405190635274afe760e01b82526004820152fd5b819250906020918101031261008a576020015161161b8161055f565b1538806115de565b3d1561164e573d9061163482610431565b9161164260405193846102e9565b82523d6000602084013e565b606090565b60008061049e9360208151910182855af161166c611623565b91611694565b9082471061152b5760008161049e946020839451920190855af161166c611623565b90156116d2578151156116a5575090565b803b156116b0575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561151957805190602001fd5b9291906060938315611772575b805160028110156114bf57611703816114b5565b61171b575061049e93506001600160a01b0316611672565b600181949293945161172c816114b5565b611735816114b5565b14611742575b5050505090565b6020015161176994506001600160a01b0392831692611764929184911661157e565b611653565b3880808061173b565b9350611787826001600160a01b038316611653565b936116ef56fea2646970667358221220e8b14ba86041f34684449dab009ab57e503e31cbeeaadfb1d17f57e279caadb164736f6c63430008130033","sourceMap":"763:3563:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;763:3563:60;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;-1:-1:-1;;763:3563:60;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;763:3563:60;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;763:3563:60;;;;;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;763:3563:60;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;763:3563:60;;;;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;763:3563:60;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;763:3563:60;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;763:3563:60;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1307:29;763:3563;1386:24;763:3563;;;:::i;:::-;;;;;;;;;;:::i;:::-;;1307:29;:::i;:::-;763:3563;;;:::i;:::-;;;;;;:::i;:::-;;;1265:73;;;763:3563;;;;:::i;:::-;;;;;;;;1386:24;;-1:-1:-1;;;1386:24:60;;;763:3563;1386:24;;;:::i;:::-;;:22;;:24;;;;;;;763:3563;1386:24;;;;;763:3563;;;;;;:::i;:::-;;;;;;;:::i;:::-;1265:73;1364:64;;763:3563;234:9:40;;:::i;:::-;763:3563:60;;;:::i;:::-;;;;1265:73;1225:398;;763:3563;;1225:398;;763:3563;1225:398;;;;193:9:40;1225:398:60;;;;193:9:40;1225:398:60;;;763:3563;1225:398;;;763:3563;;;:::i;:::-;;;;1265:73;1189:481;;193:9:40;763:3563:60;;;;;;;:::i;1386:24::-;763:3563;1386:24;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;763:3563::-;2011:24;763:3563;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;2011:24;;-1:-1:-1;;;2011:24:60;;;763:3563;2011:24;;;:::i;:::-;;:22;;:24;;;;;;;763:3563;2011:24;;;;;763:3563;2049:29;;;763:3563;2049:29;;:::i;:::-;763:3563;;:::i;:::-;;;;1989:91;;;763:3563;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;2011:24::-;763:3563;2011:24;;;;;2049:29;2011:24;;;;;;;;;;:::i;:::-;;;;;;;763:3563;;;;;;;:::i;:::-;;;;-1:-1:-1;763:3563:60;;;;:::o;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;-1:-1:-1;763:3563:60;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;234:9:40:-;763:3563:60;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;-1:-1:-1;234:9:40;;:::o;763:3563:60:-;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;2542:131;763:3563;;;2644:21;;;;;;;763:3563;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;763:3563:60;;;;;;;2644:21;;;;;;;;;;763:3563;;2644:21;;;;;;:::i;:::-;763:3563;2634:32;;2542:131;:::o;763:3563::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;763:3563:60;;;;;;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;763:3563:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;2930:751::-;;3065:22;:16;;;;:::i;:::-;:22;763:3563;3117:16;:62;:50;:48;:30;:19;:16;;;;:::i;:::-;:19;;;;;:::i;:30::-;:48;:::i;:::-;:50;:::i;:::-;:62;:::i;:::-;763:3563;-1:-1:-1;;;;;;3194:23:60;;:16;;;;:::i;:::-;:23;;:::i;:::-;763:3563;3194:38;3190:169;;3531:45;3391:16;763:3563;3391:23;:16;;3594:80;3391:16;;:::i;:::-;:23;;;;;:::i;:::-;763:3563;;;:::i;:::-;3429:16;;3117:19;3429:16;;;:::i;:::-;3425:76;;2930:751;3194:23;3544:16;;:23;:16;;:::i;:23::-;3531:45;:::i;:::-;763:3563;-1:-1:-1;;;;;763:3563:60;;3594:80;:::i;3425:76::-;763:3563;;3544:23;3194;3544:16;3065:22;763:3563;3470:20;;;;3117:19;3470:20;;;:::i;:::-;;763:3563;;3470:20;;;;;;:::i;:::-;3425:76;;;;;;;3190:169;3309:5;;-1:-1:-1;;;;;;763:3563:60;;;;3309:5;:::i;:::-;234:9:40;;:::i;2356:528:1:-;-1:-1:-1;;4542:339:1;;;-1:-1:-1;;;4542:339:1;;;2356:528;2559:5;2555:45;;2762:17;;;:::i;:::-;2793:8;;;2817:9;;:::o;2789:89::-;2857:10;;;:::o;2555:45::-;2580:9;;:::o;4542:339::-;-1:-1:-1;;;;;;;4542:339:1;;;;;7171:2211;7309:1653;;;;;;;;-1:-1:-1;;;;;7309:1653:1;;;;;763:3563:60;7309:1653:1;763:3563:60;;;;;;7309:1653:1;;763:3563:60;7309:1653:1;;;;;;7171:2211;9289:8;;763:3563:60;;9289:34:1;;7171:2211;9285:91;;7171:2211;:::o;9285:91::-;9339:26;-1:-1:-1;9339:26:1;;-1:-1:-1;9339:26:1:o;9289:34::-;13622:37;7309:1653;13622:37;9301:22;;9289:34;;7309:1653;;;-1:-1:-1;7309:1653:1;-1:-1:-1;7309:1653:1;;;3765:559:60;763:3563;3928:9;;3939:10;;;;;;4306:11;;;;763:3563;3765:559;:::o;3928:9::-;-1:-1:-1;;;;;3983:26:60;:20;763:3563;;;;;;;;:::i;:::-;3983:20;;:::i;:::-;:26;763:3563;;;;:::i;:::-;;4028:18;;;;4024:171;;3928:9;763:3563;4209:17;763:3563;;3928:9;;;4024:171;4120:6;4116:65;4024:171;4116:65;4150:12;;;;763:3563;4150:12;:::o;581:314:61:-;695:118;-1:-1:-1;;;;;581:314:61;763:3563:60;;:::i;:::-;;;;480:2:61;4542:339:1;480:2:61;;;;;779:22;;;480:2;779:22;;;;;;:::i;:::-;480:2;763:3563:60;;;;;;:::i;:::-;;193:9:40;;-1:-1:-1;;;;;779:22:61;719:84;;779:22;480:2;;763:3563:60;719:84:61;;763:3563:60;;;;;695:118:61;;;779:22;695:118;;;480:2;;763:3563:60;;480:2:61;;763:3563:60;480:2:61;;;;;;;;;;;;;;;;;:::i;695:118::-;763:3563:60;;:::i;:::-;;438:1:61;;837:51;779:22;837:51;;763:3563:60;581:314:61;:::o;763:3563:60:-;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;480:2:61;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;1412:649:61:-;438:1;763:3563:60;;;;;;;;;;1520:32:61;1516:94;;1667:18;1656:50;1667:18;;;;763:3563:60;;;1656:50:61;;;;;;:::i;:::-;480:2;-1:-1:-1;;;;;763:3563:60;;;-1:-1:-1;;;;;763:3563:60;;;;;1721:32:61;1717:94;;1844:2;-1:-1:-1;;;;;763:3563:60;1667:18:61;1824:16;;763:3563:60;-1:-1:-1;;;;;480:2:61;;;763:3563:60;480:2:61;1824:22;1820:84;;1917:16;;1844:2;1917:16;;763:3563:60;1917:29:61;1913:91;;2037:16;2193:60;;;763:3563:60;:::o;1913:91:61:-;1917:16;763:3563:60;-1:-1:-1;;;1969:24:61;;438:1;;1969:24;763:3563:60;;-1:-1:-1;763:3563:60;;;:::o;:::-;;;;;;;;;;;;2735:383:76;763:3563:60;;;;;;;;;;;:::i;:::-;2852:38:76;;1615:21:29;;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;763:3563:60;1749:33:29;;;;:::i;:::-;;1796:8;1792:63;;2735:383:76:o;1792:63:29:-;763:3563:60;;-1:-1:-1;;;1827:17:29;;;;;1611:109;763:3563:60;;-1:-1:-1;;;1668:41:29;;1623:4;1668:41;;;763:3563:60;;;1668:41:29;2848:264:76;763:3563:60;;;;;;;;:::i;:::-;;;;:::i;:::-;2971:37:76;2967:145;;2848:264;;;2735:383::o;2967:145::-;3031:25;;;;;763:3563:60;3024:77:76;;-1:-1:-1;;;;;763:3563:60;;;;;1254:160:28;763:3563:60;;-1:-1:-1;;;1363:43:28;;;;-1:-1:-1;;;;;763:3563:60;;;1363:43:28;;;763:3563:60;;;;;;;;;1363:43:28;;;763:3563:60;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;2709:53:29;763:3563:60;;;;2709:53:29;;;:::i;:::-;763:3563:60;;5134:22:28;;;;:57;;;;1254:160;5130:135;;;;1254:160;:::o;5130:135::-;1363:43;763:3563:60;;;5214:40:28;;;;;;;;;763:3563:60;5214:40:28;5134:57;5161:30;;;;1363:43;5161:30;;;763:3563:60;;;;1363:43:28;5161:30;763:3563:60;;;;:::i;:::-;5160:31:28;5134:57;;;;763:3563:60;;;;;;234:9:40;;;;:::i;:::-;763:3563:60;;;;;;;:::i;:::-;234:9:40;;763:3563:60;-1:-1:-1;763:3563:60;;;;:::o;:::-;;;:::o;4215:483:29:-;-1:-1:-1;4215:483:29;4622:69;4215:483;4574:31;;;;;;;;;;;:::i;:::-;4622:69;;:::i;4215:483::-;;4419:21;;:29;4415:108;;4574:31;;4622:69;4574:31;;;;;;;;;;;;;:::i;6737:692::-;;6952:471;;;763:3563:60;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;763:3563:60;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;763:3563:60;;;7261:24:29;;;763:3563:60;;;7261:24:29;6952:471;-1:-1:-1;763:3563:60;;8828:21:29;:17;;9000:142;;;;;;3224:896:76;;;;763:3563:60;3460:10:76;;;3456:81;;3224:896;763:3563:60;;;;;;;;;;;:::i;:::-;3608:38:76;;-1:-1:-1;3803:57:29;;-1:-1:-1;;;;;;763:3563:60;3803:57:29;:::i;3604:490:76:-;3856:16;763:3563:60;;;;;;;;;:::i;:::-;;;;:::i;:::-;3835:37:76;3831:263;;3604:490;;;;;3224:896;:::o;3831:263::-;3962:25;;763:3563:60;2709:53:29;;-1:-1:-1;;;;;;763:3563:60;;;;3955:74:76;;;763:3563:60;;;3955:74:76;:::i;:::-;2709:53:29;:::i;:::-;3831:263:76;;;;;;3456:81;763:3563:60;-1:-1:-1;2709:53:29;763:3563:60;-1:-1:-1;;;;;763:3563:60;;2709:53:29;:::i;:::-;3456:81:76;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2227,"length":20},{"start":2490,"length":20}]}},"immutableReferences":{"library_deploy_address":[{"start":101,"length":32}]}},"methodIdentifiers":{"createFundMsg(SubnetID,address,FvmAddress,uint256,uint256)":"f230beb2","createReleaseMsg(SubnetID,address,FvmAddress,uint256,uint256)":"ba094234","execute(CrossMsg,SupplySource)":"73b464b7","isSorted(CrossMsg[])":"89841475","toHash(CrossMsg[])":"71686830"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegatedEvmAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createFundMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createReleaseMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"isSorted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for manipulating StorableMsg struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/CrossMsgHelper.sol\":\"CrossMsgHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"NotDelegatedEvmAddress"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"signer","type":"address"},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"createFundMsg","outputs":[{"internalType":"struct CrossMsg","name":"","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"signer","type":"address"},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"createReleaseMsg","outputs":[{"internalType":"struct CrossMsg","name":"","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"isSorted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/CrossMsgHelper.sol":"CrossMsgHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/CrossMsgHelper.sol","id":40726,"exportedSymbols":{"Address":[32838],"CrossMsg":[49927],"CrossMsgHelper":[40725],"EMPTY_BYTES":[36873],"FilAddress":[1428],"FvmAddress":[49951],"FvmAddressHelper":[40906],"IPCAddress":[50157],"METHOD_SEND":[36879],"StorableMsg":[49944],"SubnetID":[50030],"SubnetIDHelper":[48025],"SupplySource":[50179],"SupplySourceHelper":[48351]},"nodeType":"SourceUnit","src":"46:4281:60","nodes":[{"id":40393,"nodeType":"PragmaDirective","src":"46:23:60","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40396,"nodeType":"ImportDirective","src":"71:68:60","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":40726,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":40394,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"79:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40395,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"92:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40399,"nodeType":"ImportDirective","src":"140:62:60","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40726,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":40397,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"148:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40398,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"161:8:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40402,"nodeType":"ImportDirective","src":"203:59:60","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40726,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":40400,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"211:8:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40401,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"221:10:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40404,"nodeType":"ImportDirective","src":"263:57:60","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":40726,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":40403,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"271:14:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40406,"nodeType":"ImportDirective","src":"321:61:60","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":40726,"sourceUnit":40907,"symbolAliases":[{"foreign":{"id":40405,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"329:16:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40408,"nodeType":"ImportDirective","src":"383:53:60","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":40726,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":40407,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"391:10:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40410,"nodeType":"ImportDirective","src":"437:56:60","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40726,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":40409,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"445:10:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40412,"nodeType":"ImportDirective","src":"494:65:60","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":40726,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":40411,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"502:7:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40414,"nodeType":"ImportDirective","src":"560:51:60","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40726,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":40413,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"568:12:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40416,"nodeType":"ImportDirective","src":"612:60:60","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"./SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":40726,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":40415,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"620:18:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40725,"nodeType":"ContractDefinition","src":"763:3563:60","nodes":[{"id":40421,"nodeType":"UsingForDirective","src":"792:34:60","nodes":[],"global":false,"libraryName":{"id":40418,"name":"SubnetIDHelper","nameLocations":["798:14:60"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"798:14:60"},"typeName":{"id":40420,"nodeType":"UserDefinedTypeName","pathNode":{"id":40419,"name":"SubnetID","nameLocations":["817:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"817:8:60"},"referencedDeclaration":50030,"src":"817:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":40424,"nodeType":"UsingForDirective","src":"831:29:60","nodes":[],"global":false,"libraryName":{"id":40422,"name":"FilAddress","nameLocations":["837:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"837:10:60"},"typeName":{"id":40423,"name":"address","nodeType":"ElementaryTypeName","src":"852:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":40428,"nodeType":"UsingForDirective","src":"865:38:60","nodes":[],"global":false,"libraryName":{"id":40425,"name":"FvmAddressHelper","nameLocations":["871:16:60"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"871:16:60"},"typeName":{"id":40427,"nodeType":"UserDefinedTypeName","pathNode":{"id":40426,"name":"FvmAddress","nameLocations":["892:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"892:10:60"},"referencedDeclaration":49951,"src":"892:10:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":40432,"nodeType":"UsingForDirective","src":"908:42:60","nodes":[],"global":false,"libraryName":{"id":40429,"name":"SupplySourceHelper","nameLocations":["914:18:60"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"914:18:60"},"typeName":{"id":40431,"nodeType":"UserDefinedTypeName","pathNode":{"id":40430,"name":"SupplySource","nameLocations":["937:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"937:12:60"},"referencedDeclaration":50179,"src":"937:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":40475,"nodeType":"FunctionDefinition","src":"956:721:60","nodes":[],"body":{"id":40474,"nodeType":"Block","src":"1160:517:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":40453,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40435,"src":"1287:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},{"arguments":[{"id":40456,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40437,"src":"1329:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40454,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"1307:16:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":40455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1324:4:60","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"1307:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":40457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1307:29:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":40452,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"1265:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1277:8:60","1295:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1265:73:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40460,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40435,"src":"1386:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":40461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1393:15:60","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47531,"src":"1386:22:60","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":40462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1386:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":40463,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40440,"src":"1424:2:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress calldata"}],"id":40459,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"1364:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1376:8:60","1412:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1364:64:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"id":40465,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40442,"src":"1457:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":40466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1491:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":40467,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"1522:11:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40468,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"1563:11:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40469,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40444,"src":"1601:3:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40451,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"1225:11:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":40470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1259:4:60","1360:2:60","1450:5:60","1484:5:60","1514:6:60","1555:6:60","1596:3:60"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"1225:398:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":40471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1650:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40450,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"1189:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":40472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1216:7:60","1641:7:60"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"1189:481:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"functionReturnParameters":40449,"id":40473,"nodeType":"Return","src":"1170:500:60"}]},"functionSelector":"ba094234","implemented":true,"kind":"function","modifiers":[],"name":"createReleaseMsg","nameLocation":"965:16:60","parameters":{"id":40445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40435,"mutability":"mutable","name":"subnet","nameLocation":"1009:6:60","nodeType":"VariableDeclaration","scope":40475,"src":"991:24:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40434,"nodeType":"UserDefinedTypeName","pathNode":{"id":40433,"name":"SubnetID","nameLocations":["991:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"991:8:60"},"referencedDeclaration":50030,"src":"991:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40437,"mutability":"mutable","name":"signer","nameLocation":"1033:6:60","nodeType":"VariableDeclaration","scope":40475,"src":"1025:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40436,"name":"address","nodeType":"ElementaryTypeName","src":"1025:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40440,"mutability":"mutable","name":"to","nameLocation":"1069:2:60","nodeType":"VariableDeclaration","scope":40475,"src":"1049:22:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40439,"nodeType":"UserDefinedTypeName","pathNode":{"id":40438,"name":"FvmAddress","nameLocations":["1049:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"1049:10:60"},"referencedDeclaration":49951,"src":"1049:10:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40442,"mutability":"mutable","name":"value","nameLocation":"1089:5:60","nodeType":"VariableDeclaration","scope":40475,"src":"1081:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40441,"name":"uint256","nodeType":"ElementaryTypeName","src":"1081:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40444,"mutability":"mutable","name":"fee","nameLocation":"1112:3:60","nodeType":"VariableDeclaration","scope":40475,"src":"1104:11:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40443,"name":"uint256","nodeType":"ElementaryTypeName","src":"1104:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"981:140:60"},"returnParameters":{"id":40449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40475,"src":"1143:15:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40447,"nodeType":"UserDefinedTypeName","pathNode":{"id":40446,"name":"CrossMsg","nameLocations":["1143:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"1143:8:60"},"referencedDeclaration":49927,"src":"1143:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1142:17:60"},"scope":40725,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40518,"nodeType":"FunctionDefinition","src":"1683:718:60","nodes":[],"body":{"id":40517,"nodeType":"Block","src":"1884:517:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40496,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40478,"src":"2011:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":40497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2018:15:60","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47531,"src":"2011:22:60","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":40498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2011:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":40501,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40480,"src":"2071:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40499,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"2049:16:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":40500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2066:4:60","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"2049:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":40502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2049:29:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":40495,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"1989:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2001:8:60","2037:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1989:91:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"id":40505,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40478,"src":"2128:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},{"id":40506,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40483,"src":"2148:2:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress calldata"}],"id":40504,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"2106:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2118:8:60","2136:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"2106:46:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"id":40508,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40485,"src":"2181:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":40509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2215:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":40510,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"2246:11:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40511,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2287:11:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40512,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40487,"src":"2325:3:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40494,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"1949:11:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":40513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1983:4:60","2102:2:60","2174:5:60","2208:5:60","2238:6:60","2279:6:60","2320:3:60"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"1949:398:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":40514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2374:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40493,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"1913:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":40515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1940:7:60","2365:7:60"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"1913:481:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"functionReturnParameters":40492,"id":40516,"nodeType":"Return","src":"1894:500:60"}]},"functionSelector":"f230beb2","implemented":true,"kind":"function","modifiers":[],"name":"createFundMsg","nameLocation":"1692:13:60","parameters":{"id":40488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40478,"mutability":"mutable","name":"subnet","nameLocation":"1733:6:60","nodeType":"VariableDeclaration","scope":40518,"src":"1715:24:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40477,"nodeType":"UserDefinedTypeName","pathNode":{"id":40476,"name":"SubnetID","nameLocations":["1715:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1715:8:60"},"referencedDeclaration":50030,"src":"1715:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40480,"mutability":"mutable","name":"signer","nameLocation":"1757:6:60","nodeType":"VariableDeclaration","scope":40518,"src":"1749:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40479,"name":"address","nodeType":"ElementaryTypeName","src":"1749:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40483,"mutability":"mutable","name":"to","nameLocation":"1793:2:60","nodeType":"VariableDeclaration","scope":40518,"src":"1773:22:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40482,"nodeType":"UserDefinedTypeName","pathNode":{"id":40481,"name":"FvmAddress","nameLocations":["1773:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"1773:10:60"},"referencedDeclaration":49951,"src":"1773:10:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40485,"mutability":"mutable","name":"value","nameLocation":"1813:5:60","nodeType":"VariableDeclaration","scope":40518,"src":"1805:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40484,"name":"uint256","nodeType":"ElementaryTypeName","src":"1805:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40487,"mutability":"mutable","name":"fee","nameLocation":"1836:3:60","nodeType":"VariableDeclaration","scope":40518,"src":"1828:11:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40486,"name":"uint256","nodeType":"ElementaryTypeName","src":"1828:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1705:140:60"},"returnParameters":{"id":40492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40491,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40518,"src":"1867:15:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40490,"nodeType":"UserDefinedTypeName","pathNode":{"id":40489,"name":"CrossMsg","nameLocations":["1867:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"1867:8:60"},"referencedDeclaration":49927,"src":"1867:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1866:17:60"},"scope":40725,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40534,"nodeType":"FunctionDefinition","src":"2407:129:60","nodes":[],"body":{"id":40533,"nodeType":"Block","src":"2481:55:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40529,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40521,"src":"2519:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":40527,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2508:3:60","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2512:6:60","memberName":"encode","nodeType":"MemberAccess","src":"2508:10:60","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40526,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2498:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:31:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40525,"id":40532,"nodeType":"Return","src":"2491:38:60"}]},"implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"2416:6:60","parameters":{"id":40522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40521,"mutability":"mutable","name":"crossMsg","nameLocation":"2439:8:60","nodeType":"VariableDeclaration","scope":40534,"src":"2423:24:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40520,"nodeType":"UserDefinedTypeName","pathNode":{"id":40519,"name":"CrossMsg","nameLocations":["2423:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"2423:8:60"},"referencedDeclaration":49927,"src":"2423:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2422:26:60"},"returnParameters":{"id":40525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40534,"src":"2472:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2472:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2471:9:60"},"scope":40725,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40551,"nodeType":"FunctionDefinition","src":"2542:131:60","nodes":[],"body":{"id":40550,"nodeType":"Block","src":"2617:56:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40546,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40538,"src":"2655:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":40544,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2644:3:60","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2648:6:60","memberName":"encode","nodeType":"MemberAccess","src":"2644:10:60","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2644:21:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40543,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2634:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2634:32:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40542,"id":40549,"nodeType":"Return","src":"2627:39:60"}]},"functionSelector":"71686830","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"2551:6:60","parameters":{"id":40539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40538,"mutability":"mutable","name":"crossMsgs","nameLocation":"2576:9:60","nodeType":"VariableDeclaration","scope":40551,"src":"2558:27:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":40536,"nodeType":"UserDefinedTypeName","pathNode":{"id":40535,"name":"CrossMsg","nameLocations":["2558:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"2558:8:60"},"referencedDeclaration":49927,"src":"2558:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":40537,"nodeType":"ArrayTypeName","src":"2558:10:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"2557:29:60"},"returnParameters":{"id":40542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40551,"src":"2608:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2608:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2607:9:60"},"scope":40725,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40582,"nodeType":"FunctionDefinition","src":"2679:245:60","nodes":[],"body":{"id":40581,"nodeType":"Block","src":"2751:173:60","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40559,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40554,"src":"2780:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2789:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"2780:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2797:5:60","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49937,"src":"2780:22:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2780:27:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"expression":{"id":40564,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40554,"src":"2823:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2832:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"2823:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2840:2:60","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49933,"src":"2823:19:60","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},"id":40567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2843:8:60","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"2823:28:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":40568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2852:4:60","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"2823:33:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2860:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2823:38:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2780:81:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"expression":{"id":40572,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40554,"src":"2877:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2886:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"2877:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2894:4:60","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49930,"src":"2877:21:60","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},"id":40575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2899:8:60","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"2877:30:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":40576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2908:4:60","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"2877:35:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2916:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2877:40:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2780:137:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40558,"id":40580,"nodeType":"Return","src":"2761:156:60"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"2688:7:60","parameters":{"id":40555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40554,"mutability":"mutable","name":"crossMsg","nameLocation":"2712:8:60","nodeType":"VariableDeclaration","scope":40582,"src":"2696:24:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40553,"nodeType":"UserDefinedTypeName","pathNode":{"id":40552,"name":"CrossMsg","nameLocations":["2696:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"2696:8:60"},"referencedDeclaration":49927,"src":"2696:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2695:26:60"},"returnParameters":{"id":40558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40582,"src":"2745:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40556,"name":"bool","nodeType":"ElementaryTypeName","src":"2745:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2744:6:60"},"scope":40725,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40668,"nodeType":"FunctionDefinition","src":"2930:751:60","nodes":[],"body":{"id":40667,"nodeType":"Block","src":"3039:642:60","nodes":[],"statements":[{"assignments":[40594],"declarations":[{"constant":false,"id":40594,"mutability":"mutable","name":"value","nameLocation":"3057:5:60","nodeType":"VariableDeclaration","scope":40667,"src":"3049:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40593,"name":"uint256","nodeType":"ElementaryTypeName","src":"3049:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40598,"initialValue":{"expression":{"expression":{"id":40595,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40585,"src":"3065:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3074:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"3065:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3082:5:60","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49935,"src":"3065:22:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3049:38:60"},{"assignments":[40600],"declarations":[{"constant":false,"id":40600,"mutability":"mutable","name":"recipient","nameLocation":"3105:9:60","nodeType":"VariableDeclaration","scope":40667,"src":"3097:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40599,"name":"address","nodeType":"ElementaryTypeName","src":"3097:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40609,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"expression":{"id":40601,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40585,"src":"3117:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3126:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"3117:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3134:2:60","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49933,"src":"3117:19:60","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":40604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3137:10:60","memberName":"rawAddress","nodeType":"MemberAccess","referencedDeclaration":50156,"src":"3117:30:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress calldata"}},"id":40605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3148:17:60","memberName":"extractEvmAddress","nodeType":"MemberAccess","referencedDeclaration":40896,"src":"3117:48:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (struct FvmAddress memory) pure returns (address)"}},"id":40606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3117:50:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3168:9:60","memberName":"normalize","nodeType":"MemberAccess","referencedDeclaration":1220,"src":"3117:60:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address) view returns (address)"}},"id":40608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3117:62:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3097:82:60"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":40614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40610,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40585,"src":"3194:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3203:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"3194:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3211:6:60","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"3194:23:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":40613,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"3221:11:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3194:38:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40628,"nodeType":"IfStatement","src":"3190:169:60","trueBody":{"id":40627,"nodeType":"Block","src":"3234:125:60","statements":[{"expression":{"arguments":[{"arguments":[{"id":40620,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40600,"src":"3290:9:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3282:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":40618,"name":"address","nodeType":"ElementaryTypeName","src":"3282:8:60","stateMutability":"payable","typeDescriptions":{}}},"id":40621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3282:18:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":40622,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40594,"src":"3309:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40615,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40588,"src":"3248:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":40617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3261:8:60","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":48216,"src":"3248:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SupplySource_$50179_memory_ptr_$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function (struct SupplySource memory,address payable,uint256)"}},"id":40623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3271:9:60","3302:5:60"],"names":["recipient","value"],"nodeType":"FunctionCall","src":"3248:68:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40624,"nodeType":"ExpressionStatement","src":"3248:68:60"},{"expression":{"id":40625,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3337:11:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":40592,"id":40626,"nodeType":"Return","src":"3330:18:60"}]}},{"assignments":[40630],"declarations":[{"constant":false,"id":40630,"mutability":"mutable","name":"params","nameLocation":"3382:6:60","nodeType":"VariableDeclaration","scope":40667,"src":"3369:19:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40629,"name":"bytes","nodeType":"ElementaryTypeName","src":"3369:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40634,"initialValue":{"expression":{"expression":{"id":40631,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40585,"src":"3391:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3400:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"3391:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3408:6:60","memberName":"params","nodeType":"MemberAccess","referencedDeclaration":49941,"src":"3391:23:60","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"3369:45:60"},{"condition":{"expression":{"id":40635,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40585,"src":"3429:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3438:7:60","memberName":"wrapped","nodeType":"MemberAccess","referencedDeclaration":49926,"src":"3429:16:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40645,"nodeType":"IfStatement","src":"3425:76:60","trueBody":{"id":40644,"nodeType":"Block","src":"3447:54:60","statements":[{"expression":{"id":40642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40637,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40630,"src":"3461:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":40640,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40585,"src":"3481:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}],"expression":{"id":40638,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3470:3:60","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3474:6:60","memberName":"encode","nodeType":"MemberAccess","src":"3470:10:60","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3470:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3461:29:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40643,"nodeType":"ExpressionStatement","src":"3461:29:60"}]}},{"assignments":[40647],"declarations":[{"constant":false,"id":40647,"mutability":"mutable","name":"data","nameLocation":"3524:4:60","nodeType":"VariableDeclaration","scope":40667,"src":"3511:17:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40646,"name":"bytes","nodeType":"ElementaryTypeName","src":"3511:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40656,"initialValue":{"arguments":[{"expression":{"expression":{"id":40651,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40585,"src":"3544:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3553:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"3544:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3561:6:60","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"3544:23:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40654,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40630,"src":"3569:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3531:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":40648,"name":"bytes","nodeType":"ElementaryTypeName","src":"3531:5:60","typeDescriptions":{}}},"id":40650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3537:6:60","memberName":"concat","nodeType":"MemberAccess","src":"3531:12:60","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3531:45:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3511:65:60"},{"expression":{"arguments":[{"arguments":[{"id":40661,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40600,"src":"3636:9:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3628:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":40659,"name":"address","nodeType":"ElementaryTypeName","src":"3628:8:60","stateMutability":"payable","typeDescriptions":{}}},"id":40662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3628:18:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":40663,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40647,"src":"3654:4:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40664,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40594,"src":"3667:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40657,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40588,"src":"3594:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":40658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3607:11:60","memberName":"performCall","nodeType":"MemberAccess","referencedDeclaration":48287,"src":"3594:24:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SupplySource_$50179_memory_ptr_$_t_address_payable_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function (struct SupplySource memory,address payable,bytes memory,uint256) returns (bytes memory)"}},"id":40665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3620:6:60","3648:4:60","3660:5:60"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3594:80:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":40592,"id":40666,"nodeType":"Return","src":"3587:87:60"}]},"functionSelector":"73b464b7","implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"2939:7:60","parameters":{"id":40589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40585,"mutability":"mutable","name":"crossMsg","nameLocation":"2965:8:60","nodeType":"VariableDeclaration","scope":40668,"src":"2947:26:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40584,"nodeType":"UserDefinedTypeName","pathNode":{"id":40583,"name":"CrossMsg","nameLocations":["2947:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"2947:8:60"},"referencedDeclaration":49927,"src":"2947:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"},{"constant":false,"id":40588,"mutability":"mutable","name":"supplySource","nameLocation":"2995:12:60","nodeType":"VariableDeclaration","scope":40668,"src":"2975:32:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":40587,"nodeType":"UserDefinedTypeName","pathNode":{"id":40586,"name":"SupplySource","nameLocations":["2975:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"2975:12:60"},"referencedDeclaration":50179,"src":"2975:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"2946:62:60"},"returnParameters":{"id":40592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40668,"src":"3025:12:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40590,"name":"bytes","nodeType":"ElementaryTypeName","src":"3025:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3024:14:60"},"scope":40725,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40724,"nodeType":"FunctionDefinition","src":"3765:559:60","nodes":[],"body":{"id":40723,"nodeType":"Block","src":"3843:481:60","nodes":[],"statements":[{"assignments":[40678],"declarations":[{"constant":false,"id":40678,"mutability":"mutable","name":"prevNonce","nameLocation":"3861:9:60","nodeType":"VariableDeclaration","scope":40723,"src":"3853:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40677,"name":"uint256","nodeType":"ElementaryTypeName","src":"3853:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40679,"nodeType":"VariableDeclarationStatement","src":"3853:17:60"},{"assignments":[40681],"declarations":[{"constant":false,"id":40681,"mutability":"mutable","name":"length","nameLocation":"3888:6:60","nodeType":"VariableDeclaration","scope":40723,"src":"3880:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40680,"name":"uint256","nodeType":"ElementaryTypeName","src":"3880:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40684,"initialValue":{"expression":{"id":40682,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40672,"src":"3897:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":40683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3907:6:60","memberName":"length","nodeType":"MemberAccess","src":"3897:16:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3880:33:60"},{"body":{"id":40719,"nodeType":"Block","src":"3953:343:60","statements":[{"assignments":[40692],"declarations":[{"constant":false,"id":40692,"mutability":"mutable","name":"nonce","nameLocation":"3975:5:60","nodeType":"VariableDeclaration","scope":40719,"src":"3967:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40691,"name":"uint256","nodeType":"ElementaryTypeName","src":"3967:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40698,"initialValue":{"expression":{"expression":{"baseExpression":{"id":40693,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40672,"src":"3983:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":40695,"indexExpression":{"id":40694,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40686,"src":"3993:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3983:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3996:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"3983:20:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4004:5:60","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49937,"src":"3983:26:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"3967:42:60"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40699,"name":"prevNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40678,"src":"4028:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":40700,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40692,"src":"4041:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4028:18:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40710,"nodeType":"IfStatement","src":"4024:171:60","trueBody":{"id":40709,"nodeType":"Block","src":"4048:147:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40702,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40686,"src":"4120:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":40703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4125:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4120:6:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40708,"nodeType":"IfStatement","src":"4116:65:60","trueBody":{"id":40707,"nodeType":"Block","src":"4128:53:60","statements":[{"expression":{"hexValue":"66616c7365","id":40705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4157:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":40676,"id":40706,"nodeType":"Return","src":"4150:12:60"}]}}]}},{"expression":{"id":40713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40711,"name":"prevNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40678,"src":"4209:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":40712,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40692,"src":"4221:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4209:17:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40714,"nodeType":"ExpressionStatement","src":"4209:17:60"},{"id":40718,"nodeType":"UncheckedBlock","src":"4240:46:60","statements":[{"expression":{"id":40716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4268:3:60","subExpression":{"id":40715,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40686,"src":"4270:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40717,"nodeType":"ExpressionStatement","src":"4268:3:60"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40688,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40686,"src":"3939:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40689,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40681,"src":"3943:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3939:10:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40720,"initializationExpression":{"assignments":[40686],"declarations":[{"constant":false,"id":40686,"mutability":"mutable","name":"i","nameLocation":"3936:1:60","nodeType":"VariableDeclaration","scope":40720,"src":"3928:9:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40685,"name":"uint256","nodeType":"ElementaryTypeName","src":"3928:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40687,"nodeType":"VariableDeclarationStatement","src":"3928:9:60"},"nodeType":"ForStatement","src":"3923:373:60"},{"expression":{"hexValue":"74727565","id":40721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4313:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":40676,"id":40722,"nodeType":"Return","src":"4306:11:60"}]},"functionSelector":"89841475","implemented":true,"kind":"function","modifiers":[],"name":"isSorted","nameLocation":"3774:8:60","parameters":{"id":40673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40672,"mutability":"mutable","name":"crossMsgs","nameLocation":"3803:9:60","nodeType":"VariableDeclaration","scope":40724,"src":"3783:29:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":40670,"nodeType":"UserDefinedTypeName","pathNode":{"id":40669,"name":"CrossMsg","nameLocations":["3783:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"3783:8:60"},"referencedDeclaration":49927,"src":"3783:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":40671,"nodeType":"ArrayTypeName","src":"3783:10:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"3782:31:60"},"returnParameters":{"id":40676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40675,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40724,"src":"3837:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40674,"name":"bool","nodeType":"ElementaryTypeName","src":"3837:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3836:6:60"},"scope":40725,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"CrossMsgHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":40417,"nodeType":"StructuredDocumentation","src":"674:89:60","text":"@title Helper library for manipulating StorableMsg struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[40725],"name":"CrossMsgHelper","nameLocation":"771:14:60","scope":40726,"usedErrors":[32118,32461,32466,32469,40747]}],"license":"MIT OR Apache-2.0"},"id":60} \ No newline at end of file diff --git a/.out/CrossNet.sol/CrossNet.json b/.out/CrossNet.sol/CrossNet.json index 2f9bc81a6..6447edfcf 100644 --- a/.out/CrossNet.sol/CrossNet.json +++ b/.out/CrossNet.sol/CrossNet.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/CrossNet.sol","id":49992,"exportedSymbols":{"BATCH_PERIOD":[49913],"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"BottomUpMsgBatchInfo":[49950],"CrossMsg":[49974],"EnumerableSet":[35815],"IPCAddress":[50204],"MAX_MSGS_PER_BATCH":[49910],"ParentFinality":[49918],"RelayerRewardsInfo":[49968],"StorableMsg":[49991],"SubnetID":[50077]},"nodeType":"SourceUnit","src":"46:2709:80","nodes":[{"id":49902,"nodeType":"PragmaDirective","src":"46:23:80","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49905,"nodeType":"ImportDirective","src":"71:50:80","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./Subnet.sol","nameLocation":"-1:-1:-1","scope":49992,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":49903,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"79:8:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49904,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"89:10:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49907,"nodeType":"ImportDirective","src":"122:85:80","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":49992,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":49906,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"130:13:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49910,"nodeType":"VariableDeclaration","src":"209:39:80","nodes":[],"constant":true,"mutability":"constant","name":"MAX_MSGS_PER_BATCH","nameLocation":"225:18:80","scope":49992,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49908,"name":"uint64","nodeType":"ElementaryTypeName","src":"209:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":49909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"246:2:80","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":49913,"nodeType":"VariableDeclaration","src":"250:35:80","nodes":[],"constant":true,"mutability":"constant","name":"BATCH_PERIOD","nameLocation":"267:12:80","scope":49992,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49911,"name":"uint256","nodeType":"ElementaryTypeName","src":"250:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030","id":49912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"282:3:80","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":49918,"nodeType":"StructDefinition","src":"354:68:80","nodes":[],"canonicalName":"ParentFinality","members":[{"constant":false,"id":49915,"mutability":"mutable","name":"height","nameLocation":"390:6:80","nodeType":"VariableDeclaration","scope":49918,"src":"382:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49914,"name":"uint256","nodeType":"ElementaryTypeName","src":"382:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49917,"mutability":"mutable","name":"blockHash","nameLocation":"410:9:80","nodeType":"VariableDeclaration","scope":49918,"src":"402:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49916,"name":"bytes32","nodeType":"ElementaryTypeName","src":"402:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ParentFinality","nameLocation":"361:14:80","scope":49992,"visibility":"public"},{"id":49932,"nodeType":"StructDefinition","src":"465:785:80","nodes":[],"canonicalName":"BottomUpCheckpoint","members":[{"constant":false,"id":49922,"mutability":"mutable","name":"subnetID","nameLocation":"723:8:80","nodeType":"VariableDeclaration","scope":49932,"src":"714:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":49921,"nodeType":"UserDefinedTypeName","pathNode":{"id":49920,"name":"SubnetID","nameLocations":["714:8:80"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"714:8:80"},"referencedDeclaration":50077,"src":"714:8:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":49925,"mutability":"mutable","name":"blockHeight","nameLocation":"891:11:80","nodeType":"VariableDeclaration","scope":49932,"src":"883:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49924,"name":"uint256","nodeType":"ElementaryTypeName","src":"883:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49928,"mutability":"mutable","name":"blockHash","nameLocation":"952:9:80","nodeType":"VariableDeclaration","scope":49932,"src":"944:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49927,"name":"bytes32","nodeType":"ElementaryTypeName","src":"944:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49931,"mutability":"mutable","name":"nextConfigurationNumber","nameLocation":"1224:23:80","nodeType":"VariableDeclaration","scope":49932,"src":"1217:30:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49930,"name":"uint64","nodeType":"ElementaryTypeName","src":"1217:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"BottomUpCheckpoint","nameLocation":"472:18:80","scope":49992,"visibility":"public"},{"id":49945,"nodeType":"StructDefinition","src":"1309:323:80","nodes":[],"canonicalName":"BottomUpMsgBatch","members":[{"constant":false,"id":49936,"mutability":"mutable","name":"subnetID","nameLocation":"1460:8:80","nodeType":"VariableDeclaration","scope":49945,"src":"1451:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":49935,"nodeType":"UserDefinedTypeName","pathNode":{"id":49934,"name":"SubnetID","nameLocations":["1451:8:80"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1451:8:80"},"referencedDeclaration":50077,"src":"1451:8:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":49939,"mutability":"mutable","name":"blockHeight","nameLocation":"1554:11:80","nodeType":"VariableDeclaration","scope":49945,"src":"1546:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49938,"name":"uint256","nodeType":"ElementaryTypeName","src":"1546:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49944,"mutability":"mutable","name":"msgs","nameLocation":"1625:4:80","nodeType":"VariableDeclaration","scope":49945,"src":"1614:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":49942,"nodeType":"UserDefinedTypeName","pathNode":{"id":49941,"name":"CrossMsg","nameLocations":["1614:8:80"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1614:8:80"},"referencedDeclaration":49974,"src":"1614:8:80","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":49943,"nodeType":"ArrayTypeName","src":"1614:10:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"name":"BottomUpMsgBatch","nameLocation":"1316:16:80","scope":49992,"visibility":"public"},{"id":49950,"nodeType":"StructDefinition","src":"1696:74:80","nodes":[],"canonicalName":"BottomUpMsgBatchInfo","members":[{"constant":false,"id":49947,"mutability":"mutable","name":"blockHeight","nameLocation":"1738:11:80","nodeType":"VariableDeclaration","scope":49950,"src":"1730:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49946,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49949,"mutability":"mutable","name":"hash","nameLocation":"1763:4:80","nodeType":"VariableDeclaration","scope":49950,"src":"1755:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49948,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1755:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"BottomUpMsgBatchInfo","nameLocation":"1703:20:80","scope":49992,"visibility":"public"},{"id":49968,"nodeType":"StructDefinition","src":"1826:402:80","nodes":[],"canonicalName":"RelayerRewardsInfo","members":[{"constant":false,"id":49955,"mutability":"mutable","name":"rewards","nameLocation":"1912:7:80","nodeType":"VariableDeclaration","scope":49968,"src":"1884:35:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":49954,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49952,"name":"address","nodeType":"ElementaryTypeName","src":"1892:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1884:27:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49953,"name":"uint256","nodeType":"ElementaryTypeName","src":"1903:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":49961,"mutability":"mutable","name":"checkpointRewarded","nameLocation":"2059:18:80","nodeType":"VariableDeclaration","scope":49968,"src":"2014:63:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":49960,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49957,"name":"uint256","nodeType":"ElementaryTypeName","src":"2022:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2014:44:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49959,"nodeType":"UserDefinedTypeName","pathNode":{"id":49958,"name":"EnumerableSet.AddressSet","nameLocations":["2033:13:80","2047:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"2033:24:80"},"referencedDeclaration":35528,"src":"2033:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":49967,"mutability":"mutable","name":"batchRewarded","nameLocation":"2212:13:80","nodeType":"VariableDeclaration","scope":49968,"src":"2167:58:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":49966,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49963,"name":"uint256","nodeType":"ElementaryTypeName","src":"2175:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2167:44:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49965,"nodeType":"UserDefinedTypeName","pathNode":{"id":49964,"name":"EnumerableSet.AddressSet","nameLocations":["2186:13:80","2200:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"2186:24:80"},"referencedDeclaration":35528,"src":"2186:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"}],"name":"RelayerRewardsInfo","nameLocation":"1833:18:80","scope":49992,"visibility":"public"},{"id":49974,"nodeType":"StructDefinition","src":"2500:62:80","nodes":[],"canonicalName":"CrossMsg","members":[{"constant":false,"id":49971,"mutability":"mutable","name":"message","nameLocation":"2534:7:80","nodeType":"VariableDeclaration","scope":49974,"src":"2522:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"},"typeName":{"id":49970,"nodeType":"UserDefinedTypeName","pathNode":{"id":49969,"name":"StorableMsg","nameLocations":["2522:11:80"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"2522:11:80"},"referencedDeclaration":49991,"src":"2522:11:80","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":49973,"mutability":"mutable","name":"wrapped","nameLocation":"2552:7:80","nodeType":"VariableDeclaration","scope":49974,"src":"2547:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49972,"name":"bool","nodeType":"ElementaryTypeName","src":"2547:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CrossMsg","nameLocation":"2507:8:80","scope":49992,"visibility":"public"},{"id":49991,"nodeType":"StructDefinition","src":"2601:153:80","nodes":[],"canonicalName":"StorableMsg","members":[{"constant":false,"id":49977,"mutability":"mutable","name":"from","nameLocation":"2637:4:80","nodeType":"VariableDeclaration","scope":49991,"src":"2626:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_storage_ptr","typeString":"struct IPCAddress"},"typeName":{"id":49976,"nodeType":"UserDefinedTypeName","pathNode":{"id":49975,"name":"IPCAddress","nameLocations":["2626:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":50204,"src":"2626:10:80"},"referencedDeclaration":50204,"src":"2626:10:80","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_storage_ptr","typeString":"struct IPCAddress"}},"visibility":"internal"},{"constant":false,"id":49980,"mutability":"mutable","name":"to","nameLocation":"2658:2:80","nodeType":"VariableDeclaration","scope":49991,"src":"2647:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_storage_ptr","typeString":"struct IPCAddress"},"typeName":{"id":49979,"nodeType":"UserDefinedTypeName","pathNode":{"id":49978,"name":"IPCAddress","nameLocations":["2647:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":50204,"src":"2647:10:80"},"referencedDeclaration":50204,"src":"2647:10:80","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_storage_ptr","typeString":"struct IPCAddress"}},"visibility":"internal"},{"constant":false,"id":49982,"mutability":"mutable","name":"value","nameLocation":"2674:5:80","nodeType":"VariableDeclaration","scope":49991,"src":"2666:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49981,"name":"uint256","nodeType":"ElementaryTypeName","src":"2666:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49984,"mutability":"mutable","name":"nonce","nameLocation":"2692:5:80","nodeType":"VariableDeclaration","scope":49991,"src":"2685:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49983,"name":"uint64","nodeType":"ElementaryTypeName","src":"2685:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":49986,"mutability":"mutable","name":"method","nameLocation":"2710:6:80","nodeType":"VariableDeclaration","scope":49991,"src":"2703:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":49985,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2703:6:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":49988,"mutability":"mutable","name":"params","nameLocation":"2728:6:80","nodeType":"VariableDeclaration","scope":49991,"src":"2722:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":49987,"name":"bytes","nodeType":"ElementaryTypeName","src":"2722:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":49990,"mutability":"mutable","name":"fee","nameLocation":"2748:3:80","nodeType":"VariableDeclaration","scope":49991,"src":"2740:11:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2740:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StorableMsg","nameLocation":"2608:11:80","scope":49992,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":80} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/CrossNet.sol","id":49945,"exportedSymbols":{"BATCH_PERIOD":[49866],"BottomUpCheckpoint":[49885],"BottomUpMsgBatch":[49898],"BottomUpMsgBatchInfo":[49903],"CrossMsg":[49927],"EnumerableSet":[35815],"IPCAddress":[50157],"MAX_MSGS_PER_BATCH":[49863],"ParentFinality":[49871],"RelayerRewardsInfo":[49921],"StorableMsg":[49944],"SubnetID":[50030]},"nodeType":"SourceUnit","src":"46:2709:80","nodes":[{"id":49855,"nodeType":"PragmaDirective","src":"46:23:80","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49858,"nodeType":"ImportDirective","src":"71:50:80","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./Subnet.sol","nameLocation":"-1:-1:-1","scope":49945,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":49856,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"79:8:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49857,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"89:10:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49860,"nodeType":"ImportDirective","src":"122:85:80","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":49945,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":49859,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"130:13:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49863,"nodeType":"VariableDeclaration","src":"209:39:80","nodes":[],"constant":true,"mutability":"constant","name":"MAX_MSGS_PER_BATCH","nameLocation":"225:18:80","scope":49945,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49861,"name":"uint64","nodeType":"ElementaryTypeName","src":"209:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":49862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"246:2:80","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":49866,"nodeType":"VariableDeclaration","src":"250:35:80","nodes":[],"constant":true,"mutability":"constant","name":"BATCH_PERIOD","nameLocation":"267:12:80","scope":49945,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49864,"name":"uint256","nodeType":"ElementaryTypeName","src":"250:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030","id":49865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"282:3:80","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":49871,"nodeType":"StructDefinition","src":"354:68:80","nodes":[],"canonicalName":"ParentFinality","members":[{"constant":false,"id":49868,"mutability":"mutable","name":"height","nameLocation":"390:6:80","nodeType":"VariableDeclaration","scope":49871,"src":"382:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49867,"name":"uint256","nodeType":"ElementaryTypeName","src":"382:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49870,"mutability":"mutable","name":"blockHash","nameLocation":"410:9:80","nodeType":"VariableDeclaration","scope":49871,"src":"402:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49869,"name":"bytes32","nodeType":"ElementaryTypeName","src":"402:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ParentFinality","nameLocation":"361:14:80","scope":49945,"visibility":"public"},{"id":49885,"nodeType":"StructDefinition","src":"465:785:80","nodes":[],"canonicalName":"BottomUpCheckpoint","members":[{"constant":false,"id":49875,"mutability":"mutable","name":"subnetID","nameLocation":"723:8:80","nodeType":"VariableDeclaration","scope":49885,"src":"714:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":49874,"nodeType":"UserDefinedTypeName","pathNode":{"id":49873,"name":"SubnetID","nameLocations":["714:8:80"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"714:8:80"},"referencedDeclaration":50030,"src":"714:8:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":49878,"mutability":"mutable","name":"blockHeight","nameLocation":"891:11:80","nodeType":"VariableDeclaration","scope":49885,"src":"883:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49877,"name":"uint256","nodeType":"ElementaryTypeName","src":"883:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49881,"mutability":"mutable","name":"blockHash","nameLocation":"952:9:80","nodeType":"VariableDeclaration","scope":49885,"src":"944:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49880,"name":"bytes32","nodeType":"ElementaryTypeName","src":"944:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49884,"mutability":"mutable","name":"nextConfigurationNumber","nameLocation":"1224:23:80","nodeType":"VariableDeclaration","scope":49885,"src":"1217:30:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49883,"name":"uint64","nodeType":"ElementaryTypeName","src":"1217:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"BottomUpCheckpoint","nameLocation":"472:18:80","scope":49945,"visibility":"public"},{"id":49898,"nodeType":"StructDefinition","src":"1309:323:80","nodes":[],"canonicalName":"BottomUpMsgBatch","members":[{"constant":false,"id":49889,"mutability":"mutable","name":"subnetID","nameLocation":"1460:8:80","nodeType":"VariableDeclaration","scope":49898,"src":"1451:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":49888,"nodeType":"UserDefinedTypeName","pathNode":{"id":49887,"name":"SubnetID","nameLocations":["1451:8:80"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1451:8:80"},"referencedDeclaration":50030,"src":"1451:8:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":49892,"mutability":"mutable","name":"blockHeight","nameLocation":"1554:11:80","nodeType":"VariableDeclaration","scope":49898,"src":"1546:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49891,"name":"uint256","nodeType":"ElementaryTypeName","src":"1546:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49897,"mutability":"mutable","name":"msgs","nameLocation":"1625:4:80","nodeType":"VariableDeclaration","scope":49898,"src":"1614:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":49895,"nodeType":"UserDefinedTypeName","pathNode":{"id":49894,"name":"CrossMsg","nameLocations":["1614:8:80"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"1614:8:80"},"referencedDeclaration":49927,"src":"1614:8:80","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":49896,"nodeType":"ArrayTypeName","src":"1614:10:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"name":"BottomUpMsgBatch","nameLocation":"1316:16:80","scope":49945,"visibility":"public"},{"id":49903,"nodeType":"StructDefinition","src":"1696:74:80","nodes":[],"canonicalName":"BottomUpMsgBatchInfo","members":[{"constant":false,"id":49900,"mutability":"mutable","name":"blockHeight","nameLocation":"1738:11:80","nodeType":"VariableDeclaration","scope":49903,"src":"1730:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49899,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49902,"mutability":"mutable","name":"hash","nameLocation":"1763:4:80","nodeType":"VariableDeclaration","scope":49903,"src":"1755:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49901,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1755:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"BottomUpMsgBatchInfo","nameLocation":"1703:20:80","scope":49945,"visibility":"public"},{"id":49921,"nodeType":"StructDefinition","src":"1826:402:80","nodes":[],"canonicalName":"RelayerRewardsInfo","members":[{"constant":false,"id":49908,"mutability":"mutable","name":"rewards","nameLocation":"1912:7:80","nodeType":"VariableDeclaration","scope":49921,"src":"1884:35:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":49907,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49905,"name":"address","nodeType":"ElementaryTypeName","src":"1892:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1884:27:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49906,"name":"uint256","nodeType":"ElementaryTypeName","src":"1903:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":49914,"mutability":"mutable","name":"checkpointRewarded","nameLocation":"2059:18:80","nodeType":"VariableDeclaration","scope":49921,"src":"2014:63:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":49913,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49910,"name":"uint256","nodeType":"ElementaryTypeName","src":"2022:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2014:44:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49912,"nodeType":"UserDefinedTypeName","pathNode":{"id":49911,"name":"EnumerableSet.AddressSet","nameLocations":["2033:13:80","2047:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"2033:24:80"},"referencedDeclaration":35528,"src":"2033:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":49920,"mutability":"mutable","name":"batchRewarded","nameLocation":"2212:13:80","nodeType":"VariableDeclaration","scope":49921,"src":"2167:58:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":49919,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49916,"name":"uint256","nodeType":"ElementaryTypeName","src":"2175:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2167:44:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49918,"nodeType":"UserDefinedTypeName","pathNode":{"id":49917,"name":"EnumerableSet.AddressSet","nameLocations":["2186:13:80","2200:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"2186:24:80"},"referencedDeclaration":35528,"src":"2186:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"}],"name":"RelayerRewardsInfo","nameLocation":"1833:18:80","scope":49945,"visibility":"public"},{"id":49927,"nodeType":"StructDefinition","src":"2500:62:80","nodes":[],"canonicalName":"CrossMsg","members":[{"constant":false,"id":49924,"mutability":"mutable","name":"message","nameLocation":"2534:7:80","nodeType":"VariableDeclaration","scope":49927,"src":"2522:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"},"typeName":{"id":49923,"nodeType":"UserDefinedTypeName","pathNode":{"id":49922,"name":"StorableMsg","nameLocations":["2522:11:80"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"2522:11:80"},"referencedDeclaration":49944,"src":"2522:11:80","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":49926,"mutability":"mutable","name":"wrapped","nameLocation":"2552:7:80","nodeType":"VariableDeclaration","scope":49927,"src":"2547:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49925,"name":"bool","nodeType":"ElementaryTypeName","src":"2547:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CrossMsg","nameLocation":"2507:8:80","scope":49945,"visibility":"public"},{"id":49944,"nodeType":"StructDefinition","src":"2601:153:80","nodes":[],"canonicalName":"StorableMsg","members":[{"constant":false,"id":49930,"mutability":"mutable","name":"from","nameLocation":"2637:4:80","nodeType":"VariableDeclaration","scope":49944,"src":"2626:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_storage_ptr","typeString":"struct IPCAddress"},"typeName":{"id":49929,"nodeType":"UserDefinedTypeName","pathNode":{"id":49928,"name":"IPCAddress","nameLocations":["2626:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":50157,"src":"2626:10:80"},"referencedDeclaration":50157,"src":"2626:10:80","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_storage_ptr","typeString":"struct IPCAddress"}},"visibility":"internal"},{"constant":false,"id":49933,"mutability":"mutable","name":"to","nameLocation":"2658:2:80","nodeType":"VariableDeclaration","scope":49944,"src":"2647:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_storage_ptr","typeString":"struct IPCAddress"},"typeName":{"id":49932,"nodeType":"UserDefinedTypeName","pathNode":{"id":49931,"name":"IPCAddress","nameLocations":["2647:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":50157,"src":"2647:10:80"},"referencedDeclaration":50157,"src":"2647:10:80","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_storage_ptr","typeString":"struct IPCAddress"}},"visibility":"internal"},{"constant":false,"id":49935,"mutability":"mutable","name":"value","nameLocation":"2674:5:80","nodeType":"VariableDeclaration","scope":49944,"src":"2666:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49934,"name":"uint256","nodeType":"ElementaryTypeName","src":"2666:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49937,"mutability":"mutable","name":"nonce","nameLocation":"2692:5:80","nodeType":"VariableDeclaration","scope":49944,"src":"2685:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49936,"name":"uint64","nodeType":"ElementaryTypeName","src":"2685:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":49939,"mutability":"mutable","name":"method","nameLocation":"2710:6:80","nodeType":"VariableDeclaration","scope":49944,"src":"2703:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":49938,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2703:6:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":49941,"mutability":"mutable","name":"params","nameLocation":"2728:6:80","nodeType":"VariableDeclaration","scope":49944,"src":"2722:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":49940,"name":"bytes","nodeType":"ElementaryTypeName","src":"2722:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":49943,"mutability":"mutable","name":"fee","nameLocation":"2748:3:80","nodeType":"VariableDeclaration","scope":49944,"src":"2740:11:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49942,"name":"uint256","nodeType":"ElementaryTypeName","src":"2740:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StorableMsg","nameLocation":"2608:11:80","scope":49945,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":80} \ No newline at end of file diff --git a/.out/DiamondCutFacet.sol/DiamondCutFacet.json b/.out/DiamondCutFacet.sol/DiamondCutFacet.json index 4918c1872..628ba0f19 100644 --- a/.out/DiamondCutFacet.sol/DiamondCutFacet.json +++ b/.out/DiamondCutFacet.sol/DiamondCutFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"diamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c63430008130033","sourceMap":"472:750:41:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c63430008130033","sourceMap":"472:750:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2663:30:62;472:750:41;-1:-1:-1;;;;;472:750:41;2649:10:62;:44;2645:92;;472:750:41;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2937:19:62;;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;4023:9:62;472:750:41;3911:74:62;472:750:41;;;;;;:::i;:::-;3911:74:62;;;472:750:41;;4023:9:62;:::i;:::-;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:41;;;;;;;;;;;;;;;;;;;2917:18:62;472:750:41;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;472:750:41;;;;;3142:29:62;3138:122;;472:750:41;3309:23:62;;;;:::i;:::-;;:30;472:750:41;;;;;;;3357:37:62;;;4150:27;;;4146:116;;472:750:41;-1:-1:-1;;;;;;;;;;;472:750:41;;4385:74:62;472:750:41;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:41;;;;4385:74:62;;:::i;:::-;472:750:41;;4526:21:62;472:750:41;4521:677:62;4549:22;;;;;;3353:466;;;;;472:750:41;3353:466:62;;472:750:41;2917:18:62;;4526:21;-1:-1:-1;;;;;;4607:33:62;;;;:::i;:::-;472:750:41;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;;-1:-1:-1;;;;;472:750:41;4751:128:62;;472:750:41;;;:::i;:::-;;;;;;;;;;4939:107:62;;;472:750:41;;;-1:-1:-1;472:750:41;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:41;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;-1:-1:-1;;;472:750:41;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:62;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;4751:128:62;472:750:41;;-1:-1:-1;;;4811:53:62;;472:750:41;4811:53:62;;472:750:41;;;;;4811:53:62;4146:116;472:750:41;;-1:-1:-1;;;4200:51:62;;472:750:41;;;4200:51:62;;472:750:41;4200:51:62;;;:::i;:::-;;;;3353:466;472:750:41;3484:41:62;;472:750:41;;5372:27:62;;;5368:131;;5508:81;472:750:41;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:41;;;;5508:81:62;;:::i;:::-;472:750:41;;5652:21:62;472:750:41;5675:18:62;;;;;;3480:339;;;;472:750:41;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;472:750:41;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;-1:-1:-1;;;;;472:750:41;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;472:750:41;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;-1:-1:-1;;;;;;472:750:41;;;;;;;5652:21:62;;6268:123;472:750:41;;;;6328:48:62;;;;;;472:750:41;6328:48:62;;472:750:41;6328:48:62;6111:144;472:750:41;;-1:-1:-1;;;6174:66:62;;472:750:41;6174:66:62;;472:750:41;;;;;6174:66:62;5980:118;472:750:41;;-1:-1:-1;;;6043:40:62;;472:750:41;6043:40:62;;472:750:41;;;;;6043:40:62;5368:131;472:750:41;;-1:-1:-1;;;5422:66:62;;472:750:41;;;5422:66:62;;472:750:41;5422:66:62;;;:::i;3480:339::-;3629:30;3619:40;;3629:30;;472:750:41;-1:-1:-1;;;;;;;;;;;472:750:41;6826:27:62;;6822:115;;472:750:41;;;6999:21:62;472:750:41;7022:18:62;;;;;;3615:204;;;;472:750:41;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;472:750:41;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;7278:61:62;7274:153;;472:750:41;;-1:-1:-1;;;;;472:750:41;7597:4:62;7538:64;7534:149;;472:750:41;;;;;;;7747:15:62;472:750:41;;;;;;;;7780:68:62;7776:412;;6999:21;472:750:41;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;-1:-1:-1;;472:750:41;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;6999:21:62;;472:750:41;;;;;;;;;;;;7776:412:62;472:750:41;;7890:27:62;8033:140;7890:27;;:::i;:::-;472:750:41;;;;;;;;;7935:80:62;472:750:41;7935:65:62;472:750:41;;;;;;7935:65:62;:::i;:80::-;472:750:41;;-1:-1:-1;;;;;;472:750:41;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;-1:-1:-1;;;;472:750:41;;;;;;;-1:-1:-1;;;472:750:41;;;;;8033:140:62;7776:412;;;;7534:149;472:750:41;;-1:-1:-1;;;7629:39:62;;472:750:41;7629:39:62;;472:750:41;;;;;7629:39:62;7274:153;472:750:41;;-1:-1:-1;;;7366:46:62;;472:750:41;7366:46:62;;472:750:41;;;;;7366:46:62;6822:115;472:750:41;;;;6876:50:62;;;;;;472:750:41;6876:50:62;;472:750:41;6876:50:62;3615:204;472:750:41;;-1:-1:-1;;;3773:31:62;;472:750:41;;;;;3773:31:62;;;472:750:41;:::i;:::-;3773:31:62;472:750:41;;;;;;;;;;;;3138:122:62;472:750:41;;-1:-1:-1;;;3198:47:62;;472:750:41;3198:47:62;;472:750:41;;;;;3198:47:62;472:750:41;;;;;;;;;;;;;;;-1:-1:-1;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;2645:92:62;-1:-1:-1;;;2716:10:62;;472:750:41;;2716:10:62;472:750:41;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;472:750:41;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;472:750:41;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;472:750:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;-1:-1:-1;472:750:41;;;;;;;;;;;;:::o;8414:888:62:-;-1:-1:-1;;;;;472:750:41;;;8414:888:62;8506:19;;8502:56;;8523:1;472:750:41;;8567:70:62;472:750:41;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:41;;;;8567:70:62;;:::i;:::-;8737:29;;;472:750:41;8737:29:62;;;;;;472:750:41;;;;;;;;;;:::i;:::-;;;;;8523:1:62;472:750:41;;;;;8826:8:62;8822:474;;8414:888;;;:::o;8822:474::-;472:750:41;;8911:17:62;:12;;9034:144;;472:750:41;9034:144:62;;;8907:379;472:750:41;;;9223:48:62;;;;;;;;;;;472:750:41;;;;;;;;;;;:::i;:::-;;;;;8502:56:62;8541:7;;;:::o;9308:320::-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;472:750:41;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;472:750:41;;;9566:45:62;;;472:750:41;;;;;;;;;;;;;;;:::i","linkReferences":{}},"methodIdentifiers":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":"1f931c1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"diamondCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"params\":{\"_calldata\":\"A function call, including function selector and arguments _calldata is executed with delegatecall on _init\",\"_diamondCut\":\"Contains the facet addresses and function selectors\",\"_init\":\"The address of the contract or facet to execute _calldata\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"notice\":\"Add/replace/remove any number of functions and optionally execute a function with delegatecall\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/diamond/DiamondCutFacet.sol\":\"DiamondCutFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"diamondCut"}],"devdoc":{"kind":"dev","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"params":{"_calldata":"A function call, including function selector and arguments _calldata is executed with delegatecall on _init","_diamondCut":"Contains the facet addresses and function selectors","_init":"The address of the contract or facet to execute _calldata"}}},"version":1},"userdoc":{"kind":"user","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"notice":"Add/replace/remove any number of functions and optionally execute a function with delegatecall"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/diamond/DiamondCutFacet.sol":"DiamondCutFacet"},"libraries":{},"viaIR":true},"sources":{"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/diamond/DiamondCutFacet.sol","id":36919,"exportedSymbols":{"DiamondCutFacet":[36918],"IDiamondCut":[40189],"LibDiamond":[41682]},"nodeType":"SourceUnit","src":"32:1191:41","nodes":[{"id":36884,"nodeType":"PragmaDirective","src":"32:23:41","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36886,"nodeType":"ImportDirective","src":"362:58:41","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36919,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":36885,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"370:11:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36888,"nodeType":"ImportDirective","src":"421:49:41","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36919,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":36887,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"429:10:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36918,"nodeType":"ContractDefinition","src":"472:750:41","nodes":[{"id":36917,"nodeType":"FunctionDefinition","src":"961:259:41","nodes":[],"body":{"id":36916,"nodeType":"Block","src":"1073:147:41","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36903,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1083:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1094:22:41","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41144,"src":"1083:33:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":36906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1083:35:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36907,"nodeType":"ExpressionStatement","src":"1083:35:41"},{"expression":{"arguments":[{"id":36911,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36895,"src":"1164:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut calldata[] calldata"}},{"id":36912,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36897,"src":"1184:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":36913,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36899,"src":"1202:9:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut calldata[] calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":36908,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1128:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1139:10:41","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41262,"src":"1128:21:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":36914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1151:11:41","1177:5:41","1191:9:41"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1128:85:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36915,"nodeType":"ExpressionStatement","src":"1128:85:41"}]},"baseFunctions":[40188],"documentation":{"id":36891,"nodeType":"StructuredDocumentation","src":"518:438:41","text":"@notice Add/replace/remove any number of functions and optionally execute\n a function with delegatecall\n @param _diamondCut Contains the facet addresses and function selectors\n @param _init The address of the contract or facet to execute _calldata\n @param _calldata A function call, including function selector and arguments\n _calldata is executed with delegatecall on _init"},"functionSelector":"1f931c1c","implemented":true,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"970:10:41","overrides":{"id":36901,"nodeType":"OverrideSpecifier","overrides":[],"src":"1064:8:41"},"parameters":{"id":36900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36895,"mutability":"mutable","name":"_diamondCut","nameLocation":"1001:11:41","nodeType":"VariableDeclaration","scope":36917,"src":"981:31:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":36893,"nodeType":"UserDefinedTypeName","pathNode":{"id":36892,"name":"FacetCut","nameLocations":["981:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"981:8:41"},"referencedDeclaration":40159,"src":"981:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":36894,"nodeType":"ArrayTypeName","src":"981:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":36897,"mutability":"mutable","name":"_init","nameLocation":"1022:5:41","nodeType":"VariableDeclaration","scope":36917,"src":"1014:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36896,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36899,"mutability":"mutable","name":"_calldata","nameLocation":"1044:9:41","nodeType":"VariableDeclaration","scope":36917,"src":"1029:24:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":36898,"name":"bytes","nodeType":"ElementaryTypeName","src":"1029:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"980:74:41"},"returnParameters":{"id":36902,"nodeType":"ParameterList","parameters":[],"src":"1073:0:41"},"scope":36918,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":36889,"name":"IDiamondCut","nameLocations":["500:11:41"],"nodeType":"IdentifierPath","referencedDeclaration":40189,"src":"500:11:41"},"id":36890,"nodeType":"InheritanceSpecifier","src":"500:11:41"}],"canonicalName":"DiamondCutFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36918,40189,40170],"name":"DiamondCutFacet","nameLocation":"481:15:41","scope":36919,"usedErrors":[40975,40981,40986,40990,40994,40999,41005,41018,41022,41026,41030,41034,41038,41042]}],"license":"MIT"},"id":41} \ No newline at end of file +{"abi":[{"type":"function","name":"diamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c63430008130033","sourceMap":"472:750:41:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c63430008130033","sourceMap":"472:750:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2663:30:62;472:750:41;-1:-1:-1;;;;;472:750:41;2649:10:62;:44;2645:92;;472:750:41;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2937:19:62;;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;4023:9:62;472:750:41;3911:74:62;472:750:41;;;;;;:::i;:::-;3911:74:62;;;472:750:41;;4023:9:62;:::i;:::-;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:41;;;;;;;;;;;;;;;;;;;2917:18:62;472:750:41;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;472:750:41;;;;;3142:29:62;3138:122;;472:750:41;3309:23:62;;;;:::i;:::-;;:30;472:750:41;;;;;;;3357:37:62;;;4150:27;;;4146:116;;472:750:41;-1:-1:-1;;;;;;;;;;;472:750:41;;4385:74:62;472:750:41;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:41;;;;4385:74:62;;:::i;:::-;472:750:41;;4526:21:62;472:750:41;4521:677:62;4549:22;;;;;;3353:466;;;;;472:750:41;3353:466:62;;472:750:41;2917:18:62;;4526:21;-1:-1:-1;;;;;;4607:33:62;;;;:::i;:::-;472:750:41;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;;-1:-1:-1;;;;;472:750:41;4751:128:62;;472:750:41;;;:::i;:::-;;;;;;;;;;4939:107:62;;;472:750:41;;;-1:-1:-1;472:750:41;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:41;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;-1:-1:-1;;;472:750:41;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:62;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;4751:128:62;472:750:41;;-1:-1:-1;;;4811:53:62;;472:750:41;4811:53:62;;472:750:41;;;;;4811:53:62;4146:116;472:750:41;;-1:-1:-1;;;4200:51:62;;472:750:41;;;4200:51:62;;472:750:41;4200:51:62;;;:::i;:::-;;;;3353:466;472:750:41;3484:41:62;;472:750:41;;5372:27:62;;;5368:131;;5508:81;472:750:41;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:41;;;;5508:81:62;;:::i;:::-;472:750:41;;5652:21:62;472:750:41;5675:18:62;;;;;;3480:339;;;;472:750:41;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;472:750:41;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;-1:-1:-1;;;;;472:750:41;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;472:750:41;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;-1:-1:-1;;;;;;472:750:41;;;;;;;5652:21:62;;6268:123;472:750:41;;;;6328:48:62;;;;;;472:750:41;6328:48:62;;472:750:41;6328:48:62;6111:144;472:750:41;;-1:-1:-1;;;6174:66:62;;472:750:41;6174:66:62;;472:750:41;;;;;6174:66:62;5980:118;472:750:41;;-1:-1:-1;;;6043:40:62;;472:750:41;6043:40:62;;472:750:41;;;;;6043:40:62;5368:131;472:750:41;;-1:-1:-1;;;5422:66:62;;472:750:41;;;5422:66:62;;472:750:41;5422:66:62;;;:::i;3480:339::-;3629:30;3619:40;;3629:30;;472:750:41;-1:-1:-1;;;;;;;;;;;472:750:41;6826:27:62;;6822:115;;472:750:41;;;6999:21:62;472:750:41;7022:18:62;;;;;;3615:204;;;;472:750:41;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;472:750:41;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;7278:61:62;7274:153;;472:750:41;;-1:-1:-1;;;;;472:750:41;7597:4:62;7538:64;7534:149;;472:750:41;;;;;;;7747:15:62;472:750:41;;;;;;;;7780:68:62;7776:412;;6999:21;472:750:41;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;-1:-1:-1;;472:750:41;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;6999:21:62;;472:750:41;;;;;;;;;;;;7776:412:62;472:750:41;;7890:27:62;8033:140;7890:27;;:::i;:::-;472:750:41;;;;;;;;;7935:80:62;472:750:41;7935:65:62;472:750:41;;;;;;7935:65:62;:::i;:80::-;472:750:41;;-1:-1:-1;;;;;;472:750:41;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;-1:-1:-1;;;;472:750:41;;;;;;;-1:-1:-1;;;472:750:41;;;;;8033:140:62;7776:412;;;;7534:149;472:750:41;;-1:-1:-1;;;7629:39:62;;472:750:41;7629:39:62;;472:750:41;;;;;7629:39:62;7274:153;472:750:41;;-1:-1:-1;;;7366:46:62;;472:750:41;7366:46:62;;472:750:41;;;;;7366:46:62;6822:115;472:750:41;;;;6876:50:62;;;;;;472:750:41;6876:50:62;;472:750:41;6876:50:62;3615:204;472:750:41;;-1:-1:-1;;;3773:31:62;;472:750:41;;;;;3773:31:62;;;472:750:41;:::i;:::-;3773:31:62;472:750:41;;;;;;;;;;;;3138:122:62;472:750:41;;-1:-1:-1;;;3198:47:62;;472:750:41;3198:47:62;;472:750:41;;;;;3198:47:62;472:750:41;;;;;;;;;;;;;;;-1:-1:-1;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;2645:92:62;-1:-1:-1;;;2716:10:62;;472:750:41;;2716:10:62;472:750:41;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;472:750:41;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;472:750:41;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;472:750:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;-1:-1:-1;472:750:41;;;;;;;;;;;;:::o;8414:888:62:-;-1:-1:-1;;;;;472:750:41;;;8414:888:62;8506:19;;8502:56;;8523:1;472:750:41;;8567:70:62;472:750:41;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:41;;;;8567:70:62;;:::i;:::-;8737:29;;;472:750:41;8737:29:62;;;;;;472:750:41;;;;;;;;;;:::i;:::-;;;;;8523:1:62;472:750:41;;;;;8826:8:62;8822:474;;8414:888;;;:::o;8822:474::-;472:750:41;;8911:17:62;:12;;9034:144;;472:750:41;9034:144:62;;;8907:379;472:750:41;;;9223:48:62;;;;;;;;;;;472:750:41;;;;;;;;;;;:::i;:::-;;;;;8502:56:62;8541:7;;;:::o;9308:320::-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;472:750:41;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;472:750:41;;;9566:45:62;;;472:750:41;;;;;;;;;;;;;;;:::i","linkReferences":{}},"methodIdentifiers":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":"1f931c1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"diamondCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"params\":{\"_calldata\":\"A function call, including function selector and arguments _calldata is executed with delegatecall on _init\",\"_diamondCut\":\"Contains the facet addresses and function selectors\",\"_init\":\"The address of the contract or facet to execute _calldata\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"notice\":\"Add/replace/remove any number of functions and optionally execute a function with delegatecall\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/diamond/DiamondCutFacet.sol\":\"DiamondCutFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"diamondCut"}],"devdoc":{"kind":"dev","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"params":{"_calldata":"A function call, including function selector and arguments _calldata is executed with delegatecall on _init","_diamondCut":"Contains the facet addresses and function selectors","_init":"The address of the contract or facet to execute _calldata"}}},"version":1},"userdoc":{"kind":"user","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"notice":"Add/replace/remove any number of functions and optionally execute a function with delegatecall"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/diamond/DiamondCutFacet.sol":"DiamondCutFacet"},"libraries":{},"viaIR":true},"sources":{"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/diamond/DiamondCutFacet.sol","id":36919,"exportedSymbols":{"DiamondCutFacet":[36918],"IDiamondCut":[40189],"LibDiamond":[41626]},"nodeType":"SourceUnit","src":"32:1191:41","nodes":[{"id":36884,"nodeType":"PragmaDirective","src":"32:23:41","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36886,"nodeType":"ImportDirective","src":"362:58:41","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36919,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":36885,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"370:11:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36888,"nodeType":"ImportDirective","src":"421:49:41","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36919,"sourceUnit":41627,"symbolAliases":[{"foreign":{"id":36887,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"429:10:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36918,"nodeType":"ContractDefinition","src":"472:750:41","nodes":[{"id":36917,"nodeType":"FunctionDefinition","src":"961:259:41","nodes":[],"body":{"id":36916,"nodeType":"Block","src":"1073:147:41","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36903,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"1083:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1094:22:41","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41088,"src":"1083:33:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":36906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1083:35:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36907,"nodeType":"ExpressionStatement","src":"1083:35:41"},{"expression":{"arguments":[{"id":36911,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36895,"src":"1164:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut calldata[] calldata"}},{"id":36912,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36897,"src":"1184:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":36913,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36899,"src":"1202:9:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut calldata[] calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":36908,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"1128:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1139:10:41","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41206,"src":"1128:21:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":36914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1151:11:41","1177:5:41","1191:9:41"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1128:85:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36915,"nodeType":"ExpressionStatement","src":"1128:85:41"}]},"baseFunctions":[40188],"documentation":{"id":36891,"nodeType":"StructuredDocumentation","src":"518:438:41","text":"@notice Add/replace/remove any number of functions and optionally execute\n a function with delegatecall\n @param _diamondCut Contains the facet addresses and function selectors\n @param _init The address of the contract or facet to execute _calldata\n @param _calldata A function call, including function selector and arguments\n _calldata is executed with delegatecall on _init"},"functionSelector":"1f931c1c","implemented":true,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"970:10:41","overrides":{"id":36901,"nodeType":"OverrideSpecifier","overrides":[],"src":"1064:8:41"},"parameters":{"id":36900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36895,"mutability":"mutable","name":"_diamondCut","nameLocation":"1001:11:41","nodeType":"VariableDeclaration","scope":36917,"src":"981:31:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":36893,"nodeType":"UserDefinedTypeName","pathNode":{"id":36892,"name":"FacetCut","nameLocations":["981:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"981:8:41"},"referencedDeclaration":40159,"src":"981:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":36894,"nodeType":"ArrayTypeName","src":"981:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":36897,"mutability":"mutable","name":"_init","nameLocation":"1022:5:41","nodeType":"VariableDeclaration","scope":36917,"src":"1014:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36896,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36899,"mutability":"mutable","name":"_calldata","nameLocation":"1044:9:41","nodeType":"VariableDeclaration","scope":36917,"src":"1029:24:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":36898,"name":"bytes","nodeType":"ElementaryTypeName","src":"1029:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"980:74:41"},"returnParameters":{"id":36902,"nodeType":"ParameterList","parameters":[],"src":"1073:0:41"},"scope":36918,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":36889,"name":"IDiamondCut","nameLocations":["500:11:41"],"nodeType":"IdentifierPath","referencedDeclaration":40189,"src":"500:11:41"},"id":36890,"nodeType":"InheritanceSpecifier","src":"500:11:41"}],"canonicalName":"DiamondCutFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36918,40189,40170],"name":"DiamondCutFacet","nameLocation":"481:15:41","scope":36919,"usedErrors":[40919,40925,40930,40934,40938,40943,40949,40962,40966,40970,40974,40978,40982,40986]}],"license":"MIT"},"id":41} \ No newline at end of file diff --git a/.out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json b/.out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json index 15821ca17..7822474ac 100644 --- a/.out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json +++ b/.out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"facetAddress","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"facetAddress_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"facetAddresses","inputs":[],"outputs":[{"name":"facetAddresses_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"facetFunctionSelectors","inputs":[{"name":"_facet","type":"address","internalType":"address"}],"outputs":[{"name":"_facetFunctionSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"facets","inputs":[],"outputs":[{"name":"facets_","type":"tuple[]","internalType":"struct IDiamondLoupe.Facet[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c63430008130033","sourceMap":"652:6504:42:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c63430008130033","sourceMap":"652:6504:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;;652:6504:42;;;:::i;:::-;;;;7111:22;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;652:6504:42;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:6504:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;5192:28;;;:::i;:::-;5230:17;;5305:21;;5300:892;5328:29;;;;;;6305:67;;;652:6504;;;;6305:67;652:6504;;:::i;:::-;;;;5359:15;5408:27;;5473:57;:44;652:6504;5408:27;;;:::i;:::-;652:6504;;;;;;;;;;;5473:44;:::i;:::-;652:6504;-1:-1:-1;;;;;652:6504:42;;;5473:57;5544:17;-1:-1:-1;;;;;652:6504:42;;5544:17;5693:22;;;;;;5668:232;5973:97;;;;6114:42;;6170:11;6114:42;;5359:15;6114:42;;;:::i;:::-;-1:-1:-1;;;;;652:6504:42;;;;;;6114:42;6170:11;:::i;:::-;5359:15;;:::i;:::-;5305:21;;;5973:97;6047:8;;5359:15;6047:8;5359:15;:::i;5717:12::-;5753:44;5770:27;;;;;:::i;:::-;652:6504;-1:-1:-1;;;;;652:6504:42;;;5770:27;-1:-1:-1;;;;;652:6504:42;;;5753:44;;;5749:137;;5717:12;;;:::i;:::-;5673:18;;5749:137;5821:19;;;652:6504;5862:5;;;;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;652:6504:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;1362:26;;;:::i;:::-;1513:27;;;;:::i;:::-;1584:17;;1659:21;;1654:1292;1682:29;;;;;;2960:18;;2980:22;;;;;;3507:59;;;652:6504;;;;3507:59;652:6504;;:::i;2960:18::-;3043:29;3020:52;3043:29;;652:6504;3043:29;;;:::i;:::-;652:6504;;;;;3043:29;652:6504;;;;3020:52;2734:36;3114:19;;;;:::i;:::-;;:37;;3262:72;652:6504;2960:18;;1713:15;1762:27;;652:6504;1762:27;;;:::i;652:6504::-;1827:57;:44;;;:::i;:57::-;1898:17;-1:-1:-1;;;;;652:6504:42;;1898:17;2038:22;;;;;;2013:391;2498:97;;;;2673:18;2814:50;2924:11;2673:18;:47;1713:15;2673:18;;;;;:::i;:::-;;-1:-1:-1;;;;;652:6504:42;;;;;;2673:47;2814:50;2773:27;;;;:::i;:::-;2734:36;:18;:36;:18;;;;:::i;:::-;;:36;:66;2814:18;;;;:::i;:::-;;:36;;:50;:::i;:::-;-1:-1:-1;;;;;;652:6504:42;;;;;;2814:50;2878:32;;;;;:::i;:::-;652:6504;;;;2924:11;1713:15;;:::i;:::-;1659:21;;;2498:97;2572:8;;;1713:15;2572:8;1713:15;:::i;2062:12::-;2098:19;;;;:49;:32;:19;;;;:::i;:::-;;652:6504;-1:-1:-1;;;;;652:6504:42;;;2098:49;;2094:296;;2062:12;;;;;;:::i;:::-;2018:18;;2094:296;2272:31;2171:19;;;;;;2272:31;2171:19;:79;2272:31;2171:19;:79;2734:36;2171:19;2272:31;2171:19;2272:31;2171:19;;:::i;:::-;;:37;;:79;2209:29;;;;;:::i;2171:79::-;;;:::i;:::-;2272:31;:::i;:::-;;:::i;:::-;;;;:::i;:::-;652:6504;;;;;;2272:31;652:6504;2366:5;;;;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;652:6504:42;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:6504:42;;;;-1:-1:-1;;;;;652:6504:42;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;4059:20;-1:-1:-1;4115:27:42;;;;:::i;:::-;4200:21;;4223:29;;;;;;4698:78;;;652:6504;;;;4698:78;652:6504;;:::i;4254:15::-;4303:27;;;:::i;:::-;652:6504;;;;;;;;4368:44;;;;:::i;:::-;652:6504;;4443:23;;4439:142;;4254:15;;;;;:::i;:::-;4200:21;;4439:142;4486:48;4552:14;4486:48;;4254:15;4486:48;;;;:::i;:::-;-1:-1:-1;;;;;;652:6504:42;;;;;4552:14;:::i;:::-;4439:142;;;;652:6504;;;;;-1:-1:-1;;;;;6821:53:42;652:6504;;;:::i;6821:53::-;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:6504:42;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;-1:-1:-1;652:6504:42;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;652:6504:42;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;;;;;;;-1:-1:-1;652:6504:42;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;260:43:62;652:6504:42;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"facetAddress(bytes4)":"cdffacc6","facetAddresses()":"52ef6b2c","facetFunctionSelectors(address)":"adfca15e","facets()":"7a0ed627","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"facetAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"facetAddress_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facetAddresses\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"facetAddresses_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facet\",\"type\":\"address\"}],\"name\":\"facetFunctionSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_facetFunctionSelectors\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facets\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamondLoupe.Facet[]\",\"name\":\"facets_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"facetAddress(bytes4)\":{\"details\":\"If facet is not found return address(0).\",\"params\":{\"_functionSelector\":\"The function selector.\"},\"returns\":{\"facetAddress_\":\"The facet address.\"}},\"facetAddresses()\":{\"returns\":{\"facetAddresses_\":\"facetAddresses_\"}},\"facetFunctionSelectors(address)\":{\"params\":{\"_facet\":\"The facet address.\"},\"returns\":{\"_facetFunctionSelectors\":\"The selectors associated with a facet address.\"}},\"facets()\":{\"returns\":{\"facets_\":\"Facet\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"facetAddress(bytes4)\":{\"notice\":\"Gets the facet address that supports the given selector.\"},\"facetAddresses()\":{\"notice\":\"Get all the facet addresses used by a diamond.\"},\"facetFunctionSelectors(address)\":{\"notice\":\"Gets all the function selectors supported by a specific facet.\"},\"facets()\":{\"notice\":\"Gets all facets and their selectors.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/diamond/DiamondLoupeFacet.sol\":\"DiamondLoupeFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"facetAddress","outputs":[{"internalType":"address","name":"facetAddress_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facetAddresses","outputs":[{"internalType":"address[]","name":"facetAddresses_","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_facet","type":"address"}],"stateMutability":"view","type":"function","name":"facetFunctionSelectors","outputs":[{"internalType":"bytes4[]","name":"_facetFunctionSelectors","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facets","outputs":[{"internalType":"struct IDiamondLoupe.Facet[]","name":"facets_","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]}]},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"facetAddress(bytes4)":{"details":"If facet is not found return address(0).","params":{"_functionSelector":"The function selector."},"returns":{"facetAddress_":"The facet address."}},"facetAddresses()":{"returns":{"facetAddresses_":"facetAddresses_"}},"facetFunctionSelectors(address)":{"params":{"_facet":"The facet address."},"returns":{"_facetFunctionSelectors":"The selectors associated with a facet address."}},"facets()":{"returns":{"facets_":"Facet"}}},"version":1},"userdoc":{"kind":"user","methods":{"facetAddress(bytes4)":{"notice":"Gets the facet address that supports the given selector."},"facetAddresses()":{"notice":"Get all the facet addresses used by a diamond."},"facetFunctionSelectors(address)":{"notice":"Gets all the function selectors supported by a specific facet."},"facets()":{"notice":"Gets all facets and their selectors."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/diamond/DiamondLoupeFacet.sol":"DiamondLoupeFacet"},"libraries":{},"viaIR":true},"sources":{"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/diamond/DiamondLoupeFacet.sol","id":37356,"exportedSymbols":{"DiamondLoupeFacet":[37355],"IDiamondLoupe":[40230],"IERC165":[40241],"LibDiamond":[41682]},"nodeType":"SourceUnit","src":"32:7125:42","nodes":[{"id":36920,"nodeType":"PragmaDirective","src":"32:23:42","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36922,"nodeType":"ImportDirective","src":"487:49:42","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":37356,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":36921,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"495:10:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36924,"nodeType":"ImportDirective","src":"537:62:42","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"../interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":37356,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":36923,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"545:13:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36926,"nodeType":"ImportDirective","src":"600:50:42","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"../interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":37356,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":36925,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"608:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37355,"nodeType":"ContractDefinition","src":"652:6504:42","nodes":[{"id":37121,"nodeType":"FunctionDefinition","src":"1079:2493:42","nodes":[],"body":{"id":37120,"nodeType":"Block","src":"1153:2419:42","nodes":[],"statements":[{"assignments":[36943],"declarations":[{"constant":false,"id":36943,"mutability":"mutable","name":"ds","nameLocation":"1197:2:42","nodeType":"VariableDeclaration","scope":37120,"src":"1163:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36942,"nodeType":"UserDefinedTypeName","pathNode":{"id":36941,"name":"LibDiamond.DiamondStorage","nameLocations":["1163:10:42","1174:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"1163:25:42"},"referencedDeclaration":41072,"src":"1163:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36947,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36944,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1202:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1213:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"1202:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1163:66:42"},{"assignments":[36949],"declarations":[{"constant":false,"id":36949,"mutability":"mutable","name":"selectorCount","nameLocation":"1247:13:42","nodeType":"VariableDeclaration","scope":37120,"src":"1239:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36953,"initialValue":{"expression":{"expression":{"id":36950,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36943,"src":"1263:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1266:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"1263:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1276:6:42","memberName":"length","nodeType":"MemberAccess","src":"1263:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1239:43:42"},{"expression":{"id":36961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36954,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"1352:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36959,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"1374:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1362:11:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamondLoupe.Facet memory[] memory)"},"typeName":{"baseType":{"id":36956,"nodeType":"UserDefinedTypeName","pathNode":{"id":36955,"name":"Facet","nameLocations":["1366:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":40197,"src":"1366:5:42"},"referencedDeclaration":40197,"src":"1366:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":36957,"nodeType":"ArrayTypeName","src":"1366:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}}},"id":36960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"src":"1352:36:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":36962,"nodeType":"ExpressionStatement","src":"1352:36:42"},{"assignments":[36967],"declarations":[{"constant":false,"id":36967,"mutability":"mutable","name":"numFacetSelectors","nameLocation":"1493:17:42","nodeType":"VariableDeclaration","scope":37120,"src":"1477:33:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[]"},"typeName":{"baseType":{"id":36965,"name":"uint16","nodeType":"ElementaryTypeName","src":"1477:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36966,"nodeType":"ArrayTypeName","src":"1477:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_storage_ptr","typeString":"uint16[]"}},"visibility":"internal"}],"id":36973,"initialValue":{"arguments":[{"id":36971,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"1526:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1513:12:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint16_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint16[] memory)"},"typeName":{"baseType":{"id":36968,"name":"uint16","nodeType":"ElementaryTypeName","src":"1517:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36969,"nodeType":"ArrayTypeName","src":"1517:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_storage_ptr","typeString":"uint16[]"}}},"id":36972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1513:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1477:63:42"},{"assignments":[36975],"declarations":[{"constant":false,"id":36975,"mutability":"mutable","name":"numFacets","nameLocation":"1592:9:42","nodeType":"VariableDeclaration","scope":37120,"src":"1584:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36974,"name":"uint256","nodeType":"ElementaryTypeName","src":"1584:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36976,"nodeType":"VariableDeclarationStatement","src":"1584:17:42"},{"body":{"id":37088,"nodeType":"Block","src":"1730:1216:42","statements":[{"assignments":[36987],"declarations":[{"constant":false,"id":36987,"mutability":"mutable","name":"selector","nameLocation":"1751:8:42","nodeType":"VariableDeclaration","scope":37088,"src":"1744:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36986,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1744:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":36992,"initialValue":{"baseExpression":{"expression":{"id":36988,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36943,"src":"1762:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1765:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"1762:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36991,"indexExpression":{"id":36990,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36978,"src":"1775:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1762:27:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"1744:45:42"},{"assignments":[36994],"declarations":[{"constant":false,"id":36994,"mutability":"mutable","name":"facetAddress_","nameLocation":"1811:13:42","nodeType":"VariableDeclaration","scope":37088,"src":"1803:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36993,"name":"address","nodeType":"ElementaryTypeName","src":"1803:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37000,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36995,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36943,"src":"1827:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1830:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"1827:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36998,"indexExpression":{"id":36997,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36987,"src":"1862:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1827:44:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1872:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"1827:57:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1803:81:42"},{"assignments":[37002],"declarations":[{"constant":false,"id":37002,"mutability":"mutable","name":"continueLoop","nameLocation":"1903:12:42","nodeType":"VariableDeclaration","scope":37088,"src":"1898:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37001,"name":"bool","nodeType":"ElementaryTypeName","src":"1898:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":37003,"nodeType":"VariableDeclarationStatement","src":"1898:17:42"},{"body":{"id":37042,"nodeType":"Block","src":"2076:328:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":37013,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2098:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37015,"indexExpression":{"id":37014,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2106:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2098:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2118:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40193,"src":"2098:32:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":37017,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36994,"src":"2134:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2098:49:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37041,"nodeType":"IfStatement","src":"2094:296:42","trueBody":{"id":37040,"nodeType":"Block","src":"2149:241:42","statements":[{"expression":{"id":37028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":37019,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2171:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37021,"indexExpression":{"id":37020,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2179:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2171:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2191:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"2171:37:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37026,"indexExpression":{"baseExpression":{"id":37023,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"2209:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37025,"indexExpression":{"id":37024,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2227:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2209:29:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2171:68:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37027,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36987,"src":"2242:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2171:79:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37029,"nodeType":"ExpressionStatement","src":"2171:79:42"},{"expression":{"id":37033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2272:31:42","subExpression":{"baseExpression":{"id":37030,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"2274:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37032,"indexExpression":{"id":37031,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2292:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2274:29:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":37034,"nodeType":"ExpressionStatement","src":"2272:31:42"},{"expression":{"id":37037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37035,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37002,"src":"2325:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":37036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2340:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2325:19:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37038,"nodeType":"ExpressionStatement","src":"2325:19:42"},{"id":37039,"nodeType":"Break","src":"2366:5:42"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37007,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2038:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37008,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2051:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2038:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37043,"initializationExpression":{"assignments":[37005],"declarations":[{"constant":false,"id":37005,"mutability":"mutable","name":"facetIndex","nameLocation":"2026:10:42","nodeType":"VariableDeclaration","scope":37043,"src":"2018:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37004,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37006,"nodeType":"VariableDeclarationStatement","src":"2018:18:42"},"loopExpression":{"expression":{"id":37011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2062:12:42","subExpression":{"id":37010,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2064:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37012,"nodeType":"ExpressionStatement","src":"2062:12:42"},"nodeType":"ForStatement","src":"2013:391:42"},{"condition":{"id":37044,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37002,"src":"2502:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37051,"nodeType":"IfStatement","src":"2498:97:42","trueBody":{"id":37050,"nodeType":"Block","src":"2516:79:42","statements":[{"expression":{"id":37047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37045,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37002,"src":"2534:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":37046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2549:5:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2534:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37048,"nodeType":"ExpressionStatement","src":"2534:20:42"},{"id":37049,"nodeType":"Continue","src":"2572:8:42"}]}},{"expression":{"id":37057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37052,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2673:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37054,"indexExpression":{"id":37053,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2681:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2673:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2692:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40193,"src":"2673:31:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37056,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36994,"src":"2707:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2673:47:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37058,"nodeType":"ExpressionStatement","src":"2673:47:42"},{"expression":{"id":37068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37059,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2734:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37061,"indexExpression":{"id":37060,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2742:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2734:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2753:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"2734:36:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37066,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"2786:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2773:12:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes4[] memory)"},"typeName":{"baseType":{"id":37063,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2777:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37064,"nodeType":"ArrayTypeName","src":"2777:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}}},"id":37067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"2734:66:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37069,"nodeType":"ExpressionStatement","src":"2734:66:42"},{"expression":{"id":37077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":37070,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2814:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37072,"indexExpression":{"id":37071,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2822:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2814:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2833:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"2814:36:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37075,"indexExpression":{"hexValue":"30","id":37074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2851:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2814:39:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37076,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36987,"src":"2856:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2814:50:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37078,"nodeType":"ExpressionStatement","src":"2814:50:42"},{"expression":{"id":37083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37079,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"2878:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37081,"indexExpression":{"id":37080,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2896:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2878:28:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":37082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2909:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2878:32:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":37084,"nodeType":"ExpressionStatement","src":"2878:32:42"},{"expression":{"id":37086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2924:11:42","subExpression":{"id":37085,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2926:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37087,"nodeType":"ExpressionStatement","src":"2924:11:42"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36980,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36978,"src":"1682:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36981,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"1698:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1682:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37089,"initializationExpression":{"assignments":[36978],"declarations":[{"constant":false,"id":36978,"mutability":"mutable","name":"selectorIndex","nameLocation":"1667:13:42","nodeType":"VariableDeclaration","scope":37089,"src":"1659:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36977,"name":"uint256","nodeType":"ElementaryTypeName","src":"1659:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36979,"nodeType":"VariableDeclarationStatement","src":"1659:21:42"},"loopExpression":{"expression":{"id":36984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1713:15:42","subExpression":{"id":36983,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36978,"src":"1715:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36985,"nodeType":"ExpressionStatement","src":"1713:15:42"},"nodeType":"ForStatement","src":"1654:1292:42"},{"body":{"id":37117,"nodeType":"Block","src":"3006:406:42","statements":[{"assignments":[37097],"declarations":[{"constant":false,"id":37097,"mutability":"mutable","name":"numSelectors","nameLocation":"3028:12:42","nodeType":"VariableDeclaration","scope":37117,"src":"3020:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37096,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37101,"initialValue":{"baseExpression":{"id":37098,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"3043:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37100,"indexExpression":{"id":37099,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"3061:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3043:29:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3020:52:42"},{"assignments":[37106],"declarations":[{"constant":false,"id":37106,"mutability":"mutable","name":"selectors","nameLocation":"3102:9:42","nodeType":"VariableDeclaration","scope":37117,"src":"3086:25:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":37104,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3086:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37105,"nodeType":"ArrayTypeName","src":"3086:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"id":37111,"initialValue":{"expression":{"baseExpression":{"id":37107,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"3114:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37109,"indexExpression":{"id":37108,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"3122:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3114:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3134:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"3114:37:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3086:65:42"},{"AST":{"nodeType":"YulBlock","src":"3271:63:42","statements":[{"expression":{"arguments":[{"name":"selectors","nodeType":"YulIdentifier","src":"3296:9:42"},{"name":"numSelectors","nodeType":"YulIdentifier","src":"3307:12:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3289:6:42"},"nodeType":"YulFunctionCall","src":"3289:31:42"},"nodeType":"YulExpressionStatement","src":"3289:31:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":37097,"isOffset":false,"isSlot":false,"src":"3307:12:42","valueSize":1},{"declaration":37106,"isOffset":false,"isSlot":false,"src":"3296:9:42","valueSize":1}],"id":37112,"nodeType":"InlineAssembly","src":"3262:72:42"},{"id":37116,"nodeType":"UncheckedBlock","src":"3347:55:42","statements":[{"expression":{"id":37114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3375:12:42","subExpression":{"id":37113,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"3377:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37115,"nodeType":"ExpressionStatement","src":"3375:12:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37093,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"2980:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37094,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2993:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2980:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37118,"initializationExpression":{"assignments":[37091],"declarations":[{"constant":false,"id":37091,"mutability":"mutable","name":"facetIndex","nameLocation":"2968:10:42","nodeType":"VariableDeclaration","scope":37118,"src":"2960:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37090,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37092,"nodeType":"VariableDeclarationStatement","src":"2960:18:42"},"nodeType":"ForStatement","src":"2955:457:42"},{"AST":{"nodeType":"YulBlock","src":"3516:50:42","statements":[{"expression":{"arguments":[{"name":"facets_","nodeType":"YulIdentifier","src":"3537:7:42"},{"name":"numFacets","nodeType":"YulIdentifier","src":"3546:9:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3530:6:42"},"nodeType":"YulFunctionCall","src":"3530:26:42"},"nodeType":"YulExpressionStatement","src":"3530:26:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":36937,"isOffset":false,"isSlot":false,"src":"3537:7:42","valueSize":1},{"declaration":36975,"isOffset":false,"isSlot":false,"src":"3546:9:42","valueSize":1}],"id":37119,"nodeType":"InlineAssembly","src":"3507:59:42"}]},"baseFunctions":[40205],"documentation":{"id":36931,"nodeType":"StructuredDocumentation","src":"996:78:42","text":"@notice Gets all facets and their selectors.\n @return facets_ Facet"},"functionSelector":"7a0ed627","implemented":true,"kind":"function","modifiers":[],"name":"facets","nameLocation":"1088:6:42","overrides":{"id":36933,"nodeType":"OverrideSpecifier","overrides":[],"src":"1111:8:42"},"parameters":{"id":36932,"nodeType":"ParameterList","parameters":[],"src":"1094:2:42"},"returnParameters":{"id":36938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36937,"mutability":"mutable","name":"facets_","nameLocation":"1144:7:42","nodeType":"VariableDeclaration","scope":37121,"src":"1129:22:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet[]"},"typeName":{"baseType":{"id":36935,"nodeType":"UserDefinedTypeName","pathNode":{"id":36934,"name":"Facet","nameLocations":["1129:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":40197,"src":"1129:5:42"},"referencedDeclaration":40197,"src":"1129:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":36936,"nodeType":"ArrayTypeName","src":"1129:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}},"visibility":"internal"}],"src":"1128:24:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37199,"nodeType":"FunctionDefinition","src":"3785:997:42","nodes":[],"body":{"id":37198,"nodeType":"Block","src":"3920:862:42","nodes":[],"statements":[{"assignments":[37135],"declarations":[{"constant":false,"id":37135,"mutability":"mutable","name":"ds","nameLocation":"3964:2:42","nodeType":"VariableDeclaration","scope":37198,"src":"3930:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37134,"nodeType":"UserDefinedTypeName","pathNode":{"id":37133,"name":"LibDiamond.DiamondStorage","nameLocations":["3930:10:42","3941:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"3930:25:42"},"referencedDeclaration":41072,"src":"3930:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37139,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37136,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"3969:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":37137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3980:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"3969:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3969:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3930:66:42"},{"assignments":[37141],"declarations":[{"constant":false,"id":37141,"mutability":"mutable","name":"selectorCount","nameLocation":"4014:13:42","nodeType":"VariableDeclaration","scope":37198,"src":"4006:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37140,"name":"uint256","nodeType":"ElementaryTypeName","src":"4006:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37145,"initialValue":{"expression":{"expression":{"id":37142,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37135,"src":"4030:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4033:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"4030:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4043:6:42","memberName":"length","nodeType":"MemberAccess","src":"4030:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4006:43:42"},{"assignments":[37147],"declarations":[{"constant":false,"id":37147,"mutability":"mutable","name":"numSelectors","nameLocation":"4067:12:42","nodeType":"VariableDeclaration","scope":37198,"src":"4059:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37146,"name":"uint256","nodeType":"ElementaryTypeName","src":"4059:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37148,"nodeType":"VariableDeclarationStatement","src":"4059:20:42"},{"expression":{"id":37155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37149,"name":"_facetFunctionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37129,"src":"4089:23:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37153,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37141,"src":"4128:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4115:12:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes4[] memory)"},"typeName":{"baseType":{"id":37150,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4119:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37151,"nodeType":"ArrayTypeName","src":"4119:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}}},"id":37154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4115:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4089:53:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37156,"nodeType":"ExpressionStatement","src":"4089:53:42"},{"body":{"id":37195,"nodeType":"Block","src":"4271:320:42","statements":[{"assignments":[37167],"declarations":[{"constant":false,"id":37167,"mutability":"mutable","name":"selector","nameLocation":"4292:8:42","nodeType":"VariableDeclaration","scope":37195,"src":"4285:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37166,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4285:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":37172,"initialValue":{"baseExpression":{"expression":{"id":37168,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37135,"src":"4303:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4306:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"4303:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37171,"indexExpression":{"id":37170,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"4316:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4303:27:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4285:45:42"},{"assignments":[37174],"declarations":[{"constant":false,"id":37174,"mutability":"mutable","name":"facetAddress_","nameLocation":"4352:13:42","nodeType":"VariableDeclaration","scope":37195,"src":"4344:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37173,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37180,"initialValue":{"expression":{"baseExpression":{"expression":{"id":37175,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37135,"src":"4368:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4371:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"4368:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":37178,"indexExpression":{"id":37177,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37167,"src":"4403:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4368:44:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":37179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4413:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"4368:57:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4344:81:42"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37181,"name":"_facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37124,"src":"4443:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":37182,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37174,"src":"4453:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4443:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37194,"nodeType":"IfStatement","src":"4439:142:42","trueBody":{"id":37193,"nodeType":"Block","src":"4468:113:42","statements":[{"expression":{"id":37188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37184,"name":"_facetFunctionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37129,"src":"4486:23:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37186,"indexExpression":{"id":37185,"name":"numSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37147,"src":"4510:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4486:37:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37187,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37167,"src":"4526:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4486:48:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37189,"nodeType":"ExpressionStatement","src":"4486:48:42"},{"expression":{"id":37191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4552:14:42","subExpression":{"id":37190,"name":"numSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37147,"src":"4554:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37192,"nodeType":"ExpressionStatement","src":"4552:14:42"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37160,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"4223:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37161,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37141,"src":"4239:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4223:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37196,"initializationExpression":{"assignments":[37158],"declarations":[{"constant":false,"id":37158,"mutability":"mutable","name":"selectorIndex","nameLocation":"4208:13:42","nodeType":"VariableDeclaration","scope":37196,"src":"4200:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37157,"name":"uint256","nodeType":"ElementaryTypeName","src":"4200:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37159,"nodeType":"VariableDeclarationStatement","src":"4200:21:42"},"loopExpression":{"expression":{"id":37164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4254:15:42","subExpression":{"id":37163,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"4256:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37165,"nodeType":"ExpressionStatement","src":"4254:15:42"},"nodeType":"ForStatement","src":"4195:396:42"},{"AST":{"nodeType":"YulBlock","src":"4707:69:42","statements":[{"expression":{"arguments":[{"name":"_facetFunctionSelectors","nodeType":"YulIdentifier","src":"4728:23:42"},{"name":"numSelectors","nodeType":"YulIdentifier","src":"4753:12:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4721:6:42"},"nodeType":"YulFunctionCall","src":"4721:45:42"},"nodeType":"YulExpressionStatement","src":"4721:45:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":37129,"isOffset":false,"isSlot":false,"src":"4728:23:42","valueSize":1},{"declaration":37147,"isOffset":false,"isSlot":false,"src":"4753:12:42","valueSize":1}],"id":37197,"nodeType":"InlineAssembly","src":"4698:78:42"}]},"baseFunctions":[40214],"documentation":{"id":37122,"nodeType":"StructuredDocumentation","src":"3578:202:42","text":"@notice Gets all the function selectors supported by a specific facet.\n @param _facet The facet address.\n @return _facetFunctionSelectors The selectors associated with a facet address."},"functionSelector":"adfca15e","implemented":true,"kind":"function","modifiers":[],"name":"facetFunctionSelectors","nameLocation":"3794:22:42","overrides":{"id":37126,"nodeType":"OverrideSpecifier","overrides":[],"src":"3861:8:42"},"parameters":{"id":37125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37124,"mutability":"mutable","name":"_facet","nameLocation":"3834:6:42","nodeType":"VariableDeclaration","scope":37199,"src":"3826:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37123,"name":"address","nodeType":"ElementaryTypeName","src":"3826:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3816:30:42"},"returnParameters":{"id":37130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37129,"mutability":"mutable","name":"_facetFunctionSelectors","nameLocation":"3895:23:42","nodeType":"VariableDeclaration","scope":37199,"src":"3879:39:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":37127,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3879:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37128,"nodeType":"ArrayTypeName","src":"3879:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"3878:41:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37304,"nodeType":"FunctionDefinition","src":"4883:1495:42","nodes":[],"body":{"id":37303,"nodeType":"Block","src":"4975:1403:42","nodes":[],"statements":[{"assignments":[37211],"declarations":[{"constant":false,"id":37211,"mutability":"mutable","name":"ds","nameLocation":"5019:2:42","nodeType":"VariableDeclaration","scope":37303,"src":"4985:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37210,"nodeType":"UserDefinedTypeName","pathNode":{"id":37209,"name":"LibDiamond.DiamondStorage","nameLocations":["4985:10:42","4996:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"4985:25:42"},"referencedDeclaration":41072,"src":"4985:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37215,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37212,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"5024:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":37213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5035:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"5024:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5024:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4985:66:42"},{"assignments":[37217],"declarations":[{"constant":false,"id":37217,"mutability":"mutable","name":"selectorCount","nameLocation":"5069:13:42","nodeType":"VariableDeclaration","scope":37303,"src":"5061:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37216,"name":"uint256","nodeType":"ElementaryTypeName","src":"5061:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37221,"initialValue":{"expression":{"expression":{"id":37218,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37211,"src":"5085:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5088:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"5085:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5098:6:42","memberName":"length","nodeType":"MemberAccess","src":"5085:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5061:43:42"},{"expression":{"id":37228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37222,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37205,"src":"5174:15:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37226,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37217,"src":"5206:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5192:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":37223,"name":"address","nodeType":"ElementaryTypeName","src":"5196:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37224,"nodeType":"ArrayTypeName","src":"5196:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":37227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5192:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5174:46:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":37229,"nodeType":"ExpressionStatement","src":"5174:46:42"},{"assignments":[37231],"declarations":[{"constant":false,"id":37231,"mutability":"mutable","name":"numFacets","nameLocation":"5238:9:42","nodeType":"VariableDeclaration","scope":37303,"src":"5230:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37230,"name":"uint256","nodeType":"ElementaryTypeName","src":"5230:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37232,"nodeType":"VariableDeclarationStatement","src":"5230:17:42"},{"body":{"id":37300,"nodeType":"Block","src":"5376:816:42","statements":[{"assignments":[37243],"declarations":[{"constant":false,"id":37243,"mutability":"mutable","name":"selector","nameLocation":"5397:8:42","nodeType":"VariableDeclaration","scope":37300,"src":"5390:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37242,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5390:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":37248,"initialValue":{"baseExpression":{"expression":{"id":37244,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37211,"src":"5408:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5411:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"5408:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37247,"indexExpression":{"id":37246,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37234,"src":"5421:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5408:27:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"5390:45:42"},{"assignments":[37250],"declarations":[{"constant":false,"id":37250,"mutability":"mutable","name":"facetAddress_","nameLocation":"5457:13:42","nodeType":"VariableDeclaration","scope":37300,"src":"5449:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37249,"name":"address","nodeType":"ElementaryTypeName","src":"5449:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37256,"initialValue":{"expression":{"baseExpression":{"expression":{"id":37251,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37211,"src":"5473:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5476:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"5473:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":37254,"indexExpression":{"id":37253,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37243,"src":"5508:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5473:44:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":37255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5518:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"5473:57:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5449:81:42"},{"assignments":[37258],"declarations":[{"constant":false,"id":37258,"mutability":"mutable","name":"continueLoop","nameLocation":"5549:12:42","nodeType":"VariableDeclaration","scope":37300,"src":"5544:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37257,"name":"bool","nodeType":"ElementaryTypeName","src":"5544:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":37259,"nodeType":"VariableDeclarationStatement","src":"5544:17:42"},{"body":{"id":37281,"nodeType":"Block","src":"5731:169:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37269,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37250,"src":"5753:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":37270,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37205,"src":"5770:15:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":37272,"indexExpression":{"id":37271,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37261,"src":"5786:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5770:27:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5753:44:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37280,"nodeType":"IfStatement","src":"5749:137:42","trueBody":{"id":37279,"nodeType":"Block","src":"5799:87:42","statements":[{"expression":{"id":37276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37274,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37258,"src":"5821:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":37275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5836:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5821:19:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37277,"nodeType":"ExpressionStatement","src":"5821:19:42"},{"id":37278,"nodeType":"Break","src":"5862:5:42"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37263,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37261,"src":"5693:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37264,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37231,"src":"5706:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5693:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37282,"initializationExpression":{"assignments":[37261],"declarations":[{"constant":false,"id":37261,"mutability":"mutable","name":"facetIndex","nameLocation":"5681:10:42","nodeType":"VariableDeclaration","scope":37282,"src":"5673:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37260,"name":"uint256","nodeType":"ElementaryTypeName","src":"5673:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37262,"nodeType":"VariableDeclarationStatement","src":"5673:18:42"},"loopExpression":{"expression":{"id":37267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5717:12:42","subExpression":{"id":37266,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37261,"src":"5719:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37268,"nodeType":"ExpressionStatement","src":"5717:12:42"},"nodeType":"ForStatement","src":"5668:232:42"},{"condition":{"id":37283,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37258,"src":"5977:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37290,"nodeType":"IfStatement","src":"5973:97:42","trueBody":{"id":37289,"nodeType":"Block","src":"5991:79:42","statements":[{"expression":{"id":37286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37284,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37258,"src":"6009:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":37285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6024:5:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6009:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37287,"nodeType":"ExpressionStatement","src":"6009:20:42"},{"id":37288,"nodeType":"Continue","src":"6047:8:42"}]}},{"expression":{"id":37295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37291,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37205,"src":"6114:15:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":37293,"indexExpression":{"id":37292,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37231,"src":"6130:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6114:26:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37294,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37250,"src":"6143:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6114:42:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37296,"nodeType":"ExpressionStatement","src":"6114:42:42"},{"expression":{"id":37298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6170:11:42","subExpression":{"id":37297,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37231,"src":"6172:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37299,"nodeType":"ExpressionStatement","src":"6170:11:42"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37236,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37234,"src":"5328:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37237,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37217,"src":"5344:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5328:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37301,"initializationExpression":{"assignments":[37234],"declarations":[{"constant":false,"id":37234,"mutability":"mutable","name":"selectorIndex","nameLocation":"5313:13:42","nodeType":"VariableDeclaration","scope":37301,"src":"5305:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37233,"name":"uint256","nodeType":"ElementaryTypeName","src":"5305:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37235,"nodeType":"VariableDeclarationStatement","src":"5305:21:42"},"loopExpression":{"expression":{"id":37240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5359:15:42","subExpression":{"id":37239,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37234,"src":"5361:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37241,"nodeType":"ExpressionStatement","src":"5359:15:42"},"nodeType":"ForStatement","src":"5300:892:42"},{"AST":{"nodeType":"YulBlock","src":"6314:58:42","statements":[{"expression":{"arguments":[{"name":"facetAddresses_","nodeType":"YulIdentifier","src":"6335:15:42"},{"name":"numFacets","nodeType":"YulIdentifier","src":"6352:9:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6328:6:42"},"nodeType":"YulFunctionCall","src":"6328:34:42"},"nodeType":"YulExpressionStatement","src":"6328:34:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":37205,"isOffset":false,"isSlot":false,"src":"6335:15:42","valueSize":1},{"declaration":37231,"isOffset":false,"isSlot":false,"src":"6352:9:42","valueSize":1}],"id":37302,"nodeType":"InlineAssembly","src":"6305:67:42"}]},"baseFunctions":[40221],"documentation":{"id":37200,"nodeType":"StructuredDocumentation","src":"4788:90:42","text":"@notice Get all the facet addresses used by a diamond.\n @return facetAddresses_"},"functionSelector":"52ef6b2c","implemented":true,"kind":"function","modifiers":[],"name":"facetAddresses","nameLocation":"4892:14:42","overrides":{"id":37202,"nodeType":"OverrideSpecifier","overrides":[],"src":"4923:8:42"},"parameters":{"id":37201,"nodeType":"ParameterList","parameters":[],"src":"4906:2:42"},"returnParameters":{"id":37206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37205,"mutability":"mutable","name":"facetAddresses_","nameLocation":"4958:15:42","nodeType":"VariableDeclaration","scope":37304,"src":"4941:32:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":37203,"name":"address","nodeType":"ElementaryTypeName","src":"4941:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37204,"nodeType":"ArrayTypeName","src":"4941:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4940:34:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37331,"nodeType":"FunctionDefinition","src":"6616:278:42","nodes":[],"body":{"id":37330,"nodeType":"Block","src":"6719:175:42","nodes":[],"statements":[{"assignments":[37317],"declarations":[{"constant":false,"id":37317,"mutability":"mutable","name":"ds","nameLocation":"6763:2:42","nodeType":"VariableDeclaration","scope":37330,"src":"6729:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37316,"nodeType":"UserDefinedTypeName","pathNode":{"id":37315,"name":"LibDiamond.DiamondStorage","nameLocations":["6729:10:42","6740:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"6729:25:42"},"referencedDeclaration":41072,"src":"6729:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37321,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37318,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"6768:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":37319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6779:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"6768:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6768:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6729:66:42"},{"expression":{"id":37328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37322,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37311,"src":"6805:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":37323,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37317,"src":"6821:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6824:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"6821:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":37326,"indexExpression":{"id":37325,"name":"_functionSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37307,"src":"6856:17:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6821:53:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":37327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6875:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"6821:66:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6805:82:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37329,"nodeType":"ExpressionStatement","src":"6805:82:42"}]},"baseFunctions":[40229],"documentation":{"id":37305,"nodeType":"StructuredDocumentation","src":"6384:227:42","text":"@notice Gets the facet address that supports the given selector.\n @dev If facet is not found return address(0).\n @param _functionSelector The function selector.\n @return facetAddress_ The facet address."},"functionSelector":"cdffacc6","implemented":true,"kind":"function","modifiers":[],"name":"facetAddress","nameLocation":"6625:12:42","overrides":{"id":37309,"nodeType":"OverrideSpecifier","overrides":[],"src":"6678:8:42"},"parameters":{"id":37308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37307,"mutability":"mutable","name":"_functionSelector","nameLocation":"6645:17:42","nodeType":"VariableDeclaration","scope":37331,"src":"6638:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37306,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6638:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6637:26:42"},"returnParameters":{"id":37312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37311,"mutability":"mutable","name":"facetAddress_","nameLocation":"6704:13:42","nodeType":"VariableDeclaration","scope":37331,"src":"6696:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37310,"name":"address","nodeType":"ElementaryTypeName","src":"6696:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6695:23:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37354,"nodeType":"FunctionDefinition","src":"6932:222:42","nodes":[],"body":{"id":37353,"nodeType":"Block","src":"7018:136:42","nodes":[],"statements":[{"assignments":[37343],"declarations":[{"constant":false,"id":37343,"mutability":"mutable","name":"ds","nameLocation":"7062:2:42","nodeType":"VariableDeclaration","scope":37353,"src":"7028:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37342,"nodeType":"UserDefinedTypeName","pathNode":{"id":37341,"name":"LibDiamond.DiamondStorage","nameLocations":["7028:10:42","7039:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"7028:25:42"},"referencedDeclaration":41072,"src":"7028:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37347,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37344,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"7067:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":37345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7078:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"7067:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7067:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7028:66:42"},{"expression":{"baseExpression":{"expression":{"id":37348,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37343,"src":"7111:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7114:19:42","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"7111:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":37351,"indexExpression":{"id":37350,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37333,"src":"7134:12:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7111:36:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":37338,"id":37352,"nodeType":"Return","src":"7104:43:42"}]},"baseFunctions":[40240],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"6941:17:42","overrides":{"id":37335,"nodeType":"OverrideSpecifier","overrides":[],"src":"6994:8:42"},"parameters":{"id":37334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37333,"mutability":"mutable","name":"_interfaceId","nameLocation":"6966:12:42","nodeType":"VariableDeclaration","scope":37354,"src":"6959:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37332,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6959:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6958:21:42"},"returnParameters":{"id":37338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37337,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37354,"src":"7012:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37336,"name":"bool","nodeType":"ElementaryTypeName","src":"7012:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7011:6:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":36927,"name":"IDiamondLoupe","nameLocations":["682:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":40230,"src":"682:13:42"},"id":36928,"nodeType":"InheritanceSpecifier","src":"682:13:42"},{"baseName":{"id":36929,"name":"IERC165","nameLocations":["697:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":40241,"src":"697:7:42"},"id":36930,"nodeType":"InheritanceSpecifier","src":"697:7:42"}],"canonicalName":"DiamondLoupeFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[37355,40241,40230],"name":"DiamondLoupeFacet","nameLocation":"661:17:42","scope":37356,"usedErrors":[]}],"license":"MIT"},"id":42} \ No newline at end of file +{"abi":[{"type":"function","name":"facetAddress","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"facetAddress_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"facetAddresses","inputs":[],"outputs":[{"name":"facetAddresses_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"facetFunctionSelectors","inputs":[{"name":"_facet","type":"address","internalType":"address"}],"outputs":[{"name":"_facetFunctionSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"facets","inputs":[],"outputs":[{"name":"facets_","type":"tuple[]","internalType":"struct IDiamondLoupe.Facet[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c63430008130033","sourceMap":"652:6504:42:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c63430008130033","sourceMap":"652:6504:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;;652:6504:42;;;:::i;:::-;;;;7111:22;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;652:6504:42;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:6504:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;5192:28;;;:::i;:::-;5230:17;;5305:21;;5300:892;5328:29;;;;;;6305:67;;;652:6504;;;;6305:67;652:6504;;:::i;:::-;;;;5359:15;5408:27;;5473:57;:44;652:6504;5408:27;;;:::i;:::-;652:6504;;;;;;;;;;;5473:44;:::i;:::-;652:6504;-1:-1:-1;;;;;652:6504:42;;;5473:57;5544:17;-1:-1:-1;;;;;652:6504:42;;5544:17;5693:22;;;;;;5668:232;5973:97;;;;6114:42;;6170:11;6114:42;;5359:15;6114:42;;;:::i;:::-;-1:-1:-1;;;;;652:6504:42;;;;;;6114:42;6170:11;:::i;:::-;5359:15;;:::i;:::-;5305:21;;;5973:97;6047:8;;5359:15;6047:8;5359:15;:::i;5717:12::-;5753:44;5770:27;;;;;:::i;:::-;652:6504;-1:-1:-1;;;;;652:6504:42;;;5770:27;-1:-1:-1;;;;;652:6504:42;;;5753:44;;;5749:137;;5717:12;;;:::i;:::-;5673:18;;5749:137;5821:19;;;652:6504;5862:5;;;;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;652:6504:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;1362:26;;;:::i;:::-;1513:27;;;;:::i;:::-;1584:17;;1659:21;;1654:1292;1682:29;;;;;;2960:18;;2980:22;;;;;;3507:59;;;652:6504;;;;3507:59;652:6504;;:::i;2960:18::-;3043:29;3020:52;3043:29;;652:6504;3043:29;;;:::i;:::-;652:6504;;;;;3043:29;652:6504;;;;3020:52;2734:36;3114:19;;;;:::i;:::-;;:37;;3262:72;652:6504;2960:18;;1713:15;1762:27;;652:6504;1762:27;;;:::i;652:6504::-;1827:57;:44;;;:::i;:57::-;1898:17;-1:-1:-1;;;;;652:6504:42;;1898:17;2038:22;;;;;;2013:391;2498:97;;;;2673:18;2814:50;2924:11;2673:18;:47;1713:15;2673:18;;;;;:::i;:::-;;-1:-1:-1;;;;;652:6504:42;;;;;;2673:47;2814:50;2773:27;;;;:::i;:::-;2734:36;:18;:36;:18;;;;:::i;:::-;;:36;:66;2814:18;;;;:::i;:::-;;:36;;:50;:::i;:::-;-1:-1:-1;;;;;;652:6504:42;;;;;;2814:50;2878:32;;;;;:::i;:::-;652:6504;;;;2924:11;1713:15;;:::i;:::-;1659:21;;;2498:97;2572:8;;;1713:15;2572:8;1713:15;:::i;2062:12::-;2098:19;;;;:49;:32;:19;;;;:::i;:::-;;652:6504;-1:-1:-1;;;;;652:6504:42;;;2098:49;;2094:296;;2062:12;;;;;;:::i;:::-;2018:18;;2094:296;2272:31;2171:19;;;;;;2272:31;2171:19;:79;2272:31;2171:19;:79;2734:36;2171:19;2272:31;2171:19;2272:31;2171:19;;:::i;:::-;;:37;;:79;2209:29;;;;;:::i;2171:79::-;;;:::i;:::-;2272:31;:::i;:::-;;:::i;:::-;;;;:::i;:::-;652:6504;;;;;;2272:31;652:6504;2366:5;;;;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;652:6504:42;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:6504:42;;;;-1:-1:-1;;;;;652:6504:42;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;4059:20;-1:-1:-1;4115:27:42;;;;:::i;:::-;4200:21;;4223:29;;;;;;4698:78;;;652:6504;;;;4698:78;652:6504;;:::i;4254:15::-;4303:27;;;:::i;:::-;652:6504;;;;;;;;4368:44;;;;:::i;:::-;652:6504;;4443:23;;4439:142;;4254:15;;;;;:::i;:::-;4200:21;;4439:142;4486:48;4552:14;4486:48;;4254:15;4486:48;;;;:::i;:::-;-1:-1:-1;;;;;;652:6504:42;;;;;4552:14;:::i;:::-;4439:142;;;;652:6504;;;;;-1:-1:-1;;;;;6821:53:42;652:6504;;;:::i;6821:53::-;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:6504:42;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;-1:-1:-1;652:6504:42;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;652:6504:42;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;;;;;;;-1:-1:-1;652:6504:42;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;260:43:62;652:6504:42;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"facetAddress(bytes4)":"cdffacc6","facetAddresses()":"52ef6b2c","facetFunctionSelectors(address)":"adfca15e","facets()":"7a0ed627","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"facetAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"facetAddress_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facetAddresses\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"facetAddresses_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facet\",\"type\":\"address\"}],\"name\":\"facetFunctionSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_facetFunctionSelectors\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facets\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamondLoupe.Facet[]\",\"name\":\"facets_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"facetAddress(bytes4)\":{\"details\":\"If facet is not found return address(0).\",\"params\":{\"_functionSelector\":\"The function selector.\"},\"returns\":{\"facetAddress_\":\"The facet address.\"}},\"facetAddresses()\":{\"returns\":{\"facetAddresses_\":\"facetAddresses_\"}},\"facetFunctionSelectors(address)\":{\"params\":{\"_facet\":\"The facet address.\"},\"returns\":{\"_facetFunctionSelectors\":\"The selectors associated with a facet address.\"}},\"facets()\":{\"returns\":{\"facets_\":\"Facet\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"facetAddress(bytes4)\":{\"notice\":\"Gets the facet address that supports the given selector.\"},\"facetAddresses()\":{\"notice\":\"Get all the facet addresses used by a diamond.\"},\"facetFunctionSelectors(address)\":{\"notice\":\"Gets all the function selectors supported by a specific facet.\"},\"facets()\":{\"notice\":\"Gets all facets and their selectors.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/diamond/DiamondLoupeFacet.sol\":\"DiamondLoupeFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"facetAddress","outputs":[{"internalType":"address","name":"facetAddress_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facetAddresses","outputs":[{"internalType":"address[]","name":"facetAddresses_","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_facet","type":"address"}],"stateMutability":"view","type":"function","name":"facetFunctionSelectors","outputs":[{"internalType":"bytes4[]","name":"_facetFunctionSelectors","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facets","outputs":[{"internalType":"struct IDiamondLoupe.Facet[]","name":"facets_","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]}]},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"facetAddress(bytes4)":{"details":"If facet is not found return address(0).","params":{"_functionSelector":"The function selector."},"returns":{"facetAddress_":"The facet address."}},"facetAddresses()":{"returns":{"facetAddresses_":"facetAddresses_"}},"facetFunctionSelectors(address)":{"params":{"_facet":"The facet address."},"returns":{"_facetFunctionSelectors":"The selectors associated with a facet address."}},"facets()":{"returns":{"facets_":"Facet"}}},"version":1},"userdoc":{"kind":"user","methods":{"facetAddress(bytes4)":{"notice":"Gets the facet address that supports the given selector."},"facetAddresses()":{"notice":"Get all the facet addresses used by a diamond."},"facetFunctionSelectors(address)":{"notice":"Gets all the function selectors supported by a specific facet."},"facets()":{"notice":"Gets all facets and their selectors."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/diamond/DiamondLoupeFacet.sol":"DiamondLoupeFacet"},"libraries":{},"viaIR":true},"sources":{"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/diamond/DiamondLoupeFacet.sol","id":37356,"exportedSymbols":{"DiamondLoupeFacet":[37355],"IDiamondLoupe":[40230],"IERC165":[40241],"LibDiamond":[41626]},"nodeType":"SourceUnit","src":"32:7125:42","nodes":[{"id":36920,"nodeType":"PragmaDirective","src":"32:23:42","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36922,"nodeType":"ImportDirective","src":"487:49:42","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":37356,"sourceUnit":41627,"symbolAliases":[{"foreign":{"id":36921,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"495:10:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36924,"nodeType":"ImportDirective","src":"537:62:42","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"../interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":37356,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":36923,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"545:13:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36926,"nodeType":"ImportDirective","src":"600:50:42","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"../interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":37356,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":36925,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"608:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37355,"nodeType":"ContractDefinition","src":"652:6504:42","nodes":[{"id":37121,"nodeType":"FunctionDefinition","src":"1079:2493:42","nodes":[],"body":{"id":37120,"nodeType":"Block","src":"1153:2419:42","nodes":[],"statements":[{"assignments":[36943],"declarations":[{"constant":false,"id":36943,"mutability":"mutable","name":"ds","nameLocation":"1197:2:42","nodeType":"VariableDeclaration","scope":37120,"src":"1163:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36942,"nodeType":"UserDefinedTypeName","pathNode":{"id":36941,"name":"LibDiamond.DiamondStorage","nameLocations":["1163:10:42","1174:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"1163:25:42"},"referencedDeclaration":41016,"src":"1163:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36947,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36944,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"1202:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1213:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41028,"src":"1202:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1163:66:42"},{"assignments":[36949],"declarations":[{"constant":false,"id":36949,"mutability":"mutable","name":"selectorCount","nameLocation":"1247:13:42","nodeType":"VariableDeclaration","scope":37120,"src":"1239:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36953,"initialValue":{"expression":{"expression":{"id":36950,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36943,"src":"1263:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1266:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"1263:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1276:6:42","memberName":"length","nodeType":"MemberAccess","src":"1263:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1239:43:42"},{"expression":{"id":36961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36954,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"1352:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36959,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"1374:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1362:11:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamondLoupe.Facet memory[] memory)"},"typeName":{"baseType":{"id":36956,"nodeType":"UserDefinedTypeName","pathNode":{"id":36955,"name":"Facet","nameLocations":["1366:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":40197,"src":"1366:5:42"},"referencedDeclaration":40197,"src":"1366:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":36957,"nodeType":"ArrayTypeName","src":"1366:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}}},"id":36960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"src":"1352:36:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":36962,"nodeType":"ExpressionStatement","src":"1352:36:42"},{"assignments":[36967],"declarations":[{"constant":false,"id":36967,"mutability":"mutable","name":"numFacetSelectors","nameLocation":"1493:17:42","nodeType":"VariableDeclaration","scope":37120,"src":"1477:33:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[]"},"typeName":{"baseType":{"id":36965,"name":"uint16","nodeType":"ElementaryTypeName","src":"1477:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36966,"nodeType":"ArrayTypeName","src":"1477:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_storage_ptr","typeString":"uint16[]"}},"visibility":"internal"}],"id":36973,"initialValue":{"arguments":[{"id":36971,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"1526:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1513:12:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint16_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint16[] memory)"},"typeName":{"baseType":{"id":36968,"name":"uint16","nodeType":"ElementaryTypeName","src":"1517:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36969,"nodeType":"ArrayTypeName","src":"1517:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_storage_ptr","typeString":"uint16[]"}}},"id":36972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1513:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1477:63:42"},{"assignments":[36975],"declarations":[{"constant":false,"id":36975,"mutability":"mutable","name":"numFacets","nameLocation":"1592:9:42","nodeType":"VariableDeclaration","scope":37120,"src":"1584:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36974,"name":"uint256","nodeType":"ElementaryTypeName","src":"1584:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36976,"nodeType":"VariableDeclarationStatement","src":"1584:17:42"},{"body":{"id":37088,"nodeType":"Block","src":"1730:1216:42","statements":[{"assignments":[36987],"declarations":[{"constant":false,"id":36987,"mutability":"mutable","name":"selector","nameLocation":"1751:8:42","nodeType":"VariableDeclaration","scope":37088,"src":"1744:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36986,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1744:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":36992,"initialValue":{"baseExpression":{"expression":{"id":36988,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36943,"src":"1762:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1765:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"1762:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36991,"indexExpression":{"id":36990,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36978,"src":"1775:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1762:27:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"1744:45:42"},{"assignments":[36994],"declarations":[{"constant":false,"id":36994,"mutability":"mutable","name":"facetAddress_","nameLocation":"1811:13:42","nodeType":"VariableDeclaration","scope":37088,"src":"1803:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36993,"name":"address","nodeType":"ElementaryTypeName","src":"1803:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37000,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36995,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36943,"src":"1827:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1830:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"1827:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36998,"indexExpression":{"id":36997,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36987,"src":"1862:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1827:44:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1872:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"1827:57:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1803:81:42"},{"assignments":[37002],"declarations":[{"constant":false,"id":37002,"mutability":"mutable","name":"continueLoop","nameLocation":"1903:12:42","nodeType":"VariableDeclaration","scope":37088,"src":"1898:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37001,"name":"bool","nodeType":"ElementaryTypeName","src":"1898:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":37003,"nodeType":"VariableDeclarationStatement","src":"1898:17:42"},{"body":{"id":37042,"nodeType":"Block","src":"2076:328:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":37013,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2098:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37015,"indexExpression":{"id":37014,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2106:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2098:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2118:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40193,"src":"2098:32:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":37017,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36994,"src":"2134:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2098:49:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37041,"nodeType":"IfStatement","src":"2094:296:42","trueBody":{"id":37040,"nodeType":"Block","src":"2149:241:42","statements":[{"expression":{"id":37028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":37019,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2171:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37021,"indexExpression":{"id":37020,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2179:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2171:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2191:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"2171:37:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37026,"indexExpression":{"baseExpression":{"id":37023,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"2209:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37025,"indexExpression":{"id":37024,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2227:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2209:29:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2171:68:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37027,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36987,"src":"2242:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2171:79:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37029,"nodeType":"ExpressionStatement","src":"2171:79:42"},{"expression":{"id":37033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2272:31:42","subExpression":{"baseExpression":{"id":37030,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"2274:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37032,"indexExpression":{"id":37031,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2292:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2274:29:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":37034,"nodeType":"ExpressionStatement","src":"2272:31:42"},{"expression":{"id":37037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37035,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37002,"src":"2325:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":37036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2340:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2325:19:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37038,"nodeType":"ExpressionStatement","src":"2325:19:42"},{"id":37039,"nodeType":"Break","src":"2366:5:42"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37007,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2038:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37008,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2051:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2038:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37043,"initializationExpression":{"assignments":[37005],"declarations":[{"constant":false,"id":37005,"mutability":"mutable","name":"facetIndex","nameLocation":"2026:10:42","nodeType":"VariableDeclaration","scope":37043,"src":"2018:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37004,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37006,"nodeType":"VariableDeclarationStatement","src":"2018:18:42"},"loopExpression":{"expression":{"id":37011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2062:12:42","subExpression":{"id":37010,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2064:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37012,"nodeType":"ExpressionStatement","src":"2062:12:42"},"nodeType":"ForStatement","src":"2013:391:42"},{"condition":{"id":37044,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37002,"src":"2502:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37051,"nodeType":"IfStatement","src":"2498:97:42","trueBody":{"id":37050,"nodeType":"Block","src":"2516:79:42","statements":[{"expression":{"id":37047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37045,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37002,"src":"2534:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":37046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2549:5:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2534:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37048,"nodeType":"ExpressionStatement","src":"2534:20:42"},{"id":37049,"nodeType":"Continue","src":"2572:8:42"}]}},{"expression":{"id":37057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37052,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2673:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37054,"indexExpression":{"id":37053,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2681:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2673:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2692:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40193,"src":"2673:31:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37056,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36994,"src":"2707:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2673:47:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37058,"nodeType":"ExpressionStatement","src":"2673:47:42"},{"expression":{"id":37068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37059,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2734:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37061,"indexExpression":{"id":37060,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2742:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2734:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2753:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"2734:36:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37066,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"2786:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2773:12:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes4[] memory)"},"typeName":{"baseType":{"id":37063,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2777:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37064,"nodeType":"ArrayTypeName","src":"2777:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}}},"id":37067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"2734:66:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37069,"nodeType":"ExpressionStatement","src":"2734:66:42"},{"expression":{"id":37077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":37070,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2814:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37072,"indexExpression":{"id":37071,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2822:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2814:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2833:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"2814:36:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37075,"indexExpression":{"hexValue":"30","id":37074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2851:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2814:39:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37076,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36987,"src":"2856:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2814:50:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37078,"nodeType":"ExpressionStatement","src":"2814:50:42"},{"expression":{"id":37083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37079,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"2878:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37081,"indexExpression":{"id":37080,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2896:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2878:28:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":37082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2909:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2878:32:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":37084,"nodeType":"ExpressionStatement","src":"2878:32:42"},{"expression":{"id":37086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2924:11:42","subExpression":{"id":37085,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2926:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37087,"nodeType":"ExpressionStatement","src":"2924:11:42"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36980,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36978,"src":"1682:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36981,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"1698:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1682:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37089,"initializationExpression":{"assignments":[36978],"declarations":[{"constant":false,"id":36978,"mutability":"mutable","name":"selectorIndex","nameLocation":"1667:13:42","nodeType":"VariableDeclaration","scope":37089,"src":"1659:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36977,"name":"uint256","nodeType":"ElementaryTypeName","src":"1659:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36979,"nodeType":"VariableDeclarationStatement","src":"1659:21:42"},"loopExpression":{"expression":{"id":36984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1713:15:42","subExpression":{"id":36983,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36978,"src":"1715:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36985,"nodeType":"ExpressionStatement","src":"1713:15:42"},"nodeType":"ForStatement","src":"1654:1292:42"},{"body":{"id":37117,"nodeType":"Block","src":"3006:406:42","statements":[{"assignments":[37097],"declarations":[{"constant":false,"id":37097,"mutability":"mutable","name":"numSelectors","nameLocation":"3028:12:42","nodeType":"VariableDeclaration","scope":37117,"src":"3020:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37096,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37101,"initialValue":{"baseExpression":{"id":37098,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"3043:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37100,"indexExpression":{"id":37099,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"3061:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3043:29:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3020:52:42"},{"assignments":[37106],"declarations":[{"constant":false,"id":37106,"mutability":"mutable","name":"selectors","nameLocation":"3102:9:42","nodeType":"VariableDeclaration","scope":37117,"src":"3086:25:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":37104,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3086:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37105,"nodeType":"ArrayTypeName","src":"3086:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"id":37111,"initialValue":{"expression":{"baseExpression":{"id":37107,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"3114:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37109,"indexExpression":{"id":37108,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"3122:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3114:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3134:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"3114:37:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3086:65:42"},{"AST":{"nodeType":"YulBlock","src":"3271:63:42","statements":[{"expression":{"arguments":[{"name":"selectors","nodeType":"YulIdentifier","src":"3296:9:42"},{"name":"numSelectors","nodeType":"YulIdentifier","src":"3307:12:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3289:6:42"},"nodeType":"YulFunctionCall","src":"3289:31:42"},"nodeType":"YulExpressionStatement","src":"3289:31:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":37097,"isOffset":false,"isSlot":false,"src":"3307:12:42","valueSize":1},{"declaration":37106,"isOffset":false,"isSlot":false,"src":"3296:9:42","valueSize":1}],"id":37112,"nodeType":"InlineAssembly","src":"3262:72:42"},{"id":37116,"nodeType":"UncheckedBlock","src":"3347:55:42","statements":[{"expression":{"id":37114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3375:12:42","subExpression":{"id":37113,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"3377:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37115,"nodeType":"ExpressionStatement","src":"3375:12:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37093,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"2980:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37094,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2993:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2980:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37118,"initializationExpression":{"assignments":[37091],"declarations":[{"constant":false,"id":37091,"mutability":"mutable","name":"facetIndex","nameLocation":"2968:10:42","nodeType":"VariableDeclaration","scope":37118,"src":"2960:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37090,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37092,"nodeType":"VariableDeclarationStatement","src":"2960:18:42"},"nodeType":"ForStatement","src":"2955:457:42"},{"AST":{"nodeType":"YulBlock","src":"3516:50:42","statements":[{"expression":{"arguments":[{"name":"facets_","nodeType":"YulIdentifier","src":"3537:7:42"},{"name":"numFacets","nodeType":"YulIdentifier","src":"3546:9:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3530:6:42"},"nodeType":"YulFunctionCall","src":"3530:26:42"},"nodeType":"YulExpressionStatement","src":"3530:26:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":36937,"isOffset":false,"isSlot":false,"src":"3537:7:42","valueSize":1},{"declaration":36975,"isOffset":false,"isSlot":false,"src":"3546:9:42","valueSize":1}],"id":37119,"nodeType":"InlineAssembly","src":"3507:59:42"}]},"baseFunctions":[40205],"documentation":{"id":36931,"nodeType":"StructuredDocumentation","src":"996:78:42","text":"@notice Gets all facets and their selectors.\n @return facets_ Facet"},"functionSelector":"7a0ed627","implemented":true,"kind":"function","modifiers":[],"name":"facets","nameLocation":"1088:6:42","overrides":{"id":36933,"nodeType":"OverrideSpecifier","overrides":[],"src":"1111:8:42"},"parameters":{"id":36932,"nodeType":"ParameterList","parameters":[],"src":"1094:2:42"},"returnParameters":{"id":36938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36937,"mutability":"mutable","name":"facets_","nameLocation":"1144:7:42","nodeType":"VariableDeclaration","scope":37121,"src":"1129:22:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet[]"},"typeName":{"baseType":{"id":36935,"nodeType":"UserDefinedTypeName","pathNode":{"id":36934,"name":"Facet","nameLocations":["1129:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":40197,"src":"1129:5:42"},"referencedDeclaration":40197,"src":"1129:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":36936,"nodeType":"ArrayTypeName","src":"1129:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}},"visibility":"internal"}],"src":"1128:24:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37199,"nodeType":"FunctionDefinition","src":"3785:997:42","nodes":[],"body":{"id":37198,"nodeType":"Block","src":"3920:862:42","nodes":[],"statements":[{"assignments":[37135],"declarations":[{"constant":false,"id":37135,"mutability":"mutable","name":"ds","nameLocation":"3964:2:42","nodeType":"VariableDeclaration","scope":37198,"src":"3930:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37134,"nodeType":"UserDefinedTypeName","pathNode":{"id":37133,"name":"LibDiamond.DiamondStorage","nameLocations":["3930:10:42","3941:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"3930:25:42"},"referencedDeclaration":41016,"src":"3930:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37139,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37136,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"3969:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":37137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3980:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41028,"src":"3969:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3969:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3930:66:42"},{"assignments":[37141],"declarations":[{"constant":false,"id":37141,"mutability":"mutable","name":"selectorCount","nameLocation":"4014:13:42","nodeType":"VariableDeclaration","scope":37198,"src":"4006:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37140,"name":"uint256","nodeType":"ElementaryTypeName","src":"4006:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37145,"initialValue":{"expression":{"expression":{"id":37142,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37135,"src":"4030:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4033:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"4030:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4043:6:42","memberName":"length","nodeType":"MemberAccess","src":"4030:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4006:43:42"},{"assignments":[37147],"declarations":[{"constant":false,"id":37147,"mutability":"mutable","name":"numSelectors","nameLocation":"4067:12:42","nodeType":"VariableDeclaration","scope":37198,"src":"4059:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37146,"name":"uint256","nodeType":"ElementaryTypeName","src":"4059:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37148,"nodeType":"VariableDeclarationStatement","src":"4059:20:42"},{"expression":{"id":37155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37149,"name":"_facetFunctionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37129,"src":"4089:23:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37153,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37141,"src":"4128:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4115:12:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes4[] memory)"},"typeName":{"baseType":{"id":37150,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4119:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37151,"nodeType":"ArrayTypeName","src":"4119:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}}},"id":37154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4115:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4089:53:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37156,"nodeType":"ExpressionStatement","src":"4089:53:42"},{"body":{"id":37195,"nodeType":"Block","src":"4271:320:42","statements":[{"assignments":[37167],"declarations":[{"constant":false,"id":37167,"mutability":"mutable","name":"selector","nameLocation":"4292:8:42","nodeType":"VariableDeclaration","scope":37195,"src":"4285:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37166,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4285:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":37172,"initialValue":{"baseExpression":{"expression":{"id":37168,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37135,"src":"4303:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4306:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"4303:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37171,"indexExpression":{"id":37170,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"4316:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4303:27:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4285:45:42"},{"assignments":[37174],"declarations":[{"constant":false,"id":37174,"mutability":"mutable","name":"facetAddress_","nameLocation":"4352:13:42","nodeType":"VariableDeclaration","scope":37195,"src":"4344:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37173,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37180,"initialValue":{"expression":{"baseExpression":{"expression":{"id":37175,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37135,"src":"4368:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4371:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"4368:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":37178,"indexExpression":{"id":37177,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37167,"src":"4403:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4368:44:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":37179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4413:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"4368:57:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4344:81:42"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37181,"name":"_facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37124,"src":"4443:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":37182,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37174,"src":"4453:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4443:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37194,"nodeType":"IfStatement","src":"4439:142:42","trueBody":{"id":37193,"nodeType":"Block","src":"4468:113:42","statements":[{"expression":{"id":37188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37184,"name":"_facetFunctionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37129,"src":"4486:23:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37186,"indexExpression":{"id":37185,"name":"numSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37147,"src":"4510:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4486:37:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37187,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37167,"src":"4526:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4486:48:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37189,"nodeType":"ExpressionStatement","src":"4486:48:42"},{"expression":{"id":37191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4552:14:42","subExpression":{"id":37190,"name":"numSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37147,"src":"4554:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37192,"nodeType":"ExpressionStatement","src":"4552:14:42"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37160,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"4223:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37161,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37141,"src":"4239:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4223:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37196,"initializationExpression":{"assignments":[37158],"declarations":[{"constant":false,"id":37158,"mutability":"mutable","name":"selectorIndex","nameLocation":"4208:13:42","nodeType":"VariableDeclaration","scope":37196,"src":"4200:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37157,"name":"uint256","nodeType":"ElementaryTypeName","src":"4200:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37159,"nodeType":"VariableDeclarationStatement","src":"4200:21:42"},"loopExpression":{"expression":{"id":37164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4254:15:42","subExpression":{"id":37163,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"4256:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37165,"nodeType":"ExpressionStatement","src":"4254:15:42"},"nodeType":"ForStatement","src":"4195:396:42"},{"AST":{"nodeType":"YulBlock","src":"4707:69:42","statements":[{"expression":{"arguments":[{"name":"_facetFunctionSelectors","nodeType":"YulIdentifier","src":"4728:23:42"},{"name":"numSelectors","nodeType":"YulIdentifier","src":"4753:12:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4721:6:42"},"nodeType":"YulFunctionCall","src":"4721:45:42"},"nodeType":"YulExpressionStatement","src":"4721:45:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":37129,"isOffset":false,"isSlot":false,"src":"4728:23:42","valueSize":1},{"declaration":37147,"isOffset":false,"isSlot":false,"src":"4753:12:42","valueSize":1}],"id":37197,"nodeType":"InlineAssembly","src":"4698:78:42"}]},"baseFunctions":[40214],"documentation":{"id":37122,"nodeType":"StructuredDocumentation","src":"3578:202:42","text":"@notice Gets all the function selectors supported by a specific facet.\n @param _facet The facet address.\n @return _facetFunctionSelectors The selectors associated with a facet address."},"functionSelector":"adfca15e","implemented":true,"kind":"function","modifiers":[],"name":"facetFunctionSelectors","nameLocation":"3794:22:42","overrides":{"id":37126,"nodeType":"OverrideSpecifier","overrides":[],"src":"3861:8:42"},"parameters":{"id":37125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37124,"mutability":"mutable","name":"_facet","nameLocation":"3834:6:42","nodeType":"VariableDeclaration","scope":37199,"src":"3826:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37123,"name":"address","nodeType":"ElementaryTypeName","src":"3826:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3816:30:42"},"returnParameters":{"id":37130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37129,"mutability":"mutable","name":"_facetFunctionSelectors","nameLocation":"3895:23:42","nodeType":"VariableDeclaration","scope":37199,"src":"3879:39:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":37127,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3879:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37128,"nodeType":"ArrayTypeName","src":"3879:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"3878:41:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37304,"nodeType":"FunctionDefinition","src":"4883:1495:42","nodes":[],"body":{"id":37303,"nodeType":"Block","src":"4975:1403:42","nodes":[],"statements":[{"assignments":[37211],"declarations":[{"constant":false,"id":37211,"mutability":"mutable","name":"ds","nameLocation":"5019:2:42","nodeType":"VariableDeclaration","scope":37303,"src":"4985:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37210,"nodeType":"UserDefinedTypeName","pathNode":{"id":37209,"name":"LibDiamond.DiamondStorage","nameLocations":["4985:10:42","4996:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"4985:25:42"},"referencedDeclaration":41016,"src":"4985:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37215,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37212,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"5024:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":37213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5035:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41028,"src":"5024:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5024:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4985:66:42"},{"assignments":[37217],"declarations":[{"constant":false,"id":37217,"mutability":"mutable","name":"selectorCount","nameLocation":"5069:13:42","nodeType":"VariableDeclaration","scope":37303,"src":"5061:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37216,"name":"uint256","nodeType":"ElementaryTypeName","src":"5061:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37221,"initialValue":{"expression":{"expression":{"id":37218,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37211,"src":"5085:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5088:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"5085:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5098:6:42","memberName":"length","nodeType":"MemberAccess","src":"5085:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5061:43:42"},{"expression":{"id":37228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37222,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37205,"src":"5174:15:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37226,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37217,"src":"5206:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5192:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":37223,"name":"address","nodeType":"ElementaryTypeName","src":"5196:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37224,"nodeType":"ArrayTypeName","src":"5196:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":37227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5192:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5174:46:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":37229,"nodeType":"ExpressionStatement","src":"5174:46:42"},{"assignments":[37231],"declarations":[{"constant":false,"id":37231,"mutability":"mutable","name":"numFacets","nameLocation":"5238:9:42","nodeType":"VariableDeclaration","scope":37303,"src":"5230:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37230,"name":"uint256","nodeType":"ElementaryTypeName","src":"5230:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37232,"nodeType":"VariableDeclarationStatement","src":"5230:17:42"},{"body":{"id":37300,"nodeType":"Block","src":"5376:816:42","statements":[{"assignments":[37243],"declarations":[{"constant":false,"id":37243,"mutability":"mutable","name":"selector","nameLocation":"5397:8:42","nodeType":"VariableDeclaration","scope":37300,"src":"5390:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37242,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5390:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":37248,"initialValue":{"baseExpression":{"expression":{"id":37244,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37211,"src":"5408:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5411:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"5408:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37247,"indexExpression":{"id":37246,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37234,"src":"5421:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5408:27:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"5390:45:42"},{"assignments":[37250],"declarations":[{"constant":false,"id":37250,"mutability":"mutable","name":"facetAddress_","nameLocation":"5457:13:42","nodeType":"VariableDeclaration","scope":37300,"src":"5449:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37249,"name":"address","nodeType":"ElementaryTypeName","src":"5449:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37256,"initialValue":{"expression":{"baseExpression":{"expression":{"id":37251,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37211,"src":"5473:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5476:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"5473:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":37254,"indexExpression":{"id":37253,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37243,"src":"5508:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5473:44:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":37255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5518:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"5473:57:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5449:81:42"},{"assignments":[37258],"declarations":[{"constant":false,"id":37258,"mutability":"mutable","name":"continueLoop","nameLocation":"5549:12:42","nodeType":"VariableDeclaration","scope":37300,"src":"5544:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37257,"name":"bool","nodeType":"ElementaryTypeName","src":"5544:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":37259,"nodeType":"VariableDeclarationStatement","src":"5544:17:42"},{"body":{"id":37281,"nodeType":"Block","src":"5731:169:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37269,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37250,"src":"5753:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":37270,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37205,"src":"5770:15:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":37272,"indexExpression":{"id":37271,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37261,"src":"5786:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5770:27:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5753:44:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37280,"nodeType":"IfStatement","src":"5749:137:42","trueBody":{"id":37279,"nodeType":"Block","src":"5799:87:42","statements":[{"expression":{"id":37276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37274,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37258,"src":"5821:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":37275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5836:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5821:19:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37277,"nodeType":"ExpressionStatement","src":"5821:19:42"},{"id":37278,"nodeType":"Break","src":"5862:5:42"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37263,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37261,"src":"5693:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37264,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37231,"src":"5706:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5693:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37282,"initializationExpression":{"assignments":[37261],"declarations":[{"constant":false,"id":37261,"mutability":"mutable","name":"facetIndex","nameLocation":"5681:10:42","nodeType":"VariableDeclaration","scope":37282,"src":"5673:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37260,"name":"uint256","nodeType":"ElementaryTypeName","src":"5673:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37262,"nodeType":"VariableDeclarationStatement","src":"5673:18:42"},"loopExpression":{"expression":{"id":37267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5717:12:42","subExpression":{"id":37266,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37261,"src":"5719:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37268,"nodeType":"ExpressionStatement","src":"5717:12:42"},"nodeType":"ForStatement","src":"5668:232:42"},{"condition":{"id":37283,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37258,"src":"5977:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37290,"nodeType":"IfStatement","src":"5973:97:42","trueBody":{"id":37289,"nodeType":"Block","src":"5991:79:42","statements":[{"expression":{"id":37286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37284,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37258,"src":"6009:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":37285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6024:5:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6009:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37287,"nodeType":"ExpressionStatement","src":"6009:20:42"},{"id":37288,"nodeType":"Continue","src":"6047:8:42"}]}},{"expression":{"id":37295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37291,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37205,"src":"6114:15:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":37293,"indexExpression":{"id":37292,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37231,"src":"6130:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6114:26:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37294,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37250,"src":"6143:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6114:42:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37296,"nodeType":"ExpressionStatement","src":"6114:42:42"},{"expression":{"id":37298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6170:11:42","subExpression":{"id":37297,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37231,"src":"6172:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37299,"nodeType":"ExpressionStatement","src":"6170:11:42"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37236,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37234,"src":"5328:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37237,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37217,"src":"5344:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5328:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37301,"initializationExpression":{"assignments":[37234],"declarations":[{"constant":false,"id":37234,"mutability":"mutable","name":"selectorIndex","nameLocation":"5313:13:42","nodeType":"VariableDeclaration","scope":37301,"src":"5305:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37233,"name":"uint256","nodeType":"ElementaryTypeName","src":"5305:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37235,"nodeType":"VariableDeclarationStatement","src":"5305:21:42"},"loopExpression":{"expression":{"id":37240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5359:15:42","subExpression":{"id":37239,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37234,"src":"5361:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37241,"nodeType":"ExpressionStatement","src":"5359:15:42"},"nodeType":"ForStatement","src":"5300:892:42"},{"AST":{"nodeType":"YulBlock","src":"6314:58:42","statements":[{"expression":{"arguments":[{"name":"facetAddresses_","nodeType":"YulIdentifier","src":"6335:15:42"},{"name":"numFacets","nodeType":"YulIdentifier","src":"6352:9:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6328:6:42"},"nodeType":"YulFunctionCall","src":"6328:34:42"},"nodeType":"YulExpressionStatement","src":"6328:34:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":37205,"isOffset":false,"isSlot":false,"src":"6335:15:42","valueSize":1},{"declaration":37231,"isOffset":false,"isSlot":false,"src":"6352:9:42","valueSize":1}],"id":37302,"nodeType":"InlineAssembly","src":"6305:67:42"}]},"baseFunctions":[40221],"documentation":{"id":37200,"nodeType":"StructuredDocumentation","src":"4788:90:42","text":"@notice Get all the facet addresses used by a diamond.\n @return facetAddresses_"},"functionSelector":"52ef6b2c","implemented":true,"kind":"function","modifiers":[],"name":"facetAddresses","nameLocation":"4892:14:42","overrides":{"id":37202,"nodeType":"OverrideSpecifier","overrides":[],"src":"4923:8:42"},"parameters":{"id":37201,"nodeType":"ParameterList","parameters":[],"src":"4906:2:42"},"returnParameters":{"id":37206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37205,"mutability":"mutable","name":"facetAddresses_","nameLocation":"4958:15:42","nodeType":"VariableDeclaration","scope":37304,"src":"4941:32:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":37203,"name":"address","nodeType":"ElementaryTypeName","src":"4941:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37204,"nodeType":"ArrayTypeName","src":"4941:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4940:34:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37331,"nodeType":"FunctionDefinition","src":"6616:278:42","nodes":[],"body":{"id":37330,"nodeType":"Block","src":"6719:175:42","nodes":[],"statements":[{"assignments":[37317],"declarations":[{"constant":false,"id":37317,"mutability":"mutable","name":"ds","nameLocation":"6763:2:42","nodeType":"VariableDeclaration","scope":37330,"src":"6729:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37316,"nodeType":"UserDefinedTypeName","pathNode":{"id":37315,"name":"LibDiamond.DiamondStorage","nameLocations":["6729:10:42","6740:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"6729:25:42"},"referencedDeclaration":41016,"src":"6729:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37321,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37318,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"6768:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":37319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6779:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41028,"src":"6768:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6768:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6729:66:42"},{"expression":{"id":37328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37322,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37311,"src":"6805:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":37323,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37317,"src":"6821:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6824:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"6821:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":37326,"indexExpression":{"id":37325,"name":"_functionSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37307,"src":"6856:17:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6821:53:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":37327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6875:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"6821:66:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6805:82:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37329,"nodeType":"ExpressionStatement","src":"6805:82:42"}]},"baseFunctions":[40229],"documentation":{"id":37305,"nodeType":"StructuredDocumentation","src":"6384:227:42","text":"@notice Gets the facet address that supports the given selector.\n @dev If facet is not found return address(0).\n @param _functionSelector The function selector.\n @return facetAddress_ The facet address."},"functionSelector":"cdffacc6","implemented":true,"kind":"function","modifiers":[],"name":"facetAddress","nameLocation":"6625:12:42","overrides":{"id":37309,"nodeType":"OverrideSpecifier","overrides":[],"src":"6678:8:42"},"parameters":{"id":37308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37307,"mutability":"mutable","name":"_functionSelector","nameLocation":"6645:17:42","nodeType":"VariableDeclaration","scope":37331,"src":"6638:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37306,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6638:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6637:26:42"},"returnParameters":{"id":37312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37311,"mutability":"mutable","name":"facetAddress_","nameLocation":"6704:13:42","nodeType":"VariableDeclaration","scope":37331,"src":"6696:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37310,"name":"address","nodeType":"ElementaryTypeName","src":"6696:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6695:23:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37354,"nodeType":"FunctionDefinition","src":"6932:222:42","nodes":[],"body":{"id":37353,"nodeType":"Block","src":"7018:136:42","nodes":[],"statements":[{"assignments":[37343],"declarations":[{"constant":false,"id":37343,"mutability":"mutable","name":"ds","nameLocation":"7062:2:42","nodeType":"VariableDeclaration","scope":37353,"src":"7028:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37342,"nodeType":"UserDefinedTypeName","pathNode":{"id":37341,"name":"LibDiamond.DiamondStorage","nameLocations":["7028:10:42","7039:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"7028:25:42"},"referencedDeclaration":41016,"src":"7028:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37347,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37344,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"7067:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":37345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7078:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41028,"src":"7067:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7067:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7028:66:42"},{"expression":{"baseExpression":{"expression":{"id":37348,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37343,"src":"7111:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7114:19:42","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41013,"src":"7111:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":37351,"indexExpression":{"id":37350,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37333,"src":"7134:12:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7111:36:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":37338,"id":37352,"nodeType":"Return","src":"7104:43:42"}]},"baseFunctions":[40240],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"6941:17:42","overrides":{"id":37335,"nodeType":"OverrideSpecifier","overrides":[],"src":"6994:8:42"},"parameters":{"id":37334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37333,"mutability":"mutable","name":"_interfaceId","nameLocation":"6966:12:42","nodeType":"VariableDeclaration","scope":37354,"src":"6959:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37332,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6959:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6958:21:42"},"returnParameters":{"id":37338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37337,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37354,"src":"7012:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37336,"name":"bool","nodeType":"ElementaryTypeName","src":"7012:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7011:6:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":36927,"name":"IDiamondLoupe","nameLocations":["682:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":40230,"src":"682:13:42"},"id":36928,"nodeType":"InheritanceSpecifier","src":"682:13:42"},{"baseName":{"id":36929,"name":"IERC165","nameLocations":["697:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":40241,"src":"697:7:42"},"id":36930,"nodeType":"InheritanceSpecifier","src":"697:7:42"}],"canonicalName":"DiamondLoupeFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[37355,40241,40230],"name":"DiamondLoupeFacet","nameLocation":"661:17:42","scope":37356,"usedErrors":[]}],"license":"MIT"},"id":42} \ No newline at end of file diff --git a/.out/ERC20Helper.sol/DummyERC20.json b/.out/ERC20Helper.sol/DummyERC20.json index edde5fa48..fb5ab2548 100644 --- a/.out/ERC20Helper.sol/DummyERC20.json +++ b/.out/ERC20Helper.sol/DummyERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_initialSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"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":"amount","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":"currentSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"amount","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":"amount","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":"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":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60406080815234620003ea5762000e4e803803806200001e81620003ef565b9283398101606082820312620003ea5781516001600160401b039290838111620003ea57826200005091830162000415565b60209283830151858111620003ea5786916200006e91850162000415565b920151938151818111620002ea576003908154906001948583811c93168015620003df575b88841014620003c9578190601f9384811162000373575b5088908483116001146200030c5760009262000300575b505060001982851b1c191690851b1782555b8451928311620002ea5760049485548581811c91168015620002df575b88821014620002ca578281116200027f575b5086918411600114620002145793839491849260009562000208575b50501b92600019911b1c19161781555b60058054336001600160a01b031982168117909255855191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a360006006553315620001f4575060025490838201809211620001df57506000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160025533835282815284832084815401905584519384523393a3516109c69081620004888239f35b601190634e487b7160e01b6000525260246000fd5b600060249263ec442f0560e01b8352820152fd5b0151935038806200011e565b9190601f198416928660005284886000209460005b8a898383106200026757505050106200024c575b50505050811b0181556200012e565b01519060f884600019921b161c19169055388080806200023d565b86860151895590970196948501948893500162000229565b86600052876000208380870160051c8201928a8810620002c0575b0160051c019086905b828110620002b357505062000102565b60008155018690620002a3565b925081926200029a565b602287634e487b7160e01b6000525260246000fd5b90607f1690620000f0565b634e487b7160e01b600052604160045260246000fd5b015190503880620000c1565b90879350601f19831691866000528a6000209260005b8c8282106200035c575050841162000343575b505050811b018255620000d3565b015160001983871b60f8161c1916905538808062000335565b8385015186558b9790950194938401930162000322565b90915084600052886000208480850160051c8201928b8610620003bf575b918991869594930160051c01915b828110620003af575050620000aa565b600081558594508991016200039f565b9250819262000391565b634e487b7160e01b600052602260045260246000fd5b92607f169262000093565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620002ea57604052565b919080601f84011215620003ea5782516001600160401b038111620002ea576020906200044b601f8201601f19168301620003ef565b92818452828287010111620003ea5760005b8181106200047357508260009394955001015290565b85810183015184820184015282016200045d56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde031461066157508063095ea7b31461063757806318160ddd1461061857806323b872dd1461056b578063313ce5671461054f57806339509351146104ff57806340c10f191461046657806370a082311461042f578063715018a6146103d2578063771282f6146103b35780638da5cb5b1461038a57806395d89b411461026a578063a457c2d7146101e3578063a9059cbb146101b2578063dd62ed3e146101655763f2fde38b146100d357600080fd5b34610161576020366003190112610161576100ec61079f565b906100f56107d0565b6001600160a01b0391821692831561014b575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101ae57806003193601126101ae578060209261018361079f565b61018b6107ba565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5050346101ae57806003193601126101ae576020906101dc6101d261079f565b602435903361081f565b5160018152f35b5091346102675781600319360112610267576101fd61079f565b928260243592338152600160205281812060018060a01b03871682526020522054908282106102375750926101dc916020940390336108fd565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b509190346101ae57816003193601126101ae57805190828454600181811c90808316928315610380575b602093848410811461036d5783885290811561035157506001146102fc575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061033d57505050508301013880806102b3565b805488860183015293019284908201610327565b60ff1916878501525050151560051b84010190503880806102b3565b634e487b7160e01b895260228a52602489fd5b91607f1691610294565b5050346101ae57816003193601126101ae5760055490516001600160a01b039091168152602090f35b5050346101ae57816003193601126101ae576020906006549051908152f35b83346102675780600319360112610267576103eb6107d0565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101ae5760203660031901126101ae5760209181906001600160a01b0361045761079f565b16815280845220549051908152f35b50903461016157806003193601126101615761048061079f565b906024359161048d6107d0565b6001600160a01b03169283156104ea57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926104d087956002546107fc565b60025585855284835280852082815401905551908152a380f35b84602492519163ec442f0560e01b8352820152fd5b5050346101ae57806003193601126101ae576101dc60209261054861052261079f565b338352600186528483206001600160a01b038216845286529184902054602435906107fc565b90336108fd565b5050346101ae57816003193601126101ae576020905160128152f35b5091346102675760603660031901126102675761058661079f565b61058e6107ba565b90836044359360018060a01b0383168152600160205281812033825260205220549460001986036105c8575b6020856101dc86868661081f565b8386106105ed57509082916105e56101dc946020970333836108fd565b9091926105ba565b8451637dc7a0d960e11b81523391810191825260208201879052604082018590529081906060010390fd5b5050346101ae57816003193601126101ae576020906002549051908152f35b5050346101ae57806003193601126101ae576020906101dc61065761079f565b60243590336108fd565b849150833461016157826003193601126101615782600354600181811c9080831692831561074c575b602093848410811461036d5783885290811561073057506001146106da57505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061071c57505050508301018580806102b3565b805488860183015293019284908201610706565b60ff1916878501525050151560051b84010190508580806102b3565b91607f169161068a565b6020808252825181830181905290939260005b82811061078b57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610769565b600435906001600160a01b03821682036107b557565b600080fd5b602435906001600160a01b03821682036107b557565b6005546001600160a01b031633036107e457565b60405163118cdaa760e01b8152336004820152602490fd5b9190820180921161080957565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156108e457169283156108cb5760009083825281602052604082205490838210610899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03908116918215610977571691821561095e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fdfea26469706673582212206ce70ddacdf92416935820ca3689de8fcb4c640e2b35d020eeb5956dcd914d0464736f6c63430008130033","sourceMap":"179:387:89:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2245:13:23;179:387:89;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;-1:-1:-1;179:387:89;;;;-1:-1:-1;;;;179:387:89;;;;;;;;;;;;;;;;;;;;2268:17:23;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;2868:6:21;179:387:89;;380:10;-1:-1:-1;;;;;;179:387:89;;;;;;;;;;380:10;-1:-1:-1;;;;;179:387:89;2916:40:21;-1:-1:-1;;2916:40:21;-1:-1:-1;254:1:89;179:387;380:10;9575:21:23;9571:91;;179:387:89;8279:22:23;179:387:89;;;;;;;;;;;-1:-1:-1;179:387:89;9139:26:23;179:387:89;8279:22:23;179:387:89;380:10;179:387;;;;;;;;;;;;;;;;;;;380:10;9139:26:23;;179:387:89;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;-1:-1:-1;179:387:89;9571:91:23;-1:-1:-1;179:387:89;9619:32:23;;;;;;;;179:387:89;9619:32:23;179:387:89;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;-1:-1:-1;179:387:89;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;-1:-1:-1;179:387:89;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;-1:-1:-1;179:387:89;;;;;;;;;;;;-1:-1:-1;179:387:89;;2268:17:23;179:387:89;;-1:-1:-1;179:387:89;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;-1:-1:-1;179:387:89;;-1:-1:-1;179:387:89;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;-1:-1:-1;179:387:89;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;-1:-1:-1;;179:387:89;;;-1:-1:-1;;;;;179:387:89;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:89;;;;;;;;;;-1:-1:-1;;179:387:89;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde031461066157508063095ea7b31461063757806318160ddd1461061857806323b872dd1461056b578063313ce5671461054f57806339509351146104ff57806340c10f191461046657806370a082311461042f578063715018a6146103d2578063771282f6146103b35780638da5cb5b1461038a57806395d89b411461026a578063a457c2d7146101e3578063a9059cbb146101b2578063dd62ed3e146101655763f2fde38b146100d357600080fd5b34610161576020366003190112610161576100ec61079f565b906100f56107d0565b6001600160a01b0391821692831561014b575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101ae57806003193601126101ae578060209261018361079f565b61018b6107ba565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5050346101ae57806003193601126101ae576020906101dc6101d261079f565b602435903361081f565b5160018152f35b5091346102675781600319360112610267576101fd61079f565b928260243592338152600160205281812060018060a01b03871682526020522054908282106102375750926101dc916020940390336108fd565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b509190346101ae57816003193601126101ae57805190828454600181811c90808316928315610380575b602093848410811461036d5783885290811561035157506001146102fc575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061033d57505050508301013880806102b3565b805488860183015293019284908201610327565b60ff1916878501525050151560051b84010190503880806102b3565b634e487b7160e01b895260228a52602489fd5b91607f1691610294565b5050346101ae57816003193601126101ae5760055490516001600160a01b039091168152602090f35b5050346101ae57816003193601126101ae576020906006549051908152f35b83346102675780600319360112610267576103eb6107d0565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101ae5760203660031901126101ae5760209181906001600160a01b0361045761079f565b16815280845220549051908152f35b50903461016157806003193601126101615761048061079f565b906024359161048d6107d0565b6001600160a01b03169283156104ea57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926104d087956002546107fc565b60025585855284835280852082815401905551908152a380f35b84602492519163ec442f0560e01b8352820152fd5b5050346101ae57806003193601126101ae576101dc60209261054861052261079f565b338352600186528483206001600160a01b038216845286529184902054602435906107fc565b90336108fd565b5050346101ae57816003193601126101ae576020905160128152f35b5091346102675760603660031901126102675761058661079f565b61058e6107ba565b90836044359360018060a01b0383168152600160205281812033825260205220549460001986036105c8575b6020856101dc86868661081f565b8386106105ed57509082916105e56101dc946020970333836108fd565b9091926105ba565b8451637dc7a0d960e11b81523391810191825260208201879052604082018590529081906060010390fd5b5050346101ae57816003193601126101ae576020906002549051908152f35b5050346101ae57806003193601126101ae576020906101dc61065761079f565b60243590336108fd565b849150833461016157826003193601126101615782600354600181811c9080831692831561074c575b602093848410811461036d5783885290811561073057506001146106da57505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061071c57505050508301018580806102b3565b805488860183015293019284908201610706565b60ff1916878501525050151560051b84010190508580806102b3565b91607f169161068a565b6020808252825181830181905290939260005b82811061078b57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610769565b600435906001600160a01b03821682036107b557565b600080fd5b602435906001600160a01b03821682036107b557565b6005546001600160a01b031633036107e457565b60405163118cdaa760e01b8152336004820152602490fd5b9190820180921161080957565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156108e457169283156108cb5760009083825281602052604082205490838210610899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03908116918215610977571691821561095e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fdfea26469706673582212206ce70ddacdf92416935820ca3689de8fcb4c640e2b35d020eeb5956dcd914d0464736f6c63430008130033","sourceMap":"179:387:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;;:::i;:::-;1364:62:21;;;:::i;:::-;-1:-1:-1;;;;;179:387:89;;;;2491:22:21;;2487:91;;179:387:89;;2868:6:21;179:387:89;;;;;;;;2868:6:21;179:387:89;;2916:40:21;;;;179:387:89;;2487:91:21;179:387:89;-1:-1:-1;;;2536:31:21;;;;;179:387:89;;;;;2536:31:21;179:387:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:6:23;179:387:89;;:::i;:::-;;;720:10:30;;4039:6:23;:::i;:::-;179:387:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;720:10:30;;179:387:89;;;;;;;;;;;;;;;;;;;;;6910:36:23;;;;6906:148;;179:387:89;;7112:36:23;179:387:89;;;;720:10:30;;7112:36:23;:::i;6906:148::-;179:387:89;;-1:-1:-1;;;6969:74:23;;-1:-1:-1;;;;;179:387:89;;;6969:74:23;;;179:387:89;;;;;;;;;;;;;;;6969:74:23;;;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:89;;;;;-1:-1:-1;;179:387:89;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;179:387:89;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;-1:-1:-1;;179:387:89;;;;;;;;-1:-1:-1;179:387:89;;;;;;-1:-1:-1;;;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1574:6:21;179:387:89;;;-1:-1:-1;;;;;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;223:32;179:387;;;;;;;;;;;;;;;;;;;;1364:62:21;;:::i;:::-;2868:6;179:387:89;;-1:-1:-1;;;;;;179:387:89;;;;;;;-1:-1:-1;;;;;179:387:89;2916:40:21;179:387:89;;2916:40:21;179:387:89;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;;;;-1:-1:-1;;;;;179:387:89;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1364:62:21;;;:::i;:::-;-1:-1:-1;;;;;179:387:89;;9575:21:23;;9571:91;;179:387:89;;;9139:26:23;179:387:89;8279:22:23;179:387:89;;8279:22:23;179:387:89;8279:22:23;:::i;:::-;;179:387:89;;;;;;;;;;;;;;;;;;;;9139:26:23;179:387:89;;9571:91:23;179:387:89;;;;9619:32:23;;;;;;;;179:387:89;9619:32:23;179:387:89;;;;;;;;;;;;;;6139:38:23;179:387:89;;6139:38:23;179:387:89;;:::i;:::-;720:10:30;179:387:89;;;;;;;;-1:-1:-1;;;;;179:387:89;;;;;;;;;;;;;;6139:38:23;:::i;:::-;720:10:30;;6139:38:23;:::i;179:387:89:-;;;;;;;;;;;;;;;;;3358:2:23;179:387:89;;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;720:10:30;179:387:89;;;;;;11506:17:23;;;11486:37;;11482:306;;179:387:89;;5542:6:23;;;;;;:::i;11482:306::-;11543:25;;;11539:132;;179:387:89;;;;11737:25:23;5542:6;179:387:89;;;;720:10:30;11737:25:23;;:::i;:::-;11482:306;;;;;11539:132;179:387:89;;-1:-1:-1;;;11595:61:23;;720:10:30;11595:61:23;;;179:387:89;;;;;;;;;;;;;;;;;;;;6969:74:23;;;179:387:89;;;;;;;;;;;;;;;;3505:12:23;179:387:89;;;;;;;;;;;;;;;;;;;;;;;4733:6:23;179:387:89;;:::i;:::-;;;720:10:30;;4733:6:23;:::i;179:387:89:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:89;;;;;-1:-1:-1;;179:387:89;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;-1:-1:-1;;179:387:89;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:89;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;179:387:89;;;;;;:::o;1660:162:21:-;1574:6;179:387:89;-1:-1:-1;;;;;179:387:89;720:10:30;1719:23:21;1715:101;;1660:162::o;1715:101::-;179:387:89;;-1:-1:-1;;;1765:40:21;;720:10:30;1765:40:21;;;179:387:89;;;1765:40:21;179:387:89;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7553:302:23;;-1:-1:-1;;;;;179:387:89;;;;7637:18:23;;7633:86;;179:387:89;7732:16:23;;;7728:86;;8241:443;179:387:89;;;;;;;;;;;8387:20:23;;;;8383:117;;179:387:89;;;;;9139:26:23;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:26:23;7553:302::o;8383:117::-;179:387:89;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;179:387:89;;;;8434:51:23;;;179:387:89;;;;;;;;;;;;;;;;6969:74:23;7728:86;179:387:89;;-1:-1:-1;;;7771:32:23;;7653:1;7771:32;;;179:387:89;;;7771:32:23;7633:86;179:387:89;;-1:-1:-1;;;7678:30:23;;7653:1;7678:30;;;179:387:89;;;7678:30:23;10659:380;-1:-1:-1;;;;;179:387:89;;;;10756:19:23;;10752:89;;179:387:89;10854:21:23;;;10850:90;;179:387:89;11000:32:23;179:387:89;;10773:1:23;179:387:89;;;;;10773:1:23;179:387:89;;10773:1:23;179:387:89;;;;;10773:1:23;179:387:89;;;;;;;11000:32:23;10659:380::o;10850:90::-;179:387:89;;-1:-1:-1;;;10898:31:23;;10773:1;10898:31;;;179:387:89;;;10898:31:23;10752:89;179:387:89;;-1:-1:-1;;;10798:32:23;;10773:1;10798:32;;;179:387:89;;;10798:32:23","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","currentSupply()":"771282f6","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"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\":\"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\":[{\"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\":[{\"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\":\"amount\",\"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\":[],\"name\":\"currentSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":\"amount\",\"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\":\"amount\",\"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\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"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.\"}}],\"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.\"},\"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\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` 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}.\"},\"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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"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 `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"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\":{\"test/helpers/ERC20Helper.sol\":\"DummyERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191\",\"dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]},\"test/helpers/ERC20Helper.sol\":{\"keccak256\":\"0x6c2b213725c12dee6cf8cf1dea77ecd8b79e0dd201a36414eb6fe9b80dbc2939\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://489b39c9c75b127811b866146169e5f198bd4a2ee0ab19c7d49cc509bcae6625\",\"dweb:/ipfs/QmZE6wGtrAfxwgrQqHYvcNicPF5FKux9F1aVooqP6DH1JS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"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":"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":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"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":"amount","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":[],"stateMutability":"view","type":"function","name":"currentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"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":"amount","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":"amount","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":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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}."},"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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"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 `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/ERC20Helper.sol":"DummyERC20"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183","urls":["bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191","dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"},"test/helpers/ERC20Helper.sol":{"keccak256":"0x6c2b213725c12dee6cf8cf1dea77ecd8b79e0dd201a36414eb6fe9b80dbc2939","urls":["bzz-raw://489b39c9c75b127811b866146169e5f198bd4a2ee0ab19c7d49cc509bcae6625","dweb:/ipfs/QmZE6wGtrAfxwgrQqHYvcNicPF5FKux9F1aVooqP6DH1JS"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/ERC20Helper.sol","id":55427,"exportedSymbols":{"Context":[32860],"DummyERC20":[55426],"ERC20":[31921],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32068],"IERC721Errors":[31304],"Ownable":[31214]},"nodeType":"SourceUnit","src":"46:521:89","nodes":[{"id":55377,"nodeType":"PragmaDirective","src":"46:23:89","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55378,"nodeType":"ImportDirective","src":"71:54:89","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":55427,"sourceUnit":31922,"symbolAliases":[],"unitAlias":""},{"id":55379,"nodeType":"ImportDirective","src":"126:51:89","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"openzeppelin-contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":55427,"sourceUnit":31215,"symbolAliases":[],"unitAlias":""},{"id":55426,"nodeType":"ContractDefinition","src":"179:387:89","nodes":[{"id":55386,"nodeType":"VariableDeclaration","src":"223:32:89","nodes":[],"constant":false,"functionSelector":"771282f6","mutability":"mutable","name":"currentSupply","nameLocation":"238:13:89","scope":55426,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55384,"name":"uint256","nodeType":"ElementaryTypeName","src":"223:7:89","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":55385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"254:1:89","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":55410,"nodeType":"FunctionDefinition","src":"262:199:89","nodes":[],"body":{"id":55409,"nodeType":"Block","src":"414:47:89","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":55404,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31134,"src":"430:5:89","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":55405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"430:7:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55406,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55392,"src":"439:14:89","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55403,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"424:5:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"424:30:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55408,"nodeType":"ExpressionStatement","src":"424:30:89"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":55395,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"380:3:89","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"384:6:89","memberName":"sender","nodeType":"MemberAccess","src":"380:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":55397,"kind":"baseConstructorSpecifier","modifierName":{"id":55394,"name":"Ownable","nameLocations":["372:7:89"],"nodeType":"IdentifierPath","referencedDeclaration":31214,"src":"372:7:89"},"nodeType":"ModifierInvocation","src":"372:19:89"},{"arguments":[{"id":55399,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55388,"src":"398:5:89","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":55400,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55390,"src":"405:7:89","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":55401,"kind":"baseConstructorSpecifier","modifierName":{"id":55398,"name":"ERC20","nameLocations":["392:5:89"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"392:5:89"},"nodeType":"ModifierInvocation","src":"392:21:89"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55388,"mutability":"mutable","name":"_name","nameLocation":"297:5:89","nodeType":"VariableDeclaration","scope":55410,"src":"283:19:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55387,"name":"string","nodeType":"ElementaryTypeName","src":"283:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55390,"mutability":"mutable","name":"_symbol","nameLocation":"326:7:89","nodeType":"VariableDeclaration","scope":55410,"src":"312:21:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55389,"name":"string","nodeType":"ElementaryTypeName","src":"312:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55392,"mutability":"mutable","name":"_initialSupply","nameLocation":"351:14:89","nodeType":"VariableDeclaration","scope":55410,"src":"343:22:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55391,"name":"uint256","nodeType":"ElementaryTypeName","src":"343:7:89","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"273:98:89"},"returnParameters":{"id":55402,"nodeType":"ParameterList","parameters":[],"src":"414:0:89"},"scope":55426,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55425,"nodeType":"FunctionDefinition","src":"467:97:89","nodes":[],"body":{"id":55424,"nodeType":"Block","src":"528:36:89","nodes":[],"statements":[{"expression":{"arguments":[{"id":55420,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55412,"src":"544:3:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55421,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55414,"src":"549:7:89","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55419,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"538:5:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"538:19:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55423,"nodeType":"ExpressionStatement","src":"538:19:89"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":55417,"kind":"modifierInvocation","modifierName":{"id":55416,"name":"onlyOwner","nameLocations":["518:9:89"],"nodeType":"IdentifierPath","referencedDeclaration":31125,"src":"518:9:89"},"nodeType":"ModifierInvocation","src":"518:9:89"}],"name":"mint","nameLocation":"476:4:89","parameters":{"id":55415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55412,"mutability":"mutable","name":"_to","nameLocation":"489:3:89","nodeType":"VariableDeclaration","scope":55425,"src":"481:11:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55411,"name":"address","nodeType":"ElementaryTypeName","src":"481:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55414,"mutability":"mutable","name":"_amount","nameLocation":"502:7:89","nodeType":"VariableDeclaration","scope":55425,"src":"494:15:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55413,"name":"uint256","nodeType":"ElementaryTypeName","src":"494:7:89","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"480:30:89"},"returnParameters":{"id":55418,"nodeType":"ParameterList","parameters":[],"src":"528:0:89"},"scope":55426,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":55380,"name":"ERC20","nameLocations":["202:5:89"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"202:5:89"},"id":55381,"nodeType":"InheritanceSpecifier","src":"202:5:89"},{"baseName":{"id":55382,"name":"Ownable","nameLocations":["209:7:89"],"nodeType":"IdentifierPath","referencedDeclaration":31214,"src":"209:7:89"},"id":55383,"nodeType":"InheritanceSpecifier","src":"209:7:89"}],"canonicalName":"DummyERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55426,31214,31921,31256,32068,31999,32860],"name":"DummyERC20","nameLocation":"188:10:89","scope":55427,"usedErrors":[31095,31100,31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT OR Apache-2.0"},"id":89} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_initialSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"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":"amount","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":"currentSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"amount","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":"amount","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":"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":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60406080815234620003ea5762000e4e803803806200001e81620003ef565b9283398101606082820312620003ea5781516001600160401b039290838111620003ea57826200005091830162000415565b60209283830151858111620003ea5786916200006e91850162000415565b920151938151818111620002ea576003908154906001948583811c93168015620003df575b88841014620003c9578190601f9384811162000373575b5088908483116001146200030c5760009262000300575b505060001982851b1c191690851b1782555b8451928311620002ea5760049485548581811c91168015620002df575b88821014620002ca578281116200027f575b5086918411600114620002145793839491849260009562000208575b50501b92600019911b1c19161781555b60058054336001600160a01b031982168117909255855191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a360006006553315620001f4575060025490838201809211620001df57506000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160025533835282815284832084815401905584519384523393a3516109c69081620004888239f35b601190634e487b7160e01b6000525260246000fd5b600060249263ec442f0560e01b8352820152fd5b0151935038806200011e565b9190601f198416928660005284886000209460005b8a898383106200026757505050106200024c575b50505050811b0181556200012e565b01519060f884600019921b161c19169055388080806200023d565b86860151895590970196948501948893500162000229565b86600052876000208380870160051c8201928a8810620002c0575b0160051c019086905b828110620002b357505062000102565b60008155018690620002a3565b925081926200029a565b602287634e487b7160e01b6000525260246000fd5b90607f1690620000f0565b634e487b7160e01b600052604160045260246000fd5b015190503880620000c1565b90879350601f19831691866000528a6000209260005b8c8282106200035c575050841162000343575b505050811b018255620000d3565b015160001983871b60f8161c1916905538808062000335565b8385015186558b9790950194938401930162000322565b90915084600052886000208480850160051c8201928b8610620003bf575b918991869594930160051c01915b828110620003af575050620000aa565b600081558594508991016200039f565b9250819262000391565b634e487b7160e01b600052602260045260246000fd5b92607f169262000093565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620002ea57604052565b919080601f84011215620003ea5782516001600160401b038111620002ea576020906200044b601f8201601f19168301620003ef565b92818452828287010111620003ea5760005b8181106200047357508260009394955001015290565b85810183015184820184015282016200045d56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde031461066157508063095ea7b31461063757806318160ddd1461061857806323b872dd1461056b578063313ce5671461054f57806339509351146104ff57806340c10f191461046657806370a082311461042f578063715018a6146103d2578063771282f6146103b35780638da5cb5b1461038a57806395d89b411461026a578063a457c2d7146101e3578063a9059cbb146101b2578063dd62ed3e146101655763f2fde38b146100d357600080fd5b34610161576020366003190112610161576100ec61079f565b906100f56107d0565b6001600160a01b0391821692831561014b575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101ae57806003193601126101ae578060209261018361079f565b61018b6107ba565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5050346101ae57806003193601126101ae576020906101dc6101d261079f565b602435903361081f565b5160018152f35b5091346102675781600319360112610267576101fd61079f565b928260243592338152600160205281812060018060a01b03871682526020522054908282106102375750926101dc916020940390336108fd565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b509190346101ae57816003193601126101ae57805190828454600181811c90808316928315610380575b602093848410811461036d5783885290811561035157506001146102fc575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061033d57505050508301013880806102b3565b805488860183015293019284908201610327565b60ff1916878501525050151560051b84010190503880806102b3565b634e487b7160e01b895260228a52602489fd5b91607f1691610294565b5050346101ae57816003193601126101ae5760055490516001600160a01b039091168152602090f35b5050346101ae57816003193601126101ae576020906006549051908152f35b83346102675780600319360112610267576103eb6107d0565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101ae5760203660031901126101ae5760209181906001600160a01b0361045761079f565b16815280845220549051908152f35b50903461016157806003193601126101615761048061079f565b906024359161048d6107d0565b6001600160a01b03169283156104ea57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926104d087956002546107fc565b60025585855284835280852082815401905551908152a380f35b84602492519163ec442f0560e01b8352820152fd5b5050346101ae57806003193601126101ae576101dc60209261054861052261079f565b338352600186528483206001600160a01b038216845286529184902054602435906107fc565b90336108fd565b5050346101ae57816003193601126101ae576020905160128152f35b5091346102675760603660031901126102675761058661079f565b61058e6107ba565b90836044359360018060a01b0383168152600160205281812033825260205220549460001986036105c8575b6020856101dc86868661081f565b8386106105ed57509082916105e56101dc946020970333836108fd565b9091926105ba565b8451637dc7a0d960e11b81523391810191825260208201879052604082018590529081906060010390fd5b5050346101ae57816003193601126101ae576020906002549051908152f35b5050346101ae57806003193601126101ae576020906101dc61065761079f565b60243590336108fd565b849150833461016157826003193601126101615782600354600181811c9080831692831561074c575b602093848410811461036d5783885290811561073057506001146106da57505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061071c57505050508301018580806102b3565b805488860183015293019284908201610706565b60ff1916878501525050151560051b84010190508580806102b3565b91607f169161068a565b6020808252825181830181905290939260005b82811061078b57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610769565b600435906001600160a01b03821682036107b557565b600080fd5b602435906001600160a01b03821682036107b557565b6005546001600160a01b031633036107e457565b60405163118cdaa760e01b8152336004820152602490fd5b9190820180921161080957565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156108e457169283156108cb5760009083825281602052604082205490838210610899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03908116918215610977571691821561095e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fdfea26469706673582212206ce70ddacdf92416935820ca3689de8fcb4c640e2b35d020eeb5956dcd914d0464736f6c63430008130033","sourceMap":"179:387:92:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2245:13:23;179:387:92;;;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;;;;;;;;-1:-1:-1;179:387:92;;;;-1:-1:-1;;;;179:387:92;;;;;;;;;;;;;;;;;;;;2268:17:23;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;;;;;2868:6:21;179:387:92;;380:10;-1:-1:-1;;;;;;179:387:92;;;;;;;;;;380:10;-1:-1:-1;;;;;179:387:92;2916:40:21;-1:-1:-1;;2916:40:21;-1:-1:-1;254:1:92;179:387;380:10;9575:21:23;9571:91;;179:387:92;8279:22:23;179:387:92;;;;;;;;;;;-1:-1:-1;179:387:92;9139:26:23;179:387:92;8279:22:23;179:387:92;380:10;179:387;;;;;;;;;;;;;;;;;;;380:10;9139:26:23;;179:387:92;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;-1:-1:-1;179:387:92;9571:91:23;-1:-1:-1;179:387:92;9619:32:23;;;;;;;;179:387:92;9619:32:23;179:387:92;;;;-1:-1:-1;179:387:92;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;-1:-1:-1;179:387:92;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;;;-1:-1:-1;179:387:92;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;-1:-1:-1;179:387:92;;;;;;;;;;;;-1:-1:-1;179:387:92;;2268:17:23;179:387:92;;-1:-1:-1;179:387:92;;;;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;-1:-1:-1;179:387:92;;-1:-1:-1;179:387:92;;;;;;;;;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;;;-1:-1:-1;179:387:92;;;;;;;;;-1:-1:-1;179:387:92;;;;;;;;;-1:-1:-1;;179:387:92;;;-1:-1:-1;;;;;179:387:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:92;;;;;;;;;;-1:-1:-1;;179:387:92;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;;;;;;-1:-1:-1;179:387:92;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde031461066157508063095ea7b31461063757806318160ddd1461061857806323b872dd1461056b578063313ce5671461054f57806339509351146104ff57806340c10f191461046657806370a082311461042f578063715018a6146103d2578063771282f6146103b35780638da5cb5b1461038a57806395d89b411461026a578063a457c2d7146101e3578063a9059cbb146101b2578063dd62ed3e146101655763f2fde38b146100d357600080fd5b34610161576020366003190112610161576100ec61079f565b906100f56107d0565b6001600160a01b0391821692831561014b575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101ae57806003193601126101ae578060209261018361079f565b61018b6107ba565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5050346101ae57806003193601126101ae576020906101dc6101d261079f565b602435903361081f565b5160018152f35b5091346102675781600319360112610267576101fd61079f565b928260243592338152600160205281812060018060a01b03871682526020522054908282106102375750926101dc916020940390336108fd565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b509190346101ae57816003193601126101ae57805190828454600181811c90808316928315610380575b602093848410811461036d5783885290811561035157506001146102fc575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061033d57505050508301013880806102b3565b805488860183015293019284908201610327565b60ff1916878501525050151560051b84010190503880806102b3565b634e487b7160e01b895260228a52602489fd5b91607f1691610294565b5050346101ae57816003193601126101ae5760055490516001600160a01b039091168152602090f35b5050346101ae57816003193601126101ae576020906006549051908152f35b83346102675780600319360112610267576103eb6107d0565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101ae5760203660031901126101ae5760209181906001600160a01b0361045761079f565b16815280845220549051908152f35b50903461016157806003193601126101615761048061079f565b906024359161048d6107d0565b6001600160a01b03169283156104ea57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926104d087956002546107fc565b60025585855284835280852082815401905551908152a380f35b84602492519163ec442f0560e01b8352820152fd5b5050346101ae57806003193601126101ae576101dc60209261054861052261079f565b338352600186528483206001600160a01b038216845286529184902054602435906107fc565b90336108fd565b5050346101ae57816003193601126101ae576020905160128152f35b5091346102675760603660031901126102675761058661079f565b61058e6107ba565b90836044359360018060a01b0383168152600160205281812033825260205220549460001986036105c8575b6020856101dc86868661081f565b8386106105ed57509082916105e56101dc946020970333836108fd565b9091926105ba565b8451637dc7a0d960e11b81523391810191825260208201879052604082018590529081906060010390fd5b5050346101ae57816003193601126101ae576020906002549051908152f35b5050346101ae57806003193601126101ae576020906101dc61065761079f565b60243590336108fd565b849150833461016157826003193601126101615782600354600181811c9080831692831561074c575b602093848410811461036d5783885290811561073057506001146106da57505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061071c57505050508301018580806102b3565b805488860183015293019284908201610706565b60ff1916878501525050151560051b84010190508580806102b3565b91607f169161068a565b6020808252825181830181905290939260005b82811061078b57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610769565b600435906001600160a01b03821682036107b557565b600080fd5b602435906001600160a01b03821682036107b557565b6005546001600160a01b031633036107e457565b60405163118cdaa760e01b8152336004820152602490fd5b9190820180921161080957565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156108e457169283156108cb5760009083825281602052604082205490838210610899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03908116918215610977571691821561095e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fdfea26469706673582212206ce70ddacdf92416935820ca3689de8fcb4c640e2b35d020eeb5956dcd914d0464736f6c63430008130033","sourceMap":"179:387:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:92;;;;;;:::i;:::-;1364:62:21;;;:::i;:::-;-1:-1:-1;;;;;179:387:92;;;;2491:22:21;;2487:91;;179:387:92;;2868:6:21;179:387:92;;;;;;;;2868:6:21;179:387:92;;2916:40:21;;;;179:387:92;;2487:91:21;179:387:92;-1:-1:-1;;;2536:31:21;;;;;179:387:92;;;;;2536:31:21;179:387:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:6:23;179:387:92;;:::i;:::-;;;720:10:30;;4039:6:23;:::i;:::-;179:387:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;720:10:30;;179:387:92;;;;;;;;;;;;;;;;;;;;;6910:36:23;;;;6906:148;;179:387:92;;7112:36:23;179:387:92;;;;720:10:30;;7112:36:23;:::i;6906:148::-;179:387:92;;-1:-1:-1;;;6969:74:23;;-1:-1:-1;;;;;179:387:92;;;6969:74:23;;;179:387:92;;;;;;;;;;;;;;;6969:74:23;;;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:92;;;;;-1:-1:-1;;179:387:92;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;179:387:92;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:92;;;;;-1:-1:-1;;179:387:92;;;;;;;;-1:-1:-1;179:387:92;;;;;;-1:-1:-1;;;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1574:6:21;179:387:92;;;-1:-1:-1;;;;;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;223:32;179:387;;;;;;;;;;;;;;;;;;;;1364:62:21;;:::i;:::-;2868:6;179:387:92;;-1:-1:-1;;;;;;179:387:92;;;;;;;-1:-1:-1;;;;;179:387:92;2916:40:21;179:387:92;;2916:40:21;179:387:92;;;;;;;;;;-1:-1:-1;;179:387:92;;;;;;;;-1:-1:-1;;;;;179:387:92;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1364:62:21;;;:::i;:::-;-1:-1:-1;;;;;179:387:92;;9575:21:23;;9571:91;;179:387:92;;;9139:26:23;179:387:92;8279:22:23;179:387:92;;8279:22:23;179:387:92;8279:22:23;:::i;:::-;;179:387:92;;;;;;;;;;;;;;;;;;;;9139:26:23;179:387:92;;9571:91:23;179:387:92;;;;9619:32:23;;;;;;;;179:387:92;9619:32:23;179:387:92;;;;;;;;;;;;;;6139:38:23;179:387:92;;6139:38:23;179:387:92;;:::i;:::-;720:10:30;179:387:92;;;;;;;;-1:-1:-1;;;;;179:387:92;;;;;;;;;;;;;;6139:38:23;:::i;:::-;720:10:30;;6139:38:23;:::i;179:387:92:-;;;;;;;;;;;;;;;;;3358:2:23;179:387:92;;;;;;;;;;;-1:-1:-1;;179:387:92;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;720:10:30;179:387:92;;;;;;11506:17:23;;;11486:37;;11482:306;;179:387:92;;5542:6:23;;;;;;:::i;11482:306::-;11543:25;;;11539:132;;179:387:92;;;;11737:25:23;5542:6;179:387:92;;;;720:10:30;11737:25:23;;:::i;:::-;11482:306;;;;;11539:132;179:387:92;;-1:-1:-1;;;11595:61:23;;720:10:30;11595:61:23;;;179:387:92;;;;;;;;;;;;;;;;;;;;6969:74:23;;;179:387:92;;;;;;;;;;;;;;;;3505:12:23;179:387:92;;;;;;;;;;;;;;;;;;;;;;;4733:6:23;179:387:92;;:::i;:::-;;;720:10:30;;4733:6:23;:::i;179:387:92:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:92;;;;;-1:-1:-1;;179:387:92;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:92;;;;;-1:-1:-1;;179:387:92;;;;;;;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:92;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;179:387:92;;;;;;:::o;1660:162:21:-;1574:6;179:387:92;-1:-1:-1;;;;;179:387:92;720:10:30;1719:23:21;1715:101;;1660:162::o;1715:101::-;179:387:92;;-1:-1:-1;;;1765:40:21;;720:10:30;1765:40:21;;;179:387:92;;;1765:40:21;179:387:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7553:302:23;;-1:-1:-1;;;;;179:387:92;;;;7637:18:23;;7633:86;;179:387:92;7732:16:23;;;7728:86;;8241:443;179:387:92;;;;;;;;;;;8387:20:23;;;;8383:117;;179:387:92;;;;;9139:26:23;179:387:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:26:23;7553:302::o;8383:117::-;179:387:92;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;179:387:92;;;;8434:51:23;;;179:387:92;;;;;;;;;;;;;;;;6969:74:23;7728:86;179:387:92;;-1:-1:-1;;;7771:32:23;;7653:1;7771:32;;;179:387:92;;;7771:32:23;7633:86;179:387:92;;-1:-1:-1;;;7678:30:23;;7653:1;7678:30;;;179:387:92;;;7678:30:23;10659:380;-1:-1:-1;;;;;179:387:92;;;;10756:19:23;;10752:89;;179:387:92;10854:21:23;;;10850:90;;179:387:92;11000:32:23;179:387:92;;10773:1:23;179:387:92;;;;;10773:1:23;179:387:92;;10773:1:23;179:387:92;;;;;10773:1:23;179:387:92;;;;;;;11000:32:23;10659:380::o;10850:90::-;179:387:92;;-1:-1:-1;;;10898:31:23;;10773:1;10898:31;;;179:387:92;;;10898:31:23;10752:89;179:387:92;;-1:-1:-1;;;10798:32:23;;10773:1;10798:32;;;179:387:92;;;10798:32:23","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","currentSupply()":"771282f6","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"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\":\"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\":[{\"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\":[{\"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\":\"amount\",\"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\":[],\"name\":\"currentSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":\"amount\",\"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\":\"amount\",\"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\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"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.\"}}],\"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.\"},\"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\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` 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}.\"},\"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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"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 `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"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\":{\"test/helpers/ERC20Helper.sol\":\"DummyERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191\",\"dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]},\"test/helpers/ERC20Helper.sol\":{\"keccak256\":\"0x6c2b213725c12dee6cf8cf1dea77ecd8b79e0dd201a36414eb6fe9b80dbc2939\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://489b39c9c75b127811b866146169e5f198bd4a2ee0ab19c7d49cc509bcae6625\",\"dweb:/ipfs/QmZE6wGtrAfxwgrQqHYvcNicPF5FKux9F1aVooqP6DH1JS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"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":"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":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"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":"amount","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":[],"stateMutability":"view","type":"function","name":"currentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"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":"amount","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":"amount","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":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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}."},"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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"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 `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/ERC20Helper.sol":"DummyERC20"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183","urls":["bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191","dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"},"test/helpers/ERC20Helper.sol":{"keccak256":"0x6c2b213725c12dee6cf8cf1dea77ecd8b79e0dd201a36414eb6fe9b80dbc2939","urls":["bzz-raw://489b39c9c75b127811b866146169e5f198bd4a2ee0ab19c7d49cc509bcae6625","dweb:/ipfs/QmZE6wGtrAfxwgrQqHYvcNicPF5FKux9F1aVooqP6DH1JS"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/ERC20Helper.sol","id":55728,"exportedSymbols":{"Context":[32860],"DummyERC20":[55727],"ERC20":[31921],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32068],"IERC721Errors":[31304],"Ownable":[31214]},"nodeType":"SourceUnit","src":"46:521:92","nodes":[{"id":55678,"nodeType":"PragmaDirective","src":"46:23:92","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55679,"nodeType":"ImportDirective","src":"71:54:92","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":55728,"sourceUnit":31922,"symbolAliases":[],"unitAlias":""},{"id":55680,"nodeType":"ImportDirective","src":"126:51:92","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"openzeppelin-contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":55728,"sourceUnit":31215,"symbolAliases":[],"unitAlias":""},{"id":55727,"nodeType":"ContractDefinition","src":"179:387:92","nodes":[{"id":55687,"nodeType":"VariableDeclaration","src":"223:32:92","nodes":[],"constant":false,"functionSelector":"771282f6","mutability":"mutable","name":"currentSupply","nameLocation":"238:13:92","scope":55727,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55685,"name":"uint256","nodeType":"ElementaryTypeName","src":"223:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":55686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"254:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":55711,"nodeType":"FunctionDefinition","src":"262:199:92","nodes":[],"body":{"id":55710,"nodeType":"Block","src":"414:47:92","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":55705,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31134,"src":"430:5:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":55706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"430:7:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55707,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55693,"src":"439:14:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55704,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"424:5:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"424:30:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55709,"nodeType":"ExpressionStatement","src":"424:30:92"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":55696,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"380:3:92","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"384:6:92","memberName":"sender","nodeType":"MemberAccess","src":"380:10:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":55698,"kind":"baseConstructorSpecifier","modifierName":{"id":55695,"name":"Ownable","nameLocations":["372:7:92"],"nodeType":"IdentifierPath","referencedDeclaration":31214,"src":"372:7:92"},"nodeType":"ModifierInvocation","src":"372:19:92"},{"arguments":[{"id":55700,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55689,"src":"398:5:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":55701,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55691,"src":"405:7:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":55702,"kind":"baseConstructorSpecifier","modifierName":{"id":55699,"name":"ERC20","nameLocations":["392:5:92"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"392:5:92"},"nodeType":"ModifierInvocation","src":"392:21:92"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55689,"mutability":"mutable","name":"_name","nameLocation":"297:5:92","nodeType":"VariableDeclaration","scope":55711,"src":"283:19:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55688,"name":"string","nodeType":"ElementaryTypeName","src":"283:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55691,"mutability":"mutable","name":"_symbol","nameLocation":"326:7:92","nodeType":"VariableDeclaration","scope":55711,"src":"312:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55690,"name":"string","nodeType":"ElementaryTypeName","src":"312:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55693,"mutability":"mutable","name":"_initialSupply","nameLocation":"351:14:92","nodeType":"VariableDeclaration","scope":55711,"src":"343:22:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55692,"name":"uint256","nodeType":"ElementaryTypeName","src":"343:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"273:98:92"},"returnParameters":{"id":55703,"nodeType":"ParameterList","parameters":[],"src":"414:0:92"},"scope":55727,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55726,"nodeType":"FunctionDefinition","src":"467:97:92","nodes":[],"body":{"id":55725,"nodeType":"Block","src":"528:36:92","nodes":[],"statements":[{"expression":{"arguments":[{"id":55721,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55713,"src":"544:3:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55722,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55715,"src":"549:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55720,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"538:5:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"538:19:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55724,"nodeType":"ExpressionStatement","src":"538:19:92"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":55718,"kind":"modifierInvocation","modifierName":{"id":55717,"name":"onlyOwner","nameLocations":["518:9:92"],"nodeType":"IdentifierPath","referencedDeclaration":31125,"src":"518:9:92"},"nodeType":"ModifierInvocation","src":"518:9:92"}],"name":"mint","nameLocation":"476:4:92","parameters":{"id":55716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55713,"mutability":"mutable","name":"_to","nameLocation":"489:3:92","nodeType":"VariableDeclaration","scope":55726,"src":"481:11:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55712,"name":"address","nodeType":"ElementaryTypeName","src":"481:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55715,"mutability":"mutable","name":"_amount","nameLocation":"502:7:92","nodeType":"VariableDeclaration","scope":55726,"src":"494:15:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55714,"name":"uint256","nodeType":"ElementaryTypeName","src":"494:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"480:30:92"},"returnParameters":{"id":55719,"nodeType":"ParameterList","parameters":[],"src":"528:0:92"},"scope":55727,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":55681,"name":"ERC20","nameLocations":["202:5:92"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"202:5:92"},"id":55682,"nodeType":"InheritanceSpecifier","src":"202:5:92"},{"baseName":{"id":55683,"name":"Ownable","nameLocations":["209:7:92"],"nodeType":"IdentifierPath","referencedDeclaration":31214,"src":"209:7:92"},"id":55684,"nodeType":"InheritanceSpecifier","src":"209:7:92"}],"canonicalName":"DummyERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55727,31214,31921,31256,32068,31999,32860],"name":"DummyERC20","nameLocation":"188:10:92","scope":55728,"usedErrors":[31095,31100,31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT OR Apache-2.0"},"id":92} \ No newline at end of file diff --git a/.out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json b/.out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json index 3eefbe446..4c7374001 100644 --- a/.out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json +++ b/.out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"initialSupply","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"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":"amount","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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"amount","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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"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":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"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"}]}],"bytecode":{"object":"0x60406080815234620003b55762000cdc803803806200001e81620003ba565b9283398101608082820312620003b55781516001600160401b039290838111620003b5578262000050918301620003e0565b6020928383015190858211620003b5576200006d918401620003e0565b906060868401519301519460018060a01b038616809603620003b5578151818111620002b5576003908154906001948583811c93168015620003aa575b8984101462000394578190601f938481116200033e575b508990848311600114620002d757600092620002cb575b505060001982851b1c191690851b1782555b8451928311620002b55760049485548581811c91168015620002aa575b8982101462000295578281116200024a575b5087918411600114620001df57938394918492600095620001d3575b50501b92600019911b1c19161781555b8315620001bc5760025490828201809211620001a7575060025560008381528083528481208054830190558451918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a3516108899081620004538239f35b601190634e487b7160e01b6000525260246000fd5b602490600086519163ec442f0560e01b8352820152fd5b01519350388062000135565b9190601f198416928660005284896000209460005b8b8983831062000232575050501062000217575b50505050811b01815562000145565b01519060f884600019921b161c191690553880808062000208565b868601518955909701969485019488935001620001f4565b86600052886000208380870160051c8201928b88106200028b575b0160051c019086905b8281106200027e57505062000119565b600081550186906200026e565b9250819262000265565b602287634e487b7160e01b6000525260246000fd5b90607f169062000107565b634e487b7160e01b600052604160045260246000fd5b015190503880620000d8565b90879350601f19831691866000528b6000209260005b8d8282106200032757505084116200030e575b505050811b018255620000ea565b015160001983871b60f8161c1916905538808062000300565b8385015186558b97909501949384019301620002ed565b90915084600052896000208480850160051c8201928c86106200038a575b918991869594930160051c01915b8281106200037a575050620000c1565b600081558594508991016200036a565b925081926200035c565b634e487b7160e01b600052602260045260246000fd5b92607f1692620000aa565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620002b557604052565b919080601f84011215620003b55782516001600160401b038111620002b55760209062000416601f8201601f19168301620003ba565b92818452828287010111620003b55760005b8181106200043e57508260009394955001015290565b85810183015184820184015282016200042856fe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461046657508163095ea7b31461043c57816318160ddd1461041d57816323b872dd146103e0578163313ce567146103c4578163395093511461035d57816342966c681461033f57816370a082311461030857816379cc6790146102d557816395d89b41146101b6578163a457c2d71461012f57508063a9059cbb146100ff5763dd62ed3e146100b457600080fd5b346100fb57806003193601126100fb57806020926100d061058b565b6100d86105a6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100fb57806003193601126100fb5760209061012861011e61058b565b60243590336105bc565b5160018152f35b8284346101b357816003193601126101b35761014961058b565b928260243592338152600160205281812060018060a01b03871682526020522054908282106101835750926101289160209403903361069a565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b8383346100fb57816003193601126100fb57805190828454600181811c908083169283156102cb575b60209384841081146102b85783885290811561029c5750600114610247575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061028857505050508301018580806101fe565b805488860183015293019284908201610272565b60ff1916878501525050151560051b84010190508580806101fe565b634e487b7160e01b895260228a52602489fd5b91607f16916101df565b5050346100fb573660031901126101b3576103056102f161058b565b6024359061030082338361072d565b6107b4565b80f35b5050346100fb5760203660031901126100fb5760209181906001600160a01b0361033061058b565b16815280845220549051908152f35b8390346100fb5760203660031901126100fb576103059035336107b4565b8284346101b357816003193601126101b35761037761058b565b338252600160209081528383206001600160a01b03831684529052828220546024358101929083106103b15760208461012885853361069a565b634e487b7160e01b815260118552602490fd5b5050346100fb57816003193601126100fb576020905160128152f35b5050346100fb5760603660031901126100fb5760209061012861040161058b565b6104096105a6565b6044359161041883338361072d565b6105bc565b5050346100fb57816003193601126100fb576020906002549051908152f35b5050346100fb57806003193601126100fb5760209061012861045c61058b565b602435903361069a565b8490843461053e578260031936011261053e5782600354600181811c90808316928315610534575b60209384841081146102b85783885290811561029c57506001146104de57505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061052057505050508301018580806101fe565b80548886018301529301928490820161050a565b91607f169161048e565b8280fd5b6020808252825181830181905290939260005b82811061057757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610555565b600435906001600160a01b03821682036105a157565b600080fd5b602435906001600160a01b03821682036105a157565b916001600160a01b0380841692831561068157169283156106685760009083825281602052604082205490838210610636575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b0390811691821561071457169182156106fb5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b9092919260018060a01b0380831660005260016020526040600020908216600052602052604060002054936000198503610769575b5050509050565b8085106107855761077c9394039161069a565b80388080610762565b604051637dc7a0d960e11b81526001600160a01b03929092166004830152602482018590526044820152606490fd5b906001600160a01b03821690811561068157600092828452836020526040842054908282106108215750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101829052606490fdfea264697066735822122034ae073c7b3a769a992f80a8f9cc86f92cbfb905306a15b285a5b361fe0dcd8e64736f6c63430008130033","sourceMap":"669:349:90:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:90;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:13:23;669:349:90;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;-1:-1:-1;669:349:90;;;;-1:-1:-1;;;;669:349:90;;;;;;;;;;;;;;;;;;;;2268:17:23;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;9575:21:23;;9571:91;;8279:22;669:349:90;;;;;;;;;;-1:-1:-1;8279:22:23;669:349:90;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9139:26:23;;;669:349:90;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;-1:-1:-1;669:349:90;9571:91:23;669:349:90;;-1:-1:-1;669:349:90;;9619:32:23;;;;;;;;669:349:90;9619:32:23;669:349:90;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;-1:-1:-1;669:349:90;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;-1:-1:-1;669:349:90;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;-1:-1:-1;669:349:90;;;;;;;;;;;;-1:-1:-1;669:349:90;;2268:17:23;669:349:90;;-1:-1:-1;669:349:90;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;-1:-1:-1;669:349:90;;-1:-1:-1;669:349:90;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;-1:-1:-1;669:349:90;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;-1:-1:-1;;669:349:90;;;-1:-1:-1;;;;;669:349:90;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:90;;;;;;;;;;-1:-1:-1;;669:349:90;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461046657508163095ea7b31461043c57816318160ddd1461041d57816323b872dd146103e0578163313ce567146103c4578163395093511461035d57816342966c681461033f57816370a082311461030857816379cc6790146102d557816395d89b41146101b6578163a457c2d71461012f57508063a9059cbb146100ff5763dd62ed3e146100b457600080fd5b346100fb57806003193601126100fb57806020926100d061058b565b6100d86105a6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100fb57806003193601126100fb5760209061012861011e61058b565b60243590336105bc565b5160018152f35b8284346101b357816003193601126101b35761014961058b565b928260243592338152600160205281812060018060a01b03871682526020522054908282106101835750926101289160209403903361069a565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b8383346100fb57816003193601126100fb57805190828454600181811c908083169283156102cb575b60209384841081146102b85783885290811561029c5750600114610247575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061028857505050508301018580806101fe565b805488860183015293019284908201610272565b60ff1916878501525050151560051b84010190508580806101fe565b634e487b7160e01b895260228a52602489fd5b91607f16916101df565b5050346100fb573660031901126101b3576103056102f161058b565b6024359061030082338361072d565b6107b4565b80f35b5050346100fb5760203660031901126100fb5760209181906001600160a01b0361033061058b565b16815280845220549051908152f35b8390346100fb5760203660031901126100fb576103059035336107b4565b8284346101b357816003193601126101b35761037761058b565b338252600160209081528383206001600160a01b03831684529052828220546024358101929083106103b15760208461012885853361069a565b634e487b7160e01b815260118552602490fd5b5050346100fb57816003193601126100fb576020905160128152f35b5050346100fb5760603660031901126100fb5760209061012861040161058b565b6104096105a6565b6044359161041883338361072d565b6105bc565b5050346100fb57816003193601126100fb576020906002549051908152f35b5050346100fb57806003193601126100fb5760209061012861045c61058b565b602435903361069a565b8490843461053e578260031936011261053e5782600354600181811c90808316928315610534575b60209384841081146102b85783885290811561029c57506001146104de57505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061052057505050508301018580806101fe565b80548886018301529301928490820161050a565b91607f169161048e565b8280fd5b6020808252825181830181905290939260005b82811061057757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610555565b600435906001600160a01b03821682036105a157565b600080fd5b602435906001600160a01b03821682036105a157565b916001600160a01b0380841692831561068157169283156106685760009083825281602052604082205490838210610636575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b0390811691821561071457169182156106fb5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b9092919260018060a01b0380831660005260016020526040600020908216600052602052604060002054936000198503610769575b5050509050565b8085106107855761077c9394039161069a565b80388080610762565b604051637dc7a0d960e11b81526001600160a01b03929092166004830152602482018590526044820152606490fd5b906001600160a01b03821690811561068157600092828452836020526040842054908282106108215750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101829052606490fdfea264697066735822122034ae073c7b3a769a992f80a8f9cc86f92cbfb905306a15b285a5b361fe0dcd8e64736f6c63430008130033","sourceMap":"669:349:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:6:23;669:349:90;;:::i;:::-;;;720:10:30;;4039:6:23;:::i;:::-;669:349:90;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;720:10:30;;669:349:90;;;;;;;;;;;;;;;;;;;;;6910:36:23;;;;6906:148;;669:349:90;;7112:36:23;669:349:90;;;;720:10:30;;7112:36:23;:::i;6906:148::-;669:349:90;;-1:-1:-1;;;6969:74:23;;-1:-1:-1;;;;;669:349:90;;;6969:74:23;;;669:349:90;;;;;;;;;;;;;;;6969:74:23;;;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;669:349:90;;;;;-1:-1:-1;;669:349:90;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;669:349:90;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:90;;;;;-1:-1:-1;;669:349:90;;;;;;;;-1:-1:-1;669:349:90;;;;;;-1:-1:-1;;;669:349:90;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:90;;;;1121:6:25;669:349:90;;:::i;:::-;;;720:10:30;1089:6:25;720:10:30;;1089:6:25;;:::i;:::-;1121;:::i;:::-;669:349:90;;;;;;;;;;-1:-1:-1;;669:349:90;;;;;;;;-1:-1:-1;;;;;669:349:90;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:90;;;;654:6:25;669:349:90;;720:10:30;654:6:25;:::i;669:349:90:-;;;;;;;;;;;;;;;;:::i;:::-;720:10:30;669:349:90;;;;;;;;;;-1:-1:-1;;;;;669:349:90;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;720:10:30;6139:38:23;720:10:30;;;6139:38:23;:::i;669:349:90:-;-1:-1:-1;;;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;3358:2:23;669:349:90;;;;;;;;;;;-1:-1:-1;;669:349:90;;;;;;5542:6:23;669:349:90;;:::i;:::-;;;:::i;:::-;;;720:10:30;5505:6:23;720:10:30;;5505:6:23;;:::i;:::-;5542;:::i;669:349:90:-;;;;;;;;;;;;;;;;3505:12:23;669:349:90;;;;;;;;;;;;;;;;;;;;;;;4733:6:23;669:349:90;;:::i;:::-;;;720:10:30;;4733:6:23;:::i;669:349:90:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;669:349:90;;;;;-1:-1:-1;;669:349:90;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:90;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;669:349:90;;;;;;:::o;7553:302:23:-;;-1:-1:-1;;;;;669:349:90;;;;7637:18:23;;7633:86;;669:349:90;7732:16:23;;;7728:86;;8241:443;669:349:90;;;;;;;;;;;8387:20:23;;;;8383:117;;669:349:90;;;;;9139:26:23;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:26:23;7553:302::o;8383:117::-;669:349:90;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;669:349:90;;;;8434:51:23;;;669:349:90;;;;;;;;;;;;;;;;6969:74:23;7728:86;669:349:90;;-1:-1:-1;;;7771:32:23;;7653:1;7771:32;;;669:349:90;;;7771:32:23;7633:86;669:349:90;;-1:-1:-1;;;7678:30:23;;7653:1;7678:30;;;669:349:90;;;7678:30:23;10659:380;-1:-1:-1;;;;;669:349:90;;;;10756:19:23;;10752:89;;669:349:90;10854:21:23;;;10850:90;;669:349:90;11000:32:23;669:349:90;;10773:1:23;669:349:90;;;;;10773:1:23;669:349:90;;10773:1:23;669:349:90;;;;;10773:1:23;669:349:90;;;;;;;11000:32:23;10659:380::o;10850:90::-;669:349:90;;-1:-1:-1;;;10898:31:23;;10773:1;10898:31;;;669:349:90;;;10898:31:23;10752:89;669:349:90;;-1:-1:-1;;;10798:32:23;;10773:1;10798:32;;;669:349:90;;;10798:32:23;11320:474;;;;;669:349:90;;;;;;;;-1:-1:-1;669:349:90;;;;;-1:-1:-1;669:349:90;;;;-1:-1:-1;669:349:90;;;;-1:-1:-1;669:349:90;;11506:17:23;;;11486:37;;11482:306;;11320:474;;;;;;:::o;11482:306::-;11543:25;;;11539:132;;11737:25;669:349:90;;;11737:25:23;;:::i;:::-;11482:306;;;;;;11539:132;669:349:90;;-1:-1:-1;;;11595:61:23;;-1:-1:-1;;;;;669:349:90;;;;11595:61:23;;;669:349:90;;;;;;;;;;;;;6969:74:23;10028:208;;-1:-1:-1;;;;;669:349:90;;;10099:21:23;;10095:89;;8241:443;669:349:90;;;;;;;;;;;8387:20:23;;;;8383:117;;669:349:90;;9139:26:23;669:349:90;;;;;;;;;;;;;;;8863:22:23;669:349:90;;8863:22:23;669:349:90;;;;;;9139:26:23;10028:208::o;8383:117::-;669:349:90;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;669:349:90;;;;8434:51:23;;;669:349:90;;;;;;;;;;;;;;;;6969:74:23","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"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\"},{\"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\":[{\"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\":[{\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"{ERC20} token, including: - Preminted initial supply - Ability for holders to burn (destroy) their tokens - No access control mechanism (for minting/pausing) and hence no governance This contract uses {ERC20Burnable} to include burn capabilities - head to its documentation for details. _Available since v3.4._ _Deprecated in favor of https://wizard.openzeppelin.com/[Contracts Wizard]._\",\"errors\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"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.\"}}]},\"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.\"},\"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\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` 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 `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` 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 `amount`.\"},\"constructor\":{\"details\":\"Mints `initialSupply` amount of token and transfers them to `owner`. See {ERC20-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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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 `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/ERC20PresetFixedSupply.sol\":\"ERC20PresetFixedSupply\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0xd5015521a09267ec4fe122675f1d1f9dba884fb686937be87caed9a7584e30d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b445cff4389e685959b476105f3f76a3bb18478357ed13b59796e31f49d450bb\",\"dweb:/ipfs/QmbqJb753rF2KodJSScrwbe4ZmhWLXgAcDHHzQ2nMwLKDR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]},\"test/helpers/ERC20PresetFixedSupply.sol\":{\"keccak256\":\"0x5f9164c6e005bd12dd595d73d8b6e75ee827e36a6ffd23a073e937e214c67700\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b318734161ce3bbede1a73ea760e2ad3ee4ee8478326e82f91af777ec401b447\",\"dweb:/ipfs/QmTKLqJeLDEkZ9NNGNckks4haM6jCLzRMwsiXL36ufrgrx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"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":"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":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"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":"amount","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":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"amount","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":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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 `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` 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 `amount`."},"constructor":{"details":"Mints `initialSupply` amount of token and transfers them to `owner`. See {ERC20-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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"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 `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/ERC20PresetFixedSupply.sol":"ERC20PresetFixedSupply"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"keccak256":"0xd5015521a09267ec4fe122675f1d1f9dba884fb686937be87caed9a7584e30d4","urls":["bzz-raw://b445cff4389e685959b476105f3f76a3bb18478357ed13b59796e31f49d450bb","dweb:/ipfs/QmbqJb753rF2KodJSScrwbe4ZmhWLXgAcDHHzQ2nMwLKDR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"},"test/helpers/ERC20PresetFixedSupply.sol":{"keccak256":"0x5f9164c6e005bd12dd595d73d8b6e75ee827e36a6ffd23a073e937e214c67700","urls":["bzz-raw://b318734161ce3bbede1a73ea760e2ad3ee4ee8478326e82f91af777ec401b447","dweb:/ipfs/QmTKLqJeLDEkZ9NNGNckks4haM6jCLzRMwsiXL36ufrgrx"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/helpers/ERC20PresetFixedSupply.sol","id":55456,"exportedSymbols":{"Context":[32860],"ERC20":[31921],"ERC20Burnable":[32043],"ERC20PresetFixedSupply":[55455],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32068],"IERC721Errors":[31304]},"nodeType":"SourceUnit","src":"129:890:90","nodes":[{"id":55428,"nodeType":"PragmaDirective","src":"129:23:90","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55429,"nodeType":"ImportDirective","src":"154:73:90","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol","file":"openzeppelin-contracts/token/ERC20/extensions/ERC20Burnable.sol","nameLocation":"-1:-1:-1","scope":55456,"sourceUnit":32044,"symbolAliases":[],"unitAlias":""},{"id":55455,"nodeType":"ContractDefinition","src":"669:349:90","nodes":[{"id":55454,"nodeType":"FunctionDefinition","src":"860:156:90","nodes":[],"body":{"id":55453,"nodeType":"Block","src":"972:44:90","nodes":[],"statements":[{"expression":{"arguments":[{"id":55449,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55441,"src":"988:5:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55450,"name":"initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55439,"src":"995:13:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55448,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"982:5:90","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"982:27:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55452,"nodeType":"ExpressionStatement","src":"982:27:90"}]},"documentation":{"id":55433,"nodeType":"StructuredDocumentation","src":"724:131:90","text":" @dev Mints `initialSupply` amount of token and transfers them to `owner`.\n See {ERC20-constructor}."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":55444,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55435,"src":"958:4:90","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":55445,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55437,"src":"964:6:90","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":55446,"kind":"baseConstructorSpecifier","modifierName":{"id":55443,"name":"ERC20","nameLocations":["952:5:90"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"952:5:90"},"nodeType":"ModifierInvocation","src":"952:19:90"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55435,"mutability":"mutable","name":"name","nameLocation":"886:4:90","nodeType":"VariableDeclaration","scope":55454,"src":"872:18:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55434,"name":"string","nodeType":"ElementaryTypeName","src":"872:6:90","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55437,"mutability":"mutable","name":"symbol","nameLocation":"906:6:90","nodeType":"VariableDeclaration","scope":55454,"src":"892:20:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55436,"name":"string","nodeType":"ElementaryTypeName","src":"892:6:90","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55439,"mutability":"mutable","name":"initialSupply","nameLocation":"922:13:90","nodeType":"VariableDeclaration","scope":55454,"src":"914:21:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55438,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55441,"mutability":"mutable","name":"owner","nameLocation":"945:5:90","nodeType":"VariableDeclaration","scope":55454,"src":"937:13:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55440,"name":"address","nodeType":"ElementaryTypeName","src":"937:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"871:80:90"},"returnParameters":{"id":55447,"nodeType":"ParameterList","parameters":[],"src":"972:0:90"},"scope":55455,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":55431,"name":"ERC20Burnable","nameLocations":["704:13:90"],"nodeType":"IdentifierPath","referencedDeclaration":32043,"src":"704:13:90"},"id":55432,"nodeType":"InheritanceSpecifier","src":"704:13:90"}],"canonicalName":"ERC20PresetFixedSupply","contractDependencies":[],"contractKind":"contract","documentation":{"id":55430,"nodeType":"StructuredDocumentation","src":"229:439:90","text":" @dev {ERC20} token, including:\n - Preminted initial supply\n - Ability for holders to burn (destroy) their tokens\n - No access control mechanism (for minting/pausing) and hence no governance\n This contract uses {ERC20Burnable} to include burn capabilities - head to\n its documentation for details.\n _Available since v3.4._\n _Deprecated in favor of https://wizard.openzeppelin.com/[Contracts Wizard]._"},"fullyImplemented":true,"linearizedBaseContracts":[55455,32043,31921,31256,32068,31999,32860],"name":"ERC20PresetFixedSupply","nameLocation":"678:22:90","scope":55456,"usedErrors":[31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT"},"id":90} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"initialSupply","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"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":"amount","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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"amount","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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"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":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"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"}]}],"bytecode":{"object":"0x60406080815234620003b55762000cdc803803806200001e81620003ba565b9283398101608082820312620003b55781516001600160401b039290838111620003b5578262000050918301620003e0565b6020928383015190858211620003b5576200006d918401620003e0565b906060868401519301519460018060a01b038616809603620003b5578151818111620002b5576003908154906001948583811c93168015620003aa575b8984101462000394578190601f938481116200033e575b508990848311600114620002d757600092620002cb575b505060001982851b1c191690851b1782555b8451928311620002b55760049485548581811c91168015620002aa575b8982101462000295578281116200024a575b5087918411600114620001df57938394918492600095620001d3575b50501b92600019911b1c19161781555b8315620001bc5760025490828201809211620001a7575060025560008381528083528481208054830190558451918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a3516108899081620004538239f35b601190634e487b7160e01b6000525260246000fd5b602490600086519163ec442f0560e01b8352820152fd5b01519350388062000135565b9190601f198416928660005284896000209460005b8b8983831062000232575050501062000217575b50505050811b01815562000145565b01519060f884600019921b161c191690553880808062000208565b868601518955909701969485019488935001620001f4565b86600052886000208380870160051c8201928b88106200028b575b0160051c019086905b8281106200027e57505062000119565b600081550186906200026e565b9250819262000265565b602287634e487b7160e01b6000525260246000fd5b90607f169062000107565b634e487b7160e01b600052604160045260246000fd5b015190503880620000d8565b90879350601f19831691866000528b6000209260005b8d8282106200032757505084116200030e575b505050811b018255620000ea565b015160001983871b60f8161c1916905538808062000300565b8385015186558b97909501949384019301620002ed565b90915084600052896000208480850160051c8201928c86106200038a575b918991869594930160051c01915b8281106200037a575050620000c1565b600081558594508991016200036a565b925081926200035c565b634e487b7160e01b600052602260045260246000fd5b92607f1692620000aa565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620002b557604052565b919080601f84011215620003b55782516001600160401b038111620002b55760209062000416601f8201601f19168301620003ba565b92818452828287010111620003b55760005b8181106200043e57508260009394955001015290565b85810183015184820184015282016200042856fe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461046657508163095ea7b31461043c57816318160ddd1461041d57816323b872dd146103e0578163313ce567146103c4578163395093511461035d57816342966c681461033f57816370a082311461030857816379cc6790146102d557816395d89b41146101b6578163a457c2d71461012f57508063a9059cbb146100ff5763dd62ed3e146100b457600080fd5b346100fb57806003193601126100fb57806020926100d061058b565b6100d86105a6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100fb57806003193601126100fb5760209061012861011e61058b565b60243590336105bc565b5160018152f35b8284346101b357816003193601126101b35761014961058b565b928260243592338152600160205281812060018060a01b03871682526020522054908282106101835750926101289160209403903361069a565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b8383346100fb57816003193601126100fb57805190828454600181811c908083169283156102cb575b60209384841081146102b85783885290811561029c5750600114610247575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061028857505050508301018580806101fe565b805488860183015293019284908201610272565b60ff1916878501525050151560051b84010190508580806101fe565b634e487b7160e01b895260228a52602489fd5b91607f16916101df565b5050346100fb573660031901126101b3576103056102f161058b565b6024359061030082338361072d565b6107b4565b80f35b5050346100fb5760203660031901126100fb5760209181906001600160a01b0361033061058b565b16815280845220549051908152f35b8390346100fb5760203660031901126100fb576103059035336107b4565b8284346101b357816003193601126101b35761037761058b565b338252600160209081528383206001600160a01b03831684529052828220546024358101929083106103b15760208461012885853361069a565b634e487b7160e01b815260118552602490fd5b5050346100fb57816003193601126100fb576020905160128152f35b5050346100fb5760603660031901126100fb5760209061012861040161058b565b6104096105a6565b6044359161041883338361072d565b6105bc565b5050346100fb57816003193601126100fb576020906002549051908152f35b5050346100fb57806003193601126100fb5760209061012861045c61058b565b602435903361069a565b8490843461053e578260031936011261053e5782600354600181811c90808316928315610534575b60209384841081146102b85783885290811561029c57506001146104de57505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061052057505050508301018580806101fe565b80548886018301529301928490820161050a565b91607f169161048e565b8280fd5b6020808252825181830181905290939260005b82811061057757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610555565b600435906001600160a01b03821682036105a157565b600080fd5b602435906001600160a01b03821682036105a157565b916001600160a01b0380841692831561068157169283156106685760009083825281602052604082205490838210610636575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b0390811691821561071457169182156106fb5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b9092919260018060a01b0380831660005260016020526040600020908216600052602052604060002054936000198503610769575b5050509050565b8085106107855761077c9394039161069a565b80388080610762565b604051637dc7a0d960e11b81526001600160a01b03929092166004830152602482018590526044820152606490fd5b906001600160a01b03821690811561068157600092828452836020526040842054908282106108215750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101829052606490fdfea264697066735822122034ae073c7b3a769a992f80a8f9cc86f92cbfb905306a15b285a5b361fe0dcd8e64736f6c63430008130033","sourceMap":"669:349:93:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:13:23;669:349:93;;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;;;;;;;;-1:-1:-1;669:349:93;;;;-1:-1:-1;;;;669:349:93;;;;;;;;;;;;;;;;;;;;2268:17:23;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;;;;;9575:21:23;;9571:91;;8279:22;669:349:93;;;;;;;;;;-1:-1:-1;8279:22:23;669:349:93;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9139:26:23;;;669:349:93;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;-1:-1:-1;669:349:93;9571:91:23;669:349:93;;-1:-1:-1;669:349:93;;9619:32:23;;;;;;;;669:349:93;9619:32:23;669:349:93;;;;-1:-1:-1;669:349:93;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;-1:-1:-1;669:349:93;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;;;-1:-1:-1;669:349:93;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;-1:-1:-1;669:349:93;;;;;;;;;;;;-1:-1:-1;669:349:93;;2268:17:23;669:349:93;;-1:-1:-1;669:349:93;;;;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;-1:-1:-1;669:349:93;;-1:-1:-1;669:349:93;;;;;;;;;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;;;-1:-1:-1;669:349:93;;;;;;;;;-1:-1:-1;669:349:93;;;;;;;;;-1:-1:-1;;669:349:93;;;-1:-1:-1;;;;;669:349:93;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:93;;;;;;;;;;-1:-1:-1;;669:349:93;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;;;;;;-1:-1:-1;669:349:93;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461046657508163095ea7b31461043c57816318160ddd1461041d57816323b872dd146103e0578163313ce567146103c4578163395093511461035d57816342966c681461033f57816370a082311461030857816379cc6790146102d557816395d89b41146101b6578163a457c2d71461012f57508063a9059cbb146100ff5763dd62ed3e146100b457600080fd5b346100fb57806003193601126100fb57806020926100d061058b565b6100d86105a6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100fb57806003193601126100fb5760209061012861011e61058b565b60243590336105bc565b5160018152f35b8284346101b357816003193601126101b35761014961058b565b928260243592338152600160205281812060018060a01b03871682526020522054908282106101835750926101289160209403903361069a565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b8383346100fb57816003193601126100fb57805190828454600181811c908083169283156102cb575b60209384841081146102b85783885290811561029c5750600114610247575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061028857505050508301018580806101fe565b805488860183015293019284908201610272565b60ff1916878501525050151560051b84010190508580806101fe565b634e487b7160e01b895260228a52602489fd5b91607f16916101df565b5050346100fb573660031901126101b3576103056102f161058b565b6024359061030082338361072d565b6107b4565b80f35b5050346100fb5760203660031901126100fb5760209181906001600160a01b0361033061058b565b16815280845220549051908152f35b8390346100fb5760203660031901126100fb576103059035336107b4565b8284346101b357816003193601126101b35761037761058b565b338252600160209081528383206001600160a01b03831684529052828220546024358101929083106103b15760208461012885853361069a565b634e487b7160e01b815260118552602490fd5b5050346100fb57816003193601126100fb576020905160128152f35b5050346100fb5760603660031901126100fb5760209061012861040161058b565b6104096105a6565b6044359161041883338361072d565b6105bc565b5050346100fb57816003193601126100fb576020906002549051908152f35b5050346100fb57806003193601126100fb5760209061012861045c61058b565b602435903361069a565b8490843461053e578260031936011261053e5782600354600181811c90808316928315610534575b60209384841081146102b85783885290811561029c57506001146104de57505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061052057505050508301018580806101fe565b80548886018301529301928490820161050a565b91607f169161048e565b8280fd5b6020808252825181830181905290939260005b82811061057757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610555565b600435906001600160a01b03821682036105a157565b600080fd5b602435906001600160a01b03821682036105a157565b916001600160a01b0380841692831561068157169283156106685760009083825281602052604082205490838210610636575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b0390811691821561071457169182156106fb5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b9092919260018060a01b0380831660005260016020526040600020908216600052602052604060002054936000198503610769575b5050509050565b8085106107855761077c9394039161069a565b80388080610762565b604051637dc7a0d960e11b81526001600160a01b03929092166004830152602482018590526044820152606490fd5b906001600160a01b03821690811561068157600092828452836020526040842054908282106108215750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101829052606490fdfea264697066735822122034ae073c7b3a769a992f80a8f9cc86f92cbfb905306a15b285a5b361fe0dcd8e64736f6c63430008130033","sourceMap":"669:349:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:6:23;669:349:93;;:::i;:::-;;;720:10:30;;4039:6:23;:::i;:::-;669:349:93;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;720:10:30;;669:349:93;;;;;;;;;;;;;;;;;;;;;6910:36:23;;;;6906:148;;669:349:93;;7112:36:23;669:349:93;;;;720:10:30;;7112:36:23;:::i;6906:148::-;669:349:93;;-1:-1:-1;;;6969:74:23;;-1:-1:-1;;;;;669:349:93;;;6969:74:23;;;669:349:93;;;;;;;;;;;;;;;6969:74:23;;;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;669:349:93;;;;;-1:-1:-1;;669:349:93;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;669:349:93;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:93;;;;;-1:-1:-1;;669:349:93;;;;;;;;-1:-1:-1;669:349:93;;;;;;-1:-1:-1;;;669:349:93;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:93;;;;1121:6:25;669:349:93;;:::i;:::-;;;720:10:30;1089:6:25;720:10:30;;1089:6:25;;:::i;:::-;1121;:::i;:::-;669:349:93;;;;;;;;;;-1:-1:-1;;669:349:93;;;;;;;;-1:-1:-1;;;;;669:349:93;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:93;;;;654:6:25;669:349:93;;720:10:30;654:6:25;:::i;669:349:93:-;;;;;;;;;;;;;;;;:::i;:::-;720:10:30;669:349:93;;;;;;;;;;-1:-1:-1;;;;;669:349:93;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;720:10:30;6139:38:23;720:10:30;;;6139:38:23;:::i;669:349:93:-;-1:-1:-1;;;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;3358:2:23;669:349:93;;;;;;;;;;;-1:-1:-1;;669:349:93;;;;;;5542:6:23;669:349:93;;:::i;:::-;;;:::i;:::-;;;720:10:30;5505:6:23;720:10:30;;5505:6:23;;:::i;:::-;5542;:::i;669:349:93:-;;;;;;;;;;;;;;;;3505:12:23;669:349:93;;;;;;;;;;;;;;;;;;;;;;;4733:6:23;669:349:93;;:::i;:::-;;;720:10:30;;4733:6:23;:::i;669:349:93:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;669:349:93;;;;;-1:-1:-1;;669:349:93;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:93;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;669:349:93;;;;;;:::o;7553:302:23:-;;-1:-1:-1;;;;;669:349:93;;;;7637:18:23;;7633:86;;669:349:93;7732:16:23;;;7728:86;;8241:443;669:349:93;;;;;;;;;;;8387:20:23;;;;8383:117;;669:349:93;;;;;9139:26:23;669:349:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:26:23;7553:302::o;8383:117::-;669:349:93;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;669:349:93;;;;8434:51:23;;;669:349:93;;;;;;;;;;;;;;;;6969:74:23;7728:86;669:349:93;;-1:-1:-1;;;7771:32:23;;7653:1;7771:32;;;669:349:93;;;7771:32:23;7633:86;669:349:93;;-1:-1:-1;;;7678:30:23;;7653:1;7678:30;;;669:349:93;;;7678:30:23;10659:380;-1:-1:-1;;;;;669:349:93;;;;10756:19:23;;10752:89;;669:349:93;10854:21:23;;;10850:90;;669:349:93;11000:32:23;669:349:93;;10773:1:23;669:349:93;;;;;10773:1:23;669:349:93;;10773:1:23;669:349:93;;;;;10773:1:23;669:349:93;;;;;;;11000:32:23;10659:380::o;10850:90::-;669:349:93;;-1:-1:-1;;;10898:31:23;;10773:1;10898:31;;;669:349:93;;;10898:31:23;10752:89;669:349:93;;-1:-1:-1;;;10798:32:23;;10773:1;10798:32;;;669:349:93;;;10798:32:23;11320:474;;;;;669:349:93;;;;;;;;-1:-1:-1;669:349:93;;;;;-1:-1:-1;669:349:93;;;;-1:-1:-1;669:349:93;;;;-1:-1:-1;669:349:93;;11506:17:23;;;11486:37;;11482:306;;11320:474;;;;;;:::o;11482:306::-;11543:25;;;11539:132;;11737:25;669:349:93;;;11737:25:23;;:::i;:::-;11482:306;;;;;;11539:132;669:349:93;;-1:-1:-1;;;11595:61:23;;-1:-1:-1;;;;;669:349:93;;;;11595:61:23;;;669:349:93;;;;;;;;;;;;;6969:74:23;10028:208;;-1:-1:-1;;;;;669:349:93;;;10099:21:23;;10095:89;;8241:443;669:349:93;;;;;;;;;;;8387:20:23;;;;8383:117;;669:349:93;;9139:26:23;669:349:93;;;;;;;;;;;;;;;8863:22:23;669:349:93;;8863:22:23;669:349:93;;;;;;9139:26:23;10028:208::o;8383:117::-;669:349:93;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;669:349:93;;;;8434:51:23;;;669:349:93;;;;;;;;;;;;;;;;6969:74:23","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"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\"},{\"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\":[{\"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\":[{\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"{ERC20} token, including: - Preminted initial supply - Ability for holders to burn (destroy) their tokens - No access control mechanism (for minting/pausing) and hence no governance This contract uses {ERC20Burnable} to include burn capabilities - head to its documentation for details. _Available since v3.4._ _Deprecated in favor of https://wizard.openzeppelin.com/[Contracts Wizard]._\",\"errors\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"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.\"}}]},\"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.\"},\"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\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` 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 `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` 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 `amount`.\"},\"constructor\":{\"details\":\"Mints `initialSupply` amount of token and transfers them to `owner`. See {ERC20-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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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 `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/ERC20PresetFixedSupply.sol\":\"ERC20PresetFixedSupply\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0xd5015521a09267ec4fe122675f1d1f9dba884fb686937be87caed9a7584e30d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b445cff4389e685959b476105f3f76a3bb18478357ed13b59796e31f49d450bb\",\"dweb:/ipfs/QmbqJb753rF2KodJSScrwbe4ZmhWLXgAcDHHzQ2nMwLKDR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]},\"test/helpers/ERC20PresetFixedSupply.sol\":{\"keccak256\":\"0x5f9164c6e005bd12dd595d73d8b6e75ee827e36a6ffd23a073e937e214c67700\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b318734161ce3bbede1a73ea760e2ad3ee4ee8478326e82f91af777ec401b447\",\"dweb:/ipfs/QmTKLqJeLDEkZ9NNGNckks4haM6jCLzRMwsiXL36ufrgrx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"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":"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":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"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":"amount","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":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"amount","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":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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 `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` 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 `amount`."},"constructor":{"details":"Mints `initialSupply` amount of token and transfers them to `owner`. See {ERC20-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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"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 `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/ERC20PresetFixedSupply.sol":"ERC20PresetFixedSupply"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"keccak256":"0xd5015521a09267ec4fe122675f1d1f9dba884fb686937be87caed9a7584e30d4","urls":["bzz-raw://b445cff4389e685959b476105f3f76a3bb18478357ed13b59796e31f49d450bb","dweb:/ipfs/QmbqJb753rF2KodJSScrwbe4ZmhWLXgAcDHHzQ2nMwLKDR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"},"test/helpers/ERC20PresetFixedSupply.sol":{"keccak256":"0x5f9164c6e005bd12dd595d73d8b6e75ee827e36a6ffd23a073e937e214c67700","urls":["bzz-raw://b318734161ce3bbede1a73ea760e2ad3ee4ee8478326e82f91af777ec401b447","dweb:/ipfs/QmTKLqJeLDEkZ9NNGNckks4haM6jCLzRMwsiXL36ufrgrx"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/helpers/ERC20PresetFixedSupply.sol","id":55757,"exportedSymbols":{"Context":[32860],"ERC20":[31921],"ERC20Burnable":[32043],"ERC20PresetFixedSupply":[55756],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32068],"IERC721Errors":[31304]},"nodeType":"SourceUnit","src":"129:890:93","nodes":[{"id":55729,"nodeType":"PragmaDirective","src":"129:23:93","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55730,"nodeType":"ImportDirective","src":"154:73:93","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol","file":"openzeppelin-contracts/token/ERC20/extensions/ERC20Burnable.sol","nameLocation":"-1:-1:-1","scope":55757,"sourceUnit":32044,"symbolAliases":[],"unitAlias":""},{"id":55756,"nodeType":"ContractDefinition","src":"669:349:93","nodes":[{"id":55755,"nodeType":"FunctionDefinition","src":"860:156:93","nodes":[],"body":{"id":55754,"nodeType":"Block","src":"972:44:93","nodes":[],"statements":[{"expression":{"arguments":[{"id":55750,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55742,"src":"988:5:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55751,"name":"initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55740,"src":"995:13:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55749,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"982:5:93","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"982:27:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55753,"nodeType":"ExpressionStatement","src":"982:27:93"}]},"documentation":{"id":55734,"nodeType":"StructuredDocumentation","src":"724:131:93","text":" @dev Mints `initialSupply` amount of token and transfers them to `owner`.\n See {ERC20-constructor}."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":55745,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55736,"src":"958:4:93","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":55746,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55738,"src":"964:6:93","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":55747,"kind":"baseConstructorSpecifier","modifierName":{"id":55744,"name":"ERC20","nameLocations":["952:5:93"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"952:5:93"},"nodeType":"ModifierInvocation","src":"952:19:93"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55736,"mutability":"mutable","name":"name","nameLocation":"886:4:93","nodeType":"VariableDeclaration","scope":55755,"src":"872:18:93","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55735,"name":"string","nodeType":"ElementaryTypeName","src":"872:6:93","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55738,"mutability":"mutable","name":"symbol","nameLocation":"906:6:93","nodeType":"VariableDeclaration","scope":55755,"src":"892:20:93","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55737,"name":"string","nodeType":"ElementaryTypeName","src":"892:6:93","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55740,"mutability":"mutable","name":"initialSupply","nameLocation":"922:13:93","nodeType":"VariableDeclaration","scope":55755,"src":"914:21:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55739,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55742,"mutability":"mutable","name":"owner","nameLocation":"945:5:93","nodeType":"VariableDeclaration","scope":55755,"src":"937:13:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55741,"name":"address","nodeType":"ElementaryTypeName","src":"937:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"871:80:93"},"returnParameters":{"id":55748,"nodeType":"ParameterList","parameters":[],"src":"972:0:93"},"scope":55756,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":55732,"name":"ERC20Burnable","nameLocations":["704:13:93"],"nodeType":"IdentifierPath","referencedDeclaration":32043,"src":"704:13:93"},"id":55733,"nodeType":"InheritanceSpecifier","src":"704:13:93"}],"canonicalName":"ERC20PresetFixedSupply","contractDependencies":[],"contractKind":"contract","documentation":{"id":55731,"nodeType":"StructuredDocumentation","src":"229:439:93","text":" @dev {ERC20} token, including:\n - Preminted initial supply\n - Ability for holders to burn (destroy) their tokens\n - No access control mechanism (for minting/pausing) and hence no governance\n This contract uses {ERC20Burnable} to include burn capabilities - head to\n its documentation for details.\n _Available since v3.4._\n _Deprecated in favor of https://wizard.openzeppelin.com/[Contracts Wizard]._"},"fullyImplemented":true,"linearizedBaseContracts":[55756,32043,31921,31256,32068,31999,32860],"name":"ERC20PresetFixedSupply","nameLocation":"678:22:93","scope":55757,"usedErrors":[31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT"},"id":93} \ No newline at end of file diff --git a/.out/FvmAddress.sol/FvmAddress.json b/.out/FvmAddress.sol/FvmAddress.json index e4e9dadb0..93e542a42 100644 --- a/.out/FvmAddress.sol/FvmAddress.json +++ b/.out/FvmAddress.sol/FvmAddress.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/FvmAddress.sol","id":50006,"exportedSymbols":{"DelegatedAddress":[50005],"FvmAddress":[49998]},"nodeType":"SourceUnit","src":"46:489:81","nodes":[{"id":49993,"nodeType":"PragmaDirective","src":"46:23:81","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49998,"nodeType":"StructDefinition","src":"320:60:81","nodes":[],"canonicalName":"FvmAddress","members":[{"constant":false,"id":49995,"mutability":"mutable","name":"addrType","nameLocation":"350:8:81","nodeType":"VariableDeclaration","scope":49998,"src":"344:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":49994,"name":"uint8","nodeType":"ElementaryTypeName","src":"344:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":49997,"mutability":"mutable","name":"payload","nameLocation":"370:7:81","nodeType":"VariableDeclaration","scope":49998,"src":"364:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":49996,"name":"bytes","nodeType":"ElementaryTypeName","src":"364:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"FvmAddress","nameLocation":"327:10:81","scope":50006,"visibility":"public"},{"id":50005,"nodeType":"StructDefinition","src":"447:87:81","nodes":[],"canonicalName":"DelegatedAddress","members":[{"constant":false,"id":50000,"mutability":"mutable","name":"namespace","nameLocation":"484:9:81","nodeType":"VariableDeclaration","scope":50005,"src":"477:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49999,"name":"uint64","nodeType":"ElementaryTypeName","src":"477:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50002,"mutability":"mutable","name":"length","nameLocation":"507:6:81","nodeType":"VariableDeclaration","scope":50005,"src":"499:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":50001,"name":"uint128","nodeType":"ElementaryTypeName","src":"499:7:81","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":50004,"mutability":"mutable","name":"buffer","nameLocation":"525:6:81","nodeType":"VariableDeclaration","scope":50005,"src":"519:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":50003,"name":"bytes","nodeType":"ElementaryTypeName","src":"519:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"DelegatedAddress","nameLocation":"454:16:81","scope":50006,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":81} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/FvmAddress.sol","id":49959,"exportedSymbols":{"DelegatedAddress":[49958],"FvmAddress":[49951]},"nodeType":"SourceUnit","src":"46:489:81","nodes":[{"id":49946,"nodeType":"PragmaDirective","src":"46:23:81","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49951,"nodeType":"StructDefinition","src":"320:60:81","nodes":[],"canonicalName":"FvmAddress","members":[{"constant":false,"id":49948,"mutability":"mutable","name":"addrType","nameLocation":"350:8:81","nodeType":"VariableDeclaration","scope":49951,"src":"344:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":49947,"name":"uint8","nodeType":"ElementaryTypeName","src":"344:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":49950,"mutability":"mutable","name":"payload","nameLocation":"370:7:81","nodeType":"VariableDeclaration","scope":49951,"src":"364:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":49949,"name":"bytes","nodeType":"ElementaryTypeName","src":"364:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"FvmAddress","nameLocation":"327:10:81","scope":49959,"visibility":"public"},{"id":49958,"nodeType":"StructDefinition","src":"447:87:81","nodes":[],"canonicalName":"DelegatedAddress","members":[{"constant":false,"id":49953,"mutability":"mutable","name":"namespace","nameLocation":"484:9:81","nodeType":"VariableDeclaration","scope":49958,"src":"477:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49952,"name":"uint64","nodeType":"ElementaryTypeName","src":"477:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":49955,"mutability":"mutable","name":"length","nameLocation":"507:6:81","nodeType":"VariableDeclaration","scope":49958,"src":"499:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":49954,"name":"uint128","nodeType":"ElementaryTypeName","src":"499:7:81","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":49957,"mutability":"mutable","name":"buffer","nameLocation":"525:6:81","nodeType":"VariableDeclaration","scope":49958,"src":"519:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":49956,"name":"bytes","nodeType":"ElementaryTypeName","src":"519:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"DelegatedAddress","nameLocation":"454:16:81","scope":49959,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":81} \ No newline at end of file diff --git a/.out/FvmAddressHelper.sol/FvmAddressHelper.json b/.out/FvmAddressHelper.sol/FvmAddressHelper.json index cb18bcbeb..3f8cf2dca 100644 --- a/.out/FvmAddressHelper.sol/FvmAddressHelper.json +++ b/.out/FvmAddressHelper.sol/FvmAddressHelper.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DELEGATED","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"EAM_ACTOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"PAYLOAD_HASH_LEN","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"SECP256K1","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"error","name":"NotDelegatedEvmAddress","inputs":[]}],"bytecode":{"object":"0x608080604052346100195760db908161001f823930815050f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c9081635279ff9914608c575080639c6e06c0146076578063ab528f211460605763cf8e4a6e14604857600080fd5b80600319360112605d57602060405160148152f35b80fd5b5080600319360112605d57602060405160018152f35b5080600319360112605d57602060405160048152f35b90508160031936011260a15780600a60209252f35b5080fdfea26469706673582212201bcbe64d2e452b2aae503400031b4c27a516824afd0fd7d363dedcf341af152464736f6c63430008130033","sourceMap":"186:2075:61:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c9081635279ff9914608c575080639c6e06c0146076578063ab528f211460605763cf8e4a6e14604857600080fd5b80600319360112605d57602060405160148152f35b80fd5b5080600319360112605d57602060405160018152f35b5080600319360112605d57602060405160048152f35b90508160031936011260a15780600a60209252f35b5080fdfea26469706673582212201bcbe64d2e452b2aae503400031b4c27a516824afd0fd7d363dedcf341af152464736f6c63430008130033","sourceMap":"186:2075:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;361:2;186:2075;;;;;;;;;;;;;;;;;;;313:1;186:2075;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;480:2;186:2075;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DELEGATED()":"9c6e06c0","EAM_ACTOR()":"5279ff99","PAYLOAD_HASH_LEN()":"cf8e4a6e","SECP256K1()":"ab528f21"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NotDelegatedEvmAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DELEGATED\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EAM_ACTOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAYLOAD_HASH_LEN\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SECP256K1\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for Fil Address\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DELEGATED()\":{\"notice\":\"For delegated FIL address\"},\"SECP256K1()\":{\"notice\":\"f1: SECP256K1 key address, 20 byte hash of PublicKey.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/FvmAddressHelper.sol\":\"FvmAddressHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"NotDelegatedEvmAddress"},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATED","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"EAM_ACTOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PAYLOAD_HASH_LEN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SECP256K1","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATED()":{"notice":"For delegated FIL address"},"SECP256K1()":{"notice":"f1: SECP256K1 key address, 20 byte hash of PublicKey."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/FvmAddressHelper.sol":"FvmAddressHelper"},"libraries":{},"viaIR":true},"sources":{"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/FvmAddressHelper.sol","id":40963,"exportedSymbols":{"DelegatedAddress":[50005],"FvmAddress":[49998],"FvmAddressHelper":[40962]},"nodeType":"SourceUnit","src":"46:2216:61","nodes":[{"id":40783,"nodeType":"PragmaDirective","src":"46:23:61","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40786,"nodeType":"ImportDirective","src":"71:71:61","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":40963,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":40784,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"79:10:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40785,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50005,"src":"91:16:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40962,"nodeType":"ContractDefinition","src":"186:2075:61","nodes":[{"id":40791,"nodeType":"VariableDeclaration","src":"279:35:61","nodes":[],"constant":true,"documentation":{"id":40788,"nodeType":"StructuredDocumentation","src":"217:57:61","text":"f1: SECP256K1 key address, 20 byte hash of PublicKey."},"functionSelector":"ab528f21","mutability":"constant","name":"SECP256K1","nameLocation":"301:9:61","scope":40962,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40789,"name":"uint8","nodeType":"ElementaryTypeName","src":"279:5:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":40790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"313:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"id":40794,"nodeType":"VariableDeclaration","src":"320:43:61","nodes":[],"constant":true,"functionSelector":"cf8e4a6e","mutability":"constant","name":"PAYLOAD_HASH_LEN","nameLocation":"342:16:61","scope":40962,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40792,"name":"uint8","nodeType":"ElementaryTypeName","src":"320:5:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":40793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"361:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"public"},{"id":40798,"nodeType":"VariableDeclaration","src":"404:35:61","nodes":[],"constant":true,"documentation":{"id":40795,"nodeType":"StructuredDocumentation","src":"370:29:61","text":"For delegated FIL address"},"functionSelector":"9c6e06c0","mutability":"constant","name":"DELEGATED","nameLocation":"426:9:61","scope":40962,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40796,"name":"uint8","nodeType":"ElementaryTypeName","src":"404:5:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":40797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"438:1:61","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"public"},{"id":40801,"nodeType":"VariableDeclaration","src":"445:37:61","nodes":[],"constant":true,"functionSelector":"5279ff99","mutability":"constant","name":"EAM_ACTOR","nameLocation":"468:9:61","scope":40962,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":40799,"name":"uint64","nodeType":"ElementaryTypeName","src":"445:6:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":40800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"480:2:61","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":40803,"nodeType":"ErrorDefinition","src":"489:31:61","nodes":[],"errorSelector":"c5f8961f","name":"NotDelegatedEvmAddress","nameLocation":"495:22:61","parameters":{"id":40802,"nodeType":"ParameterList","parameters":[],"src":"517:2:61"}},{"id":40834,"nodeType":"FunctionDefinition","src":"581:314:61","nodes":[],"body":{"id":40833,"nodeType":"Block","src":"662:233:61","nodes":[],"statements":[{"assignments":[40813],"declarations":[{"constant":false,"id":40813,"mutability":"mutable","name":"payload","nameLocation":"685:7:61","nodeType":"VariableDeclaration","scope":40833,"src":"672:20:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40812,"name":"bytes","nodeType":"ElementaryTypeName","src":"672:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40825,"initialValue":{"arguments":[{"arguments":[{"id":40817,"name":"EAM_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40801,"src":"748:9:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"3230","id":40818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"767:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},{"arguments":[{"id":40821,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40806,"src":"796:4:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40819,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"779:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"783:12:61","memberName":"encodePacked","nodeType":"MemberAccess","src":"779:16:61","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"779:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40816,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50005,"src":"719:16:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$50005_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}},"id":40823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["737:9:61","759:6:61","771:6:61"],"names":["namespace","length","buffer"],"nodeType":"FunctionCall","src":"719:84:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}],"expression":{"id":40814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"695:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"699:6:61","memberName":"encode","nodeType":"MemberAccess","src":"695:10:61","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"695:118:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"672:141:61"},{"expression":{"id":40831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40826,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40810,"src":"824:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":40828,"name":"DELEGATED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40798,"src":"859:9:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":40829,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40813,"src":"879:7:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40827,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"837:10:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FvmAddress_$49998_storage_ptr_$","typeString":"type(struct FvmAddress storage pointer)"}},"id":40830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["849:8:61","870:7:61"],"names":["addrType","payload"],"nodeType":"FunctionCall","src":"837:51:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"824:64:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40832,"nodeType":"ExpressionStatement","src":"824:64:61"}]},"documentation":{"id":40804,"nodeType":"StructuredDocumentation","src":"526:50:61","text":"@notice Creates a FvmAddress from address type"},"implemented":true,"kind":"function","modifiers":[],"name":"from","nameLocation":"590:4:61","parameters":{"id":40807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40806,"mutability":"mutable","name":"addr","nameLocation":"603:4:61","nodeType":"VariableDeclaration","scope":40834,"src":"595:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40805,"name":"address","nodeType":"ElementaryTypeName","src":"595:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"594:14:61"},"returnParameters":{"id":40811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40810,"mutability":"mutable","name":"fvmAddress","nameLocation":"650:10:61","nodeType":"VariableDeclaration","scope":40834,"src":"632:28:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40809,"nodeType":"UserDefinedTypeName","pathNode":{"id":40808,"name":"FvmAddress","nameLocations":["632:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"632:10:61"},"referencedDeclaration":49998,"src":"632:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"631:30:61"},"scope":40962,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40851,"nodeType":"FunctionDefinition","src":"953:135:61","nodes":[],"body":{"id":40850,"nodeType":"Block","src":"1031:57:61","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40846,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40838,"src":"1069:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":40844,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1058:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1062:6:61","memberName":"encode","nodeType":"MemberAccess","src":"1058:10:61","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40843,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1048:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1048:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40842,"id":40849,"nodeType":"Return","src":"1041:40:61"}]},"documentation":{"id":40835,"nodeType":"StructuredDocumentation","src":"901:47:61","text":"@notice Obtains the hash of the fvm address"},"implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"962:6:61","parameters":{"id":40839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40838,"mutability":"mutable","name":"fvmAddress","nameLocation":"987:10:61","nodeType":"VariableDeclaration","scope":40851,"src":"969:28:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40837,"nodeType":"UserDefinedTypeName","pathNode":{"id":40836,"name":"FvmAddress","nameLocations":["969:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"969:10:61"},"referencedDeclaration":49998,"src":"969:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"968:30:61"},"returnParameters":{"id":40842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40851,"src":"1022:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40840,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1022:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1021:9:61"},"scope":40962,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40888,"nodeType":"FunctionDefinition","src":"1148:258:61","nodes":[],"body":{"id":40887,"nodeType":"Block","src":"1234:172:61","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":40867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40863,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40855,"src":"1263:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1265:8:61","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":49995,"src":"1263:10:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":40865,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40858,"src":"1277:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1279:8:61","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":49995,"src":"1277:10:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1263:24:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40868,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40855,"src":"1303:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1305:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49997,"src":"1303:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1313:6:61","memberName":"length","nodeType":"MemberAccess","src":"1303:16:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":40871,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40858,"src":"1323:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1325:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49997,"src":"1323:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1333:6:61","memberName":"length","nodeType":"MemberAccess","src":"1323:16:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1303:36:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1263:76:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":40884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":40877,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40855,"src":"1365:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1367:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49997,"src":"1365:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40876,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1355:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1355:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":40881,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40858,"src":"1389:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1391:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49997,"src":"1389:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40880,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1379:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1355:44:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1263:136:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40862,"id":40886,"nodeType":"Return","src":"1244:155:61"}]},"documentation":{"id":40852,"nodeType":"StructuredDocumentation","src":"1094:49:61","text":"@notice Checks if two fvm addresses are equal"},"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"1157:5:61","parameters":{"id":40859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40855,"mutability":"mutable","name":"a","nameLocation":"1181:1:61","nodeType":"VariableDeclaration","scope":40888,"src":"1163:19:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40854,"nodeType":"UserDefinedTypeName","pathNode":{"id":40853,"name":"FvmAddress","nameLocations":["1163:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1163:10:61"},"referencedDeclaration":49998,"src":"1163:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40858,"mutability":"mutable","name":"b","nameLocation":"1202:1:61","nodeType":"VariableDeclaration","scope":40888,"src":"1184:19:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40857,"nodeType":"UserDefinedTypeName","pathNode":{"id":40856,"name":"FvmAddress","nameLocations":["1184:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1184:10:61"},"referencedDeclaration":49998,"src":"1184:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1162:42:61"},"returnParameters":{"id":40862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40888,"src":"1228:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40860,"name":"bool","nodeType":"ElementaryTypeName","src":"1228:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1227:6:61"},"scope":40962,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40952,"nodeType":"FunctionDefinition","src":"1412:649:61","nodes":[],"body":{"id":40951,"nodeType":"Block","src":"1506:555:61","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":40899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40896,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40891,"src":"1520:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1531:8:61","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":49995,"src":"1520:19:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":40898,"name":"DELEGATED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40798,"src":"1543:9:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1520:32:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40904,"nodeType":"IfStatement","src":"1516:94:61","trueBody":{"id":40903,"nodeType":"Block","src":"1554:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40900,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40803,"src":"1575:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1575:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40902,"nodeType":"RevertStatement","src":"1568:31:61"}]}},{"assignments":[40907],"declarations":[{"constant":false,"id":40907,"mutability":"mutable","name":"delegated","nameLocation":"1644:9:61","nodeType":"VariableDeclaration","scope":40951,"src":"1620:33:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress"},"typeName":{"id":40906,"nodeType":"UserDefinedTypeName","pathNode":{"id":40905,"name":"DelegatedAddress","nameLocations":["1620:16:61"],"nodeType":"IdentifierPath","referencedDeclaration":50005,"src":"1620:16:61"},"referencedDeclaration":50005,"src":"1620:16:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_storage_ptr","typeString":"struct DelegatedAddress"}},"visibility":"internal"}],"id":40915,"initialValue":{"arguments":[{"expression":{"id":40910,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40891,"src":"1667:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1678:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49997,"src":"1667:18:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":40912,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50005,"src":"1688:16:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$50005_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}}],"id":40913,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1687:18:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$50005_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$50005_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}],"expression":{"id":40908,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1656:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1660:6:61","memberName":"decode","nodeType":"MemberAccess","src":"1656:10:61","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1656:50:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}},"nodeType":"VariableDeclarationStatement","src":"1620:86:61"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40916,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40907,"src":"1721:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1731:9:61","memberName":"namespace","nodeType":"MemberAccess","referencedDeclaration":50000,"src":"1721:19:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":40918,"name":"EAM_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40801,"src":"1744:9:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1721:32:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40924,"nodeType":"IfStatement","src":"1717:94:61","trueBody":{"id":40923,"nodeType":"Block","src":"1755:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40920,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40803,"src":"1776:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40922,"nodeType":"RevertStatement","src":"1769:31:61"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":40928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40925,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40907,"src":"1824:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1834:6:61","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50002,"src":"1824:16:61","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":40927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1844:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1824:22:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40933,"nodeType":"IfStatement","src":"1820:84:61","trueBody":{"id":40932,"nodeType":"Block","src":"1848:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40929,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40803,"src":"1869:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1869:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40931,"nodeType":"RevertStatement","src":"1862:31:61"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40934,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40907,"src":"1917:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1927:6:61","memberName":"buffer","nodeType":"MemberAccess","referencedDeclaration":50004,"src":"1917:16:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1934:6:61","memberName":"length","nodeType":"MemberAccess","src":"1917:23:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":40937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1944:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1917:29:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40943,"nodeType":"IfStatement","src":"1913:91:61","trueBody":{"id":40942,"nodeType":"Block","src":"1948:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40939,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40803,"src":"1969:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1969:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40941,"nodeType":"RevertStatement","src":"1962:31:61"}]}},{"expression":{"id":40949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40944,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40894,"src":"2014:4:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":40946,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40907,"src":"2037:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2047:6:61","memberName":"buffer","nodeType":"MemberAccess","referencedDeclaration":50004,"src":"2037:16:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40945,"name":"_bytesToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40961,"src":"2021:15:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) pure returns (address)"}},"id":40948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2021:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2014:40:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40950,"nodeType":"ExpressionStatement","src":"2014:40:61"}]},"implemented":true,"kind":"function","modifiers":[],"name":"extractEvmAddress","nameLocation":"1421:17:61","parameters":{"id":40892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40891,"mutability":"mutable","name":"fvmAddress","nameLocation":"1457:10:61","nodeType":"VariableDeclaration","scope":40952,"src":"1439:28:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40890,"nodeType":"UserDefinedTypeName","pathNode":{"id":40889,"name":"FvmAddress","nameLocations":["1439:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1439:10:61"},"referencedDeclaration":49998,"src":"1439:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1438:30:61"},"returnParameters":{"id":40895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40894,"mutability":"mutable","name":"addr","nameLocation":"1500:4:61","nodeType":"VariableDeclaration","scope":40952,"src":"1492:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40893,"name":"address","nodeType":"ElementaryTypeName","src":"1492:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1491:14:61"},"scope":40962,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40961,"nodeType":"FunctionDefinition","src":"2067:192:61","nodes":[],"body":{"id":40960,"nodeType":"Block","src":"2146:113:61","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2202:51:61","statements":[{"nodeType":"YulAssignment","src":"2216:27:61","value":{"arguments":[{"arguments":[{"name":"bys","nodeType":"YulIdentifier","src":"2234:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"2239:2:61","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2230:3:61"},"nodeType":"YulFunctionCall","src":"2230:12:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2224:5:61"},"nodeType":"YulFunctionCall","src":"2224:19:61"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"2216:4:61"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40957,"isOffset":false,"isSlot":false,"src":"2216:4:61","valueSize":1},{"declaration":40954,"isOffset":false,"isSlot":false,"src":"2234:3:61","valueSize":1}],"id":40959,"nodeType":"InlineAssembly","src":"2193:60:61"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bytesToAddress","nameLocation":"2076:15:61","parameters":{"id":40955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40954,"mutability":"mutable","name":"bys","nameLocation":"2105:3:61","nodeType":"VariableDeclaration","scope":40961,"src":"2092:16:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40953,"name":"bytes","nodeType":"ElementaryTypeName","src":"2092:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2091:18:61"},"returnParameters":{"id":40958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40957,"mutability":"mutable","name":"addr","nameLocation":"2140:4:61","nodeType":"VariableDeclaration","scope":40961,"src":"2132:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40956,"name":"address","nodeType":"ElementaryTypeName","src":"2132:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2131:14:61"},"scope":40962,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"FvmAddressHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":40787,"nodeType":"StructuredDocumentation","src":"144:42:61","text":"@title Helper library for Fil Address"},"fullyImplemented":true,"linearizedBaseContracts":[40962],"name":"FvmAddressHelper","nameLocation":"194:16:61","scope":40963,"usedErrors":[40803]}],"license":"MIT OR Apache-2.0"},"id":61} \ No newline at end of file +{"abi":[{"type":"function","name":"DELEGATED","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"EAM_ACTOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"PAYLOAD_HASH_LEN","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"SECP256K1","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"error","name":"NotDelegatedEvmAddress","inputs":[]}],"bytecode":{"object":"0x608080604052346100195760db908161001f823930815050f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c9081635279ff9914608c575080639c6e06c0146076578063ab528f211460605763cf8e4a6e14604857600080fd5b80600319360112605d57602060405160148152f35b80fd5b5080600319360112605d57602060405160018152f35b5080600319360112605d57602060405160048152f35b90508160031936011260a15780600a60209252f35b5080fdfea26469706673582212201bcbe64d2e452b2aae503400031b4c27a516824afd0fd7d363dedcf341af152464736f6c63430008130033","sourceMap":"186:2075:61:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c9081635279ff9914608c575080639c6e06c0146076578063ab528f211460605763cf8e4a6e14604857600080fd5b80600319360112605d57602060405160148152f35b80fd5b5080600319360112605d57602060405160018152f35b5080600319360112605d57602060405160048152f35b90508160031936011260a15780600a60209252f35b5080fdfea26469706673582212201bcbe64d2e452b2aae503400031b4c27a516824afd0fd7d363dedcf341af152464736f6c63430008130033","sourceMap":"186:2075:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;361:2;186:2075;;;;;;;;;;;;;;;;;;;313:1;186:2075;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;480:2;186:2075;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DELEGATED()":"9c6e06c0","EAM_ACTOR()":"5279ff99","PAYLOAD_HASH_LEN()":"cf8e4a6e","SECP256K1()":"ab528f21"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NotDelegatedEvmAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DELEGATED\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EAM_ACTOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAYLOAD_HASH_LEN\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SECP256K1\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for Fil Address\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DELEGATED()\":{\"notice\":\"For delegated FIL address\"},\"SECP256K1()\":{\"notice\":\"f1: SECP256K1 key address, 20 byte hash of PublicKey.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/FvmAddressHelper.sol\":\"FvmAddressHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"NotDelegatedEvmAddress"},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATED","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"EAM_ACTOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PAYLOAD_HASH_LEN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SECP256K1","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATED()":{"notice":"For delegated FIL address"},"SECP256K1()":{"notice":"f1: SECP256K1 key address, 20 byte hash of PublicKey."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/FvmAddressHelper.sol":"FvmAddressHelper"},"libraries":{},"viaIR":true},"sources":{"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/FvmAddressHelper.sol","id":40907,"exportedSymbols":{"DelegatedAddress":[49958],"FvmAddress":[49951],"FvmAddressHelper":[40906]},"nodeType":"SourceUnit","src":"46:2216:61","nodes":[{"id":40727,"nodeType":"PragmaDirective","src":"46:23:61","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40730,"nodeType":"ImportDirective","src":"71:71:61","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":40907,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":40728,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"79:10:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40729,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49958,"src":"91:16:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40906,"nodeType":"ContractDefinition","src":"186:2075:61","nodes":[{"id":40735,"nodeType":"VariableDeclaration","src":"279:35:61","nodes":[],"constant":true,"documentation":{"id":40732,"nodeType":"StructuredDocumentation","src":"217:57:61","text":"f1: SECP256K1 key address, 20 byte hash of PublicKey."},"functionSelector":"ab528f21","mutability":"constant","name":"SECP256K1","nameLocation":"301:9:61","scope":40906,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40733,"name":"uint8","nodeType":"ElementaryTypeName","src":"279:5:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":40734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"313:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"id":40738,"nodeType":"VariableDeclaration","src":"320:43:61","nodes":[],"constant":true,"functionSelector":"cf8e4a6e","mutability":"constant","name":"PAYLOAD_HASH_LEN","nameLocation":"342:16:61","scope":40906,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40736,"name":"uint8","nodeType":"ElementaryTypeName","src":"320:5:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":40737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"361:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"public"},{"id":40742,"nodeType":"VariableDeclaration","src":"404:35:61","nodes":[],"constant":true,"documentation":{"id":40739,"nodeType":"StructuredDocumentation","src":"370:29:61","text":"For delegated FIL address"},"functionSelector":"9c6e06c0","mutability":"constant","name":"DELEGATED","nameLocation":"426:9:61","scope":40906,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40740,"name":"uint8","nodeType":"ElementaryTypeName","src":"404:5:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":40741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"438:1:61","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"public"},{"id":40745,"nodeType":"VariableDeclaration","src":"445:37:61","nodes":[],"constant":true,"functionSelector":"5279ff99","mutability":"constant","name":"EAM_ACTOR","nameLocation":"468:9:61","scope":40906,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":40743,"name":"uint64","nodeType":"ElementaryTypeName","src":"445:6:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":40744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"480:2:61","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":40747,"nodeType":"ErrorDefinition","src":"489:31:61","nodes":[],"errorSelector":"c5f8961f","name":"NotDelegatedEvmAddress","nameLocation":"495:22:61","parameters":{"id":40746,"nodeType":"ParameterList","parameters":[],"src":"517:2:61"}},{"id":40778,"nodeType":"FunctionDefinition","src":"581:314:61","nodes":[],"body":{"id":40777,"nodeType":"Block","src":"662:233:61","nodes":[],"statements":[{"assignments":[40757],"declarations":[{"constant":false,"id":40757,"mutability":"mutable","name":"payload","nameLocation":"685:7:61","nodeType":"VariableDeclaration","scope":40777,"src":"672:20:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40756,"name":"bytes","nodeType":"ElementaryTypeName","src":"672:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40769,"initialValue":{"arguments":[{"arguments":[{"id":40761,"name":"EAM_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40745,"src":"748:9:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"3230","id":40762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"767:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},{"arguments":[{"id":40765,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40750,"src":"796:4:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40763,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"779:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"783:12:61","memberName":"encodePacked","nodeType":"MemberAccess","src":"779:16:61","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"779:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40760,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49958,"src":"719:16:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$49958_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}},"id":40767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["737:9:61","759:6:61","771:6:61"],"names":["namespace","length","buffer"],"nodeType":"FunctionCall","src":"719:84:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$49958_memory_ptr","typeString":"struct DelegatedAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DelegatedAddress_$49958_memory_ptr","typeString":"struct DelegatedAddress memory"}],"expression":{"id":40758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"695:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"699:6:61","memberName":"encode","nodeType":"MemberAccess","src":"695:10:61","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"695:118:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"672:141:61"},{"expression":{"id":40775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40770,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40754,"src":"824:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":40772,"name":"DELEGATED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40742,"src":"859:9:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":40773,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40757,"src":"879:7:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40771,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"837:10:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FvmAddress_$49951_storage_ptr_$","typeString":"type(struct FvmAddress storage pointer)"}},"id":40774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["849:8:61","870:7:61"],"names":["addrType","payload"],"nodeType":"FunctionCall","src":"837:51:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"824:64:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40776,"nodeType":"ExpressionStatement","src":"824:64:61"}]},"documentation":{"id":40748,"nodeType":"StructuredDocumentation","src":"526:50:61","text":"@notice Creates a FvmAddress from address type"},"implemented":true,"kind":"function","modifiers":[],"name":"from","nameLocation":"590:4:61","parameters":{"id":40751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40750,"mutability":"mutable","name":"addr","nameLocation":"603:4:61","nodeType":"VariableDeclaration","scope":40778,"src":"595:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40749,"name":"address","nodeType":"ElementaryTypeName","src":"595:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"594:14:61"},"returnParameters":{"id":40755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40754,"mutability":"mutable","name":"fvmAddress","nameLocation":"650:10:61","nodeType":"VariableDeclaration","scope":40778,"src":"632:28:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40753,"nodeType":"UserDefinedTypeName","pathNode":{"id":40752,"name":"FvmAddress","nameLocations":["632:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"632:10:61"},"referencedDeclaration":49951,"src":"632:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"631:30:61"},"scope":40906,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40795,"nodeType":"FunctionDefinition","src":"953:135:61","nodes":[],"body":{"id":40794,"nodeType":"Block","src":"1031:57:61","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40790,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40782,"src":"1069:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":40788,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1058:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1062:6:61","memberName":"encode","nodeType":"MemberAccess","src":"1058:10:61","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40787,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1048:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1048:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40786,"id":40793,"nodeType":"Return","src":"1041:40:61"}]},"documentation":{"id":40779,"nodeType":"StructuredDocumentation","src":"901:47:61","text":"@notice Obtains the hash of the fvm address"},"implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"962:6:61","parameters":{"id":40783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40782,"mutability":"mutable","name":"fvmAddress","nameLocation":"987:10:61","nodeType":"VariableDeclaration","scope":40795,"src":"969:28:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40781,"nodeType":"UserDefinedTypeName","pathNode":{"id":40780,"name":"FvmAddress","nameLocations":["969:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"969:10:61"},"referencedDeclaration":49951,"src":"969:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"968:30:61"},"returnParameters":{"id":40786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40785,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40795,"src":"1022:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1022:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1021:9:61"},"scope":40906,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40832,"nodeType":"FunctionDefinition","src":"1148:258:61","nodes":[],"body":{"id":40831,"nodeType":"Block","src":"1234:172:61","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":40811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40807,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40799,"src":"1263:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1265:8:61","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":49948,"src":"1263:10:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":40809,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40802,"src":"1277:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1279:8:61","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":49948,"src":"1277:10:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1263:24:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40812,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40799,"src":"1303:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1305:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49950,"src":"1303:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1313:6:61","memberName":"length","nodeType":"MemberAccess","src":"1303:16:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":40815,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40802,"src":"1323:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1325:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49950,"src":"1323:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1333:6:61","memberName":"length","nodeType":"MemberAccess","src":"1323:16:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1303:36:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1263:76:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":40828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":40821,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40799,"src":"1365:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1367:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49950,"src":"1365:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40820,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1355:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1355:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":40825,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40802,"src":"1389:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1391:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49950,"src":"1389:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40824,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1379:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1355:44:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1263:136:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40806,"id":40830,"nodeType":"Return","src":"1244:155:61"}]},"documentation":{"id":40796,"nodeType":"StructuredDocumentation","src":"1094:49:61","text":"@notice Checks if two fvm addresses are equal"},"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"1157:5:61","parameters":{"id":40803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40799,"mutability":"mutable","name":"a","nameLocation":"1181:1:61","nodeType":"VariableDeclaration","scope":40832,"src":"1163:19:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40798,"nodeType":"UserDefinedTypeName","pathNode":{"id":40797,"name":"FvmAddress","nameLocations":["1163:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"1163:10:61"},"referencedDeclaration":49951,"src":"1163:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40802,"mutability":"mutable","name":"b","nameLocation":"1202:1:61","nodeType":"VariableDeclaration","scope":40832,"src":"1184:19:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40801,"nodeType":"UserDefinedTypeName","pathNode":{"id":40800,"name":"FvmAddress","nameLocations":["1184:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"1184:10:61"},"referencedDeclaration":49951,"src":"1184:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1162:42:61"},"returnParameters":{"id":40806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40832,"src":"1228:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40804,"name":"bool","nodeType":"ElementaryTypeName","src":"1228:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1227:6:61"},"scope":40906,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40896,"nodeType":"FunctionDefinition","src":"1412:649:61","nodes":[],"body":{"id":40895,"nodeType":"Block","src":"1506:555:61","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":40843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40840,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40835,"src":"1520:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1531:8:61","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":49948,"src":"1520:19:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":40842,"name":"DELEGATED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40742,"src":"1543:9:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1520:32:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40848,"nodeType":"IfStatement","src":"1516:94:61","trueBody":{"id":40847,"nodeType":"Block","src":"1554:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40844,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40747,"src":"1575:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1575:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40846,"nodeType":"RevertStatement","src":"1568:31:61"}]}},{"assignments":[40851],"declarations":[{"constant":false,"id":40851,"mutability":"mutable","name":"delegated","nameLocation":"1644:9:61","nodeType":"VariableDeclaration","scope":40895,"src":"1620:33:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$49958_memory_ptr","typeString":"struct DelegatedAddress"},"typeName":{"id":40850,"nodeType":"UserDefinedTypeName","pathNode":{"id":40849,"name":"DelegatedAddress","nameLocations":["1620:16:61"],"nodeType":"IdentifierPath","referencedDeclaration":49958,"src":"1620:16:61"},"referencedDeclaration":49958,"src":"1620:16:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$49958_storage_ptr","typeString":"struct DelegatedAddress"}},"visibility":"internal"}],"id":40859,"initialValue":{"arguments":[{"expression":{"id":40854,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40835,"src":"1667:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1678:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49950,"src":"1667:18:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":40856,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49958,"src":"1688:16:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$49958_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}}],"id":40857,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1687:18:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$49958_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$49958_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}],"expression":{"id":40852,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1656:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1660:6:61","memberName":"decode","nodeType":"MemberAccess","src":"1656:10:61","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1656:50:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$49958_memory_ptr","typeString":"struct DelegatedAddress memory"}},"nodeType":"VariableDeclarationStatement","src":"1620:86:61"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40860,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40851,"src":"1721:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$49958_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1731:9:61","memberName":"namespace","nodeType":"MemberAccess","referencedDeclaration":49953,"src":"1721:19:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":40862,"name":"EAM_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40745,"src":"1744:9:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1721:32:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40868,"nodeType":"IfStatement","src":"1717:94:61","trueBody":{"id":40867,"nodeType":"Block","src":"1755:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40864,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40747,"src":"1776:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40866,"nodeType":"RevertStatement","src":"1769:31:61"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":40872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40869,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40851,"src":"1824:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$49958_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1834:6:61","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"1824:16:61","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":40871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1844:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1824:22:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40877,"nodeType":"IfStatement","src":"1820:84:61","trueBody":{"id":40876,"nodeType":"Block","src":"1848:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40873,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40747,"src":"1869:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1869:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40875,"nodeType":"RevertStatement","src":"1862:31:61"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40878,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40851,"src":"1917:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$49958_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1927:6:61","memberName":"buffer","nodeType":"MemberAccess","referencedDeclaration":49957,"src":"1917:16:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1934:6:61","memberName":"length","nodeType":"MemberAccess","src":"1917:23:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":40881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1944:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1917:29:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40887,"nodeType":"IfStatement","src":"1913:91:61","trueBody":{"id":40886,"nodeType":"Block","src":"1948:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40883,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40747,"src":"1969:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1969:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40885,"nodeType":"RevertStatement","src":"1962:31:61"}]}},{"expression":{"id":40893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40888,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40838,"src":"2014:4:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":40890,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40851,"src":"2037:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$49958_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2047:6:61","memberName":"buffer","nodeType":"MemberAccess","referencedDeclaration":49957,"src":"2037:16:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40889,"name":"_bytesToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40905,"src":"2021:15:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) pure returns (address)"}},"id":40892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2021:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2014:40:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40894,"nodeType":"ExpressionStatement","src":"2014:40:61"}]},"implemented":true,"kind":"function","modifiers":[],"name":"extractEvmAddress","nameLocation":"1421:17:61","parameters":{"id":40836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40835,"mutability":"mutable","name":"fvmAddress","nameLocation":"1457:10:61","nodeType":"VariableDeclaration","scope":40896,"src":"1439:28:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40834,"nodeType":"UserDefinedTypeName","pathNode":{"id":40833,"name":"FvmAddress","nameLocations":["1439:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"1439:10:61"},"referencedDeclaration":49951,"src":"1439:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1438:30:61"},"returnParameters":{"id":40839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40838,"mutability":"mutable","name":"addr","nameLocation":"1500:4:61","nodeType":"VariableDeclaration","scope":40896,"src":"1492:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40837,"name":"address","nodeType":"ElementaryTypeName","src":"1492:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1491:14:61"},"scope":40906,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40905,"nodeType":"FunctionDefinition","src":"2067:192:61","nodes":[],"body":{"id":40904,"nodeType":"Block","src":"2146:113:61","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2202:51:61","statements":[{"nodeType":"YulAssignment","src":"2216:27:61","value":{"arguments":[{"arguments":[{"name":"bys","nodeType":"YulIdentifier","src":"2234:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"2239:2:61","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2230:3:61"},"nodeType":"YulFunctionCall","src":"2230:12:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2224:5:61"},"nodeType":"YulFunctionCall","src":"2224:19:61"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"2216:4:61"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40901,"isOffset":false,"isSlot":false,"src":"2216:4:61","valueSize":1},{"declaration":40898,"isOffset":false,"isSlot":false,"src":"2234:3:61","valueSize":1}],"id":40903,"nodeType":"InlineAssembly","src":"2193:60:61"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bytesToAddress","nameLocation":"2076:15:61","parameters":{"id":40899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40898,"mutability":"mutable","name":"bys","nameLocation":"2105:3:61","nodeType":"VariableDeclaration","scope":40905,"src":"2092:16:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40897,"name":"bytes","nodeType":"ElementaryTypeName","src":"2092:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2091:18:61"},"returnParameters":{"id":40902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40901,"mutability":"mutable","name":"addr","nameLocation":"2140:4:61","nodeType":"VariableDeclaration","scope":40905,"src":"2132:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40900,"name":"address","nodeType":"ElementaryTypeName","src":"2132:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2131:14:61"},"scope":40906,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"FvmAddressHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":40731,"nodeType":"StructuredDocumentation","src":"144:42:61","text":"@title Helper library for Fil Address"},"fullyImplemented":true,"linearizedBaseContracts":[40906],"name":"FvmAddressHelper","nameLocation":"194:16:61","scope":40907,"usedErrors":[40747]}],"license":"MIT OR Apache-2.0"},"id":61} \ No newline at end of file diff --git a/.out/FvmAddressHelper.sol/FvmAddressHelperTest.json b/.out/FvmAddressHelper.sol/FvmAddressHelperTest.json index d01606be1..95a4d0a3c 100644 --- a/.out/FvmAddressHelper.sol/FvmAddressHelperTest.json +++ b/.out/FvmAddressHelper.sol/FvmAddressHelperTest.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002d57600160ff19818160005416176000556004541617600455610c8e90816100338239f35b600080fdfe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220a40f690e0238a1c7609375d7081de33a8e66284b3a638580955381c8d1d988c364736f6c63430008130033","sourceMap":"240:611:91:-:0;;;;;;;1594:4:2;240:611:91;;;;1594:4:2;240:611:91;;;1594:4:2;240:611:91;3201:4:5;240:611:91;;;3201:4:5;240:611:91;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220a40f690e0238a1c7609375d7081de33a8e66284b3a638580955381c8d1d988c364736f6c63430008130033","sourceMap":"240:611:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;240:611:91;;;;:::i;:::-;;1671:64:2;240:611:91;;1671:64:2;;;:::i;:::-;240:611:91;;;1982:18:8;240:611:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;240:611:91;;;;;;;;-1:-1:-1;240:611:91;;;;;-1:-1:-1;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:91;;;;;-1:-1:-1;240:611:91;;;;;;;;;-1:-1:-1;240:611:91;;;;-1:-1:-1;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;240:611:91;;;;:::i;:::-;;1671:64:2;240:611:91;;1671:64:2;;;:::i;:::-;240:611:91;;;2899:18:8;240:611:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;240:611:91;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;240:611:91;;;;:::i;:::-;;1671:64:2;240:611:91;;1671:64:2;;;:::i;:::-;240:611:91;;;2416:18:8;240:611:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;240:611:91;;;;;;;;-1:-1:-1;240:611:91;;;;;-1:-1:-1;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:91;;;;;-1:-1:-1;240:611:91;;;;;;;;;-1:-1:-1;240:611:91;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;240:611:91;;;;:::i;:::-;;1671:64:2;240:611:91;;1671:64:2;;;:::i;:::-;240:611:91;;;2592:26:8;240:611:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;240:611:91;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;240:611:91;;;;;;;;;;;;;;;;;1671:64:2;240:611:91;1671:64:2;;;;;;;;;;;240:611:91;1671:64:2;:::o;:::-;240:611:91;;;1671:64:2;;;;;;;;;;240:611:91;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;240:611:91;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;240:611:91;;;2196:43:2;;;240:611:91;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;240:611:91;;-1:-1:-1;1671:64:2;;240:611:91;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;240:611:91;1671:64:2;2086:175;;;240:611:91;;;;;;1671:64:2;240:611:91;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;240:611:91;;;1671:64:2;240:611:91;;;-1:-1:-1;;240:611:91;2196:43:2;1671:64;240:611:91;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;240:611:91;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;240:611:91;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;240:611:91;1671:64:2;;;240:611:91;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;240:611:91;1671:64:2;240:611:91;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/FvmAddressHelper.sol\":\"FvmAddressHelperTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"test/helpers/FvmAddressHelper.sol\":{\"keccak256\":\"0xbede06413d4a097bac615f0039e902a4b5d0328b90ae3aa89f9f9330cabea876\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a1d5b00ee114b365f522530a9ea98b1a961990ce56b0fe247728314c102c2985\",\"dweb:/ipfs/QmakeS6THFnWeFmn54rtjf2KuueK162Xf5FPN3Y4iFzoUv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/FvmAddressHelper.sol":"FvmAddressHelperTest"},"libraries":{},"viaIR":true},"sources":{"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"test/helpers/FvmAddressHelper.sol":{"keccak256":"0xbede06413d4a097bac615f0039e902a4b5d0328b90ae3aa89f9f9330cabea876","urls":["bzz-raw://a1d5b00ee114b365f522530a9ea98b1a961990ce56b0fe247728314c102c2985","dweb:/ipfs/QmakeS6THFnWeFmn54rtjf2KuueK162Xf5FPN3Y4iFzoUv"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/FvmAddressHelper.sol","id":55552,"exportedSymbols":{"DSTest":[3720],"DelegatedAddress":[50005],"FvmAddress":[49998],"FvmAddressHelper":[40962],"FvmAddressHelperTest":[55551],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"Test":[12740],"TestBase":[3780],"Vm":[14222],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:806:91","nodes":[{"id":55457,"nodeType":"PragmaDirective","src":"46:23:91","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55458,"nodeType":"ImportDirective","src":"71:28:91","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55552,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":55459,"nodeType":"ImportDirective","src":"100:31:91","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":55552,"sourceUnit":22287,"symbolAliases":[],"unitAlias":""},{"id":55460,"nodeType":"ImportDirective","src":"133:44:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55552,"sourceUnit":40963,"symbolAliases":[],"unitAlias":""},{"id":55462,"nodeType":"ImportDirective","src":"178:60:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55552,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":55461,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"186:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55551,"nodeType":"ContractDefinition","src":"240:611:91","nodes":[{"id":55468,"nodeType":"UsingForDirective","src":"284:38:91","nodes":[],"global":false,"libraryName":{"id":55465,"name":"FvmAddressHelper","nameLocations":["290:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"290:16:91"},"typeName":{"id":55467,"nodeType":"UserDefinedTypeName","pathNode":{"id":55466,"name":"FvmAddress","nameLocations":["311:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"311:10:91"},"referencedDeclaration":49998,"src":"311:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":55550,"nodeType":"FunctionDefinition","src":"328:521:91","nodes":[],"body":{"id":55549,"nodeType":"Block","src":"403:446:91","nodes":[],"statements":[{"assignments":[55476],"declarations":[{"constant":false,"id":55476,"mutability":"mutable","name":"converted","nameLocation":"482:9:91","nodeType":"VariableDeclaration","scope":55549,"src":"469:22:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55475,"name":"bytes","nodeType":"ElementaryTypeName","src":"469:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55484,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55479,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55470,"src":"504:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"511:6:91","memberName":"length","nodeType":"MemberAccess","src":"504:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":55481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"520:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"504:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"494:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":55477,"name":"bytes","nodeType":"ElementaryTypeName","src":"498:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":55483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"494:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"469:53:91"},{"assignments":[55486],"declarations":[{"constant":false,"id":55486,"mutability":"mutable","name":"_base","nameLocation":"546:5:91","nodeType":"VariableDeclaration","scope":55549,"src":"533:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55485,"name":"bytes","nodeType":"ElementaryTypeName","src":"533:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55488,"initialValue":{"hexValue":"30313233343536373839616263646566","id":55487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"554:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"nodeType":"VariableDeclarationStatement","src":"533:39:91"},{"body":{"id":55538,"nodeType":"Block","src":"627:157:91","statements":[{"expression":{"id":55516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55500,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55476,"src":"641:9:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55504,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55501,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"651:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":55502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"655:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"651:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"641:16:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":55505,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"660:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55515,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":55508,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55470,"src":"672:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55510,"indexExpression":{"id":55509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"679:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"672:9:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":55507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"666:5:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":55506,"name":"uint8","nodeType":"ElementaryTypeName","src":"666:5:91","typeDescriptions":{}}},"id":55511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"666:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":55512,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"685:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"691:6:91","memberName":"length","nodeType":"MemberAccess","src":"685:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"666:31:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"660:38:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"641:57:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":55517,"nodeType":"ExpressionStatement","src":"641:57:91"},{"expression":{"id":55536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55518,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55476,"src":"712:9:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55524,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55519,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"722:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":55520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"726:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"722:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"730:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"722:9:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"712:20:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":55525,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"735:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55535,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":55528,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55470,"src":"747:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55530,"indexExpression":{"id":55529,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"754:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"747:9:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":55527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"741:5:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":55526,"name":"uint8","nodeType":"ElementaryTypeName","src":"741:5:91","typeDescriptions":{}}},"id":55531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"741:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":55532,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"760:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"766:6:91","memberName":"length","nodeType":"MemberAccess","src":"760:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"741:31:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"735:38:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"712:61:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":55537,"nodeType":"ExpressionStatement","src":"712:61:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55493,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"603:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":55494,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55470,"src":"607:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"614:6:91","memberName":"length","nodeType":"MemberAccess","src":"607:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"603:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55539,"initializationExpression":{"assignments":[55490],"declarations":[{"constant":false,"id":55490,"mutability":"mutable","name":"i","nameLocation":"596:1:91","nodeType":"VariableDeclaration","scope":55539,"src":"588:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55489,"name":"uint256","nodeType":"ElementaryTypeName","src":"588:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55492,"initialValue":{"hexValue":"30","id":55491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"600:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"588:13:91"},"loopExpression":{"expression":{"id":55498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"622:3:91","subExpression":{"id":55497,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"622:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55499,"nodeType":"ExpressionStatement","src":"622:3:91"},"nodeType":"ForStatement","src":"583:201:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"3078","id":55544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"825:4:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837","typeString":"literal_string \"0x\""},"value":"0x"},{"id":55545,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55476,"src":"831:9:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837","typeString":"literal_string \"0x\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":55542,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"808:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"812:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"808:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"808:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"801:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":55540,"name":"string","nodeType":"ElementaryTypeName","src":"801:6:91","typeDescriptions":{}}},"id":55547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"801:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":55474,"id":55548,"nodeType":"Return","src":"794:48:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"iToHex","nameLocation":"337:6:91","parameters":{"id":55471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55470,"mutability":"mutable","name":"buffer","nameLocation":"357:6:91","nodeType":"VariableDeclaration","scope":55550,"src":"344:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55469,"name":"bytes","nodeType":"ElementaryTypeName","src":"344:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"343:21:91"},"returnParameters":{"id":55474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55550,"src":"388:13:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55472,"name":"string","nodeType":"ElementaryTypeName","src":"388:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"387:15:91"},"scope":55551,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55463,"name":"Test","nameLocations":["273:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"273:4:91"},"id":55464,"nodeType":"InheritanceSpecifier","src":"273:4:91"}],"canonicalName":"FvmAddressHelperTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55551,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"FvmAddressHelperTest","nameLocation":"249:20:91","scope":55552,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002d57600160ff19818160005416176000556004541617600455610c8e90816100338239f35b600080fdfe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220a40f690e0238a1c7609375d7081de33a8e66284b3a638580955381c8d1d988c364736f6c63430008130033","sourceMap":"240:611:94:-:0;;;;;;;1594:4:2;240:611:94;;;;1594:4:2;240:611:94;;;1594:4:2;240:611:94;3201:4:5;240:611:94;;;3201:4:5;240:611:94;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220a40f690e0238a1c7609375d7081de33a8e66284b3a638580955381c8d1d988c364736f6c63430008130033","sourceMap":"240:611:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;240:611:94;;;;:::i;:::-;;1671:64:2;240:611:94;;1671:64:2;;;:::i;:::-;240:611:94;;;1982:18:8;240:611:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;240:611:94;;;;;;;;-1:-1:-1;240:611:94;;;;;-1:-1:-1;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:94;;;;;-1:-1:-1;240:611:94;;;;;;;;;-1:-1:-1;240:611:94;;;;-1:-1:-1;;;;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;240:611:94;;;;:::i;:::-;;1671:64:2;240:611:94;;1671:64:2;;;:::i;:::-;240:611:94;;;2899:18:8;240:611:94;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;240:611:94;;-1:-1:-1;;;;;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:94;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:94;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:94;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:94;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:94;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:94;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:94;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;240:611:94;;;;:::i;:::-;;1671:64:2;240:611:94;;1671:64:2;;;:::i;:::-;240:611:94;;;2416:18:8;240:611:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;240:611:94;;;;;;;;-1:-1:-1;240:611:94;;;;;-1:-1:-1;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:94;;;;;-1:-1:-1;240:611:94;;;;;;;;;-1:-1:-1;240:611:94;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;240:611:94;;;;:::i;:::-;;1671:64:2;240:611:94;;1671:64:2;;;:::i;:::-;240:611:94;;;2592:26:8;240:611:94;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;240:611:94;;-1:-1:-1;;;;;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:94;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;240:611:94;;;;;;;;;;;;;;;;;1671:64:2;240:611:94;1671:64:2;;;;;;;;;;;240:611:94;1671:64:2;:::o;:::-;240:611:94;;;1671:64:2;;;;;;;;;;240:611:94;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;240:611:94;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;240:611:94;;;2196:43:2;;;240:611:94;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;240:611:94;;-1:-1:-1;1671:64:2;;240:611:94;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;240:611:94;1671:64:2;2086:175;;;240:611:94;;;;;;1671:64:2;240:611:94;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;240:611:94;;;1671:64:2;240:611:94;;;-1:-1:-1;;240:611:94;2196:43:2;1671:64;240:611:94;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;240:611:94;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;240:611:94;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;240:611:94;1671:64:2;;;240:611:94;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;240:611:94;1671:64:2;240:611:94;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/FvmAddressHelper.sol\":\"FvmAddressHelperTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"test/helpers/FvmAddressHelper.sol\":{\"keccak256\":\"0xbede06413d4a097bac615f0039e902a4b5d0328b90ae3aa89f9f9330cabea876\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a1d5b00ee114b365f522530a9ea98b1a961990ce56b0fe247728314c102c2985\",\"dweb:/ipfs/QmakeS6THFnWeFmn54rtjf2KuueK162Xf5FPN3Y4iFzoUv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/FvmAddressHelper.sol":"FvmAddressHelperTest"},"libraries":{},"viaIR":true},"sources":{"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"test/helpers/FvmAddressHelper.sol":{"keccak256":"0xbede06413d4a097bac615f0039e902a4b5d0328b90ae3aa89f9f9330cabea876","urls":["bzz-raw://a1d5b00ee114b365f522530a9ea98b1a961990ce56b0fe247728314c102c2985","dweb:/ipfs/QmakeS6THFnWeFmn54rtjf2KuueK162Xf5FPN3Y4iFzoUv"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/FvmAddressHelper.sol","id":55853,"exportedSymbols":{"DSTest":[3720],"DelegatedAddress":[49958],"FvmAddress":[49951],"FvmAddressHelper":[40906],"FvmAddressHelperTest":[55852],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"Test":[12740],"TestBase":[3780],"Vm":[14222],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:806:94","nodes":[{"id":55758,"nodeType":"PragmaDirective","src":"46:23:94","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55759,"nodeType":"ImportDirective","src":"71:28:94","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55853,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":55760,"nodeType":"ImportDirective","src":"100:31:94","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":55853,"sourceUnit":22287,"symbolAliases":[],"unitAlias":""},{"id":55761,"nodeType":"ImportDirective","src":"133:44:94","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55853,"sourceUnit":40907,"symbolAliases":[],"unitAlias":""},{"id":55763,"nodeType":"ImportDirective","src":"178:60:94","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55853,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":55762,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"186:10:94","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55852,"nodeType":"ContractDefinition","src":"240:611:94","nodes":[{"id":55769,"nodeType":"UsingForDirective","src":"284:38:94","nodes":[],"global":false,"libraryName":{"id":55766,"name":"FvmAddressHelper","nameLocations":["290:16:94"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"290:16:94"},"typeName":{"id":55768,"nodeType":"UserDefinedTypeName","pathNode":{"id":55767,"name":"FvmAddress","nameLocations":["311:10:94"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"311:10:94"},"referencedDeclaration":49951,"src":"311:10:94","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":55851,"nodeType":"FunctionDefinition","src":"328:521:94","nodes":[],"body":{"id":55850,"nodeType":"Block","src":"403:446:94","nodes":[],"statements":[{"assignments":[55777],"declarations":[{"constant":false,"id":55777,"mutability":"mutable","name":"converted","nameLocation":"482:9:94","nodeType":"VariableDeclaration","scope":55850,"src":"469:22:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55776,"name":"bytes","nodeType":"ElementaryTypeName","src":"469:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55785,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55780,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55771,"src":"504:6:94","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"511:6:94","memberName":"length","nodeType":"MemberAccess","src":"504:13:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":55782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"520:1:94","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"504:17:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"494:9:94","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":55778,"name":"bytes","nodeType":"ElementaryTypeName","src":"498:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":55784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"494:28:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"469:53:94"},{"assignments":[55787],"declarations":[{"constant":false,"id":55787,"mutability":"mutable","name":"_base","nameLocation":"546:5:94","nodeType":"VariableDeclaration","scope":55850,"src":"533:18:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55786,"name":"bytes","nodeType":"ElementaryTypeName","src":"533:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55789,"initialValue":{"hexValue":"30313233343536373839616263646566","id":55788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"554:18:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"nodeType":"VariableDeclarationStatement","src":"533:39:94"},{"body":{"id":55839,"nodeType":"Block","src":"627:157:94","statements":[{"expression":{"id":55817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55801,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55777,"src":"641:9:94","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55805,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55802,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"651:1:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":55803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"655:1:94","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"651:5:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"641:16:94","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":55806,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55787,"src":"660:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55816,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":55809,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55771,"src":"672:6:94","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55811,"indexExpression":{"id":55810,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"679:1:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"672:9:94","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":55808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"666:5:94","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":55807,"name":"uint8","nodeType":"ElementaryTypeName","src":"666:5:94","typeDescriptions":{}}},"id":55812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"666:16:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":55813,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55787,"src":"685:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"691:6:94","memberName":"length","nodeType":"MemberAccess","src":"685:12:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"666:31:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"660:38:94","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"641:57:94","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":55818,"nodeType":"ExpressionStatement","src":"641:57:94"},{"expression":{"id":55837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55819,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55777,"src":"712:9:94","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55825,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55820,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"722:1:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":55821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"726:1:94","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"722:5:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"730:1:94","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"722:9:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"712:20:94","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":55826,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55787,"src":"735:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55836,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":55829,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55771,"src":"747:6:94","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55831,"indexExpression":{"id":55830,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"754:1:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"747:9:94","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":55828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"741:5:94","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":55827,"name":"uint8","nodeType":"ElementaryTypeName","src":"741:5:94","typeDescriptions":{}}},"id":55832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"741:16:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":55833,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55787,"src":"760:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"766:6:94","memberName":"length","nodeType":"MemberAccess","src":"760:12:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"741:31:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"735:38:94","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"712:61:94","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":55838,"nodeType":"ExpressionStatement","src":"712:61:94"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55794,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"603:1:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":55795,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55771,"src":"607:6:94","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"614:6:94","memberName":"length","nodeType":"MemberAccess","src":"607:13:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"603:17:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55840,"initializationExpression":{"assignments":[55791],"declarations":[{"constant":false,"id":55791,"mutability":"mutable","name":"i","nameLocation":"596:1:94","nodeType":"VariableDeclaration","scope":55840,"src":"588:9:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55790,"name":"uint256","nodeType":"ElementaryTypeName","src":"588:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55793,"initialValue":{"hexValue":"30","id":55792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"600:1:94","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"588:13:94"},"loopExpression":{"expression":{"id":55799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"622:3:94","subExpression":{"id":55798,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"622:1:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55800,"nodeType":"ExpressionStatement","src":"622:3:94"},"nodeType":"ForStatement","src":"583:201:94"},{"expression":{"arguments":[{"arguments":[{"hexValue":"3078","id":55845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"825:4:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837","typeString":"literal_string \"0x\""},"value":"0x"},{"id":55846,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55777,"src":"831:9:94","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837","typeString":"literal_string \"0x\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":55843,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"808:3:94","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"812:12:94","memberName":"encodePacked","nodeType":"MemberAccess","src":"808:16:94","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"808:33:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"801:6:94","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":55841,"name":"string","nodeType":"ElementaryTypeName","src":"801:6:94","typeDescriptions":{}}},"id":55848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"801:41:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":55775,"id":55849,"nodeType":"Return","src":"794:48:94"}]},"implemented":true,"kind":"function","modifiers":[],"name":"iToHex","nameLocation":"337:6:94","parameters":{"id":55772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55771,"mutability":"mutable","name":"buffer","nameLocation":"357:6:94","nodeType":"VariableDeclaration","scope":55851,"src":"344:19:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55770,"name":"bytes","nodeType":"ElementaryTypeName","src":"344:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"343:21:94"},"returnParameters":{"id":55775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55851,"src":"388:13:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55773,"name":"string","nodeType":"ElementaryTypeName","src":"388:6:94","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"387:15:94"},"scope":55852,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55764,"name":"Test","nameLocations":["273:4:94"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"273:4:94"},"id":55765,"nodeType":"InheritanceSpecifier","src":"273:4:94"}],"canonicalName":"FvmAddressHelperTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55852,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"FvmAddressHelperTest","nameLocation":"249:20:94","scope":55853,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":94} \ No newline at end of file diff --git a/.out/GatewayDiamond.sol/GatewayDiamond.json b/.out/GatewayDiamond.sol/GatewayDiamond.json index dfb567bd7..870d5a965 100644 --- a/.out/GatewayDiamond.sol/GatewayDiamond.json +++ b/.out/GatewayDiamond.sol/GatewayDiamond.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct GatewayDiamond.ConstructorParams","components":[{"name":"networkName","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"bottomUpCheckPeriod","type":"uint256","internalType":"uint256"},{"name":"msgFee","type":"uint256","internalType":"uint256"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"genesisValidators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidMajorityPercentage","inputs":[]},{"type":"error","name":"InvalidSubmissionPeriod","inputs":[]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"OldConfigurationNumber","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"1116:4466:37:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1116:4466:37;;;-1:-1:-1;;;;;;;1116:4466:37;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1671:31;1667:94;;1116:4466;;;;;;1803:2;1775:30;;:65;;;;;1116:4466;1771:130;;;2258:16:62;1116:4466:37;;-1:-1:-1;;;;;;1116:4466:37;1939:10;1116:4466;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;-1:-1:-1;1116:4466:37;;1108:5;;-1:-1:-1;2937:19:62;;;;;;1116:4466:37;;;;;;;;;;;;1108:5;1116:4466;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;3911:74:62;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;:::i;:::-;3911:74:62;;;2170:22:37;1116:4466;;;;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1116:4466:37;;;;;;;;;;2404:14;998:1;;-1:-1:-1;;1108:5:37;2170:22;1108:5;;;2740:18;;1108:5;;2724:13;1108:5;;-1:-1:-1;;;;;;1108:5:37;;;-1:-1:-1;;;;;1116:4466:37;;;1108:5;;;;;;;;;;;1116:4466;;;1108:5;;;;;;;1116:4466;1108:5;;;;1116:4466;1108:5;;;;;;;;;;;1116:4466;1108:5;;;-1:-1:-1;1108:5:37;1116:4466;-1:-1:-1;1108:5:37;-1:-1:-1;1108:5:37;;;;;;4069:7;1116:4466;;2928:21;1116:4466;;;;;;;2768:21;1108:5;1116:4466;;;;2828:16;1108:5;1116:4466;;;;;;998:1;2870:20;998:1;1116:4466;;2870:20;998:1;1108:5;2928:37;1108:5;2979:43;1108:5;282:3:80;3219:24:37;1108:5;1116:4466;1108:5;;;1116:4466;1108:5;1116:4466;;;246:2:80;953:5:37;1116:4466;246:2:80;953:5:37;;;;246:2:80;953:5:37;246:2:80;;;1116:4466:37;246:2:80;15673:1:69;1116:4466:37;15673:1:69;;;;;3518:27:37;1108:5;15673:1:69;;3518:27:37;15673:1:69;1116:4466:37;4005:24;1116:4466;;;;;;:::i;:::-;15673:1:69;;-1:-1:-1;1116:4466:37;3957:74;;15673:1:69;4069:7:37;:::i;:::-;1116:4466;;;;;;;;;1108:5;;;-1:-1:-1;;;;;1116:4466:37;1108:5;;;;1116:4466;1108:5;;;;;;;;;;;;-1:-1:-1;1108:5:37;;;-1:-1:-1;1108:5:37;;;;;;;:::i;:::-;;;;;1116:4466;;;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:62;1116:4466:37;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;1108:5:37;1116:4466;1108:5;;;3142:29:62;3138:122;;1116:4466:37;3309:23:62;;;;:::i;:::-;;:30;1116:4466:37;;;;;;;3357:37:62;;;4150:27;;;4146:116;;1116:4466:37;-1:-1:-1;;;;;;;;;;;1108:5:37;1116:4466;4385:74:62;1116:4466:37;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;4385:74:62;;:::i;:::-;1108:5:37;;4526:21:62;-1:-1:-1;4521:677:62;4549:22;;;;;;3353:466;;;;;1116:4466:37;3353:466:62;;1116:4466:37;2917:18:62;;4526:21;-1:-1:-1;;;;;;4607:33:62;;;;:::i;:::-;1116:4466:37;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;4751:128:62;;1116:4466:37;;;;;;:::i;:::-;;;;;;;;;;4939:107:62;;;1116:4466:37;;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;1108:5;;1116:4466;;246:2:80;;-1:-1:-1;;;;;;1116:4466:37;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;:::i;:::-;;;;;;;;;;;;;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;4526:21:62;;;1116:4466:37;;;;-1:-1:-1;1108:5:37;;;;;-1:-1:-1;1108:5:37;4751:128:62;1116:4466:37;;-1:-1:-1;;;4811:53:62;;;;;1116:4466:37;;;;;4811:53:62;4146:116;1116:4466:37;;-1:-1:-1;;;4200:51:62;;1116:4466:37;4200:51:62;;;1116:4466:37;;;;;;;;;;;:::i;:::-;4200:51:62;;;3353:466;1116:4466:37;3484:41:62;;1116:4466:37;;5372:27:62;;;5368:131;;5508:81;1116:4466:37;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;5508:81:62;;:::i;:::-;1108:5:37;;5652:21:62;-1:-1:-1;5675:18:62;;;;;;3480:339;;;;1116:4466:37;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;1116:4466:37;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;-1:-1:-1;;;;;1116:4466:37;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;-1:-1:-1;;;;;;1116:4466:37;;;;;;;5652:21:62;;6268:123;1116:4466:37;;;;6328:48:62;;;;;;;;;1116:4466:37;6328:48:62;6111:144;1116:4466:37;;-1:-1:-1;;;6174:66:62;;;;;1116:4466:37;;;;;6174:66:62;5980:118;1116:4466:37;;-1:-1:-1;;;6043:40:62;;;;;1116:4466:37;;;;;6043:40:62;5368:131;1116:4466:37;;-1:-1:-1;;;5422:66:62;;1116:4466:37;5422:66:62;;;1116:4466:37;;;;;;;;;;;:::i;3480:339:62:-;3629:30;3619:40;;3629:30;;1108:5:37;-1:-1:-1;;;;;;;;;;;1108:5:37;6826:27:62;;6822:115;;1108:5:37;;;6999:21:62;-1:-1:-1;7022:18:62;;;;;;3615:204;;;;1116:4466:37;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;1116:4466:37;;;;-1:-1:-1;1116:4466:37;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;-1:-1:-1;1116:4466:37;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;7278:61:62;7274:153;;1108:5:37;;-1:-1:-1;;;;;1116:4466:37;7597:4:62;7538:64;7534:149;;1116:4466:37;;;;;;;;;;;;;246:2:80;1116:4466:37;7780:68:62;7776:412;;6999:21;1108:5:37;-1:-1:-1;;;;;;;;;;;1108:5:37;1116:4466;;;;;;;-1:-1:-1;;1116:4466:37;;;;:::i;:::-;;;;;;;1108:5;1116:4466;;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;-1:-1:-1;1116:4466:37;-1:-1:-1;;;;;;;;;;;1116:4466:37;;-1:-1:-1;1116:4466:37;;;;;6999:21:62;;1116:4466:37;;;;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;7776:412:62;8033:140;7890:27;1116:4466:37;;7890:27:62;;;:::i;:::-;1116:4466:37;;;;;1108:5;1116:4466;;;7935:80:62;1116:4466:37;7935:65:62;1116:4466:37;;;;246:2:80;1116:4466:37;7935:65:62;:::i;:80::-;1116:4466:37;246:2:80;-1:-1:-1;;;;;;1116:4466:37;;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;-1:-1:-1;;;;1116:4466:37;;;;;;;-1:-1:-1;;;1116:4466:37;;;;;8033:140:62;7776:412;;;7534:149;1116:4466:37;;-1:-1:-1;;;7629:39:62;;;;;1116:4466:37;;;;;7629:39:62;7274:153;1116:4466:37;;-1:-1:-1;;;7366:46:62;;;;;1116:4466:37;;;;;7366:46:62;6822:115;1116:4466:37;;;;6876:50:62;;;;;;;;;1116:4466:37;6876:50:62;3615:204;1116:4466:37;;-1:-1:-1;;;3773:31:62;;1116:4466:37;;;;3773:31:62;;;;1116:4466:37;:::i;:::-;3773:31:62;1116:4466:37;;;;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;3138:122:62;1116:4466:37;;-1:-1:-1;;;3198:47:62;;;;;1116:4466:37;;;;;3198:47:62;1771:130:37;1116:4466;;-1:-1:-1;;;1863:27:37;;;;;1775:65;1837:3;1809:31;;;1775:65;;;1667:94;1116:4466;;-1:-1:-1;;;1725:25:37;;;;;1116:4466;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;;;;;1116:4466:37;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;-1:-1:-1;;1116:4466:37;;-1:-1:-1;1116:4466:37;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1116:4466:37;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1116:4466:37;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1116:4466:37;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1116:4466:37;;;;:::o;:::-;;;;;;;;;;;;;1108:5;;;;;;;;:::o;:::-;;;;;;;;1116:4466;1108:5;;1116:4466;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1108:5;;1116:4466;;;;;;;;1108:5;;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;1108:5;;1116:4466;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1116:4466:37;;;;:::o;:::-;;-1:-1:-1;;;;;;;;;;;1108:5:37;;1116:4466;;;;;-1:-1:-1;1108:5:37;1116:4466;1108:5;-1:-1:-1;1108:5:37;1116:4466;;;;;;;;;:::o;9308:320:62:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;1116:4466:37;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;1116:4466:37;;;9566:45:62;;;1116:4466:37;;;;;;;;;;;;;;;:::i;:::-;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;;1108:5;;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1108:5;-1:-1:-1;1108:5:37;;-1:-1:-1;1108:5:37;1116:4466;1108:5;1116:4466;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;1116:4466;;;;;:::o;:::-;;;;-1:-1:-1;1116:4466:37;;;;;1108:5;;;;;;;;;;;;;-1:-1:-1;1108:5:37;-1:-1:-1;;1116:4466:37;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1108:5;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;6344:19:63;1108:5:37;1116:4466;;;;;6344:19:63;-1:-1:-1;1108:5:37;1116:4466;1108:5;-1:-1:-1;1108:5:37;1116:4466;;;;-1:-1:-1;1116:4466:37;:::o;:::-;;;;;;1108:5;;1116:4466;;;;1108:5;1116:4466;;;;;;-1:-1:-1;;;;;;1116:4466:37;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;1108:5;;;1116:4466;;;;;;1108:5;1116:4466;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;1108:5;1116:4466;;;;;:::o;:::-;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;1108:5;-1:-1:-1;1108:5:37;;-1:-1:-1;1108:5:37;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1108:5;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;1108:5;;;;;;;;6087:1976:63;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6167:29:63;1116:4466:37;;;;;;;;;;;;;;;;;;;6167:29:63;;;6344:39;1116:4466:37;;;;;6344:44:63;6340:621;;6087:1976;6344:19;;;1108:5:37;;;1116:4466;;;;;;;;6971:16:63;1108:5:37;1116:4466;6971:16:63;1116:4466:37;;;;;;6087:1976:63;1116:4466:37;;1108:5;;;;;;;6971:16:63;1108:5:37;;;;;1116:4466;;;;;;;;;;;;;;;;;;;;;;;1108:5;;;1116:4466;1108:5;;;1116:4466;1108:5;7042:21:63;;1108:5:37;;;;7306:9:63;;7317:15;;;;;;1108:5:37;;;;1116:4466;1108:5;;;;;;;7817:25:63;;;7813:244;;7301:332;6087:1976;;;;;;:::o;7813:244::-;7888:15;;;;7813:244;7888:15;1108:5:37;;1116:4466;;;;-1:-1:-1;;1116:4466:37;;;;;:::i;:::-;;;;;;1108:5;;;1116:4466;;;;;;;;;;;;;;:::i;:::-;;;;7863:23:63;1116:4466:37;;;;;;7863:23:63;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;1108:5;;;;;;;;;1116:4466;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;1108:5:37;;;;;;1116:4466;1108:5;1116:4466;-1:-1:-1;;;1116:4466:37;;;;;;;;7306:9:63;7354:15;;;;;;7425:21;7389:60;7425:24;1116:4466:37;7425:21:63;;;:24;:::i;:::-;;7389:33;;;:::i;:::-;:60;;:::i;:::-;1116:4466:37;7306:9:63;;7350:214;7524:24;:21;;;:24;:::i;:::-;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7350:214:63;;1116:4466:37;-1:-1:-1;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1108:5;;;;;;;;;;;;;;;;;;;;;1116:4466;;1108:5;6971:16:63;1108:5:37;;;;;1116:4466;;;;;;;;;;;;;;;;;;;;1108:5;;;;;;;1116:4466;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;;;;;1116:4466;1108:5;;;;1116:4466;;;;;;;;;;:::i;:::-;;;;;1108:5;;1116:4466;;;;;1108:5;;;1116:4466;1108:5;;;1116:4466;;;;;1108:5;;;1116:4466;1108:5;1116:4466;;;;;;;;;;;;6340:621:63;1108:5:37;;;1116:4466;;6442:36:63;1116:4466:37;;6408:70:63;;;;6404:115;;6632:69;6628:139;;1116:4466:37;;;;;;:::i;:::-;6344:19:63;1108:5:37;1116:4466;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;1108:5;6344:19:63;-1:-1:-1;1108:5:37;;-1:-1:-1;1108:5:37;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;-1:-1:-1;;;15673:1:69;;;-1:-1:-1;;1116:4466:37;;;15673:1:69;6862:48:63;;;;:::i;:::-;6858:93;;6340:621;;;;6858:93;6930:7;;;;;:::o;1116:4466:37:-;;;;;;;;;:::i;:::-;;;15673:1:69;;1116:4466:37;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;:::i;:::-;;;;;;;;;6344:39:63;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15673:1:69;1116:4466:37;;;;;;;;;;;;-1:-1:-1;1108:5:37;;;;;;-1:-1:-1;;;1116:4466:37;;;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;-1:-1:-1;1116:4466:37;;-1:-1:-1;1116:4466:37;;6628:139:63;1116:4466:37;;-1:-1:-1;;;6728:24:63;;6344:19;;6728:24;6404:115;6498:7;;;;;;;;;:::o;8598:561::-;8712:23;;;;1108:5:37;8739:23:63;;;1108:5:37;8712:23:63;;;-1:-1:-1;;;;;1116:4466:37;;;;;8712:50:63;8708:93;;8814:26;;;:::i;:::-;8844;;;:::i;:::-;8814:56;8810:99;;8922:14;1108:5:37;;8947:14:63;;1108:5:37;8922:46:63;8918:89;;9099:26;1116:4466:37;;;;9039:26:63;;1116:4466:37;9039:26:63;;;1116:4466:37;;;;;;;;;:::i;:::-;9039:26:63;1116:4466:37;9039:26:63;1116:4466:37;;9039:26:63;;;;;;;;:::i;:::-;1108:5:37;9029:37:63;;9110:14;;1116:4466:37;;9099:26:63;;;;;;1116:4466:37;;;;;;;;:::i;:::-;9099:26:63;;;;;;;;:::i;:::-;1108:5:37;9089:37:63;;9144:8;8598:561;:::o;8918:89::-;8984:12;;;-1:-1:-1;8984:12:63;:::o;8132:387::-;8243:15;;1108:5:37;8275:29:63;1108:5:37;8319:9:63;;8314:161;8330:7;;;;;;8484:28;;;8132:387;:::o;8319:9::-;8380:15;;;:18;:15;;;:18;:::i;:::-;;1116:4466:37;;;;;;;;8355:50:63;1116:4466:37;;;8319:9:63;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033","sourceMap":"1116:4466:37:-:0;;;;;;;-1:-1:-1;4473:7:37;;-1:-1:-1;;;;;;4473:7:37;260:43:62;;;;;;1116:4466:37;260:43:62;;;-1:-1:-1;;;;;260:43:62;;4508:19:37;;4504:82;;1116:4466;;;;;4730:593;;;1116:4466;;4730:593;;;;;;;;;;;;;;;;;4504:82;260:43:62;;1116:4466:37;260:43:62;4550:25:37;;;;;;;;;260:43:62;4550:25:37;1116:4466;-1:-1:-1;4473:7:37;;-1:-1:-1;;;;;;4473:7:37;260:43:62;;;;;;1116:4466:37;260:43:62;;;-1:-1:-1;;;;;260:43:62;;4508:19:37;;4504:82;;1116:4466;;;;;4730:593;;;1116:4466;;4730:593;;;;;;;;;;;;;4504:82;4550:25;;;1116:4466;4550:25;;260:43:62;4550:25:37;1116:4466;4550:25","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"networkName\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"msgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"genesisValidators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"}],\"internalType\":\"struct GatewayDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubmissionPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/GatewayDiamond.sol\":\"GatewayDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct GatewayDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"networkName","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"bottomUpCheckPeriod","type":"uint256"},{"internalType":"uint256","name":"msgFee","type":"uint256"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"struct Validator[]","name":"genesisValidators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[],"type":"error","name":"InvalidMajorityPercentage"},{"inputs":[],"type":"error","name":"InvalidSubmissionPeriod"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"OldConfigurationNumber"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/GatewayDiamond.sol":"GatewayDiamond"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/GatewayDiamond.sol","id":36171,"exportedSymbols":{"BATCH_PERIOD":[49913],"FEATURE_CHECKPOINT_RELAYER_REWARDS":[35861],"FEATURE_CROSSMSG_RELAYER_REWARDS":[35864],"FEATURE_GENERAL_PUPRPOSE_CROSSMSG":[35855],"FEATURE_MULTILEVEL_CROSSMSG":[35852],"FEATURE_SUBNET_DEPTH":[35858],"FunctionNotFound":[35849],"GatewayActorStorage":[43068],"GatewayDiamond":[36170],"IDiamond":[40170],"IDiamondCut":[40189],"IDiamondLoupe":[40230],"IERC165":[40241],"InvalidCollateral":[37416],"InvalidMajorityPercentage":[37428],"InvalidSubmissionPeriod":[37444],"LibDiamond":[41682],"LibGateway":[42944],"LibStaking":[46176],"MAX_MSGS_PER_BATCH":[49910],"Membership":[50218],"SubnetID":[50077],"Validator":[50211]},"nodeType":"SourceUnit","src":"46:5537:37","nodes":[{"id":35817,"nodeType":"PragmaDirective","src":"46:23:37","nodes":[],"literals":["solidity","0.8",".19"]},{"id":35819,"nodeType":"ImportDirective","src":"71:69:37","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"./lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":35818,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43068,"src":"79:19:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35821,"nodeType":"ImportDirective","src":"141:51:37","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":35820,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"149:8:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35823,"nodeType":"ImportDirective","src":"193:57:37","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"./interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":35822,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"201:11:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35825,"nodeType":"ImportDirective","src":"251:61:37","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":35824,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"259:13:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35827,"nodeType":"ImportDirective","src":"313:49:37","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":35826,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"321:7:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35830,"nodeType":"ImportDirective","src":"363:59:37","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":35828,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"371:9:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35829,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"382:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35834,"nodeType":"ImportDirective","src":"423:109:37","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":35831,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37416,"src":"431:17:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35832,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"450:23:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35833,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"475:25:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35836,"nodeType":"ImportDirective","src":"533:48:37","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":35835,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"541:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35838,"nodeType":"ImportDirective","src":"582:48:37","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"./lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":35837,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"590:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35840,"nodeType":"ImportDirective","src":"631:46:37","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":35839,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"639:8:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35842,"nodeType":"ImportDirective","src":"678:48:37","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"./lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":35841,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"686:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35845,"nodeType":"ImportDirective","src":"727:72:37","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"./structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":35843,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49913,"src":"735:12:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35844,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49910,"src":"749:18:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35849,"nodeType":"ErrorDefinition","src":"801:49:37","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"807:16:37","parameters":{"id":35848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35847,"mutability":"mutable","name":"_functionSelector","nameLocation":"831:17:37","nodeType":"VariableDeclaration","scope":35849,"src":"824:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":35846,"name":"bytes4","nodeType":"ElementaryTypeName","src":"824:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"823:26:37"}},{"id":35852,"nodeType":"VariableDeclaration","src":"852:49:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_MULTILEVEL_CROSSMSG","nameLocation":"866:27:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35850,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"896:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35855,"nodeType":"VariableDeclaration","src":"903:55:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_GENERAL_PUPRPOSE_CROSSMSG","nameLocation":"917:33:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35853,"name":"bool","nodeType":"ElementaryTypeName","src":"903:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"953:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35858,"nodeType":"VariableDeclaration","src":"960:39:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_SUBNET_DEPTH","nameLocation":"975:20:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":35856,"name":"uint8","nodeType":"ElementaryTypeName","src":"960:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":35857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"998:1:37","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"id":35861,"nodeType":"VariableDeclaration","src":"1001:56:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_CHECKPOINT_RELAYER_REWARDS","nameLocation":"1015:34:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35859,"name":"bool","nodeType":"ElementaryTypeName","src":"1001:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1052:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35864,"nodeType":"VariableDeclaration","src":"1059:54:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_CROSSMSG_RELAYER_REWARDS","nameLocation":"1073:32:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35862,"name":"bool","nodeType":"ElementaryTypeName","src":"1059:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1108:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":36170,"nodeType":"ContractDefinition","src":"1116:4466:37","nodes":[{"id":35867,"nodeType":"VariableDeclaration","src":"1146:30:37","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"1175:1:37","scope":36170,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":35866,"nodeType":"UserDefinedTypeName","pathNode":{"id":35865,"name":"GatewayActorStorage","nameLocations":["1146:19:37"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"1146:19:37"},"referencedDeclaration":43068,"src":"1146:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":35883,"nodeType":"StructDefinition","src":"1183:320:37","nodes":[],"canonicalName":"GatewayDiamond.ConstructorParams","members":[{"constant":false,"id":35870,"mutability":"mutable","name":"networkName","nameLocation":"1227:11:37","nodeType":"VariableDeclaration","scope":35883,"src":"1218:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":35869,"nodeType":"UserDefinedTypeName","pathNode":{"id":35868,"name":"SubnetID","nameLocations":["1218:8:37"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1218:8:37"},"referencedDeclaration":50077,"src":"1218:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":35872,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1256:19:37","nodeType":"VariableDeclaration","scope":35883,"src":"1248:27:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35871,"name":"uint256","nodeType":"ElementaryTypeName","src":"1248:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35874,"mutability":"mutable","name":"msgFee","nameLocation":"1379:6:37","nodeType":"VariableDeclaration","scope":35883,"src":"1371:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35873,"name":"uint256","nodeType":"ElementaryTypeName","src":"1371:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35876,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1401:18:37","nodeType":"VariableDeclaration","scope":35883,"src":"1395:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":35875,"name":"uint8","nodeType":"ElementaryTypeName","src":"1395:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":35880,"mutability":"mutable","name":"genesisValidators","nameLocation":"1441:17:37","nodeType":"VariableDeclaration","scope":35883,"src":"1429:29:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":35878,"nodeType":"UserDefinedTypeName","pathNode":{"id":35877,"name":"Validator","nameLocations":["1429:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"1429:9:37"},"referencedDeclaration":50211,"src":"1429:9:37","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":35879,"nodeType":"ArrayTypeName","src":"1429:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":35882,"mutability":"mutable","name":"activeValidatorsLimit","nameLocation":"1475:21:37","nodeType":"VariableDeclaration","scope":35883,"src":"1468:28:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":35881,"name":"uint16","nodeType":"ElementaryTypeName","src":"1468:6:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"1190:17:37","scope":36170,"visibility":"public"},{"id":36114,"nodeType":"FunctionDefinition","src":"1509:2575:37","nodes":[],"body":{"id":36113,"nodeType":"Block","src":"1594:2490:37","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35893,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"1671:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1678:19:37","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":35872,"src":"1671:26:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":35895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1701:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1671:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35901,"nodeType":"IfStatement","src":"1667:94:37","trueBody":{"id":35900,"nodeType":"Block","src":"1704:57:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35897,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"1725:23:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35899,"nodeType":"RevertStatement","src":"1718:32:37"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":35910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":35905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35902,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"1775:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35876,"src":"1775:25:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":35904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1803:2:37","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"1775:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":35909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35906,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"1809:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1816:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35876,"src":"1809:25:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":35908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1837:3:37","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1809:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1775:65:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35915,"nodeType":"IfStatement","src":"1771:130:37","trueBody":{"id":35914,"nodeType":"Block","src":"1842:59:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35911,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"1863:25:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1863:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35913,"nodeType":"RevertStatement","src":"1856:34:37"}]}},{"expression":{"arguments":[{"expression":{"id":35919,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1939:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":35920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1943:6:37","memberName":"sender","nodeType":"MemberAccess","src":"1939:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":35916,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1911:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":35918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1922:16:37","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":41102,"src":"1911:27:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":35921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1911:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35922,"nodeType":"ExpressionStatement","src":"1911:39:37"},{"expression":{"arguments":[{"id":35926,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35887,"src":"1996:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":35929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2024:1:37","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":35928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2016:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":35927,"name":"address","nodeType":"ElementaryTypeName","src":"2016:7:37","typeDescriptions":{}}},"id":35930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2016:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":35933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2049:1:37","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":35932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2039:9:37","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":35931,"name":"bytes","nodeType":"ElementaryTypeName","src":"2043:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":35934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":35923,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1960:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":35925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1971:10:37","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41262,"src":"1960:21:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":35935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1983:11:37","2009:5:37","2028:9:37"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1960:93:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35936,"nodeType":"ExpressionStatement","src":"1960:93:37"},{"assignments":[35941],"declarations":[{"constant":false,"id":35941,"mutability":"mutable","name":"ds","nameLocation":"2098:2:37","nodeType":"VariableDeclaration","scope":36113,"src":"2064:36:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":35940,"nodeType":"UserDefinedTypeName","pathNode":{"id":35939,"name":"LibDiamond.DiamondStorage","nameLocations":["2064:10:37","2075:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"2064:25:37"},"referencedDeclaration":41072,"src":"2064:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":35945,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":35942,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2103:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":35943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2114:14:37","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"2103:25:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":35944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2103:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2064:66:37"},{"expression":{"id":35955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35946,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35941,"src":"2170:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2173:19:37","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2170:22:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35953,"indexExpression":{"expression":{"arguments":[{"id":35949,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"2198:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}],"id":35948,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2193:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2193:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$40241","typeString":"type(contract IERC165)"}},"id":35951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2207:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"2193:25:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2170:49:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2222:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2170:56:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35956,"nodeType":"ExpressionStatement","src":"2170:56:37"},{"expression":{"id":35966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35957,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35941,"src":"2236:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2239:19:37","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2236:22:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35964,"indexExpression":{"expression":{"arguments":[{"id":35960,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"2264:11:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}],"id":35959,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2259:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2259:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$40189","typeString":"type(contract IDiamondCut)"}},"id":35962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2277:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"2259:29:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2236:53:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2292:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2236:60:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35967,"nodeType":"ExpressionStatement","src":"2236:60:37"},{"expression":{"id":35977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35968,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35941,"src":"2306:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2309:19:37","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2306:22:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35975,"indexExpression":{"expression":{"arguments":[{"id":35971,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"2334:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}],"id":35970,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2329:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2329:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$40230","typeString":"type(contract IDiamondLoupe)"}},"id":35973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2349:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"2329:31:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2306:55:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2364:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2306:62:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35978,"nodeType":"ExpressionStatement","src":"2306:62:37"},{"expression":{"id":35983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35979,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2404:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2406:12:37","memberName":"maxTreeDepth","nodeType":"MemberAccess","referencedDeclaration":43055,"src":"2404:14:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35982,"name":"FEATURE_SUBNET_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35858,"src":"2421:20:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2404:37:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":35984,"nodeType":"ExpressionStatement","src":"2404:37:37"},{"expression":{"id":35989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35985,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2451:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2453:22:37","memberName":"generalPurposeCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43058,"src":"2451:24:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35988,"name":"FEATURE_GENERAL_PUPRPOSE_CROSSMSG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35855,"src":"2478:33:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2451:60:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35990,"nodeType":"ExpressionStatement","src":"2451:60:37"},{"expression":{"id":35995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35991,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2521:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2523:18:37","memberName":"multiLevelCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43061,"src":"2521:20:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35994,"name":"FEATURE_MULTILEVEL_CROSSMSG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35852,"src":"2544:27:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2521:50:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35996,"nodeType":"ExpressionStatement","src":"2521:50:37"},{"expression":{"id":36001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35997,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2581:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2583:24:37","memberName":"checkpointRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43064,"src":"2581:26:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36000,"name":"FEATURE_CHECKPOINT_RELAYER_REWARDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35861,"src":"2610:34:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2581:63:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36002,"nodeType":"ExpressionStatement","src":"2581:63:37"},{"expression":{"id":36007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36003,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2654:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2656:22:37","memberName":"crossMsgRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43067,"src":"2654:24:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36006,"name":"FEATURE_CROSSMSG_RELAYER_REWARDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35864,"src":"2681:32:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2654:59:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36008,"nodeType":"ExpressionStatement","src":"2654:59:37"},{"expression":{"id":36014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36009,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2724:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2726:11:37","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"2724:13:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36012,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2740:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2747:11:37","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":35870,"src":"2740:18:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"src":"2724:34:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":36015,"nodeType":"ExpressionStatement","src":"2724:34:37"},{"expression":{"id":36021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36016,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2768:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2770:19:37","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":43042,"src":"2768:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36019,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2792:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2799:19:37","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":35872,"src":"2792:26:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2768:50:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36022,"nodeType":"ExpressionStatement","src":"2768:50:37"},{"expression":{"id":36028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36023,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2828:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2830:14:37","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":43027,"src":"2828:16:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36026,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2847:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2854:6:37","memberName":"msgFee","nodeType":"MemberAccess","referencedDeclaration":35874,"src":"2847:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2828:32:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36029,"nodeType":"ExpressionStatement","src":"2828:32:37"},{"expression":{"id":36035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2870:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2872:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":43030,"src":"2870:20:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2893:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2900:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35876,"src":"2893:25:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2870:48:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":36036,"nodeType":"ExpressionStatement","src":"2870:48:37"},{"expression":{"id":36043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36037,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2928:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2930:19:37","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"2928:21:37","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":36041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2950:15:37","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"2928:37:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":36042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2968:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2928:41:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36044,"nodeType":"ExpressionStatement","src":"2928:41:37"},{"expression":{"id":36051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36045,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2979:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2981:25:37","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"2979:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":36049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3007:15:37","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"2979:43:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":36050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3025:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2979:47:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36052,"nodeType":"ExpressionStatement","src":"2979:47:37"},{"expression":{"id":36057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36053,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3219:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3221:22:37","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":43045,"src":"3219:24:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36056,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49913,"src":"3246:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3219:39:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36058,"nodeType":"ExpressionStatement","src":"3219:39:37"},{"expression":{"id":36063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36059,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3268:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3270:23:37","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":43048,"src":"3268:25:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36062,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49910,"src":"3296:18:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3268:46:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36064,"nodeType":"ExpressionStatement","src":"3268:46:37"},{"expression":{"id":36074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":36065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3325:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3327:17:37","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"3325:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":36070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3345:10:37","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"3325:30:37","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":36071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3356:11:37","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"3325:42:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36072,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"3370:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3377:21:37","memberName":"activeValidatorsLimit","nodeType":"MemberAccess","referencedDeclaration":35882,"src":"3370:28:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3325:73:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36075,"nodeType":"ExpressionStatement","src":"3325:73:37"},{"expression":{"id":36085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":36076,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3518:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3520:17:37","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"3518:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":36081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3538:7:37","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"3518:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3546:23:37","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"3518:51:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36083,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"3572:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":36084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3583:28:37","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45319,"src":"3572:39:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3518:93:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36086,"nodeType":"ExpressionStatement","src":"3518:93:37"},{"expression":{"id":36096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":36087,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3769:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3771:17:37","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"3769:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":36092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3789:7:37","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"3769:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3797:24:37","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"3769:52:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36094,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"3824:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":36095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3835:28:37","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45319,"src":"3824:39:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3769:94:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36097,"nodeType":"ExpressionStatement","src":"3769:94:37"},{"assignments":[36100],"declarations":[{"constant":false,"id":36100,"mutability":"mutable","name":"initial","nameLocation":"3947:7:37","nodeType":"VariableDeclaration","scope":36113,"src":"3929:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":36099,"nodeType":"UserDefinedTypeName","pathNode":{"id":36098,"name":"Membership","nameLocations":["3929:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"3929:10:37"},"referencedDeclaration":50218,"src":"3929:10:37","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"id":36106,"initialValue":{"arguments":[{"hexValue":"30","id":36102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3990:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":36103,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"4005:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4012:17:37","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":35880,"src":"4005:24:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"id":36101,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"3957:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Membership_$50218_storage_ptr_$","typeString":"type(struct Membership storage pointer)"}},"id":36105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3969:19:37","3993:10:37"],"names":["configurationNumber","validators"],"nodeType":"FunctionCall","src":"3957:74:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"nodeType":"VariableDeclarationStatement","src":"3929:102:37"},{"expression":{"arguments":[{"id":36110,"name":"initial","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36100,"src":"4069:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}],"expression":{"id":36107,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4041:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":36109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4052:16:37","memberName":"updateMembership","nodeType":"MemberAccess","referencedDeclaration":42258,"src":"4041:27:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Membership_$50218_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":36111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4041:36:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36112,"nodeType":"ExpressionStatement","src":"4041:36:37"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":35891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35887,"mutability":"mutable","name":"_diamondCut","nameLocation":"1548:11:37","nodeType":"VariableDeclaration","scope":36114,"src":"1521:38:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":35885,"nodeType":"UserDefinedTypeName","pathNode":{"id":35884,"name":"IDiamond.FacetCut","nameLocations":["1521:8:37","1530:8:37"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1521:17:37"},"referencedDeclaration":40159,"src":"1521:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":35886,"nodeType":"ArrayTypeName","src":"1521:19:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":35890,"mutability":"mutable","name":"params","nameLocation":"1586:6:37","nodeType":"VariableDeclaration","scope":36114,"src":"1561:31:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":35889,"nodeType":"UserDefinedTypeName","pathNode":{"id":35888,"name":"ConstructorParams","nameLocations":["1561:17:37"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"1561:17:37"},"referencedDeclaration":35883,"src":"1561:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1520:73:37"},"returnParameters":{"id":35892,"nodeType":"ParameterList","parameters":[],"src":"1594:0:37"},"scope":36170,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36153,"nodeType":"FunctionDefinition","src":"4090:1239:37","nodes":[],"body":{"id":36152,"nodeType":"Block","src":"4120:1209:37","nodes":[],"statements":[{"assignments":[36121],"declarations":[{"constant":false,"id":36121,"mutability":"mutable","name":"ds","nameLocation":"4164:2:37","nodeType":"VariableDeclaration","scope":36152,"src":"4130:36:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36120,"nodeType":"UserDefinedTypeName","pathNode":{"id":36119,"name":"LibDiamond.DiamondStorage","nameLocations":["4130:10:37","4141:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"4130:25:37"},"referencedDeclaration":41072,"src":"4130:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36122,"nodeType":"VariableDeclarationStatement","src":"4130:36:37"},{"assignments":[36124],"declarations":[{"constant":false,"id":36124,"mutability":"mutable","name":"position","nameLocation":"4184:8:37","nodeType":"VariableDeclaration","scope":36152,"src":"4176:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4176:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36127,"initialValue":{"expression":{"id":36125,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"4195:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4206:24:37","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40973,"src":"4195:35:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4176:54:37"},{"AST":{"nodeType":"YulBlock","src":"4326:43:37","statements":[{"nodeType":"YulAssignment","src":"4340:19:37","value":{"name":"position","nodeType":"YulIdentifier","src":"4351:8:37"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"4340:7:37"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":36121,"isOffset":false,"isSlot":true,"src":"4340:7:37","suffix":"slot","valueSize":1},{"declaration":36124,"isOffset":false,"isSlot":false,"src":"4351:8:37","valueSize":1}],"id":36128,"nodeType":"InlineAssembly","src":"4317:52:37"},{"assignments":[36130],"declarations":[{"constant":false,"id":36130,"mutability":"mutable","name":"facet","nameLocation":"4430:5:37","nodeType":"VariableDeclaration","scope":36152,"src":"4422:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36129,"name":"address","nodeType":"ElementaryTypeName","src":"4422:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36137,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36131,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36121,"src":"4438:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4441:31:37","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"4438:34:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36135,"indexExpression":{"expression":{"id":36133,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4473:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4477:3:37","memberName":"sig","nodeType":"MemberAccess","src":"4473:7:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4438:43:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4482:12:37","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"4438:56:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4422:72:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36138,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36130,"src":"4508:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4525:1:37","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":36140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4517:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36139,"name":"address","nodeType":"ElementaryTypeName","src":"4517:7:37","typeDescriptions":{}}},"id":36142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4517:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4508:19:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36150,"nodeType":"IfStatement","src":"4504:82:37","trueBody":{"id":36149,"nodeType":"Block","src":"4529:57:37","statements":[{"errorCall":{"arguments":[{"expression":{"id":36145,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4567:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4571:3:37","memberName":"sig","nodeType":"MemberAccess","src":"4567:7:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":36144,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35849,"src":"4550:16:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":36147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4550:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36148,"nodeType":"RevertStatement","src":"4543:32:37"}]}},{"AST":{"nodeType":"YulBlock","src":"4739:584:37","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4822:1:37","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4825:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4828:12:37"},"nodeType":"YulFunctionCall","src":"4828:14:37"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4809:12:37"},"nodeType":"YulFunctionCall","src":"4809:34:37"},"nodeType":"YulExpressionStatement","src":"4809:34:37"},{"nodeType":"YulVariableDeclaration","src":"4909:65:37","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"4936:3:37"},"nodeType":"YulFunctionCall","src":"4936:5:37"},{"name":"facet","nodeType":"YulIdentifier","src":"4943:5:37"},{"kind":"number","nodeType":"YulLiteral","src":"4950:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4953:12:37"},"nodeType":"YulFunctionCall","src":"4953:14:37"},{"kind":"number","nodeType":"YulLiteral","src":"4969:1:37","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4972:1:37","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"4923:12:37"},"nodeType":"YulFunctionCall","src":"4923:51:37"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"4913:6:37","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5038:1:37","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5041:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5044:14:37"},"nodeType":"YulFunctionCall","src":"5044:16:37"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"5023:14:37"},"nodeType":"YulFunctionCall","src":"5023:38:37"},"nodeType":"YulExpressionStatement","src":"5023:38:37"},{"cases":[{"body":{"nodeType":"YulBlock","src":"5174:59:37","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5199:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5202:14:37"},"nodeType":"YulFunctionCall","src":"5202:16:37"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5192:6:37"},"nodeType":"YulFunctionCall","src":"5192:27:37"},"nodeType":"YulExpressionStatement","src":"5192:27:37"}]},"nodeType":"YulCase","src":"5167:66:37","value":{"kind":"number","nodeType":"YulLiteral","src":"5172:1:37","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"5254:59:37","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5279:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5282:14:37"},"nodeType":"YulFunctionCall","src":"5282:16:37"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"5272:6:37"},"nodeType":"YulFunctionCall","src":"5272:27:37"},"nodeType":"YulExpressionStatement","src":"5272:27:37"}]},"nodeType":"YulCase","src":"5246:67:37","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"5148:6:37"},"nodeType":"YulSwitch","src":"5141:172:37"}]},"evmVersion":"paris","externalReferences":[{"declaration":36130,"isOffset":false,"isSlot":false,"src":"4943:5:37","valueSize":1}],"id":36151,"nodeType":"InlineAssembly","src":"4730:593:37"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"4099:9:37","parameters":{"id":36115,"nodeType":"ParameterList","parameters":[],"src":"4108:2:37"},"returnParameters":{"id":36116,"nodeType":"ParameterList","parameters":[],"src":"4120:0:37"},"scope":36170,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36161,"nodeType":"FunctionDefinition","src":"5396:56:37","nodes":[],"body":{"id":36160,"nodeType":"Block","src":"5424:28:37","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36157,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36153,"src":"5434:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5434:11:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36159,"nodeType":"ExpressionStatement","src":"5434:11:37"}]},"documentation":{"id":36154,"nodeType":"StructuredDocumentation","src":"5335:56:37","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36155,"nodeType":"ParameterList","parameters":[],"src":"5404:2:37"},"returnParameters":{"id":36156,"nodeType":"ParameterList","parameters":[],"src":"5424:0:37"},"scope":36170,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36169,"nodeType":"FunctionDefinition","src":"5525:55:37","nodes":[],"body":{"id":36168,"nodeType":"Block","src":"5552:28:37","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36165,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36153,"src":"5562:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5562:11:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36167,"nodeType":"ExpressionStatement","src":"5562:11:37"}]},"documentation":{"id":36162,"nodeType":"StructuredDocumentation","src":"5458:62:37","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36163,"nodeType":"ParameterList","parameters":[],"src":"5532:2:37"},"returnParameters":{"id":36164,"nodeType":"ParameterList","parameters":[],"src":"5552:0:37"},"scope":36170,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36170],"name":"GatewayDiamond","nameLocation":"1125:14:37","scope":36171,"usedErrors":[35849,37428,37444,37492,40981,40986,40990,40994,40999,41005,41018,41022,41026,41030,41034,41038,41042]}],"license":"MIT OR Apache-2.0"},"id":37} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct GatewayDiamond.ConstructorParams","components":[{"name":"networkName","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"bottomUpCheckPeriod","type":"uint256","internalType":"uint256"},{"name":"msgFee","type":"uint256","internalType":"uint256"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"genesisValidators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidMajorityPercentage","inputs":[]},{"type":"error","name":"InvalidSubmissionPeriod","inputs":[]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"OldConfigurationNumber","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"1116:4466:37:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1116:4466:37;;;-1:-1:-1;;;;;;;1116:4466:37;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1671:31;1667:94;;1116:4466;;;;;;1803:2;1775:30;;:65;;;;;1116:4466;1771:130;;;2258:16:62;1116:4466:37;;-1:-1:-1;;;;;;1116:4466:37;1939:10;1116:4466;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;-1:-1:-1;1116:4466:37;;1108:5;;-1:-1:-1;2937:19:62;;;;;;1116:4466:37;;;;;;;;;;;;1108:5;1116:4466;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;3911:74:62;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;:::i;:::-;3911:74:62;;;2170:22:37;1116:4466;;;;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1116:4466:37;;;;;;;;;;2404:14;998:1;;-1:-1:-1;;1108:5:37;2170:22;1108:5;;;2740:18;;1108:5;;2724:13;1108:5;;-1:-1:-1;;;;;;1108:5:37;;;-1:-1:-1;;;;;1116:4466:37;;;1108:5;;;;;;;;;;;1116:4466;;;1108:5;;;;;;;1116:4466;1108:5;;;;1116:4466;1108:5;;;;;;;;;;;1116:4466;1108:5;;;-1:-1:-1;1108:5:37;1116:4466;-1:-1:-1;1108:5:37;-1:-1:-1;1108:5:37;;;;;;4069:7;1116:4466;;2928:21;1116:4466;;;;;;;2768:21;1108:5;1116:4466;;;;2828:16;1108:5;1116:4466;;;;;;998:1;2870:20;998:1;1116:4466;;2870:20;998:1;1108:5;2928:37;1108:5;2979:43;1108:5;282:3:80;3219:24:37;1108:5;1116:4466;1108:5;;;1116:4466;1108:5;1116:4466;;;246:2:80;953:5:37;1116:4466;246:2:80;953:5:37;;;;246:2:80;953:5:37;246:2:80;;;1116:4466:37;246:2:80;15673:1:69;1116:4466:37;15673:1:69;;;;;3518:27:37;1108:5;15673:1:69;;3518:27:37;15673:1:69;1116:4466:37;4005:24;1116:4466;;;;;;:::i;:::-;15673:1:69;;-1:-1:-1;1116:4466:37;3957:74;;15673:1:69;4069:7:37;:::i;:::-;1116:4466;;;;;;;;;1108:5;;;-1:-1:-1;;;;;1116:4466:37;1108:5;;;;1116:4466;1108:5;;;;;;;;;;;;-1:-1:-1;1108:5:37;;;-1:-1:-1;1108:5:37;;;;;;;:::i;:::-;;;;;1116:4466;;;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:62;1116:4466:37;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;1108:5:37;1116:4466;1108:5;;;3142:29:62;3138:122;;1116:4466:37;3309:23:62;;;;:::i;:::-;;:30;1116:4466:37;;;;;;;3357:37:62;;;4150:27;;;4146:116;;1116:4466:37;-1:-1:-1;;;;;;;;;;;1108:5:37;1116:4466;4385:74:62;1116:4466:37;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;4385:74:62;;:::i;:::-;1108:5:37;;4526:21:62;-1:-1:-1;4521:677:62;4549:22;;;;;;3353:466;;;;;1116:4466:37;3353:466:62;;1116:4466:37;2917:18:62;;4526:21;-1:-1:-1;;;;;;4607:33:62;;;;:::i;:::-;1116:4466:37;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;4751:128:62;;1116:4466:37;;;;;;:::i;:::-;;;;;;;;;;4939:107:62;;;1116:4466:37;;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;1108:5;;1116:4466;;246:2:80;;-1:-1:-1;;;;;;1116:4466:37;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;:::i;:::-;;;;;;;;;;;;;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;4526:21:62;;;1116:4466:37;;;;-1:-1:-1;1108:5:37;;;;;-1:-1:-1;1108:5:37;4751:128:62;1116:4466:37;;-1:-1:-1;;;4811:53:62;;;;;1116:4466:37;;;;;4811:53:62;4146:116;1116:4466:37;;-1:-1:-1;;;4200:51:62;;1116:4466:37;4200:51:62;;;1116:4466:37;;;;;;;;;;;:::i;:::-;4200:51:62;;;3353:466;1116:4466:37;3484:41:62;;1116:4466:37;;5372:27:62;;;5368:131;;5508:81;1116:4466:37;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;5508:81:62;;:::i;:::-;1108:5:37;;5652:21:62;-1:-1:-1;5675:18:62;;;;;;3480:339;;;;1116:4466:37;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;1116:4466:37;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;-1:-1:-1;;;;;1116:4466:37;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;-1:-1:-1;;;;;;1116:4466:37;;;;;;;5652:21:62;;6268:123;1116:4466:37;;;;6328:48:62;;;;;;;;;1116:4466:37;6328:48:62;6111:144;1116:4466:37;;-1:-1:-1;;;6174:66:62;;;;;1116:4466:37;;;;;6174:66:62;5980:118;1116:4466:37;;-1:-1:-1;;;6043:40:62;;;;;1116:4466:37;;;;;6043:40:62;5368:131;1116:4466:37;;-1:-1:-1;;;5422:66:62;;1116:4466:37;5422:66:62;;;1116:4466:37;;;;;;;;;;;:::i;3480:339:62:-;3629:30;3619:40;;3629:30;;1108:5:37;-1:-1:-1;;;;;;;;;;;1108:5:37;6826:27:62;;6822:115;;1108:5:37;;;6999:21:62;-1:-1:-1;7022:18:62;;;;;;3615:204;;;;1116:4466:37;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;1116:4466:37;;;;-1:-1:-1;1116:4466:37;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;-1:-1:-1;1116:4466:37;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;7278:61:62;7274:153;;1108:5:37;;-1:-1:-1;;;;;1116:4466:37;7597:4:62;7538:64;7534:149;;1116:4466:37;;;;;;;;;;;;;246:2:80;1116:4466:37;7780:68:62;7776:412;;6999:21;1108:5:37;-1:-1:-1;;;;;;;;;;;1108:5:37;1116:4466;;;;;;;-1:-1:-1;;1116:4466:37;;;;:::i;:::-;;;;;;;1108:5;1116:4466;;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;-1:-1:-1;1116:4466:37;-1:-1:-1;;;;;;;;;;;1116:4466:37;;-1:-1:-1;1116:4466:37;;;;;6999:21:62;;1116:4466:37;;;;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;7776:412:62;8033:140;7890:27;1116:4466:37;;7890:27:62;;;:::i;:::-;1116:4466:37;;;;;1108:5;1116:4466;;;7935:80:62;1116:4466:37;7935:65:62;1116:4466:37;;;;246:2:80;1116:4466:37;7935:65:62;:::i;:80::-;1116:4466:37;246:2:80;-1:-1:-1;;;;;;1116:4466:37;;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;-1:-1:-1;;;;1116:4466:37;;;;;;;-1:-1:-1;;;1116:4466:37;;;;;8033:140:62;7776:412;;;7534:149;1116:4466:37;;-1:-1:-1;;;7629:39:62;;;;;1116:4466:37;;;;;7629:39:62;7274:153;1116:4466:37;;-1:-1:-1;;;7366:46:62;;;;;1116:4466:37;;;;;7366:46:62;6822:115;1116:4466:37;;;;6876:50:62;;;;;;;;;1116:4466:37;6876:50:62;3615:204;1116:4466:37;;-1:-1:-1;;;3773:31:62;;1116:4466:37;;;;3773:31:62;;;;1116:4466:37;:::i;:::-;3773:31:62;1116:4466:37;;;;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;3138:122:62;1116:4466:37;;-1:-1:-1;;;3198:47:62;;;;;1116:4466:37;;;;;3198:47:62;1771:130:37;1116:4466;;-1:-1:-1;;;1863:27:37;;;;;1775:65;1837:3;1809:31;;;1775:65;;;1667:94;1116:4466;;-1:-1:-1;;;1725:25:37;;;;;1116:4466;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;;;;;1116:4466:37;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;-1:-1:-1;;1116:4466:37;;-1:-1:-1;1116:4466:37;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1116:4466:37;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1116:4466:37;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1116:4466:37;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1116:4466:37;;;;:::o;:::-;;;;;;;;;;;;;1108:5;;;;;;;;:::o;:::-;;;;;;;;1116:4466;1108:5;;1116:4466;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1108:5;;1116:4466;;;;;;;;1108:5;;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;1108:5;;1116:4466;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1116:4466:37;;;;:::o;:::-;;-1:-1:-1;;;;;;;;;;;1108:5:37;;1116:4466;;;;;-1:-1:-1;1108:5:37;1116:4466;1108:5;-1:-1:-1;1108:5:37;1116:4466;;;;;;;;;:::o;9308:320:62:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;1116:4466:37;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;1116:4466:37;;;9566:45:62;;;1116:4466:37;;;;;;;;;;;;;;;:::i;:::-;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;;1108:5;;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1108:5;-1:-1:-1;1108:5:37;;-1:-1:-1;1108:5:37;1116:4466;1108:5;1116:4466;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;1116:4466;;;;;:::o;:::-;;;;-1:-1:-1;1116:4466:37;;;;;1108:5;;;;;;;;;;;;;-1:-1:-1;1108:5:37;-1:-1:-1;;1116:4466:37;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1108:5;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;6344:19:63;1108:5:37;1116:4466;;;;;6344:19:63;-1:-1:-1;1108:5:37;1116:4466;1108:5;-1:-1:-1;1108:5:37;1116:4466;;;;-1:-1:-1;1116:4466:37;:::o;:::-;;;;;;1108:5;;1116:4466;;;;1108:5;1116:4466;;;;;;-1:-1:-1;;;;;;1116:4466:37;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;1108:5;;;1116:4466;;;;;;1108:5;1116:4466;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;1108:5;1116:4466;;;;;:::o;:::-;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;1108:5;-1:-1:-1;1108:5:37;;-1:-1:-1;1108:5:37;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1108:5;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;1108:5;;;;;;;;6087:1976:63;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6167:29:63;1116:4466:37;;;;;;;;;;;;;;;;;;;6167:29:63;;;6344:39;1116:4466:37;;;;;6344:44:63;6340:621;;6087:1976;6344:19;;;1108:5:37;;;1116:4466;;;;;;;;6971:16:63;1108:5:37;1116:4466;6971:16:63;1116:4466:37;;;;;;6087:1976:63;1116:4466:37;;1108:5;;;;;;;6971:16:63;1108:5:37;;;;;1116:4466;;;;;;;;;;;;;;;;;;;;;;;1108:5;;;1116:4466;1108:5;;;1116:4466;1108:5;7042:21:63;;1108:5:37;;;;7306:9:63;;7317:15;;;;;;1108:5:37;;;;1116:4466;1108:5;;;;;;;7817:25:63;;;7813:244;;7301:332;6087:1976;;;;;;:::o;7813:244::-;7888:15;;;;7813:244;7888:15;1108:5:37;;1116:4466;;;;-1:-1:-1;;1116:4466:37;;;;;:::i;:::-;;;;;;1108:5;;;1116:4466;;;;;;;;;;;;;;:::i;:::-;;;;7863:23:63;1116:4466:37;;;;;;7863:23:63;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;1108:5;;;;;;;;;1116:4466;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;1108:5:37;;;;;;1116:4466;1108:5;1116:4466;-1:-1:-1;;;1116:4466:37;;;;;;;;7306:9:63;7354:15;;;;;;7425:21;7389:60;7425:24;1116:4466:37;7425:21:63;;;:24;:::i;:::-;;7389:33;;;:::i;:::-;:60;;:::i;:::-;1116:4466:37;7306:9:63;;7350:214;7524:24;:21;;;:24;:::i;:::-;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7350:214:63;;1116:4466:37;-1:-1:-1;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1108:5;;;;;;;;;;;;;;;;;;;;;1116:4466;;1108:5;6971:16:63;1108:5:37;;;;;1116:4466;;;;;;;;;;;;;;;;;;;;1108:5;;;;;;;1116:4466;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;;;;;1116:4466;1108:5;;;;1116:4466;;;;;;;;;;:::i;:::-;;;;;1108:5;;1116:4466;;;;;1108:5;;;1116:4466;1108:5;;;1116:4466;;;;;1108:5;;;1116:4466;1108:5;1116:4466;;;;;;;;;;;;6340:621:63;1108:5:37;;;1116:4466;;6442:36:63;1116:4466:37;;6408:70:63;;;;6404:115;;6632:69;6628:139;;1116:4466:37;;;;;;:::i;:::-;6344:19:63;1108:5:37;1116:4466;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;1108:5;6344:19:63;-1:-1:-1;1108:5:37;;-1:-1:-1;1108:5:37;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;-1:-1:-1;;;15673:1:69;;;-1:-1:-1;;1116:4466:37;;;15673:1:69;6862:48:63;;;;:::i;:::-;6858:93;;6340:621;;;;6858:93;6930:7;;;;;:::o;1116:4466:37:-;;;;;;;;;:::i;:::-;;;15673:1:69;;1116:4466:37;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;:::i;:::-;;;;;;;;;6344:39:63;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15673:1:69;1116:4466:37;;;;;;;;;;;;-1:-1:-1;1108:5:37;;;;;;-1:-1:-1;;;1116:4466:37;;;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;-1:-1:-1;1116:4466:37;;-1:-1:-1;1116:4466:37;;6628:139:63;1116:4466:37;;-1:-1:-1;;;6728:24:63;;6344:19;;6728:24;6404:115;6498:7;;;;;;;;;:::o;8598:561::-;8712:23;;;;1108:5:37;8739:23:63;;;1108:5:37;8712:23:63;;;-1:-1:-1;;;;;1116:4466:37;;;;;8712:50:63;8708:93;;8814:26;;;:::i;:::-;8844;;;:::i;:::-;8814:56;8810:99;;8922:14;1108:5:37;;8947:14:63;;1108:5:37;8922:46:63;8918:89;;9099:26;1116:4466:37;;;;9039:26:63;;1116:4466:37;9039:26:63;;;1116:4466:37;;;;;;;;;:::i;:::-;9039:26:63;1116:4466:37;9039:26:63;1116:4466:37;;9039:26:63;;;;;;;;:::i;:::-;1108:5:37;9029:37:63;;9110:14;;1116:4466:37;;9099:26:63;;;;;;1116:4466:37;;;;;;;;:::i;:::-;9099:26:63;;;;;;;;:::i;:::-;1108:5:37;9089:37:63;;9144:8;8598:561;:::o;8918:89::-;8984:12;;;-1:-1:-1;8984:12:63;:::o;8132:387::-;8243:15;;1108:5:37;8275:29:63;1108:5:37;8319:9:63;;8314:161;8330:7;;;;;;8484:28;;;8132:387;:::o;8319:9::-;8380:15;;;:18;:15;;;:18;:::i;:::-;;1116:4466:37;;;;;;;;8355:50:63;1116:4466:37;;;8319:9:63;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033","sourceMap":"1116:4466:37:-:0;;;;;;;-1:-1:-1;4473:7:37;;-1:-1:-1;;;;;;4473:7:37;260:43:62;;;;;;1116:4466:37;260:43:62;;;-1:-1:-1;;;;;260:43:62;;4508:19:37;;4504:82;;1116:4466;;;;;4730:593;;;1116:4466;;4730:593;;;;;;;;;;;;;;;;;4504:82;260:43:62;;1116:4466:37;260:43:62;4550:25:37;;;;;;;;;260:43:62;4550:25:37;1116:4466;-1:-1:-1;4473:7:37;;-1:-1:-1;;;;;;4473:7:37;260:43:62;;;;;;1116:4466:37;260:43:62;;;-1:-1:-1;;;;;260:43:62;;4508:19:37;;4504:82;;1116:4466;;;;;4730:593;;;1116:4466;;4730:593;;;;;;;;;;;;;4504:82;4550:25;;;1116:4466;4550:25;;260:43:62;4550:25:37;1116:4466;4550:25","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"networkName\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"msgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"genesisValidators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"}],\"internalType\":\"struct GatewayDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubmissionPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/GatewayDiamond.sol\":\"GatewayDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct GatewayDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"networkName","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"bottomUpCheckPeriod","type":"uint256"},{"internalType":"uint256","name":"msgFee","type":"uint256"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"struct Validator[]","name":"genesisValidators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[],"type":"error","name":"InvalidMajorityPercentage"},{"inputs":[],"type":"error","name":"InvalidSubmissionPeriod"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"OldConfigurationNumber"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/GatewayDiamond.sol":"GatewayDiamond"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/GatewayDiamond.sol","id":36171,"exportedSymbols":{"BATCH_PERIOD":[49866],"FEATURE_CHECKPOINT_RELAYER_REWARDS":[35861],"FEATURE_CROSSMSG_RELAYER_REWARDS":[35864],"FEATURE_GENERAL_PUPRPOSE_CROSSMSG":[35855],"FEATURE_MULTILEVEL_CROSSMSG":[35852],"FEATURE_SUBNET_DEPTH":[35858],"FunctionNotFound":[35849],"GatewayActorStorage":[43012],"GatewayDiamond":[36170],"IDiamond":[40170],"IDiamondCut":[40189],"IDiamondLoupe":[40230],"IERC165":[40241],"InvalidCollateral":[37416],"InvalidMajorityPercentage":[37428],"InvalidSubmissionPeriod":[37444],"LibDiamond":[41626],"LibGateway":[42888],"LibStaking":[46129],"MAX_MSGS_PER_BATCH":[49863],"Membership":[50171],"SubnetID":[50030],"Validator":[50164]},"nodeType":"SourceUnit","src":"46:5537:37","nodes":[{"id":35817,"nodeType":"PragmaDirective","src":"46:23:37","nodes":[],"literals":["solidity","0.8",".19"]},{"id":35819,"nodeType":"ImportDirective","src":"71:69:37","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"./lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":43082,"symbolAliases":[{"foreign":{"id":35818,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43012,"src":"79:19:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35821,"nodeType":"ImportDirective","src":"141:51:37","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":35820,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"149:8:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35823,"nodeType":"ImportDirective","src":"193:57:37","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"./interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":35822,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"201:11:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35825,"nodeType":"ImportDirective","src":"251:61:37","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":35824,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"259:13:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35827,"nodeType":"ImportDirective","src":"313:49:37","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":35826,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"321:7:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35830,"nodeType":"ImportDirective","src":"363:59:37","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":35828,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"371:9:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35829,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50171,"src":"382:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35834,"nodeType":"ImportDirective","src":"423:109:37","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":35831,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37416,"src":"431:17:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35832,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"450:23:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35833,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"475:25:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35836,"nodeType":"ImportDirective","src":"533:48:37","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":41627,"symbolAliases":[{"foreign":{"id":35835,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"541:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35838,"nodeType":"ImportDirective","src":"582:48:37","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"./lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":42889,"symbolAliases":[{"foreign":{"id":35837,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"590:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35840,"nodeType":"ImportDirective","src":"631:46:37","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":35839,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"639:8:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35842,"nodeType":"ImportDirective","src":"678:48:37","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"./lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":35841,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"686:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35845,"nodeType":"ImportDirective","src":"727:72:37","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"./structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":35843,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49866,"src":"735:12:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35844,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49863,"src":"749:18:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35849,"nodeType":"ErrorDefinition","src":"801:49:37","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"807:16:37","parameters":{"id":35848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35847,"mutability":"mutable","name":"_functionSelector","nameLocation":"831:17:37","nodeType":"VariableDeclaration","scope":35849,"src":"824:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":35846,"name":"bytes4","nodeType":"ElementaryTypeName","src":"824:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"823:26:37"}},{"id":35852,"nodeType":"VariableDeclaration","src":"852:49:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_MULTILEVEL_CROSSMSG","nameLocation":"866:27:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35850,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"896:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35855,"nodeType":"VariableDeclaration","src":"903:55:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_GENERAL_PUPRPOSE_CROSSMSG","nameLocation":"917:33:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35853,"name":"bool","nodeType":"ElementaryTypeName","src":"903:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"953:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35858,"nodeType":"VariableDeclaration","src":"960:39:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_SUBNET_DEPTH","nameLocation":"975:20:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":35856,"name":"uint8","nodeType":"ElementaryTypeName","src":"960:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":35857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"998:1:37","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"id":35861,"nodeType":"VariableDeclaration","src":"1001:56:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_CHECKPOINT_RELAYER_REWARDS","nameLocation":"1015:34:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35859,"name":"bool","nodeType":"ElementaryTypeName","src":"1001:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1052:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35864,"nodeType":"VariableDeclaration","src":"1059:54:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_CROSSMSG_RELAYER_REWARDS","nameLocation":"1073:32:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35862,"name":"bool","nodeType":"ElementaryTypeName","src":"1059:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1108:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":36170,"nodeType":"ContractDefinition","src":"1116:4466:37","nodes":[{"id":35867,"nodeType":"VariableDeclaration","src":"1146:30:37","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"1175:1:37","scope":36170,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":35866,"nodeType":"UserDefinedTypeName","pathNode":{"id":35865,"name":"GatewayActorStorage","nameLocations":["1146:19:37"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"1146:19:37"},"referencedDeclaration":43012,"src":"1146:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":35883,"nodeType":"StructDefinition","src":"1183:320:37","nodes":[],"canonicalName":"GatewayDiamond.ConstructorParams","members":[{"constant":false,"id":35870,"mutability":"mutable","name":"networkName","nameLocation":"1227:11:37","nodeType":"VariableDeclaration","scope":35883,"src":"1218:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":35869,"nodeType":"UserDefinedTypeName","pathNode":{"id":35868,"name":"SubnetID","nameLocations":["1218:8:37"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1218:8:37"},"referencedDeclaration":50030,"src":"1218:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":35872,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1256:19:37","nodeType":"VariableDeclaration","scope":35883,"src":"1248:27:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35871,"name":"uint256","nodeType":"ElementaryTypeName","src":"1248:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35874,"mutability":"mutable","name":"msgFee","nameLocation":"1379:6:37","nodeType":"VariableDeclaration","scope":35883,"src":"1371:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35873,"name":"uint256","nodeType":"ElementaryTypeName","src":"1371:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35876,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1401:18:37","nodeType":"VariableDeclaration","scope":35883,"src":"1395:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":35875,"name":"uint8","nodeType":"ElementaryTypeName","src":"1395:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":35880,"mutability":"mutable","name":"genesisValidators","nameLocation":"1441:17:37","nodeType":"VariableDeclaration","scope":35883,"src":"1429:29:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":35878,"nodeType":"UserDefinedTypeName","pathNode":{"id":35877,"name":"Validator","nameLocations":["1429:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"1429:9:37"},"referencedDeclaration":50164,"src":"1429:9:37","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":35879,"nodeType":"ArrayTypeName","src":"1429:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":35882,"mutability":"mutable","name":"activeValidatorsLimit","nameLocation":"1475:21:37","nodeType":"VariableDeclaration","scope":35883,"src":"1468:28:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":35881,"name":"uint16","nodeType":"ElementaryTypeName","src":"1468:6:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"1190:17:37","scope":36170,"visibility":"public"},{"id":36114,"nodeType":"FunctionDefinition","src":"1509:2575:37","nodes":[],"body":{"id":36113,"nodeType":"Block","src":"1594:2490:37","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35893,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"1671:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1678:19:37","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":35872,"src":"1671:26:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":35895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1701:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1671:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35901,"nodeType":"IfStatement","src":"1667:94:37","trueBody":{"id":35900,"nodeType":"Block","src":"1704:57:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35897,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"1725:23:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35899,"nodeType":"RevertStatement","src":"1718:32:37"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":35910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":35905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35902,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"1775:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35876,"src":"1775:25:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":35904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1803:2:37","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"1775:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":35909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35906,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"1809:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1816:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35876,"src":"1809:25:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":35908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1837:3:37","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1809:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1775:65:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35915,"nodeType":"IfStatement","src":"1771:130:37","trueBody":{"id":35914,"nodeType":"Block","src":"1842:59:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35911,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"1863:25:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1863:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35913,"nodeType":"RevertStatement","src":"1856:34:37"}]}},{"expression":{"arguments":[{"expression":{"id":35919,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1939:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":35920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1943:6:37","memberName":"sender","nodeType":"MemberAccess","src":"1939:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":35916,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"1911:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":35918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1922:16:37","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":41046,"src":"1911:27:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":35921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1911:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35922,"nodeType":"ExpressionStatement","src":"1911:39:37"},{"expression":{"arguments":[{"id":35926,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35887,"src":"1996:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":35929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2024:1:37","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":35928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2016:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":35927,"name":"address","nodeType":"ElementaryTypeName","src":"2016:7:37","typeDescriptions":{}}},"id":35930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2016:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":35933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2049:1:37","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":35932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2039:9:37","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":35931,"name":"bytes","nodeType":"ElementaryTypeName","src":"2043:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":35934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":35923,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"1960:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":35925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1971:10:37","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41206,"src":"1960:21:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":35935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1983:11:37","2009:5:37","2028:9:37"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1960:93:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35936,"nodeType":"ExpressionStatement","src":"1960:93:37"},{"assignments":[35941],"declarations":[{"constant":false,"id":35941,"mutability":"mutable","name":"ds","nameLocation":"2098:2:37","nodeType":"VariableDeclaration","scope":36113,"src":"2064:36:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":35940,"nodeType":"UserDefinedTypeName","pathNode":{"id":35939,"name":"LibDiamond.DiamondStorage","nameLocations":["2064:10:37","2075:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"2064:25:37"},"referencedDeclaration":41016,"src":"2064:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":35945,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":35942,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"2103:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":35943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2114:14:37","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41028,"src":"2103:25:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":35944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2103:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2064:66:37"},{"expression":{"id":35955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35946,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35941,"src":"2170:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2173:19:37","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41013,"src":"2170:22:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35953,"indexExpression":{"expression":{"arguments":[{"id":35949,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"2198:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}],"id":35948,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2193:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2193:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$40241","typeString":"type(contract IERC165)"}},"id":35951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2207:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"2193:25:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2170:49:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2222:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2170:56:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35956,"nodeType":"ExpressionStatement","src":"2170:56:37"},{"expression":{"id":35966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35957,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35941,"src":"2236:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2239:19:37","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41013,"src":"2236:22:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35964,"indexExpression":{"expression":{"arguments":[{"id":35960,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"2264:11:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}],"id":35959,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2259:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2259:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$40189","typeString":"type(contract IDiamondCut)"}},"id":35962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2277:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"2259:29:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2236:53:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2292:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2236:60:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35967,"nodeType":"ExpressionStatement","src":"2236:60:37"},{"expression":{"id":35977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35968,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35941,"src":"2306:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2309:19:37","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41013,"src":"2306:22:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35975,"indexExpression":{"expression":{"arguments":[{"id":35971,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"2334:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}],"id":35970,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2329:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2329:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$40230","typeString":"type(contract IDiamondLoupe)"}},"id":35973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2349:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"2329:31:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2306:55:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2364:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2306:62:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35978,"nodeType":"ExpressionStatement","src":"2306:62:37"},{"expression":{"id":35983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35979,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2404:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2406:12:37","memberName":"maxTreeDepth","nodeType":"MemberAccess","referencedDeclaration":42999,"src":"2404:14:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35982,"name":"FEATURE_SUBNET_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35858,"src":"2421:20:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2404:37:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":35984,"nodeType":"ExpressionStatement","src":"2404:37:37"},{"expression":{"id":35989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35985,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2451:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2453:22:37","memberName":"generalPurposeCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"2451:24:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35988,"name":"FEATURE_GENERAL_PUPRPOSE_CROSSMSG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35855,"src":"2478:33:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2451:60:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35990,"nodeType":"ExpressionStatement","src":"2451:60:37"},{"expression":{"id":35995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35991,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2521:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2523:18:37","memberName":"multiLevelCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43005,"src":"2521:20:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35994,"name":"FEATURE_MULTILEVEL_CROSSMSG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35852,"src":"2544:27:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2521:50:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35996,"nodeType":"ExpressionStatement","src":"2521:50:37"},{"expression":{"id":36001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35997,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2581:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2583:24:37","memberName":"checkpointRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"2581:26:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36000,"name":"FEATURE_CHECKPOINT_RELAYER_REWARDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35861,"src":"2610:34:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2581:63:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36002,"nodeType":"ExpressionStatement","src":"2581:63:37"},{"expression":{"id":36007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36003,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2654:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2656:22:37","memberName":"crossMsgRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43011,"src":"2654:24:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36006,"name":"FEATURE_CROSSMSG_RELAYER_REWARDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35864,"src":"2681:32:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2654:59:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36008,"nodeType":"ExpressionStatement","src":"2654:59:37"},{"expression":{"id":36014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36009,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2724:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2726:11:37","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"2724:13:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36012,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2740:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2747:11:37","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":35870,"src":"2740:18:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"src":"2724:34:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":36015,"nodeType":"ExpressionStatement","src":"2724:34:37"},{"expression":{"id":36021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36016,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2768:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2770:19:37","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":42986,"src":"2768:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36019,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2792:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2799:19:37","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":35872,"src":"2792:26:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2768:50:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36022,"nodeType":"ExpressionStatement","src":"2768:50:37"},{"expression":{"id":36028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36023,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2828:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2830:14:37","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":42971,"src":"2828:16:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36026,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2847:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2854:6:37","memberName":"msgFee","nodeType":"MemberAccess","referencedDeclaration":35874,"src":"2847:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2828:32:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36029,"nodeType":"ExpressionStatement","src":"2828:32:37"},{"expression":{"id":36035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2870:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2872:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":42974,"src":"2870:20:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2893:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2900:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35876,"src":"2893:25:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2870:48:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":36036,"nodeType":"ExpressionStatement","src":"2870:48:37"},{"expression":{"id":36043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36037,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2928:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2930:19:37","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"2928:21:37","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":36041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2950:15:37","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"2928:37:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":36042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2968:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2928:41:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36044,"nodeType":"ExpressionStatement","src":"2928:41:37"},{"expression":{"id":36051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36045,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2979:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2981:25:37","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"2979:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":36049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3007:15:37","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"2979:43:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":36050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3025:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2979:47:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36052,"nodeType":"ExpressionStatement","src":"2979:47:37"},{"expression":{"id":36057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36053,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3219:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3221:22:37","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":42989,"src":"3219:24:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36056,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49866,"src":"3246:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3219:39:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36058,"nodeType":"ExpressionStatement","src":"3219:39:37"},{"expression":{"id":36063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36059,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3268:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3270:23:37","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"3268:25:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36062,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49863,"src":"3296:18:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3268:46:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36064,"nodeType":"ExpressionStatement","src":"3268:46:37"},{"expression":{"id":36074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":36065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3325:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3327:17:37","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"3325:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":36070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3345:10:37","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"3325:30:37","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":36071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3356:11:37","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50125,"src":"3325:42:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36072,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"3370:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3377:21:37","memberName":"activeValidatorsLimit","nodeType":"MemberAccess","referencedDeclaration":35882,"src":"3370:28:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3325:73:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36075,"nodeType":"ExpressionStatement","src":"3325:73:37"},{"expression":{"id":36085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":36076,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3518:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3520:17:37","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"3518:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":36081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3538:7:37","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3518:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3546:23:37","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"3518:51:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36083,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"3572:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":36084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3583:28:37","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45272,"src":"3572:39:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3518:93:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36086,"nodeType":"ExpressionStatement","src":"3518:93:37"},{"expression":{"id":36096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":36087,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3769:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3771:17:37","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"3769:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":36092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3789:7:37","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3769:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3797:24:37","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"3769:52:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36094,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"3824:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":36095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3835:28:37","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45272,"src":"3824:39:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3769:94:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36097,"nodeType":"ExpressionStatement","src":"3769:94:37"},{"assignments":[36100],"declarations":[{"constant":false,"id":36100,"mutability":"mutable","name":"initial","nameLocation":"3947:7:37","nodeType":"VariableDeclaration","scope":36113,"src":"3929:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership"},"typeName":{"id":36099,"nodeType":"UserDefinedTypeName","pathNode":{"id":36098,"name":"Membership","nameLocations":["3929:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"3929:10:37"},"referencedDeclaration":50171,"src":"3929:10:37","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"id":36106,"initialValue":{"arguments":[{"hexValue":"30","id":36102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3990:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":36103,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"4005:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4012:17:37","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":35880,"src":"4005:24:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"id":36101,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50171,"src":"3957:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Membership_$50171_storage_ptr_$","typeString":"type(struct Membership storage pointer)"}},"id":36105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3969:19:37","3993:10:37"],"names":["configurationNumber","validators"],"nodeType":"FunctionCall","src":"3957:74:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"nodeType":"VariableDeclarationStatement","src":"3929:102:37"},{"expression":{"arguments":[{"id":36110,"name":"initial","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36100,"src":"4069:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}],"expression":{"id":36107,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"4041:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":36109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4052:16:37","memberName":"updateMembership","nodeType":"MemberAccess","referencedDeclaration":42202,"src":"4041:27:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Membership_$50171_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":36111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4041:36:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36112,"nodeType":"ExpressionStatement","src":"4041:36:37"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":35891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35887,"mutability":"mutable","name":"_diamondCut","nameLocation":"1548:11:37","nodeType":"VariableDeclaration","scope":36114,"src":"1521:38:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":35885,"nodeType":"UserDefinedTypeName","pathNode":{"id":35884,"name":"IDiamond.FacetCut","nameLocations":["1521:8:37","1530:8:37"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1521:17:37"},"referencedDeclaration":40159,"src":"1521:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":35886,"nodeType":"ArrayTypeName","src":"1521:19:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":35890,"mutability":"mutable","name":"params","nameLocation":"1586:6:37","nodeType":"VariableDeclaration","scope":36114,"src":"1561:31:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":35889,"nodeType":"UserDefinedTypeName","pathNode":{"id":35888,"name":"ConstructorParams","nameLocations":["1561:17:37"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"1561:17:37"},"referencedDeclaration":35883,"src":"1561:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1520:73:37"},"returnParameters":{"id":35892,"nodeType":"ParameterList","parameters":[],"src":"1594:0:37"},"scope":36170,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36153,"nodeType":"FunctionDefinition","src":"4090:1239:37","nodes":[],"body":{"id":36152,"nodeType":"Block","src":"4120:1209:37","nodes":[],"statements":[{"assignments":[36121],"declarations":[{"constant":false,"id":36121,"mutability":"mutable","name":"ds","nameLocation":"4164:2:37","nodeType":"VariableDeclaration","scope":36152,"src":"4130:36:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36120,"nodeType":"UserDefinedTypeName","pathNode":{"id":36119,"name":"LibDiamond.DiamondStorage","nameLocations":["4130:10:37","4141:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"4130:25:37"},"referencedDeclaration":41016,"src":"4130:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36122,"nodeType":"VariableDeclarationStatement","src":"4130:36:37"},{"assignments":[36124],"declarations":[{"constant":false,"id":36124,"mutability":"mutable","name":"position","nameLocation":"4184:8:37","nodeType":"VariableDeclaration","scope":36152,"src":"4176:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4176:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36127,"initialValue":{"expression":{"id":36125,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"4195:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4206:24:37","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40917,"src":"4195:35:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4176:54:37"},{"AST":{"nodeType":"YulBlock","src":"4326:43:37","statements":[{"nodeType":"YulAssignment","src":"4340:19:37","value":{"name":"position","nodeType":"YulIdentifier","src":"4351:8:37"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"4340:7:37"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":36121,"isOffset":false,"isSlot":true,"src":"4340:7:37","suffix":"slot","valueSize":1},{"declaration":36124,"isOffset":false,"isSlot":false,"src":"4351:8:37","valueSize":1}],"id":36128,"nodeType":"InlineAssembly","src":"4317:52:37"},{"assignments":[36130],"declarations":[{"constant":false,"id":36130,"mutability":"mutable","name":"facet","nameLocation":"4430:5:37","nodeType":"VariableDeclaration","scope":36152,"src":"4422:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36129,"name":"address","nodeType":"ElementaryTypeName","src":"4422:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36137,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36131,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36121,"src":"4438:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4441:31:37","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"4438:34:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36135,"indexExpression":{"expression":{"id":36133,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4473:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4477:3:37","memberName":"sig","nodeType":"MemberAccess","src":"4473:7:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4438:43:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4482:12:37","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"4438:56:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4422:72:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36138,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36130,"src":"4508:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4525:1:37","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":36140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4517:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36139,"name":"address","nodeType":"ElementaryTypeName","src":"4517:7:37","typeDescriptions":{}}},"id":36142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4517:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4508:19:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36150,"nodeType":"IfStatement","src":"4504:82:37","trueBody":{"id":36149,"nodeType":"Block","src":"4529:57:37","statements":[{"errorCall":{"arguments":[{"expression":{"id":36145,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4567:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4571:3:37","memberName":"sig","nodeType":"MemberAccess","src":"4567:7:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":36144,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35849,"src":"4550:16:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":36147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4550:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36148,"nodeType":"RevertStatement","src":"4543:32:37"}]}},{"AST":{"nodeType":"YulBlock","src":"4739:584:37","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4822:1:37","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4825:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4828:12:37"},"nodeType":"YulFunctionCall","src":"4828:14:37"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4809:12:37"},"nodeType":"YulFunctionCall","src":"4809:34:37"},"nodeType":"YulExpressionStatement","src":"4809:34:37"},{"nodeType":"YulVariableDeclaration","src":"4909:65:37","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"4936:3:37"},"nodeType":"YulFunctionCall","src":"4936:5:37"},{"name":"facet","nodeType":"YulIdentifier","src":"4943:5:37"},{"kind":"number","nodeType":"YulLiteral","src":"4950:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4953:12:37"},"nodeType":"YulFunctionCall","src":"4953:14:37"},{"kind":"number","nodeType":"YulLiteral","src":"4969:1:37","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4972:1:37","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"4923:12:37"},"nodeType":"YulFunctionCall","src":"4923:51:37"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"4913:6:37","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5038:1:37","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5041:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5044:14:37"},"nodeType":"YulFunctionCall","src":"5044:16:37"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"5023:14:37"},"nodeType":"YulFunctionCall","src":"5023:38:37"},"nodeType":"YulExpressionStatement","src":"5023:38:37"},{"cases":[{"body":{"nodeType":"YulBlock","src":"5174:59:37","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5199:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5202:14:37"},"nodeType":"YulFunctionCall","src":"5202:16:37"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5192:6:37"},"nodeType":"YulFunctionCall","src":"5192:27:37"},"nodeType":"YulExpressionStatement","src":"5192:27:37"}]},"nodeType":"YulCase","src":"5167:66:37","value":{"kind":"number","nodeType":"YulLiteral","src":"5172:1:37","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"5254:59:37","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5279:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5282:14:37"},"nodeType":"YulFunctionCall","src":"5282:16:37"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"5272:6:37"},"nodeType":"YulFunctionCall","src":"5272:27:37"},"nodeType":"YulExpressionStatement","src":"5272:27:37"}]},"nodeType":"YulCase","src":"5246:67:37","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"5148:6:37"},"nodeType":"YulSwitch","src":"5141:172:37"}]},"evmVersion":"paris","externalReferences":[{"declaration":36130,"isOffset":false,"isSlot":false,"src":"4943:5:37","valueSize":1}],"id":36151,"nodeType":"InlineAssembly","src":"4730:593:37"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"4099:9:37","parameters":{"id":36115,"nodeType":"ParameterList","parameters":[],"src":"4108:2:37"},"returnParameters":{"id":36116,"nodeType":"ParameterList","parameters":[],"src":"4120:0:37"},"scope":36170,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36161,"nodeType":"FunctionDefinition","src":"5396:56:37","nodes":[],"body":{"id":36160,"nodeType":"Block","src":"5424:28:37","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36157,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36153,"src":"5434:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5434:11:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36159,"nodeType":"ExpressionStatement","src":"5434:11:37"}]},"documentation":{"id":36154,"nodeType":"StructuredDocumentation","src":"5335:56:37","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36155,"nodeType":"ParameterList","parameters":[],"src":"5404:2:37"},"returnParameters":{"id":36156,"nodeType":"ParameterList","parameters":[],"src":"5424:0:37"},"scope":36170,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36169,"nodeType":"FunctionDefinition","src":"5525:55:37","nodes":[],"body":{"id":36168,"nodeType":"Block","src":"5552:28:37","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36165,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36153,"src":"5562:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5562:11:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36167,"nodeType":"ExpressionStatement","src":"5562:11:37"}]},"documentation":{"id":36162,"nodeType":"StructuredDocumentation","src":"5458:62:37","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36163,"nodeType":"ParameterList","parameters":[],"src":"5532:2:37"},"returnParameters":{"id":36164,"nodeType":"ParameterList","parameters":[],"src":"5552:0:37"},"scope":36170,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36170],"name":"GatewayDiamond","nameLocation":"1125:14:37","scope":36171,"usedErrors":[35849,37428,37444,37492,40925,40930,40934,40938,40943,40949,40962,40966,40970,40974,40978,40982,40986]}],"license":"MIT OR Apache-2.0"},"id":37} \ No newline at end of file diff --git a/.out/GatewayGetterFacet.sol/GatewayGetterFacet.json b/.out/GatewayGetterFacet.sol/GatewayGetterFacet.json index 9ffbca953..1f3ab9061 100644 --- a/.out/GatewayGetterFacet.sol/GatewayGetterFacet.json +++ b/.out/GatewayGetterFacet.sol/GatewayGetterFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"appliedTopDownNonce","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpoint","inputs":[{"name":"e","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatch","inputs":[{"name":"e","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatchPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpNonce","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"crossMsgFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAppliedTopDownNonce","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchCurrentWeight","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchInfo","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchSignatureBundle","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"info","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgRetentionHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointCurrentWeight","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointInfo","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getCheckpointRetentionHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointSignatureBundle","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ch","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"info","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBottomUpCheckpoint","inputs":[],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getCurrentConfigurationNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getCurrentMembership","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getIncompleteCheckpointHeights","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getIncompleteCheckpoints","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct BottomUpCheckpoint[]","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getIncompleteMsgBatchHeights","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getIncompleteMsgBatches","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct BottomUpMsgBatch[]","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"stateMutability":"view"},{"type":"function","name":"getLastConfigurationNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getLastMembership","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getLatestParentFinality","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getNetworkName","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getParentFinality","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getQuorumThreshold","inputs":[{"name":"totalWeight","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSubnet","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"tuple","internalType":"struct Subnet","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getSubnetTopDownMsgsLength","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"listSubnets","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Subnet[]","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"majorityPercentage","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"maxMsgsPerBottomUpBatch","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"postbox","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"storableMsg","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"subnets","inputs":[{"name":"h","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"subnet","type":"tuple","internalType":"struct Subnet","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"totalSubnets","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657612245908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c63430008130033","sourceMap":"648:13139:46:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":1420,"length":20},{"start":2191,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1089,"length":20},{"start":8439,"length":20}]}}},"deployedBytecode":{"object":"0x6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c63430008130033","sourceMap":"648:13139:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;6906:16;648:13139;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;6906:16;648:13139;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2684:20;648:13139;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;2114:21:63;648:13139:46;;;;;;-1:-1:-1;;;;;2100:12:63;;;;648:13139:46;;13838:1:63;648:13139:46;;;;;;;13799:55:63;;;;:::i;:::-;648:13139:46;;;2207:29:63;648:13139:46;;;2159:21:63;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2207:29:63;;648:13139:46;;;;;2207:29:63;;;:::i;:::-;;:27;;:29;;;;;;;;;;;648:13139:46;;;;;;;;;;2206:30:63;;;;648:13139:46;;;;;;;;;;;;;:::i;2207:29:63:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;648:13139:46;;;;;;;;;;;;:::i;:::-;2207:29:63;;;;;;;;648:13139:46;;;2207:29:63;;;;;;648:13139:46;;;;;;;;;;;-1:-1:-1;;;648:13139:46;;;;;;;;;-1:-1:-1;;;648:13139:46;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;12037:21;648:13139;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;12134:21;648:13139;;;;;;12105:54;;;;648:13139;;;;;12105:9;;648:13139;12105:9;;:54;;;;;;;;648:13139;12105:54;;;648:13139;12105:54;648:13139;;;12105:54;;;648:13139;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;12105:54::-;648:13139;12105:54;;648:13139;12105:54;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;648:13139;;;;;;;;;;;;;;;;;;3650:30;648:13139;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;3650:30;:::i;:::-;648:13139;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;;8253:38;648:13139;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8253:38;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;8492:32;648:13139;;;8492:49;648:13139;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7101:36:46;648:13139;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;;7840:32;648:13139;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;13084:20;648:13139;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13180:27;648:13139;;;;;;13151:60;;;;648:13139;;;;;13151:9;;648:13139;13151:9;;:60;;;;;;;;;648:13139;13151:60;;;648:13139;13151:60;648:13139;;;13151:60;;;648:13139;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13151:60;648:13139;13151:60;;648:13139;13151:60;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;13151:60:46;;;;;648:13139;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8967:39;648:13139;;;;;;;;;8967:39;648:13139;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1408:14:46;648:13139;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;4520:30;648:13139;;;;;;;;;:::i;4520:30::-;4695:19;;;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;9205:39;648:13139;;;;;;;;;9205:39;648:13139;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:13139:46;;;:::i;:::-;;;;;;;;;;9390:8;;;;;-1:-1:-1;;;;;648:13139:46;;;;9400:8;;;;;;9472:10;9426:58;9472:10;;;648:13139;9472:10;;;:::i;:::-;648:13139;;;;9443:21;648:13139;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;9426:58;;;;:::i;:::-;;;;:::i;:::-;;648:13139;;9390:8;;9400;;;;;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2152:13;648:13139;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6008:21;648:13139;;6008:21;;;648:13139;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5500:21:46;648:13139;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;3014:41;648:13139;;;;;;;;;:::i;:::-;;;;;;;3014:41;:::i;:::-;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10312:45;648:13139;;;;;;;;;10312:45;648:13139;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1792:24;648:13139;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;8740:38;648:13139;;;8740:55;648:13139;;;;;;;;;;;;;;;;;;;;;6459:12;648:13139;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:13139:46;;;:::i;:::-;;;;;;;;;6543:9;;;6554:8;;;;;;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;6543:9;648:13139;;;;;;;;;;;;;;;;:::i;:::-;6623:23;;;;:::i;:::-;;;;;;:::i;:::-;;648:13139;6543:9;;648:13139;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;6230:20;648:13139;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7468:39:46;648:13139;;;;;;;;;;;;;;;;;;;;;;;;10534:37;648:13139;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1240:15:46;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;9776:45;648:13139;;;;;;;;;9776:45;648:13139;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:13139:46;;;:::i;:::-;;;;;;;;;;9959:8;;;;;-1:-1:-1;;;;;648:13139:46;;;;9969:8;;;;;;10036:10;;;;;:::i;:::-;648:13139;;;;10008:20;648:13139;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;9995:53;648:13139;;;;;;;;;;;9995:53;;;;:::i;:::-;;648:13139;;9959:8;;648:13139;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9969:8;648:13139;;;;;;;;;;;;;9969:8;;648:13139;;;;;;;;;;;;;;9969:8;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;-1:-1:-1;;;;;648:13139:46;;;;;:::i;:::-;;;;;;2419:21;648:13139;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1062:16;648:13139;;;;;;;;;;;;;;;;;;;;;;;10735:43;648:13139;;;;;;;;;;;;;;;;;;;;;;;1973:21;648:13139;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;7293:3:67;7262:27;648:13139:46;;;11285:20;648:13139;;;;7262:27:67;:::i;:::-;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1594:25:46;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;5302:39:63;5320:20;648:13139:46;5302:39:63;:::i;648:13139:46:-;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;648:13139:46;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;648:13139:46;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;-1:-1:-1;;;;;648:13139:46;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;648:13139:46;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;-1:-1:-1;648:13139:46;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;648:13139:46;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;648:13139:46;;;;;;:::o;:::-;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;648:13139:46;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;-1:-1:-1;;;;;;648:13139:46;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;648:13139:46;;-1:-1:-1;648:13139:46;;;;-1:-1:-1;648:13139:46;;;;-1:-1:-1;648:13139:46;;;;-1:-1:-1;648:13139:46;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;:::i;5056:299::-;648:13139;5206:30;5056:299;648:13139;;;:::i;5206:30::-;5250:11;;5246:59;;5328:19;-1:-1:-1;;;;;5328:19:46;;648:13139;;5314:34;5322:4;5314:34;5056:299;:::o;5246:59::-;5277:17;5285:5;5277:17;5285:5;5277:17;:::o;648:13139::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;648:13139:46;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;4834:223:63;-1:-1:-1;648:13139:46;;;;;;:::i;:::-;;;;;;-1:-1:-1;648:13139:46;5022:15:63;648:13139:46;;;-1:-1:-1;648:13139:46;5022:15:63;648:13139:46;;;;;;:::i;:::-;;;;;;;;;;;4834:223:63;:::o;13234:272::-;13443:17;:15;648:13139:46;;;;;;;13443:17:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;3946:45:64;13443:17:63;;;13234:272;648:13139:46;;13480:19:63;648:13139:46;3946:45:64;648:13139:46;3946:45:64;648:13139:46;;;;3946:45:64;648:13139:46;13480:9:63;648:13139:46;13443:17:63;13480:9;;648:13139:46;:::i;:::-;;;;;;;;;;;;13480:19:63;;13443:17;13480:19;;;:::i;:::-;;;;;;;;;;3946:45:64;13480:19:63;;;13234:272;13479:20;;;;13234:272;:::o;13480:19::-;;;;;;;;;;;;;:::i;:::-;;;648:13139:46;;;;;;;;:::i;:::-;13480:19:63;;;;;;;;;;648:13139:46;;;3946:45:64;648:13139:46;;;;;13443:17:63;;;;;;;;;;;;;;;:::i;:::-;;;648:13139:46;;;;-1:-1:-1;648:13139:46;13480:19:63;13443:17;;;;;;;648:13139:46;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;","linkReferences":{"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":1392,"length":20},{"start":2163,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1061,"length":20},{"start":8411,"length":20}]}}},"methodIdentifiers":{"appliedTopDownNonce()":"8789f83b","bottomUpCheckPeriod()":"06c46853","bottomUpCheckpoint(uint256)":"2da5794a","bottomUpMsgBatch(uint256)":"dd81b5cf","bottomUpMsgBatchPeriod()":"69e737fd","bottomUpNonce()":"41b6a2e8","crossMsgFee()":"24729425","getAppliedTopDownNonce((uint64,address[]))":"9e530b57","getBottomUpMsgBatchCurrentWeight(uint256)":"6547cd64","getBottomUpMsgBatchInfo(uint256)":"b9ee5842","getBottomUpMsgBatchSignatureBundle(uint256)":"a9294bdd","getBottomUpMsgRetentionHeight()":"22180594","getCheckpointCurrentWeight(uint256)":"b3ab3f74","getCheckpointInfo(uint256)":"ac12d763","getCheckpointRetentionHeight()":"4aa8f8a5","getCheckpointSignatureBundle(uint256)":"ca41d5ce","getCurrentBottomUpCheckpoint()":"d6c5c397","getCurrentConfigurationNumber()":"544dddff","getCurrentMembership()":"6ad21bb0","getIncompleteCheckpointHeights()":"a517218f","getIncompleteCheckpoints()":"97042766","getIncompleteMsgBatchHeights()":"767ee5f4","getIncompleteMsgBatches()":"335eb62a","getLastConfigurationNumber()":"b1ba49b0","getLastMembership()":"f3229131","getLatestParentFinality()":"0338150f","getNetworkName()":"94074b03","getParentFinality(uint256)":"7edeac92","getQuorumThreshold(uint256)":"06572c1a","getSubnet((uint64,address[]))":"c66c66a1","getSubnetTopDownMsgsLength((uint64,address[]))":"9d3070b5","listSubnets()":"5d029685","majorityPercentage()":"599c7bd1","maxMsgsPerBottomUpBatch()":"05aff0b3","postbox(bytes32)":"8cfd78e7","subnets(bytes32)":"02e30f9a","totalSubnets()":"a2b67158"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"appliedTopDownNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"e\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpoint\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"e\",\"type\":\"uint256\"}],\"name\":\"bottomUpMsgBatch\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpMsgBatchPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getAppliedTopDownNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchCurrentWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchSignatureBundle\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"info\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBottomUpMsgRetentionHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointCurrentWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCheckpointRetentionHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointSignatureBundle\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"ch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"info\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBottomUpCheckpoint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentConfigurationNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentMembership\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteCheckpointHeights\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteCheckpoints\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteMsgBatchHeights\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteMsgBatches\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastConfigurationNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastMembership\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestParentFinality\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNetworkName\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getParentFinality\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalWeight\",\"type\":\"uint256\"}],\"name\":\"getQuorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnet\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnetTopDownMsgsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listSubnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxMsgsPerBottomUpBatch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"postbox\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"h\",\"type\":\"bytes32\"}],\"name\":\"subnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSubnets\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpoint(uint256)\":{\"params\":{\"e\":\"The epoch number of the checkpoint.\"}},\"bottomUpMsgBatch(uint256)\":{\"params\":{\"e\":\"The epoch number of the batch.\"}},\"getAppliedTopDownNonce((uint64,address[]))\":{\"params\":{\"subnetId\":\"The identifier of the subnet for which the top-down nonce is queried.\"},\"returns\":{\"_0\":\"A tuple containing a boolean indicating if the subnet is registered and the current top-down nonce.\"}},\"getBottomUpMsgBatchInfo(uint256)\":{\"params\":{\"h\":\"The block height of the bottom-up message batch.\"},\"returns\":{\"_0\":\"Quorum information associated with the given bottom-up message batch height.\"}},\"getBottomUpMsgBatchSignatureBundle(uint256)\":{\"params\":{\"h\":\"The height of the message batch for which information is requested.\"},\"returns\":{\"batch\":\"The bottom-up message batch information at the specified height.\",\"info\":\"Quorum information related to the message batch.\",\"signatories\":\"An array of addresses of signatories who have signed the message batch.\",\"signatures\":\"An array of signatures corresponding to each signatory for the message batch.\"}},\"getCheckpointInfo(uint256)\":{\"params\":{\"h\":\"The block height of the checkpoint.\"},\"returns\":{\"_0\":\"Quorum information associated with the given checkpoint height.\"}},\"getCheckpointSignatureBundle(uint256)\":{\"params\":{\"h\":\"The height of the checkpoint for which information is requested.\"},\"returns\":{\"ch\":\"The checkpoint information at the specified height.\",\"info\":\"Quorum information related to the checkpoint.\",\"signatories\":\"An array of addresses of signatories who have signed the checkpoint.\"}},\"getCurrentBottomUpCheckpoint()\":{\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"epoch\":\"- the epoch of the checkpoint\",\"exists\":\"- whether the checkpoint exists\"}},\"getParentFinality(uint256)\":{\"params\":{\"blockNumber\":\"The block number for which to retrieve parent-finality information.\"}},\"getQuorumThreshold(uint256)\":{\"params\":{\"totalWeight\":\"The total weight to consider for calculating the quorum threshold.\"},\"returns\":{\"_0\":\"The quorum threshold derived from the total weight and majority percentage.\"}},\"getSubnet((uint64,address[]))\":{\"params\":{\"subnetId\":\"the id of the subnet.\"},\"returns\":{\"_0\":\"found whether the subnet exists.\",\"_1\":\"subnet - the subnet struct.\"}},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"params\":{\"subnetId\":\"The identifier of the subnet for which the message queue length is queried.\"},\"returns\":{\"_0\":\"The current length of the top-down message queue, indicated by the subnet's top-down nonce.\"}},\"listSubnets()\":{\"returns\":{\"_0\":\"The list of the registered subnets.\"}},\"postbox(bytes32)\":{\"params\":{\"id\":\"The unique identifier of the message in the postbox.\"},\"returns\":{\"storableMsg\":\"The storable message associated with the given id.\",\"wrapped\":\"A boolean indicating whether the message is wrapped.\"}},\"subnets(bytes32)\":{\"params\":{\"h\":\"The hash identifier of the subnet to be queried.\"},\"returns\":{\"subnet\":\"The subnet information corresponding to the given hash.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"appliedTopDownNonce()\":{\"notice\":\"Returns the current applied top-down nonce.\"},\"bottomUpCheckPeriod()\":{\"notice\":\"Returns the period for bottom-up checkpointing.\"},\"bottomUpCheckpoint(uint256)\":{\"notice\":\"Returns a specific bottom-up checkpoint based on an epoch number.\"},\"bottomUpMsgBatch(uint256)\":{\"notice\":\"Returns a specific bottom-up message batch based on an index.\"},\"bottomUpMsgBatchPeriod()\":{\"notice\":\"Returns the period for processing bottom-up message batches.\"},\"bottomUpNonce()\":{\"notice\":\"Returns the current nonce for bottom-up message processing.\"},\"crossMsgFee()\":{\"notice\":\"Returns the minimum fee required for cross-net messages.\"},\"getAppliedTopDownNonce((uint64,address[]))\":{\"notice\":\"Returns the current applied top-down nonce for a specified subnet, indicating whether it's registered.\"},\"getBottomUpMsgBatchCurrentWeight(uint256)\":{\"notice\":\"Returns the batch current weight corresponding to the block height.\"},\"getBottomUpMsgBatchInfo(uint256)\":{\"notice\":\"Returns quorum information for a specific bottom-up message batch based on its height.\"},\"getBottomUpMsgBatchSignatureBundle(uint256)\":{\"notice\":\"Returns a bundle of information and signatures for a specified bottom-up message batch.\"},\"getBottomUpMsgRetentionHeight()\":{\"notice\":\"Returns the bottom-up batch retention index.\"},\"getCheckpointCurrentWeight(uint256)\":{\"notice\":\"Returns the checkpoint current weight corresponding to the block height.\"},\"getCheckpointInfo(uint256)\":{\"notice\":\"Returns quorum information for a specific checkpoint based on its height.\"},\"getCheckpointRetentionHeight()\":{\"notice\":\"Returns the bottom-up checkpoint retention index.\"},\"getCheckpointSignatureBundle(uint256)\":{\"notice\":\"Retrieves a bundle of information and signatures for a specified bottom-up checkpoint.\"},\"getCurrentBottomUpCheckpoint()\":{\"notice\":\"Returns the current bottom-up checkpoint.\"},\"getCurrentConfigurationNumber()\":{\"notice\":\"Returns the current configuration number.\"},\"getCurrentMembership()\":{\"notice\":\"Returns the current membership.\"},\"getIncompleteCheckpointHeights()\":{\"notice\":\"Returns the incomplete checkpoint heights.\"},\"getIncompleteCheckpoints()\":{\"notice\":\"Returns the incomplete checkpoints.\"},\"getIncompleteMsgBatchHeights()\":{\"notice\":\"Returns the incomplete msd batches heights.\"},\"getIncompleteMsgBatches()\":{\"notice\":\"Returns the incomplete batches of messages.\"},\"getLastConfigurationNumber()\":{\"notice\":\"Returns the last configuration number received from the parent.\"},\"getLastMembership()\":{\"notice\":\"Returns the last membership received from the parent.\"},\"getLatestParentFinality()\":{\"notice\":\"Gets the most recent parent-finality information from the parent.\"},\"getNetworkName()\":{\"notice\":\"Returns the subnet identifier of the network.\"},\"getParentFinality(uint256)\":{\"notice\":\"Returns the parent chain finality information for a given block number.\"},\"getQuorumThreshold(uint256)\":{\"notice\":\"Returns the threshold required for quorum in this subnet, based on the configured majority percentage and the total weight of the validators.\"},\"getSubnet((uint64,address[]))\":{\"notice\":\"Returns the subnet with the given id.\"},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"notice\":\"Returns the length of the top-down message queue for a specified subnet.\"},\"listSubnets()\":{\"notice\":\"Returns the list of registered subnets.\"},\"majorityPercentage()\":{\"notice\":\"Returns the majority percentage required for certain consensus or decision-making processes.\"},\"maxMsgsPerBottomUpBatch()\":{\"notice\":\"Returns the maximum number of messages per bottom-up batch.\"},\"postbox(bytes32)\":{\"notice\":\"Returns the storable message and its wrapped status from the postbox by a given identifier.\"},\"subnets(bytes32)\":{\"notice\":\"Returns information about a specific subnet using its hash identifier.\"},\"totalSubnets()\":{\"notice\":\"Returns the total number of the registered subnets.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayGetterFacet.sol\":\"GatewayGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"appliedTopDownNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpCheckPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"e","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpoint","outputs":[{"internalType":"struct BottomUpCheckpoint","name":"","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[{"internalType":"uint256","name":"e","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpMsgBatch","outputs":[{"internalType":"struct BottomUpMsgBatch","name":"","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpMsgBatchPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"crossMsgFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getAppliedTopDownNonce","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchCurrentWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchInfo","outputs":[{"internalType":"struct QuorumInfo","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchSignatureBundle","outputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"struct QuorumInfo","name":"info","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBottomUpMsgRetentionHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointCurrentWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointInfo","outputs":[{"internalType":"struct QuorumInfo","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCheckpointRetentionHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointSignatureBundle","outputs":[{"internalType":"struct BottomUpCheckpoint","name":"ch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"struct QuorumInfo","name":"info","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBottomUpCheckpoint","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentConfigurationNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentMembership","outputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteCheckpointHeights","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteCheckpoints","outputs":[{"internalType":"struct BottomUpCheckpoint[]","name":"","type":"tuple[]","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteMsgBatchHeights","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteMsgBatches","outputs":[{"internalType":"struct BottomUpMsgBatch[]","name":"","type":"tuple[]","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastConfigurationNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastMembership","outputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestParentFinality","outputs":[{"internalType":"struct ParentFinality","name":"","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNetworkName","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getParentFinality","outputs":[{"internalType":"struct ParentFinality","name":"","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"uint256","name":"totalWeight","type":"uint256"}],"stateMutability":"view","type":"function","name":"getQuorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getSubnet","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"struct Subnet","name":"","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getSubnetTopDownMsgsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"listSubnets","outputs":[{"internalType":"struct Subnet[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"majorityPercentage","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxMsgsPerBottomUpBatch","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"postbox","outputs":[{"internalType":"struct StorableMsg","name":"storableMsg","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"h","type":"bytes32"}],"stateMutability":"view","type":"function","name":"subnets","outputs":[{"internalType":"struct Subnet","name":"subnet","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSubnets","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"bottomUpCheckpoint(uint256)":{"params":{"e":"The epoch number of the checkpoint."}},"bottomUpMsgBatch(uint256)":{"params":{"e":"The epoch number of the batch."}},"getAppliedTopDownNonce((uint64,address[]))":{"params":{"subnetId":"The identifier of the subnet for which the top-down nonce is queried."},"returns":{"_0":"A tuple containing a boolean indicating if the subnet is registered and the current top-down nonce."}},"getBottomUpMsgBatchInfo(uint256)":{"params":{"h":"The block height of the bottom-up message batch."},"returns":{"_0":"Quorum information associated with the given bottom-up message batch height."}},"getBottomUpMsgBatchSignatureBundle(uint256)":{"params":{"h":"The height of the message batch for which information is requested."},"returns":{"batch":"The bottom-up message batch information at the specified height.","info":"Quorum information related to the message batch.","signatories":"An array of addresses of signatories who have signed the message batch.","signatures":"An array of signatures corresponding to each signatory for the message batch."}},"getCheckpointInfo(uint256)":{"params":{"h":"The block height of the checkpoint."},"returns":{"_0":"Quorum information associated with the given checkpoint height."}},"getCheckpointSignatureBundle(uint256)":{"params":{"h":"The height of the checkpoint for which information is requested."},"returns":{"ch":"The checkpoint information at the specified height.","info":"Quorum information related to the checkpoint.","signatories":"An array of addresses of signatories who have signed the checkpoint."}},"getCurrentBottomUpCheckpoint()":{"returns":{"checkpoint":"- the checkpoint struct","epoch":"- the epoch of the checkpoint","exists":"- whether the checkpoint exists"}},"getParentFinality(uint256)":{"params":{"blockNumber":"The block number for which to retrieve parent-finality information."}},"getQuorumThreshold(uint256)":{"params":{"totalWeight":"The total weight to consider for calculating the quorum threshold."},"returns":{"_0":"The quorum threshold derived from the total weight and majority percentage."}},"getSubnet((uint64,address[]))":{"params":{"subnetId":"the id of the subnet."},"returns":{"_0":"found whether the subnet exists.","_1":"subnet - the subnet struct."}},"getSubnetTopDownMsgsLength((uint64,address[]))":{"params":{"subnetId":"The identifier of the subnet for which the message queue length is queried."},"returns":{"_0":"The current length of the top-down message queue, indicated by the subnet's top-down nonce."}},"listSubnets()":{"returns":{"_0":"The list of the registered subnets."}},"postbox(bytes32)":{"params":{"id":"The unique identifier of the message in the postbox."},"returns":{"storableMsg":"The storable message associated with the given id.","wrapped":"A boolean indicating whether the message is wrapped."}},"subnets(bytes32)":{"params":{"h":"The hash identifier of the subnet to be queried."},"returns":{"subnet":"The subnet information corresponding to the given hash."}}},"version":1},"userdoc":{"kind":"user","methods":{"appliedTopDownNonce()":{"notice":"Returns the current applied top-down nonce."},"bottomUpCheckPeriod()":{"notice":"Returns the period for bottom-up checkpointing."},"bottomUpCheckpoint(uint256)":{"notice":"Returns a specific bottom-up checkpoint based on an epoch number."},"bottomUpMsgBatch(uint256)":{"notice":"Returns a specific bottom-up message batch based on an index."},"bottomUpMsgBatchPeriod()":{"notice":"Returns the period for processing bottom-up message batches."},"bottomUpNonce()":{"notice":"Returns the current nonce for bottom-up message processing."},"crossMsgFee()":{"notice":"Returns the minimum fee required for cross-net messages."},"getAppliedTopDownNonce((uint64,address[]))":{"notice":"Returns the current applied top-down nonce for a specified subnet, indicating whether it's registered."},"getBottomUpMsgBatchCurrentWeight(uint256)":{"notice":"Returns the batch current weight corresponding to the block height."},"getBottomUpMsgBatchInfo(uint256)":{"notice":"Returns quorum information for a specific bottom-up message batch based on its height."},"getBottomUpMsgBatchSignatureBundle(uint256)":{"notice":"Returns a bundle of information and signatures for a specified bottom-up message batch."},"getBottomUpMsgRetentionHeight()":{"notice":"Returns the bottom-up batch retention index."},"getCheckpointCurrentWeight(uint256)":{"notice":"Returns the checkpoint current weight corresponding to the block height."},"getCheckpointInfo(uint256)":{"notice":"Returns quorum information for a specific checkpoint based on its height."},"getCheckpointRetentionHeight()":{"notice":"Returns the bottom-up checkpoint retention index."},"getCheckpointSignatureBundle(uint256)":{"notice":"Retrieves a bundle of information and signatures for a specified bottom-up checkpoint."},"getCurrentBottomUpCheckpoint()":{"notice":"Returns the current bottom-up checkpoint."},"getCurrentConfigurationNumber()":{"notice":"Returns the current configuration number."},"getCurrentMembership()":{"notice":"Returns the current membership."},"getIncompleteCheckpointHeights()":{"notice":"Returns the incomplete checkpoint heights."},"getIncompleteCheckpoints()":{"notice":"Returns the incomplete checkpoints."},"getIncompleteMsgBatchHeights()":{"notice":"Returns the incomplete msd batches heights."},"getIncompleteMsgBatches()":{"notice":"Returns the incomplete batches of messages."},"getLastConfigurationNumber()":{"notice":"Returns the last configuration number received from the parent."},"getLastMembership()":{"notice":"Returns the last membership received from the parent."},"getLatestParentFinality()":{"notice":"Gets the most recent parent-finality information from the parent."},"getNetworkName()":{"notice":"Returns the subnet identifier of the network."},"getParentFinality(uint256)":{"notice":"Returns the parent chain finality information for a given block number."},"getQuorumThreshold(uint256)":{"notice":"Returns the threshold required for quorum in this subnet, based on the configured majority percentage and the total weight of the validators."},"getSubnet((uint64,address[]))":{"notice":"Returns the subnet with the given id."},"getSubnetTopDownMsgsLength((uint64,address[]))":{"notice":"Returns the length of the top-down message queue for a specified subnet."},"listSubnets()":{"notice":"Returns the list of registered subnets."},"majorityPercentage()":{"notice":"Returns the majority percentage required for certain consensus or decision-making processes."},"maxMsgsPerBottomUpBatch()":{"notice":"Returns the maximum number of messages per bottom-up batch."},"postbox(bytes32)":{"notice":"Returns the storable message and its wrapped status from the postbox by a given identifier."},"subnets(bytes32)":{"notice":"Returns information about a specific subnet using its hash identifier."},"totalSubnets()":{"notice":"Returns the total number of the registered subnets."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayGetterFacet.sol":"GatewayGetterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayGetterFacet.sol","id":38318,"exportedSymbols":{"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"EnumerableSet":[35815],"GatewayActorStorage":[43068],"GatewayGetterFacet":[38317],"LibGateway":[42944],"LibQuorum":[43948],"Membership":[50218],"ParentFinality":[49918],"QuorumInfo":[50028],"StorableMsg":[49991],"Subnet":[50091],"SubnetID":[50077],"SubnetIDHelper":[48072]},"nodeType":"SourceUnit","src":"46:13742:46","nodes":[{"id":37543,"nodeType":"PragmaDirective","src":"46:23:46","nodes":[],"literals":["solidity","0.8",".19"]},{"id":37548,"nodeType":"ImportDirective","src":"71:106:46","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":37544,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"79:18:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37545,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"99:16:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37546,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"117:11:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37547,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"130:14:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37550,"nodeType":"ImportDirective","src":"178:49:46","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":37549,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50028,"src":"186:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37553,"nodeType":"ImportDirective","src":"228:55:46","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":37551,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"236:8:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37552,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"246:6:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37555,"nodeType":"ImportDirective","src":"284:49:46","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":37554,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"292:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37557,"nodeType":"ImportDirective","src":"334:49:46","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":37556,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"342:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37559,"nodeType":"ImportDirective","src":"384:47:46","nodes":[],"absolutePath":"src/lib/LibQuorum.sol","file":"../lib/LibQuorum.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":43949,"symbolAliases":[{"foreign":{"id":37558,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"392:9:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37561,"nodeType":"ImportDirective","src":"432:70:46","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":37560,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43068,"src":"440:19:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37563,"nodeType":"ImportDirective","src":"503:57:46","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":37562,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"511:14:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37565,"nodeType":"ImportDirective","src":"561:85:46","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":37564,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"569:13:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38317,"nodeType":"ContractDefinition","src":"648:13139:46","nodes":[{"id":37568,"nodeType":"VariableDeclaration","src":"735:30:46","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"764:1:46","scope":38317,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":37567,"nodeType":"UserDefinedTypeName","pathNode":{"id":37566,"name":"GatewayActorStorage","nameLocations":["735:19:46"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"735:19:46"},"referencedDeclaration":43068,"src":"735:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":37572,"nodeType":"UsingForDirective","src":"772:34:46","nodes":[],"global":false,"libraryName":{"id":37569,"name":"SubnetIDHelper","nameLocations":["778:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"778:14:46"},"typeName":{"id":37571,"nodeType":"UserDefinedTypeName","pathNode":{"id":37570,"name":"SubnetID","nameLocations":["797:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"797:8:46"},"referencedDeclaration":50077,"src":"797:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":37576,"nodeType":"UsingForDirective","src":"811:46:46","nodes":[],"global":false,"libraryName":{"id":37573,"name":"EnumerableSet","nameLocations":["817:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"817:13:46"},"typeName":{"id":37575,"nodeType":"UserDefinedTypeName","pathNode":{"id":37574,"name":"EnumerableSet.UintSet","nameLocations":["835:13:46","849:7:46"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"835:21:46"},"referencedDeclaration":35685,"src":"835:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"id":37580,"nodeType":"UsingForDirective","src":"862:49:46","nodes":[],"global":false,"libraryName":{"id":37577,"name":"EnumerableSet","nameLocations":["868:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"868:13:46"},"typeName":{"id":37579,"nodeType":"UserDefinedTypeName","pathNode":{"id":37578,"name":"EnumerableSet.AddressSet","nameLocations":["886:13:46","900:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"886:24:46"},"referencedDeclaration":35528,"src":"886:24:46","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":37590,"nodeType":"FunctionDefinition","src":"990:95:46","nodes":[],"body":{"id":37589,"nodeType":"Block","src":"1045:40:46","nodes":[],"statements":[{"expression":{"expression":{"id":37586,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1062:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1064:14:46","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":43027,"src":"1062:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37585,"id":37588,"nodeType":"Return","src":"1055:23:46"}]},"documentation":{"id":37581,"nodeType":"StructuredDocumentation","src":"917:68:46","text":"@notice Returns the minimum fee required for cross-net messages."},"functionSelector":"24729425","implemented":true,"kind":"function","modifiers":[],"name":"crossMsgFee","nameLocation":"999:11:46","parameters":{"id":37582,"nodeType":"ParameterList","parameters":[],"src":"1010:2:46"},"returnParameters":{"id":37585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37590,"src":"1036:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37583,"name":"uint256","nodeType":"ElementaryTypeName","src":"1036:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1035:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37600,"nodeType":"FunctionDefinition","src":"1167:95:46","nodes":[],"body":{"id":37599,"nodeType":"Block","src":"1223:39:46","nodes":[],"statements":[{"expression":{"expression":{"id":37596,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1240:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1242:13:46","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":43033,"src":"1240:15:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37595,"id":37598,"nodeType":"Return","src":"1233:22:46"}]},"documentation":{"id":37591,"nodeType":"StructuredDocumentation","src":"1091:71:46","text":"@notice Returns the current nonce for bottom-up message processing."},"functionSelector":"41b6a2e8","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpNonce","nameLocation":"1176:13:46","parameters":{"id":37592,"nodeType":"ParameterList","parameters":[],"src":"1189:2:46"},"returnParameters":{"id":37595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37600,"src":"1215:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37593,"name":"uint64","nodeType":"ElementaryTypeName","src":"1215:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1214:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37610,"nodeType":"FunctionDefinition","src":"1336:93:46","nodes":[],"body":{"id":37609,"nodeType":"Block","src":"1391:38:46","nodes":[],"statements":[{"expression":{"expression":{"id":37606,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1408:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1410:12:46","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":43039,"src":"1408:14:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37605,"id":37608,"nodeType":"Return","src":"1401:21:46"}]},"documentation":{"id":37601,"nodeType":"StructuredDocumentation","src":"1268:63:46","text":"@notice Returns the total number of the registered subnets."},"functionSelector":"a2b67158","implemented":true,"kind":"function","modifiers":[],"name":"totalSubnets","nameLocation":"1345:12:46","parameters":{"id":37602,"nodeType":"ParameterList","parameters":[],"src":"1357:2:46"},"returnParameters":{"id":37605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37610,"src":"1383:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37603,"name":"uint64","nodeType":"ElementaryTypeName","src":"1383:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1382:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37620,"nodeType":"FunctionDefinition","src":"1511:115:46","nodes":[],"body":{"id":37619,"nodeType":"Block","src":"1577:49:46","nodes":[],"statements":[{"expression":{"expression":{"id":37616,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1594:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1596:23:46","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":43048,"src":"1594:25:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37615,"id":37618,"nodeType":"Return","src":"1587:32:46"}]},"documentation":{"id":37611,"nodeType":"StructuredDocumentation","src":"1435:71:46","text":"@notice Returns the maximum number of messages per bottom-up batch."},"functionSelector":"05aff0b3","implemented":true,"kind":"function","modifiers":[],"name":"maxMsgsPerBottomUpBatch","nameLocation":"1520:23:46","parameters":{"id":37612,"nodeType":"ParameterList","parameters":[],"src":"1543:2:46"},"returnParameters":{"id":37615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37620,"src":"1569:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37613,"name":"uint64","nodeType":"ElementaryTypeName","src":"1569:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1568:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37630,"nodeType":"FunctionDefinition","src":"1709:114:46","nodes":[],"body":{"id":37629,"nodeType":"Block","src":"1775:48:46","nodes":[],"statements":[{"expression":{"expression":{"id":37626,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1792:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1794:22:46","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":43045,"src":"1792:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37625,"id":37628,"nodeType":"Return","src":"1785:31:46"}]},"documentation":{"id":37621,"nodeType":"StructuredDocumentation","src":"1632:72:46","text":"@notice Returns the period for processing bottom-up message batches."},"functionSelector":"69e737fd","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatchPeriod","nameLocation":"1718:22:46","parameters":{"id":37622,"nodeType":"ParameterList","parameters":[],"src":"1740:2:46"},"returnParameters":{"id":37625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37630,"src":"1766:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37623,"name":"uint256","nodeType":"ElementaryTypeName","src":"1766:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1765:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37640,"nodeType":"FunctionDefinition","src":"1893:108:46","nodes":[],"body":{"id":37639,"nodeType":"Block","src":"1956:45:46","nodes":[],"statements":[{"expression":{"expression":{"id":37636,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1973:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1975:19:46","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":43042,"src":"1973:21:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37635,"id":37638,"nodeType":"Return","src":"1966:28:46"}]},"documentation":{"id":37631,"nodeType":"StructuredDocumentation","src":"1829:59:46","text":"@notice Returns the period for bottom-up checkpointing."},"functionSelector":"06c46853","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckPeriod","nameLocation":"1902:19:46","parameters":{"id":37632,"nodeType":"ParameterList","parameters":[],"src":"1921:2:46"},"returnParameters":{"id":37635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37640,"src":"1947:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37633,"name":"uint256","nodeType":"ElementaryTypeName","src":"1947:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1946:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37651,"nodeType":"FunctionDefinition","src":"2069:103:46","nodes":[],"body":{"id":37650,"nodeType":"Block","src":"2135:37:46","nodes":[],"statements":[{"expression":{"expression":{"id":37647,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"2152:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2154:11:46","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"2152:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"functionReturnParameters":37646,"id":37649,"nodeType":"Return","src":"2145:20:46"}]},"documentation":{"id":37641,"nodeType":"StructuredDocumentation","src":"2007:57:46","text":"@notice Returns the subnet identifier of the network."},"functionSelector":"94074b03","implemented":true,"kind":"function","modifiers":[],"name":"getNetworkName","nameLocation":"2078:14:46","parameters":{"id":37642,"nodeType":"ParameterList","parameters":[],"src":"2092:2:46"},"returnParameters":{"id":37646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37651,"src":"2118:15:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":37644,"nodeType":"UserDefinedTypeName","pathNode":{"id":37643,"name":"SubnetID","nameLocations":["2118:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2118:8:46"},"referencedDeclaration":50077,"src":"2118:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2117:17:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37666,"nodeType":"FunctionDefinition","src":"2313:137:46","nodes":[],"body":{"id":37665,"nodeType":"Block","src":"2402:48:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37660,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"2419:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2421:19:46","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"2419:21:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":37663,"indexExpression":{"id":37662,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37654,"src":"2441:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2419:24:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"functionReturnParameters":37659,"id":37664,"nodeType":"Return","src":"2412:31:46"}]},"documentation":{"id":37652,"nodeType":"StructuredDocumentation","src":"2178:130:46","text":"@notice Returns a specific bottom-up checkpoint based on an epoch number.\n @param e The epoch number of the checkpoint."},"functionSelector":"2da5794a","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpoint","nameLocation":"2322:18:46","parameters":{"id":37655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37654,"mutability":"mutable","name":"e","nameLocation":"2349:1:46","nodeType":"VariableDeclaration","scope":37666,"src":"2341:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37653,"name":"uint256","nodeType":"ElementaryTypeName","src":"2341:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2340:11:46"},"returnParameters":{"id":37659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37666,"src":"2375:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":37657,"nodeType":"UserDefinedTypeName","pathNode":{"id":37656,"name":"BottomUpCheckpoint","nameLocations":["2375:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"2375:18:46"},"referencedDeclaration":49932,"src":"2375:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"2374:27:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37681,"nodeType":"FunctionDefinition","src":"2582:132:46","nodes":[],"body":{"id":37680,"nodeType":"Block","src":"2667:47:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"2684:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2686:18:46","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"2684:20:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":37678,"indexExpression":{"id":37677,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37669,"src":"2705:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2684:23:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"functionReturnParameters":37674,"id":37679,"nodeType":"Return","src":"2677:30:46"}]},"documentation":{"id":37667,"nodeType":"StructuredDocumentation","src":"2456:121:46","text":"@notice Returns a specific bottom-up message batch based on an index.\n @param e The epoch number of the batch."},"functionSelector":"dd81b5cf","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatch","nameLocation":"2591:16:46","parameters":{"id":37670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37669,"mutability":"mutable","name":"e","nameLocation":"2616:1:46","nodeType":"VariableDeclaration","scope":37681,"src":"2608:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37668,"name":"uint256","nodeType":"ElementaryTypeName","src":"2608:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2607:11:46"},"returnParameters":{"id":37674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37681,"src":"2642:23:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":37672,"nodeType":"UserDefinedTypeName","pathNode":{"id":37671,"name":"BottomUpMsgBatch","nameLocations":["2642:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"2642:16:46"},"referencedDeclaration":49945,"src":"2642:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"2641:25:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37696,"nodeType":"FunctionDefinition","src":"2903:159:46","nodes":[],"body":{"id":37695,"nodeType":"Block","src":"2997:65:46","nodes":[],"statements":[{"expression":{"arguments":[{"id":37692,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37684,"src":"3043:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37690,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3014:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":37691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3025:17:46","memberName":"getParentFinality","nodeType":"MemberAccess","referencedDeclaration":42029,"src":"3014:28:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (uint256) view returns (struct ParentFinality memory)"}},"id":37693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3014:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":37689,"id":37694,"nodeType":"Return","src":"3007:48:46"}]},"documentation":{"id":37682,"nodeType":"StructuredDocumentation","src":"2720:178:46","text":"@notice Returns the parent chain finality information for a given block number.\n @param blockNumber The block number for which to retrieve parent-finality information."},"functionSelector":"7edeac92","implemented":true,"kind":"function","modifiers":[],"name":"getParentFinality","nameLocation":"2912:17:46","parameters":{"id":37685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37684,"mutability":"mutable","name":"blockNumber","nameLocation":"2938:11:46","nodeType":"VariableDeclaration","scope":37696,"src":"2930:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37683,"name":"uint256","nodeType":"ElementaryTypeName","src":"2930:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2929:21:46"},"returnParameters":{"id":37689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37696,"src":"2974:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":37687,"nodeType":"UserDefinedTypeName","pathNode":{"id":37686,"name":"ParentFinality","nameLocations":["2974:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"2974:14:46"},"referencedDeclaration":49918,"src":"2974:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"2973:23:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37708,"nodeType":"FunctionDefinition","src":"3150:141:46","nodes":[],"body":{"id":37707,"nodeType":"Block","src":"3231:60:46","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37703,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3248:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":37704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3259:23:46","memberName":"getLatestParentFinality","nodeType":"MemberAccess","referencedDeclaration":42049,"src":"3248:34:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function () view returns (struct ParentFinality memory)"}},"id":37705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3248:36:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":37702,"id":37706,"nodeType":"Return","src":"3241:43:46"}]},"documentation":{"id":37697,"nodeType":"StructuredDocumentation","src":"3068:77:46","text":"@notice Gets the most recent parent-finality information from the parent."},"functionSelector":"0338150f","implemented":true,"kind":"function","modifiers":[],"name":"getLatestParentFinality","nameLocation":"3159:23:46","parameters":{"id":37698,"nodeType":"ParameterList","parameters":[],"src":"3182:2:46"},"returnParameters":{"id":37702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37708,"src":"3208:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":37700,"nodeType":"UserDefinedTypeName","pathNode":{"id":37699,"name":"ParentFinality","nameLocations":["3208:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"3208:14:46"},"referencedDeclaration":49918,"src":"3208:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"3207:23:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37726,"nodeType":"FunctionDefinition","src":"3491:196:46","nodes":[],"body":{"id":37725,"nodeType":"Block","src":"3582:105:46","nodes":[],"statements":[{"expression":{"arguments":[{"id":37722,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37712,"src":"3671:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":37720,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3650:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":37721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3661:9:46","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"3650:20:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3650:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"functionReturnParameters":37719,"id":37724,"nodeType":"Return","src":"3643:37:46"}]},"documentation":{"id":37709,"nodeType":"StructuredDocumentation","src":"3297:189:46","text":"@notice Returns the subnet with the given id.\n @param subnetId the id of the subnet.\n @return found whether the subnet exists.\n @return subnet - the subnet struct."},"functionSelector":"c66c66a1","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"3500:9:46","parameters":{"id":37713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37712,"mutability":"mutable","name":"subnetId","nameLocation":"3528:8:46","nodeType":"VariableDeclaration","scope":37726,"src":"3510:26:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":37711,"nodeType":"UserDefinedTypeName","pathNode":{"id":37710,"name":"SubnetID","nameLocations":["3510:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"3510:8:46"},"referencedDeclaration":50077,"src":"3510:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3509:28:46"},"returnParameters":{"id":37719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37726,"src":"3561:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37714,"name":"bool","nodeType":"ElementaryTypeName","src":"3561:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37726,"src":"3567:13:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":37717,"nodeType":"UserDefinedTypeName","pathNode":{"id":37716,"name":"Subnet","nameLocations":["3567:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"3567:6:46"},"referencedDeclaration":50091,"src":"3567:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"3560:21:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37741,"nodeType":"FunctionDefinition","src":"3925:109:46","nodes":[],"body":{"id":37740,"nodeType":"Block","src":"3998:36:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37735,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"4015:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4017:7:46","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42973,"src":"4015:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":37738,"indexExpression":{"id":37737,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37729,"src":"4025:1:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4015:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage","typeString":"struct Subnet storage ref"}},"functionReturnParameters":37734,"id":37739,"nodeType":"Return","src":"4008:19:46"}]},"documentation":{"id":37727,"nodeType":"StructuredDocumentation","src":"3693:227:46","text":"@notice Returns information about a specific subnet using its hash identifier.\n @param h The hash identifier of the subnet to be queried.\n @return subnet The subnet information corresponding to the given hash."},"functionSelector":"02e30f9a","implemented":true,"kind":"function","modifiers":[],"name":"subnets","nameLocation":"3934:7:46","parameters":{"id":37730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37729,"mutability":"mutable","name":"h","nameLocation":"3950:1:46","nodeType":"VariableDeclaration","scope":37741,"src":"3942:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3942:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3941:11:46"},"returnParameters":{"id":37734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37733,"mutability":"mutable","name":"subnet","nameLocation":"3990:6:46","nodeType":"VariableDeclaration","scope":37741,"src":"3976:20:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":37732,"nodeType":"UserDefinedTypeName","pathNode":{"id":37731,"name":"Subnet","nameLocations":["3976:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"3976:6:46"},"referencedDeclaration":50091,"src":"3976:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"3975:22:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37762,"nodeType":"FunctionDefinition","src":"4337:384:46","nodes":[],"body":{"id":37761,"nodeType":"Block","src":"4431:290:46","nodes":[],"statements":[{"assignments":[null,37752],"declarations":[null,{"constant":false,"id":37752,"mutability":"mutable","name":"subnet","nameLocation":"4510:6:46","nodeType":"VariableDeclaration","scope":37761,"src":"4495:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":37751,"nodeType":"UserDefinedTypeName","pathNode":{"id":37750,"name":"Subnet","nameLocations":["4495:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"4495:6:46"},"referencedDeclaration":50091,"src":"4495:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":37757,"initialValue":{"arguments":[{"id":37755,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37745,"src":"4541:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":37753,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4520:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":37754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4531:9:46","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"4520:20:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"4492:58:46"},{"expression":{"expression":{"id":37758,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37752,"src":"4695:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":37759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4702:12:46","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"4695:19:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37749,"id":37760,"nodeType":"Return","src":"4688:26:46"}]},"documentation":{"id":37742,"nodeType":"StructuredDocumentation","src":"4040:292:46","text":"@notice Returns the length of the top-down message queue for a specified subnet.\n @param subnetId The identifier of the subnet for which the message queue length is queried.\n @return The current length of the top-down message queue, indicated by the subnet's top-down nonce."},"functionSelector":"9d3070b5","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetTopDownMsgsLength","nameLocation":"4346:26:46","parameters":{"id":37746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37745,"mutability":"mutable","name":"subnetId","nameLocation":"4389:8:46","nodeType":"VariableDeclaration","scope":37762,"src":"4373:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":37744,"nodeType":"UserDefinedTypeName","pathNode":{"id":37743,"name":"SubnetID","nameLocations":["4373:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4373:8:46"},"referencedDeclaration":50077,"src":"4373:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4372:26:46"},"returnParameters":{"id":37749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37762,"src":"4422:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37747,"name":"uint256","nodeType":"ElementaryTypeName","src":"4422:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4421:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37797,"nodeType":"FunctionDefinition","src":"5056:299:46","nodes":[],"body":{"id":37796,"nodeType":"Block","src":"5153:202:46","nodes":[],"statements":[{"assignments":[37774,37777],"declarations":[{"constant":false,"id":37774,"mutability":"mutable","name":"registered","nameLocation":"5169:10:46","nodeType":"VariableDeclaration","scope":37796,"src":"5164:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37773,"name":"bool","nodeType":"ElementaryTypeName","src":"5164:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37777,"mutability":"mutable","name":"subnet","nameLocation":"5196:6:46","nodeType":"VariableDeclaration","scope":37796,"src":"5181:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":37776,"nodeType":"UserDefinedTypeName","pathNode":{"id":37775,"name":"Subnet","nameLocations":["5181:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"5181:6:46"},"referencedDeclaration":50091,"src":"5181:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":37782,"initialValue":{"arguments":[{"id":37780,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37766,"src":"5227:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":37778,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"5206:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":37779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5217:9:46","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"5206:20:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5206:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"5163:73:46"},{"condition":{"id":37784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5250:11:46","subExpression":{"id":37783,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37774,"src":"5251:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37790,"nodeType":"IfStatement","src":"5246:59:46","trueBody":{"id":37789,"nodeType":"Block","src":"5263:42:46","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":37785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5285:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":37786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5292:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":37787,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5284:10:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":37772,"id":37788,"nodeType":"Return","src":"5277:17:46"}]}},{"expression":{"components":[{"hexValue":"74727565","id":37791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5322:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"expression":{"id":37792,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37777,"src":"5328:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":37793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5335:12:46","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"5328:19:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":37794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5321:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$","typeString":"tuple(bool,uint64)"}},"functionReturnParameters":37772,"id":37795,"nodeType":"Return","src":"5314:34:46"}]},"documentation":{"id":37763,"nodeType":"StructuredDocumentation","src":"4727:324:46","text":"@notice Returns the current applied top-down nonce for a specified subnet, indicating whether it's registered.\n @param subnetId The identifier of the subnet for which the top-down nonce is queried.\n @return A tuple containing a boolean indicating if the subnet is registered and the current top-down nonce."},"functionSelector":"9e530b57","implemented":true,"kind":"function","modifiers":[],"name":"getAppliedTopDownNonce","nameLocation":"5065:22:46","parameters":{"id":37767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37766,"mutability":"mutable","name":"subnetId","nameLocation":"5106:8:46","nodeType":"VariableDeclaration","scope":37797,"src":"5088:26:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":37765,"nodeType":"UserDefinedTypeName","pathNode":{"id":37764,"name":"SubnetID","nameLocations":["5088:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"5088:8:46"},"referencedDeclaration":50077,"src":"5088:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"5087:28:46"},"returnParameters":{"id":37772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37797,"src":"5139:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37768,"name":"bool","nodeType":"ElementaryTypeName","src":"5139:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37797,"src":"5145:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37770,"name":"uint64","nodeType":"ElementaryTypeName","src":"5145:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5138:14:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37807,"nodeType":"FunctionDefinition","src":"5421:107:46","nodes":[],"body":{"id":37806,"nodeType":"Block","src":"5483:45:46","nodes":[],"statements":[{"expression":{"expression":{"id":37803,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"5500:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5502:19:46","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":43036,"src":"5500:21:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37802,"id":37805,"nodeType":"Return","src":"5493:28:46"}]},"documentation":{"id":37798,"nodeType":"StructuredDocumentation","src":"5361:55:46","text":"@notice Returns the current applied top-down nonce."},"functionSelector":"8789f83b","implemented":true,"kind":"function","modifiers":[],"name":"appliedTopDownNonce","nameLocation":"5430:19:46","parameters":{"id":37799,"nodeType":"ParameterList","parameters":[],"src":"5449:2:46"},"returnParameters":{"id":37802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37807,"src":"5475:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37800,"name":"uint64","nodeType":"ElementaryTypeName","src":"5475:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5474:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37831,"nodeType":"FunctionDefinition","src":"5869:168:46","nodes":[],"body":{"id":37830,"nodeType":"Block","src":"5967:70:46","nodes":[],"statements":[{"expression":{"components":[{"expression":{"baseExpression":{"expression":{"id":37818,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"5985:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5987:7:46","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42988,"src":"5985:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":37821,"indexExpression":{"id":37820,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37810,"src":"5995:2:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5985:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"id":37822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5999:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"5985:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage","typeString":"struct StorableMsg storage ref"}},{"expression":{"baseExpression":{"expression":{"id":37823,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6008:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6010:7:46","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42988,"src":"6008:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":37826,"indexExpression":{"id":37825,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37810,"src":"6018:2:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6008:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"id":37827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6022:7:46","memberName":"wrapped","nodeType":"MemberAccess","referencedDeclaration":49973,"src":"6008:21:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":37828,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5984:46:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_StorableMsg_$49991_storage_$_t_bool_$","typeString":"tuple(struct StorableMsg storage ref,bool)"}},"functionReturnParameters":37817,"id":37829,"nodeType":"Return","src":"5977:53:46"}]},"documentation":{"id":37808,"nodeType":"StructuredDocumentation","src":"5534:330:46","text":"@notice Returns the storable message and its wrapped status from the postbox by a given identifier.\n @param id The unique identifier of the message in the postbox.\n @return storableMsg The storable message associated with the given id.\n @return wrapped A boolean indicating whether the message is wrapped."},"functionSelector":"8cfd78e7","implemented":true,"kind":"function","modifiers":[],"name":"postbox","nameLocation":"5878:7:46","parameters":{"id":37811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37810,"mutability":"mutable","name":"id","nameLocation":"5894:2:46","nodeType":"VariableDeclaration","scope":37831,"src":"5886:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37809,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5886:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5885:12:46"},"returnParameters":{"id":37817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37814,"mutability":"mutable","name":"storableMsg","nameLocation":"5940:11:46","nodeType":"VariableDeclaration","scope":37831,"src":"5921:30:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg"},"typeName":{"id":37813,"nodeType":"UserDefinedTypeName","pathNode":{"id":37812,"name":"StorableMsg","nameLocations":["5921:11:46"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"5921:11:46"},"referencedDeclaration":49991,"src":"5921:11:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":37816,"mutability":"mutable","name":"wrapped","nameLocation":"5958:7:46","nodeType":"VariableDeclaration","scope":37831,"src":"5953:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37815,"name":"bool","nodeType":"ElementaryTypeName","src":"5953:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5920:46:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37841,"nodeType":"FunctionDefinition","src":"6152:105:46","nodes":[],"body":{"id":37840,"nodeType":"Block","src":"6213:44:46","nodes":[],"statements":[{"expression":{"expression":{"id":37837,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6230:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6232:18:46","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":43030,"src":"6230:20:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":37836,"id":37839,"nodeType":"Return","src":"6223:27:46"}]},"documentation":{"id":37832,"nodeType":"StructuredDocumentation","src":"6043:104:46","text":"@notice Returns the majority percentage required for certain consensus or decision-making processes."},"functionSelector":"599c7bd1","implemented":true,"kind":"function","modifiers":[],"name":"majorityPercentage","nameLocation":"6161:18:46","parameters":{"id":37833,"nodeType":"ParameterList","parameters":[],"src":"6179:2:46"},"returnParameters":{"id":37836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37835,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37841,"src":"6205:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37834,"name":"uint64","nodeType":"ElementaryTypeName","src":"6205:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6204:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37898,"nodeType":"FunctionDefinition","src":"6371:371:46","nodes":[],"body":{"id":37897,"nodeType":"Block","src":"6434:308:46","nodes":[],"statements":[{"assignments":[37850],"declarations":[{"constant":false,"id":37850,"mutability":"mutable","name":"size","nameLocation":"6452:4:46","nodeType":"VariableDeclaration","scope":37897,"src":"6444:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37849,"name":"uint256","nodeType":"ElementaryTypeName","src":"6444:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37854,"initialValue":{"expression":{"expression":{"id":37851,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6459:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6461:10:46","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":43020,"src":"6459:12:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":37853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6472:6:46","memberName":"length","nodeType":"MemberAccess","src":"6459:19:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6444:34:46"},{"assignments":[37859],"declarations":[{"constant":false,"id":37859,"mutability":"mutable","name":"out","nameLocation":"6504:3:46","nodeType":"VariableDeclaration","scope":37897,"src":"6488:19:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet[]"},"typeName":{"baseType":{"id":37857,"nodeType":"UserDefinedTypeName","pathNode":{"id":37856,"name":"Subnet","nameLocations":["6488:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"6488:6:46"},"referencedDeclaration":50091,"src":"6488:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"id":37858,"nodeType":"ArrayTypeName","src":"6488:8:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}},"visibility":"internal"}],"id":37866,"initialValue":{"arguments":[{"id":37864,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37850,"src":"6523:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6510:12:46","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Subnet memory[] memory)"},"typeName":{"baseType":{"id":37861,"nodeType":"UserDefinedTypeName","pathNode":{"id":37860,"name":"Subnet","nameLocations":["6514:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"6514:6:46"},"referencedDeclaration":50091,"src":"6514:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"id":37862,"nodeType":"ArrayTypeName","src":"6514:8:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}}},"id":37865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6510:18:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6488:40:46"},{"body":{"id":37893,"nodeType":"Block","src":"6566:150:46","statements":[{"assignments":[37874],"declarations":[{"constant":false,"id":37874,"mutability":"mutable","name":"key","nameLocation":"6588:3:46","nodeType":"VariableDeclaration","scope":37893,"src":"6580:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6580:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37879,"initialValue":{"baseExpression":{"expression":{"id":37875,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6594:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6596:10:46","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":43020,"src":"6594:12:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":37878,"indexExpression":{"id":37877,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6607:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6594:15:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6580:29:46"},{"expression":{"id":37887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37880,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37859,"src":"6623:3:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"id":37882,"indexExpression":{"id":37881,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6627:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6623:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":37883,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6632:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6634:7:46","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42973,"src":"6632:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":37886,"indexExpression":{"id":37885,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37874,"src":"6642:3:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6632:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage","typeString":"struct Subnet storage ref"}},"src":"6623:23:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":37888,"nodeType":"ExpressionStatement","src":"6623:23:46"},{"id":37892,"nodeType":"UncheckedBlock","src":"6660:46:46","statements":[{"expression":{"id":37890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6688:3:46","subExpression":{"id":37889,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6690:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37891,"nodeType":"ExpressionStatement","src":"6688:3:46"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37870,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6554:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37871,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37850,"src":"6558:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6554:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37894,"initializationExpression":{"assignments":[37868],"declarations":[{"constant":false,"id":37868,"mutability":"mutable","name":"i","nameLocation":"6551:1:46","nodeType":"VariableDeclaration","scope":37894,"src":"6543:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37867,"name":"uint256","nodeType":"ElementaryTypeName","src":"6543:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37869,"nodeType":"VariableDeclarationStatement","src":"6543:9:46"},"nodeType":"ForStatement","src":"6538:178:46"},{"expression":{"id":37895,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37859,"src":"6732:3:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"functionReturnParameters":37848,"id":37896,"nodeType":"Return","src":"6725:10:46"}]},"documentation":{"id":37842,"nodeType":"StructuredDocumentation","src":"6263:103:46","text":"@notice Returns the list of registered subnets.\n @return The list of the registered subnets."},"functionSelector":"5d029685","implemented":true,"kind":"function","modifiers":[],"name":"listSubnets","nameLocation":"6380:11:46","parameters":{"id":37843,"nodeType":"ParameterList","parameters":[],"src":"6391:2:46"},"returnParameters":{"id":37848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37898,"src":"6417:15:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet[]"},"typeName":{"baseType":{"id":37845,"nodeType":"UserDefinedTypeName","pathNode":{"id":37844,"name":"Subnet","nameLocations":["6417:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"6417:6:46"},"referencedDeclaration":50091,"src":"6417:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"id":37846,"nodeType":"ArrayTypeName","src":"6417:8:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}},"visibility":"internal"}],"src":"6416:17:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37909,"nodeType":"FunctionDefinition","src":"6818:111:46","nodes":[],"body":{"id":37908,"nodeType":"Block","src":"6889:40:46","nodes":[],"statements":[{"expression":{"expression":{"id":37905,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6906:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6908:14:46","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"6906:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"functionReturnParameters":37904,"id":37907,"nodeType":"Return","src":"6899:23:46"}]},"documentation":{"id":37899,"nodeType":"StructuredDocumentation","src":"6748:65:46","text":"@notice Returns the last membership received from the parent."},"functionSelector":"f3229131","implemented":true,"kind":"function","modifiers":[],"name":"getLastMembership","nameLocation":"6827:17:46","parameters":{"id":37900,"nodeType":"ParameterList","parameters":[],"src":"6844:2:46"},"returnParameters":{"id":37904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37909,"src":"6870:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":37902,"nodeType":"UserDefinedTypeName","pathNode":{"id":37901,"name":"Membership","nameLocations":["6870:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"6870:10:46"},"referencedDeclaration":50218,"src":"6870:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"6869:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37920,"nodeType":"FunctionDefinition","src":"7015:129:46","nodes":[],"body":{"id":37919,"nodeType":"Block","src":"7084:60:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":37915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7101:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7103:14:46","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"7101:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":37917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7118:19:46","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"7101:36:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37914,"id":37918,"nodeType":"Return","src":"7094:43:46"}]},"documentation":{"id":37910,"nodeType":"StructuredDocumentation","src":"6935:75:46","text":"@notice Returns the last configuration number received from the parent."},"functionSelector":"b1ba49b0","implemented":true,"kind":"function","modifiers":[],"name":"getLastConfigurationNumber","nameLocation":"7024:26:46","parameters":{"id":37911,"nodeType":"ParameterList","parameters":[],"src":"7050:2:46"},"returnParameters":{"id":37914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37920,"src":"7076:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37912,"name":"uint64","nodeType":"ElementaryTypeName","src":"7076:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7075:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37931,"nodeType":"FunctionDefinition","src":"7198:117:46","nodes":[],"body":{"id":37930,"nodeType":"Block","src":"7272:43:46","nodes":[],"statements":[{"expression":{"expression":{"id":37927,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7289:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7291:17:46","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7289:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"functionReturnParameters":37926,"id":37929,"nodeType":"Return","src":"7282:26:46"}]},"documentation":{"id":37921,"nodeType":"StructuredDocumentation","src":"7150:43:46","text":"@notice Returns the current membership."},"functionSelector":"6ad21bb0","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentMembership","nameLocation":"7207:20:46","parameters":{"id":37922,"nodeType":"ParameterList","parameters":[],"src":"7227:2:46"},"returnParameters":{"id":37926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37925,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37931,"src":"7253:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":37924,"nodeType":"UserDefinedTypeName","pathNode":{"id":37923,"name":"Membership","nameLocations":["7253:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"7253:10:46"},"referencedDeclaration":50218,"src":"7253:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"7252:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37942,"nodeType":"FunctionDefinition","src":"7379:135:46","nodes":[],"body":{"id":37941,"nodeType":"Block","src":"7451:63:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":37937,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7468:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7470:17:46","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7468:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":37939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7488:19:46","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"7468:39:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37936,"id":37940,"nodeType":"Return","src":"7461:46:46"}]},"documentation":{"id":37932,"nodeType":"StructuredDocumentation","src":"7321:53:46","text":"@notice Returns the current configuration number."},"functionSelector":"544dddff","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentConfigurationNumber","nameLocation":"7388:29:46","parameters":{"id":37933,"nodeType":"ParameterList","parameters":[],"src":"7417:2:46"},"returnParameters":{"id":37936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37942,"src":"7443:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37934,"name":"uint64","nodeType":"ElementaryTypeName","src":"7443:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7442:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37958,"nodeType":"FunctionDefinition","src":"7743:139:46","nodes":[],"body":{"id":37957,"nodeType":"Block","src":"7823:59:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":37951,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7840:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7842:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"7840:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":37953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7862:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"7840:32:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37955,"indexExpression":{"id":37954,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37945,"src":"7873:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7840:35:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"functionReturnParameters":37950,"id":37956,"nodeType":"Return","src":"7833:42:46"}]},"documentation":{"id":37943,"nodeType":"StructuredDocumentation","src":"7520:218:46","text":"@notice Returns quorum information for a specific checkpoint based on its height.\n @param h The block height of the checkpoint.\n @return Quorum information associated with the given checkpoint height."},"functionSelector":"ac12d763","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointInfo","nameLocation":"7752:17:46","parameters":{"id":37946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37945,"mutability":"mutable","name":"h","nameLocation":"7778:1:46","nodeType":"VariableDeclaration","scope":37958,"src":"7770:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37944,"name":"uint256","nodeType":"ElementaryTypeName","src":"7770:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7769:11:46"},"returnParameters":{"id":37950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37958,"src":"7804:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":37948,"nodeType":"UserDefinedTypeName","pathNode":{"id":37947,"name":"QuorumInfo","nameLocations":["7804:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"7804:10:46"},"referencedDeclaration":50028,"src":"7804:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"src":"7803:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37974,"nodeType":"FunctionDefinition","src":"8150:151:46","nodes":[],"body":{"id":37973,"nodeType":"Block","src":"8236:65:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":37967,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8253:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8255:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"8253:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":37969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8281:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"8253:38:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37971,"indexExpression":{"id":37970,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37961,"src":"8292:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8253:41:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"functionReturnParameters":37966,"id":37972,"nodeType":"Return","src":"8246:48:46"}]},"documentation":{"id":37959,"nodeType":"StructuredDocumentation","src":"7888:257:46","text":"@notice Returns quorum information for a specific bottom-up message batch based on its height.\n @param h The block height of the bottom-up message batch.\n @return Quorum information associated with the given bottom-up message batch height."},"functionSelector":"b9ee5842","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchInfo","nameLocation":"8159:23:46","parameters":{"id":37962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37961,"mutability":"mutable","name":"h","nameLocation":"8191:1:46","nodeType":"VariableDeclaration","scope":37974,"src":"8183:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37960,"name":"uint256","nodeType":"ElementaryTypeName","src":"8183:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8182:11:46"},"returnParameters":{"id":37966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37974,"src":"8217:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":37964,"nodeType":"UserDefinedTypeName","pathNode":{"id":37963,"name":"QuorumInfo","nameLocations":["8217:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"8217:10:46"},"referencedDeclaration":50028,"src":"8217:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"src":"8216:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37990,"nodeType":"FunctionDefinition","src":"8396:152:46","nodes":[],"body":{"id":37989,"nodeType":"Block","src":"8475:73:46","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":37982,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8492:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8494:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"8492:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":37984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8514:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"8492:32:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37986,"indexExpression":{"id":37985,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37977,"src":"8525:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8492:35:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"id":37987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8528:13:46","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"8492:49:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37981,"id":37988,"nodeType":"Return","src":"8485:56:46"}]},"documentation":{"id":37975,"nodeType":"StructuredDocumentation","src":"8307:84:46","text":"@notice Returns the checkpoint current weight corresponding to the block height."},"functionSelector":"b3ab3f74","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointCurrentWeight","nameLocation":"8405:26:46","parameters":{"id":37978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37977,"mutability":"mutable","name":"h","nameLocation":"8440:1:46","nodeType":"VariableDeclaration","scope":37990,"src":"8432:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37976,"name":"uint256","nodeType":"ElementaryTypeName","src":"8432:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8431:11:46"},"returnParameters":{"id":37981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37990,"src":"8466:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37979,"name":"uint256","nodeType":"ElementaryTypeName","src":"8466:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8465:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38006,"nodeType":"FunctionDefinition","src":"8638:164:46","nodes":[],"body":{"id":38005,"nodeType":"Block","src":"8723:79:46","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":37998,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8740:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8742:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"8740:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8768:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"8740:38:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":38002,"indexExpression":{"id":38001,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37993,"src":"8779:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8740:41:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"id":38003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8782:13:46","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"8740:55:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37997,"id":38004,"nodeType":"Return","src":"8733:62:46"}]},"documentation":{"id":37991,"nodeType":"StructuredDocumentation","src":"8554:79:46","text":"@notice Returns the batch current weight corresponding to the block height."},"functionSelector":"6547cd64","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchCurrentWeight","nameLocation":"8647:32:46","parameters":{"id":37994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37993,"mutability":"mutable","name":"h","nameLocation":"8688:1:46","nodeType":"VariableDeclaration","scope":38006,"src":"8680:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37992,"name":"uint256","nodeType":"ElementaryTypeName","src":"8680:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8679:11:46"},"returnParameters":{"id":37997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38006,"src":"8714:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37995,"name":"uint256","nodeType":"ElementaryTypeName","src":"8714:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8713:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38020,"nodeType":"FunctionDefinition","src":"8867:155:46","nodes":[],"body":{"id":38019,"nodeType":"Block","src":"8950:72:46","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38013,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8967:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8969:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"8967:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8989:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"8967:39:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9007:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"8967:46:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8967:48:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":38012,"id":38018,"nodeType":"Return","src":"8960:55:46"}]},"documentation":{"id":38007,"nodeType":"StructuredDocumentation","src":"8808:54:46","text":"@notice Returns the incomplete checkpoint heights."},"functionSelector":"a517218f","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteCheckpointHeights","nameLocation":"8876:30:46","parameters":{"id":38008,"nodeType":"ParameterList","parameters":[],"src":"8906:2:46"},"returnParameters":{"id":38012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38020,"src":"8932:16:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38009,"name":"uint256","nodeType":"ElementaryTypeName","src":"8932:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38010,"nodeType":"ArrayTypeName","src":"8932:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"8931:18:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38085,"nodeType":"FunctionDefinition","src":"9080:508:46","nodes":[],"body":{"id":38084,"nodeType":"Block","src":"9168:420:46","nodes":[],"statements":[{"assignments":[38032],"declarations":[{"constant":false,"id":38032,"mutability":"mutable","name":"heights","nameLocation":"9195:7:46","nodeType":"VariableDeclaration","scope":38084,"src":"9178:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38030,"name":"uint256","nodeType":"ElementaryTypeName","src":"9178:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38031,"nodeType":"ArrayTypeName","src":"9178:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":38038,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38033,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"9205:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"9205:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9227:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"9205:39:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9245:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"9205:46:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9205:48:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9178:75:46"},{"assignments":[38040],"declarations":[{"constant":false,"id":38040,"mutability":"mutable","name":"size","nameLocation":"9271:4:46","nodeType":"VariableDeclaration","scope":38084,"src":"9263:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38039,"name":"uint256","nodeType":"ElementaryTypeName","src":"9263:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38043,"initialValue":{"expression":{"id":38041,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38032,"src":"9278:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9286:6:46","memberName":"length","nodeType":"MemberAccess","src":"9278:14:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9263:29:46"},{"assignments":[38048],"declarations":[{"constant":false,"id":38048,"mutability":"mutable","name":"checkpoints","nameLocation":"9331:11:46","nodeType":"VariableDeclaration","scope":38084,"src":"9303:39:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint[]"},"typeName":{"baseType":{"id":38046,"nodeType":"UserDefinedTypeName","pathNode":{"id":38045,"name":"BottomUpCheckpoint","nameLocations":["9303:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"9303:18:46"},"referencedDeclaration":49932,"src":"9303:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":38047,"nodeType":"ArrayTypeName","src":"9303:20:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}},"visibility":"internal"}],"id":38055,"initialValue":{"arguments":[{"id":38053,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38040,"src":"9370:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9345:24:46","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct BottomUpCheckpoint memory[] memory)"},"typeName":{"baseType":{"id":38050,"nodeType":"UserDefinedTypeName","pathNode":{"id":38049,"name":"BottomUpCheckpoint","nameLocations":["9349:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"9349:18:46"},"referencedDeclaration":49932,"src":"9349:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":38051,"nodeType":"ArrayTypeName","src":"9349:20:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}}},"id":38054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9345:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9303:72:46"},{"body":{"id":38080,"nodeType":"Block","src":"9412:142:46","statements":[{"expression":{"id":38074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38062,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38048,"src":"9426:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"id":38064,"indexExpression":{"id":38063,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9438:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9426:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"9443:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9445:19:46","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"9443:21:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":38073,"indexExpression":{"arguments":[{"baseExpression":{"id":38069,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38032,"src":"9472:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38071,"indexExpression":{"id":38070,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9480:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9472:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9465:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":38067,"name":"uint64","nodeType":"ElementaryTypeName","src":"9465:6:46","typeDescriptions":{}}},"id":38072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9465:18:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9443:41:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"9426:58:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":38075,"nodeType":"ExpressionStatement","src":"9426:58:46"},{"id":38079,"nodeType":"UncheckedBlock","src":"9498:46:46","statements":[{"expression":{"id":38077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9526:3:46","subExpression":{"id":38076,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9528:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38078,"nodeType":"ExpressionStatement","src":"9526:3:46"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38059,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9400:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38060,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38040,"src":"9404:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9400:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38081,"initializationExpression":{"assignments":[38057],"declarations":[{"constant":false,"id":38057,"mutability":"mutable","name":"i","nameLocation":"9397:1:46","nodeType":"VariableDeclaration","scope":38081,"src":"9390:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":38056,"name":"uint64","nodeType":"ElementaryTypeName","src":"9390:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":38058,"nodeType":"VariableDeclarationStatement","src":"9390:8:46"},"nodeType":"ForStatement","src":"9385:169:46"},{"expression":{"id":38082,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38048,"src":"9570:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"functionReturnParameters":38027,"id":38083,"nodeType":"Return","src":"9563:18:46"}]},"documentation":{"id":38021,"nodeType":"StructuredDocumentation","src":"9028:47:46","text":"@notice Returns the incomplete checkpoints."},"functionSelector":"97042766","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteCheckpoints","nameLocation":"9089:24:46","parameters":{"id":38022,"nodeType":"ParameterList","parameters":[],"src":"9113:2:46"},"returnParameters":{"id":38027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38085,"src":"9139:27:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint[]"},"typeName":{"baseType":{"id":38024,"nodeType":"UserDefinedTypeName","pathNode":{"id":38023,"name":"BottomUpCheckpoint","nameLocations":["9139:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"9139:18:46"},"referencedDeclaration":49932,"src":"9139:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":38025,"nodeType":"ArrayTypeName","src":"9139:20:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}},"visibility":"internal"}],"src":"9138:29:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38150,"nodeType":"FunctionDefinition","src":"9654:494:46","nodes":[],"body":{"id":38149,"nodeType":"Block","src":"9739:409:46","nodes":[],"statements":[{"assignments":[38097],"declarations":[{"constant":false,"id":38097,"mutability":"mutable","name":"heights","nameLocation":"9766:7:46","nodeType":"VariableDeclaration","scope":38149,"src":"9749:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38095,"name":"uint256","nodeType":"ElementaryTypeName","src":"9749:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38096,"nodeType":"ArrayTypeName","src":"9749:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":38103,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38098,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"9776:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9778:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"9776:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9804:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"9776:45:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9822:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"9776:52:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9776:54:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9749:81:46"},{"assignments":[38105],"declarations":[{"constant":false,"id":38105,"mutability":"mutable","name":"size","nameLocation":"9848:4:46","nodeType":"VariableDeclaration","scope":38149,"src":"9840:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38104,"name":"uint256","nodeType":"ElementaryTypeName","src":"9840:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38108,"initialValue":{"expression":{"id":38106,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38097,"src":"9855:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9863:6:46","memberName":"length","nodeType":"MemberAccess","src":"9855:14:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9840:29:46"},{"assignments":[38113],"declarations":[{"constant":false,"id":38113,"mutability":"mutable","name":"batches","nameLocation":"9906:7:46","nodeType":"VariableDeclaration","scope":38149,"src":"9880:33:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch[]"},"typeName":{"baseType":{"id":38111,"nodeType":"UserDefinedTypeName","pathNode":{"id":38110,"name":"BottomUpMsgBatch","nameLocations":["9880:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"9880:16:46"},"referencedDeclaration":49945,"src":"9880:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":38112,"nodeType":"ArrayTypeName","src":"9880:18:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}},"visibility":"internal"}],"id":38120,"initialValue":{"arguments":[{"id":38118,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38105,"src":"9939:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9916:22:46","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct BottomUpMsgBatch memory[] memory)"},"typeName":{"baseType":{"id":38115,"nodeType":"UserDefinedTypeName","pathNode":{"id":38114,"name":"BottomUpMsgBatch","nameLocations":["9920:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"9920:16:46"},"referencedDeclaration":49945,"src":"9920:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":38116,"nodeType":"ArrayTypeName","src":"9920:18:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}}},"id":38119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9916:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9880:64:46"},{"body":{"id":38145,"nodeType":"Block","src":"9981:137:46","statements":[{"expression":{"id":38139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38127,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38113,"src":"9995:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"id":38129,"indexExpression":{"id":38128,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"10003:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9995:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38130,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10008:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:18:46","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"10008:20:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":38138,"indexExpression":{"arguments":[{"baseExpression":{"id":38134,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38097,"src":"10036:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38136,"indexExpression":{"id":38135,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"10044:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10036:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10029:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":38132,"name":"uint64","nodeType":"ElementaryTypeName","src":"10029:6:46","typeDescriptions":{}}},"id":38137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10029:18:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10008:40:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"9995:53:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":38140,"nodeType":"ExpressionStatement","src":"9995:53:46"},{"id":38144,"nodeType":"UncheckedBlock","src":"10062:46:46","statements":[{"expression":{"id":38142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10090:3:46","subExpression":{"id":38141,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"10092:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38143,"nodeType":"ExpressionStatement","src":"10090:3:46"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38124,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"9969:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38125,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38105,"src":"9973:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38146,"initializationExpression":{"assignments":[38122],"declarations":[{"constant":false,"id":38122,"mutability":"mutable","name":"i","nameLocation":"9966:1:46","nodeType":"VariableDeclaration","scope":38146,"src":"9959:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":38121,"name":"uint64","nodeType":"ElementaryTypeName","src":"9959:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":38123,"nodeType":"VariableDeclarationStatement","src":"9959:8:46"},"nodeType":"ForStatement","src":"9954:164:46"},{"expression":{"id":38147,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38113,"src":"10134:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"functionReturnParameters":38092,"id":38148,"nodeType":"Return","src":"10127:14:46"}]},"documentation":{"id":38086,"nodeType":"StructuredDocumentation","src":"9594:55:46","text":"@notice Returns the incomplete batches of messages."},"functionSelector":"335eb62a","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteMsgBatches","nameLocation":"9663:23:46","parameters":{"id":38087,"nodeType":"ParameterList","parameters":[],"src":"9686:2:46"},"returnParameters":{"id":38092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38150,"src":"9712:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch[]"},"typeName":{"baseType":{"id":38089,"nodeType":"UserDefinedTypeName","pathNode":{"id":38088,"name":"BottomUpMsgBatch","nameLocations":["9712:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"9712:16:46"},"referencedDeclaration":49945,"src":"9712:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":38090,"nodeType":"ArrayTypeName","src":"9712:18:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}},"visibility":"internal"}],"src":"9711:27:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38164,"nodeType":"FunctionDefinition","src":"10214:159:46","nodes":[],"body":{"id":38163,"nodeType":"Block","src":"10295:78:46","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38157,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10312:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10314:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"10312:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10340:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"10312:45:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10358:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"10312:52:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10312:54:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":38156,"id":38162,"nodeType":"Return","src":"10305:61:46"}]},"documentation":{"id":38151,"nodeType":"StructuredDocumentation","src":"10154:55:46","text":"@notice Returns the incomplete msd batches heights."},"functionSelector":"767ee5f4","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteMsgBatchHeights","nameLocation":"10223:28:46","parameters":{"id":38152,"nodeType":"ParameterList","parameters":[],"src":"10251:2:46"},"returnParameters":{"id":38156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38155,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38164,"src":"10277:16:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38153,"name":"uint256","nodeType":"ElementaryTypeName","src":"10277:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38154,"nodeType":"ArrayTypeName","src":"10277:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"10276:18:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38175,"nodeType":"FunctionDefinition","src":"10445:133:46","nodes":[],"body":{"id":38174,"nodeType":"Block","src":"10517:61:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":38170,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10534:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10536:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"10534:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10556:15:46","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"10534:37:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38169,"id":38173,"nodeType":"Return","src":"10527:44:46"}]},"documentation":{"id":38165,"nodeType":"StructuredDocumentation","src":"10379:61:46","text":"@notice Returns the bottom-up checkpoint retention index."},"functionSelector":"4aa8f8a5","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointRetentionHeight","nameLocation":"10454:28:46","parameters":{"id":38166,"nodeType":"ParameterList","parameters":[],"src":"10482:2:46"},"returnParameters":{"id":38169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38168,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38175,"src":"10508:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38167,"name":"uint256","nodeType":"ElementaryTypeName","src":"10508:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10507:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38186,"nodeType":"FunctionDefinition","src":"10645:140:46","nodes":[],"body":{"id":38185,"nodeType":"Block","src":"10718:67:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":38181,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10735:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10737:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"10735:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10763:15:46","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"10735:43:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38180,"id":38184,"nodeType":"Return","src":"10728:50:46"}]},"documentation":{"id":38176,"nodeType":"StructuredDocumentation","src":"10584:56:46","text":"@notice Returns the bottom-up batch retention index."},"functionSelector":"22180594","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgRetentionHeight","nameLocation":"10654:29:46","parameters":{"id":38177,"nodeType":"ParameterList","parameters":[],"src":"10683:2:46"},"returnParameters":{"id":38180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38186,"src":"10709:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38178,"name":"uint256","nodeType":"ElementaryTypeName","src":"10709:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10708:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38202,"nodeType":"FunctionDefinition","src":"11151:162:46","nodes":[],"body":{"id":38201,"nodeType":"Block","src":"11232:81:46","nodes":[],"statements":[{"expression":{"arguments":[{"id":38196,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38189,"src":"11272:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":38197,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"11285:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11287:18:46","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":43030,"src":"11285:20:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":38194,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"11249:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":38195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11259:12:46","memberName":"weightNeeded","nodeType":"MemberAccess","referencedDeclaration":43869,"src":"11249:22:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11249:57:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38193,"id":38200,"nodeType":"Return","src":"11242:64:46"}]},"documentation":{"id":38187,"nodeType":"StructuredDocumentation","src":"10791:355:46","text":"@notice Returns the threshold required for quorum in this subnet,\n based on the configured majority percentage and the total weight of the validators.\n @param totalWeight The total weight to consider for calculating the quorum threshold.\n @return The quorum threshold derived from the total weight and majority percentage."},"functionSelector":"06572c1a","implemented":true,"kind":"function","modifiers":[],"name":"getQuorumThreshold","nameLocation":"11160:18:46","parameters":{"id":38190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38189,"mutability":"mutable","name":"totalWeight","nameLocation":"11187:11:46","nodeType":"VariableDeclaration","scope":38202,"src":"11179:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38188,"name":"uint256","nodeType":"ElementaryTypeName","src":"11179:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11178:21:46"},"returnParameters":{"id":38193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38202,"src":"11223:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38191,"name":"uint256","nodeType":"ElementaryTypeName","src":"11223:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11222:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38246,"nodeType":"FunctionDefinition","src":"11739:480:46","nodes":[],"body":{"id":38245,"nodeType":"Block","src":"12022:197:46","nodes":[],"statements":[{"expression":{"id":38225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38220,"name":"ch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38209,"src":"12032:2:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38221,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"12037:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12039:19:46","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"12037:21:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":38224,"indexExpression":{"id":38223,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38205,"src":"12059:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12037:24:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"12032:29:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":38226,"nodeType":"ExpressionStatement","src":"12032:29:46"},{"expression":{"id":38237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38227,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38212,"src":"12072:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38228,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38215,"src":"12078:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38229,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38218,"src":"12091:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38230,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12071:31:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":38233,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"12134:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12136:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"12134:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":38235,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38205,"src":"12157:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38231,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"12105:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":38232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:18:46","memberName":"getSignatureBundle","nodeType":"MemberAccess","referencedDeclaration":43947,"src":"12105:28:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_view$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct QuorumMap storage pointer,uint256) view returns (struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"id":38236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12105:54:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"src":"12071:88:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38238,"nodeType":"ExpressionStatement","src":"12071:88:46"},{"expression":{"components":[{"id":38239,"name":"ch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38209,"src":"12178:2:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":38240,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38212,"src":"12182:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38241,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38215,"src":"12188:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38242,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38218,"src":"12201:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38243,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12177:35:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct BottomUpCheckpoint memory,struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":38219,"id":38244,"nodeType":"Return","src":"12170:42:46"}]},"documentation":{"id":38203,"nodeType":"StructuredDocumentation","src":"11319:415:46","text":"@notice Retrieves a bundle of information and signatures for a specified bottom-up checkpoint.\n @param h The height of the checkpoint for which information is requested.\n @return ch The checkpoint information at the specified height.\n @return info Quorum information related to the checkpoint.\n @return signatories An array of addresses of signatories who have signed the checkpoint."},"functionSelector":"ca41d5ce","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointSignatureBundle","nameLocation":"11748:28:46","parameters":{"id":38206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38205,"mutability":"mutable","name":"h","nameLocation":"11794:1:46","nodeType":"VariableDeclaration","scope":38246,"src":"11786:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38204,"name":"uint256","nodeType":"ElementaryTypeName","src":"11786:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11776:25:46"},"returnParameters":{"id":38219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38209,"mutability":"mutable","name":"ch","nameLocation":"11888:2:46","nodeType":"VariableDeclaration","scope":38246,"src":"11862:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":38208,"nodeType":"UserDefinedTypeName","pathNode":{"id":38207,"name":"BottomUpCheckpoint","nameLocations":["11862:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"11862:18:46"},"referencedDeclaration":49932,"src":"11862:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":38212,"mutability":"mutable","name":"info","nameLocation":"11922:4:46","nodeType":"VariableDeclaration","scope":38246,"src":"11904:22:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":38211,"nodeType":"UserDefinedTypeName","pathNode":{"id":38210,"name":"QuorumInfo","nameLocations":["11904:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"11904:10:46"},"referencedDeclaration":50028,"src":"11904:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":38215,"mutability":"mutable","name":"signatories","nameLocation":"11957:11:46","nodeType":"VariableDeclaration","scope":38246,"src":"11940:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38213,"name":"address","nodeType":"ElementaryTypeName","src":"11940:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38214,"nodeType":"ArrayTypeName","src":"11940:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":38218,"mutability":"mutable","name":"signatures","nameLocation":"11997:10:46","nodeType":"VariableDeclaration","scope":38246,"src":"11982:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":38216,"name":"bytes","nodeType":"ElementaryTypeName","src":"11982:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":38217,"nodeType":"ArrayTypeName","src":"11982:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11848:169:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38290,"nodeType":"FunctionDefinition","src":"12776:498:46","nodes":[],"body":{"id":38289,"nodeType":"Block","src":"13066:208:46","nodes":[],"statements":[{"expression":{"id":38269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38264,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38253,"src":"13076:5:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38265,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"13084:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13086:18:46","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"13084:20:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":38268,"indexExpression":{"id":38267,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38249,"src":"13105:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13084:23:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"13076:31:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":38270,"nodeType":"ExpressionStatement","src":"13076:31:46"},{"expression":{"id":38281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38271,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38256,"src":"13118:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38272,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38259,"src":"13124:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38273,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38262,"src":"13137:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38274,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"13117:31:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":38277,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"13180:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13182:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"13180:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":38279,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38249,"src":"13209:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38275,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"13151:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":38276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13161:18:46","memberName":"getSignatureBundle","nodeType":"MemberAccess","referencedDeclaration":43947,"src":"13151:28:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_view$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct QuorumMap storage pointer,uint256) view returns (struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"id":38280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13151:60:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"src":"13117:94:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38282,"nodeType":"ExpressionStatement","src":"13117:94:46"},{"expression":{"components":[{"id":38283,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38253,"src":"13230:5:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},{"id":38284,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38256,"src":"13237:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38285,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38259,"src":"13243:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38286,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38262,"src":"13256:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38287,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13229:38:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct BottomUpMsgBatch memory,struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":38263,"id":38288,"nodeType":"Return","src":"13222:45:46"}]},"documentation":{"id":38247,"nodeType":"StructuredDocumentation","src":"12225:546:46","text":"@notice Returns a bundle of information and signatures for a specified bottom-up message batch.\n @param h The height of the message batch for which information is requested.\n @return batch The bottom-up message batch information at the specified height.\n @return info Quorum information related to the message batch.\n @return signatories An array of addresses of signatories who have signed the message batch.\n @return signatures An array of signatures corresponding to each signatory for the message batch."},"functionSelector":"a9294bdd","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchSignatureBundle","nameLocation":"12785:34:46","parameters":{"id":38250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38249,"mutability":"mutable","name":"h","nameLocation":"12837:1:46","nodeType":"VariableDeclaration","scope":38290,"src":"12829:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38248,"name":"uint256","nodeType":"ElementaryTypeName","src":"12829:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12819:25:46"},"returnParameters":{"id":38263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38253,"mutability":"mutable","name":"batch","nameLocation":"12929:5:46","nodeType":"VariableDeclaration","scope":38290,"src":"12905:29:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":38252,"nodeType":"UserDefinedTypeName","pathNode":{"id":38251,"name":"BottomUpMsgBatch","nameLocations":["12905:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"12905:16:46"},"referencedDeclaration":49945,"src":"12905:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":38256,"mutability":"mutable","name":"info","nameLocation":"12966:4:46","nodeType":"VariableDeclaration","scope":38290,"src":"12948:22:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":38255,"nodeType":"UserDefinedTypeName","pathNode":{"id":38254,"name":"QuorumInfo","nameLocations":["12948:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"12948:10:46"},"referencedDeclaration":50028,"src":"12948:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":38259,"mutability":"mutable","name":"signatories","nameLocation":"13001:11:46","nodeType":"VariableDeclaration","scope":38290,"src":"12984:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38257,"name":"address","nodeType":"ElementaryTypeName","src":"12984:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38258,"nodeType":"ArrayTypeName","src":"12984:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":38262,"mutability":"mutable","name":"signatures","nameLocation":"13041:10:46","nodeType":"VariableDeclaration","scope":38290,"src":"13026:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":38260,"name":"bytes","nodeType":"ElementaryTypeName","src":"13026:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":38261,"nodeType":"ArrayTypeName","src":"13026:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"12891:170:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38316,"nodeType":"FunctionDefinition","src":"13496:289:46","nodes":[],"body":{"id":38315,"nodeType":"Block","src":"13653:132:46","nodes":[],"statements":[{"expression":{"id":38308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38301,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38294,"src":"13664:6:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":38302,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38296,"src":"13672:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38303,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38299,"src":"13679:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":38304,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"13663:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38305,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"13693:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13704:28:46","memberName":"getCurrentBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41802,"src":"13693:39:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"function () view returns (bool,uint256,struct BottomUpCheckpoint memory)"}},"id":38307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13693:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"src":"13663:71:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38309,"nodeType":"ExpressionStatement","src":"13663:71:46"},{"expression":{"components":[{"id":38310,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38294,"src":"13752:6:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":38311,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38296,"src":"13760:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38312,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38299,"src":"13767:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":38313,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13751:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"functionReturnParameters":38300,"id":38314,"nodeType":"Return","src":"13744:34:46"}]},"documentation":{"id":38291,"nodeType":"StructuredDocumentation","src":"13280:211:46","text":"@notice Returns the current bottom-up checkpoint.\n @return exists - whether the checkpoint exists\n @return epoch - the epoch of the checkpoint\n @return checkpoint - the checkpoint struct"},"functionSelector":"d6c5c397","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentBottomUpCheckpoint","nameLocation":"13505:28:46","parameters":{"id":38292,"nodeType":"ParameterList","parameters":[],"src":"13533:2:46"},"returnParameters":{"id":38300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38294,"mutability":"mutable","name":"exists","nameLocation":"13588:6:46","nodeType":"VariableDeclaration","scope":38316,"src":"13583:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38293,"name":"bool","nodeType":"ElementaryTypeName","src":"13583:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38296,"mutability":"mutable","name":"epoch","nameLocation":"13604:5:46","nodeType":"VariableDeclaration","scope":38316,"src":"13596:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38295,"name":"uint256","nodeType":"ElementaryTypeName","src":"13596:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38299,"mutability":"mutable","name":"checkpoint","nameLocation":"13637:10:46","nodeType":"VariableDeclaration","scope":38316,"src":"13611:36:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":38298,"nodeType":"UserDefinedTypeName","pathNode":{"id":38297,"name":"BottomUpCheckpoint","nameLocations":["13611:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"13611:18:46"},"referencedDeclaration":49932,"src":"13611:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"13582:66:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[38317],"name":"GatewayGetterFacet","nameLocation":"657:18:46","scope":38318,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":46} \ No newline at end of file +{"abi":[{"type":"function","name":"appliedTopDownNonce","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpoint","inputs":[{"name":"e","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatch","inputs":[{"name":"e","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatchPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpNonce","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"crossMsgFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAppliedTopDownNonce","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchCurrentWeight","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchInfo","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchSignatureBundle","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"info","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgRetentionHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointCurrentWeight","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointInfo","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getCheckpointRetentionHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointSignatureBundle","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ch","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"info","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBottomUpCheckpoint","inputs":[],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getCurrentConfigurationNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getCurrentMembership","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getIncompleteCheckpointHeights","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getIncompleteCheckpoints","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct BottomUpCheckpoint[]","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getIncompleteMsgBatchHeights","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getIncompleteMsgBatches","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct BottomUpMsgBatch[]","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"stateMutability":"view"},{"type":"function","name":"getLastConfigurationNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getLastMembership","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getLatestParentFinality","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getNetworkName","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getParentFinality","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getQuorumThreshold","inputs":[{"name":"totalWeight","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSubnet","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"tuple","internalType":"struct Subnet","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getSubnetTopDownMsgsLength","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"listSubnets","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Subnet[]","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"majorityPercentage","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"maxMsgsPerBottomUpBatch","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"postbox","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"storableMsg","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"subnets","inputs":[{"name":"h","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"subnet","type":"tuple","internalType":"struct Subnet","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"totalSubnets","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657612245908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c63430008130033","sourceMap":"648:13139:46:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":1420,"length":20},{"start":2191,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1089,"length":20},{"start":8439,"length":20}]}}},"deployedBytecode":{"object":"0x6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c63430008130033","sourceMap":"648:13139:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;6906:16;648:13139;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;6906:16;648:13139;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2684:20;648:13139;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;2114:21:63;648:13139:46;;;;;;-1:-1:-1;;;;;2100:12:63;;;;648:13139:46;;13838:1:63;648:13139:46;;;;;;;13799:55:63;;;;:::i;:::-;648:13139:46;;;2207:29:63;648:13139:46;;;2159:21:63;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2207:29:63;;648:13139:46;;;;;2207:29:63;;;:::i;:::-;;:27;;:29;;;;;;;;;;;648:13139:46;;;;;;;;;;2206:30:63;;;;648:13139:46;;;;;;;;;;;;;:::i;2207:29:63:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;648:13139:46;;;;;;;;;;;;:::i;:::-;2207:29:63;;;;;;;;648:13139:46;;;2207:29:63;;;;;;648:13139:46;;;;;;;;;;;-1:-1:-1;;;648:13139:46;;;;;;;;;-1:-1:-1;;;648:13139:46;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;12037:21;648:13139;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;12134:21;648:13139;;;;;;12105:54;;;;648:13139;;;;;12105:9;;648:13139;12105:9;;:54;;;;;;;;648:13139;12105:54;;;648:13139;12105:54;648:13139;;;12105:54;;;648:13139;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;12105:54::-;648:13139;12105:54;;648:13139;12105:54;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;648:13139;;;;;;;;;;;;;;;;;;3650:30;648:13139;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;3650:30;:::i;:::-;648:13139;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;;8253:38;648:13139;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8253:38;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;8492:32;648:13139;;;8492:49;648:13139;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7101:36:46;648:13139;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;;7840:32;648:13139;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;13084:20;648:13139;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13180:27;648:13139;;;;;;13151:60;;;;648:13139;;;;;13151:9;;648:13139;13151:9;;:60;;;;;;;;;648:13139;13151:60;;;648:13139;13151:60;648:13139;;;13151:60;;;648:13139;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13151:60;648:13139;13151:60;;648:13139;13151:60;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;13151:60:46;;;;;648:13139;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8967:39;648:13139;;;;;;;;;8967:39;648:13139;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1408:14:46;648:13139;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;4520:30;648:13139;;;;;;;;;:::i;4520:30::-;4695:19;;;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;9205:39;648:13139;;;;;;;;;9205:39;648:13139;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:13139:46;;;:::i;:::-;;;;;;;;;;9390:8;;;;;-1:-1:-1;;;;;648:13139:46;;;;9400:8;;;;;;9472:10;9426:58;9472:10;;;648:13139;9472:10;;;:::i;:::-;648:13139;;;;9443:21;648:13139;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;9426:58;;;;:::i;:::-;;;;:::i;:::-;;648:13139;;9390:8;;9400;;;;;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2152:13;648:13139;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6008:21;648:13139;;6008:21;;;648:13139;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5500:21:46;648:13139;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;3014:41;648:13139;;;;;;;;;:::i;:::-;;;;;;;3014:41;:::i;:::-;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10312:45;648:13139;;;;;;;;;10312:45;648:13139;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1792:24;648:13139;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;8740:38;648:13139;;;8740:55;648:13139;;;;;;;;;;;;;;;;;;;;;6459:12;648:13139;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:13139:46;;;:::i;:::-;;;;;;;;;6543:9;;;6554:8;;;;;;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;6543:9;648:13139;;;;;;;;;;;;;;;;:::i;:::-;6623:23;;;;:::i;:::-;;;;;;:::i;:::-;;648:13139;6543:9;;648:13139;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;6230:20;648:13139;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7468:39:46;648:13139;;;;;;;;;;;;;;;;;;;;;;;;10534:37;648:13139;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1240:15:46;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;9776:45;648:13139;;;;;;;;;9776:45;648:13139;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:13139:46;;;:::i;:::-;;;;;;;;;;9959:8;;;;;-1:-1:-1;;;;;648:13139:46;;;;9969:8;;;;;;10036:10;;;;;:::i;:::-;648:13139;;;;10008:20;648:13139;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;9995:53;648:13139;;;;;;;;;;;9995:53;;;;:::i;:::-;;648:13139;;9959:8;;648:13139;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9969:8;648:13139;;;;;;;;;;;;;9969:8;;648:13139;;;;;;;;;;;;;;9969:8;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;-1:-1:-1;;;;;648:13139:46;;;;;:::i;:::-;;;;;;2419:21;648:13139;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1062:16;648:13139;;;;;;;;;;;;;;;;;;;;;;;10735:43;648:13139;;;;;;;;;;;;;;;;;;;;;;;1973:21;648:13139;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;7293:3:67;7262:27;648:13139:46;;;11285:20;648:13139;;;;7262:27:67;:::i;:::-;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1594:25:46;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;5302:39:63;5320:20;648:13139:46;5302:39:63;:::i;648:13139:46:-;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;648:13139:46;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;648:13139:46;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;-1:-1:-1;;;;;648:13139:46;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;648:13139:46;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;-1:-1:-1;648:13139:46;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;648:13139:46;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;648:13139:46;;;;;;:::o;:::-;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;648:13139:46;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;-1:-1:-1;;;;;;648:13139:46;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;648:13139:46;;-1:-1:-1;648:13139:46;;;;-1:-1:-1;648:13139:46;;;;-1:-1:-1;648:13139:46;;;;-1:-1:-1;648:13139:46;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;:::i;5056:299::-;648:13139;5206:30;5056:299;648:13139;;;:::i;5206:30::-;5250:11;;5246:59;;5328:19;-1:-1:-1;;;;;5328:19:46;;648:13139;;5314:34;5322:4;5314:34;5056:299;:::o;5246:59::-;5277:17;5285:5;5277:17;5285:5;5277:17;:::o;648:13139::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;648:13139:46;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;4834:223:63;-1:-1:-1;648:13139:46;;;;;;:::i;:::-;;;;;;-1:-1:-1;648:13139:46;5022:15:63;648:13139:46;;;-1:-1:-1;648:13139:46;5022:15:63;648:13139:46;;;;;;:::i;:::-;;;;;;;;;;;4834:223:63;:::o;13234:272::-;13443:17;:15;648:13139:46;;;;;;;13443:17:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;3946:45:64;13443:17:63;;;13234:272;648:13139:46;;13480:19:63;648:13139:46;3946:45:64;648:13139:46;3946:45:64;648:13139:46;;;;3946:45:64;648:13139:46;13480:9:63;648:13139:46;13443:17:63;13480:9;;648:13139:46;:::i;:::-;;;;;;;;;;;;13480:19:63;;13443:17;13480:19;;;:::i;:::-;;;;;;;;;;3946:45:64;13480:19:63;;;13234:272;13479:20;;;;13234:272;:::o;13480:19::-;;;;;;;;;;;;;:::i;:::-;;;648:13139:46;;;;;;;;:::i;:::-;13480:19:63;;;;;;;;;;648:13139:46;;;3946:45:64;648:13139:46;;;;;13443:17:63;;;;;;;;;;;;;;;:::i;:::-;;;648:13139:46;;;;-1:-1:-1;648:13139:46;13480:19:63;13443:17;;;;;;;648:13139:46;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;","linkReferences":{"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":1392,"length":20},{"start":2163,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1061,"length":20},{"start":8411,"length":20}]}}},"methodIdentifiers":{"appliedTopDownNonce()":"8789f83b","bottomUpCheckPeriod()":"06c46853","bottomUpCheckpoint(uint256)":"2da5794a","bottomUpMsgBatch(uint256)":"dd81b5cf","bottomUpMsgBatchPeriod()":"69e737fd","bottomUpNonce()":"41b6a2e8","crossMsgFee()":"24729425","getAppliedTopDownNonce((uint64,address[]))":"9e530b57","getBottomUpMsgBatchCurrentWeight(uint256)":"6547cd64","getBottomUpMsgBatchInfo(uint256)":"b9ee5842","getBottomUpMsgBatchSignatureBundle(uint256)":"a9294bdd","getBottomUpMsgRetentionHeight()":"22180594","getCheckpointCurrentWeight(uint256)":"b3ab3f74","getCheckpointInfo(uint256)":"ac12d763","getCheckpointRetentionHeight()":"4aa8f8a5","getCheckpointSignatureBundle(uint256)":"ca41d5ce","getCurrentBottomUpCheckpoint()":"d6c5c397","getCurrentConfigurationNumber()":"544dddff","getCurrentMembership()":"6ad21bb0","getIncompleteCheckpointHeights()":"a517218f","getIncompleteCheckpoints()":"97042766","getIncompleteMsgBatchHeights()":"767ee5f4","getIncompleteMsgBatches()":"335eb62a","getLastConfigurationNumber()":"b1ba49b0","getLastMembership()":"f3229131","getLatestParentFinality()":"0338150f","getNetworkName()":"94074b03","getParentFinality(uint256)":"7edeac92","getQuorumThreshold(uint256)":"06572c1a","getSubnet((uint64,address[]))":"c66c66a1","getSubnetTopDownMsgsLength((uint64,address[]))":"9d3070b5","listSubnets()":"5d029685","majorityPercentage()":"599c7bd1","maxMsgsPerBottomUpBatch()":"05aff0b3","postbox(bytes32)":"8cfd78e7","subnets(bytes32)":"02e30f9a","totalSubnets()":"a2b67158"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"appliedTopDownNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"e\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpoint\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"e\",\"type\":\"uint256\"}],\"name\":\"bottomUpMsgBatch\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpMsgBatchPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getAppliedTopDownNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchCurrentWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchSignatureBundle\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"info\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBottomUpMsgRetentionHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointCurrentWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCheckpointRetentionHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointSignatureBundle\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"ch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"info\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBottomUpCheckpoint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentConfigurationNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentMembership\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteCheckpointHeights\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteCheckpoints\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteMsgBatchHeights\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteMsgBatches\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastConfigurationNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastMembership\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestParentFinality\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNetworkName\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getParentFinality\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalWeight\",\"type\":\"uint256\"}],\"name\":\"getQuorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnet\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnetTopDownMsgsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listSubnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxMsgsPerBottomUpBatch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"postbox\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"h\",\"type\":\"bytes32\"}],\"name\":\"subnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSubnets\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpoint(uint256)\":{\"params\":{\"e\":\"The epoch number of the checkpoint.\"}},\"bottomUpMsgBatch(uint256)\":{\"params\":{\"e\":\"The epoch number of the batch.\"}},\"getAppliedTopDownNonce((uint64,address[]))\":{\"params\":{\"subnetId\":\"The identifier of the subnet for which the top-down nonce is queried.\"},\"returns\":{\"_0\":\"A tuple containing a boolean indicating if the subnet is registered and the current top-down nonce.\"}},\"getBottomUpMsgBatchInfo(uint256)\":{\"params\":{\"h\":\"The block height of the bottom-up message batch.\"},\"returns\":{\"_0\":\"Quorum information associated with the given bottom-up message batch height.\"}},\"getBottomUpMsgBatchSignatureBundle(uint256)\":{\"params\":{\"h\":\"The height of the message batch for which information is requested.\"},\"returns\":{\"batch\":\"The bottom-up message batch information at the specified height.\",\"info\":\"Quorum information related to the message batch.\",\"signatories\":\"An array of addresses of signatories who have signed the message batch.\",\"signatures\":\"An array of signatures corresponding to each signatory for the message batch.\"}},\"getCheckpointInfo(uint256)\":{\"params\":{\"h\":\"The block height of the checkpoint.\"},\"returns\":{\"_0\":\"Quorum information associated with the given checkpoint height.\"}},\"getCheckpointSignatureBundle(uint256)\":{\"params\":{\"h\":\"The height of the checkpoint for which information is requested.\"},\"returns\":{\"ch\":\"The checkpoint information at the specified height.\",\"info\":\"Quorum information related to the checkpoint.\",\"signatories\":\"An array of addresses of signatories who have signed the checkpoint.\"}},\"getCurrentBottomUpCheckpoint()\":{\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"epoch\":\"- the epoch of the checkpoint\",\"exists\":\"- whether the checkpoint exists\"}},\"getParentFinality(uint256)\":{\"params\":{\"blockNumber\":\"The block number for which to retrieve parent-finality information.\"}},\"getQuorumThreshold(uint256)\":{\"params\":{\"totalWeight\":\"The total weight to consider for calculating the quorum threshold.\"},\"returns\":{\"_0\":\"The quorum threshold derived from the total weight and majority percentage.\"}},\"getSubnet((uint64,address[]))\":{\"params\":{\"subnetId\":\"the id of the subnet.\"},\"returns\":{\"_0\":\"found whether the subnet exists.\",\"_1\":\"subnet - the subnet struct.\"}},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"params\":{\"subnetId\":\"The identifier of the subnet for which the message queue length is queried.\"},\"returns\":{\"_0\":\"The current length of the top-down message queue, indicated by the subnet's top-down nonce.\"}},\"listSubnets()\":{\"returns\":{\"_0\":\"The list of the registered subnets.\"}},\"postbox(bytes32)\":{\"params\":{\"id\":\"The unique identifier of the message in the postbox.\"},\"returns\":{\"storableMsg\":\"The storable message associated with the given id.\",\"wrapped\":\"A boolean indicating whether the message is wrapped.\"}},\"subnets(bytes32)\":{\"params\":{\"h\":\"The hash identifier of the subnet to be queried.\"},\"returns\":{\"subnet\":\"The subnet information corresponding to the given hash.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"appliedTopDownNonce()\":{\"notice\":\"Returns the current applied top-down nonce.\"},\"bottomUpCheckPeriod()\":{\"notice\":\"Returns the period for bottom-up checkpointing.\"},\"bottomUpCheckpoint(uint256)\":{\"notice\":\"Returns a specific bottom-up checkpoint based on an epoch number.\"},\"bottomUpMsgBatch(uint256)\":{\"notice\":\"Returns a specific bottom-up message batch based on an index.\"},\"bottomUpMsgBatchPeriod()\":{\"notice\":\"Returns the period for processing bottom-up message batches.\"},\"bottomUpNonce()\":{\"notice\":\"Returns the current nonce for bottom-up message processing.\"},\"crossMsgFee()\":{\"notice\":\"Returns the minimum fee required for cross-net messages.\"},\"getAppliedTopDownNonce((uint64,address[]))\":{\"notice\":\"Returns the current applied top-down nonce for a specified subnet, indicating whether it's registered.\"},\"getBottomUpMsgBatchCurrentWeight(uint256)\":{\"notice\":\"Returns the batch current weight corresponding to the block height.\"},\"getBottomUpMsgBatchInfo(uint256)\":{\"notice\":\"Returns quorum information for a specific bottom-up message batch based on its height.\"},\"getBottomUpMsgBatchSignatureBundle(uint256)\":{\"notice\":\"Returns a bundle of information and signatures for a specified bottom-up message batch.\"},\"getBottomUpMsgRetentionHeight()\":{\"notice\":\"Returns the bottom-up batch retention index.\"},\"getCheckpointCurrentWeight(uint256)\":{\"notice\":\"Returns the checkpoint current weight corresponding to the block height.\"},\"getCheckpointInfo(uint256)\":{\"notice\":\"Returns quorum information for a specific checkpoint based on its height.\"},\"getCheckpointRetentionHeight()\":{\"notice\":\"Returns the bottom-up checkpoint retention index.\"},\"getCheckpointSignatureBundle(uint256)\":{\"notice\":\"Retrieves a bundle of information and signatures for a specified bottom-up checkpoint.\"},\"getCurrentBottomUpCheckpoint()\":{\"notice\":\"Returns the current bottom-up checkpoint.\"},\"getCurrentConfigurationNumber()\":{\"notice\":\"Returns the current configuration number.\"},\"getCurrentMembership()\":{\"notice\":\"Returns the current membership.\"},\"getIncompleteCheckpointHeights()\":{\"notice\":\"Returns the incomplete checkpoint heights.\"},\"getIncompleteCheckpoints()\":{\"notice\":\"Returns the incomplete checkpoints.\"},\"getIncompleteMsgBatchHeights()\":{\"notice\":\"Returns the incomplete msd batches heights.\"},\"getIncompleteMsgBatches()\":{\"notice\":\"Returns the incomplete batches of messages.\"},\"getLastConfigurationNumber()\":{\"notice\":\"Returns the last configuration number received from the parent.\"},\"getLastMembership()\":{\"notice\":\"Returns the last membership received from the parent.\"},\"getLatestParentFinality()\":{\"notice\":\"Gets the most recent parent-finality information from the parent.\"},\"getNetworkName()\":{\"notice\":\"Returns the subnet identifier of the network.\"},\"getParentFinality(uint256)\":{\"notice\":\"Returns the parent chain finality information for a given block number.\"},\"getQuorumThreshold(uint256)\":{\"notice\":\"Returns the threshold required for quorum in this subnet, based on the configured majority percentage and the total weight of the validators.\"},\"getSubnet((uint64,address[]))\":{\"notice\":\"Returns the subnet with the given id.\"},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"notice\":\"Returns the length of the top-down message queue for a specified subnet.\"},\"listSubnets()\":{\"notice\":\"Returns the list of registered subnets.\"},\"majorityPercentage()\":{\"notice\":\"Returns the majority percentage required for certain consensus or decision-making processes.\"},\"maxMsgsPerBottomUpBatch()\":{\"notice\":\"Returns the maximum number of messages per bottom-up batch.\"},\"postbox(bytes32)\":{\"notice\":\"Returns the storable message and its wrapped status from the postbox by a given identifier.\"},\"subnets(bytes32)\":{\"notice\":\"Returns information about a specific subnet using its hash identifier.\"},\"totalSubnets()\":{\"notice\":\"Returns the total number of the registered subnets.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayGetterFacet.sol\":\"GatewayGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"appliedTopDownNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpCheckPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"e","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpoint","outputs":[{"internalType":"struct BottomUpCheckpoint","name":"","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[{"internalType":"uint256","name":"e","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpMsgBatch","outputs":[{"internalType":"struct BottomUpMsgBatch","name":"","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpMsgBatchPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"crossMsgFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getAppliedTopDownNonce","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchCurrentWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchInfo","outputs":[{"internalType":"struct QuorumInfo","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchSignatureBundle","outputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"struct QuorumInfo","name":"info","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBottomUpMsgRetentionHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointCurrentWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointInfo","outputs":[{"internalType":"struct QuorumInfo","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCheckpointRetentionHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointSignatureBundle","outputs":[{"internalType":"struct BottomUpCheckpoint","name":"ch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"struct QuorumInfo","name":"info","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBottomUpCheckpoint","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentConfigurationNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentMembership","outputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteCheckpointHeights","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteCheckpoints","outputs":[{"internalType":"struct BottomUpCheckpoint[]","name":"","type":"tuple[]","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteMsgBatchHeights","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteMsgBatches","outputs":[{"internalType":"struct BottomUpMsgBatch[]","name":"","type":"tuple[]","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastConfigurationNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastMembership","outputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestParentFinality","outputs":[{"internalType":"struct ParentFinality","name":"","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNetworkName","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getParentFinality","outputs":[{"internalType":"struct ParentFinality","name":"","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"uint256","name":"totalWeight","type":"uint256"}],"stateMutability":"view","type":"function","name":"getQuorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getSubnet","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"struct Subnet","name":"","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getSubnetTopDownMsgsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"listSubnets","outputs":[{"internalType":"struct Subnet[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"majorityPercentage","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxMsgsPerBottomUpBatch","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"postbox","outputs":[{"internalType":"struct StorableMsg","name":"storableMsg","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"h","type":"bytes32"}],"stateMutability":"view","type":"function","name":"subnets","outputs":[{"internalType":"struct Subnet","name":"subnet","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSubnets","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"bottomUpCheckpoint(uint256)":{"params":{"e":"The epoch number of the checkpoint."}},"bottomUpMsgBatch(uint256)":{"params":{"e":"The epoch number of the batch."}},"getAppliedTopDownNonce((uint64,address[]))":{"params":{"subnetId":"The identifier of the subnet for which the top-down nonce is queried."},"returns":{"_0":"A tuple containing a boolean indicating if the subnet is registered and the current top-down nonce."}},"getBottomUpMsgBatchInfo(uint256)":{"params":{"h":"The block height of the bottom-up message batch."},"returns":{"_0":"Quorum information associated with the given bottom-up message batch height."}},"getBottomUpMsgBatchSignatureBundle(uint256)":{"params":{"h":"The height of the message batch for which information is requested."},"returns":{"batch":"The bottom-up message batch information at the specified height.","info":"Quorum information related to the message batch.","signatories":"An array of addresses of signatories who have signed the message batch.","signatures":"An array of signatures corresponding to each signatory for the message batch."}},"getCheckpointInfo(uint256)":{"params":{"h":"The block height of the checkpoint."},"returns":{"_0":"Quorum information associated with the given checkpoint height."}},"getCheckpointSignatureBundle(uint256)":{"params":{"h":"The height of the checkpoint for which information is requested."},"returns":{"ch":"The checkpoint information at the specified height.","info":"Quorum information related to the checkpoint.","signatories":"An array of addresses of signatories who have signed the checkpoint."}},"getCurrentBottomUpCheckpoint()":{"returns":{"checkpoint":"- the checkpoint struct","epoch":"- the epoch of the checkpoint","exists":"- whether the checkpoint exists"}},"getParentFinality(uint256)":{"params":{"blockNumber":"The block number for which to retrieve parent-finality information."}},"getQuorumThreshold(uint256)":{"params":{"totalWeight":"The total weight to consider for calculating the quorum threshold."},"returns":{"_0":"The quorum threshold derived from the total weight and majority percentage."}},"getSubnet((uint64,address[]))":{"params":{"subnetId":"the id of the subnet."},"returns":{"_0":"found whether the subnet exists.","_1":"subnet - the subnet struct."}},"getSubnetTopDownMsgsLength((uint64,address[]))":{"params":{"subnetId":"The identifier of the subnet for which the message queue length is queried."},"returns":{"_0":"The current length of the top-down message queue, indicated by the subnet's top-down nonce."}},"listSubnets()":{"returns":{"_0":"The list of the registered subnets."}},"postbox(bytes32)":{"params":{"id":"The unique identifier of the message in the postbox."},"returns":{"storableMsg":"The storable message associated with the given id.","wrapped":"A boolean indicating whether the message is wrapped."}},"subnets(bytes32)":{"params":{"h":"The hash identifier of the subnet to be queried."},"returns":{"subnet":"The subnet information corresponding to the given hash."}}},"version":1},"userdoc":{"kind":"user","methods":{"appliedTopDownNonce()":{"notice":"Returns the current applied top-down nonce."},"bottomUpCheckPeriod()":{"notice":"Returns the period for bottom-up checkpointing."},"bottomUpCheckpoint(uint256)":{"notice":"Returns a specific bottom-up checkpoint based on an epoch number."},"bottomUpMsgBatch(uint256)":{"notice":"Returns a specific bottom-up message batch based on an index."},"bottomUpMsgBatchPeriod()":{"notice":"Returns the period for processing bottom-up message batches."},"bottomUpNonce()":{"notice":"Returns the current nonce for bottom-up message processing."},"crossMsgFee()":{"notice":"Returns the minimum fee required for cross-net messages."},"getAppliedTopDownNonce((uint64,address[]))":{"notice":"Returns the current applied top-down nonce for a specified subnet, indicating whether it's registered."},"getBottomUpMsgBatchCurrentWeight(uint256)":{"notice":"Returns the batch current weight corresponding to the block height."},"getBottomUpMsgBatchInfo(uint256)":{"notice":"Returns quorum information for a specific bottom-up message batch based on its height."},"getBottomUpMsgBatchSignatureBundle(uint256)":{"notice":"Returns a bundle of information and signatures for a specified bottom-up message batch."},"getBottomUpMsgRetentionHeight()":{"notice":"Returns the bottom-up batch retention index."},"getCheckpointCurrentWeight(uint256)":{"notice":"Returns the checkpoint current weight corresponding to the block height."},"getCheckpointInfo(uint256)":{"notice":"Returns quorum information for a specific checkpoint based on its height."},"getCheckpointRetentionHeight()":{"notice":"Returns the bottom-up checkpoint retention index."},"getCheckpointSignatureBundle(uint256)":{"notice":"Retrieves a bundle of information and signatures for a specified bottom-up checkpoint."},"getCurrentBottomUpCheckpoint()":{"notice":"Returns the current bottom-up checkpoint."},"getCurrentConfigurationNumber()":{"notice":"Returns the current configuration number."},"getCurrentMembership()":{"notice":"Returns the current membership."},"getIncompleteCheckpointHeights()":{"notice":"Returns the incomplete checkpoint heights."},"getIncompleteCheckpoints()":{"notice":"Returns the incomplete checkpoints."},"getIncompleteMsgBatchHeights()":{"notice":"Returns the incomplete msd batches heights."},"getIncompleteMsgBatches()":{"notice":"Returns the incomplete batches of messages."},"getLastConfigurationNumber()":{"notice":"Returns the last configuration number received from the parent."},"getLastMembership()":{"notice":"Returns the last membership received from the parent."},"getLatestParentFinality()":{"notice":"Gets the most recent parent-finality information from the parent."},"getNetworkName()":{"notice":"Returns the subnet identifier of the network."},"getParentFinality(uint256)":{"notice":"Returns the parent chain finality information for a given block number."},"getQuorumThreshold(uint256)":{"notice":"Returns the threshold required for quorum in this subnet, based on the configured majority percentage and the total weight of the validators."},"getSubnet((uint64,address[]))":{"notice":"Returns the subnet with the given id."},"getSubnetTopDownMsgsLength((uint64,address[]))":{"notice":"Returns the length of the top-down message queue for a specified subnet."},"listSubnets()":{"notice":"Returns the list of registered subnets."},"majorityPercentage()":{"notice":"Returns the majority percentage required for certain consensus or decision-making processes."},"maxMsgsPerBottomUpBatch()":{"notice":"Returns the maximum number of messages per bottom-up batch."},"postbox(bytes32)":{"notice":"Returns the storable message and its wrapped status from the postbox by a given identifier."},"subnets(bytes32)":{"notice":"Returns information about a specific subnet using its hash identifier."},"totalSubnets()":{"notice":"Returns the total number of the registered subnets."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayGetterFacet.sol":"GatewayGetterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayGetterFacet.sol","id":38318,"exportedSymbols":{"BottomUpCheckpoint":[49885],"BottomUpMsgBatch":[49898],"EnumerableSet":[35815],"GatewayActorStorage":[43012],"GatewayGetterFacet":[38317],"LibGateway":[42888],"LibQuorum":[43901],"Membership":[50171],"ParentFinality":[49871],"QuorumInfo":[49981],"StorableMsg":[49944],"Subnet":[50044],"SubnetID":[50030],"SubnetIDHelper":[48025]},"nodeType":"SourceUnit","src":"46:13742:46","nodes":[{"id":37543,"nodeType":"PragmaDirective","src":"46:23:46","nodes":[],"literals":["solidity","0.8",".19"]},{"id":37548,"nodeType":"ImportDirective","src":"71:106:46","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":37544,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"79:18:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37545,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49898,"src":"99:16:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37546,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"117:11:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37547,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"130:14:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37550,"nodeType":"ImportDirective","src":"178:49:46","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":50013,"symbolAliases":[{"foreign":{"id":37549,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49981,"src":"186:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37553,"nodeType":"ImportDirective","src":"228:55:46","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":37551,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"236:8:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37552,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"246:6:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37555,"nodeType":"ImportDirective","src":"284:49:46","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":37554,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50171,"src":"292:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37557,"nodeType":"ImportDirective","src":"334:49:46","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":42889,"symbolAliases":[{"foreign":{"id":37556,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"342:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37559,"nodeType":"ImportDirective","src":"384:47:46","nodes":[],"absolutePath":"src/lib/LibQuorum.sol","file":"../lib/LibQuorum.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":43902,"symbolAliases":[{"foreign":{"id":37558,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"392:9:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37561,"nodeType":"ImportDirective","src":"432:70:46","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":43082,"symbolAliases":[{"foreign":{"id":37560,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43012,"src":"440:19:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37563,"nodeType":"ImportDirective","src":"503:57:46","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":37562,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"511:14:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37565,"nodeType":"ImportDirective","src":"561:85:46","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":37564,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"569:13:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38317,"nodeType":"ContractDefinition","src":"648:13139:46","nodes":[{"id":37568,"nodeType":"VariableDeclaration","src":"735:30:46","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"764:1:46","scope":38317,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":37567,"nodeType":"UserDefinedTypeName","pathNode":{"id":37566,"name":"GatewayActorStorage","nameLocations":["735:19:46"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"735:19:46"},"referencedDeclaration":43012,"src":"735:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":37572,"nodeType":"UsingForDirective","src":"772:34:46","nodes":[],"global":false,"libraryName":{"id":37569,"name":"SubnetIDHelper","nameLocations":["778:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"778:14:46"},"typeName":{"id":37571,"nodeType":"UserDefinedTypeName","pathNode":{"id":37570,"name":"SubnetID","nameLocations":["797:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"797:8:46"},"referencedDeclaration":50030,"src":"797:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":37576,"nodeType":"UsingForDirective","src":"811:46:46","nodes":[],"global":false,"libraryName":{"id":37573,"name":"EnumerableSet","nameLocations":["817:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"817:13:46"},"typeName":{"id":37575,"nodeType":"UserDefinedTypeName","pathNode":{"id":37574,"name":"EnumerableSet.UintSet","nameLocations":["835:13:46","849:7:46"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"835:21:46"},"referencedDeclaration":35685,"src":"835:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"id":37580,"nodeType":"UsingForDirective","src":"862:49:46","nodes":[],"global":false,"libraryName":{"id":37577,"name":"EnumerableSet","nameLocations":["868:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"868:13:46"},"typeName":{"id":37579,"nodeType":"UserDefinedTypeName","pathNode":{"id":37578,"name":"EnumerableSet.AddressSet","nameLocations":["886:13:46","900:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"886:24:46"},"referencedDeclaration":35528,"src":"886:24:46","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":37590,"nodeType":"FunctionDefinition","src":"990:95:46","nodes":[],"body":{"id":37589,"nodeType":"Block","src":"1045:40:46","nodes":[],"statements":[{"expression":{"expression":{"id":37586,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1062:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1064:14:46","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":42971,"src":"1062:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37585,"id":37588,"nodeType":"Return","src":"1055:23:46"}]},"documentation":{"id":37581,"nodeType":"StructuredDocumentation","src":"917:68:46","text":"@notice Returns the minimum fee required for cross-net messages."},"functionSelector":"24729425","implemented":true,"kind":"function","modifiers":[],"name":"crossMsgFee","nameLocation":"999:11:46","parameters":{"id":37582,"nodeType":"ParameterList","parameters":[],"src":"1010:2:46"},"returnParameters":{"id":37585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37590,"src":"1036:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37583,"name":"uint256","nodeType":"ElementaryTypeName","src":"1036:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1035:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37600,"nodeType":"FunctionDefinition","src":"1167:95:46","nodes":[],"body":{"id":37599,"nodeType":"Block","src":"1223:39:46","nodes":[],"statements":[{"expression":{"expression":{"id":37596,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1240:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1242:13:46","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":42977,"src":"1240:15:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37595,"id":37598,"nodeType":"Return","src":"1233:22:46"}]},"documentation":{"id":37591,"nodeType":"StructuredDocumentation","src":"1091:71:46","text":"@notice Returns the current nonce for bottom-up message processing."},"functionSelector":"41b6a2e8","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpNonce","nameLocation":"1176:13:46","parameters":{"id":37592,"nodeType":"ParameterList","parameters":[],"src":"1189:2:46"},"returnParameters":{"id":37595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37600,"src":"1215:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37593,"name":"uint64","nodeType":"ElementaryTypeName","src":"1215:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1214:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37610,"nodeType":"FunctionDefinition","src":"1336:93:46","nodes":[],"body":{"id":37609,"nodeType":"Block","src":"1391:38:46","nodes":[],"statements":[{"expression":{"expression":{"id":37606,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1408:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1410:12:46","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":42983,"src":"1408:14:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37605,"id":37608,"nodeType":"Return","src":"1401:21:46"}]},"documentation":{"id":37601,"nodeType":"StructuredDocumentation","src":"1268:63:46","text":"@notice Returns the total number of the registered subnets."},"functionSelector":"a2b67158","implemented":true,"kind":"function","modifiers":[],"name":"totalSubnets","nameLocation":"1345:12:46","parameters":{"id":37602,"nodeType":"ParameterList","parameters":[],"src":"1357:2:46"},"returnParameters":{"id":37605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37610,"src":"1383:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37603,"name":"uint64","nodeType":"ElementaryTypeName","src":"1383:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1382:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37620,"nodeType":"FunctionDefinition","src":"1511:115:46","nodes":[],"body":{"id":37619,"nodeType":"Block","src":"1577:49:46","nodes":[],"statements":[{"expression":{"expression":{"id":37616,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1594:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1596:23:46","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"1594:25:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37615,"id":37618,"nodeType":"Return","src":"1587:32:46"}]},"documentation":{"id":37611,"nodeType":"StructuredDocumentation","src":"1435:71:46","text":"@notice Returns the maximum number of messages per bottom-up batch."},"functionSelector":"05aff0b3","implemented":true,"kind":"function","modifiers":[],"name":"maxMsgsPerBottomUpBatch","nameLocation":"1520:23:46","parameters":{"id":37612,"nodeType":"ParameterList","parameters":[],"src":"1543:2:46"},"returnParameters":{"id":37615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37620,"src":"1569:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37613,"name":"uint64","nodeType":"ElementaryTypeName","src":"1569:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1568:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37630,"nodeType":"FunctionDefinition","src":"1709:114:46","nodes":[],"body":{"id":37629,"nodeType":"Block","src":"1775:48:46","nodes":[],"statements":[{"expression":{"expression":{"id":37626,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1792:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1794:22:46","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":42989,"src":"1792:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37625,"id":37628,"nodeType":"Return","src":"1785:31:46"}]},"documentation":{"id":37621,"nodeType":"StructuredDocumentation","src":"1632:72:46","text":"@notice Returns the period for processing bottom-up message batches."},"functionSelector":"69e737fd","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatchPeriod","nameLocation":"1718:22:46","parameters":{"id":37622,"nodeType":"ParameterList","parameters":[],"src":"1740:2:46"},"returnParameters":{"id":37625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37630,"src":"1766:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37623,"name":"uint256","nodeType":"ElementaryTypeName","src":"1766:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1765:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37640,"nodeType":"FunctionDefinition","src":"1893:108:46","nodes":[],"body":{"id":37639,"nodeType":"Block","src":"1956:45:46","nodes":[],"statements":[{"expression":{"expression":{"id":37636,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1973:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1975:19:46","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":42986,"src":"1973:21:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37635,"id":37638,"nodeType":"Return","src":"1966:28:46"}]},"documentation":{"id":37631,"nodeType":"StructuredDocumentation","src":"1829:59:46","text":"@notice Returns the period for bottom-up checkpointing."},"functionSelector":"06c46853","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckPeriod","nameLocation":"1902:19:46","parameters":{"id":37632,"nodeType":"ParameterList","parameters":[],"src":"1921:2:46"},"returnParameters":{"id":37635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37640,"src":"1947:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37633,"name":"uint256","nodeType":"ElementaryTypeName","src":"1947:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1946:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37651,"nodeType":"FunctionDefinition","src":"2069:103:46","nodes":[],"body":{"id":37650,"nodeType":"Block","src":"2135:37:46","nodes":[],"statements":[{"expression":{"expression":{"id":37647,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"2152:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2154:11:46","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"2152:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"functionReturnParameters":37646,"id":37649,"nodeType":"Return","src":"2145:20:46"}]},"documentation":{"id":37641,"nodeType":"StructuredDocumentation","src":"2007:57:46","text":"@notice Returns the subnet identifier of the network."},"functionSelector":"94074b03","implemented":true,"kind":"function","modifiers":[],"name":"getNetworkName","nameLocation":"2078:14:46","parameters":{"id":37642,"nodeType":"ParameterList","parameters":[],"src":"2092:2:46"},"returnParameters":{"id":37646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37651,"src":"2118:15:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":37644,"nodeType":"UserDefinedTypeName","pathNode":{"id":37643,"name":"SubnetID","nameLocations":["2118:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"2118:8:46"},"referencedDeclaration":50030,"src":"2118:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2117:17:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37666,"nodeType":"FunctionDefinition","src":"2313:137:46","nodes":[],"body":{"id":37665,"nodeType":"Block","src":"2402:48:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37660,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"2419:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2421:19:46","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42946,"src":"2419:21:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":37663,"indexExpression":{"id":37662,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37654,"src":"2441:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2419:24:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"functionReturnParameters":37659,"id":37664,"nodeType":"Return","src":"2412:31:46"}]},"documentation":{"id":37652,"nodeType":"StructuredDocumentation","src":"2178:130:46","text":"@notice Returns a specific bottom-up checkpoint based on an epoch number.\n @param e The epoch number of the checkpoint."},"functionSelector":"2da5794a","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpoint","nameLocation":"2322:18:46","parameters":{"id":37655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37654,"mutability":"mutable","name":"e","nameLocation":"2349:1:46","nodeType":"VariableDeclaration","scope":37666,"src":"2341:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37653,"name":"uint256","nodeType":"ElementaryTypeName","src":"2341:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2340:11:46"},"returnParameters":{"id":37659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37666,"src":"2375:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":37657,"nodeType":"UserDefinedTypeName","pathNode":{"id":37656,"name":"BottomUpCheckpoint","nameLocations":["2375:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"2375:18:46"},"referencedDeclaration":49885,"src":"2375:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"2374:27:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37681,"nodeType":"FunctionDefinition","src":"2582:132:46","nodes":[],"body":{"id":37680,"nodeType":"Block","src":"2667:47:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"2684:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2686:18:46","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42952,"src":"2684:20:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":37678,"indexExpression":{"id":37677,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37669,"src":"2705:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2684:23:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"functionReturnParameters":37674,"id":37679,"nodeType":"Return","src":"2677:30:46"}]},"documentation":{"id":37667,"nodeType":"StructuredDocumentation","src":"2456:121:46","text":"@notice Returns a specific bottom-up message batch based on an index.\n @param e The epoch number of the batch."},"functionSelector":"dd81b5cf","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatch","nameLocation":"2591:16:46","parameters":{"id":37670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37669,"mutability":"mutable","name":"e","nameLocation":"2616:1:46","nodeType":"VariableDeclaration","scope":37681,"src":"2608:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37668,"name":"uint256","nodeType":"ElementaryTypeName","src":"2608:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2607:11:46"},"returnParameters":{"id":37674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37681,"src":"2642:23:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":37672,"nodeType":"UserDefinedTypeName","pathNode":{"id":37671,"name":"BottomUpMsgBatch","nameLocations":["2642:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"2642:16:46"},"referencedDeclaration":49898,"src":"2642:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"2641:25:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37696,"nodeType":"FunctionDefinition","src":"2903:159:46","nodes":[],"body":{"id":37695,"nodeType":"Block","src":"2997:65:46","nodes":[],"statements":[{"expression":{"arguments":[{"id":37692,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37684,"src":"3043:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37690,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"3014:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":37691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3025:17:46","memberName":"getParentFinality","nodeType":"MemberAccess","referencedDeclaration":41973,"src":"3014:28:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (uint256) view returns (struct ParentFinality memory)"}},"id":37693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3014:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":37689,"id":37694,"nodeType":"Return","src":"3007:48:46"}]},"documentation":{"id":37682,"nodeType":"StructuredDocumentation","src":"2720:178:46","text":"@notice Returns the parent chain finality information for a given block number.\n @param blockNumber The block number for which to retrieve parent-finality information."},"functionSelector":"7edeac92","implemented":true,"kind":"function","modifiers":[],"name":"getParentFinality","nameLocation":"2912:17:46","parameters":{"id":37685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37684,"mutability":"mutable","name":"blockNumber","nameLocation":"2938:11:46","nodeType":"VariableDeclaration","scope":37696,"src":"2930:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37683,"name":"uint256","nodeType":"ElementaryTypeName","src":"2930:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2929:21:46"},"returnParameters":{"id":37689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37696,"src":"2974:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":37687,"nodeType":"UserDefinedTypeName","pathNode":{"id":37686,"name":"ParentFinality","nameLocations":["2974:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"2974:14:46"},"referencedDeclaration":49871,"src":"2974:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"2973:23:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37708,"nodeType":"FunctionDefinition","src":"3150:141:46","nodes":[],"body":{"id":37707,"nodeType":"Block","src":"3231:60:46","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37703,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"3248:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":37704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3259:23:46","memberName":"getLatestParentFinality","nodeType":"MemberAccess","referencedDeclaration":41993,"src":"3248:34:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function () view returns (struct ParentFinality memory)"}},"id":37705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3248:36:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":37702,"id":37706,"nodeType":"Return","src":"3241:43:46"}]},"documentation":{"id":37697,"nodeType":"StructuredDocumentation","src":"3068:77:46","text":"@notice Gets the most recent parent-finality information from the parent."},"functionSelector":"0338150f","implemented":true,"kind":"function","modifiers":[],"name":"getLatestParentFinality","nameLocation":"3159:23:46","parameters":{"id":37698,"nodeType":"ParameterList","parameters":[],"src":"3182:2:46"},"returnParameters":{"id":37702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37708,"src":"3208:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":37700,"nodeType":"UserDefinedTypeName","pathNode":{"id":37699,"name":"ParentFinality","nameLocations":["3208:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"3208:14:46"},"referencedDeclaration":49871,"src":"3208:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"3207:23:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37726,"nodeType":"FunctionDefinition","src":"3491:196:46","nodes":[],"body":{"id":37725,"nodeType":"Block","src":"3582:105:46","nodes":[],"statements":[{"expression":{"arguments":[{"id":37722,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37712,"src":"3671:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":37720,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"3650:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":37721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3661:9:46","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42636,"src":"3650:20:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3650:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"functionReturnParameters":37719,"id":37724,"nodeType":"Return","src":"3643:37:46"}]},"documentation":{"id":37709,"nodeType":"StructuredDocumentation","src":"3297:189:46","text":"@notice Returns the subnet with the given id.\n @param subnetId the id of the subnet.\n @return found whether the subnet exists.\n @return subnet - the subnet struct."},"functionSelector":"c66c66a1","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"3500:9:46","parameters":{"id":37713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37712,"mutability":"mutable","name":"subnetId","nameLocation":"3528:8:46","nodeType":"VariableDeclaration","scope":37726,"src":"3510:26:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":37711,"nodeType":"UserDefinedTypeName","pathNode":{"id":37710,"name":"SubnetID","nameLocations":["3510:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"3510:8:46"},"referencedDeclaration":50030,"src":"3510:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3509:28:46"},"returnParameters":{"id":37719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37726,"src":"3561:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37714,"name":"bool","nodeType":"ElementaryTypeName","src":"3561:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37726,"src":"3567:13:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":37717,"nodeType":"UserDefinedTypeName","pathNode":{"id":37716,"name":"Subnet","nameLocations":["3567:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"3567:6:46"},"referencedDeclaration":50044,"src":"3567:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"3560:21:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37741,"nodeType":"FunctionDefinition","src":"3925:109:46","nodes":[],"body":{"id":37740,"nodeType":"Block","src":"3998:36:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37735,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"4015:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4017:7:46","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42917,"src":"4015:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50044_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":37738,"indexExpression":{"id":37737,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37729,"src":"4025:1:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4015:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage","typeString":"struct Subnet storage ref"}},"functionReturnParameters":37734,"id":37739,"nodeType":"Return","src":"4008:19:46"}]},"documentation":{"id":37727,"nodeType":"StructuredDocumentation","src":"3693:227:46","text":"@notice Returns information about a specific subnet using its hash identifier.\n @param h The hash identifier of the subnet to be queried.\n @return subnet The subnet information corresponding to the given hash."},"functionSelector":"02e30f9a","implemented":true,"kind":"function","modifiers":[],"name":"subnets","nameLocation":"3934:7:46","parameters":{"id":37730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37729,"mutability":"mutable","name":"h","nameLocation":"3950:1:46","nodeType":"VariableDeclaration","scope":37741,"src":"3942:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3942:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3941:11:46"},"returnParameters":{"id":37734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37733,"mutability":"mutable","name":"subnet","nameLocation":"3990:6:46","nodeType":"VariableDeclaration","scope":37741,"src":"3976:20:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":37732,"nodeType":"UserDefinedTypeName","pathNode":{"id":37731,"name":"Subnet","nameLocations":["3976:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"3976:6:46"},"referencedDeclaration":50044,"src":"3976:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"3975:22:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37762,"nodeType":"FunctionDefinition","src":"4337:384:46","nodes":[],"body":{"id":37761,"nodeType":"Block","src":"4431:290:46","nodes":[],"statements":[{"assignments":[null,37752],"declarations":[null,{"constant":false,"id":37752,"mutability":"mutable","name":"subnet","nameLocation":"4510:6:46","nodeType":"VariableDeclaration","scope":37761,"src":"4495:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":37751,"nodeType":"UserDefinedTypeName","pathNode":{"id":37750,"name":"Subnet","nameLocations":["4495:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"4495:6:46"},"referencedDeclaration":50044,"src":"4495:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":37757,"initialValue":{"arguments":[{"id":37755,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37745,"src":"4541:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":37753,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"4520:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":37754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4531:9:46","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42636,"src":"4520:20:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"4492:58:46"},{"expression":{"expression":{"id":37758,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37752,"src":"4695:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":37759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4702:12:46","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"4695:19:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37749,"id":37760,"nodeType":"Return","src":"4688:26:46"}]},"documentation":{"id":37742,"nodeType":"StructuredDocumentation","src":"4040:292:46","text":"@notice Returns the length of the top-down message queue for a specified subnet.\n @param subnetId The identifier of the subnet for which the message queue length is queried.\n @return The current length of the top-down message queue, indicated by the subnet's top-down nonce."},"functionSelector":"9d3070b5","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetTopDownMsgsLength","nameLocation":"4346:26:46","parameters":{"id":37746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37745,"mutability":"mutable","name":"subnetId","nameLocation":"4389:8:46","nodeType":"VariableDeclaration","scope":37762,"src":"4373:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":37744,"nodeType":"UserDefinedTypeName","pathNode":{"id":37743,"name":"SubnetID","nameLocations":["4373:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"4373:8:46"},"referencedDeclaration":50030,"src":"4373:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4372:26:46"},"returnParameters":{"id":37749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37762,"src":"4422:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37747,"name":"uint256","nodeType":"ElementaryTypeName","src":"4422:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4421:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37797,"nodeType":"FunctionDefinition","src":"5056:299:46","nodes":[],"body":{"id":37796,"nodeType":"Block","src":"5153:202:46","nodes":[],"statements":[{"assignments":[37774,37777],"declarations":[{"constant":false,"id":37774,"mutability":"mutable","name":"registered","nameLocation":"5169:10:46","nodeType":"VariableDeclaration","scope":37796,"src":"5164:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37773,"name":"bool","nodeType":"ElementaryTypeName","src":"5164:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37777,"mutability":"mutable","name":"subnet","nameLocation":"5196:6:46","nodeType":"VariableDeclaration","scope":37796,"src":"5181:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":37776,"nodeType":"UserDefinedTypeName","pathNode":{"id":37775,"name":"Subnet","nameLocations":["5181:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"5181:6:46"},"referencedDeclaration":50044,"src":"5181:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":37782,"initialValue":{"arguments":[{"id":37780,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37766,"src":"5227:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":37778,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"5206:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":37779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5217:9:46","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42636,"src":"5206:20:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5206:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"5163:73:46"},{"condition":{"id":37784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5250:11:46","subExpression":{"id":37783,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37774,"src":"5251:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37790,"nodeType":"IfStatement","src":"5246:59:46","trueBody":{"id":37789,"nodeType":"Block","src":"5263:42:46","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":37785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5285:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":37786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5292:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":37787,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5284:10:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":37772,"id":37788,"nodeType":"Return","src":"5277:17:46"}]}},{"expression":{"components":[{"hexValue":"74727565","id":37791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5322:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"expression":{"id":37792,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37777,"src":"5328:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":37793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5335:12:46","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"5328:19:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":37794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5321:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$","typeString":"tuple(bool,uint64)"}},"functionReturnParameters":37772,"id":37795,"nodeType":"Return","src":"5314:34:46"}]},"documentation":{"id":37763,"nodeType":"StructuredDocumentation","src":"4727:324:46","text":"@notice Returns the current applied top-down nonce for a specified subnet, indicating whether it's registered.\n @param subnetId The identifier of the subnet for which the top-down nonce is queried.\n @return A tuple containing a boolean indicating if the subnet is registered and the current top-down nonce."},"functionSelector":"9e530b57","implemented":true,"kind":"function","modifiers":[],"name":"getAppliedTopDownNonce","nameLocation":"5065:22:46","parameters":{"id":37767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37766,"mutability":"mutable","name":"subnetId","nameLocation":"5106:8:46","nodeType":"VariableDeclaration","scope":37797,"src":"5088:26:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":37765,"nodeType":"UserDefinedTypeName","pathNode":{"id":37764,"name":"SubnetID","nameLocations":["5088:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"5088:8:46"},"referencedDeclaration":50030,"src":"5088:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"5087:28:46"},"returnParameters":{"id":37772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37797,"src":"5139:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37768,"name":"bool","nodeType":"ElementaryTypeName","src":"5139:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37797,"src":"5145:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37770,"name":"uint64","nodeType":"ElementaryTypeName","src":"5145:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5138:14:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37807,"nodeType":"FunctionDefinition","src":"5421:107:46","nodes":[],"body":{"id":37806,"nodeType":"Block","src":"5483:45:46","nodes":[],"statements":[{"expression":{"expression":{"id":37803,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"5500:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5502:19:46","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":42980,"src":"5500:21:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37802,"id":37805,"nodeType":"Return","src":"5493:28:46"}]},"documentation":{"id":37798,"nodeType":"StructuredDocumentation","src":"5361:55:46","text":"@notice Returns the current applied top-down nonce."},"functionSelector":"8789f83b","implemented":true,"kind":"function","modifiers":[],"name":"appliedTopDownNonce","nameLocation":"5430:19:46","parameters":{"id":37799,"nodeType":"ParameterList","parameters":[],"src":"5449:2:46"},"returnParameters":{"id":37802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37807,"src":"5475:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37800,"name":"uint64","nodeType":"ElementaryTypeName","src":"5475:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5474:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37831,"nodeType":"FunctionDefinition","src":"5869:168:46","nodes":[],"body":{"id":37830,"nodeType":"Block","src":"5967:70:46","nodes":[],"statements":[{"expression":{"components":[{"expression":{"baseExpression":{"expression":{"id":37818,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"5985:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5987:7:46","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42932,"src":"5985:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49927_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":37821,"indexExpression":{"id":37820,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37810,"src":"5995:2:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5985:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage","typeString":"struct CrossMsg storage ref"}},"id":37822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5999:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"5985:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage","typeString":"struct StorableMsg storage ref"}},{"expression":{"baseExpression":{"expression":{"id":37823,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6008:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6010:7:46","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42932,"src":"6008:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49927_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":37826,"indexExpression":{"id":37825,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37810,"src":"6018:2:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6008:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage","typeString":"struct CrossMsg storage ref"}},"id":37827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6022:7:46","memberName":"wrapped","nodeType":"MemberAccess","referencedDeclaration":49926,"src":"6008:21:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":37828,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5984:46:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_StorableMsg_$49944_storage_$_t_bool_$","typeString":"tuple(struct StorableMsg storage ref,bool)"}},"functionReturnParameters":37817,"id":37829,"nodeType":"Return","src":"5977:53:46"}]},"documentation":{"id":37808,"nodeType":"StructuredDocumentation","src":"5534:330:46","text":"@notice Returns the storable message and its wrapped status from the postbox by a given identifier.\n @param id The unique identifier of the message in the postbox.\n @return storableMsg The storable message associated with the given id.\n @return wrapped A boolean indicating whether the message is wrapped."},"functionSelector":"8cfd78e7","implemented":true,"kind":"function","modifiers":[],"name":"postbox","nameLocation":"5878:7:46","parameters":{"id":37811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37810,"mutability":"mutable","name":"id","nameLocation":"5894:2:46","nodeType":"VariableDeclaration","scope":37831,"src":"5886:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37809,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5886:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5885:12:46"},"returnParameters":{"id":37817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37814,"mutability":"mutable","name":"storableMsg","nameLocation":"5940:11:46","nodeType":"VariableDeclaration","scope":37831,"src":"5921:30:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg"},"typeName":{"id":37813,"nodeType":"UserDefinedTypeName","pathNode":{"id":37812,"name":"StorableMsg","nameLocations":["5921:11:46"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"5921:11:46"},"referencedDeclaration":49944,"src":"5921:11:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":37816,"mutability":"mutable","name":"wrapped","nameLocation":"5958:7:46","nodeType":"VariableDeclaration","scope":37831,"src":"5953:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37815,"name":"bool","nodeType":"ElementaryTypeName","src":"5953:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5920:46:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37841,"nodeType":"FunctionDefinition","src":"6152:105:46","nodes":[],"body":{"id":37840,"nodeType":"Block","src":"6213:44:46","nodes":[],"statements":[{"expression":{"expression":{"id":37837,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6230:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6232:18:46","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":42974,"src":"6230:20:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":37836,"id":37839,"nodeType":"Return","src":"6223:27:46"}]},"documentation":{"id":37832,"nodeType":"StructuredDocumentation","src":"6043:104:46","text":"@notice Returns the majority percentage required for certain consensus or decision-making processes."},"functionSelector":"599c7bd1","implemented":true,"kind":"function","modifiers":[],"name":"majorityPercentage","nameLocation":"6161:18:46","parameters":{"id":37833,"nodeType":"ParameterList","parameters":[],"src":"6179:2:46"},"returnParameters":{"id":37836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37835,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37841,"src":"6205:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37834,"name":"uint64","nodeType":"ElementaryTypeName","src":"6205:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6204:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37898,"nodeType":"FunctionDefinition","src":"6371:371:46","nodes":[],"body":{"id":37897,"nodeType":"Block","src":"6434:308:46","nodes":[],"statements":[{"assignments":[37850],"declarations":[{"constant":false,"id":37850,"mutability":"mutable","name":"size","nameLocation":"6452:4:46","nodeType":"VariableDeclaration","scope":37897,"src":"6444:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37849,"name":"uint256","nodeType":"ElementaryTypeName","src":"6444:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37854,"initialValue":{"expression":{"expression":{"id":37851,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6459:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6461:10:46","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":42964,"src":"6459:12:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":37853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6472:6:46","memberName":"length","nodeType":"MemberAccess","src":"6459:19:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6444:34:46"},{"assignments":[37859],"declarations":[{"constant":false,"id":37859,"mutability":"mutable","name":"out","nameLocation":"6504:3:46","nodeType":"VariableDeclaration","scope":37897,"src":"6488:19:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50044_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet[]"},"typeName":{"baseType":{"id":37857,"nodeType":"UserDefinedTypeName","pathNode":{"id":37856,"name":"Subnet","nameLocations":["6488:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"6488:6:46"},"referencedDeclaration":50044,"src":"6488:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"id":37858,"nodeType":"ArrayTypeName","src":"6488:8:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50044_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}},"visibility":"internal"}],"id":37866,"initialValue":{"arguments":[{"id":37864,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37850,"src":"6523:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6510:12:46","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Subnet_$50044_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Subnet memory[] memory)"},"typeName":{"baseType":{"id":37861,"nodeType":"UserDefinedTypeName","pathNode":{"id":37860,"name":"Subnet","nameLocations":["6514:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"6514:6:46"},"referencedDeclaration":50044,"src":"6514:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"id":37862,"nodeType":"ArrayTypeName","src":"6514:8:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50044_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}}},"id":37865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6510:18:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50044_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6488:40:46"},{"body":{"id":37893,"nodeType":"Block","src":"6566:150:46","statements":[{"assignments":[37874],"declarations":[{"constant":false,"id":37874,"mutability":"mutable","name":"key","nameLocation":"6588:3:46","nodeType":"VariableDeclaration","scope":37893,"src":"6580:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6580:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37879,"initialValue":{"baseExpression":{"expression":{"id":37875,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6594:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6596:10:46","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":42964,"src":"6594:12:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":37878,"indexExpression":{"id":37877,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6607:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6594:15:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6580:29:46"},{"expression":{"id":37887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37880,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37859,"src":"6623:3:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50044_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"id":37882,"indexExpression":{"id":37881,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6627:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6623:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":37883,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6632:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6634:7:46","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42917,"src":"6632:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50044_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":37886,"indexExpression":{"id":37885,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37874,"src":"6642:3:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6632:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage","typeString":"struct Subnet storage ref"}},"src":"6623:23:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":37888,"nodeType":"ExpressionStatement","src":"6623:23:46"},{"id":37892,"nodeType":"UncheckedBlock","src":"6660:46:46","statements":[{"expression":{"id":37890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6688:3:46","subExpression":{"id":37889,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6690:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37891,"nodeType":"ExpressionStatement","src":"6688:3:46"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37870,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6554:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37871,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37850,"src":"6558:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6554:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37894,"initializationExpression":{"assignments":[37868],"declarations":[{"constant":false,"id":37868,"mutability":"mutable","name":"i","nameLocation":"6551:1:46","nodeType":"VariableDeclaration","scope":37894,"src":"6543:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37867,"name":"uint256","nodeType":"ElementaryTypeName","src":"6543:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37869,"nodeType":"VariableDeclarationStatement","src":"6543:9:46"},"nodeType":"ForStatement","src":"6538:178:46"},{"expression":{"id":37895,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37859,"src":"6732:3:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50044_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"functionReturnParameters":37848,"id":37896,"nodeType":"Return","src":"6725:10:46"}]},"documentation":{"id":37842,"nodeType":"StructuredDocumentation","src":"6263:103:46","text":"@notice Returns the list of registered subnets.\n @return The list of the registered subnets."},"functionSelector":"5d029685","implemented":true,"kind":"function","modifiers":[],"name":"listSubnets","nameLocation":"6380:11:46","parameters":{"id":37843,"nodeType":"ParameterList","parameters":[],"src":"6391:2:46"},"returnParameters":{"id":37848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37898,"src":"6417:15:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50044_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet[]"},"typeName":{"baseType":{"id":37845,"nodeType":"UserDefinedTypeName","pathNode":{"id":37844,"name":"Subnet","nameLocations":["6417:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"6417:6:46"},"referencedDeclaration":50044,"src":"6417:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"id":37846,"nodeType":"ArrayTypeName","src":"6417:8:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50044_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}},"visibility":"internal"}],"src":"6416:17:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37909,"nodeType":"FunctionDefinition","src":"6818:111:46","nodes":[],"body":{"id":37908,"nodeType":"Block","src":"6889:40:46","nodes":[],"statements":[{"expression":{"expression":{"id":37905,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6906:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6908:14:46","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42940,"src":"6906:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"functionReturnParameters":37904,"id":37907,"nodeType":"Return","src":"6899:23:46"}]},"documentation":{"id":37899,"nodeType":"StructuredDocumentation","src":"6748:65:46","text":"@notice Returns the last membership received from the parent."},"functionSelector":"f3229131","implemented":true,"kind":"function","modifiers":[],"name":"getLastMembership","nameLocation":"6827:17:46","parameters":{"id":37900,"nodeType":"ParameterList","parameters":[],"src":"6844:2:46"},"returnParameters":{"id":37904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37909,"src":"6870:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership"},"typeName":{"id":37902,"nodeType":"UserDefinedTypeName","pathNode":{"id":37901,"name":"Membership","nameLocations":["6870:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"6870:10:46"},"referencedDeclaration":50171,"src":"6870:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"6869:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37920,"nodeType":"FunctionDefinition","src":"7015:129:46","nodes":[],"body":{"id":37919,"nodeType":"Block","src":"7084:60:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":37915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7101:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7103:14:46","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42940,"src":"7101:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"id":37917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7118:19:46","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50170,"src":"7101:36:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37914,"id":37918,"nodeType":"Return","src":"7094:43:46"}]},"documentation":{"id":37910,"nodeType":"StructuredDocumentation","src":"6935:75:46","text":"@notice Returns the last configuration number received from the parent."},"functionSelector":"b1ba49b0","implemented":true,"kind":"function","modifiers":[],"name":"getLastConfigurationNumber","nameLocation":"7024:26:46","parameters":{"id":37911,"nodeType":"ParameterList","parameters":[],"src":"7050:2:46"},"returnParameters":{"id":37914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37920,"src":"7076:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37912,"name":"uint64","nodeType":"ElementaryTypeName","src":"7076:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7075:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37931,"nodeType":"FunctionDefinition","src":"7198:117:46","nodes":[],"body":{"id":37930,"nodeType":"Block","src":"7272:43:46","nodes":[],"statements":[{"expression":{"expression":{"id":37927,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7289:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7291:17:46","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42936,"src":"7289:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"functionReturnParameters":37926,"id":37929,"nodeType":"Return","src":"7282:26:46"}]},"documentation":{"id":37921,"nodeType":"StructuredDocumentation","src":"7150:43:46","text":"@notice Returns the current membership."},"functionSelector":"6ad21bb0","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentMembership","nameLocation":"7207:20:46","parameters":{"id":37922,"nodeType":"ParameterList","parameters":[],"src":"7227:2:46"},"returnParameters":{"id":37926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37925,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37931,"src":"7253:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership"},"typeName":{"id":37924,"nodeType":"UserDefinedTypeName","pathNode":{"id":37923,"name":"Membership","nameLocations":["7253:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"7253:10:46"},"referencedDeclaration":50171,"src":"7253:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"7252:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37942,"nodeType":"FunctionDefinition","src":"7379:135:46","nodes":[],"body":{"id":37941,"nodeType":"Block","src":"7451:63:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":37937,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7468:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7470:17:46","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42936,"src":"7468:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"id":37939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7488:19:46","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50170,"src":"7468:39:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37936,"id":37940,"nodeType":"Return","src":"7461:46:46"}]},"documentation":{"id":37932,"nodeType":"StructuredDocumentation","src":"7321:53:46","text":"@notice Returns the current configuration number."},"functionSelector":"544dddff","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentConfigurationNumber","nameLocation":"7388:29:46","parameters":{"id":37933,"nodeType":"ParameterList","parameters":[],"src":"7417:2:46"},"returnParameters":{"id":37936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37942,"src":"7443:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37934,"name":"uint64","nodeType":"ElementaryTypeName","src":"7443:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7442:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37958,"nodeType":"FunctionDefinition","src":"7743:139:46","nodes":[],"body":{"id":37957,"nodeType":"Block","src":"7823:59:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":37951,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7840:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7842:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"7840:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":37953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7862:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":49994,"src":"7840:32:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$49981_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37955,"indexExpression":{"id":37954,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37945,"src":"7873:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7840:35:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage","typeString":"struct QuorumInfo storage ref"}},"functionReturnParameters":37950,"id":37956,"nodeType":"Return","src":"7833:42:46"}]},"documentation":{"id":37943,"nodeType":"StructuredDocumentation","src":"7520:218:46","text":"@notice Returns quorum information for a specific checkpoint based on its height.\n @param h The block height of the checkpoint.\n @return Quorum information associated with the given checkpoint height."},"functionSelector":"ac12d763","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointInfo","nameLocation":"7752:17:46","parameters":{"id":37946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37945,"mutability":"mutable","name":"h","nameLocation":"7778:1:46","nodeType":"VariableDeclaration","scope":37958,"src":"7770:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37944,"name":"uint256","nodeType":"ElementaryTypeName","src":"7770:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7769:11:46"},"returnParameters":{"id":37950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37958,"src":"7804:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":37948,"nodeType":"UserDefinedTypeName","pathNode":{"id":37947,"name":"QuorumInfo","nameLocations":["7804:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":49981,"src":"7804:10:46"},"referencedDeclaration":49981,"src":"7804:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"src":"7803:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37974,"nodeType":"FunctionDefinition","src":"8150:151:46","nodes":[],"body":{"id":37973,"nodeType":"Block","src":"8236:65:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":37967,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8253:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8255:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"8253:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":37969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8281:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":49994,"src":"8253:38:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$49981_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37971,"indexExpression":{"id":37970,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37961,"src":"8292:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8253:41:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage","typeString":"struct QuorumInfo storage ref"}},"functionReturnParameters":37966,"id":37972,"nodeType":"Return","src":"8246:48:46"}]},"documentation":{"id":37959,"nodeType":"StructuredDocumentation","src":"7888:257:46","text":"@notice Returns quorum information for a specific bottom-up message batch based on its height.\n @param h The block height of the bottom-up message batch.\n @return Quorum information associated with the given bottom-up message batch height."},"functionSelector":"b9ee5842","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchInfo","nameLocation":"8159:23:46","parameters":{"id":37962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37961,"mutability":"mutable","name":"h","nameLocation":"8191:1:46","nodeType":"VariableDeclaration","scope":37974,"src":"8183:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37960,"name":"uint256","nodeType":"ElementaryTypeName","src":"8183:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8182:11:46"},"returnParameters":{"id":37966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37974,"src":"8217:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":37964,"nodeType":"UserDefinedTypeName","pathNode":{"id":37963,"name":"QuorumInfo","nameLocations":["8217:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":49981,"src":"8217:10:46"},"referencedDeclaration":49981,"src":"8217:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"src":"8216:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37990,"nodeType":"FunctionDefinition","src":"8396:152:46","nodes":[],"body":{"id":37989,"nodeType":"Block","src":"8475:73:46","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":37982,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8492:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8494:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"8492:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":37984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8514:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":49994,"src":"8492:32:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$49981_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37986,"indexExpression":{"id":37985,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37977,"src":"8525:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8492:35:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage","typeString":"struct QuorumInfo storage ref"}},"id":37987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8528:13:46","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"8492:49:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37981,"id":37988,"nodeType":"Return","src":"8485:56:46"}]},"documentation":{"id":37975,"nodeType":"StructuredDocumentation","src":"8307:84:46","text":"@notice Returns the checkpoint current weight corresponding to the block height."},"functionSelector":"b3ab3f74","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointCurrentWeight","nameLocation":"8405:26:46","parameters":{"id":37978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37977,"mutability":"mutable","name":"h","nameLocation":"8440:1:46","nodeType":"VariableDeclaration","scope":37990,"src":"8432:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37976,"name":"uint256","nodeType":"ElementaryTypeName","src":"8432:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8431:11:46"},"returnParameters":{"id":37981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37990,"src":"8466:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37979,"name":"uint256","nodeType":"ElementaryTypeName","src":"8466:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8465:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38006,"nodeType":"FunctionDefinition","src":"8638:164:46","nodes":[],"body":{"id":38005,"nodeType":"Block","src":"8723:79:46","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":37998,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8740:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8742:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"8740:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":38000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8768:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":49994,"src":"8740:38:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$49981_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":38002,"indexExpression":{"id":38001,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37993,"src":"8779:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8740:41:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage","typeString":"struct QuorumInfo storage ref"}},"id":38003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8782:13:46","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"8740:55:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37997,"id":38004,"nodeType":"Return","src":"8733:62:46"}]},"documentation":{"id":37991,"nodeType":"StructuredDocumentation","src":"8554:79:46","text":"@notice Returns the batch current weight corresponding to the block height."},"functionSelector":"6547cd64","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchCurrentWeight","nameLocation":"8647:32:46","parameters":{"id":37994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37993,"mutability":"mutable","name":"h","nameLocation":"8688:1:46","nodeType":"VariableDeclaration","scope":38006,"src":"8680:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37992,"name":"uint256","nodeType":"ElementaryTypeName","src":"8680:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8679:11:46"},"returnParameters":{"id":37997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38006,"src":"8714:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37995,"name":"uint256","nodeType":"ElementaryTypeName","src":"8714:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8713:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38020,"nodeType":"FunctionDefinition","src":"8867:155:46","nodes":[],"body":{"id":38019,"nodeType":"Block","src":"8950:72:46","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38013,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8967:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8969:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"8967:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":38015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8989:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":49998,"src":"8967:39:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9007:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"8967:46:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8967:48:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":38012,"id":38018,"nodeType":"Return","src":"8960:55:46"}]},"documentation":{"id":38007,"nodeType":"StructuredDocumentation","src":"8808:54:46","text":"@notice Returns the incomplete checkpoint heights."},"functionSelector":"a517218f","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteCheckpointHeights","nameLocation":"8876:30:46","parameters":{"id":38008,"nodeType":"ParameterList","parameters":[],"src":"8906:2:46"},"returnParameters":{"id":38012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38020,"src":"8932:16:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38009,"name":"uint256","nodeType":"ElementaryTypeName","src":"8932:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38010,"nodeType":"ArrayTypeName","src":"8932:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"8931:18:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38085,"nodeType":"FunctionDefinition","src":"9080:508:46","nodes":[],"body":{"id":38084,"nodeType":"Block","src":"9168:420:46","nodes":[],"statements":[{"assignments":[38032],"declarations":[{"constant":false,"id":38032,"mutability":"mutable","name":"heights","nameLocation":"9195:7:46","nodeType":"VariableDeclaration","scope":38084,"src":"9178:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38030,"name":"uint256","nodeType":"ElementaryTypeName","src":"9178:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38031,"nodeType":"ArrayTypeName","src":"9178:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":38038,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38033,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"9205:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"9205:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":38035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9227:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":49998,"src":"9205:39:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9245:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"9205:46:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9205:48:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9178:75:46"},{"assignments":[38040],"declarations":[{"constant":false,"id":38040,"mutability":"mutable","name":"size","nameLocation":"9271:4:46","nodeType":"VariableDeclaration","scope":38084,"src":"9263:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38039,"name":"uint256","nodeType":"ElementaryTypeName","src":"9263:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38043,"initialValue":{"expression":{"id":38041,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38032,"src":"9278:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9286:6:46","memberName":"length","nodeType":"MemberAccess","src":"9278:14:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9263:29:46"},{"assignments":[38048],"declarations":[{"constant":false,"id":38048,"mutability":"mutable","name":"checkpoints","nameLocation":"9331:11:46","nodeType":"VariableDeclaration","scope":38084,"src":"9303:39:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint[]"},"typeName":{"baseType":{"id":38046,"nodeType":"UserDefinedTypeName","pathNode":{"id":38045,"name":"BottomUpCheckpoint","nameLocations":["9303:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"9303:18:46"},"referencedDeclaration":49885,"src":"9303:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":38047,"nodeType":"ArrayTypeName","src":"9303:20:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49885_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}},"visibility":"internal"}],"id":38055,"initialValue":{"arguments":[{"id":38053,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38040,"src":"9370:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9345:24:46","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct BottomUpCheckpoint memory[] memory)"},"typeName":{"baseType":{"id":38050,"nodeType":"UserDefinedTypeName","pathNode":{"id":38049,"name":"BottomUpCheckpoint","nameLocations":["9349:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"9349:18:46"},"referencedDeclaration":49885,"src":"9349:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":38051,"nodeType":"ArrayTypeName","src":"9349:20:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49885_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}}},"id":38054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9345:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9303:72:46"},{"body":{"id":38080,"nodeType":"Block","src":"9412:142:46","statements":[{"expression":{"id":38074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38062,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38048,"src":"9426:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"id":38064,"indexExpression":{"id":38063,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9438:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9426:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"9443:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9445:19:46","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42946,"src":"9443:21:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":38073,"indexExpression":{"arguments":[{"baseExpression":{"id":38069,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38032,"src":"9472:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38071,"indexExpression":{"id":38070,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9480:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9472:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9465:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":38067,"name":"uint64","nodeType":"ElementaryTypeName","src":"9465:6:46","typeDescriptions":{}}},"id":38072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9465:18:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9443:41:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"9426:58:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":38075,"nodeType":"ExpressionStatement","src":"9426:58:46"},{"id":38079,"nodeType":"UncheckedBlock","src":"9498:46:46","statements":[{"expression":{"id":38077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9526:3:46","subExpression":{"id":38076,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9528:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38078,"nodeType":"ExpressionStatement","src":"9526:3:46"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38059,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9400:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38060,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38040,"src":"9404:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9400:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38081,"initializationExpression":{"assignments":[38057],"declarations":[{"constant":false,"id":38057,"mutability":"mutable","name":"i","nameLocation":"9397:1:46","nodeType":"VariableDeclaration","scope":38081,"src":"9390:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":38056,"name":"uint64","nodeType":"ElementaryTypeName","src":"9390:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":38058,"nodeType":"VariableDeclarationStatement","src":"9390:8:46"},"nodeType":"ForStatement","src":"9385:169:46"},{"expression":{"id":38082,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38048,"src":"9570:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"functionReturnParameters":38027,"id":38083,"nodeType":"Return","src":"9563:18:46"}]},"documentation":{"id":38021,"nodeType":"StructuredDocumentation","src":"9028:47:46","text":"@notice Returns the incomplete checkpoints."},"functionSelector":"97042766","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteCheckpoints","nameLocation":"9089:24:46","parameters":{"id":38022,"nodeType":"ParameterList","parameters":[],"src":"9113:2:46"},"returnParameters":{"id":38027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38085,"src":"9139:27:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint[]"},"typeName":{"baseType":{"id":38024,"nodeType":"UserDefinedTypeName","pathNode":{"id":38023,"name":"BottomUpCheckpoint","nameLocations":["9139:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"9139:18:46"},"referencedDeclaration":49885,"src":"9139:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":38025,"nodeType":"ArrayTypeName","src":"9139:20:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49885_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}},"visibility":"internal"}],"src":"9138:29:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38150,"nodeType":"FunctionDefinition","src":"9654:494:46","nodes":[],"body":{"id":38149,"nodeType":"Block","src":"9739:409:46","nodes":[],"statements":[{"assignments":[38097],"declarations":[{"constant":false,"id":38097,"mutability":"mutable","name":"heights","nameLocation":"9766:7:46","nodeType":"VariableDeclaration","scope":38149,"src":"9749:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38095,"name":"uint256","nodeType":"ElementaryTypeName","src":"9749:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38096,"nodeType":"ArrayTypeName","src":"9749:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":38103,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38098,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"9776:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9778:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"9776:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":38100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9804:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":49998,"src":"9776:45:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9822:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"9776:52:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9776:54:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9749:81:46"},{"assignments":[38105],"declarations":[{"constant":false,"id":38105,"mutability":"mutable","name":"size","nameLocation":"9848:4:46","nodeType":"VariableDeclaration","scope":38149,"src":"9840:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38104,"name":"uint256","nodeType":"ElementaryTypeName","src":"9840:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38108,"initialValue":{"expression":{"id":38106,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38097,"src":"9855:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9863:6:46","memberName":"length","nodeType":"MemberAccess","src":"9855:14:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9840:29:46"},{"assignments":[38113],"declarations":[{"constant":false,"id":38113,"mutability":"mutable","name":"batches","nameLocation":"9906:7:46","nodeType":"VariableDeclaration","scope":38149,"src":"9880:33:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch[]"},"typeName":{"baseType":{"id":38111,"nodeType":"UserDefinedTypeName","pathNode":{"id":38110,"name":"BottomUpMsgBatch","nameLocations":["9880:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"9880:16:46"},"referencedDeclaration":49898,"src":"9880:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":38112,"nodeType":"ArrayTypeName","src":"9880:18:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49898_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}},"visibility":"internal"}],"id":38120,"initialValue":{"arguments":[{"id":38118,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38105,"src":"9939:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9916:22:46","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct BottomUpMsgBatch memory[] memory)"},"typeName":{"baseType":{"id":38115,"nodeType":"UserDefinedTypeName","pathNode":{"id":38114,"name":"BottomUpMsgBatch","nameLocations":["9920:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"9920:16:46"},"referencedDeclaration":49898,"src":"9920:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":38116,"nodeType":"ArrayTypeName","src":"9920:18:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49898_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}}},"id":38119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9916:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9880:64:46"},{"body":{"id":38145,"nodeType":"Block","src":"9981:137:46","statements":[{"expression":{"id":38139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38127,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38113,"src":"9995:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"id":38129,"indexExpression":{"id":38128,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"10003:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9995:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38130,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10008:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:18:46","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42952,"src":"10008:20:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":38138,"indexExpression":{"arguments":[{"baseExpression":{"id":38134,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38097,"src":"10036:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38136,"indexExpression":{"id":38135,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"10044:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10036:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10029:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":38132,"name":"uint64","nodeType":"ElementaryTypeName","src":"10029:6:46","typeDescriptions":{}}},"id":38137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10029:18:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10008:40:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"9995:53:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":38140,"nodeType":"ExpressionStatement","src":"9995:53:46"},{"id":38144,"nodeType":"UncheckedBlock","src":"10062:46:46","statements":[{"expression":{"id":38142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10090:3:46","subExpression":{"id":38141,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"10092:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38143,"nodeType":"ExpressionStatement","src":"10090:3:46"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38124,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"9969:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38125,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38105,"src":"9973:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38146,"initializationExpression":{"assignments":[38122],"declarations":[{"constant":false,"id":38122,"mutability":"mutable","name":"i","nameLocation":"9966:1:46","nodeType":"VariableDeclaration","scope":38146,"src":"9959:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":38121,"name":"uint64","nodeType":"ElementaryTypeName","src":"9959:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":38123,"nodeType":"VariableDeclarationStatement","src":"9959:8:46"},"nodeType":"ForStatement","src":"9954:164:46"},{"expression":{"id":38147,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38113,"src":"10134:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"functionReturnParameters":38092,"id":38148,"nodeType":"Return","src":"10127:14:46"}]},"documentation":{"id":38086,"nodeType":"StructuredDocumentation","src":"9594:55:46","text":"@notice Returns the incomplete batches of messages."},"functionSelector":"335eb62a","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteMsgBatches","nameLocation":"9663:23:46","parameters":{"id":38087,"nodeType":"ParameterList","parameters":[],"src":"9686:2:46"},"returnParameters":{"id":38092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38150,"src":"9712:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch[]"},"typeName":{"baseType":{"id":38089,"nodeType":"UserDefinedTypeName","pathNode":{"id":38088,"name":"BottomUpMsgBatch","nameLocations":["9712:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"9712:16:46"},"referencedDeclaration":49898,"src":"9712:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":38090,"nodeType":"ArrayTypeName","src":"9712:18:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49898_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}},"visibility":"internal"}],"src":"9711:27:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38164,"nodeType":"FunctionDefinition","src":"10214:159:46","nodes":[],"body":{"id":38163,"nodeType":"Block","src":"10295:78:46","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38157,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10312:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10314:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"10312:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":38159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10340:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":49998,"src":"10312:45:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10358:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"10312:52:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10312:54:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":38156,"id":38162,"nodeType":"Return","src":"10305:61:46"}]},"documentation":{"id":38151,"nodeType":"StructuredDocumentation","src":"10154:55:46","text":"@notice Returns the incomplete msd batches heights."},"functionSelector":"767ee5f4","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteMsgBatchHeights","nameLocation":"10223:28:46","parameters":{"id":38152,"nodeType":"ParameterList","parameters":[],"src":"10251:2:46"},"returnParameters":{"id":38156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38155,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38164,"src":"10277:16:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38153,"name":"uint256","nodeType":"ElementaryTypeName","src":"10277:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38154,"nodeType":"ArrayTypeName","src":"10277:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"10276:18:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38175,"nodeType":"FunctionDefinition","src":"10445:133:46","nodes":[],"body":{"id":38174,"nodeType":"Block","src":"10517:61:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":38170,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10534:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10536:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"10534:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":38172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10556:15:46","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"10534:37:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38169,"id":38173,"nodeType":"Return","src":"10527:44:46"}]},"documentation":{"id":38165,"nodeType":"StructuredDocumentation","src":"10379:61:46","text":"@notice Returns the bottom-up checkpoint retention index."},"functionSelector":"4aa8f8a5","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointRetentionHeight","nameLocation":"10454:28:46","parameters":{"id":38166,"nodeType":"ParameterList","parameters":[],"src":"10482:2:46"},"returnParameters":{"id":38169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38168,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38175,"src":"10508:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38167,"name":"uint256","nodeType":"ElementaryTypeName","src":"10508:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10507:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38186,"nodeType":"FunctionDefinition","src":"10645:140:46","nodes":[],"body":{"id":38185,"nodeType":"Block","src":"10718:67:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":38181,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10735:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10737:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"10735:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},"id":38183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10763:15:46","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"10735:43:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38180,"id":38184,"nodeType":"Return","src":"10728:50:46"}]},"documentation":{"id":38176,"nodeType":"StructuredDocumentation","src":"10584:56:46","text":"@notice Returns the bottom-up batch retention index."},"functionSelector":"22180594","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgRetentionHeight","nameLocation":"10654:29:46","parameters":{"id":38177,"nodeType":"ParameterList","parameters":[],"src":"10683:2:46"},"returnParameters":{"id":38180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38186,"src":"10709:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38178,"name":"uint256","nodeType":"ElementaryTypeName","src":"10709:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10708:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38202,"nodeType":"FunctionDefinition","src":"11151:162:46","nodes":[],"body":{"id":38201,"nodeType":"Block","src":"11232:81:46","nodes":[],"statements":[{"expression":{"arguments":[{"id":38196,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38189,"src":"11272:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":38197,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"11285:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11287:18:46","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":42974,"src":"11285:20:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":38194,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"11249:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43901_$","typeString":"type(library LibQuorum)"}},"id":38195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11259:12:46","memberName":"weightNeeded","nodeType":"MemberAccess","referencedDeclaration":43822,"src":"11249:22:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11249:57:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38193,"id":38200,"nodeType":"Return","src":"11242:64:46"}]},"documentation":{"id":38187,"nodeType":"StructuredDocumentation","src":"10791:355:46","text":"@notice Returns the threshold required for quorum in this subnet,\n based on the configured majority percentage and the total weight of the validators.\n @param totalWeight The total weight to consider for calculating the quorum threshold.\n @return The quorum threshold derived from the total weight and majority percentage."},"functionSelector":"06572c1a","implemented":true,"kind":"function","modifiers":[],"name":"getQuorumThreshold","nameLocation":"11160:18:46","parameters":{"id":38190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38189,"mutability":"mutable","name":"totalWeight","nameLocation":"11187:11:46","nodeType":"VariableDeclaration","scope":38202,"src":"11179:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38188,"name":"uint256","nodeType":"ElementaryTypeName","src":"11179:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11178:21:46"},"returnParameters":{"id":38193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38202,"src":"11223:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38191,"name":"uint256","nodeType":"ElementaryTypeName","src":"11223:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11222:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38246,"nodeType":"FunctionDefinition","src":"11739:480:46","nodes":[],"body":{"id":38245,"nodeType":"Block","src":"12022:197:46","nodes":[],"statements":[{"expression":{"id":38225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38220,"name":"ch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38209,"src":"12032:2:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38221,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"12037:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12039:19:46","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42946,"src":"12037:21:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":38224,"indexExpression":{"id":38223,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38205,"src":"12059:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12037:24:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"12032:29:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":38226,"nodeType":"ExpressionStatement","src":"12032:29:46"},{"expression":{"id":38237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38227,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38212,"src":"12072:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38228,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38215,"src":"12078:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38229,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38218,"src":"12091:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38230,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12071:31:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$49981_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":38233,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"12134:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12136:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42956,"src":"12134:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},{"id":38235,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38205,"src":"12157:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38231,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"12105:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43901_$","typeString":"type(library LibQuorum)"}},"id":38232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:18:46","memberName":"getSignatureBundle","nodeType":"MemberAccess","referencedDeclaration":43900,"src":"12105:28:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_view$_t_struct$_QuorumMap_$50012_storage_ptr_$_t_uint256_$returns$_t_struct$_QuorumInfo_$49981_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct QuorumMap storage pointer,uint256) view returns (struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"id":38236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12105:54:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$49981_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"src":"12071:88:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38238,"nodeType":"ExpressionStatement","src":"12071:88:46"},{"expression":{"components":[{"id":38239,"name":"ch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38209,"src":"12178:2:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":38240,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38212,"src":"12182:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38241,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38215,"src":"12188:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38242,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38218,"src":"12201:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38243,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12177:35:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$_t_struct$_QuorumInfo_$49981_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct BottomUpCheckpoint memory,struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":38219,"id":38244,"nodeType":"Return","src":"12170:42:46"}]},"documentation":{"id":38203,"nodeType":"StructuredDocumentation","src":"11319:415:46","text":"@notice Retrieves a bundle of information and signatures for a specified bottom-up checkpoint.\n @param h The height of the checkpoint for which information is requested.\n @return ch The checkpoint information at the specified height.\n @return info Quorum information related to the checkpoint.\n @return signatories An array of addresses of signatories who have signed the checkpoint."},"functionSelector":"ca41d5ce","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointSignatureBundle","nameLocation":"11748:28:46","parameters":{"id":38206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38205,"mutability":"mutable","name":"h","nameLocation":"11794:1:46","nodeType":"VariableDeclaration","scope":38246,"src":"11786:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38204,"name":"uint256","nodeType":"ElementaryTypeName","src":"11786:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11776:25:46"},"returnParameters":{"id":38219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38209,"mutability":"mutable","name":"ch","nameLocation":"11888:2:46","nodeType":"VariableDeclaration","scope":38246,"src":"11862:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":38208,"nodeType":"UserDefinedTypeName","pathNode":{"id":38207,"name":"BottomUpCheckpoint","nameLocations":["11862:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"11862:18:46"},"referencedDeclaration":49885,"src":"11862:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":38212,"mutability":"mutable","name":"info","nameLocation":"11922:4:46","nodeType":"VariableDeclaration","scope":38246,"src":"11904:22:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":38211,"nodeType":"UserDefinedTypeName","pathNode":{"id":38210,"name":"QuorumInfo","nameLocations":["11904:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":49981,"src":"11904:10:46"},"referencedDeclaration":49981,"src":"11904:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":38215,"mutability":"mutable","name":"signatories","nameLocation":"11957:11:46","nodeType":"VariableDeclaration","scope":38246,"src":"11940:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38213,"name":"address","nodeType":"ElementaryTypeName","src":"11940:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38214,"nodeType":"ArrayTypeName","src":"11940:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":38218,"mutability":"mutable","name":"signatures","nameLocation":"11997:10:46","nodeType":"VariableDeclaration","scope":38246,"src":"11982:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":38216,"name":"bytes","nodeType":"ElementaryTypeName","src":"11982:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":38217,"nodeType":"ArrayTypeName","src":"11982:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11848:169:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38290,"nodeType":"FunctionDefinition","src":"12776:498:46","nodes":[],"body":{"id":38289,"nodeType":"Block","src":"13066:208:46","nodes":[],"statements":[{"expression":{"id":38269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38264,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38253,"src":"13076:5:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38265,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"13084:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13086:18:46","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42952,"src":"13084:20:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":38268,"indexExpression":{"id":38267,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38249,"src":"13105:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13084:23:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"13076:31:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":38270,"nodeType":"ExpressionStatement","src":"13076:31:46"},{"expression":{"id":38281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38271,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38256,"src":"13118:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38272,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38259,"src":"13124:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38273,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38262,"src":"13137:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38274,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"13117:31:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$49981_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":38277,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"13180:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13182:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42960,"src":"13180:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"}},{"id":38279,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38249,"src":"13209:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38275,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43901,"src":"13151:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43901_$","typeString":"type(library LibQuorum)"}},"id":38276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13161:18:46","memberName":"getSignatureBundle","nodeType":"MemberAccess","referencedDeclaration":43900,"src":"13151:28:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_view$_t_struct$_QuorumMap_$50012_storage_ptr_$_t_uint256_$returns$_t_struct$_QuorumInfo_$49981_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct QuorumMap storage pointer,uint256) view returns (struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"id":38280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13151:60:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$49981_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"src":"13117:94:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38282,"nodeType":"ExpressionStatement","src":"13117:94:46"},{"expression":{"components":[{"id":38283,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38253,"src":"13230:5:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},{"id":38284,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38256,"src":"13237:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38285,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38259,"src":"13243:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38286,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38262,"src":"13256:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38287,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13229:38:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$_t_struct$_QuorumInfo_$49981_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct BottomUpMsgBatch memory,struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":38263,"id":38288,"nodeType":"Return","src":"13222:45:46"}]},"documentation":{"id":38247,"nodeType":"StructuredDocumentation","src":"12225:546:46","text":"@notice Returns a bundle of information and signatures for a specified bottom-up message batch.\n @param h The height of the message batch for which information is requested.\n @return batch The bottom-up message batch information at the specified height.\n @return info Quorum information related to the message batch.\n @return signatories An array of addresses of signatories who have signed the message batch.\n @return signatures An array of signatures corresponding to each signatory for the message batch."},"functionSelector":"a9294bdd","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchSignatureBundle","nameLocation":"12785:34:46","parameters":{"id":38250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38249,"mutability":"mutable","name":"h","nameLocation":"12837:1:46","nodeType":"VariableDeclaration","scope":38290,"src":"12829:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38248,"name":"uint256","nodeType":"ElementaryTypeName","src":"12829:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12819:25:46"},"returnParameters":{"id":38263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38253,"mutability":"mutable","name":"batch","nameLocation":"12929:5:46","nodeType":"VariableDeclaration","scope":38290,"src":"12905:29:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":38252,"nodeType":"UserDefinedTypeName","pathNode":{"id":38251,"name":"BottomUpMsgBatch","nameLocations":["12905:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"12905:16:46"},"referencedDeclaration":49898,"src":"12905:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":38256,"mutability":"mutable","name":"info","nameLocation":"12966:4:46","nodeType":"VariableDeclaration","scope":38290,"src":"12948:22:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":38255,"nodeType":"UserDefinedTypeName","pathNode":{"id":38254,"name":"QuorumInfo","nameLocations":["12948:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":49981,"src":"12948:10:46"},"referencedDeclaration":49981,"src":"12948:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":38259,"mutability":"mutable","name":"signatories","nameLocation":"13001:11:46","nodeType":"VariableDeclaration","scope":38290,"src":"12984:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38257,"name":"address","nodeType":"ElementaryTypeName","src":"12984:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38258,"nodeType":"ArrayTypeName","src":"12984:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":38262,"mutability":"mutable","name":"signatures","nameLocation":"13041:10:46","nodeType":"VariableDeclaration","scope":38290,"src":"13026:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":38260,"name":"bytes","nodeType":"ElementaryTypeName","src":"13026:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":38261,"nodeType":"ArrayTypeName","src":"13026:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"12891:170:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38316,"nodeType":"FunctionDefinition","src":"13496:289:46","nodes":[],"body":{"id":38315,"nodeType":"Block","src":"13653:132:46","nodes":[],"statements":[{"expression":{"id":38308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38301,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38294,"src":"13664:6:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":38302,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38296,"src":"13672:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38303,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38299,"src":"13679:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":38304,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"13663:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38305,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"13693:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":38306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13704:28:46","memberName":"getCurrentBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41746,"src":"13693:39:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$","typeString":"function () view returns (bool,uint256,struct BottomUpCheckpoint memory)"}},"id":38307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13693:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"src":"13663:71:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38309,"nodeType":"ExpressionStatement","src":"13663:71:46"},{"expression":{"components":[{"id":38310,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38294,"src":"13752:6:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":38311,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38296,"src":"13760:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38312,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38299,"src":"13767:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":38313,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13751:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"functionReturnParameters":38300,"id":38314,"nodeType":"Return","src":"13744:34:46"}]},"documentation":{"id":38291,"nodeType":"StructuredDocumentation","src":"13280:211:46","text":"@notice Returns the current bottom-up checkpoint.\n @return exists - whether the checkpoint exists\n @return epoch - the epoch of the checkpoint\n @return checkpoint - the checkpoint struct"},"functionSelector":"d6c5c397","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentBottomUpCheckpoint","nameLocation":"13505:28:46","parameters":{"id":38292,"nodeType":"ParameterList","parameters":[],"src":"13533:2:46"},"returnParameters":{"id":38300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38294,"mutability":"mutable","name":"exists","nameLocation":"13588:6:46","nodeType":"VariableDeclaration","scope":38316,"src":"13583:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38293,"name":"bool","nodeType":"ElementaryTypeName","src":"13583:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38296,"mutability":"mutable","name":"epoch","nameLocation":"13604:5:46","nodeType":"VariableDeclaration","scope":38316,"src":"13596:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38295,"name":"uint256","nodeType":"ElementaryTypeName","src":"13596:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38299,"mutability":"mutable","name":"checkpoint","nameLocation":"13637:10:46","nodeType":"VariableDeclaration","scope":38316,"src":"13611:36:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":38298,"nodeType":"UserDefinedTypeName","pathNode":{"id":38297,"name":"BottomUpCheckpoint","nameLocations":["13611:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"13611:18:46"},"referencedDeclaration":49885,"src":"13611:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"13582:66:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[38317],"name":"GatewayGetterFacet","nameLocation":"657:18:46","scope":38318,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":46} \ No newline at end of file diff --git a/.out/GatewayManagerFacet.sol/GatewayManagerFacet.json b/.out/GatewayManagerFacet.sol/GatewayManagerFacet.json index c3160938d..d1b7410c1 100644 --- a/.out/GatewayManagerFacet.sol/GatewayManagerFacet.json +++ b/.out/GatewayManagerFacet.sol/GatewayManagerFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fund","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fundWithToken","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"register","inputs":[{"name":"genesisCircSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"release","inputs":[{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"releaseRewardForRelayer","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"releaseStake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyRegisteredSubnet","inputs":[]},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidCrossMsgValue","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NotEmptySubnetCircSupply","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughFundsToRelease","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UnexpectedSupplySource","inputs":[]}],"bytecode":{"object":"0x60808060405234610016576126cb908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c63430008130033","sourceMap":"1328:7946:47:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":1409,"length":20},{"start":3590,"length":20},{"start":4164,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":226,"length":20},{"start":1099,"length":20},{"start":3157,"length":20},{"start":3444,"length":20},{"start":3994,"length":20},{"start":7044,"length":20},{"start":9443,"length":20},{"start":9540,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c63430008130033","sourceMap":"1328:7946:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2043:19;1328:7946;;;;;;;;;;;;2077:14;1328:7946;;-1:-1:-1;2043:48:47;2039:132;;2185:9;;:29;2181:83;;2360:40;2294:29;2185:9;;2294:29;:::i;:::-;1288:37;;;:::i;:::-;2360:28;1328:7946;2360:28;1328:7946;;;1288:37;;;;;;;2360:40;;2389:10;2360:40;1328:7946;2360:40;;;:::i;:::-;;;;;;;;;;;1328:7946;2360:40;;;1328:7946;2454:30;;;;:::i;:::-;2495:73;;;1328:7946;2578:9;;1288:37;-1:-1:-1;;;;;1288:37:47;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946;1288:37;;1328:7946;1288:37;;1328:7946;1288:37;;;;;;;;;;;;2687:17;1288:37;;;;2665:12;2643:19;;;1288:37;2687:17;1288:37;1328:7946;;1288:37;;;;;;;;2753:17;;;1328:7946;2753:17;;1288:37;;;;;;:::i;:::-;2753:17;;;;;;;;;1328:7946;2753:17;;;1288:37;;;2735:12;1288:37;;-1:-1:-1;;;1288:37:47;;;;;;;;2735:12;1288:37;;;;;;2735:12;1328:7946;1288:37;;;;2782:14;1288:37;;2782:19;-1:-1:-1;;;;;1288:37:47;;;;;;;2782:19;:::i;:::-;1288:37;;;-1:-1:-1;;;;1288:37:47;;;;;2782:14;1288:37;1328:7946;1288:37;1328:7946;;;;1288:37;;1328:7946;1288:37;;1328:7946;1288:37;;1328:7946;;;;;;;;1288:37;1328:7946;;2753:17;;;;;;;;;;;;;;;;;:::i;:::-;;;1288:37;;;;;2753:17;;;;;1288:37;1328:7946;;;2753:17;;;;;;1328:7946;;1288:37;1328:7946;1288:37;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;2495:73;1328:7946;;-1:-1:-1;;;2532:25:47;;1328:7946;;2532:25;2360:40;;;;;;;1328:7946;2360:40;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;2181:83;1328:7946;;-1:-1:-1;;;2237:16:47;;1328:7946;;2237:16;2039:132;1328:7946;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;1288:37;1328:7946;;2114:46;;;;;;;;1328:7946;2114:46;;1288:37;;;;;;:::i;:::-;2114:46;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;247:48:68;;1328:7946:47;;;;582:20:68;578:50;;1328:7946:47;1288:37;;4372:11;;4368:68;;4489:32;4510:10;4489:32;:::i;:::-;4535:11;;4531:70;;4619:9;1288:37;1328:7946;1288:37;4619:9;;1288:37;:::i;:::-;1328:7946;;1288:37;;;;;;;4619:20;;;1328:7946;4619:20;;1288:37;;;;;;:::i;:::-;4619:20;:18;;:20;;;;;;;1328:7946;4619:20;;;1328:7946;;1288:37;4651:6;1288:37;-1:-1:-1;;;;;1288:37:47;;4651:6;:::i;:::-;1288:37;1328:7946;4619:20;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946;;;;;1288:37;;4651:6;1288:37;;:::i;:::-;4619:20;;;;;;;;;;;4531:70;1328:7946;;-1:-1:-1;;;4569:21:47;;1328:7946;;4569:21;4368:68;1328:7946;;-1:-1:-1;;;4406:19:47;;1328:7946;;4406:19;578:50:68;1328:7946:47;;-1:-1:-1;;;611:17:68;;1328:7946:47;;611:17:68;1328:7946:47;-1:-1:-1;;1328:7946:47;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;8713:9;:14;8709:138;;1328:7946;;-1:-1:-1;;;8883:230:47;;1328:7946;;8883:230;;1328:7946;;;;;;;;;;;;;;;;:::i;:::-;8972:10;;1328:7946;;;1288:37;1328:7946;;;;;;;;;;;:::i;:::-;8713:9;1328:7946;;;;;;;;;8883:230;:14;;:230;;;;;;;1328:7946;8883:230;;;1328:7946;;10399:24:63;1328:7946:47;;;;;;10385:12:63;-1:-1:-1;;;;;10385:12:63;1288:37:47;1328:7946;13838:1:63;1328:7946:47;;;;;;;1288:37;;;;;;;;;;;;;;10504:15:63;1328:7946:47;;10529:20:63;-1:-1:-1;;;;;1328:7946:47;;;1288:37;10475:20:63;1328:7946:47;10475:20:63;;:26;1288:37:47;10529:20:63;:::i;:::-;1328:7946:47;;;;;;;;10504:15:63;1328:7946:47;;;;2943:20:63;1328:7946:47;;;;;2989:17:63;;;;1328:7946:47;;2989:22:63;10700:1745;2989:17;;;1328:7946:47;;;10875:29:63;1328:7946:47;8937:13;1328:7946;;;;10700:1745:63;1288:37:47;10875:10:63;:29;:::i;:::-;8713:9:47;13330:21:1;:31;13326:63;;1328:7946:47;8713:9;;;;1288:37;13419:35:1;;;;:::i;:::-;;13468:8;13464:33;;1328:7946:47;13464:33:1;1328:7946:47;;-1:-1:-1;;;13485:12:1;;1328:7946:47;;13485:12:1;13326:63;1328:7946:47;;-1:-1:-1;;;13370:19:1;;1328:7946:47;;13370:19:1;1328:7946:47;-1:-1:-1;;;;;8937:13:47;1288:37;;-1:-1:-1;;;;;1288:37:47;;;;;;;1328:7946;13838:1:63;1328:7946:47;;;:::i;:::-;;;10700:1745:63;-1:-1:-1;;1328:7946:47;11079:10:63;;1328:7946:47;11100:25:63;1288:37:47;-1:-1:-1;;;;;1288:37:47;11079:46:63;1328:7946:47;;;11079:10:63;;1328:7946:47;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1328:7946:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;1288:37;;:::i;:::-;;;10385:12:63;1328:7946:47;11298:185:63;;1288:37:47;1328:7946;11298:185:63;;1288:37:47;1328:7946;11572:13:63;;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;:::i;:::-;11298:185:63;1328:7946:47;11298:185:63;;1328:7946:47;;;;;;11298:185:63;;1328:7946:47;;;;;;;;;;;;1288:37;;;;;1328:7946;1288:37;;1328:7946;;;;;;;;;1288:37;;1328:7946;;;;;;;;;10385:12:63;;;;;;11843:38;10385:12;;11843:38;;;;1328:7946:47;;11079:10:63;;1328:7946:47;;;;;11079:10:63;;1328:7946:47;12121:29:63;11079:10;;12121:29;:::i;:::-;1328:7946:47;11298:185:63;;1328:7946:47;;;2943:20:63;1328:7946:47;;;;;4242:14:63;;-1:-1:-1;;;;;1288:37:47;;;-1:-1:-1;;;;;1288:37:47;;;;;;;1328:7946;13838:1:63;1288:37:47;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;1328:7946;1288:37;;;;;:::i;:::-;;;1328:7946;1288:37;1328:7946;;1288:37;1328:7946;1288:37;;;;;;-1:-1:-1;;;1328:7946:47;11298:185:63;;1328:7946:47;2989:17:63;4266:13;;1288:37:47;-1:-1:-1;1328:7946:47;11298:185:63;;4330:10;1288:37:47;1328:7946;4586:6:63;;;;1328:7946:47;4373:13:63;;;;;;11075:1360;;;;10700:1745;;4362:9;11298:185;4586:26;4598:13;13838:1;11298:185;1328:7946:47;11298:185:63;;4598:10;:13;:::i;:::-;;4586:26;;:::i;:::-;1328:7946:47;4362:9:63;;1288:37:47;;;-1:-1:-1;;;;;1288:37:47;;;;;1328:7946;1288:37;;;;13838:1:63;1288:37:47;;;1328:7946;1288:37;1328:7946;1288:37;;1328:7946;1288:37;;;;;1328:7946;11079:10:63;;1328:7946:47;1288:37;1328:7946;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;1288:37;1328:7946;2943:20:63;1328:7946:47;;;;;;;;:::i;:::-;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;13838:1:63;1328:7946:47;;;;;;;;;;;;:::i;:::-;1288:37;;1328:7946;;;;;;;;;;11561:9:63;11079:10;11610:32;11079:10;11629:13;13838:1;11079:10;1328:7946:47;11079:10:63;;11629:13;:::i;:::-;11298:185;1328:7946:47;11298:185:63;;11610:13;1328:7946:47;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;1288:37;;1328:7946;;;;;:::i;:::-;;;;1288:37;1328:7946;;;;;;;1288:37;2943:20:63;1328:7946:47;;1288:37;-1:-1:-1;;;;;1288:37:47;;1328:7946;;;1288:37;1328:7946;1288:37;-1:-1:-1;;;;;;1288:37:47;1328:7946;;;;;;;;;:::i;:::-;;;;1288:37;1328:7946;;;;;;;1288:37;;;1328:7946;;;;;;;;;11610:32:63;;;;:::i;:::-;;;:::i;:::-;;1328:7946:47;11561:9:63;;1328:7946:47;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11075:1360:63;1328:7946:47;12391:29:63;11079:10;;12391:29;:::i;:::-;10700:1745;;1328:7946:47;;;;;;;;;;;;8883:230;;;;;;1328:7946;8883:230;;;;;;:::i;:::-;;;;;:::i;:::-;;;;8709:138;1328:7946;;-1:-1:-1;;;8814:22:47;;1328:7946;;8814:22;1328:7946;;;-1:-1:-1;;1328:7946:47;;;;2930:9;:14;2926:68;;3047:32;3068:10;3047:32;:::i;:::-;3094:11;;3090:70;;3170:25;2930:9;1328:7946;;3170:25;:::i;:::-;1288:37;;1328:7946;;;;;;;;;;;;;;;;247:48:68;;1328:7946:47;;;;582:20:68;578:50;;1328:7946:47;1288:37;;3476:11;;3472:68;;3593:32;3614:10;3593:32;:::i;:::-;3640:11;;3636:70;;1328:7946;;3719:21;;;3715:84;;1288:37;1328:7946;1288:37;3809:22;;;;;;:::i;:::-;1288:37;;3850:9;1288:37;:::i;3715:84::-;1328:7946;;-1:-1:-1;;;3763:25:47;;1328:7946;;3763:25;1328:7946;;;;;;-1:-1:-1;;1328:7946:47;;;;4839:32;4860:10;4839:32;:::i;:::-;4886:11;;4882:70;;5023:17;;;1328:7946;5019:86;;1328:7946;;5154:14;1288:37;-1:-1:-1;;;;;1328:7946:47;;1288:37;;;;;1328:7946;;;;;;-1:-1:-1;;;;1288:37:47;;;;;;;;-1:-1:-1;;;1288:37:47;;5154:14;1288:37;;;;;1328:7946;5201:9;1288:37;:::i;:::-;1328:7946;;1288:37;;;;5201:18;;;;;;;;;1328:7946;5201:18;;1288:37;;;;;;:::i;:::-;5201:18;:16;;:18;;;;;;;1328:7946;5201:18;;;1328:7946;;5261:5;1328:7946;;;;;;;;;;;;1288:37;;1328:7946;5172:1;1328:7946;;1288:37;1328:7946;5023:17;1328:7946;;1288:37;1328:7946;;;;;;;;;;;;:::i;:::-;4860:10;5261:5;:::i;:::-;1328:7946;5201:18;;;;;;;;;;;;;;;;:::i;:::-;;;1288:37;;;;;5261:5;5201:18;;;;;;;5019:86;1328:7946;;-1:-1:-1;;;5068:26:47;;1328:7946;;5068:26;1328:7946;-1:-1:-1;;1328:7946:47;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:9;:14;5800:135;;6017:30;1328:7946;;;;:::i;:::-;6017:30;:::i;:::-;6061:11;;6057:70;;1288:37;1328:7946;;;;;:::i;1288:37::-;6251:19;:17;;:19;;;;;;;1328:7946;6251:19;;;1328:7946;-1:-1:-1;1328:7946:47;;;-1:-1:-1;;;6228:58:47;;1328:7946;;;;;;;-1:-1:-1;;;;;1288:37:47;6228:58;;;;;;;1328:7946;6228:58;;;1328:7946;;;;;;;;;2130:87:76;;6372:213:47;1328:7946;;;;;1288:37;;;;;;;;6372:213;;5804:9;1328:7946;;;6453:10;;6372:213;1328:7946;6372:213;;;:::i;:::-;;:14;;:213;;;;;;6660:8;6372:213;1328:7946;6372:213;;;1328:7946;6660:8;;:::i;6372:213::-;;;;;;1328:7946;6372:213;;;;;;:::i;:::-;;;;2130:87:76;1328:7946:47;;-1:-1:-1;;;2182:24:76;;1328:7946:47;;2182:24:76;1328:7946:47;;;;;;;;;;;;6228:58;;;;1328:7946;6228:58;1328:7946;6228:58;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;6251:19;;;1328:7946;6251:19;;;;;;;;;1328:7946;6251:19;;;:::i;:::-;;;1328:7946;;;;;1288:37;1328:7946;1288:37;;:::i;:::-;6251:19;;;;;;;-1:-1:-1;6251:19:47;;1328:7946;;;;-1:-1:-1;;1328:7946:47;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:48:68;;1328:7946:47;;;;582:20:68;578:50;;1288:37:47;1328:7946;1288:37;;;1328:7946;;;;:::i;:::-;;;1288:37;;;;7700:19;;1328:7946;;;7700:19;;;;1328:7946;7700:19;;1288:37;;;;;;:::i;:::-;7700:19;:17;;:19;;;;;;;1328:7946;7700:19;;;1328:7946;;;;1288:37;;;7677:58;;1328:7946;1288:37;1328:7946;1288:37;1328:7946;1288:37;;;;;;;7677:58;;;;;;;1328:7946;7677:58;;;1328:7946;;;;;;;;;;;2134:25:76;2130:87;;1328:7946:47;;;;;;;;;2395:37:76;2391:205;;1328:7946:47;;;;;;;;;7989:210;1328:7946;;1288:37;;;;;;;;7989:210;;1328:7946;;8070:10;;7989:210;1328:7946;7989:210;;;:::i;:::-;;:14;;:210;;;;;;;1328:7946;7989:210;8274:8;7989:210;;;;;8274:8;;:::i;7989:210::-;;;;;;;;;;;;;:::i;:::-;;;;2391:205:76;2470:25;;1288:37:47;;1328:7946;;;1780:53:28;;;1288:37:47;;;;1780:53:28;;2540:10:76;1780:53:28;;;1288:37:47;2564:4:76;1328:7946:47;;;1288:37;1328:7946;;;;;;1780:53:28;;1288:37:47;1328:7946;;;;;;;;;;;;;;4574:31:29;4622:69;;1328:7946:47;;;;;4574:31:29;;;;;:::i;:::-;4622:69;;;:::i;:::-;1288:37:47;;5134:22:28;;;;:57;;;;2391:205:76;5130:135:28;;;;;2391:205:76;;;;;5130:135:28;1328:7946:47;;5214:40:28;;;;;;1328:7946:47;5214:40:28;;1288:37:47;5214:40:28;5134:57;5161:30;;;;;;;;1328:7946:47;;;;;5161:30:28;;1328:7946:47;:::i;:::-;5160:31:28;5134:57;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;7677:58;;;;1328:7946;7677:58;1328:7946;7677:58;;;;;;;:::i;:::-;;;;7700:19;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946;;;;1288:37;;;:::i;:::-;7700:19;;;;;;;;578:50:68;-1:-1:-1;;;611:17:68;;1328:7946:47;;611:17:68;1328:7946:47;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;:::o;:::-;-1:-1:-1;;;;;1328:7946:47;;;;;;-1:-1:-1;;1328:7946:47;;;;:::o;1288:37::-;;;;;;;;-1:-1:-1;;1288:37:47;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1328:7946;;-1:-1:-1;;1328:7946:47;1288:37;;;:::o;:::-;;;;;;;;;;:::o;:::-;;1328:7946;;;;;:::i;:::-;1288:37;-1:-1:-1;;;;;11347:13:63;1288:37:47;;;;;1328:7946;1288:37;1328:7946;1288:37;1328:7946;1288:37;;;;;;;;;-1:-1:-1;1288:37:47;;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;-1:-1:-1;1288:37:47;;;;;;;;;1328:7946;;;;:::i;:::-;1288:37;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;1328:7946;1288:37;1328:7946;1288:37;;1328:7946;;;;1288:37;;;;;;;;;-1:-1:-1;1288:37:47;;-1:-1:-1;1288:37:47;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;:::o;:::-;-1:-1:-1;;;;;1288:37:47;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;:::o;:::-;;;;;;;;;;;1328:7946;;;;;:::i;:::-;1288:37;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;:::i;:::-;1328:7946;;1288:37;1328:7946;;;;:::i;:::-;1288:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1288:37:47;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;1288:37:47;;;;;;;1328:7946;;;1288:37;;;;;;;:::o;:::-;;;1328:7946;1288:37;;1328:7946;1288:37;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;;1288:37:47;;;;1328:7946;;1288:37;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;1288:37:47;;-1:-1:-1;1288:37:47;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;:::o;1328:7946::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1328:7946:47;;;;:::o;:::-;;;:::o;13246:258:1:-;13330:21;;:31;13326:63;;13419:35;;;;;;;;-1:-1:-1;;;;;1288:37:47;13419:35:1;;;;:::i;:::-;;13468:8;13464:33;;13246:258::o;1328:7946:47:-;;1288:37;-1:-1:-1;;;;;1288:37:47;;;;;;1328:7946::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;1328:7946::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1288:37;;1328:7946;;1288:37;:::i;:::-;1328:7946;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1288:37;1328:7946;;;1288:37;:::i;:::-;1328:7946;;;;;;;;-1:-1:-1;;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;1288:37;;;;1328:7946;-1:-1:-1;1328:7946:47;;;;;;;;-1:-1:-1;;1328:7946:47;;;;:::o;:::-;;;;;;;;;;;;1288:37;-1:-1:-1;;;;;1328:7946:47;;;;;:::i;:::-;1288:37;1328:7946;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;1328:7946;;;;;;;;;-1:-1:-1;;;;;;;;1288:37:47;1328:7946;;;1288:37;1328:7946;;;;;;;;;;;1288:37;;1328:7946;;1288:37;1328:7946;:::i;:::-;;;;;;;;:::o;:::-;1288:37;;;;;1328:7946;1288:37;;;;;;1328:7946;;;:::i;:::-;1288:37;;;;;;;1328:7946;;;;;;;;;-1:-1:-1;;;;;8937:13:47;1328:7946;1288:37;;;;1328:7946;;;;;;;;;1288:37;;;;;1328:7946;-1:-1:-1;1288:37:47;;1328:7946;-1:-1:-1;1328:7946:47;;;;;;;;;;;;:::o;:::-;1288:37;;-1:-1:-1;;;;;1288:37:47;;;;;;;1328:7946;1288:37;;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;1288:37;1328:7946;;;1288:37;;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;9363:689:63:-;1328:7946:47;9542:23:63;:20;;;;:23;;:32;:37;1328:7946:47;;;;;;1288:37;;;;9542:52:63;;;;;;1328:7946:47;;;;;;:::i;:::-;;;;;;;;;;;3946:45:64;;;1328:7946:47;;;;:::i;:::-;9542:52:63;;;;;;;;;;;;;;9363:689;9648:19;;;;:::i;:::-;9682:11;;9678:70;;9780:19;;;;1328:7946:47;1288:37;9780:19:63;;;1288:37:47;;-1:-1:-1;;;;;9883:16:63;1288:37:47;;;9810:20:63;:26;:20;;:26;1288:37:47;9883:16:63;:::i;:::-;1288:37:47;;-1:-1:-1;;;;;1288:37:47;;;;;9909:47:63;:17;9930:20;;;:26;1328:7946:47;9909:17:63;;1328:7946:47;;;9909:47:63;:::i;:::-;1288:37:47;;1328:7946;;1288:37;;;;;;;;9999:21:63;;;9542:52;9999:21;;1288:37:47;1328:7946;1288:37;;;;:::i;:::-;9999:21:63;;;;;;;;;;;;;9363:689;1328:7946:47;9972:73:63;1328:7946:47;;;;;;;;;;;;1288:37;;;;;1328:7946;;;;;:::i;:::-;9972:73:63;;;9363:689::o;9999:21::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946:47;;;;1288:37;;1328:7946;1288:37;9972:73:63;1288:37:47;;;:::i;:::-;9999:21:63;;;;1328:7946:47;;;9999:21:63;;;;;;1328:7946:47;;1288:37;1328:7946;;1288:37;;;;9678:70:63;1328:7946:47;;-1:-1:-1;;;9716:21:63;;9542:52;;9716:21;9542:52;;;;;;;;;;;;;;:::i;:::-;;;;;;1328:7946:47;;1288:37;1328:7946;;1288:37;;;;1328:7946;;;;;;;;-1:-1:-1;1288:37:47;1328:7946;1288:37;-1:-1:-1;1288:37:47;1328:7946;;;;-1:-1:-1;1328:7946:47;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;1288:37;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;1328:7946;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;1328:7946;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1328:7946:47;;;1288:37;1328:7946;;;;;;;;;;;;;;;;1288:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1328:7946;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;1288:37;;;1328:7946;;;;;;;;;;;;:::i;:::-;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;-1:-1:-1;;;;1328:7946:47;;;1288:37;1328:7946;;;;;;;;;;;;;;;;1288:37;1328:7946;;;;;;;1288:37;;;;1328:7946;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;1288:37;1328:7946;;1288:37;;;;1328:7946;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;1288:37;;;;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;;;;;1328:7946;;;;1288:37;1328:7946;;;;;;;;;;1288:37;1328:7946;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;1288:37;;;;;;1328:7946;;-1:-1:-1;1288:37:47;1328:7946;-1:-1:-1;;1328:7946:47;;1288:37;1328:7946;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;;-1:-1:-1;;1328:7946:47;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;;;;;1328:7946;;;;1288:37;1328:7946;;;;;;;;;1288:37;1328:7946;;;;:::i;:::-;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;1288:37;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;1288:37;;;;;;1328:7946;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;;-1:-1:-1;;1328:7946:47;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;1328:7946;1288:37;;;1328:7946;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1288:37;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;1328:7946;;;;1288:37;;;;;;;;1328:7946;1288:37;1328:7946;;;;;:::i;:::-;;;;-1:-1:-1;1328:7946:47;;;;:::o;:::-;1288:37;1328:7946;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::o;:::-;1288:37;;1328:7946;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;1328:7946:47;;;;;;:::i;:::-;1288:37;;;;1328:7946;;;;;;;;;;;1288:37;1328:7946;1288:37;;;1328:7946;;;;;;;;;:::i;:::-;1288:37;;;;-1:-1:-1;1288:37:47;;;;-1:-1:-1;1288:37:47;1328:7946;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;1288:37;1328:7946;;;;;1288:37;;;1328:7946;;;;;;;;;;;;;;1288:37;1328:7946;;;;;:::i;:::-;;;;;;:::i;:::-;1288:37;;1328:7946;;1288:37;1328:7946;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;1288:37;;;;;;1328:7946;;;1288:37;;1328:7946;;;;;;;;;;:::i;:::-;;;1288:37::o;1328:7946::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;:::i;:::-;-1:-1:-1;1288:37:47;;;;;;;1328:7946;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1288:37:47;;;1328:7946;;;;;;;;;;;;;;:::o;12666:372:63:-;-1:-1:-1;;;;;1288:37:47;;12849:19:63;12845:78;;3946:45:64;12959:35:63;1288:37:47;;;:::i;:::-;1328:7946;;-1:-1:-1;;;12959:35:63;;1328:7946:47;;;;;12959:35:63;;;;:::i;:::-;;:28;;:35;;;;;;13012:19;12959:35;3946:45:64;12959:35:63;;;12666:372;13012:19;;:::i;:::-;13005:26;;12666:372::o;12959:35::-;;;;;;;;;;;;:::i;:::-;;;;12845:78;1328:7946:47;;-1:-1:-1;;;12891:21:63;;;;;13234:272;1288:37:47;13443:15:63;1328:7946:47;;;1288:37;;;;13443:17:63;;;;;;;;;;;;1288:37:47;;;;;;:::i;:::-;13443:17:63;;;;;;;;;;3946:45:64;13443:17:63;;;13234:272;1328:7946:47;;1288:37;1328:7946;3946:45:64;1328:7946:47;3946:45:64;1328:7946:47;;;;3946:45:64;1328:7946:47;13480:9:63;1288:37:47;13443:17:63;13480:9;;1288:37:47;:::i;:::-;1328:7946;;;1288:37;;;;;;;;13480:19:63;;;13443:17;13480:19;;1288:37:47;;;;;;:::i;:::-;13480:19:63;;;;;;;;;3946:45:64;13480:19:63;;;13234:272;13479:20;;;;13234:272;:::o;13480:19::-;;;;;;;;;;;;;:::i;:::-;;;1328:7946:47;;;;;;;;:::i;:::-;13480:19:63;;;;;;;;;13443:17;;;;;;;;;;;;;;;:::i;:::-;;;1288:37:47;;;;-1:-1:-1;1288:37:47;;13443:17:63;;;;;;;6737:692:29;;6952:471;;;1288:37:47;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;1328:7946:47;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;1288:37:47;;;7261:24:29;;;1288:37:47;1328:7946;;7261:24:29;6952:471;-1:-1:-1;1288:37:47;;8828:21:29;:17;;9000:142;;;;;;8824:411;1328:7946:47;;-1:-1:-1;;;8628:17:29;;;;","linkReferences":{"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":1381,"length":20},{"start":3562,"length":20},{"start":4136,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":198,"length":20},{"start":1071,"length":20},{"start":3129,"length":20},{"start":3416,"length":20},{"start":3966,"length":20},{"start":7016,"length":20},{"start":9415,"length":20},{"start":9512,"length":20}]}}},"methodIdentifiers":{"addStake()":"5a627dbc","fund((uint64,address[]),(uint8,bytes))":"18f44b70","fundWithToken((uint64,address[]),(uint8,bytes),uint256)":"0517e1aa","kill()":"41c0e1b5","register(uint256)":"f207564e","release((uint8,bytes))":"6b2c1eef","releaseRewardForRelayer(uint256)":"d8e25572","releaseStake(uint256)":"45f54485"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEmptySubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedSupplySource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundWithToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"genesisCircSupply\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"fund((uint64,address[]),(uint8,bytes))\":{\"details\":\"There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, i.e. funding a subnet is free.\",\"params\":{\"subnetId\":\": the destination subnet for the funds.\",\"to\":\": the address to which to credit funds in the destination subnet.\"}},\"fundWithToken((uint64,address[]),(uint8,bytes),uint256)\":{\"details\":\"This function locks the amount of ERC20 tokens into custody and then mints the supply in the specified subnet. It checks if the subnet's supply strategy is ERC20 and if not, the operation is reverted. It allows for free injection of funds into a subnet and is protected against reentrancy.\",\"params\":{\"amount\":\"The amount of ERC20 tokens to be sent.\",\"subnetId\":\"The ID of the subnet where the funds will be sent to.\",\"to\":\"The funded address.\"}},\"kill()\":{\"details\":\"The subnet's balance must be empty.\"},\"register(uint256)\":{\"details\":\"The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds).\"},\"release((uint8,bytes))\":{\"params\":{\"to\":\": the address to which to credit funds in the parent subnet.\"}},\"releaseRewardForRelayer(uint256)\":{\"details\":\"This function sends the specified reward amount to the actor associated with the sender's subnet. It checks for subnet registration and also ensures the reward amount is non-zero. This function is protected against re-entrancy attack.\",\"params\":{\"amount\":\"The amount of the reward to be released.\"}},\"releaseStake(uint256)\":{\"details\":\"it can be used to release the stake or reward of the validator.\",\"params\":{\"amount\":\"The amount of stake to be released.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"addStake - add collateral for an existing subnet\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"credits the received value to the specified address in the specified child subnet.\"},\"fundWithToken((uint64,address[]),(uint8,bytes),uint256)\":{\"notice\":\"Sends funds to a specified subnet receiver using ERC20 tokens.\"},\"kill()\":{\"notice\":\"kill an existing subnet.\"},\"register(uint256)\":{\"notice\":\"register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake\"},\"release((uint8,bytes))\":{\"notice\":\"release() burns the received value locally in subnet and commits a bottom-up message to release the assets in the parent. The local supply of a subnet is always the native coin, so this method doesn't have to deal with tokens.\"},\"releaseRewardForRelayer(uint256)\":{\"notice\":\"Releases a reward to the relayer.\"},\"releaseStake(uint256)\":{\"notice\":\"release collateral for an existing subnet.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayManagerFacet.sol\":\"GatewayManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyRegisteredSubnet"},{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidCrossMsgValue"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NotEmptySubnetCircSupply"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughFundsToRelease"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UnexpectedSupplySource"},{"inputs":[],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"fund"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fundWithToken"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[{"internalType":"uint256","name":"genesisCircSupply","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register"},{"inputs":[{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseStake"}],"devdoc":{"kind":"dev","methods":{"fund((uint64,address[]),(uint8,bytes))":{"details":"There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, i.e. funding a subnet is free.","params":{"subnetId":": the destination subnet for the funds.","to":": the address to which to credit funds in the destination subnet."}},"fundWithToken((uint64,address[]),(uint8,bytes),uint256)":{"details":"This function locks the amount of ERC20 tokens into custody and then mints the supply in the specified subnet. It checks if the subnet's supply strategy is ERC20 and if not, the operation is reverted. It allows for free injection of funds into a subnet and is protected against reentrancy.","params":{"amount":"The amount of ERC20 tokens to be sent.","subnetId":"The ID of the subnet where the funds will be sent to.","to":"The funded address."}},"kill()":{"details":"The subnet's balance must be empty."},"register(uint256)":{"details":"The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds)."},"release((uint8,bytes))":{"params":{"to":": the address to which to credit funds in the parent subnet."}},"releaseRewardForRelayer(uint256)":{"details":"This function sends the specified reward amount to the actor associated with the sender's subnet. It checks for subnet registration and also ensures the reward amount is non-zero. This function is protected against re-entrancy attack.","params":{"amount":"The amount of the reward to be released."}},"releaseStake(uint256)":{"details":"it can be used to release the stake or reward of the validator.","params":{"amount":"The amount of stake to be released."}}},"version":1},"userdoc":{"kind":"user","methods":{"addStake()":{"notice":"addStake - add collateral for an existing subnet"},"fund((uint64,address[]),(uint8,bytes))":{"notice":"credits the received value to the specified address in the specified child subnet."},"fundWithToken((uint64,address[]),(uint8,bytes),uint256)":{"notice":"Sends funds to a specified subnet receiver using ERC20 tokens."},"kill()":{"notice":"kill an existing subnet."},"register(uint256)":{"notice":"register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake"},"release((uint8,bytes))":{"notice":"release() burns the received value locally in subnet and commits a bottom-up message to release the assets in the parent. The local supply of a subnet is always the native coin, so this method doesn't have to deal with tokens."},"releaseRewardForRelayer(uint256)":{"notice":"Releases a reward to the relayer."},"releaseStake(uint256)":{"notice":"release collateral for an existing subnet."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayManagerFacet.sol":"GatewayManagerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayManagerFacet.sol","id":38871,"exportedSymbols":{"Address":[32838],"AlreadyRegisteredSubnet":[37370],"BURNT_FUNDS_ACTOR":[36861],"CannotReleaseZero":[37374],"CrossMsg":[49974],"CrossMsgHelper":[40781],"ERR_CHILD_SUBNET_NOT_ALLOWED":[38365],"FilAddress":[1428],"FvmAddress":[49998],"GatewayActorModifiers":[43137],"GatewayManagerFacet":[38870],"IERC20":[31999],"InvalidCrossMsgValue":[37426],"LibGateway":[42944],"Membership":[50218],"MethodNotAllowed":[37526],"NotEmptySubnetCircSupply":[37460],"NotEnoughCollateral":[37466],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotRegisteredSubnet":[37482],"ReentrancyGuard":[44013],"Subnet":[50091],"SubnetActorGetterFacet":[50887],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:9229:47","nodes":[{"id":38319,"nodeType":"PragmaDirective","src":"46:23:47","nodes":[],"literals":["solidity","0.8",".19"]},{"id":38321,"nodeType":"ImportDirective","src":"71:72:47","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":38320,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"79:21:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38323,"nodeType":"ImportDirective","src":"144:76:47","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":38322,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"152:22:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38325,"nodeType":"ImportDirective","src":"221:61:47","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":38324,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"229:17:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38327,"nodeType":"ImportDirective","src":"283:49:47","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":38326,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"291:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38329,"nodeType":"ImportDirective","src":"333:53:47","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":38328,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"341:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38333,"nodeType":"ImportDirective","src":"387:69:47","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":38330,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"395:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38331,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"405:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38332,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"413:12:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38336,"nodeType":"ImportDirective","src":"457:61:47","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":38334,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"465:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38335,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"477:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38346,"nodeType":"ImportDirective","src":"519:232:47","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":38337,"name":"AlreadyRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37370,"src":"527:23:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38338,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"552:17:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38339,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"571:16:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38340,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"589:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38341,"name":"NotEnoughFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37472,"src":"605:23:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38342,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37466,"src":"630:19:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38343,"name":"NotEmptySubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37460,"src":"651:24:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38344,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"677:19:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38345,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"698:20:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38348,"nodeType":"ImportDirective","src":"752:49:47","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":38347,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"760:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38350,"nodeType":"ImportDirective","src":"802:57:47","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":38349,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"810:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38352,"nodeType":"ImportDirective","src":"860:57:47","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":38351,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"868:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38354,"nodeType":"ImportDirective","src":"918:56:47","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":38353,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"926:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38356,"nodeType":"ImportDirective","src":"975:62:47","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":44014,"symbolAliases":[{"foreign":{"id":38355,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44013,"src":"983:15:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38358,"nodeType":"ImportDirective","src":"1038:69:47","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":32000,"symbolAliases":[{"foreign":{"id":38357,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"1046:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38360,"nodeType":"ImportDirective","src":"1108:65:47","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":38359,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"1116:7:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38362,"nodeType":"ImportDirective","src":"1174:65:47","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":38361,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"1182:18:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38365,"nodeType":"VariableDeclaration","src":"1241:84:47","nodes":[],"constant":true,"mutability":"constant","name":"ERR_CHILD_SUBNET_NOT_ALLOWED","nameLocation":"1257:28:47","scope":38871,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38363,"name":"string","nodeType":"ElementaryTypeName","src":"1241:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e657473","id":38364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1288:37:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_134e6199f75369598df130f403db97d3616e5f01478ffecec2de7460d74db52c","typeString":"literal_string \"Subnet does not allow child subnets\""},"value":"Subnet does not allow child subnets"},"visibility":"internal"},{"id":38870,"nodeType":"ContractDefinition","src":"1328:7946:47","nodes":[{"id":38372,"nodeType":"UsingForDirective","src":"1405:37:47","nodes":[],"global":false,"libraryName":{"id":38370,"name":"FilAddress","nameLocations":["1411:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"1411:10:47"},"typeName":{"id":38371,"name":"address","nodeType":"ElementaryTypeName","src":"1426:15:47","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":38376,"nodeType":"UsingForDirective","src":"1447:34:47","nodes":[],"global":false,"libraryName":{"id":38373,"name":"SubnetIDHelper","nameLocations":["1453:14:47"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1453:14:47"},"typeName":{"id":38375,"nodeType":"UserDefinedTypeName","pathNode":{"id":38374,"name":"SubnetID","nameLocations":["1472:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1472:8:47"},"referencedDeclaration":50077,"src":"1472:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":38380,"nodeType":"UsingForDirective","src":"1486:42:47","nodes":[],"global":false,"libraryName":{"id":38377,"name":"SupplySourceHelper","nameLocations":["1492:18:47"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1492:18:47"},"typeName":{"id":38379,"nodeType":"UserDefinedTypeName","pathNode":{"id":38378,"name":"SupplySource","nameLocations":["1515:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1515:12:47"},"referencedDeclaration":50226,"src":"1515:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":38485,"nodeType":"FunctionDefinition","src":"1859:949:47","nodes":[],"body":{"id":38484,"nodeType":"Block","src":"1921:887:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"id":38386,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2043:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2045:11:47","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"2043:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2057:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2043:19:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":38389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2063:6:47","memberName":"length","nodeType":"MemberAccess","src":"2043:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":38390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2043:30:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":38392,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2077:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2079:12:47","memberName":"maxTreeDepth","nodeType":"MemberAccess","referencedDeclaration":43055,"src":"2077:14:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2043:48:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38400,"nodeType":"IfStatement","src":"2039:132:47","trueBody":{"id":38399,"nodeType":"Block","src":"2093:78:47","statements":[{"errorCall":{"arguments":[{"id":38396,"name":"ERR_CHILD_SUBNET_NOT_ALLOWED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38365,"src":"2131:28:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":38395,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"2114:16:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2114:46:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38398,"nodeType":"RevertStatement","src":"2107:53:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38401,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2185:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2189:5:47","memberName":"value","nodeType":"MemberAccess","src":"2185:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38403,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38383,"src":"2197:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2185:29:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38409,"nodeType":"IfStatement","src":"2181:83:47","trueBody":{"id":38408,"nodeType":"Block","src":"2216:48:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38405,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"2237:14:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2237:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38407,"nodeType":"RevertStatement","src":"2230:23:47"}]}},{"assignments":[38411],"declarations":[{"constant":false,"id":38411,"mutability":"mutable","name":"collateral","nameLocation":"2281:10:47","nodeType":"VariableDeclaration","scope":38484,"src":"2273:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38410,"name":"uint256","nodeType":"ElementaryTypeName","src":"2273:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38416,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38412,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2294:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2298:5:47","memberName":"value","nodeType":"MemberAccess","src":"2294:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":38414,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38383,"src":"2306:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2294:29:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2273:50:47"},{"assignments":[38419],"declarations":[{"constant":false,"id":38419,"mutability":"mutable","name":"subnetId","nameLocation":"2349:8:47","nodeType":"VariableDeclaration","scope":38484,"src":"2333:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":38418,"nodeType":"UserDefinedTypeName","pathNode":{"id":38417,"name":"SubnetID","nameLocations":["2333:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2333:8:47"},"referencedDeclaration":50077,"src":"2333:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":38426,"initialValue":{"arguments":[{"expression":{"id":38423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2389:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2393:6:47","memberName":"sender","nodeType":"MemberAccess","src":"2389:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":38420,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2360:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2362:11:47","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"2360:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2374:14:47","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"2360:28:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":38425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2360:40:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"2333:67:47"},{"assignments":[38428,38431],"declarations":[{"constant":false,"id":38428,"mutability":"mutable","name":"registered","nameLocation":"2417:10:47","nodeType":"VariableDeclaration","scope":38484,"src":"2412:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38427,"name":"bool","nodeType":"ElementaryTypeName","src":"2412:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38431,"mutability":"mutable","name":"subnet","nameLocation":"2444:6:47","nodeType":"VariableDeclaration","scope":38484,"src":"2429:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38430,"nodeType":"UserDefinedTypeName","pathNode":{"id":38429,"name":"Subnet","nameLocations":["2429:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"2429:6:47"},"referencedDeclaration":50091,"src":"2429:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38436,"initialValue":{"arguments":[{"id":38434,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38419,"src":"2475:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":38432,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"2454:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2465:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"2454:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":38435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2454:30:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"2411:73:47"},{"condition":{"id":38437,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38428,"src":"2499:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38442,"nodeType":"IfStatement","src":"2495:73:47","trueBody":{"id":38441,"nodeType":"Block","src":"2511:57:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38438,"name":"AlreadyRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37370,"src":"2532:23:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2532:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38440,"nodeType":"RevertStatement","src":"2525:32:47"}]}},{"expression":{"id":38447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38443,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2578:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2585:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"2578:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38446,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38419,"src":"2590:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"src":"2578:20:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38448,"nodeType":"ExpressionStatement","src":"2578:20:47"},{"expression":{"id":38453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38449,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2608:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2615:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"2608:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38452,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38411,"src":"2623:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2608:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38454,"nodeType":"ExpressionStatement","src":"2608:25:47"},{"expression":{"id":38460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38455,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2643:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2650:12:47","memberName":"genesisEpoch","nodeType":"MemberAccess","referencedDeclaration":50081,"src":"2643:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":38458,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2665:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":38459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2671:6:47","memberName":"number","nodeType":"MemberAccess","src":"2665:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2643:34:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38461,"nodeType":"ExpressionStatement","src":"2643:34:47"},{"expression":{"id":38466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38462,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2687:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2694:10:47","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"2687:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38465,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38383,"src":"2707:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2687:37:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38467,"nodeType":"ExpressionStatement","src":"2687:37:47"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38473,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38419,"src":"2753:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":38474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2762:6:47","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"2753:15:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":38475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2753:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":38468,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2735:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2737:10:47","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":43020,"src":"2735:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":38472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2748:4:47","memberName":"push","nodeType":"MemberAccess","src":"2735:17:47","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":38476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:36:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38477,"nodeType":"ExpressionStatement","src":"2735:36:47"},{"expression":{"id":38482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38478,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2782:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2784:12:47","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":43039,"src":"2782:14:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":38481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2800:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2782:19:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38483,"nodeType":"ExpressionStatement","src":"2782:19:47"}]},"documentation":{"id":38381,"nodeType":"StructuredDocumentation","src":"1534:320:47","text":"@notice register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake\n @dev The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the\n subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds)."},"functionSelector":"f207564e","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"1868:8:47","parameters":{"id":38384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38383,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"1885:17:47","nodeType":"VariableDeclaration","scope":38485,"src":"1877:25:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38382,"name":"uint256","nodeType":"ElementaryTypeName","src":"1877:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1876:27:47"},"returnParameters":{"id":38385,"nodeType":"ParameterList","parameters":[],"src":"1921:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38524,"nodeType":"FunctionDefinition","src":"2879:323:47","nodes":[],"body":{"id":38523,"nodeType":"Block","src":"2916:286:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38489,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2930:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2934:5:47","memberName":"value","nodeType":"MemberAccess","src":"2930:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2930:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38497,"nodeType":"IfStatement","src":"2926:68:47","trueBody":{"id":38496,"nodeType":"Block","src":"2946:48:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38493,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"2967:14:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2967:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38495,"nodeType":"RevertStatement","src":"2960:23:47"}]}},{"assignments":[38499,38502],"declarations":[{"constant":false,"id":38499,"mutability":"mutable","name":"registered","nameLocation":"3010:10:47","nodeType":"VariableDeclaration","scope":38523,"src":"3005:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38498,"name":"bool","nodeType":"ElementaryTypeName","src":"3005:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38502,"mutability":"mutable","name":"subnet","nameLocation":"3037:6:47","nodeType":"VariableDeclaration","scope":38523,"src":"3022:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38501,"nodeType":"UserDefinedTypeName","pathNode":{"id":38500,"name":"Subnet","nameLocations":["3022:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"3022:6:47"},"referencedDeclaration":50091,"src":"3022:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38508,"initialValue":{"arguments":[{"expression":{"id":38505,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3068:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3072:6:47","memberName":"sender","nodeType":"MemberAccess","src":"3068:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38503,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3047:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3058:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"3047:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3047:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3004:75:47"},{"condition":{"id":38510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3094:11:47","subExpression":{"id":38509,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38499,"src":"3095:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38515,"nodeType":"IfStatement","src":"3090:70:47","trueBody":{"id":38514,"nodeType":"Block","src":"3107:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38511,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"3128:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3128:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38513,"nodeType":"RevertStatement","src":"3121:28:47"}]}},{"expression":{"id":38521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38516,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38502,"src":"3170:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3177:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"3170:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":38519,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3186:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3190:5:47","memberName":"value","nodeType":"MemberAccess","src":"3186:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3170:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38522,"nodeType":"ExpressionStatement","src":"3170:25:47"}]},"documentation":{"id":38486,"nodeType":"StructuredDocumentation","src":"2814:60:47","text":"@notice addStake - add collateral for an existing subnet"},"functionSelector":"5a627dbc","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"2888:8:47","parameters":{"id":38487,"nodeType":"ParameterList","parameters":[],"src":"2896:2:47"},"returnParameters":{"id":38488,"nodeType":"ParameterList","parameters":[],"src":"2916:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38585,"nodeType":"FunctionDefinition","src":"3402:494:47","nodes":[],"body":{"id":38584,"nodeType":"Block","src":"3462:434:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38532,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3476:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3486:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3476:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38539,"nodeType":"IfStatement","src":"3472:68:47","trueBody":{"id":38538,"nodeType":"Block","src":"3489:51:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38535,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"3510:17:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3510:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38537,"nodeType":"RevertStatement","src":"3503:26:47"}]}},{"assignments":[38541,38544],"declarations":[{"constant":false,"id":38541,"mutability":"mutable","name":"registered","nameLocation":"3556:10:47","nodeType":"VariableDeclaration","scope":38584,"src":"3551:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38540,"name":"bool","nodeType":"ElementaryTypeName","src":"3551:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38544,"mutability":"mutable","name":"subnet","nameLocation":"3583:6:47","nodeType":"VariableDeclaration","scope":38584,"src":"3568:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38543,"nodeType":"UserDefinedTypeName","pathNode":{"id":38542,"name":"Subnet","nameLocations":["3568:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"3568:6:47"},"referencedDeclaration":50091,"src":"3568:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38550,"initialValue":{"arguments":[{"expression":{"id":38547,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3614:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3618:6:47","memberName":"sender","nodeType":"MemberAccess","src":"3614:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38545,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3593:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3604:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"3593:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3593:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3550:75:47"},{"condition":{"id":38552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3640:11:47","subExpression":{"id":38551,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38541,"src":"3641:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38557,"nodeType":"IfStatement","src":"3636:70:47","trueBody":{"id":38556,"nodeType":"Block","src":"3653:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38553,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"3674:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3674:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38555,"nodeType":"RevertStatement","src":"3667:28:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38558,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38544,"src":"3719:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3726:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"3719:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38560,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3734:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3719:21:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38566,"nodeType":"IfStatement","src":"3715:84:47","trueBody":{"id":38565,"nodeType":"Block","src":"3742:57:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38562,"name":"NotEnoughFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37472,"src":"3763:23:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3763:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38564,"nodeType":"RevertStatement","src":"3756:32:47"}]}},{"expression":{"id":38571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38567,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38544,"src":"3809:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3816:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"3809:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":38570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3825:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3809:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38572,"nodeType":"ExpressionStatement","src":"3809:22:47"},{"expression":{"arguments":[{"id":38581,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3882:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38575,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38544,"src":"3850:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3857:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"3850:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3860:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"3850:18:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3850:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3842:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38573,"name":"address","nodeType":"ElementaryTypeName","src":"3842:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3872:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"3842:39:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38583,"nodeType":"ExpressionStatement","src":"3842:47:47"}]},"documentation":{"id":38525,"nodeType":"StructuredDocumentation","src":"3208:189:47","text":"@notice release collateral for an existing subnet.\n @dev it can be used to release the stake or reward of the validator.\n @param amount The amount of stake to be released."},"functionSelector":"45f54485","implemented":true,"kind":"function","modifiers":[{"id":38530,"kind":"modifierInvocation","modifierName":{"id":38529,"name":"nonReentrant","nameLocations":["3449:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"3449:12:47"},"nodeType":"ModifierInvocation","src":"3449:12:47"}],"name":"releaseStake","nameLocation":"3411:12:47","parameters":{"id":38528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38527,"mutability":"mutable","name":"amount","nameLocation":"3432:6:47","nodeType":"VariableDeclaration","scope":38585,"src":"3424:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38526,"name":"uint256","nodeType":"ElementaryTypeName","src":"3424:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3423:16:47"},"returnParameters":{"id":38531,"nodeType":"ParameterList","parameters":[],"src":"3462:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38631,"nodeType":"FunctionDefinition","src":"4287:378:47","nodes":[],"body":{"id":38630,"nodeType":"Block","src":"4358:307:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38593,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"4372:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4382:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4372:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38600,"nodeType":"IfStatement","src":"4368:68:47","trueBody":{"id":38599,"nodeType":"Block","src":"4385:51:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38596,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"4406:17:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4406:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38598,"nodeType":"RevertStatement","src":"4399:26:47"}]}},{"assignments":[38602,38605],"declarations":[{"constant":false,"id":38602,"mutability":"mutable","name":"registered","nameLocation":"4452:10:47","nodeType":"VariableDeclaration","scope":38630,"src":"4447:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38601,"name":"bool","nodeType":"ElementaryTypeName","src":"4447:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38605,"mutability":"mutable","name":"subnet","nameLocation":"4479:6:47","nodeType":"VariableDeclaration","scope":38630,"src":"4464:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38604,"nodeType":"UserDefinedTypeName","pathNode":{"id":38603,"name":"Subnet","nameLocations":["4464:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"4464:6:47"},"referencedDeclaration":50091,"src":"4464:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38611,"initialValue":{"arguments":[{"expression":{"id":38608,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4510:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4514:6:47","memberName":"sender","nodeType":"MemberAccess","src":"4510:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38606,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4489:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4500:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"4489:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4489:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"4446:75:47"},{"condition":{"id":38613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4535:11:47","subExpression":{"id":38612,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38602,"src":"4536:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38618,"nodeType":"IfStatement","src":"4531:70:47","trueBody":{"id":38617,"nodeType":"Block","src":"4548:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38614,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"4569:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4569:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38616,"nodeType":"RevertStatement","src":"4562:28:47"}]}},{"expression":{"arguments":[{"id":38627,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"4651:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38621,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38605,"src":"4619:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4626:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"4619:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4629:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"4619:18:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4619:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4611:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38619,"name":"address","nodeType":"ElementaryTypeName","src":"4611:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4641:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"4611:39:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38629,"nodeType":"ExpressionStatement","src":"4611:47:47"}]},"documentation":{"id":38586,"nodeType":"StructuredDocumentation","src":"3902:380:47","text":"@notice Releases a reward to the relayer.\n @dev This function sends the specified reward amount to the actor associated with the sender's subnet.\n It checks for subnet registration and also ensures the reward amount is non-zero.\n This function is protected against re-entrancy attack.\n @param amount The amount of the reward to be released."},"functionSelector":"d8e25572","implemented":true,"kind":"function","modifiers":[{"id":38591,"kind":"modifierInvocation","modifierName":{"id":38590,"name":"nonReentrant","nameLocations":["4345:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"4345:12:47"},"nodeType":"ModifierInvocation","src":"4345:12:47"}],"name":"releaseRewardForRelayer","nameLocation":"4296:23:47","parameters":{"id":38589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38588,"mutability":"mutable","name":"amount","nameLocation":"4328:6:47","nodeType":"VariableDeclaration","scope":38631,"src":"4320:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38587,"name":"uint256","nodeType":"ElementaryTypeName","src":"4320:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4319:16:47"},"returnParameters":{"id":38592,"nodeType":"ParameterList","parameters":[],"src":"4358:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38692,"nodeType":"FunctionDefinition","src":"4761:513:47","nodes":[],"body":{"id":38691,"nodeType":"Block","src":"4786:488:47","nodes":[],"statements":[{"assignments":[38636,38639],"declarations":[{"constant":false,"id":38636,"mutability":"mutable","name":"registered","nameLocation":"4802:10:47","nodeType":"VariableDeclaration","scope":38691,"src":"4797:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38635,"name":"bool","nodeType":"ElementaryTypeName","src":"4797:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38639,"mutability":"mutable","name":"subnet","nameLocation":"4829:6:47","nodeType":"VariableDeclaration","scope":38691,"src":"4814:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38638,"nodeType":"UserDefinedTypeName","pathNode":{"id":38637,"name":"Subnet","nameLocations":["4814:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"4814:6:47"},"referencedDeclaration":50091,"src":"4814:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38645,"initialValue":{"arguments":[{"expression":{"id":38642,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4860:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4864:6:47","memberName":"sender","nodeType":"MemberAccess","src":"4860:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38640,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4839:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4850:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"4839:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4839:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"4796:75:47"},{"condition":{"id":38647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4886:11:47","subExpression":{"id":38646,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38636,"src":"4887:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38652,"nodeType":"IfStatement","src":"4882:70:47","trueBody":{"id":38651,"nodeType":"Block","src":"4899:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38648,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"4920:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4920:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38650,"nodeType":"RevertStatement","src":"4913:28:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38653,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38639,"src":"5023:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5030:10:47","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"5023:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":38655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5044:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5023:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38661,"nodeType":"IfStatement","src":"5019:86:47","trueBody":{"id":38660,"nodeType":"Block","src":"5047:58:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38657,"name":"NotEmptySubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37460,"src":"5068:24:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5068:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38659,"nodeType":"RevertStatement","src":"5061:33:47"}]}},{"assignments":[38663],"declarations":[{"constant":false,"id":38663,"mutability":"mutable","name":"stake","nameLocation":"5123:5:47","nodeType":"VariableDeclaration","scope":38691,"src":"5115:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38662,"name":"uint256","nodeType":"ElementaryTypeName","src":"5115:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38666,"initialValue":{"expression":{"id":38664,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38639,"src":"5131:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5138:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"5131:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5115:28:47"},{"expression":{"id":38671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38667,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5154:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5156:12:47","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":43039,"src":"5154:14:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":38670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5172:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5154:19:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38672,"nodeType":"ExpressionStatement","src":"5154:19:47"},{"expression":{"id":38680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5184:36:47","subExpression":{"baseExpression":{"expression":{"id":38673,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5191:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5193:7:47","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42973,"src":"5191:9:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":38679,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38675,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38639,"src":"5201:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5208:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"5201:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5211:6:47","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"5201:16:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":38678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5201:18:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5191:29:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage","typeString":"struct Subnet storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38681,"nodeType":"ExpressionStatement","src":"5184:36:47"},{"expression":{"arguments":[{"id":38688,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38663,"src":"5261:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":38684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5239:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5243:6:47","memberName":"sender","nodeType":"MemberAccess","src":"5239:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5231:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38682,"name":"address","nodeType":"ElementaryTypeName","src":"5231:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5231:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5251:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"5231:29:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5231:36:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38690,"nodeType":"ExpressionStatement","src":"5231:36:47"}]},"documentation":{"id":38632,"nodeType":"StructuredDocumentation","src":"4671:85:47","text":"@notice kill an existing subnet.\n @dev The subnet's balance must be empty."},"functionSelector":"41c0e1b5","implemented":true,"kind":"function","modifiers":[],"name":"kill","nameLocation":"4770:4:47","parameters":{"id":38633,"nodeType":"ParameterList","parameters":[],"src":"4774:2:47"},"returnParameters":{"id":38634,"nodeType":"ParameterList","parameters":[],"src":"4786:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38764,"nodeType":"FunctionDefinition","src":"5707:969:47","nodes":[],"body":{"id":38763,"nodeType":"Block","src":"5790:886:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38702,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5804:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5808:5:47","memberName":"value","nodeType":"MemberAccess","src":"5804:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5817:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5804:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38710,"nodeType":"IfStatement","src":"5800:135:47","trueBody":{"id":38709,"nodeType":"Block","src":"5820:115:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38706,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"5902:20:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5902:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38708,"nodeType":"RevertStatement","src":"5895:29:47"}]}},{"assignments":[38712,null],"declarations":[{"constant":false,"id":38712,"mutability":"mutable","name":"registered","nameLocation":"6001:10:47","nodeType":"VariableDeclaration","scope":38763,"src":"5996:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38711,"name":"bool","nodeType":"ElementaryTypeName","src":"5996:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":38717,"initialValue":{"arguments":[{"id":38715,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38696,"src":"6038:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":38713,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"6017:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6028:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"6017:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":38716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6017:30:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"5995:52:47"},{"condition":{"id":38719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6061:11:47","subExpression":{"id":38718,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38712,"src":"6062:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38724,"nodeType":"IfStatement","src":"6057:70:47","trueBody":{"id":38723,"nodeType":"Block","src":"6074:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38720,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"6095:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6095:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38722,"nodeType":"RevertStatement","src":"6088:28:47"}]}},{"assignments":[38727],"declarations":[{"constant":false,"id":38727,"mutability":"mutable","name":"supplySource","nameLocation":"6213:12:47","nodeType":"VariableDeclaration","scope":38763,"src":"6193:32:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":38726,"nodeType":"UserDefinedTypeName","pathNode":{"id":38725,"name":"SupplySource","nameLocations":["6193:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"6193:12:47"},"referencedDeclaration":50226,"src":"6193:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":38735,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38729,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38696,"src":"6251:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6260:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"6251:17:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6251:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38728,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"6228:22:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":38732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6228:43:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":38733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6272:12:47","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":50886,"src":"6228:56:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":38734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6228:58:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"6193:93:47"},{"expression":{"arguments":[{"expression":{"id":38739,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"6316:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":38740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6327:6:47","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"6316:17:47","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"expression":{"id":38736,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38727,"src":"6296:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":38738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6309:6:47","memberName":"expect","nodeType":"MemberAccess","referencedDeclaration":48181,"src":"6296:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SupplySource_$50226_memory_ptr_$_t_enum$_SupplyKind_$50229_$returns$__$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory,enum SupplyKind) pure"}},"id":38741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6296:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38742,"nodeType":"ExpressionStatement","src":"6296:38:47"},{"assignments":[38745],"declarations":[{"constant":false,"id":38745,"mutability":"mutable","name":"crossMsg","nameLocation":"6361:8:47","nodeType":"VariableDeclaration","scope":38763,"src":"6345:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38744,"nodeType":"UserDefinedTypeName","pathNode":{"id":38743,"name":"CrossMsg","nameLocations":["6345:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"6345:8:47"},"referencedDeclaration":49974,"src":"6345:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38756,"initialValue":{"arguments":[{"id":38748,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38696,"src":"6423:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},{"expression":{"id":38749,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6453:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6457:6:47","memberName":"sender","nodeType":"MemberAccess","src":"6453:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38751,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38699,"src":"6481:2:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"expression":{"id":38752,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6504:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6508:5:47","memberName":"value","nodeType":"MemberAccess","src":"6504:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6532:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38746,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"6372:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$40781_$","typeString":"type(library CrossMsgHelper)"}},"id":38747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6387:13:47","memberName":"createFundMsg","nodeType":"MemberAccess","referencedDeclaration":40574,"src":"6372:28:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":38755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6415:6:47","6445:6:47","6477:2:47","6497:5:47","6527:3:47"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"6372:213:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"6345:240:47"},{"expression":{"arguments":[{"id":38760,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38745,"src":"6660:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38757,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"6632:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6643:16:47","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":42446,"src":"6632:27:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6632:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38762,"nodeType":"ExpressionStatement","src":"6632:37:47"}]},"documentation":{"id":38693,"nodeType":"StructuredDocumentation","src":"5280:422:47","text":"@notice credits the received value to the specified address in the specified child subnet.\n @dev There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero,\n i.e. funding a subnet is free.\n @param subnetId: the destination subnet for the funds.\n @param to: the address to which to credit funds in the destination subnet."},"functionSelector":"18f44b70","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"5716:4:47","parameters":{"id":38700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38696,"mutability":"mutable","name":"subnetId","nameLocation":"5739:8:47","nodeType":"VariableDeclaration","scope":38764,"src":"5721:26:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":38695,"nodeType":"UserDefinedTypeName","pathNode":{"id":38694,"name":"SubnetID","nameLocations":["5721:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"5721:8:47"},"referencedDeclaration":50077,"src":"5721:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":38699,"mutability":"mutable","name":"to","nameLocation":"5769:2:47","nodeType":"VariableDeclaration","scope":38764,"src":"5749:22:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":38698,"nodeType":"UserDefinedTypeName","pathNode":{"id":38697,"name":"FvmAddress","nameLocations":["5749:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"5749:10:47"},"referencedDeclaration":49998,"src":"5749:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"5720:52:47"},"returnParameters":{"id":38701,"nodeType":"ParameterList","parameters":[],"src":"5790:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38822,"nodeType":"FunctionDefinition","src":"7265:1025:47","nodes":[],"body":{"id":38821,"nodeType":"Block","src":"7378:912:47","nodes":[],"statements":[{"assignments":[38780],"declarations":[{"constant":false,"id":38780,"mutability":"mutable","name":"supplySource","nameLocation":"7662:12:47","nodeType":"VariableDeclaration","scope":38821,"src":"7642:32:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":38779,"nodeType":"UserDefinedTypeName","pathNode":{"id":38778,"name":"SupplySource","nameLocations":["7642:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7642:12:47"},"referencedDeclaration":50226,"src":"7642:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":38788,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38782,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38768,"src":"7700:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7709:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"7700:17:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7700:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38781,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"7677:22:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":38785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7677:43:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":38786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7721:12:47","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":50886,"src":"7677:56:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":38787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7677:58:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7642:93:47"},{"expression":{"arguments":[{"expression":{"id":38792,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"7765:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":38793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7776:5:47","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"7765:16:47","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"expression":{"id":38789,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38780,"src":"7745:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":38791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7758:6:47","memberName":"expect","nodeType":"MemberAccess","referencedDeclaration":48181,"src":"7745:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SupplySource_$50226_memory_ptr_$_t_enum$_SupplyKind_$50229_$returns$__$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory,enum SupplyKind) pure"}},"id":38794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7745:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38795,"nodeType":"ExpressionStatement","src":"7745:37:47"},{"expression":{"arguments":[{"id":38799,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38773,"src":"7870:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38796,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38780,"src":"7844:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":38798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7857:4:47","memberName":"lock","nodeType":"MemberAccess","referencedDeclaration":48218,"src":"7844:17:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SupplySource_$50226_memory_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory,uint256)"}},"id":38800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["7863:5:47"],"names":["value"],"nodeType":"FunctionCall","src":"7844:34:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38801,"nodeType":"ExpressionStatement","src":"7844:34:47"},{"assignments":[38804],"declarations":[{"constant":false,"id":38804,"mutability":"mutable","name":"crossMsg","nameLocation":"7978:8:47","nodeType":"VariableDeclaration","scope":38821,"src":"7962:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38803,"nodeType":"UserDefinedTypeName","pathNode":{"id":38802,"name":"CrossMsg","nameLocations":["7962:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"7962:8:47"},"referencedDeclaration":49974,"src":"7962:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38814,"initialValue":{"arguments":[{"id":38807,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38768,"src":"8040:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},{"expression":{"id":38808,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8070:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8074:6:47","memberName":"sender","nodeType":"MemberAccess","src":"8070:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38810,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38771,"src":"8098:2:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"id":38811,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38773,"src":"8121:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8146:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38805,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"7989:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$40781_$","typeString":"type(library CrossMsgHelper)"}},"id":38806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8004:13:47","memberName":"createFundMsg","nodeType":"MemberAccess","referencedDeclaration":40574,"src":"7989:28:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":38813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8032:6:47","8062:6:47","8094:2:47","8114:5:47","8141:3:47"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"7989:210:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"7962:237:47"},{"expression":{"arguments":[{"id":38818,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38804,"src":"8274:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38815,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"8246:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8257:16:47","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":42446,"src":"8246:27:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8246:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38820,"nodeType":"ExpressionStatement","src":"8246:37:47"}]},"documentation":{"id":38765,"nodeType":"StructuredDocumentation","src":"6682:578:47","text":"@notice Sends funds to a specified subnet receiver using ERC20 tokens.\n @dev This function locks the amount of ERC20 tokens into custody and then mints the supply in the specified subnet.\n It checks if the subnet's supply strategy is ERC20 and if not, the operation is reverted.\n It allows for free injection of funds into a subnet and is protected against reentrancy.\n @param subnetId The ID of the subnet where the funds will be sent to.\n @param to The funded address.\n @param amount The amount of ERC20 tokens to be sent."},"functionSelector":"0517e1aa","implemented":true,"kind":"function","modifiers":[{"id":38776,"kind":"modifierInvocation","modifierName":{"id":38775,"name":"nonReentrant","nameLocations":["7365:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"7365:12:47"},"nodeType":"ModifierInvocation","src":"7365:12:47"}],"name":"fundWithToken","nameLocation":"7274:13:47","parameters":{"id":38774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38768,"mutability":"mutable","name":"subnetId","nameLocation":"7306:8:47","nodeType":"VariableDeclaration","scope":38822,"src":"7288:26:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":38767,"nodeType":"UserDefinedTypeName","pathNode":{"id":38766,"name":"SubnetID","nameLocations":["7288:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"7288:8:47"},"referencedDeclaration":50077,"src":"7288:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":38771,"mutability":"mutable","name":"to","nameLocation":"7336:2:47","nodeType":"VariableDeclaration","scope":38822,"src":"7316:22:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":38770,"nodeType":"UserDefinedTypeName","pathNode":{"id":38769,"name":"FvmAddress","nameLocations":["7316:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"7316:10:47"},"referencedDeclaration":49998,"src":"7316:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":38773,"mutability":"mutable","name":"amount","nameLocation":"7348:6:47","nodeType":"VariableDeclaration","scope":38822,"src":"7340:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38772,"name":"uint256","nodeType":"ElementaryTypeName","src":"7340:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7287:68:47"},"returnParameters":{"id":38777,"nodeType":"ParameterList","parameters":[],"src":"7378:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38869,"nodeType":"FunctionDefinition","src":"8641:631:47","nodes":[],"body":{"id":38868,"nodeType":"Block","src":"8699:573:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38829,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8713:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8717:5:47","memberName":"value","nodeType":"MemberAccess","src":"8713:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8726:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8713:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38837,"nodeType":"IfStatement","src":"8709:138:47","trueBody":{"id":38836,"nodeType":"Block","src":"8729:118:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38833,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"8814:20:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38835,"nodeType":"RevertStatement","src":"8807:29:47"}]}},{"assignments":[38840],"declarations":[{"constant":false,"id":38840,"mutability":"mutable","name":"crossMsg","nameLocation":"8872:8:47","nodeType":"VariableDeclaration","scope":38868,"src":"8856:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38839,"nodeType":"UserDefinedTypeName","pathNode":{"id":38838,"name":"CrossMsg","nameLocations":["8856:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8856:8:47"},"referencedDeclaration":49974,"src":"8856:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38852,"initialValue":{"arguments":[{"expression":{"id":38843,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"8937:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8939:11:47","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"8937:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},{"expression":{"id":38845,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8972:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8976:6:47","memberName":"sender","nodeType":"MemberAccess","src":"8972:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38847,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38826,"src":"9000:2:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"expression":{"id":38848,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9023:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9027:5:47","memberName":"value","nodeType":"MemberAccess","src":"9023:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9051:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38841,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"8883:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$40781_$","typeString":"type(library CrossMsgHelper)"}},"id":38842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8898:16:47","memberName":"createReleaseMsg","nodeType":"MemberAccess","referencedDeclaration":40531,"src":"8883:31:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":38851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8929:6:47","8964:6:47","8996:2:47","9016:5:47","9046:3:47"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"8883:230:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"8856:257:47"},{"expression":{"arguments":[{"id":38856,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38840,"src":"9153:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38853,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"9124:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9135:17:47","memberName":"commitBottomUpMsg","nodeType":"MemberAccess","referencedDeclaration":42612,"src":"9124:28:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38858,"nodeType":"ExpressionStatement","src":"9124:38:47"},{"expression":{"arguments":[{"expression":{"id":38864,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9255:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9259:5:47","memberName":"value","nodeType":"MemberAccess","src":"9255:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":38861,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"9226:17:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9218:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38859,"name":"address","nodeType":"ElementaryTypeName","src":"9218:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9218:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9245:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"9218:36:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9218:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38867,"nodeType":"ExpressionStatement","src":"9218:47:47"}]},"documentation":{"id":38823,"nodeType":"StructuredDocumentation","src":"8296:340:47","text":"@notice release() burns the received value locally in subnet and commits a bottom-up message to release the assets in the parent.\n The local supply of a subnet is always the native coin, so this method doesn't have to deal with tokens.\n @param to: the address to which to credit funds in the parent subnet."},"functionSelector":"6b2c1eef","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"8650:7:47","parameters":{"id":38827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38826,"mutability":"mutable","name":"to","nameLocation":"8678:2:47","nodeType":"VariableDeclaration","scope":38869,"src":"8658:22:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":38825,"nodeType":"UserDefinedTypeName","pathNode":{"id":38824,"name":"FvmAddress","nameLocations":["8658:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8658:10:47"},"referencedDeclaration":49998,"src":"8658:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"8657:24:47"},"returnParameters":{"id":38828,"nodeType":"ParameterList","parameters":[],"src":"8699:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":38366,"name":"GatewayActorModifiers","nameLocations":["1360:21:47"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"1360:21:47"},"id":38367,"nodeType":"InheritanceSpecifier","src":"1360:21:47"},{"baseName":{"id":38368,"name":"ReentrancyGuard","nameLocations":["1383:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":44013,"src":"1383:15:47"},"id":38369,"nodeType":"InheritanceSpecifier","src":"1383:15:47"}],"canonicalName":"GatewayManagerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[38870,44013,43137],"name":"GatewayManagerFacet","nameLocation":"1337:19:47","scope":38871,"usedErrors":[1134,1138,32118,32461,32466,32469,37370,37374,37402,37426,37460,37470,37472,37482,37526,43961,48094]}],"license":"MIT OR Apache-2.0"},"id":47} \ No newline at end of file +{"abi":[{"type":"function","name":"addStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fund","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fundWithToken","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"register","inputs":[{"name":"genesisCircSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"release","inputs":[{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"releaseRewardForRelayer","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"releaseStake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyRegisteredSubnet","inputs":[]},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidCrossMsgValue","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NotEmptySubnetCircSupply","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughFundsToRelease","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UnexpectedSupplySource","inputs":[]}],"bytecode":{"object":"0x60808060405234610016576126cb908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c63430008130033","sourceMap":"1328:7946:47:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":1409,"length":20},{"start":3590,"length":20},{"start":4164,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":226,"length":20},{"start":1099,"length":20},{"start":3157,"length":20},{"start":3444,"length":20},{"start":3994,"length":20},{"start":7044,"length":20},{"start":9443,"length":20},{"start":9540,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c63430008130033","sourceMap":"1328:7946:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2043:19;1328:7946;;;;;;;;;;;;2077:14;1328:7946;;-1:-1:-1;2043:48:47;2039:132;;2185:9;;:29;2181:83;;2360:40;2294:29;2185:9;;2294:29;:::i;:::-;1288:37;;;:::i;:::-;2360:28;1328:7946;2360:28;1328:7946;;;1288:37;;;;;;;2360:40;;2389:10;2360:40;1328:7946;2360:40;;;:::i;:::-;;;;;;;;;;;1328:7946;2360:40;;;1328:7946;2454:30;;;;:::i;:::-;2495:73;;;1328:7946;2578:9;;1288:37;-1:-1:-1;;;;;1288:37:47;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946;1288:37;;1328:7946;1288:37;;1328:7946;1288:37;;;;;;;;;;;;2687:17;1288:37;;;;2665:12;2643:19;;;1288:37;2687:17;1288:37;1328:7946;;1288:37;;;;;;;;2753:17;;;1328:7946;2753:17;;1288:37;;;;;;:::i;:::-;2753:17;;;;;;;;;1328:7946;2753:17;;;1288:37;;;2735:12;1288:37;;-1:-1:-1;;;1288:37:47;;;;;;;;2735:12;1288:37;;;;;;2735:12;1328:7946;1288:37;;;;2782:14;1288:37;;2782:19;-1:-1:-1;;;;;1288:37:47;;;;;;;2782:19;:::i;:::-;1288:37;;;-1:-1:-1;;;;1288:37:47;;;;;2782:14;1288:37;1328:7946;1288:37;1328:7946;;;;1288:37;;1328:7946;1288:37;;1328:7946;1288:37;;1328:7946;;;;;;;;1288:37;1328:7946;;2753:17;;;;;;;;;;;;;;;;;:::i;:::-;;;1288:37;;;;;2753:17;;;;;1288:37;1328:7946;;;2753:17;;;;;;1328:7946;;1288:37;1328:7946;1288:37;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;2495:73;1328:7946;;-1:-1:-1;;;2532:25:47;;1328:7946;;2532:25;2360:40;;;;;;;1328:7946;2360:40;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;2181:83;1328:7946;;-1:-1:-1;;;2237:16:47;;1328:7946;;2237:16;2039:132;1328:7946;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;1288:37;1328:7946;;2114:46;;;;;;;;1328:7946;2114:46;;1288:37;;;;;;:::i;:::-;2114:46;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;247:48:68;;1328:7946:47;;;;582:20:68;578:50;;1328:7946:47;1288:37;;4372:11;;4368:68;;4489:32;4510:10;4489:32;:::i;:::-;4535:11;;4531:70;;4619:9;1288:37;1328:7946;1288:37;4619:9;;1288:37;:::i;:::-;1328:7946;;1288:37;;;;;;;4619:20;;;1328:7946;4619:20;;1288:37;;;;;;:::i;:::-;4619:20;:18;;:20;;;;;;;1328:7946;4619:20;;;1328:7946;;1288:37;4651:6;1288:37;-1:-1:-1;;;;;1288:37:47;;4651:6;:::i;:::-;1288:37;1328:7946;4619:20;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946;;;;;1288:37;;4651:6;1288:37;;:::i;:::-;4619:20;;;;;;;;;;;4531:70;1328:7946;;-1:-1:-1;;;4569:21:47;;1328:7946;;4569:21;4368:68;1328:7946;;-1:-1:-1;;;4406:19:47;;1328:7946;;4406:19;578:50:68;1328:7946:47;;-1:-1:-1;;;611:17:68;;1328:7946:47;;611:17:68;1328:7946:47;-1:-1:-1;;1328:7946:47;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;8713:9;:14;8709:138;;1328:7946;;-1:-1:-1;;;8883:230:47;;1328:7946;;8883:230;;1328:7946;;;;;;;;;;;;;;;;:::i;:::-;8972:10;;1328:7946;;;1288:37;1328:7946;;;;;;;;;;;:::i;:::-;8713:9;1328:7946;;;;;;;;;8883:230;:14;;:230;;;;;;;1328:7946;8883:230;;;1328:7946;;10399:24:63;1328:7946:47;;;;;;10385:12:63;-1:-1:-1;;;;;10385:12:63;1288:37:47;1328:7946;13838:1:63;1328:7946:47;;;;;;;1288:37;;;;;;;;;;;;;;10504:15:63;1328:7946:47;;10529:20:63;-1:-1:-1;;;;;1328:7946:47;;;1288:37;10475:20:63;1328:7946:47;10475:20:63;;:26;1288:37:47;10529:20:63;:::i;:::-;1328:7946:47;;;;;;;;10504:15:63;1328:7946:47;;;;2943:20:63;1328:7946:47;;;;;2989:17:63;;;;1328:7946:47;;2989:22:63;10700:1745;2989:17;;;1328:7946:47;;;10875:29:63;1328:7946:47;8937:13;1328:7946;;;;10700:1745:63;1288:37:47;10875:10:63;:29;:::i;:::-;8713:9:47;13330:21:1;:31;13326:63;;1328:7946:47;8713:9;;;;1288:37;13419:35:1;;;;:::i;:::-;;13468:8;13464:33;;1328:7946:47;13464:33:1;1328:7946:47;;-1:-1:-1;;;13485:12:1;;1328:7946:47;;13485:12:1;13326:63;1328:7946:47;;-1:-1:-1;;;13370:19:1;;1328:7946:47;;13370:19:1;1328:7946:47;-1:-1:-1;;;;;8937:13:47;1288:37;;-1:-1:-1;;;;;1288:37:47;;;;;;;1328:7946;13838:1:63;1328:7946:47;;;:::i;:::-;;;10700:1745:63;-1:-1:-1;;1328:7946:47;11079:10:63;;1328:7946:47;11100:25:63;1288:37:47;-1:-1:-1;;;;;1288:37:47;11079:46:63;1328:7946:47;;;11079:10:63;;1328:7946:47;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1328:7946:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;1288:37;;:::i;:::-;;;10385:12:63;1328:7946:47;11298:185:63;;1288:37:47;1328:7946;11298:185:63;;1288:37:47;1328:7946;11572:13:63;;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;:::i;:::-;11298:185:63;1328:7946:47;11298:185:63;;1328:7946:47;;;;;;11298:185:63;;1328:7946:47;;;;;;;;;;;;1288:37;;;;;1328:7946;1288:37;;1328:7946;;;;;;;;;1288:37;;1328:7946;;;;;;;;;10385:12:63;;;;;;11843:38;10385:12;;11843:38;;;;1328:7946:47;;11079:10:63;;1328:7946:47;;;;;11079:10:63;;1328:7946:47;12121:29:63;11079:10;;12121:29;:::i;:::-;1328:7946:47;11298:185:63;;1328:7946:47;;;2943:20:63;1328:7946:47;;;;;4242:14:63;;-1:-1:-1;;;;;1288:37:47;;;-1:-1:-1;;;;;1288:37:47;;;;;;;1328:7946;13838:1:63;1288:37:47;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;1328:7946;1288:37;;;;;:::i;:::-;;;1328:7946;1288:37;1328:7946;;1288:37;1328:7946;1288:37;;;;;;-1:-1:-1;;;1328:7946:47;11298:185:63;;1328:7946:47;2989:17:63;4266:13;;1288:37:47;-1:-1:-1;1328:7946:47;11298:185:63;;4330:10;1288:37:47;1328:7946;4586:6:63;;;;1328:7946:47;4373:13:63;;;;;;11075:1360;;;;10700:1745;;4362:9;11298:185;4586:26;4598:13;13838:1;11298:185;1328:7946:47;11298:185:63;;4598:10;:13;:::i;:::-;;4586:26;;:::i;:::-;1328:7946:47;4362:9:63;;1288:37:47;;;-1:-1:-1;;;;;1288:37:47;;;;;1328:7946;1288:37;;;;13838:1:63;1288:37:47;;;1328:7946;1288:37;1328:7946;1288:37;;1328:7946;1288:37;;;;;1328:7946;11079:10:63;;1328:7946:47;1288:37;1328:7946;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;1288:37;1328:7946;2943:20:63;1328:7946:47;;;;;;;;:::i;:::-;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;13838:1:63;1328:7946:47;;;;;;;;;;;;:::i;:::-;1288:37;;1328:7946;;;;;;;;;;11561:9:63;11079:10;11610:32;11079:10;11629:13;13838:1;11079:10;1328:7946:47;11079:10:63;;11629:13;:::i;:::-;11298:185;1328:7946:47;11298:185:63;;11610:13;1328:7946:47;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;1288:37;;1328:7946;;;;;:::i;:::-;;;;1288:37;1328:7946;;;;;;;1288:37;2943:20:63;1328:7946:47;;1288:37;-1:-1:-1;;;;;1288:37:47;;1328:7946;;;1288:37;1328:7946;1288:37;-1:-1:-1;;;;;;1288:37:47;1328:7946;;;;;;;;;:::i;:::-;;;;1288:37;1328:7946;;;;;;;1288:37;;;1328:7946;;;;;;;;;11610:32:63;;;;:::i;:::-;;;:::i;:::-;;1328:7946:47;11561:9:63;;1328:7946:47;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11075:1360:63;1328:7946:47;12391:29:63;11079:10;;12391:29;:::i;:::-;10700:1745;;1328:7946:47;;;;;;;;;;;;8883:230;;;;;;1328:7946;8883:230;;;;;;:::i;:::-;;;;;:::i;:::-;;;;8709:138;1328:7946;;-1:-1:-1;;;8814:22:47;;1328:7946;;8814:22;1328:7946;;;-1:-1:-1;;1328:7946:47;;;;2930:9;:14;2926:68;;3047:32;3068:10;3047:32;:::i;:::-;3094:11;;3090:70;;3170:25;2930:9;1328:7946;;3170:25;:::i;:::-;1288:37;;1328:7946;;;;;;;;;;;;;;;;247:48:68;;1328:7946:47;;;;582:20:68;578:50;;1328:7946:47;1288:37;;3476:11;;3472:68;;3593:32;3614:10;3593:32;:::i;:::-;3640:11;;3636:70;;1328:7946;;3719:21;;;3715:84;;1288:37;1328:7946;1288:37;3809:22;;;;;;:::i;:::-;1288:37;;3850:9;1288:37;:::i;3715:84::-;1328:7946;;-1:-1:-1;;;3763:25:47;;1328:7946;;3763:25;1328:7946;;;;;;-1:-1:-1;;1328:7946:47;;;;4839:32;4860:10;4839:32;:::i;:::-;4886:11;;4882:70;;5023:17;;;1328:7946;5019:86;;1328:7946;;5154:14;1288:37;-1:-1:-1;;;;;1328:7946:47;;1288:37;;;;;1328:7946;;;;;;-1:-1:-1;;;;1288:37:47;;;;;;;;-1:-1:-1;;;1288:37:47;;5154:14;1288:37;;;;;1328:7946;5201:9;1288:37;:::i;:::-;1328:7946;;1288:37;;;;5201:18;;;;;;;;;1328:7946;5201:18;;1288:37;;;;;;:::i;:::-;5201:18;:16;;:18;;;;;;;1328:7946;5201:18;;;1328:7946;;5261:5;1328:7946;;;;;;;;;;;;1288:37;;1328:7946;5172:1;1328:7946;;1288:37;1328:7946;5023:17;1328:7946;;1288:37;1328:7946;;;;;;;;;;;;:::i;:::-;4860:10;5261:5;:::i;:::-;1328:7946;5201:18;;;;;;;;;;;;;;;;:::i;:::-;;;1288:37;;;;;5261:5;5201:18;;;;;;;5019:86;1328:7946;;-1:-1:-1;;;5068:26:47;;1328:7946;;5068:26;1328:7946;-1:-1:-1;;1328:7946:47;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:9;:14;5800:135;;6017:30;1328:7946;;;;:::i;:::-;6017:30;:::i;:::-;6061:11;;6057:70;;1288:37;1328:7946;;;;;:::i;1288:37::-;6251:19;:17;;:19;;;;;;;1328:7946;6251:19;;;1328:7946;-1:-1:-1;1328:7946:47;;;-1:-1:-1;;;6228:58:47;;1328:7946;;;;;;;-1:-1:-1;;;;;1288:37:47;6228:58;;;;;;;1328:7946;6228:58;;;1328:7946;;;;;;;;;2130:87:76;;6372:213:47;1328:7946;;;;;1288:37;;;;;;;;6372:213;;5804:9;1328:7946;;;6453:10;;6372:213;1328:7946;6372:213;;;:::i;:::-;;:14;;:213;;;;;;6660:8;6372:213;1328:7946;6372:213;;;1328:7946;6660:8;;:::i;6372:213::-;;;;;;1328:7946;6372:213;;;;;;:::i;:::-;;;;2130:87:76;1328:7946:47;;-1:-1:-1;;;2182:24:76;;1328:7946:47;;2182:24:76;1328:7946:47;;;;;;;;;;;;6228:58;;;;1328:7946;6228:58;1328:7946;6228:58;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;6251:19;;;1328:7946;6251:19;;;;;;;;;1328:7946;6251:19;;;:::i;:::-;;;1328:7946;;;;;1288:37;1328:7946;1288:37;;:::i;:::-;6251:19;;;;;;;-1:-1:-1;6251:19:47;;1328:7946;;;;-1:-1:-1;;1328:7946:47;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:48:68;;1328:7946:47;;;;582:20:68;578:50;;1288:37:47;1328:7946;1288:37;;;1328:7946;;;;:::i;:::-;;;1288:37;;;;7700:19;;1328:7946;;;7700:19;;;;1328:7946;7700:19;;1288:37;;;;;;:::i;:::-;7700:19;:17;;:19;;;;;;;1328:7946;7700:19;;;1328:7946;;;;1288:37;;;7677:58;;1328:7946;1288:37;1328:7946;1288:37;1328:7946;1288:37;;;;;;;7677:58;;;;;;;1328:7946;7677:58;;;1328:7946;;;;;;;;;;;2134:25:76;2130:87;;1328:7946:47;;;;;;;;;2395:37:76;2391:205;;1328:7946:47;;;;;;;;;7989:210;1328:7946;;1288:37;;;;;;;;7989:210;;1328:7946;;8070:10;;7989:210;1328:7946;7989:210;;;:::i;:::-;;:14;;:210;;;;;;;1328:7946;7989:210;8274:8;7989:210;;;;;8274:8;;:::i;7989:210::-;;;;;;;;;;;;;:::i;:::-;;;;2391:205:76;2470:25;;1288:37:47;;1328:7946;;;1780:53:28;;;1288:37:47;;;;1780:53:28;;2540:10:76;1780:53:28;;;1288:37:47;2564:4:76;1328:7946:47;;;1288:37;1328:7946;;;;;;1780:53:28;;1288:37:47;1328:7946;;;;;;;;;;;;;;4574:31:29;4622:69;;1328:7946:47;;;;;4574:31:29;;;;;:::i;:::-;4622:69;;;:::i;:::-;1288:37:47;;5134:22:28;;;;:57;;;;2391:205:76;5130:135:28;;;;;2391:205:76;;;;;5130:135:28;1328:7946:47;;5214:40:28;;;;;;1328:7946:47;5214:40:28;;1288:37:47;5214:40:28;5134:57;5161:30;;;;;;;;1328:7946:47;;;;;5161:30:28;;1328:7946:47;:::i;:::-;5160:31:28;5134:57;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;7677:58;;;;1328:7946;7677:58;1328:7946;7677:58;;;;;;;:::i;:::-;;;;7700:19;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946;;;;1288:37;;;:::i;:::-;7700:19;;;;;;;;578:50:68;-1:-1:-1;;;611:17:68;;1328:7946:47;;611:17:68;1328:7946:47;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;:::o;:::-;-1:-1:-1;;;;;1328:7946:47;;;;;;-1:-1:-1;;1328:7946:47;;;;:::o;1288:37::-;;;;;;;;-1:-1:-1;;1288:37:47;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1328:7946;;-1:-1:-1;;1328:7946:47;1288:37;;;:::o;:::-;;;;;;;;;;:::o;:::-;;1328:7946;;;;;:::i;:::-;1288:37;-1:-1:-1;;;;;11347:13:63;1288:37:47;;;;;1328:7946;1288:37;1328:7946;1288:37;1328:7946;1288:37;;;;;;;;;-1:-1:-1;1288:37:47;;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;-1:-1:-1;1288:37:47;;;;;;;;;1328:7946;;;;:::i;:::-;1288:37;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;1328:7946;1288:37;1328:7946;1288:37;;1328:7946;;;;1288:37;;;;;;;;;-1:-1:-1;1288:37:47;;-1:-1:-1;1288:37:47;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;:::o;:::-;-1:-1:-1;;;;;1288:37:47;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;:::o;:::-;;;;;;;;;;;1328:7946;;;;;:::i;:::-;1288:37;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;:::i;:::-;1328:7946;;1288:37;1328:7946;;;;:::i;:::-;1288:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1288:37:47;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;1288:37:47;;;;;;;1328:7946;;;1288:37;;;;;;;:::o;:::-;;;1328:7946;1288:37;;1328:7946;1288:37;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;;1288:37:47;;;;1328:7946;;1288:37;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;1288:37:47;;-1:-1:-1;1288:37:47;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;:::o;1328:7946::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1328:7946:47;;;;:::o;:::-;;;:::o;13246:258:1:-;13330:21;;:31;13326:63;;13419:35;;;;;;;;-1:-1:-1;;;;;1288:37:47;13419:35:1;;;;:::i;:::-;;13468:8;13464:33;;13246:258::o;1328:7946:47:-;;1288:37;-1:-1:-1;;;;;1288:37:47;;;;;;1328:7946::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;1328:7946::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1288:37;;1328:7946;;1288:37;:::i;:::-;1328:7946;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1288:37;1328:7946;;;1288:37;:::i;:::-;1328:7946;;;;;;;;-1:-1:-1;;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;1288:37;;;;1328:7946;-1:-1:-1;1328:7946:47;;;;;;;;-1:-1:-1;;1328:7946:47;;;;:::o;:::-;;;;;;;;;;;;1288:37;-1:-1:-1;;;;;1328:7946:47;;;;;:::i;:::-;1288:37;1328:7946;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;1328:7946;;;;;;;;;-1:-1:-1;;;;;;;;1288:37:47;1328:7946;;;1288:37;1328:7946;;;;;;;;;;;1288:37;;1328:7946;;1288:37;1328:7946;:::i;:::-;;;;;;;;:::o;:::-;1288:37;;;;;1328:7946;1288:37;;;;;;1328:7946;;;:::i;:::-;1288:37;;;;;;;1328:7946;;;;;;;;;-1:-1:-1;;;;;8937:13:47;1328:7946;1288:37;;;;1328:7946;;;;;;;;;1288:37;;;;;1328:7946;-1:-1:-1;1288:37:47;;1328:7946;-1:-1:-1;1328:7946:47;;;;;;;;;;;;:::o;:::-;1288:37;;-1:-1:-1;;;;;1288:37:47;;;;;;;1328:7946;1288:37;;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;1288:37;1328:7946;;;1288:37;;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;9363:689:63:-;1328:7946:47;9542:23:63;:20;;;;:23;;:32;:37;1328:7946:47;;;;;;1288:37;;;;9542:52:63;;;;;;1328:7946:47;;;;;;:::i;:::-;;;;;;;;;;;3946:45:64;;;1328:7946:47;;;;:::i;:::-;9542:52:63;;;;;;;;;;;;;;9363:689;9648:19;;;;:::i;:::-;9682:11;;9678:70;;9780:19;;;;1328:7946:47;1288:37;9780:19:63;;;1288:37:47;;-1:-1:-1;;;;;9883:16:63;1288:37:47;;;9810:20:63;:26;:20;;:26;1288:37:47;9883:16:63;:::i;:::-;1288:37:47;;-1:-1:-1;;;;;1288:37:47;;;;;9909:47:63;:17;9930:20;;;:26;1328:7946:47;9909:17:63;;1328:7946:47;;;9909:47:63;:::i;:::-;1288:37:47;;1328:7946;;1288:37;;;;;;;;9999:21:63;;;9542:52;9999:21;;1288:37:47;1328:7946;1288:37;;;;:::i;:::-;9999:21:63;;;;;;;;;;;;;9363:689;1328:7946:47;9972:73:63;1328:7946:47;;;;;;;;;;;;1288:37;;;;;1328:7946;;;;;:::i;:::-;9972:73:63;;;9363:689::o;9999:21::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946:47;;;;1288:37;;1328:7946;1288:37;9972:73:63;1288:37:47;;;:::i;:::-;9999:21:63;;;;1328:7946:47;;;9999:21:63;;;;;;1328:7946:47;;1288:37;1328:7946;;1288:37;;;;9678:70:63;1328:7946:47;;-1:-1:-1;;;9716:21:63;;9542:52;;9716:21;9542:52;;;;;;;;;;;;;;:::i;:::-;;;;;;1328:7946:47;;1288:37;1328:7946;;1288:37;;;;1328:7946;;;;;;;;-1:-1:-1;1288:37:47;1328:7946;1288:37;-1:-1:-1;1288:37:47;1328:7946;;;;-1:-1:-1;1328:7946:47;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;1288:37;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;1328:7946;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;1328:7946;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1328:7946:47;;;1288:37;1328:7946;;;;;;;;;;;;;;;;1288:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1328:7946;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;1288:37;;;1328:7946;;;;;;;;;;;;:::i;:::-;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;-1:-1:-1;;;;1328:7946:47;;;1288:37;1328:7946;;;;;;;;;;;;;;;;1288:37;1328:7946;;;;;;;1288:37;;;;1328:7946;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;1288:37;1328:7946;;1288:37;;;;1328:7946;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;1288:37;;;;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;;;;;1328:7946;;;;1288:37;1328:7946;;;;;;;;;;1288:37;1328:7946;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;1288:37;;;;;;1328:7946;;-1:-1:-1;1288:37:47;1328:7946;-1:-1:-1;;1328:7946:47;;1288:37;1328:7946;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;;-1:-1:-1;;1328:7946:47;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;;;;;1328:7946;;;;1288:37;1328:7946;;;;;;;;;1288:37;1328:7946;;;;:::i;:::-;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;1288:37;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;1288:37;;;;;;1328:7946;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;;-1:-1:-1;;1328:7946:47;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;1328:7946;1288:37;;;1328:7946;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1288:37;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;1328:7946;;;;1288:37;;;;;;;;1328:7946;1288:37;1328:7946;;;;;:::i;:::-;;;;-1:-1:-1;1328:7946:47;;;;:::o;:::-;1288:37;1328:7946;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::o;:::-;1288:37;;1328:7946;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;1328:7946:47;;;;;;:::i;:::-;1288:37;;;;1328:7946;;;;;;;;;;;1288:37;1328:7946;1288:37;;;1328:7946;;;;;;;;;:::i;:::-;1288:37;;;;-1:-1:-1;1288:37:47;;;;-1:-1:-1;1288:37:47;1328:7946;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;1288:37;1328:7946;;;;;1288:37;;;1328:7946;;;;;;;;;;;;;;1288:37;1328:7946;;;;;:::i;:::-;;;;;;:::i;:::-;1288:37;;1328:7946;;1288:37;1328:7946;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;1288:37;;;;;;1328:7946;;;1288:37;;1328:7946;;;;;;;;;;:::i;:::-;;;1288:37::o;1328:7946::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;:::i;:::-;-1:-1:-1;1288:37:47;;;;;;;1328:7946;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1288:37:47;;;1328:7946;;;;;;;;;;;;;;:::o;12666:372:63:-;-1:-1:-1;;;;;1288:37:47;;12849:19:63;12845:78;;3946:45:64;12959:35:63;1288:37:47;;;:::i;:::-;1328:7946;;-1:-1:-1;;;12959:35:63;;1328:7946:47;;;;;12959:35:63;;;;:::i;:::-;;:28;;:35;;;;;;13012:19;12959:35;3946:45:64;12959:35:63;;;12666:372;13012:19;;:::i;:::-;13005:26;;12666:372::o;12959:35::-;;;;;;;;;;;;:::i;:::-;;;;12845:78;1328:7946:47;;-1:-1:-1;;;12891:21:63;;;;;13234:272;1288:37:47;13443:15:63;1328:7946:47;;;1288:37;;;;13443:17:63;;;;;;;;;;;;1288:37:47;;;;;;:::i;:::-;13443:17:63;;;;;;;;;;3946:45:64;13443:17:63;;;13234:272;1328:7946:47;;1288:37;1328:7946;3946:45:64;1328:7946:47;3946:45:64;1328:7946:47;;;;3946:45:64;1328:7946:47;13480:9:63;1288:37:47;13443:17:63;13480:9;;1288:37:47;:::i;:::-;1328:7946;;;1288:37;;;;;;;;13480:19:63;;;13443:17;13480:19;;1288:37:47;;;;;;:::i;:::-;13480:19:63;;;;;;;;;3946:45:64;13480:19:63;;;13234:272;13479:20;;;;13234:272;:::o;13480:19::-;;;;;;;;;;;;;:::i;:::-;;;1328:7946:47;;;;;;;;:::i;:::-;13480:19:63;;;;;;;;;13443:17;;;;;;;;;;;;;;;:::i;:::-;;;1288:37:47;;;;-1:-1:-1;1288:37:47;;13443:17:63;;;;;;;6737:692:29;;6952:471;;;1288:37:47;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;1328:7946:47;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;1288:37:47;;;7261:24:29;;;1288:37:47;1328:7946;;7261:24:29;6952:471;-1:-1:-1;1288:37:47;;8828:21:29;:17;;9000:142;;;;;;8824:411;1328:7946:47;;-1:-1:-1;;;8628:17:29;;;;","linkReferences":{"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":1381,"length":20},{"start":3562,"length":20},{"start":4136,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":198,"length":20},{"start":1071,"length":20},{"start":3129,"length":20},{"start":3416,"length":20},{"start":3966,"length":20},{"start":7016,"length":20},{"start":9415,"length":20},{"start":9512,"length":20}]}}},"methodIdentifiers":{"addStake()":"5a627dbc","fund((uint64,address[]),(uint8,bytes))":"18f44b70","fundWithToken((uint64,address[]),(uint8,bytes),uint256)":"0517e1aa","kill()":"41c0e1b5","register(uint256)":"f207564e","release((uint8,bytes))":"6b2c1eef","releaseRewardForRelayer(uint256)":"d8e25572","releaseStake(uint256)":"45f54485"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEmptySubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedSupplySource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundWithToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"genesisCircSupply\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"fund((uint64,address[]),(uint8,bytes))\":{\"details\":\"There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, i.e. funding a subnet is free.\",\"params\":{\"subnetId\":\": the destination subnet for the funds.\",\"to\":\": the address to which to credit funds in the destination subnet.\"}},\"fundWithToken((uint64,address[]),(uint8,bytes),uint256)\":{\"details\":\"This function locks the amount of ERC20 tokens into custody and then mints the supply in the specified subnet. It checks if the subnet's supply strategy is ERC20 and if not, the operation is reverted. It allows for free injection of funds into a subnet and is protected against reentrancy.\",\"params\":{\"amount\":\"The amount of ERC20 tokens to be sent.\",\"subnetId\":\"The ID of the subnet where the funds will be sent to.\",\"to\":\"The funded address.\"}},\"kill()\":{\"details\":\"The subnet's balance must be empty.\"},\"register(uint256)\":{\"details\":\"The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds).\"},\"release((uint8,bytes))\":{\"params\":{\"to\":\": the address to which to credit funds in the parent subnet.\"}},\"releaseRewardForRelayer(uint256)\":{\"details\":\"This function sends the specified reward amount to the actor associated with the sender's subnet. It checks for subnet registration and also ensures the reward amount is non-zero. This function is protected against re-entrancy attack.\",\"params\":{\"amount\":\"The amount of the reward to be released.\"}},\"releaseStake(uint256)\":{\"details\":\"it can be used to release the stake or reward of the validator.\",\"params\":{\"amount\":\"The amount of stake to be released.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"addStake - add collateral for an existing subnet\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"credits the received value to the specified address in the specified child subnet.\"},\"fundWithToken((uint64,address[]),(uint8,bytes),uint256)\":{\"notice\":\"Sends funds to a specified subnet receiver using ERC20 tokens.\"},\"kill()\":{\"notice\":\"kill an existing subnet.\"},\"register(uint256)\":{\"notice\":\"register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake\"},\"release((uint8,bytes))\":{\"notice\":\"release() burns the received value locally in subnet and commits a bottom-up message to release the assets in the parent. The local supply of a subnet is always the native coin, so this method doesn't have to deal with tokens.\"},\"releaseRewardForRelayer(uint256)\":{\"notice\":\"Releases a reward to the relayer.\"},\"releaseStake(uint256)\":{\"notice\":\"release collateral for an existing subnet.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayManagerFacet.sol\":\"GatewayManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyRegisteredSubnet"},{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidCrossMsgValue"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NotEmptySubnetCircSupply"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughFundsToRelease"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UnexpectedSupplySource"},{"inputs":[],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"fund"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fundWithToken"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[{"internalType":"uint256","name":"genesisCircSupply","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register"},{"inputs":[{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseStake"}],"devdoc":{"kind":"dev","methods":{"fund((uint64,address[]),(uint8,bytes))":{"details":"There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, i.e. funding a subnet is free.","params":{"subnetId":": the destination subnet for the funds.","to":": the address to which to credit funds in the destination subnet."}},"fundWithToken((uint64,address[]),(uint8,bytes),uint256)":{"details":"This function locks the amount of ERC20 tokens into custody and then mints the supply in the specified subnet. It checks if the subnet's supply strategy is ERC20 and if not, the operation is reverted. It allows for free injection of funds into a subnet and is protected against reentrancy.","params":{"amount":"The amount of ERC20 tokens to be sent.","subnetId":"The ID of the subnet where the funds will be sent to.","to":"The funded address."}},"kill()":{"details":"The subnet's balance must be empty."},"register(uint256)":{"details":"The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds)."},"release((uint8,bytes))":{"params":{"to":": the address to which to credit funds in the parent subnet."}},"releaseRewardForRelayer(uint256)":{"details":"This function sends the specified reward amount to the actor associated with the sender's subnet. It checks for subnet registration and also ensures the reward amount is non-zero. This function is protected against re-entrancy attack.","params":{"amount":"The amount of the reward to be released."}},"releaseStake(uint256)":{"details":"it can be used to release the stake or reward of the validator.","params":{"amount":"The amount of stake to be released."}}},"version":1},"userdoc":{"kind":"user","methods":{"addStake()":{"notice":"addStake - add collateral for an existing subnet"},"fund((uint64,address[]),(uint8,bytes))":{"notice":"credits the received value to the specified address in the specified child subnet."},"fundWithToken((uint64,address[]),(uint8,bytes),uint256)":{"notice":"Sends funds to a specified subnet receiver using ERC20 tokens."},"kill()":{"notice":"kill an existing subnet."},"register(uint256)":{"notice":"register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake"},"release((uint8,bytes))":{"notice":"release() burns the received value locally in subnet and commits a bottom-up message to release the assets in the parent. The local supply of a subnet is always the native coin, so this method doesn't have to deal with tokens."},"releaseRewardForRelayer(uint256)":{"notice":"Releases a reward to the relayer."},"releaseStake(uint256)":{"notice":"release collateral for an existing subnet."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayManagerFacet.sol":"GatewayManagerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayManagerFacet.sol","id":38871,"exportedSymbols":{"Address":[32838],"AlreadyRegisteredSubnet":[37370],"BURNT_FUNDS_ACTOR":[36861],"CannotReleaseZero":[37374],"CrossMsg":[49927],"CrossMsgHelper":[40725],"ERR_CHILD_SUBNET_NOT_ALLOWED":[38365],"FilAddress":[1428],"FvmAddress":[49951],"GatewayActorModifiers":[43081],"GatewayManagerFacet":[38870],"IERC20":[31999],"InvalidCrossMsgValue":[37426],"LibGateway":[42888],"Membership":[50171],"MethodNotAllowed":[37526],"NotEmptySubnetCircSupply":[37460],"NotEnoughCollateral":[37466],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotRegisteredSubnet":[37482],"ReentrancyGuard":[43966],"Subnet":[50044],"SubnetActorGetterFacet":[51235],"SubnetID":[50030],"SubnetIDHelper":[48025],"SupplyKind":[50182],"SupplySource":[50179],"SupplySourceHelper":[48351]},"nodeType":"SourceUnit","src":"46:9229:47","nodes":[{"id":38319,"nodeType":"PragmaDirective","src":"46:23:47","nodes":[],"literals":["solidity","0.8",".19"]},{"id":38321,"nodeType":"ImportDirective","src":"71:72:47","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":43082,"symbolAliases":[{"foreign":{"id":38320,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43081,"src":"79:21:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38323,"nodeType":"ImportDirective","src":"144:76:47","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":38322,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"152:22:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38325,"nodeType":"ImportDirective","src":"221:61:47","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":38324,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"229:17:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38327,"nodeType":"ImportDirective","src":"283:49:47","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":38326,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"291:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38329,"nodeType":"ImportDirective","src":"333:53:47","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":38328,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"341:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38333,"nodeType":"ImportDirective","src":"387:69:47","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":38330,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"395:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38331,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"405:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38332,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"413:12:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38336,"nodeType":"ImportDirective","src":"457:61:47","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":38334,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50171,"src":"465:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38335,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"477:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38346,"nodeType":"ImportDirective","src":"519:232:47","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":38337,"name":"AlreadyRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37370,"src":"527:23:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38338,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"552:17:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38339,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"571:16:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38340,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"589:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38341,"name":"NotEnoughFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37472,"src":"605:23:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38342,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37466,"src":"630:19:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38343,"name":"NotEmptySubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37460,"src":"651:24:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38344,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"677:19:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38345,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"698:20:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38348,"nodeType":"ImportDirective","src":"752:49:47","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":42889,"symbolAliases":[{"foreign":{"id":38347,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"760:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38350,"nodeType":"ImportDirective","src":"802:57:47","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":38349,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"810:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38352,"nodeType":"ImportDirective","src":"860:57:47","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":38351,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"868:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38354,"nodeType":"ImportDirective","src":"918:56:47","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":38353,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"926:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38356,"nodeType":"ImportDirective","src":"975:62:47","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":43967,"symbolAliases":[{"foreign":{"id":38355,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43966,"src":"983:15:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38358,"nodeType":"ImportDirective","src":"1038:69:47","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":32000,"symbolAliases":[{"foreign":{"id":38357,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"1046:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38360,"nodeType":"ImportDirective","src":"1108:65:47","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":38359,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"1116:7:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38362,"nodeType":"ImportDirective","src":"1174:65:47","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":38361,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"1182:18:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38365,"nodeType":"VariableDeclaration","src":"1241:84:47","nodes":[],"constant":true,"mutability":"constant","name":"ERR_CHILD_SUBNET_NOT_ALLOWED","nameLocation":"1257:28:47","scope":38871,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38363,"name":"string","nodeType":"ElementaryTypeName","src":"1241:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e657473","id":38364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1288:37:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_134e6199f75369598df130f403db97d3616e5f01478ffecec2de7460d74db52c","typeString":"literal_string \"Subnet does not allow child subnets\""},"value":"Subnet does not allow child subnets"},"visibility":"internal"},{"id":38870,"nodeType":"ContractDefinition","src":"1328:7946:47","nodes":[{"id":38372,"nodeType":"UsingForDirective","src":"1405:37:47","nodes":[],"global":false,"libraryName":{"id":38370,"name":"FilAddress","nameLocations":["1411:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"1411:10:47"},"typeName":{"id":38371,"name":"address","nodeType":"ElementaryTypeName","src":"1426:15:47","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":38376,"nodeType":"UsingForDirective","src":"1447:34:47","nodes":[],"global":false,"libraryName":{"id":38373,"name":"SubnetIDHelper","nameLocations":["1453:14:47"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"1453:14:47"},"typeName":{"id":38375,"nodeType":"UserDefinedTypeName","pathNode":{"id":38374,"name":"SubnetID","nameLocations":["1472:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1472:8:47"},"referencedDeclaration":50030,"src":"1472:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":38380,"nodeType":"UsingForDirective","src":"1486:42:47","nodes":[],"global":false,"libraryName":{"id":38377,"name":"SupplySourceHelper","nameLocations":["1492:18:47"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"1492:18:47"},"typeName":{"id":38379,"nodeType":"UserDefinedTypeName","pathNode":{"id":38378,"name":"SupplySource","nameLocations":["1515:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"1515:12:47"},"referencedDeclaration":50179,"src":"1515:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":38485,"nodeType":"FunctionDefinition","src":"1859:949:47","nodes":[],"body":{"id":38484,"nodeType":"Block","src":"1921:887:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"id":38386,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2043:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2045:11:47","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"2043:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":38388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2057:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2043:19:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":38389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2063:6:47","memberName":"length","nodeType":"MemberAccess","src":"2043:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":38390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2043:30:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":38392,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2077:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2079:12:47","memberName":"maxTreeDepth","nodeType":"MemberAccess","referencedDeclaration":42999,"src":"2077:14:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2043:48:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38400,"nodeType":"IfStatement","src":"2039:132:47","trueBody":{"id":38399,"nodeType":"Block","src":"2093:78:47","statements":[{"errorCall":{"arguments":[{"id":38396,"name":"ERR_CHILD_SUBNET_NOT_ALLOWED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38365,"src":"2131:28:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":38395,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"2114:16:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2114:46:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38398,"nodeType":"RevertStatement","src":"2107:53:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38401,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2185:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2189:5:47","memberName":"value","nodeType":"MemberAccess","src":"2185:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38403,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38383,"src":"2197:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2185:29:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38409,"nodeType":"IfStatement","src":"2181:83:47","trueBody":{"id":38408,"nodeType":"Block","src":"2216:48:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38405,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"2237:14:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2237:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38407,"nodeType":"RevertStatement","src":"2230:23:47"}]}},{"assignments":[38411],"declarations":[{"constant":false,"id":38411,"mutability":"mutable","name":"collateral","nameLocation":"2281:10:47","nodeType":"VariableDeclaration","scope":38484,"src":"2273:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38410,"name":"uint256","nodeType":"ElementaryTypeName","src":"2273:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38416,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38412,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2294:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2298:5:47","memberName":"value","nodeType":"MemberAccess","src":"2294:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":38414,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38383,"src":"2306:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2294:29:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2273:50:47"},{"assignments":[38419],"declarations":[{"constant":false,"id":38419,"mutability":"mutable","name":"subnetId","nameLocation":"2349:8:47","nodeType":"VariableDeclaration","scope":38484,"src":"2333:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":38418,"nodeType":"UserDefinedTypeName","pathNode":{"id":38417,"name":"SubnetID","nameLocations":["2333:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"2333:8:47"},"referencedDeclaration":50030,"src":"2333:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":38426,"initialValue":{"arguments":[{"expression":{"id":38423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2389:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2393:6:47","memberName":"sender","nodeType":"MemberAccess","src":"2389:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":38420,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2360:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2362:11:47","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"2360:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":38422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2374:14:47","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"2360:28:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":38425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2360:40:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"2333:67:47"},{"assignments":[38428,38431],"declarations":[{"constant":false,"id":38428,"mutability":"mutable","name":"registered","nameLocation":"2417:10:47","nodeType":"VariableDeclaration","scope":38484,"src":"2412:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38427,"name":"bool","nodeType":"ElementaryTypeName","src":"2412:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38431,"mutability":"mutable","name":"subnet","nameLocation":"2444:6:47","nodeType":"VariableDeclaration","scope":38484,"src":"2429:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38430,"nodeType":"UserDefinedTypeName","pathNode":{"id":38429,"name":"Subnet","nameLocations":["2429:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"2429:6:47"},"referencedDeclaration":50044,"src":"2429:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38436,"initialValue":{"arguments":[{"id":38434,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38419,"src":"2475:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":38432,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"2454:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":38433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2465:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42636,"src":"2454:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":38435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2454:30:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"2411:73:47"},{"condition":{"id":38437,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38428,"src":"2499:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38442,"nodeType":"IfStatement","src":"2495:73:47","trueBody":{"id":38441,"nodeType":"Block","src":"2511:57:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38438,"name":"AlreadyRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37370,"src":"2532:23:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2532:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38440,"nodeType":"RevertStatement","src":"2525:32:47"}]}},{"expression":{"id":38447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38443,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2578:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2585:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"2578:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38446,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38419,"src":"2590:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"src":"2578:20:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":38448,"nodeType":"ExpressionStatement","src":"2578:20:47"},{"expression":{"id":38453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38449,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2608:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2615:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"2608:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38452,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38411,"src":"2623:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2608:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38454,"nodeType":"ExpressionStatement","src":"2608:25:47"},{"expression":{"id":38460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38455,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2643:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2650:12:47","memberName":"genesisEpoch","nodeType":"MemberAccess","referencedDeclaration":50034,"src":"2643:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":38458,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2665:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":38459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2671:6:47","memberName":"number","nodeType":"MemberAccess","src":"2665:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2643:34:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38461,"nodeType":"ExpressionStatement","src":"2643:34:47"},{"expression":{"id":38466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38462,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2687:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2694:10:47","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"2687:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38465,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38383,"src":"2707:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2687:37:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38467,"nodeType":"ExpressionStatement","src":"2687:37:47"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38473,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38419,"src":"2753:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":38474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2762:6:47","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"2753:15:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":38475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2753:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":38468,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2735:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2737:10:47","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":42964,"src":"2735:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":38472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2748:4:47","memberName":"push","nodeType":"MemberAccess","src":"2735:17:47","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":38476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:36:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38477,"nodeType":"ExpressionStatement","src":"2735:36:47"},{"expression":{"id":38482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38478,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2782:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2784:12:47","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":42983,"src":"2782:14:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":38481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2800:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2782:19:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38483,"nodeType":"ExpressionStatement","src":"2782:19:47"}]},"documentation":{"id":38381,"nodeType":"StructuredDocumentation","src":"1534:320:47","text":"@notice register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake\n @dev The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the\n subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds)."},"functionSelector":"f207564e","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"1868:8:47","parameters":{"id":38384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38383,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"1885:17:47","nodeType":"VariableDeclaration","scope":38485,"src":"1877:25:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38382,"name":"uint256","nodeType":"ElementaryTypeName","src":"1877:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1876:27:47"},"returnParameters":{"id":38385,"nodeType":"ParameterList","parameters":[],"src":"1921:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38524,"nodeType":"FunctionDefinition","src":"2879:323:47","nodes":[],"body":{"id":38523,"nodeType":"Block","src":"2916:286:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38489,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2930:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2934:5:47","memberName":"value","nodeType":"MemberAccess","src":"2930:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2930:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38497,"nodeType":"IfStatement","src":"2926:68:47","trueBody":{"id":38496,"nodeType":"Block","src":"2946:48:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38493,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"2967:14:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2967:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38495,"nodeType":"RevertStatement","src":"2960:23:47"}]}},{"assignments":[38499,38502],"declarations":[{"constant":false,"id":38499,"mutability":"mutable","name":"registered","nameLocation":"3010:10:47","nodeType":"VariableDeclaration","scope":38523,"src":"3005:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38498,"name":"bool","nodeType":"ElementaryTypeName","src":"3005:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38502,"mutability":"mutable","name":"subnet","nameLocation":"3037:6:47","nodeType":"VariableDeclaration","scope":38523,"src":"3022:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38501,"nodeType":"UserDefinedTypeName","pathNode":{"id":38500,"name":"Subnet","nameLocations":["3022:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"3022:6:47"},"referencedDeclaration":50044,"src":"3022:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38508,"initialValue":{"arguments":[{"expression":{"id":38505,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3068:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3072:6:47","memberName":"sender","nodeType":"MemberAccess","src":"3068:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38503,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"3047:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":38504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3058:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42599,"src":"3047:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3047:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3004:75:47"},{"condition":{"id":38510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3094:11:47","subExpression":{"id":38509,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38499,"src":"3095:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38515,"nodeType":"IfStatement","src":"3090:70:47","trueBody":{"id":38514,"nodeType":"Block","src":"3107:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38511,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"3128:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3128:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38513,"nodeType":"RevertStatement","src":"3121:28:47"}]}},{"expression":{"id":38521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38516,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38502,"src":"3170:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3177:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"3170:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":38519,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3186:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3190:5:47","memberName":"value","nodeType":"MemberAccess","src":"3186:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3170:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38522,"nodeType":"ExpressionStatement","src":"3170:25:47"}]},"documentation":{"id":38486,"nodeType":"StructuredDocumentation","src":"2814:60:47","text":"@notice addStake - add collateral for an existing subnet"},"functionSelector":"5a627dbc","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"2888:8:47","parameters":{"id":38487,"nodeType":"ParameterList","parameters":[],"src":"2896:2:47"},"returnParameters":{"id":38488,"nodeType":"ParameterList","parameters":[],"src":"2916:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38585,"nodeType":"FunctionDefinition","src":"3402:494:47","nodes":[],"body":{"id":38584,"nodeType":"Block","src":"3462:434:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38532,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3476:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3486:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3476:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38539,"nodeType":"IfStatement","src":"3472:68:47","trueBody":{"id":38538,"nodeType":"Block","src":"3489:51:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38535,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"3510:17:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3510:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38537,"nodeType":"RevertStatement","src":"3503:26:47"}]}},{"assignments":[38541,38544],"declarations":[{"constant":false,"id":38541,"mutability":"mutable","name":"registered","nameLocation":"3556:10:47","nodeType":"VariableDeclaration","scope":38584,"src":"3551:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38540,"name":"bool","nodeType":"ElementaryTypeName","src":"3551:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38544,"mutability":"mutable","name":"subnet","nameLocation":"3583:6:47","nodeType":"VariableDeclaration","scope":38584,"src":"3568:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38543,"nodeType":"UserDefinedTypeName","pathNode":{"id":38542,"name":"Subnet","nameLocations":["3568:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"3568:6:47"},"referencedDeclaration":50044,"src":"3568:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38550,"initialValue":{"arguments":[{"expression":{"id":38547,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3614:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3618:6:47","memberName":"sender","nodeType":"MemberAccess","src":"3614:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38545,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"3593:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":38546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3604:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42599,"src":"3593:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3593:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3550:75:47"},{"condition":{"id":38552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3640:11:47","subExpression":{"id":38551,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38541,"src":"3641:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38557,"nodeType":"IfStatement","src":"3636:70:47","trueBody":{"id":38556,"nodeType":"Block","src":"3653:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38553,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"3674:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3674:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38555,"nodeType":"RevertStatement","src":"3667:28:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38558,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38544,"src":"3719:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3726:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"3719:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38560,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3734:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3719:21:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38566,"nodeType":"IfStatement","src":"3715:84:47","trueBody":{"id":38565,"nodeType":"Block","src":"3742:57:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38562,"name":"NotEnoughFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37472,"src":"3763:23:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3763:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38564,"nodeType":"RevertStatement","src":"3756:32:47"}]}},{"expression":{"id":38571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38567,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38544,"src":"3809:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3816:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"3809:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":38570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3825:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3809:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38572,"nodeType":"ExpressionStatement","src":"3809:22:47"},{"expression":{"arguments":[{"id":38581,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3882:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38575,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38544,"src":"3850:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3857:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"3850:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":38577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3860:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47718,"src":"3850:18:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3850:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3842:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38573,"name":"address","nodeType":"ElementaryTypeName","src":"3842:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3872:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"3842:39:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38583,"nodeType":"ExpressionStatement","src":"3842:47:47"}]},"documentation":{"id":38525,"nodeType":"StructuredDocumentation","src":"3208:189:47","text":"@notice release collateral for an existing subnet.\n @dev it can be used to release the stake or reward of the validator.\n @param amount The amount of stake to be released."},"functionSelector":"45f54485","implemented":true,"kind":"function","modifiers":[{"id":38530,"kind":"modifierInvocation","modifierName":{"id":38529,"name":"nonReentrant","nameLocations":["3449:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":43950,"src":"3449:12:47"},"nodeType":"ModifierInvocation","src":"3449:12:47"}],"name":"releaseStake","nameLocation":"3411:12:47","parameters":{"id":38528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38527,"mutability":"mutable","name":"amount","nameLocation":"3432:6:47","nodeType":"VariableDeclaration","scope":38585,"src":"3424:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38526,"name":"uint256","nodeType":"ElementaryTypeName","src":"3424:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3423:16:47"},"returnParameters":{"id":38531,"nodeType":"ParameterList","parameters":[],"src":"3462:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38631,"nodeType":"FunctionDefinition","src":"4287:378:47","nodes":[],"body":{"id":38630,"nodeType":"Block","src":"4358:307:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38593,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"4372:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4382:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4372:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38600,"nodeType":"IfStatement","src":"4368:68:47","trueBody":{"id":38599,"nodeType":"Block","src":"4385:51:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38596,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"4406:17:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4406:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38598,"nodeType":"RevertStatement","src":"4399:26:47"}]}},{"assignments":[38602,38605],"declarations":[{"constant":false,"id":38602,"mutability":"mutable","name":"registered","nameLocation":"4452:10:47","nodeType":"VariableDeclaration","scope":38630,"src":"4447:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38601,"name":"bool","nodeType":"ElementaryTypeName","src":"4447:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38605,"mutability":"mutable","name":"subnet","nameLocation":"4479:6:47","nodeType":"VariableDeclaration","scope":38630,"src":"4464:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38604,"nodeType":"UserDefinedTypeName","pathNode":{"id":38603,"name":"Subnet","nameLocations":["4464:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"4464:6:47"},"referencedDeclaration":50044,"src":"4464:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38611,"initialValue":{"arguments":[{"expression":{"id":38608,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4510:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4514:6:47","memberName":"sender","nodeType":"MemberAccess","src":"4510:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38606,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"4489:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":38607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4500:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42599,"src":"4489:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4489:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"4446:75:47"},{"condition":{"id":38613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4535:11:47","subExpression":{"id":38612,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38602,"src":"4536:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38618,"nodeType":"IfStatement","src":"4531:70:47","trueBody":{"id":38617,"nodeType":"Block","src":"4548:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38614,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"4569:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4569:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38616,"nodeType":"RevertStatement","src":"4562:28:47"}]}},{"expression":{"arguments":[{"id":38627,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"4651:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38621,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38605,"src":"4619:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4626:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"4619:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":38623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4629:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47718,"src":"4619:18:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4619:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4611:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38619,"name":"address","nodeType":"ElementaryTypeName","src":"4611:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4641:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"4611:39:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38629,"nodeType":"ExpressionStatement","src":"4611:47:47"}]},"documentation":{"id":38586,"nodeType":"StructuredDocumentation","src":"3902:380:47","text":"@notice Releases a reward to the relayer.\n @dev This function sends the specified reward amount to the actor associated with the sender's subnet.\n It checks for subnet registration and also ensures the reward amount is non-zero.\n This function is protected against re-entrancy attack.\n @param amount The amount of the reward to be released."},"functionSelector":"d8e25572","implemented":true,"kind":"function","modifiers":[{"id":38591,"kind":"modifierInvocation","modifierName":{"id":38590,"name":"nonReentrant","nameLocations":["4345:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":43950,"src":"4345:12:47"},"nodeType":"ModifierInvocation","src":"4345:12:47"}],"name":"releaseRewardForRelayer","nameLocation":"4296:23:47","parameters":{"id":38589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38588,"mutability":"mutable","name":"amount","nameLocation":"4328:6:47","nodeType":"VariableDeclaration","scope":38631,"src":"4320:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38587,"name":"uint256","nodeType":"ElementaryTypeName","src":"4320:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4319:16:47"},"returnParameters":{"id":38592,"nodeType":"ParameterList","parameters":[],"src":"4358:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38692,"nodeType":"FunctionDefinition","src":"4761:513:47","nodes":[],"body":{"id":38691,"nodeType":"Block","src":"4786:488:47","nodes":[],"statements":[{"assignments":[38636,38639],"declarations":[{"constant":false,"id":38636,"mutability":"mutable","name":"registered","nameLocation":"4802:10:47","nodeType":"VariableDeclaration","scope":38691,"src":"4797:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38635,"name":"bool","nodeType":"ElementaryTypeName","src":"4797:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38639,"mutability":"mutable","name":"subnet","nameLocation":"4829:6:47","nodeType":"VariableDeclaration","scope":38691,"src":"4814:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38638,"nodeType":"UserDefinedTypeName","pathNode":{"id":38637,"name":"Subnet","nameLocations":["4814:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"4814:6:47"},"referencedDeclaration":50044,"src":"4814:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38645,"initialValue":{"arguments":[{"expression":{"id":38642,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4860:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4864:6:47","memberName":"sender","nodeType":"MemberAccess","src":"4860:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38640,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"4839:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":38641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4850:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42599,"src":"4839:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4839:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"4796:75:47"},{"condition":{"id":38647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4886:11:47","subExpression":{"id":38646,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38636,"src":"4887:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38652,"nodeType":"IfStatement","src":"4882:70:47","trueBody":{"id":38651,"nodeType":"Block","src":"4899:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38648,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"4920:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4920:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38650,"nodeType":"RevertStatement","src":"4913:28:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38653,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38639,"src":"5023:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5030:10:47","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"5023:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":38655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5044:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5023:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38661,"nodeType":"IfStatement","src":"5019:86:47","trueBody":{"id":38660,"nodeType":"Block","src":"5047:58:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38657,"name":"NotEmptySubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37460,"src":"5068:24:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5068:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38659,"nodeType":"RevertStatement","src":"5061:33:47"}]}},{"assignments":[38663],"declarations":[{"constant":false,"id":38663,"mutability":"mutable","name":"stake","nameLocation":"5123:5:47","nodeType":"VariableDeclaration","scope":38691,"src":"5115:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38662,"name":"uint256","nodeType":"ElementaryTypeName","src":"5115:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38666,"initialValue":{"expression":{"id":38664,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38639,"src":"5131:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5138:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"5131:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5115:28:47"},{"expression":{"id":38671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38667,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"5154:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5156:12:47","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":42983,"src":"5154:14:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":38670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5172:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5154:19:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38672,"nodeType":"ExpressionStatement","src":"5154:19:47"},{"expression":{"id":38680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5184:36:47","subExpression":{"baseExpression":{"expression":{"id":38673,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"5191:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5193:7:47","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42917,"src":"5191:9:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50044_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":38679,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38675,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38639,"src":"5201:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5208:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"5201:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":38677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5211:6:47","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"5201:16:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":38678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5201:18:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5191:29:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage","typeString":"struct Subnet storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38681,"nodeType":"ExpressionStatement","src":"5184:36:47"},{"expression":{"arguments":[{"id":38688,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38663,"src":"5261:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":38684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5239:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5243:6:47","memberName":"sender","nodeType":"MemberAccess","src":"5239:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5231:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38682,"name":"address","nodeType":"ElementaryTypeName","src":"5231:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5231:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5251:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"5231:29:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5231:36:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38690,"nodeType":"ExpressionStatement","src":"5231:36:47"}]},"documentation":{"id":38632,"nodeType":"StructuredDocumentation","src":"4671:85:47","text":"@notice kill an existing subnet.\n @dev The subnet's balance must be empty."},"functionSelector":"41c0e1b5","implemented":true,"kind":"function","modifiers":[],"name":"kill","nameLocation":"4770:4:47","parameters":{"id":38633,"nodeType":"ParameterList","parameters":[],"src":"4774:2:47"},"returnParameters":{"id":38634,"nodeType":"ParameterList","parameters":[],"src":"4786:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38764,"nodeType":"FunctionDefinition","src":"5707:969:47","nodes":[],"body":{"id":38763,"nodeType":"Block","src":"5790:886:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38702,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5804:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5808:5:47","memberName":"value","nodeType":"MemberAccess","src":"5804:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5817:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5804:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38710,"nodeType":"IfStatement","src":"5800:135:47","trueBody":{"id":38709,"nodeType":"Block","src":"5820:115:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38706,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"5902:20:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5902:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38708,"nodeType":"RevertStatement","src":"5895:29:47"}]}},{"assignments":[38712,null],"declarations":[{"constant":false,"id":38712,"mutability":"mutable","name":"registered","nameLocation":"6001:10:47","nodeType":"VariableDeclaration","scope":38763,"src":"5996:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38711,"name":"bool","nodeType":"ElementaryTypeName","src":"5996:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":38717,"initialValue":{"arguments":[{"id":38715,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38696,"src":"6038:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":38713,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"6017:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":38714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6028:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42636,"src":"6017:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":38716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6017:30:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"5995:52:47"},{"condition":{"id":38719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6061:11:47","subExpression":{"id":38718,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38712,"src":"6062:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38724,"nodeType":"IfStatement","src":"6057:70:47","trueBody":{"id":38723,"nodeType":"Block","src":"6074:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38720,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"6095:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6095:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38722,"nodeType":"RevertStatement","src":"6088:28:47"}]}},{"assignments":[38727],"declarations":[{"constant":false,"id":38727,"mutability":"mutable","name":"supplySource","nameLocation":"6213:12:47","nodeType":"VariableDeclaration","scope":38763,"src":"6193:32:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":38726,"nodeType":"UserDefinedTypeName","pathNode":{"id":38725,"name":"SupplySource","nameLocations":["6193:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"6193:12:47"},"referencedDeclaration":50179,"src":"6193:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":38735,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38729,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38696,"src":"6251:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6260:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47718,"src":"6251:17:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6251:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38728,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"6228:22:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":38732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6228:43:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":38733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6272:12:47","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":51234,"src":"6228:56:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":38734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6228:58:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"6193:93:47"},{"expression":{"arguments":[{"expression":{"id":38739,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"6316:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":38740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6327:6:47","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"6316:17:47","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}],"expression":{"id":38736,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38727,"src":"6296:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":38738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6309:6:47","memberName":"expect","nodeType":"MemberAccess","referencedDeclaration":48134,"src":"6296:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SupplySource_$50179_memory_ptr_$_t_enum$_SupplyKind_$50182_$returns$__$attached_to$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function (struct SupplySource memory,enum SupplyKind) pure"}},"id":38741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6296:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38742,"nodeType":"ExpressionStatement","src":"6296:38:47"},{"assignments":[38745],"declarations":[{"constant":false,"id":38745,"mutability":"mutable","name":"crossMsg","nameLocation":"6361:8:47","nodeType":"VariableDeclaration","scope":38763,"src":"6345:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38744,"nodeType":"UserDefinedTypeName","pathNode":{"id":38743,"name":"CrossMsg","nameLocations":["6345:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"6345:8:47"},"referencedDeclaration":49927,"src":"6345:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38756,"initialValue":{"arguments":[{"id":38748,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38696,"src":"6423:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},{"expression":{"id":38749,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6453:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6457:6:47","memberName":"sender","nodeType":"MemberAccess","src":"6453:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38751,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38699,"src":"6481:2:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"expression":{"id":38752,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6504:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6508:5:47","memberName":"value","nodeType":"MemberAccess","src":"6504:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6532:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38746,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"6372:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$40725_$","typeString":"type(library CrossMsgHelper)"}},"id":38747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6387:13:47","memberName":"createFundMsg","nodeType":"MemberAccess","referencedDeclaration":40518,"src":"6372:28:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$49951_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$49927_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":38755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6415:6:47","6445:6:47","6477:2:47","6497:5:47","6527:3:47"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"6372:213:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"6345:240:47"},{"expression":{"arguments":[{"id":38760,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38745,"src":"6660:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38757,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"6632:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":38759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6643:16:47","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":42390,"src":"6632:27:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6632:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38762,"nodeType":"ExpressionStatement","src":"6632:37:47"}]},"documentation":{"id":38693,"nodeType":"StructuredDocumentation","src":"5280:422:47","text":"@notice credits the received value to the specified address in the specified child subnet.\n @dev There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero,\n i.e. funding a subnet is free.\n @param subnetId: the destination subnet for the funds.\n @param to: the address to which to credit funds in the destination subnet."},"functionSelector":"18f44b70","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"5716:4:47","parameters":{"id":38700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38696,"mutability":"mutable","name":"subnetId","nameLocation":"5739:8:47","nodeType":"VariableDeclaration","scope":38764,"src":"5721:26:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":38695,"nodeType":"UserDefinedTypeName","pathNode":{"id":38694,"name":"SubnetID","nameLocations":["5721:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"5721:8:47"},"referencedDeclaration":50030,"src":"5721:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":38699,"mutability":"mutable","name":"to","nameLocation":"5769:2:47","nodeType":"VariableDeclaration","scope":38764,"src":"5749:22:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":38698,"nodeType":"UserDefinedTypeName","pathNode":{"id":38697,"name":"FvmAddress","nameLocations":["5749:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"5749:10:47"},"referencedDeclaration":49951,"src":"5749:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"5720:52:47"},"returnParameters":{"id":38701,"nodeType":"ParameterList","parameters":[],"src":"5790:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38822,"nodeType":"FunctionDefinition","src":"7265:1025:47","nodes":[],"body":{"id":38821,"nodeType":"Block","src":"7378:912:47","nodes":[],"statements":[{"assignments":[38780],"declarations":[{"constant":false,"id":38780,"mutability":"mutable","name":"supplySource","nameLocation":"7662:12:47","nodeType":"VariableDeclaration","scope":38821,"src":"7642:32:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":38779,"nodeType":"UserDefinedTypeName","pathNode":{"id":38778,"name":"SupplySource","nameLocations":["7642:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"7642:12:47"},"referencedDeclaration":50179,"src":"7642:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":38788,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38782,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38768,"src":"7700:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7709:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47718,"src":"7700:17:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7700:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38781,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"7677:22:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":38785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7677:43:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":38786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7721:12:47","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":51234,"src":"7677:56:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":38787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7677:58:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7642:93:47"},{"expression":{"arguments":[{"expression":{"id":38792,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"7765:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":38793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7776:5:47","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"7765:16:47","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}],"expression":{"id":38789,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38780,"src":"7745:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":38791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7758:6:47","memberName":"expect","nodeType":"MemberAccess","referencedDeclaration":48134,"src":"7745:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SupplySource_$50179_memory_ptr_$_t_enum$_SupplyKind_$50182_$returns$__$attached_to$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function (struct SupplySource memory,enum SupplyKind) pure"}},"id":38794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7745:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38795,"nodeType":"ExpressionStatement","src":"7745:37:47"},{"expression":{"arguments":[{"id":38799,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38773,"src":"7870:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38796,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38780,"src":"7844:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":38798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7857:4:47","memberName":"lock","nodeType":"MemberAccess","referencedDeclaration":48171,"src":"7844:17:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SupplySource_$50179_memory_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function (struct SupplySource memory,uint256)"}},"id":38800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["7863:5:47"],"names":["value"],"nodeType":"FunctionCall","src":"7844:34:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38801,"nodeType":"ExpressionStatement","src":"7844:34:47"},{"assignments":[38804],"declarations":[{"constant":false,"id":38804,"mutability":"mutable","name":"crossMsg","nameLocation":"7978:8:47","nodeType":"VariableDeclaration","scope":38821,"src":"7962:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38803,"nodeType":"UserDefinedTypeName","pathNode":{"id":38802,"name":"CrossMsg","nameLocations":["7962:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"7962:8:47"},"referencedDeclaration":49927,"src":"7962:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38814,"initialValue":{"arguments":[{"id":38807,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38768,"src":"8040:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},{"expression":{"id":38808,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8070:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8074:6:47","memberName":"sender","nodeType":"MemberAccess","src":"8070:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38810,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38771,"src":"8098:2:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"id":38811,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38773,"src":"8121:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8146:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38805,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"7989:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$40725_$","typeString":"type(library CrossMsgHelper)"}},"id":38806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8004:13:47","memberName":"createFundMsg","nodeType":"MemberAccess","referencedDeclaration":40518,"src":"7989:28:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$49951_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$49927_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":38813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8032:6:47","8062:6:47","8094:2:47","8114:5:47","8141:3:47"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"7989:210:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"7962:237:47"},{"expression":{"arguments":[{"id":38818,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38804,"src":"8274:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38815,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"8246:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":38817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8257:16:47","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":42390,"src":"8246:27:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8246:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38820,"nodeType":"ExpressionStatement","src":"8246:37:47"}]},"documentation":{"id":38765,"nodeType":"StructuredDocumentation","src":"6682:578:47","text":"@notice Sends funds to a specified subnet receiver using ERC20 tokens.\n @dev This function locks the amount of ERC20 tokens into custody and then mints the supply in the specified subnet.\n It checks if the subnet's supply strategy is ERC20 and if not, the operation is reverted.\n It allows for free injection of funds into a subnet and is protected against reentrancy.\n @param subnetId The ID of the subnet where the funds will be sent to.\n @param to The funded address.\n @param amount The amount of ERC20 tokens to be sent."},"functionSelector":"0517e1aa","implemented":true,"kind":"function","modifiers":[{"id":38776,"kind":"modifierInvocation","modifierName":{"id":38775,"name":"nonReentrant","nameLocations":["7365:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":43950,"src":"7365:12:47"},"nodeType":"ModifierInvocation","src":"7365:12:47"}],"name":"fundWithToken","nameLocation":"7274:13:47","parameters":{"id":38774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38768,"mutability":"mutable","name":"subnetId","nameLocation":"7306:8:47","nodeType":"VariableDeclaration","scope":38822,"src":"7288:26:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":38767,"nodeType":"UserDefinedTypeName","pathNode":{"id":38766,"name":"SubnetID","nameLocations":["7288:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"7288:8:47"},"referencedDeclaration":50030,"src":"7288:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":38771,"mutability":"mutable","name":"to","nameLocation":"7336:2:47","nodeType":"VariableDeclaration","scope":38822,"src":"7316:22:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":38770,"nodeType":"UserDefinedTypeName","pathNode":{"id":38769,"name":"FvmAddress","nameLocations":["7316:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"7316:10:47"},"referencedDeclaration":49951,"src":"7316:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":38773,"mutability":"mutable","name":"amount","nameLocation":"7348:6:47","nodeType":"VariableDeclaration","scope":38822,"src":"7340:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38772,"name":"uint256","nodeType":"ElementaryTypeName","src":"7340:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7287:68:47"},"returnParameters":{"id":38777,"nodeType":"ParameterList","parameters":[],"src":"7378:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38869,"nodeType":"FunctionDefinition","src":"8641:631:47","nodes":[],"body":{"id":38868,"nodeType":"Block","src":"8699:573:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38829,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8713:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8717:5:47","memberName":"value","nodeType":"MemberAccess","src":"8713:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8726:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8713:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38837,"nodeType":"IfStatement","src":"8709:138:47","trueBody":{"id":38836,"nodeType":"Block","src":"8729:118:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38833,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"8814:20:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38835,"nodeType":"RevertStatement","src":"8807:29:47"}]}},{"assignments":[38840],"declarations":[{"constant":false,"id":38840,"mutability":"mutable","name":"crossMsg","nameLocation":"8872:8:47","nodeType":"VariableDeclaration","scope":38868,"src":"8856:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38839,"nodeType":"UserDefinedTypeName","pathNode":{"id":38838,"name":"CrossMsg","nameLocations":["8856:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"8856:8:47"},"referencedDeclaration":49927,"src":"8856:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38852,"initialValue":{"arguments":[{"expression":{"id":38843,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"8937:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8939:11:47","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"8937:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},{"expression":{"id":38845,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8972:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8976:6:47","memberName":"sender","nodeType":"MemberAccess","src":"8972:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38847,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38826,"src":"9000:2:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"expression":{"id":38848,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9023:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9027:5:47","memberName":"value","nodeType":"MemberAccess","src":"9023:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9051:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38841,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"8883:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$40725_$","typeString":"type(library CrossMsgHelper)"}},"id":38842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8898:16:47","memberName":"createReleaseMsg","nodeType":"MemberAccess","referencedDeclaration":40475,"src":"8883:31:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$49951_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$49927_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":38851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8929:6:47","8964:6:47","8996:2:47","9016:5:47","9046:3:47"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"8883:230:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"8856:257:47"},{"expression":{"arguments":[{"id":38856,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38840,"src":"9153:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38853,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"9124:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":38855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9135:17:47","memberName":"commitBottomUpMsg","nodeType":"MemberAccess","referencedDeclaration":42556,"src":"9124:28:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38858,"nodeType":"ExpressionStatement","src":"9124:38:47"},{"expression":{"arguments":[{"expression":{"id":38864,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9255:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9259:5:47","memberName":"value","nodeType":"MemberAccess","src":"9255:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":38861,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"9226:17:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9218:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38859,"name":"address","nodeType":"ElementaryTypeName","src":"9218:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9218:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9245:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"9218:36:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9218:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38867,"nodeType":"ExpressionStatement","src":"9218:47:47"}]},"documentation":{"id":38823,"nodeType":"StructuredDocumentation","src":"8296:340:47","text":"@notice release() burns the received value locally in subnet and commits a bottom-up message to release the assets in the parent.\n The local supply of a subnet is always the native coin, so this method doesn't have to deal with tokens.\n @param to: the address to which to credit funds in the parent subnet."},"functionSelector":"6b2c1eef","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"8650:7:47","parameters":{"id":38827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38826,"mutability":"mutable","name":"to","nameLocation":"8678:2:47","nodeType":"VariableDeclaration","scope":38869,"src":"8658:22:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":38825,"nodeType":"UserDefinedTypeName","pathNode":{"id":38824,"name":"FvmAddress","nameLocations":["8658:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"8658:10:47"},"referencedDeclaration":49951,"src":"8658:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"8657:24:47"},"returnParameters":{"id":38828,"nodeType":"ParameterList","parameters":[],"src":"8699:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":38366,"name":"GatewayActorModifiers","nameLocations":["1360:21:47"],"nodeType":"IdentifierPath","referencedDeclaration":43081,"src":"1360:21:47"},"id":38367,"nodeType":"InheritanceSpecifier","src":"1360:21:47"},{"baseName":{"id":38368,"name":"ReentrancyGuard","nameLocations":["1383:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":43966,"src":"1383:15:47"},"id":38369,"nodeType":"InheritanceSpecifier","src":"1383:15:47"}],"canonicalName":"GatewayManagerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[38870,43966,43081],"name":"GatewayManagerFacet","nameLocation":"1337:19:47","scope":38871,"usedErrors":[1134,1138,32118,32461,32466,32469,37370,37374,37402,37426,37460,37470,37472,37482,37526,43914,48047]}],"license":"MIT OR Apache-2.0"},"id":47} \ No newline at end of file diff --git a/.out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json b/.out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json index e5a70466f..ce4839a14 100644 --- a/.out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json +++ b/.out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"propagate","inputs":[{"name":"msgCid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendUserXnetMessage","inputs":[{"name":"crossMsg","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"payable"},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"CannotSendCrossMsgToItself","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgFromSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgValue","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NotEnoughFee","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]}],"bytecode":{"object":"0x60808060405234610016576123aa908161001c8239f35b600080fdfe608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c63430008130033","sourceMap":"1060:6017:48:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":3668,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":676,"length":20},{"start":3337,"length":20},{"start":3439,"length":20},{"start":3769,"length":20},{"start":3854,"length":20},{"start":3955,"length":20},{"start":4040,"length":20},{"start":5527,"length":20},{"start":5605,"length":20},{"start":5710,"length":20},{"start":5866,"length":20},{"start":6416,"length":20},{"start":6657,"length":20},{"start":6738,"length":20}]}}},"deployedBytecode":{"object":"0x608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c63430008130033","sourceMap":"1060:6017:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2620:20;1060:6017;;;;2619:21;2615:110;;1001:56;;;1060:6017;1001:56;;;;;2802:20;;;;1001:56;4276:16:64;1001:56:48;4270:22:64;;4266:74;;4353:9;:15;4349:69;;1001:56:48;3266:10;1001:56;3159:22;2852:29;1001:56;;;:::i;:::-;2852:29;:::i;:::-;3159:22;;1001:56;;;;1060:6017;1001:56;;3191:24;1001:56;;;3191:24;:::i;:::-;3266:10;:::i;:::-;3312:28;4276:16:64;1001:56:48;4353:9:64;3312:28:48;:::i;:::-;3408:17;3404:91;;1060:6017;;;3404:91;13330:21:1;;:31;13326:63;;3449:10:48;;;;;;13419:35:1;;1060:6017:48;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;13468:8:1;13464:33;;3404:91:48;;1060:6017;;;13464:33:1;1060:6017:48;-1:-1:-1;;;13485:12:1;;;1060:6017:48;;;;13326:63:1;-1:-1:-1;;1060:6017:48;-1:-1:-1;;;13370:19:1;;;4349:69:64;1060:6017:48;;;;4391:16:64;;;;;;4266:74;1060:6017:48;;-1:-1:-1;;;4315:14:64;;1060:6017:48;;4315:14:64;2615:110:48;1060:6017;;887:60;1060:6017;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;1725:48;;;;;;2663:51;;;;887:60;;;;;;:::i;:::-;2663:51;;;1060:6017;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;;;;1678:24;1060:6017;;;;1677:25;1673:111;;1798:16;;;;;;:::i;:::-;:22;887:60;1824:32;1836:20;:16;;;;:::i;:::-;:20;887:60;1824:9;:32;:::i;:::-;1798:58;1794:118;;887:60;2093:16;887:60;;2093:21;:16;;;;:::i;:::-;:21;;:::i;:::-;:30;1060:6017;2093:30;;;:::i;:::-;887:60;:::i;:::-;1060:6017;;-1:-1:-1;;;2093:52:48;;;;;887:60;;;1060:6017;;;;;887:60;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;2093:52;:37;;:52;;;;;;;;;;;1060:6017;2092:53;;2088:118;;1060:6017;;;;;;:::i;:::-;887:60;;;;;;;1060:6017;887:60;;;1060:6017;;;887:60;;;;;1060:6017;;;;;;:::i;:::-;887:60;;;;;;;;;;1060:6017;;;887:60;;;;;:::i;:::-;;;;;;;;;;;;;1060:6017;;;887:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;1060:6017;887:60;1060:6017;;887:60;;;;;:::i;:::-;;;;;;;1836:20;887:60;;;;;;;1060:6017;;;;887:60;;;;;2347:16;887:60;2282:29;887:60;2383:10;887:60;;;2282:29;:::i;:::-;2347:16;;;:::i;:::-;:22;887:60;2383:10;:::i;:::-;1060:6017;;887:60;;;;;1060:6017;;;887:60;;;;;1060:6017;;;2088:118;1060:6017;;-1:-1:-1;;;2168:27:48;;1060:6017;;2168:27;2093:52;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1060:6017;;887:60;1060:6017;;887:60;;;;1794:118;1060:6017;;-1:-1:-1;;;1879:22:48;;1060:6017;;1879:22;1673:111;1060:6017;887:60;1060:6017;;;;;;:::i;:::-;;;;;;;;;;;;;;;1725:48;;;;;;;;;;887:60;;;;;;:::i;1060:6017::-;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;-1:-1:-1;;;;;1060:6017:48;;;;;;-1:-1:-1;;1060:6017:48;;;;:::o;887:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1060:6017;;;;;;887:60;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1060:6017;;;887:60;;;;;;;;;;:::o;:::-;1060:6017;;;887:60;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;:::o;:::-;-1:-1:-1;;;;;887:60:48;;;;;;;;;:::o;:::-;;;;;;;;;;;1060:6017;;;;;:::i;:::-;887:60;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;:::i;:::-;1060:6017;;887:60;1060:6017;;;;:::i;:::-;887:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;;;;;;1060:6017;;;887:60;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2131:13:48;887:60;;;;;;;;;;;;;;;;;;;;-1:-1:-1;887:60:48;-1:-1:-1;;;;;;;;;;;887:60:48;-1:-1:-1;887:60:48;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1060:6017;;;;;;;:::i;:::-;887:60;;;;;;;;;;;;-1:-1:-1;887:60:48;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;1060:6017;;;;;:::i;:::-;887:60;;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1060:6017;;;;;:::i;:::-;887:60;;1060:6017;;;887:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;1001:56::-;;;1060:6017;;;;:::i;:::-;1001:56;;-1:-1:-1;;;;;1001:56:48;;887:60;1001:56;;;;;;1060:6017;1001:56;1060:6017;1001:56;;887:60;;;;;;;;;;;;;-1:-1:-1;887:60:48;;-1:-1:-1;887:60:48;1001:56;-1:-1:-1;1001:56:48;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;887:60;;-1:-1:-1;;;;;887:60:48;;;1001:56;;-1:-1:-1;887:60:48;;;;;;;;1001:56;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1060:6017;;;1001:56;;;;;;;;;;;;;;;;;1060:6017;;1001:56;;-1:-1:-1;1001:56:48;;;;;;:::i;:::-;887:60;;;;1001:56;;;;;;;;;;;887:60;1001:56;887:60;;;1001:56;;;;;;;;;:::i;:::-;:::o;:::-;887:60;;;;-1:-1:-1;887:60:48;;;;-1:-1:-1;887:60:48;1001:56;-1:-1:-1;1001:56:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1001:56:48;;;;;;;;;;;;;887:60;1001:56;;;;;887:60;;;1001:56;;;;;;;;;;;;;;;1060:6017;;;;;:::i;:::-;1001:56;;;;;:::i;:::-;;;;;;1060:6017;;;;;:::i;:::-;;1001:56;;;;1060:6017;1001:56;;;;:::i;:::-;;;1060:6017;;;;:::i;:::-;1001:56;1060:6017;1001:56;;1060:6017;1001:56;1060:6017;;;;:::i;:::-;1001:56;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;887:60:48;;1001:56;;;;887:60;;-1:-1:-1;;;;;;887:60:48;1001:56;;;;;;;;;:::i;:::-;887:60;1001:56;;;;;;;;;;;;;;;1060:6017;;;1001:56;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;1001:56:48;;;;887:60;;1001:56;;;;;;;;;;;;:::o;:::-;;887:60;-1:-1:-1;887:60:48;;-1:-1:-1;887:60:48;1001:56;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;887:60;;;;;;1001:56;;;887:60;;1001:56;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;887:60;;1001:56;;;;;;;;;;;;;;;;:::i;:::-;;887:60;1001:56;887:60;;1001:56;887:60;1001:56;;;;;:::i;:::-;;;;;;;1060:6017;1001:56;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;1060:6017::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;1060:6017::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;887:60;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;:::o;:::-;;;;;;;;;;;;3988:2611;4113:23;:20;;:23;;:32;1060:6017;;887:60;;;4159:12;;4113:23;4159:12;;;1060:6017;4113:23;1060:6017;;;;;;;;:::i;:::-;4159:12;:10;;:12;;;;;;;-1:-1:-1;4159:12:48;;;3988:2611;4155:76;;;1060:6017;;887:60;;;4351:24;;1060:6017;4159:12;4351:24;;887:60;4113:23;887:60;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;887:60:48;1060:6017;887:60;;;;:::i;:::-;4351:24;4159:10;;4351:24;;;;;;;-1:-1:-1;4351:24:48;;;3988:2611;4347:90;;;4470:20;;1060:6017;4113:23;4470:25;;:34;1060:6017;;;887:60;;;;;;;4537:45;;1060:6017;4159:12;4537:45;;1060:6017;;;;;;;887:60;;1060:6017;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1060:6017:48;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;887:60;1060:6017;;;;-1:-1:-1;;;;;;887:60:48;1060:6017;;;;;;;;;;;-1:-1:-1;;1060:6017:48;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1060:6017:48;;;;;;:::i;:::-;4537:45;:30;;:45;;;;;;;-1:-1:-1;4537:45:48;;;3988:2611;1060:6017;;;;887:60;;;;4658:21;;1060:6017;4159:12;4658:21;;1060:6017;-1:-1:-1;1060:6017:48;;;;887:60;1060:6017;;;;:::i;:::-;;;;-1:-1:-1;;1060:6017:48;;;;;;;:::i;:::-;4658:21;4159:10;;4658:21;;;;;;887:60;4113:23;4658:21;887:60;4658:21;-1:-1:-1;4658:21:48;;;3988:2611;1060:6017;;;887:60;;;;;;;;4658:43;;1060:6017;4159:12;4658:43;;887:60;;;;;;:::i;:::-;4658:43;4159:10;;4658:43;;;;;;;-1:-1:-1;4658:43:48;;;3988:2611;5200:19;-1:-1:-1;1060:6017:48;;;;:::i;:::-;5246:19;5233:32;;5246:19;;-1:-1:-1;;1060:6017:48;;-1:-1:-1;;;5544:22:48;;4113:23;4159:12;5544:22;;1060:6017;;-1:-1:-1;1060:6017:48;;;;;;887:60;1060:6017;:::i;:::-;5544:22;4159:10;;5544:22;;;;;;887:60;4113:23;5544:22;887:60;5544:22;-1:-1:-1;5544:22:48;;;5229:685;1060:6017;;;887:60;;;;;;;;5544:44;;1060:6017;4159:12;5544:44;;887:60;;;;;;:::i;:::-;5544:44;4159:10;;5544:44;;;;;;;-1:-1:-1;5544:44:48;;;5229:685;5544:97;;;;5229:685;5535:106;5229:685;5923:120;;1060:6017;;;:::i;:::-;6200:31;:40;;;;;5229:685;6196:190;;;10399:24:63;1001:56:48;1060:6017;;;;10385:12:63;-1:-1:-1;;;;;10385:12:63;887:60:48;1060:6017;5246:19;1060:6017;;;;;;;1001:56;;;;;;;;;;;;;;10504:15:63;1060:6017:48;;10529:20:63;-1:-1:-1;;;;;1060:6017:48;;;887:60;10475:20:63;1060:6017:48;10475:20:63;;:26;1001:56:48;10529:20:63;:::i;:::-;1060:6017:48;;;;;;;;10504:15:63;1060:6017:48;1001:56;-1:-1:-1;1001:56:48;2943:20:63;4113:23:48;1001:56;1060:6017;-1:-1:-1;1001:56:48;2989:17:63;;;;1001:56:48;;2989:22:63;10700:1745;2989:17;;;1060:6017:48;;;10875:29:63;1060:6017:48;;;4361:13;1060:6017;;;;;10700:1745:63;1060:6017:48;10875:10:63;:29;:::i;:::-;6560:20:48;:26;1060:6017;6560:31;;3988:2611;:::o;1060:6017::-;-1:-1:-1;;;;;4361:13:48;1001:56;887:60;-1:-1:-1;;;;;1060:6017:48;;;;;;;;5246:19;1060:6017;;;:::i;:::-;;;10700:1745:63;-1:-1:-1;;1060:6017:48;11079:10:63;;887:60:48;11100:25:63;1001:56:48;-1:-1:-1;;;;;887:60:48;11079:46:63;887:60:48;;1060:6017;11079:10:63;;887:60:48;1060:6017;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1060:6017:48;;;:::i;:::-;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11347:13:63;1001:56:48;887:60;1060:6017;;;1001:56;1060:6017;;1001:56;4113:23;1001:56;887:60;;;;;;;1001:56;-1:-1:-1;887:60:48;-1:-1:-1;;;;;;;;;;;1001:56:48;-1:-1:-1;1001:56:48;;;;;;;;;;;;;;;:::i;:::-;1060:6017;1001:56;;;1060:6017;;;1001:56;;10385:12:63;4113:23:48;11298:185:63;;1001:56:48;1060:6017;11298:185:63;;1001:56:48;-1:-1:-1;11572:13:63;;;;;;1060:6017:48;;;4113:23;1060:6017;;;;;;4113:23;1060:6017;;;;;;;;:::i;:::-;11298:185:63;4113:23:48;11298:185:63;;1060:6017:48;;;;;;11298:185:63;;1060:6017:48;;;;;;;;;;;;887:60;;;;;4113:23;887:60;;1060:6017;4113:23;1060:6017;;;;;;;887:60;;1060:6017;-1:-1:-1;1060:6017:48;;;;;;;10385:12:63;;;;;;11843:38;10385:12;;11843:38;;;;-1:-1:-1;1060:6017:48;11079:10:63;;1060:6017:48;;;;;11079:10:63;1060:6017:48;12121:29:63;11079:10;;12121:29;:::i;:::-;4113:23:48;11298:185:63;;1060:6017:48;-1:-1:-1;1001:56:48;2943:20:63;4113:23:48;1001:56;1060:6017;-1:-1:-1;1001:56:48;4242:14:63;;;-1:-1:-1;;;;;1060:6017:48;;887:60;-1:-1:-1;;;;;1060:6017:48;;;;;;;4113:23;5246:19;1060:6017;;;;887:60;;;;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;;4113:23;1060:6017;;;;;:::i;:::-;887:60;;-1:-1:-1;887:60:48;4113:23;-1:-1:-1;887:60:48;-1:-1:-1;1060:6017:48;;;;;;-1:-1:-1;;;4113:23:48;11298:185:63;;1060:6017:48;2989:17:63;4266:13;;1060:6017:48;-1:-1:-1;1060:6017:48;11298:185:63;;4330:10;887:60:48;;1060:6017;4586:6:63;;-1:-1:-1;4373:13:63;;;;;;11075:1360;;;;1060:6017:48;11075:1360:63;10700:1745;;4362:9;11298:185;4586:26;4598:13;5246:19:48;11298:185:63;1060:6017:48;11298:185:63;;4598:10;:13;:::i;:::-;;4586:26;;:::i;:::-;1060:6017:48;4362:9:63;;1060:6017:48;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;;4113:23;1060:6017;;;;5246:19;1060:6017;;;;;;-1:-1:-1;1001:56:48;;;;;;;;;;11079:10:63;;;1060:6017:48;11079:10:63;;-1:-1:-1;887:60:48;4113:23;-1:-1:-1;887:60:48;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4113:23;1060:6017;;5246:19;1060:6017;;;;;;;;;;;;:::i;:::-;887:60;;1060:6017;;;;;;;;;;;;;;;11561:9:63;5246:19:48;11079:10:63;;;11610:32;11079:10;11629:13;11079:10;1060:6017:48;11079:10:63;;11629:13;:::i;:::-;11298:185;1001:56:48;1060:6017;11298:185:63;;11610:13;1001:56:48;;:::i;:::-;11610:32:63;;;;:::i;:::-;;;:::i;:::-;;1060:6017:48;11561:9:63;;;;;1001:56:48;887:60;;-1:-1:-1;;;;;887:60:48;;;1001:56;;-1:-1:-1;4113:23:48;887:60;;;;5246:19;887:60;;;;1001:56;;;1060:6017;4113:23;1060:6017;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;-1:-1:-1;1060:6017:48;;;;-1:-1:-1;1060:6017:48;;;;-1:-1:-1;1060:6017:48;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;11075:1360:63;11079:10;12391:29;11079:10;1060:6017:48;;11079:10:63;;12391:29;:::i;:::-;10700:1745;;1060:6017:48;;;;-1:-1:-1;1060:6017:48;;4159:12;1060:6017;;-1:-1:-1;1060:6017:48;6196:190;6258:21;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;887:60;-1:-1:-1;;;;;1060:6017:48;;;;5246:19;-1:-1:-1;;;1060:6017:48;;;;;;-1:-1:-1;;;1060:6017:48;;;6258:21;1060:6017;887:60;4113:23;9542:20:63;;:23;;:32;1060:6017:48;;887:60;;;;;;9542:52:63;;1060:6017:48;4159:12;9542:52:63;;887:60:48;;;;;;:::i;:::-;1060:6017;;887:60;;;;1060:6017;887:60;;;1060:6017;;887:60;;;-1:-1:-1;;;;;9580:13:63;887:60:48;;;;1060:6017;4113:23;887:60;;;;;;;;;;;-1:-1:-1;887:60:48;-1:-1:-1;;;;;;;;;;;887:60:48;-1:-1:-1;887:60:48;;;;;;9542:52:63;;;;;-1:-1:-1;9542:52:63;;4159:10:48;;9542:52:63;;;;;;;-1:-1:-1;9542:52:63;;;887:60:48;-1:-1:-1;1060:6017:48;;-1:-1:-1;;;13443:17:63;;4113:23:48;4159:12;13443:17:63;;1060:6017:48;;;;;;;;;;;:::i;:::-;13443:17:63;4159:10:48;;13443:17:63;;;;;;;-1:-1:-1;13443:17:63;;;887:60:48;1001:56;-1:-1:-1;1001:56:48;-1:-1:-1;4113:23:48;1001:56;1060:6017;-1:-1:-1;1001:56:48;13480:9:63;1060:6017:48;4113:23;1060:6017;4159:12;13480:9:63;;1060:6017:48;:::i;:::-;;;887:60;;;;;;;13480:19:63;;;4159:12:48;13480:19:63;;1060:6017:48;;;;;;:::i;:::-;13480:19:63;4159:10:48;;13480:19:63;;;;;;;-1:-1:-1;13480:19:63;;;887:60:48;13479:20:63;9678:70;;1060:6017:48;9780:19:63;;1001:56:48;;-1:-1:-1;;;;;9883:16:63;887:60:48;;;9810:20:63;1060:6017:48;9810:20:63;;:26;1001:56:48;9883:16:63;:::i;:::-;887:60:48;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;;;9909:17:63;1060:6017:48;9930:20:63;;:26;1060:6017:48;9909:17:63;;1001:56:48;;;1060:6017;;;;;;;;;;4113:23;1060:6017;;;;887:60;;;;;;;9999:21:63;;;4159:12:48;9999:21:63;;1060:6017:48;;;;;;:::i;:::-;9999:21:63;4159:10:48;;9999:21:63;;;;;;;-1:-1:-1;9999:21:63;;;887:60:48;-1:-1:-1;1060:6017:48;;4113:23;1060:6017;;;-1:-1:-1;;;;;887:60:48;;;;9972:73:63;;1060:6017:48;;;;;;;;:::i;:::-;9972:73:63;;;-1:-1:-1;6348:27:48;:::o;9999:21:63:-;;4113:23:48;9999:21:63;;4113:23:48;9999:21:63;;;;;;4113:23:48;9999:21:63;;;:::i;:::-;;;1060:6017:48;;;;;;;9972:73:63;1060:6017:48;;:::i;:::-;9999:21:63;;;;1060:6017:48;;;9999:21:63;;;-1:-1:-1;9999:21:63;;;1060:6017:48;;887:60;-1:-1:-1;887:60:48;;;;;9678:70:63;1060:6017:48;;-1:-1:-1;;;9716:21:63;;4159:12:48;;9716:21:63;13480:19;;;;4113:23:48;13480:19:63;4113:23:48;13480:19:63;;;;;;;:::i;:::-;;;;13443:17;;4113:23:48;13443:17:63;;4113:23:48;13443:17:63;;;;;;4113:23:48;13443:17:63;;;:::i;:::-;;;1060:6017:48;;;;;;13443:17:63;;;;;;-1:-1:-1;13443:17:63;;9542:52;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;887:60:48;;;-1:-1:-1;;;;;887:60:48;;;;;-1:-1:-1;4113:23:48;887:60;;;;5246:19;887:60;;;;;;;6200:40;;;;;;5923:120;1060:6017;;-1:-1:-1;;;5956:76:48;;4113:23;4159:12;5956:76;;1060:6017;;;;;887:60;1060:6017;887:60;;;1060:6017;;;;;;;;5956:76;5544:97;1060:6017;;;4113:23;1060:6017;;;887:60;;;;;;;5592:15;;;4159:12;5592:15;;1060:6017;;;;;;:::i;:::-;5592:15;4159:10;;5592:15;;;;;;-1:-1:-1;5592:15:48;;;5544:97;5592:49;;;;:::i;:::-;5544:97;;;5592:15;4113:23;5592:15;;4113:23;5592:15;;;;;;4113:23;5592:15;;;:::i;:::-;;;1060:6017;;;;;;5592:49;1060:6017;;:::i;:::-;5592:15;;;;;-1:-1:-1;5592:15:48;;5544:44;;;;;4113:23;5544:44;4113:23;5544:44;;;;;;;:::i;:::-;;;;;:22;;;;;;;;;;;;:::i;:::-;;;;5229:685;1060:6017;;;;;;:::i;:::-;5662:31;;;5658:256;;5229:685;;;;;5658:256;887:60;;1060:6017;;;887:60;;;;;;;;5836:22;;1060:6017;4159:12;5836:22;;887:60;;;;;;:::i;:::-;5836:22;4159:10;;5836:22;;;;;;;;;4113:23;5836:22;1060:6017;5836:22;;;;5658:256;1060:6017;;;887:60;;;;;;;5836:33;;;4159:12;5836:33;;1060:6017;;;;;;:::i;:::-;5836:33;4159:10;;5836:33;;;;;;;;;;;5658:256;5836:67;;;;;:::i;:::-;5658:256;;;;5836:33;;;4113:23;5836:33;;4113:23;5836:33;;;;;;4113:23;5836:33;;;:::i;:::-;;;1060:6017;;;;;;5836:67;1060:6017;;:::i;:::-;5836:33;;;;;;-1:-1:-1;5836:33:48;;;1060:6017;;887:60;;;;;;;;5836:22;;;;;;;;;;;;;:::i;:::-;;;;;1060:6017;;887:60;1060:6017;;887:60;;;;4658:43;;;;;4113:23;4658:43;4113:23;4658:43;;;;;;;:::i;:::-;;;;;:21;;;;;;;;;;;;:::i;:::-;;;;4537:45;4113:23;4537:45;;4113:23;4537:45;;;;;;4113:23;4537:45;;;:::i;:::-;;;1060:6017;;;;;;;;;;;;4537:45;;;;1060:6017;;;;4537:45;;;-1:-1:-1;4537:45:48;;4347:90;1060:6017;;-1:-1:-1;;;4398:28:48;;4159:12;;4398:28;4351:24;;;;4113:23;4351:24;4113:23;4351:24;;;;;;;:::i;:::-;;;;4155:76;1060:6017;;-1:-1:-1;;;4194:26:48;;4159:12;;4194:26;4159:12;;;;4113:23;4159:12;4113:23;4159:12;;;;;;;:::i;:::-;;;;6912:163;;6989:80;;6912:163;:::o;6989:80::-;13330:21:1;;:31;13326:63;;13419:35;;;;;887:60:48;13419:35:1;;1060:6017:48;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;13419:35:1;1060:6017:48;;;;;;13468:8:1;13464:33;;6912:163:48:o;13464:33:1:-;1060:6017:48;;-1:-1:-1;;;13485:12:1;;;;;1060:6017:48;;;13326:63:1;1060:6017:48;;-1:-1:-1;;;13370:19:1;;;;;1060:6017:48;;887:60;-1:-1:-1;;;;;887:60:48;;;1060:6017;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;887:60;1060:6017;;;887:60;;;;1060:6017;;;;887:60;1060:6017;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;887:60;;1060:6017;;;;;-1:-1:-1;887:60:48;1060:6017;887:60;-1:-1:-1;887:60:48;1060:6017;;;;-1:-1:-1;1060:6017:48;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;887:60;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;887:60;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;887:60;;;1060:6017;;;;;;;;;;;;:::i;:::-;887:60;-1:-1:-1;887:60:48;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;887:60;1060:6017;;;;1001:56;;;1060:6017;;;;;;;;;;;;;;;;887:60;;;;1060:6017;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1001:56:48;;;;;;;;;;1060:6017;;;;;;;;;;887:60;;;;1060:6017;;;;887:60;1060:6017;;;;;;;;;;;;;887:60;;;;1060:6017;;;;;;;;;;;;:::i;:::-;887:60;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;887:60;1060:6017;;;;;;;;;;;;;;;;;;887:60;;;1060:6017;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1001:56:48;;;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;887:60;1060:6017;;;;;;;;887:60;1060:6017;;;;;;;;;;;;;;887:60;1060:6017;;887:60;;;;1060:6017;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:56;;;;;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;887:60;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:56;;;;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;887:60;;;;;;;;1001:56;;;;1060:6017;1001:56;1060:6017;;;;;;;;1001:56;1060:6017;1001:56;1060:6017;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;887:60;;;;;;1060:6017;;-1:-1:-1;887:60:48;1060:6017;-1:-1:-1;;1060:6017:48;;887:60;1060:6017;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;;-1:-1:-1;;1001:56:48;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;887:60;;;;;;;;1001:56;;;;1060:6017;1001:56;1060:6017;;;;;;;1001:56;1060:6017;1001:56;1060:6017;;;:::i;:::-;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;;;;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;887:60;;;;;;1060:6017;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;;-1:-1:-1;;1001:56:48;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;887:60;;;1060:6017;887:60;;;1001:56;;;;;;1060:6017;;;;;;;1001:56;;;1060:6017;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;;;;;;;;;;;;;;;1001:56;;;;;;;;1060:6017;1001:56;1060:6017;;;;;:::i;:::-;;;;-1:-1:-1;1060:6017:48;;;;:::o;:::-;1001:56;1060:6017;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::o;:::-;887:60;;1060:6017;;;;;;;;;;;;:::o;:::-;;;;;;;887:60;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;;;;;;:::i;:::-;-1:-1:-1;887:60:48;;;;;;-1:-1:-1;;;;;;;;;;;1060:6017:48;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;887:60:48;;;1060:6017;;;;;;;;;;;;;;:::o;890:185:76:-;1060:6017:48;;;-1:-1:-1;;;1002:50:76;;1060:6017:48;;;;;;1002:50:76;;1060:6017:48;;-1:-1:-1;;;;;887:60:48;1002:50:76;;;;;;;;;;;890:185;1060:6017:48;;;;;;;;:::i;:::-;;;;:::i;:::-;1002:66:76;890:185;:::o;1002:50::-;;;;;;;;;;;;;;:::i;:::-;;;1060:6017:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1002:50:76;;;;1060:6017:48;;;;1002:50:76;;;;;;1060:6017:48;887:60;1002:50:76;887:60:48;;;;","linkReferences":{"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":3640,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":648,"length":20},{"start":3309,"length":20},{"start":3411,"length":20},{"start":3741,"length":20},{"start":3826,"length":20},{"start":3927,"length":20},{"start":4012,"length":20},{"start":5499,"length":20},{"start":5577,"length":20},{"start":5682,"length":20},{"start":5838,"length":20},{"start":6388,"length":20},{"start":6629,"length":20},{"start":6710,"length":20}]}}},"methodIdentifiers":{"propagate(bytes32)":"25bf0db6","sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":"210b944e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSendCrossMsgToItself\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgFromSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendUserXnetMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"propagate(bytes32)\":{\"details\":\"propagates the populated cross net message for the given cid\",\"params\":{\"msgCid\":\"- the cid of the cross-net message\"}},\"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"details\":\"sends a general-purpose cross-message from the local subnet to the destination subnet. IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.\",\"params\":{\"crossMsg\":\"- a cross-message to send.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayMessengerFacet.sol\":\"GatewayMessengerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"CannotSendCrossMsgToItself"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgFromSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgValue"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NotEnoughFee"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[{"internalType":"bytes32","name":"msgCid","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"propagate"},{"inputs":[{"internalType":"struct CrossMsg","name":"crossMsg","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"payable","type":"function","name":"sendUserXnetMessage"}],"devdoc":{"kind":"dev","methods":{"propagate(bytes32)":{"details":"propagates the populated cross net message for the given cid","params":{"msgCid":"- the cid of the cross-net message"}},"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":{"details":"sends a general-purpose cross-message from the local subnet to the destination subnet. IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.","params":{"crossMsg":"- a cross-message to send."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayMessengerFacet.sol":"GatewayMessengerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayMessengerFacet.sol","id":39236,"exportedSymbols":{"BURNT_FUNDS_ACTOR":[36861],"CannotSendCrossMsgToItself":[37376],"CrossMsg":[49974],"ERR_GENERAL_CROSS_MSG_DISABLED":[38903],"ERR_MULTILEVEL_CROSS_MSG_DISABLED":[38906],"FilAddress":[1428],"GatewayActorModifiers":[43137],"GatewayMessengerFacet":[39235],"IPCMsgType":[37364],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgValue":[37426],"LibGateway":[42944],"MethodNotAllowed":[37526],"StorableMsg":[49991],"StorableMsgHelper":[47461],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplyKind":[50229],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:7032:48","nodes":[{"id":38872,"nodeType":"PragmaDirective","src":"46:23:48","nodes":[],"literals":["solidity","0.8",".19"]},{"id":38874,"nodeType":"ImportDirective","src":"71:72:48","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":38873,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"79:21:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38876,"nodeType":"ImportDirective","src":"144:61:48","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":38875,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"152:17:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38879,"nodeType":"ImportDirective","src":"206:62:48","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":38877,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"214:8:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38878,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"224:11:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38881,"nodeType":"ImportDirective","src":"269:51:48","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":38880,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"277:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38884,"nodeType":"ImportDirective","src":"321:59:48","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":38882,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"329:8:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38883,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"339:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38890,"nodeType":"ImportDirective","src":"381:160:48","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":38885,"name":"InvalidCrossMsgFromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37422,"src":"389:25:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38886,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"416:24:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38887,"name":"CannotSendCrossMsgToItself","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37376,"src":"442:26:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38888,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"470:20:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38889,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"492:16:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38892,"nodeType":"ImportDirective","src":"542:57:48","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":38891,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"550:14:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38894,"nodeType":"ImportDirective","src":"600:49:48","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":38893,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"608:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38896,"nodeType":"ImportDirective","src":"650:63:48","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":38895,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"658:17:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38898,"nodeType":"ImportDirective","src":"714:56:48","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":38897,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"722:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38900,"nodeType":"ImportDirective","src":"771:65:48","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":38899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"779:18:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38903,"nodeType":"VariableDeclaration","src":"838:109:48","nodes":[],"constant":true,"mutability":"constant","name":"ERR_GENERAL_CROSS_MSG_DISABLED","nameLocation":"854:30:48","scope":39236,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38901,"name":"string","nodeType":"ElementaryTypeName","src":"838:6:48","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"537570706f727420666f722067656e6572616c2d707572706f73652063726f73732d6e6574206d657373616765732069732064697361626c6564","id":38902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"887:60:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd3d18fc001c76f041be9d5eac6cfff6ccbbde88912dc4bd2be7f90d14666151","typeString":"literal_string \"Support for general-purpose cross-net messages is disabled\""},"value":"Support for general-purpose cross-net messages is disabled"},"visibility":"internal"},{"id":38906,"nodeType":"VariableDeclaration","src":"949:108:48","nodes":[],"constant":true,"mutability":"constant","name":"ERR_MULTILEVEL_CROSS_MSG_DISABLED","nameLocation":"965:33:48","scope":39236,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38904,"name":"string","nodeType":"ElementaryTypeName","src":"949:6:48","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6574206d657373616765732069732064697361626c6564","id":38905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1001:56:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d26608d922360a1e735d803f825aaa27321e2fbe06bd2a3cc06cf31db3fe498","typeString":"literal_string \"Support for multi-level cross-net messages is disabled\""},"value":"Support for multi-level cross-net messages is disabled"},"visibility":"internal"},{"id":39235,"nodeType":"ContractDefinition","src":"1060:6017:48","nodes":[{"id":38911,"nodeType":"UsingForDirective","src":"1122:37:48","nodes":[],"global":false,"libraryName":{"id":38909,"name":"FilAddress","nameLocations":["1128:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"1128:10:48"},"typeName":{"id":38910,"name":"address","nodeType":"ElementaryTypeName","src":"1143:15:48","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":38915,"nodeType":"UsingForDirective","src":"1164:34:48","nodes":[],"global":false,"libraryName":{"id":38912,"name":"SubnetIDHelper","nameLocations":["1170:14:48"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1170:14:48"},"typeName":{"id":38914,"nodeType":"UserDefinedTypeName","pathNode":{"id":38913,"name":"SubnetID","nameLocations":["1189:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1189:8:48"},"referencedDeclaration":50077,"src":"1189:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":38919,"nodeType":"UsingForDirective","src":"1203:40:48","nodes":[],"global":false,"libraryName":{"id":38916,"name":"StorableMsgHelper","nameLocations":["1209:17:48"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"1209:17:48"},"typeName":{"id":38918,"nodeType":"UserDefinedTypeName","pathNode":{"id":38917,"name":"StorableMsg","nameLocations":["1231:11:48"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"1231:11:48"},"referencedDeclaration":49991,"src":"1231:11:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":38922,"nodeType":"UsingForDirective","src":"1248:37:48","nodes":[],"global":false,"libraryName":{"id":38920,"name":"SupplySourceHelper","nameLocations":["1254:18:48"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1254:18:48"},"typeName":{"id":38921,"name":"address","nodeType":"ElementaryTypeName","src":"1277:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":38981,"nodeType":"FunctionDefinition","src":"1589:813:48","nodes":[],"body":{"id":38980,"nodeType":"Block","src":"1663:739:48","nodes":[],"statements":[{"condition":{"id":38931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1677:25:48","subExpression":{"expression":{"id":38929,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"1678:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1680:22:48","memberName":"generalPurposeCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43058,"src":"1678:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38937,"nodeType":"IfStatement","src":"1673:111:48","trueBody":{"id":38936,"nodeType":"Block","src":"1704:80:48","statements":[{"errorCall":{"arguments":[{"id":38933,"name":"ERR_GENERAL_CROSS_MSG_DISABLED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38903,"src":"1742:30:48","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":38932,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"1725:16:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:48:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38935,"nodeType":"RevertStatement","src":"1718:55:48"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":38938,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"1798:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1807:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"1798:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1815:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"1798:22:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38941,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1824:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1828:5:48","memberName":"value","nodeType":"MemberAccess","src":"1824:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":38943,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"1836:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1845:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"1836:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1853:3:48","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":49990,"src":"1836:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1824:32:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1798:58:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38952,"nodeType":"IfStatement","src":"1794:118:48","trueBody":{"id":38951,"nodeType":"Block","src":"1858:54:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38948,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"1879:20:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1879:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38950,"nodeType":"RevertStatement","src":"1872:29:48"}]}},{"condition":{"id":38961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2092:53:48","subExpression":{"arguments":[{"expression":{"id":38958,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2131:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2133:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"2131:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":38953,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"2093:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2102:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2093:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2110:4:48","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"2093:21:48","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":38956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2115:8:48","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"2093:30:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2124:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"2093:37:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":38960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2093:52:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38966,"nodeType":"IfStatement","src":"2088:118:48","trueBody":{"id":38965,"nodeType":"Block","src":"2147:59:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38962,"name":"InvalidCrossMsgFromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37422,"src":"2168:25:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2168:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38964,"nodeType":"RevertStatement","src":"2161:34:48"}]}},{"assignments":[38968],"declarations":[{"constant":false,"id":38968,"mutability":"mutable","name":"shouldBurn","nameLocation":"2269:10:48","nodeType":"VariableDeclaration","scope":38980,"src":"2264:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38967,"name":"bool","nodeType":"ElementaryTypeName","src":"2264:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":38972,"initialValue":{"arguments":[{"id":38970,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"2302:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}],"id":38969,"name":"_commitCrossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39214,"src":"2282:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bool_$","typeString":"function (struct CrossMsg memory) returns (bool)"}},"id":38971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2282:29:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2264:47:48"},{"expression":{"arguments":[{"expression":{"expression":{"id":38974,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"2347:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2356:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2347:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2364:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"2347:22:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38977,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38968,"src":"2383:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":38973,"name":"_crossMsgSideEffects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39234,"src":"2322:20:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":38978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2344:1:48","2371:10:48"],"names":["v","shouldBurn"],"nodeType":"FunctionCall","src":"2322:73:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38979,"nodeType":"ExpressionStatement","src":"2322:73:48"}]},"documentation":{"id":38923,"nodeType":"StructuredDocumentation","src":"1291:293:48","text":" @dev sends a general-purpose cross-message from the local subnet to the destination subnet.\n IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.\n @param crossMsg - a cross-message to send."},"functionSelector":"210b944e","implemented":true,"kind":"function","modifiers":[],"name":"sendUserXnetMessage","nameLocation":"1598:19:48","parameters":{"id":38927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38926,"mutability":"mutable","name":"crossMsg","nameLocation":"1636:8:48","nodeType":"VariableDeclaration","scope":38981,"src":"1618:26:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38925,"nodeType":"UserDefinedTypeName","pathNode":{"id":38924,"name":"CrossMsg","nameLocations":["1618:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1618:8:48"},"referencedDeclaration":49974,"src":"1618:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1617:28:48"},"returnParameters":{"id":38928,"nodeType":"ParameterList","parameters":[],"src":"1663:0:48"},"scope":39235,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39056,"nodeType":"FunctionDefinition","src":"2553:948:48","nodes":[],"body":{"id":39055,"nodeType":"Block","src":"2605:896:48","nodes":[],"statements":[{"condition":{"id":38989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2619:21:48","subExpression":{"expression":{"id":38987,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2620:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:18:48","memberName":"multiLevelCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43061,"src":"2620:20:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38995,"nodeType":"IfStatement","src":"2615:110:48","trueBody":{"id":38994,"nodeType":"Block","src":"2642:83:48","statements":[{"errorCall":{"arguments":[{"id":38991,"name":"ERR_MULTILEVEL_CROSS_MSG_DISABLED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38906,"src":"2680:33:48","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":38990,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"2663:16:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:51:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38993,"nodeType":"RevertStatement","src":"2656:58:48"}]}},{"assignments":[38998],"declarations":[{"constant":false,"id":38998,"mutability":"mutable","name":"crossMsg","nameLocation":"2752:8:48","nodeType":"VariableDeclaration","scope":39055,"src":"2735:25:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38997,"nodeType":"UserDefinedTypeName","pathNode":{"id":38996,"name":"CrossMsg","nameLocations":["2735:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"2735:8:48"},"referencedDeclaration":49974,"src":"2735:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":39003,"initialValue":{"baseExpression":{"expression":{"id":38999,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2763:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2765:7:48","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42988,"src":"2763:9:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":39002,"indexExpression":{"id":39001,"name":"msgCid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38984,"src":"2773:6:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2763:17:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2735:45:48"},{"expression":{"arguments":[{"expression":{"expression":{"id":39005,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38998,"src":"2802:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg storage pointer"}},"id":39006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2811:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2802:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage","typeString":"struct StorableMsg storage ref"}},"id":39007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2819:3:48","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":49990,"src":"2802:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39004,"name":"validateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43115,"src":"2790:11:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":39008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2790:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39009,"nodeType":"ExpressionStatement","src":"2790:33:48"},{"assignments":[39011],"declarations":[{"constant":false,"id":39011,"mutability":"mutable","name":"shouldBurn","nameLocation":"2839:10:48","nodeType":"VariableDeclaration","scope":39055,"src":"2834:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39010,"name":"bool","nodeType":"ElementaryTypeName","src":"2834:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":39015,"initialValue":{"arguments":[{"id":39013,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38998,"src":"2872:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg storage pointer"}],"id":39012,"name":"_commitCrossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39214,"src":"2852:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bool_$","typeString":"function (struct CrossMsg memory) returns (bool)"}},"id":39014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2852:29:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2834:47:48"},{"assignments":[39017],"declarations":[{"constant":false,"id":39017,"mutability":"mutable","name":"v","nameLocation":"3155:1:48","nodeType":"VariableDeclaration","scope":39055,"src":"3147:9:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39016,"name":"uint256","nodeType":"ElementaryTypeName","src":"3147:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39021,"initialValue":{"expression":{"expression":{"id":39018,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38998,"src":"3159:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg storage pointer"}},"id":39019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3168:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3159:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage","typeString":"struct StorableMsg storage ref"}},"id":39020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3176:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"3159:22:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3147:34:48"},{"expression":{"id":39026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3191:24:48","subExpression":{"baseExpression":{"expression":{"id":39022,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3198:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3200:7:48","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42988,"src":"3198:9:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":39025,"indexExpression":{"id":39024,"name":"msgCid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38984,"src":"3208:6:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3198:17:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39027,"nodeType":"ExpressionStatement","src":"3191:24:48"},{"expression":{"arguments":[{"id":39029,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39017,"src":"3251:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39030,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39011,"src":"3266:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":39028,"name":"_crossMsgSideEffects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39234,"src":"3226:20:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":39031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3248:1:48","3254:10:48"],"names":["v","shouldBurn"],"nodeType":"FunctionCall","src":"3226:52:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39032,"nodeType":"ExpressionStatement","src":"3226:52:48"},{"assignments":[39034],"declarations":[{"constant":false,"id":39034,"mutability":"mutable","name":"feeRemainder","nameLocation":"3297:12:48","nodeType":"VariableDeclaration","scope":39055,"src":"3289:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39033,"name":"uint256","nodeType":"ElementaryTypeName","src":"3289:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39040,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39035,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3312:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3316:5:48","memberName":"value","nodeType":"MemberAccess","src":"3312:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":39037,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3324:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3326:14:48","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":43027,"src":"3324:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3312:28:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3289:51:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39041,"name":"feeRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39034,"src":"3408:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3424:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3408:17:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39054,"nodeType":"IfStatement","src":"3404:91:48","trueBody":{"id":39053,"nodeType":"Block","src":"3427:68:48","statements":[{"expression":{"arguments":[{"id":39050,"name":"feeRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39034,"src":"3471:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":39046,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3449:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3453:6:48","memberName":"sender","nodeType":"MemberAccess","src":"3449:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3441:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":39044,"name":"address","nodeType":"ElementaryTypeName","src":"3441:8:48","stateMutability":"payable","typeDescriptions":{}}},"id":39048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3441:19:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":39049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3461:9:48","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"3441:29:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":39051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3441:43:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39052,"nodeType":"ExpressionStatement","src":"3441:43:48"}]}}]},"documentation":{"id":38982,"nodeType":"StructuredDocumentation","src":"2408:140:48","text":" @dev propagates the populated cross net message for the given cid\n @param msgCid - the cid of the cross-net message"},"functionSelector":"25bf0db6","implemented":true,"kind":"function","modifiers":[],"name":"propagate","nameLocation":"2562:9:48","parameters":{"id":38985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38984,"mutability":"mutable","name":"msgCid","nameLocation":"2580:6:48","nodeType":"VariableDeclaration","scope":39056,"src":"2572:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38983,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2572:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2571:16:48"},"returnParameters":{"id":38986,"nodeType":"ParameterList","parameters":[],"src":"2605:0:48"},"scope":39235,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39214,"nodeType":"FunctionDefinition","src":"3988:2611:48","nodes":[],"body":{"id":39213,"nodeType":"Block","src":"4082:2517:48","nodes":[],"statements":[{"assignments":[39067],"declarations":[{"constant":false,"id":39067,"mutability":"mutable","name":"to","nameLocation":"4108:2:48","nodeType":"VariableDeclaration","scope":39213,"src":"4092:18:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":39066,"nodeType":"UserDefinedTypeName","pathNode":{"id":39065,"name":"SubnetID","nameLocations":["4092:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4092:8:48"},"referencedDeclaration":50077,"src":"4092:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":39072,"initialValue":{"expression":{"expression":{"expression":{"id":39068,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"4113:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4126:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"4113:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4134:2:48","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"4113:23:48","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":39071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4137:8:48","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"4113:32:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"4092:53:48"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39073,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"4159:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4162:7:48","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48071,"src":"4159:10:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":39075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39080,"nodeType":"IfStatement","src":"4155:76:48","trueBody":{"id":39079,"nodeType":"Block","src":"4173:58:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39076,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"4194:24:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4194:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39078,"nodeType":"RevertStatement","src":"4187:33:48"}]}},{"condition":{"arguments":[{"expression":{"id":39083,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4361:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4363:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"4361:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"id":39081,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"4351:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4354:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"4351:9:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4351:24:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39090,"nodeType":"IfStatement","src":"4347:90:48","trueBody":{"id":39089,"nodeType":"Block","src":"4377:60:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39086,"name":"CannotSendCrossMsgToItself","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37376,"src":"4398:26:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4398:28:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39088,"nodeType":"RevertStatement","src":"4391:35:48"}]}},{"assignments":[39093],"declarations":[{"constant":false,"id":39093,"mutability":"mutable","name":"from","nameLocation":"4463:4:48","nodeType":"VariableDeclaration","scope":39213,"src":"4447:20:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":39092,"nodeType":"UserDefinedTypeName","pathNode":{"id":39091,"name":"SubnetID","nameLocations":["4447:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4447:8:48"},"referencedDeclaration":50077,"src":"4447:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":39098,"initialValue":{"expression":{"expression":{"expression":{"id":39094,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"4470:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4483:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"4470:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4491:4:48","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"4470:25:48","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":39097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4496:8:48","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"4470:34:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"4447:57:48"},{"assignments":[39101],"declarations":[{"constant":false,"id":39101,"mutability":"mutable","name":"applyType","nameLocation":"4525:9:48","nodeType":"VariableDeclaration","scope":39213,"src":"4514:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"typeName":{"id":39100,"nodeType":"UserDefinedTypeName","pathNode":{"id":39099,"name":"IPCMsgType","nameLocations":["4514:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":37364,"src":"4514:10:48"},"referencedDeclaration":37364,"src":"4514:10:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"id":39108,"initialValue":{"arguments":[{"expression":{"id":39105,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4568:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4570:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"4568:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":39102,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"4537:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4550:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"4537:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4558:9:48","memberName":"applyType","nodeType":"MemberAccess","referencedDeclaration":47444,"src":"4537:30:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_StorableMsg_$49991_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_enum$_IPCMsgType_$37364_$attached_to$_t_struct$_StorableMsg_$49991_memory_ptr_$","typeString":"function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)"}},"id":39107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4537:45:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"VariableDeclarationStatement","src":"4514:68:48"},{"assignments":[39110],"declarations":[{"constant":false,"id":39110,"mutability":"mutable","name":"isLCA","nameLocation":"4650:5:48","nodeType":"VariableDeclaration","scope":39213,"src":"4645:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39109,"name":"bool","nodeType":"ElementaryTypeName","src":"4645:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":39119,"initialValue":{"arguments":[{"expression":{"id":39116,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4687:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4689:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"4687:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"arguments":[{"id":39113,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"4674:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":39111,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"4658:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4661:12:48","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":47946,"src":"4658:15:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":39114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4658:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4680:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"4658:28:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4658:43:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4645:56:48"},{"assignments":[39121],"declarations":[{"constant":false,"id":39121,"mutability":"mutable","name":"reject","nameLocation":"5205:6:48","nodeType":"VariableDeclaration","scope":39213,"src":"5200:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39120,"name":"bool","nodeType":"ElementaryTypeName","src":"5200:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":39123,"initialValue":{"hexValue":"66616c7365","id":39122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5214:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"5200:19:48"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":39127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39124,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"5233:9:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39125,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"5246:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":39126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5257:8:48","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":37363,"src":"5246:19:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"5233:32:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":39150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39147,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"5662:9:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39148,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"5675:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":39149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5686:7:48","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"5675:18:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"5662:31:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39166,"nodeType":"IfStatement","src":"5658:256:48","trueBody":{"id":39165,"nodeType":"Block","src":"5695:219:48","statements":[{"expression":{"id":39163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39151,"name":"reject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"5827:6:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":39160,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"5886:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":39161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5897:5:48","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"5886:16:48","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":39154,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5844:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5846:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"5844:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"id":39152,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"5836:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5839:4:48","memberName":"down","nodeType":"MemberAccess","referencedDeclaration":48051,"src":"5836:7:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":39156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5836:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5859:8:48","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"5836:31:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5836:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5870:15:48","memberName":"hasSupplyOfKind","nodeType":"MemberAccess","referencedDeclaration":48117,"src":"5836:49:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_SupplyKind_$50229_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,enum SupplyKind) view returns (bool)"}},"id":39162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5836:67:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5827:76:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39164,"nodeType":"ExpressionStatement","src":"5827:76:48"}]}},"id":39167,"nodeType":"IfStatement","src":"5229:685:48","trueBody":{"id":39146,"nodeType":"Block","src":"5267:385:48","statements":[{"expression":{"id":39144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39128,"name":"reject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"5535:6:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":39133,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5574:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5576:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"5574:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39129,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"5544:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5549:15:48","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47578,"src":"5544:20:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":39131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5544:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5567:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"5544:29:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5544:44:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"expression":{"id":39140,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"5624:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":39141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5635:5:48","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"5624:16:48","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39136,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"5592:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5597:8:48","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"5592:13:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5592:15:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5608:15:48","memberName":"hasSupplyOfKind","nodeType":"MemberAccess","referencedDeclaration":48117,"src":"5592:31:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_SupplyKind_$50229_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,enum SupplyKind) view returns (bool)"}},"id":39142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5592:49:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5544:97:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5535:106:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39145,"nodeType":"ExpressionStatement","src":"5535:106:48"}]}},{"condition":{"id":39168,"name":"reject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"5927:6:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39174,"nodeType":"IfStatement","src":"5923:120:48","trueBody":{"id":39173,"nodeType":"Block","src":"5935:108:48","statements":[{"errorCall":{"arguments":[{"hexValue":"70726f7061676174696f6e206e6f742073757070706f7274656420666f72207375626e657473207769746820455243323020737570706c79","id":39170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5973:58:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_34eedd2aeb34a77e6777de611c865b0564b6c2921cf9e4d802d0985cc2e999a2","typeString":"literal_string \"propagation not suppported for subnets with ERC20 supply\""},"value":"propagation not suppported for subnets with ERC20 supply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34eedd2aeb34a77e6777de611c865b0564b6c2921cf9e4d802d0985cc2e999a2","typeString":"literal_string \"propagation not suppported for subnets with ERC20 supply\""}],"id":39169,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"5956:16:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":39171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5956:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39172,"nodeType":"RevertStatement","src":"5949:83:48"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":39178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39175,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"6200:9:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39176,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"6213:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":39177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6224:7:48","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"6213:18:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"6200:31:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":39179,"name":"isLCA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39110,"src":"6235:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6200:40:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39197,"nodeType":"IfStatement","src":"6196:190:48","trueBody":{"id":39196,"nodeType":"Block","src":"6242:144:48","statements":[{"expression":{"id":39183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6256:23:48","subExpression":{"expression":{"id":39181,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"6258:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6260:19:48","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":43036,"src":"6258:21:48","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":39184,"nodeType":"ExpressionStatement","src":"6256:23:48"},{"expression":{"arguments":[{"id":39188,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"6321:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":39185,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"6293:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6304:16:48","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":42446,"src":"6293:27:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":39189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6293:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39190,"nodeType":"ExpressionStatement","src":"6293:41:48"},{"expression":{"components":[{"id":39193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39191,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39063,"src":"6356:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":39192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6369:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6356:18:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":39194,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6355:20:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":39064,"id":39195,"nodeType":"Return","src":"6348:27:48"}]}},{"expression":{"arguments":[{"id":39201,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"6470:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":39198,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"6441:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6452:17:48","memberName":"commitBottomUpMsg","nodeType":"MemberAccess","referencedDeclaration":42612,"src":"6441:28:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":39202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39203,"nodeType":"ExpressionStatement","src":"6441:42:48"},{"expression":{"components":[{"id":39210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39204,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39063,"src":"6547:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":39205,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"6560:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6573:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"6560:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6581:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"6560:26:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6560:31:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6547:44:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":39211,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6546:46:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":39064,"id":39212,"nodeType":"Return","src":"6539:53:48"}]},"documentation":{"id":39057,"nodeType":"StructuredDocumentation","src":"3507:476:48","text":" @notice Commit the cross message to storage. It outputs a flag signaling\n if the committed messages was bottom-up and some funds need to be\n burnt.\n @dev It also validates that destination subnet ID is not empty\n and not equal to the current network.\n @param crossMessage The cross-network message to commit.\n @return shouldBurn A Boolean that indicates if the input amount should be burned."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCrossMessage","nameLocation":"3997:19:48","parameters":{"id":39061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39060,"mutability":"mutable","name":"crossMessage","nameLocation":"4033:12:48","nodeType":"VariableDeclaration","scope":39214,"src":"4017:28:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":39059,"nodeType":"UserDefinedTypeName","pathNode":{"id":39058,"name":"CrossMsg","nameLocations":["4017:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"4017:8:48"},"referencedDeclaration":49974,"src":"4017:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"4016:30:48"},"returnParameters":{"id":39064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39063,"mutability":"mutable","name":"shouldBurn","nameLocation":"4070:10:48","nodeType":"VariableDeclaration","scope":39214,"src":"4065:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39062,"name":"bool","nodeType":"ElementaryTypeName","src":"4065:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4064:17:48"},"scope":39235,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":39234,"nodeType":"FunctionDefinition","src":"6912:163:48","nodes":[],"body":{"id":39233,"nodeType":"Block","src":"6979:96:48","nodes":[],"statements":[{"condition":{"id":39222,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39219,"src":"6993:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39232,"nodeType":"IfStatement","src":"6989:80:48","trueBody":{"id":39231,"nodeType":"Block","src":"7005:64:48","statements":[{"expression":{"arguments":[{"id":39228,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39217,"src":"7056:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":39225,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"7027:17:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7019:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":39223,"name":"address","nodeType":"ElementaryTypeName","src":"7019:8:48","stateMutability":"payable","typeDescriptions":{}}},"id":39226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":39227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7046:9:48","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"7019:36:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":39229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:39:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39230,"nodeType":"ExpressionStatement","src":"7019:39:48"}]}}]},"documentation":{"id":39215,"nodeType":"StructuredDocumentation","src":"6605:302:48","text":" @dev Performs transaction side-effects from the commitment of a cross-net message. Like\n burning funds when bottom-up messages are propagated.\n @param v - the value of the committed cross-net message\n @param shouldBurn - flag if the message should burn funds"},"implemented":true,"kind":"function","modifiers":[],"name":"_crossMsgSideEffects","nameLocation":"6921:20:48","parameters":{"id":39220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39217,"mutability":"mutable","name":"v","nameLocation":"6950:1:48","nodeType":"VariableDeclaration","scope":39234,"src":"6942:9:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39216,"name":"uint256","nodeType":"ElementaryTypeName","src":"6942:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39219,"mutability":"mutable","name":"shouldBurn","nameLocation":"6958:10:48","nodeType":"VariableDeclaration","scope":39234,"src":"6953:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39218,"name":"bool","nodeType":"ElementaryTypeName","src":"6953:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6941:28:48"},"returnParameters":{"id":39221,"nodeType":"ParameterList","parameters":[],"src":"6979:0:48"},"scope":39235,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":38907,"name":"GatewayActorModifiers","nameLocations":["1094:21:48"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"1094:21:48"},"id":38908,"nodeType":"InheritanceSpecifier","src":"1094:21:48"}],"canonicalName":"GatewayMessengerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[39235,43137],"name":"GatewayMessengerFacet","nameLocation":"1069:21:48","scope":39236,"usedErrors":[1134,1138,37376,37420,37422,37426,37468,37470,37482,37526]}],"license":"MIT OR Apache-2.0"},"id":48} \ No newline at end of file +{"abi":[{"type":"function","name":"propagate","inputs":[{"name":"msgCid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendUserXnetMessage","inputs":[{"name":"crossMsg","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"payable"},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"CannotSendCrossMsgToItself","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgFromSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgValue","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NotEnoughFee","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]}],"bytecode":{"object":"0x60808060405234610016576123aa908161001c8239f35b600080fdfe608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c63430008130033","sourceMap":"1060:6017:48:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":3668,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":676,"length":20},{"start":3337,"length":20},{"start":3439,"length":20},{"start":3769,"length":20},{"start":3854,"length":20},{"start":3955,"length":20},{"start":4040,"length":20},{"start":5527,"length":20},{"start":5605,"length":20},{"start":5710,"length":20},{"start":5866,"length":20},{"start":6416,"length":20},{"start":6657,"length":20},{"start":6738,"length":20}]}}},"deployedBytecode":{"object":"0x608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c63430008130033","sourceMap":"1060:6017:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2620:20;1060:6017;;;;2619:21;2615:110;;1001:56;;;1060:6017;1001:56;;;;;2802:20;;;;1001:56;4276:16:64;1001:56:48;4270:22:64;;4266:74;;4353:9;:15;4349:69;;1001:56:48;3266:10;1001:56;3159:22;2852:29;1001:56;;;:::i;:::-;2852:29;:::i;:::-;3159:22;;1001:56;;;;1060:6017;1001:56;;3191:24;1001:56;;;3191:24;:::i;:::-;3266:10;:::i;:::-;3312:28;4276:16:64;1001:56:48;4353:9:64;3312:28:48;:::i;:::-;3408:17;3404:91;;1060:6017;;;3404:91;13330:21:1;;:31;13326:63;;3449:10:48;;;;;;13419:35:1;;1060:6017:48;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;13468:8:1;13464:33;;3404:91:48;;1060:6017;;;13464:33:1;1060:6017:48;-1:-1:-1;;;13485:12:1;;;1060:6017:48;;;;13326:63:1;-1:-1:-1;;1060:6017:48;-1:-1:-1;;;13370:19:1;;;4349:69:64;1060:6017:48;;;;4391:16:64;;;;;;4266:74;1060:6017:48;;-1:-1:-1;;;4315:14:64;;1060:6017:48;;4315:14:64;2615:110:48;1060:6017;;887:60;1060:6017;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;1725:48;;;;;;2663:51;;;;887:60;;;;;;:::i;:::-;2663:51;;;1060:6017;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;;;;1678:24;1060:6017;;;;1677:25;1673:111;;1798:16;;;;;;:::i;:::-;:22;887:60;1824:32;1836:20;:16;;;;:::i;:::-;:20;887:60;1824:9;:32;:::i;:::-;1798:58;1794:118;;887:60;2093:16;887:60;;2093:21;:16;;;;:::i;:::-;:21;;:::i;:::-;:30;1060:6017;2093:30;;;:::i;:::-;887:60;:::i;:::-;1060:6017;;-1:-1:-1;;;2093:52:48;;;;;887:60;;;1060:6017;;;;;887:60;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;2093:52;:37;;:52;;;;;;;;;;;1060:6017;2092:53;;2088:118;;1060:6017;;;;;;:::i;:::-;887:60;;;;;;;1060:6017;887:60;;;1060:6017;;;887:60;;;;;1060:6017;;;;;;:::i;:::-;887:60;;;;;;;;;;1060:6017;;;887:60;;;;;:::i;:::-;;;;;;;;;;;;;1060:6017;;;887:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;1060:6017;887:60;1060:6017;;887:60;;;;;:::i;:::-;;;;;;;1836:20;887:60;;;;;;;1060:6017;;;;887:60;;;;;2347:16;887:60;2282:29;887:60;2383:10;887:60;;;2282:29;:::i;:::-;2347:16;;;:::i;:::-;:22;887:60;2383:10;:::i;:::-;1060:6017;;887:60;;;;;1060:6017;;;887:60;;;;;1060:6017;;;2088:118;1060:6017;;-1:-1:-1;;;2168:27:48;;1060:6017;;2168:27;2093:52;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1060:6017;;887:60;1060:6017;;887:60;;;;1794:118;1060:6017;;-1:-1:-1;;;1879:22:48;;1060:6017;;1879:22;1673:111;1060:6017;887:60;1060:6017;;;;;;:::i;:::-;;;;;;;;;;;;;;;1725:48;;;;;;;;;;887:60;;;;;;:::i;1060:6017::-;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;-1:-1:-1;;;;;1060:6017:48;;;;;;-1:-1:-1;;1060:6017:48;;;;:::o;887:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1060:6017;;;;;;887:60;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1060:6017;;;887:60;;;;;;;;;;:::o;:::-;1060:6017;;;887:60;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;:::o;:::-;-1:-1:-1;;;;;887:60:48;;;;;;;;;:::o;:::-;;;;;;;;;;;1060:6017;;;;;:::i;:::-;887:60;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;:::i;:::-;1060:6017;;887:60;1060:6017;;;;:::i;:::-;887:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;;;;;;1060:6017;;;887:60;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2131:13:48;887:60;;;;;;;;;;;;;;;;;;;;-1:-1:-1;887:60:48;-1:-1:-1;;;;;;;;;;;887:60:48;-1:-1:-1;887:60:48;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1060:6017;;;;;;;:::i;:::-;887:60;;;;;;;;;;;;-1:-1:-1;887:60:48;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;1060:6017;;;;;:::i;:::-;887:60;;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1060:6017;;;;;:::i;:::-;887:60;;1060:6017;;;887:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;1001:56::-;;;1060:6017;;;;:::i;:::-;1001:56;;-1:-1:-1;;;;;1001:56:48;;887:60;1001:56;;;;;;1060:6017;1001:56;1060:6017;1001:56;;887:60;;;;;;;;;;;;;-1:-1:-1;887:60:48;;-1:-1:-1;887:60:48;1001:56;-1:-1:-1;1001:56:48;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;887:60;;-1:-1:-1;;;;;887:60:48;;;1001:56;;-1:-1:-1;887:60:48;;;;;;;;1001:56;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1060:6017;;;1001:56;;;;;;;;;;;;;;;;;1060:6017;;1001:56;;-1:-1:-1;1001:56:48;;;;;;:::i;:::-;887:60;;;;1001:56;;;;;;;;;;;887:60;1001:56;887:60;;;1001:56;;;;;;;;;:::i;:::-;:::o;:::-;887:60;;;;-1:-1:-1;887:60:48;;;;-1:-1:-1;887:60:48;1001:56;-1:-1:-1;1001:56:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1001:56:48;;;;;;;;;;;;;887:60;1001:56;;;;;887:60;;;1001:56;;;;;;;;;;;;;;;1060:6017;;;;;:::i;:::-;1001:56;;;;;:::i;:::-;;;;;;1060:6017;;;;;:::i;:::-;;1001:56;;;;1060:6017;1001:56;;;;:::i;:::-;;;1060:6017;;;;:::i;:::-;1001:56;1060:6017;1001:56;;1060:6017;1001:56;1060:6017;;;;:::i;:::-;1001:56;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;887:60:48;;1001:56;;;;887:60;;-1:-1:-1;;;;;;887:60:48;1001:56;;;;;;;;;:::i;:::-;887:60;1001:56;;;;;;;;;;;;;;;1060:6017;;;1001:56;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;1001:56:48;;;;887:60;;1001:56;;;;;;;;;;;;:::o;:::-;;887:60;-1:-1:-1;887:60:48;;-1:-1:-1;887:60:48;1001:56;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;887:60;;;;;;1001:56;;;887:60;;1001:56;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;887:60;;1001:56;;;;;;;;;;;;;;;;:::i;:::-;;887:60;1001:56;887:60;;1001:56;887:60;1001:56;;;;;:::i;:::-;;;;;;;1060:6017;1001:56;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;1060:6017::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;1060:6017::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;887:60;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;:::o;:::-;;;;;;;;;;;;3988:2611;4113:23;:20;;:23;;:32;1060:6017;;887:60;;;4159:12;;4113:23;4159:12;;;1060:6017;4113:23;1060:6017;;;;;;;;:::i;:::-;4159:12;:10;;:12;;;;;;;-1:-1:-1;4159:12:48;;;3988:2611;4155:76;;;1060:6017;;887:60;;;4351:24;;1060:6017;4159:12;4351:24;;887:60;4113:23;887:60;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;887:60:48;1060:6017;887:60;;;;:::i;:::-;4351:24;4159:10;;4351:24;;;;;;;-1:-1:-1;4351:24:48;;;3988:2611;4347:90;;;4470:20;;1060:6017;4113:23;4470:25;;:34;1060:6017;;;887:60;;;;;;;4537:45;;1060:6017;4159:12;4537:45;;1060:6017;;;;;;;887:60;;1060:6017;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1060:6017:48;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;887:60;1060:6017;;;;-1:-1:-1;;;;;;887:60:48;1060:6017;;;;;;;;;;;-1:-1:-1;;1060:6017:48;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1060:6017:48;;;;;;:::i;:::-;4537:45;:30;;:45;;;;;;;-1:-1:-1;4537:45:48;;;3988:2611;1060:6017;;;;887:60;;;;4658:21;;1060:6017;4159:12;4658:21;;1060:6017;-1:-1:-1;1060:6017:48;;;;887:60;1060:6017;;;;:::i;:::-;;;;-1:-1:-1;;1060:6017:48;;;;;;;:::i;:::-;4658:21;4159:10;;4658:21;;;;;;887:60;4113:23;4658:21;887:60;4658:21;-1:-1:-1;4658:21:48;;;3988:2611;1060:6017;;;887:60;;;;;;;;4658:43;;1060:6017;4159:12;4658:43;;887:60;;;;;;:::i;:::-;4658:43;4159:10;;4658:43;;;;;;;-1:-1:-1;4658:43:48;;;3988:2611;5200:19;-1:-1:-1;1060:6017:48;;;;:::i;:::-;5246:19;5233:32;;5246:19;;-1:-1:-1;;1060:6017:48;;-1:-1:-1;;;5544:22:48;;4113:23;4159:12;5544:22;;1060:6017;;-1:-1:-1;1060:6017:48;;;;;;887:60;1060:6017;:::i;:::-;5544:22;4159:10;;5544:22;;;;;;887:60;4113:23;5544:22;887:60;5544:22;-1:-1:-1;5544:22:48;;;5229:685;1060:6017;;;887:60;;;;;;;;5544:44;;1060:6017;4159:12;5544:44;;887:60;;;;;;:::i;:::-;5544:44;4159:10;;5544:44;;;;;;;-1:-1:-1;5544:44:48;;;5229:685;5544:97;;;;5229:685;5535:106;5229:685;5923:120;;1060:6017;;;:::i;:::-;6200:31;:40;;;;;5229:685;6196:190;;;10399:24:63;1001:56:48;1060:6017;;;;10385:12:63;-1:-1:-1;;;;;10385:12:63;887:60:48;1060:6017;5246:19;1060:6017;;;;;;;1001:56;;;;;;;;;;;;;;10504:15:63;1060:6017:48;;10529:20:63;-1:-1:-1;;;;;1060:6017:48;;;887:60;10475:20:63;1060:6017:48;10475:20:63;;:26;1001:56:48;10529:20:63;:::i;:::-;1060:6017:48;;;;;;;;10504:15:63;1060:6017:48;1001:56;-1:-1:-1;1001:56:48;2943:20:63;4113:23:48;1001:56;1060:6017;-1:-1:-1;1001:56:48;2989:17:63;;;;1001:56:48;;2989:22:63;10700:1745;2989:17;;;1060:6017:48;;;10875:29:63;1060:6017:48;;;4361:13;1060:6017;;;;;10700:1745:63;1060:6017:48;10875:10:63;:29;:::i;:::-;6560:20:48;:26;1060:6017;6560:31;;3988:2611;:::o;1060:6017::-;-1:-1:-1;;;;;4361:13:48;1001:56;887:60;-1:-1:-1;;;;;1060:6017:48;;;;;;;;5246:19;1060:6017;;;:::i;:::-;;;10700:1745:63;-1:-1:-1;;1060:6017:48;11079:10:63;;887:60:48;11100:25:63;1001:56:48;-1:-1:-1;;;;;887:60:48;11079:46:63;887:60:48;;1060:6017;11079:10:63;;887:60:48;1060:6017;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1060:6017:48;;;:::i;:::-;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11347:13:63;1001:56:48;887:60;1060:6017;;;1001:56;1060:6017;;1001:56;4113:23;1001:56;887:60;;;;;;;1001:56;-1:-1:-1;887:60:48;-1:-1:-1;;;;;;;;;;;1001:56:48;-1:-1:-1;1001:56:48;;;;;;;;;;;;;;;:::i;:::-;1060:6017;1001:56;;;1060:6017;;;1001:56;;10385:12:63;4113:23:48;11298:185:63;;1001:56:48;1060:6017;11298:185:63;;1001:56:48;-1:-1:-1;11572:13:63;;;;;;1060:6017:48;;;4113:23;1060:6017;;;;;;4113:23;1060:6017;;;;;;;;:::i;:::-;11298:185:63;4113:23:48;11298:185:63;;1060:6017:48;;;;;;11298:185:63;;1060:6017:48;;;;;;;;;;;;887:60;;;;;4113:23;887:60;;1060:6017;4113:23;1060:6017;;;;;;;887:60;;1060:6017;-1:-1:-1;1060:6017:48;;;;;;;10385:12:63;;;;;;11843:38;10385:12;;11843:38;;;;-1:-1:-1;1060:6017:48;11079:10:63;;1060:6017:48;;;;;11079:10:63;1060:6017:48;12121:29:63;11079:10;;12121:29;:::i;:::-;4113:23:48;11298:185:63;;1060:6017:48;-1:-1:-1;1001:56:48;2943:20:63;4113:23:48;1001:56;1060:6017;-1:-1:-1;1001:56:48;4242:14:63;;;-1:-1:-1;;;;;1060:6017:48;;887:60;-1:-1:-1;;;;;1060:6017:48;;;;;;;4113:23;5246:19;1060:6017;;;;887:60;;;;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;;4113:23;1060:6017;;;;;:::i;:::-;887:60;;-1:-1:-1;887:60:48;4113:23;-1:-1:-1;887:60:48;-1:-1:-1;1060:6017:48;;;;;;-1:-1:-1;;;4113:23:48;11298:185:63;;1060:6017:48;2989:17:63;4266:13;;1060:6017:48;-1:-1:-1;1060:6017:48;11298:185:63;;4330:10;887:60:48;;1060:6017;4586:6:63;;-1:-1:-1;4373:13:63;;;;;;11075:1360;;;;1060:6017:48;11075:1360:63;10700:1745;;4362:9;11298:185;4586:26;4598:13;5246:19:48;11298:185:63;1060:6017:48;11298:185:63;;4598:10;:13;:::i;:::-;;4586:26;;:::i;:::-;1060:6017:48;4362:9:63;;1060:6017:48;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;;4113:23;1060:6017;;;;5246:19;1060:6017;;;;;;-1:-1:-1;1001:56:48;;;;;;;;;;11079:10:63;;;1060:6017:48;11079:10:63;;-1:-1:-1;887:60:48;4113:23;-1:-1:-1;887:60:48;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4113:23;1060:6017;;5246:19;1060:6017;;;;;;;;;;;;:::i;:::-;887:60;;1060:6017;;;;;;;;;;;;;;;11561:9:63;5246:19:48;11079:10:63;;;11610:32;11079:10;11629:13;11079:10;1060:6017:48;11079:10:63;;11629:13;:::i;:::-;11298:185;1001:56:48;1060:6017;11298:185:63;;11610:13;1001:56:48;;:::i;:::-;11610:32:63;;;;:::i;:::-;;;:::i;:::-;;1060:6017:48;11561:9:63;;;;;1001:56:48;887:60;;-1:-1:-1;;;;;887:60:48;;;1001:56;;-1:-1:-1;4113:23:48;887:60;;;;5246:19;887:60;;;;1001:56;;;1060:6017;4113:23;1060:6017;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;-1:-1:-1;1060:6017:48;;;;-1:-1:-1;1060:6017:48;;;;-1:-1:-1;1060:6017:48;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;11075:1360:63;11079:10;12391:29;11079:10;1060:6017:48;;11079:10:63;;12391:29;:::i;:::-;10700:1745;;1060:6017:48;;;;-1:-1:-1;1060:6017:48;;4159:12;1060:6017;;-1:-1:-1;1060:6017:48;6196:190;6258:21;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;887:60;-1:-1:-1;;;;;1060:6017:48;;;;5246:19;-1:-1:-1;;;1060:6017:48;;;;;;-1:-1:-1;;;1060:6017:48;;;6258:21;1060:6017;887:60;4113:23;9542:20:63;;:23;;:32;1060:6017:48;;887:60;;;;;;9542:52:63;;1060:6017:48;4159:12;9542:52:63;;887:60:48;;;;;;:::i;:::-;1060:6017;;887:60;;;;1060:6017;887:60;;;1060:6017;;887:60;;;-1:-1:-1;;;;;9580:13:63;887:60:48;;;;1060:6017;4113:23;887:60;;;;;;;;;;;-1:-1:-1;887:60:48;-1:-1:-1;;;;;;;;;;;887:60:48;-1:-1:-1;887:60:48;;;;;;9542:52:63;;;;;-1:-1:-1;9542:52:63;;4159:10:48;;9542:52:63;;;;;;;-1:-1:-1;9542:52:63;;;887:60:48;-1:-1:-1;1060:6017:48;;-1:-1:-1;;;13443:17:63;;4113:23:48;4159:12;13443:17:63;;1060:6017:48;;;;;;;;;;;:::i;:::-;13443:17:63;4159:10:48;;13443:17:63;;;;;;;-1:-1:-1;13443:17:63;;;887:60:48;1001:56;-1:-1:-1;1001:56:48;-1:-1:-1;4113:23:48;1001:56;1060:6017;-1:-1:-1;1001:56:48;13480:9:63;1060:6017:48;4113:23;1060:6017;4159:12;13480:9:63;;1060:6017:48;:::i;:::-;;;887:60;;;;;;;13480:19:63;;;4159:12:48;13480:19:63;;1060:6017:48;;;;;;:::i;:::-;13480:19:63;4159:10:48;;13480:19:63;;;;;;;-1:-1:-1;13480:19:63;;;887:60:48;13479:20:63;9678:70;;1060:6017:48;9780:19:63;;1001:56:48;;-1:-1:-1;;;;;9883:16:63;887:60:48;;;9810:20:63;1060:6017:48;9810:20:63;;:26;1001:56:48;9883:16:63;:::i;:::-;887:60:48;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;;;9909:17:63;1060:6017:48;9930:20:63;;:26;1060:6017:48;9909:17:63;;1001:56:48;;;1060:6017;;;;;;;;;;4113:23;1060:6017;;;;887:60;;;;;;;9999:21:63;;;4159:12:48;9999:21:63;;1060:6017:48;;;;;;:::i;:::-;9999:21:63;4159:10:48;;9999:21:63;;;;;;;-1:-1:-1;9999:21:63;;;887:60:48;-1:-1:-1;1060:6017:48;;4113:23;1060:6017;;;-1:-1:-1;;;;;887:60:48;;;;9972:73:63;;1060:6017:48;;;;;;;;:::i;:::-;9972:73:63;;;-1:-1:-1;6348:27:48;:::o;9999:21:63:-;;4113:23:48;9999:21:63;;4113:23:48;9999:21:63;;;;;;4113:23:48;9999:21:63;;;:::i;:::-;;;1060:6017:48;;;;;;;9972:73:63;1060:6017:48;;:::i;:::-;9999:21:63;;;;1060:6017:48;;;9999:21:63;;;-1:-1:-1;9999:21:63;;;1060:6017:48;;887:60;-1:-1:-1;887:60:48;;;;;9678:70:63;1060:6017:48;;-1:-1:-1;;;9716:21:63;;4159:12:48;;9716:21:63;13480:19;;;;4113:23:48;13480:19:63;4113:23:48;13480:19:63;;;;;;;:::i;:::-;;;;13443:17;;4113:23:48;13443:17:63;;4113:23:48;13443:17:63;;;;;;4113:23:48;13443:17:63;;;:::i;:::-;;;1060:6017:48;;;;;;13443:17:63;;;;;;-1:-1:-1;13443:17:63;;9542:52;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;887:60:48;;;-1:-1:-1;;;;;887:60:48;;;;;-1:-1:-1;4113:23:48;887:60;;;;5246:19;887:60;;;;;;;6200:40;;;;;;5923:120;1060:6017;;-1:-1:-1;;;5956:76:48;;4113:23;4159:12;5956:76;;1060:6017;;;;;887:60;1060:6017;887:60;;;1060:6017;;;;;;;;5956:76;5544:97;1060:6017;;;4113:23;1060:6017;;;887:60;;;;;;;5592:15;;;4159:12;5592:15;;1060:6017;;;;;;:::i;:::-;5592:15;4159:10;;5592:15;;;;;;-1:-1:-1;5592:15:48;;;5544:97;5592:49;;;;:::i;:::-;5544:97;;;5592:15;4113:23;5592:15;;4113:23;5592:15;;;;;;4113:23;5592:15;;;:::i;:::-;;;1060:6017;;;;;;5592:49;1060:6017;;:::i;:::-;5592:15;;;;;-1:-1:-1;5592:15:48;;5544:44;;;;;4113:23;5544:44;4113:23;5544:44;;;;;;;:::i;:::-;;;;;:22;;;;;;;;;;;;:::i;:::-;;;;5229:685;1060:6017;;;;;;:::i;:::-;5662:31;;;5658:256;;5229:685;;;;;5658:256;887:60;;1060:6017;;;887:60;;;;;;;;5836:22;;1060:6017;4159:12;5836:22;;887:60;;;;;;:::i;:::-;5836:22;4159:10;;5836:22;;;;;;;;;4113:23;5836:22;1060:6017;5836:22;;;;5658:256;1060:6017;;;887:60;;;;;;;5836:33;;;4159:12;5836:33;;1060:6017;;;;;;:::i;:::-;5836:33;4159:10;;5836:33;;;;;;;;;;;5658:256;5836:67;;;;;:::i;:::-;5658:256;;;;5836:33;;;4113:23;5836:33;;4113:23;5836:33;;;;;;4113:23;5836:33;;;:::i;:::-;;;1060:6017;;;;;;5836:67;1060:6017;;:::i;:::-;5836:33;;;;;;-1:-1:-1;5836:33:48;;;1060:6017;;887:60;;;;;;;;5836:22;;;;;;;;;;;;;:::i;:::-;;;;;1060:6017;;887:60;1060:6017;;887:60;;;;4658:43;;;;;4113:23;4658:43;4113:23;4658:43;;;;;;;:::i;:::-;;;;;:21;;;;;;;;;;;;:::i;:::-;;;;4537:45;4113:23;4537:45;;4113:23;4537:45;;;;;;4113:23;4537:45;;;:::i;:::-;;;1060:6017;;;;;;;;;;;;4537:45;;;;1060:6017;;;;4537:45;;;-1:-1:-1;4537:45:48;;4347:90;1060:6017;;-1:-1:-1;;;4398:28:48;;4159:12;;4398:28;4351:24;;;;4113:23;4351:24;4113:23;4351:24;;;;;;;:::i;:::-;;;;4155:76;1060:6017;;-1:-1:-1;;;4194:26:48;;4159:12;;4194:26;4159:12;;;;4113:23;4159:12;4113:23;4159:12;;;;;;;:::i;:::-;;;;6912:163;;6989:80;;6912:163;:::o;6989:80::-;13330:21:1;;:31;13326:63;;13419:35;;;;;887:60:48;13419:35:1;;1060:6017:48;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;13419:35:1;1060:6017:48;;;;;;13468:8:1;13464:33;;6912:163:48:o;13464:33:1:-;1060:6017:48;;-1:-1:-1;;;13485:12:1;;;;;1060:6017:48;;;13326:63:1;1060:6017:48;;-1:-1:-1;;;13370:19:1;;;;;1060:6017:48;;887:60;-1:-1:-1;;;;;887:60:48;;;1060:6017;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;887:60;1060:6017;;;887:60;;;;1060:6017;;;;887:60;1060:6017;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;887:60;;1060:6017;;;;;-1:-1:-1;887:60:48;1060:6017;887:60;-1:-1:-1;887:60:48;1060:6017;;;;-1:-1:-1;1060:6017:48;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;887:60;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;887:60;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;887:60;;;1060:6017;;;;;;;;;;;;:::i;:::-;887:60;-1:-1:-1;887:60:48;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;887:60;1060:6017;;;;1001:56;;;1060:6017;;;;;;;;;;;;;;;;887:60;;;;1060:6017;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1001:56:48;;;;;;;;;;1060:6017;;;;;;;;;;887:60;;;;1060:6017;;;;887:60;1060:6017;;;;;;;;;;;;;887:60;;;;1060:6017;;;;;;;;;;;;:::i;:::-;887:60;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;887:60;1060:6017;;;;;;;;;;;;;;;;;;887:60;;;1060:6017;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1001:56:48;;;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;887:60;1060:6017;;;;;;;;887:60;1060:6017;;;;;;;;;;;;;;887:60;1060:6017;;887:60;;;;1060:6017;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:56;;;;;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;887:60;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:56;;;;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;887:60;;;;;;;;1001:56;;;;1060:6017;1001:56;1060:6017;;;;;;;;1001:56;1060:6017;1001:56;1060:6017;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;887:60;;;;;;1060:6017;;-1:-1:-1;887:60:48;1060:6017;-1:-1:-1;;1060:6017:48;;887:60;1060:6017;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;;-1:-1:-1;;1001:56:48;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;887:60;;;;;;;;1001:56;;;;1060:6017;1001:56;1060:6017;;;;;;;1001:56;1060:6017;1001:56;1060:6017;;;:::i;:::-;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;;;;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;887:60;;;;;;1060:6017;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;;-1:-1:-1;;1001:56:48;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;887:60;;;1060:6017;887:60;;;1001:56;;;;;;1060:6017;;;;;;;1001:56;;;1060:6017;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;;;;;;;;;;;;;;;1001:56;;;;;;;;1060:6017;1001:56;1060:6017;;;;;:::i;:::-;;;;-1:-1:-1;1060:6017:48;;;;:::o;:::-;1001:56;1060:6017;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::o;:::-;887:60;;1060:6017;;;;;;;;;;;;:::o;:::-;;;;;;;887:60;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;;;;;;:::i;:::-;-1:-1:-1;887:60:48;;;;;;-1:-1:-1;;;;;;;;;;;1060:6017:48;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;887:60:48;;;1060:6017;;;;;;;;;;;;;;:::o;890:185:76:-;1060:6017:48;;;-1:-1:-1;;;1002:50:76;;1060:6017:48;;;;;;1002:50:76;;1060:6017:48;;-1:-1:-1;;;;;887:60:48;1002:50:76;;;;;;;;;;;890:185;1060:6017:48;;;;;;;;:::i;:::-;;;;:::i;:::-;1002:66:76;890:185;:::o;1002:50::-;;;;;;;;;;;;;;:::i;:::-;;;1060:6017:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1002:50:76;;;;1060:6017:48;;;;1002:50:76;;;;;;1060:6017:48;887:60;1002:50:76;887:60:48;;;;","linkReferences":{"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":3640,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":648,"length":20},{"start":3309,"length":20},{"start":3411,"length":20},{"start":3741,"length":20},{"start":3826,"length":20},{"start":3927,"length":20},{"start":4012,"length":20},{"start":5499,"length":20},{"start":5577,"length":20},{"start":5682,"length":20},{"start":5838,"length":20},{"start":6388,"length":20},{"start":6629,"length":20},{"start":6710,"length":20}]}}},"methodIdentifiers":{"propagate(bytes32)":"25bf0db6","sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":"210b944e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSendCrossMsgToItself\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgFromSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendUserXnetMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"propagate(bytes32)\":{\"details\":\"propagates the populated cross net message for the given cid\",\"params\":{\"msgCid\":\"- the cid of the cross-net message\"}},\"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"details\":\"sends a general-purpose cross-message from the local subnet to the destination subnet. IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.\",\"params\":{\"crossMsg\":\"- a cross-message to send.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayMessengerFacet.sol\":\"GatewayMessengerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"CannotSendCrossMsgToItself"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgFromSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgValue"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NotEnoughFee"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[{"internalType":"bytes32","name":"msgCid","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"propagate"},{"inputs":[{"internalType":"struct CrossMsg","name":"crossMsg","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"payable","type":"function","name":"sendUserXnetMessage"}],"devdoc":{"kind":"dev","methods":{"propagate(bytes32)":{"details":"propagates the populated cross net message for the given cid","params":{"msgCid":"- the cid of the cross-net message"}},"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":{"details":"sends a general-purpose cross-message from the local subnet to the destination subnet. IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.","params":{"crossMsg":"- a cross-message to send."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayMessengerFacet.sol":"GatewayMessengerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayMessengerFacet.sol","id":39236,"exportedSymbols":{"BURNT_FUNDS_ACTOR":[36861],"CannotSendCrossMsgToItself":[37376],"CrossMsg":[49927],"ERR_GENERAL_CROSS_MSG_DISABLED":[38903],"ERR_MULTILEVEL_CROSS_MSG_DISABLED":[38906],"FilAddress":[1428],"GatewayActorModifiers":[43081],"GatewayMessengerFacet":[39235],"IPCMsgType":[37364],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgValue":[37426],"LibGateway":[42888],"MethodNotAllowed":[37526],"StorableMsg":[49944],"StorableMsgHelper":[47414],"SubnetID":[50030],"SubnetIDHelper":[48025],"SupplyKind":[50182],"SupplySourceHelper":[48351]},"nodeType":"SourceUnit","src":"46:7032:48","nodes":[{"id":38872,"nodeType":"PragmaDirective","src":"46:23:48","nodes":[],"literals":["solidity","0.8",".19"]},{"id":38874,"nodeType":"ImportDirective","src":"71:72:48","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":43082,"symbolAliases":[{"foreign":{"id":38873,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43081,"src":"79:21:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38876,"nodeType":"ImportDirective","src":"144:61:48","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":38875,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"152:17:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38879,"nodeType":"ImportDirective","src":"206:62:48","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":38877,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"214:8:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38878,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"224:11:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38881,"nodeType":"ImportDirective","src":"269:51:48","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":38880,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"277:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38884,"nodeType":"ImportDirective","src":"321:59:48","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":38882,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"329:8:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38883,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"339:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38890,"nodeType":"ImportDirective","src":"381:160:48","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":38885,"name":"InvalidCrossMsgFromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37422,"src":"389:25:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38886,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"416:24:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38887,"name":"CannotSendCrossMsgToItself","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37376,"src":"442:26:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38888,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"470:20:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38889,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"492:16:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38892,"nodeType":"ImportDirective","src":"542:57:48","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":38891,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"550:14:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38894,"nodeType":"ImportDirective","src":"600:49:48","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":42889,"symbolAliases":[{"foreign":{"id":38893,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"608:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38896,"nodeType":"ImportDirective","src":"650:63:48","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":38895,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"658:17:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38898,"nodeType":"ImportDirective","src":"714:56:48","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":38897,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"722:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38900,"nodeType":"ImportDirective","src":"771:65:48","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":38899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"779:18:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38903,"nodeType":"VariableDeclaration","src":"838:109:48","nodes":[],"constant":true,"mutability":"constant","name":"ERR_GENERAL_CROSS_MSG_DISABLED","nameLocation":"854:30:48","scope":39236,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38901,"name":"string","nodeType":"ElementaryTypeName","src":"838:6:48","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"537570706f727420666f722067656e6572616c2d707572706f73652063726f73732d6e6574206d657373616765732069732064697361626c6564","id":38902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"887:60:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd3d18fc001c76f041be9d5eac6cfff6ccbbde88912dc4bd2be7f90d14666151","typeString":"literal_string \"Support for general-purpose cross-net messages is disabled\""},"value":"Support for general-purpose cross-net messages is disabled"},"visibility":"internal"},{"id":38906,"nodeType":"VariableDeclaration","src":"949:108:48","nodes":[],"constant":true,"mutability":"constant","name":"ERR_MULTILEVEL_CROSS_MSG_DISABLED","nameLocation":"965:33:48","scope":39236,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38904,"name":"string","nodeType":"ElementaryTypeName","src":"949:6:48","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6574206d657373616765732069732064697361626c6564","id":38905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1001:56:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d26608d922360a1e735d803f825aaa27321e2fbe06bd2a3cc06cf31db3fe498","typeString":"literal_string \"Support for multi-level cross-net messages is disabled\""},"value":"Support for multi-level cross-net messages is disabled"},"visibility":"internal"},{"id":39235,"nodeType":"ContractDefinition","src":"1060:6017:48","nodes":[{"id":38911,"nodeType":"UsingForDirective","src":"1122:37:48","nodes":[],"global":false,"libraryName":{"id":38909,"name":"FilAddress","nameLocations":["1128:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"1128:10:48"},"typeName":{"id":38910,"name":"address","nodeType":"ElementaryTypeName","src":"1143:15:48","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":38915,"nodeType":"UsingForDirective","src":"1164:34:48","nodes":[],"global":false,"libraryName":{"id":38912,"name":"SubnetIDHelper","nameLocations":["1170:14:48"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"1170:14:48"},"typeName":{"id":38914,"nodeType":"UserDefinedTypeName","pathNode":{"id":38913,"name":"SubnetID","nameLocations":["1189:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1189:8:48"},"referencedDeclaration":50030,"src":"1189:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":38919,"nodeType":"UsingForDirective","src":"1203:40:48","nodes":[],"global":false,"libraryName":{"id":38916,"name":"StorableMsgHelper","nameLocations":["1209:17:48"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"1209:17:48"},"typeName":{"id":38918,"nodeType":"UserDefinedTypeName","pathNode":{"id":38917,"name":"StorableMsg","nameLocations":["1231:11:48"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"1231:11:48"},"referencedDeclaration":49944,"src":"1231:11:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":38922,"nodeType":"UsingForDirective","src":"1248:37:48","nodes":[],"global":false,"libraryName":{"id":38920,"name":"SupplySourceHelper","nameLocations":["1254:18:48"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"1254:18:48"},"typeName":{"id":38921,"name":"address","nodeType":"ElementaryTypeName","src":"1277:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":38981,"nodeType":"FunctionDefinition","src":"1589:813:48","nodes":[],"body":{"id":38980,"nodeType":"Block","src":"1663:739:48","nodes":[],"statements":[{"condition":{"id":38931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1677:25:48","subExpression":{"expression":{"id":38929,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"1678:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1680:22:48","memberName":"generalPurposeCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"1678:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38937,"nodeType":"IfStatement","src":"1673:111:48","trueBody":{"id":38936,"nodeType":"Block","src":"1704:80:48","statements":[{"errorCall":{"arguments":[{"id":38933,"name":"ERR_GENERAL_CROSS_MSG_DISABLED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38903,"src":"1742:30:48","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":38932,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"1725:16:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:48:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38935,"nodeType":"RevertStatement","src":"1718:55:48"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":38938,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"1798:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1807:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"1798:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1815:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49935,"src":"1798:22:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38941,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1824:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1828:5:48","memberName":"value","nodeType":"MemberAccess","src":"1824:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":38943,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"1836:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1845:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"1836:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1853:3:48","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":49943,"src":"1836:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1824:32:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1798:58:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38952,"nodeType":"IfStatement","src":"1794:118:48","trueBody":{"id":38951,"nodeType":"Block","src":"1858:54:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38948,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"1879:20:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1879:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38950,"nodeType":"RevertStatement","src":"1872:29:48"}]}},{"condition":{"id":38961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2092:53:48","subExpression":{"arguments":[{"expression":{"id":38958,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2131:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2133:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"2131:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":38953,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"2093:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2102:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"2093:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2110:4:48","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49930,"src":"2093:21:48","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":38956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2115:8:48","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"2093:30:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2124:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47778,"src":"2093:37:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":38960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2093:52:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38966,"nodeType":"IfStatement","src":"2088:118:48","trueBody":{"id":38965,"nodeType":"Block","src":"2147:59:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38962,"name":"InvalidCrossMsgFromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37422,"src":"2168:25:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2168:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38964,"nodeType":"RevertStatement","src":"2161:34:48"}]}},{"assignments":[38968],"declarations":[{"constant":false,"id":38968,"mutability":"mutable","name":"shouldBurn","nameLocation":"2269:10:48","nodeType":"VariableDeclaration","scope":38980,"src":"2264:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38967,"name":"bool","nodeType":"ElementaryTypeName","src":"2264:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":38972,"initialValue":{"arguments":[{"id":38970,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"2302:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}],"id":38969,"name":"_commitCrossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39214,"src":"2282:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$_t_bool_$","typeString":"function (struct CrossMsg memory) returns (bool)"}},"id":38971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2282:29:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2264:47:48"},{"expression":{"arguments":[{"expression":{"expression":{"id":38974,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"2347:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2356:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"2347:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2364:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49935,"src":"2347:22:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38977,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38968,"src":"2383:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":38973,"name":"_crossMsgSideEffects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39234,"src":"2322:20:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":38978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2344:1:48","2371:10:48"],"names":["v","shouldBurn"],"nodeType":"FunctionCall","src":"2322:73:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38979,"nodeType":"ExpressionStatement","src":"2322:73:48"}]},"documentation":{"id":38923,"nodeType":"StructuredDocumentation","src":"1291:293:48","text":" @dev sends a general-purpose cross-message from the local subnet to the destination subnet.\n IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.\n @param crossMsg - a cross-message to send."},"functionSelector":"210b944e","implemented":true,"kind":"function","modifiers":[],"name":"sendUserXnetMessage","nameLocation":"1598:19:48","parameters":{"id":38927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38926,"mutability":"mutable","name":"crossMsg","nameLocation":"1636:8:48","nodeType":"VariableDeclaration","scope":38981,"src":"1618:26:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_calldata_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38925,"nodeType":"UserDefinedTypeName","pathNode":{"id":38924,"name":"CrossMsg","nameLocations":["1618:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"1618:8:48"},"referencedDeclaration":49927,"src":"1618:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1617:28:48"},"returnParameters":{"id":38928,"nodeType":"ParameterList","parameters":[],"src":"1663:0:48"},"scope":39235,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39056,"nodeType":"FunctionDefinition","src":"2553:948:48","nodes":[],"body":{"id":39055,"nodeType":"Block","src":"2605:896:48","nodes":[],"statements":[{"condition":{"id":38989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2619:21:48","subExpression":{"expression":{"id":38987,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2620:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:18:48","memberName":"multiLevelCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43005,"src":"2620:20:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38995,"nodeType":"IfStatement","src":"2615:110:48","trueBody":{"id":38994,"nodeType":"Block","src":"2642:83:48","statements":[{"errorCall":{"arguments":[{"id":38991,"name":"ERR_MULTILEVEL_CROSS_MSG_DISABLED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38906,"src":"2680:33:48","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":38990,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"2663:16:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:51:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38993,"nodeType":"RevertStatement","src":"2656:58:48"}]}},{"assignments":[38998],"declarations":[{"constant":false,"id":38998,"mutability":"mutable","name":"crossMsg","nameLocation":"2752:8:48","nodeType":"VariableDeclaration","scope":39055,"src":"2735:25:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38997,"nodeType":"UserDefinedTypeName","pathNode":{"id":38996,"name":"CrossMsg","nameLocations":["2735:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"2735:8:48"},"referencedDeclaration":49927,"src":"2735:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":39003,"initialValue":{"baseExpression":{"expression":{"id":38999,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2763:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2765:7:48","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42932,"src":"2763:9:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49927_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":39002,"indexExpression":{"id":39001,"name":"msgCid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38984,"src":"2773:6:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2763:17:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage","typeString":"struct CrossMsg storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2735:45:48"},{"expression":{"arguments":[{"expression":{"expression":{"id":39005,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38998,"src":"2802:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg storage pointer"}},"id":39006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2811:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"2802:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage","typeString":"struct StorableMsg storage ref"}},"id":39007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2819:3:48","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":49943,"src":"2802:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39004,"name":"validateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43059,"src":"2790:11:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":39008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2790:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39009,"nodeType":"ExpressionStatement","src":"2790:33:48"},{"assignments":[39011],"declarations":[{"constant":false,"id":39011,"mutability":"mutable","name":"shouldBurn","nameLocation":"2839:10:48","nodeType":"VariableDeclaration","scope":39055,"src":"2834:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39010,"name":"bool","nodeType":"ElementaryTypeName","src":"2834:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":39015,"initialValue":{"arguments":[{"id":39013,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38998,"src":"2872:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg storage pointer"}],"id":39012,"name":"_commitCrossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39214,"src":"2852:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$_t_bool_$","typeString":"function (struct CrossMsg memory) returns (bool)"}},"id":39014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2852:29:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2834:47:48"},{"assignments":[39017],"declarations":[{"constant":false,"id":39017,"mutability":"mutable","name":"v","nameLocation":"3155:1:48","nodeType":"VariableDeclaration","scope":39055,"src":"3147:9:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39016,"name":"uint256","nodeType":"ElementaryTypeName","src":"3147:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39021,"initialValue":{"expression":{"expression":{"id":39018,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38998,"src":"3159:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg storage pointer"}},"id":39019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3168:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"3159:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage","typeString":"struct StorableMsg storage ref"}},"id":39020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3176:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49935,"src":"3159:22:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3147:34:48"},{"expression":{"id":39026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3191:24:48","subExpression":{"baseExpression":{"expression":{"id":39022,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"3198:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3200:7:48","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42932,"src":"3198:9:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49927_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":39025,"indexExpression":{"id":39024,"name":"msgCid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38984,"src":"3208:6:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3198:17:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage","typeString":"struct CrossMsg storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39027,"nodeType":"ExpressionStatement","src":"3191:24:48"},{"expression":{"arguments":[{"id":39029,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39017,"src":"3251:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39030,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39011,"src":"3266:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":39028,"name":"_crossMsgSideEffects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39234,"src":"3226:20:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":39031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3248:1:48","3254:10:48"],"names":["v","shouldBurn"],"nodeType":"FunctionCall","src":"3226:52:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39032,"nodeType":"ExpressionStatement","src":"3226:52:48"},{"assignments":[39034],"declarations":[{"constant":false,"id":39034,"mutability":"mutable","name":"feeRemainder","nameLocation":"3297:12:48","nodeType":"VariableDeclaration","scope":39055,"src":"3289:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39033,"name":"uint256","nodeType":"ElementaryTypeName","src":"3289:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39040,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39035,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3312:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3316:5:48","memberName":"value","nodeType":"MemberAccess","src":"3312:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":39037,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"3324:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3326:14:48","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":42971,"src":"3324:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3312:28:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3289:51:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39041,"name":"feeRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39034,"src":"3408:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3424:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3408:17:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39054,"nodeType":"IfStatement","src":"3404:91:48","trueBody":{"id":39053,"nodeType":"Block","src":"3427:68:48","statements":[{"expression":{"arguments":[{"id":39050,"name":"feeRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39034,"src":"3471:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":39046,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3449:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3453:6:48","memberName":"sender","nodeType":"MemberAccess","src":"3449:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3441:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":39044,"name":"address","nodeType":"ElementaryTypeName","src":"3441:8:48","stateMutability":"payable","typeDescriptions":{}}},"id":39048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3441:19:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":39049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3461:9:48","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"3441:29:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":39051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3441:43:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39052,"nodeType":"ExpressionStatement","src":"3441:43:48"}]}}]},"documentation":{"id":38982,"nodeType":"StructuredDocumentation","src":"2408:140:48","text":" @dev propagates the populated cross net message for the given cid\n @param msgCid - the cid of the cross-net message"},"functionSelector":"25bf0db6","implemented":true,"kind":"function","modifiers":[],"name":"propagate","nameLocation":"2562:9:48","parameters":{"id":38985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38984,"mutability":"mutable","name":"msgCid","nameLocation":"2580:6:48","nodeType":"VariableDeclaration","scope":39056,"src":"2572:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38983,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2572:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2571:16:48"},"returnParameters":{"id":38986,"nodeType":"ParameterList","parameters":[],"src":"2605:0:48"},"scope":39235,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39214,"nodeType":"FunctionDefinition","src":"3988:2611:48","nodes":[],"body":{"id":39213,"nodeType":"Block","src":"4082:2517:48","nodes":[],"statements":[{"assignments":[39067],"declarations":[{"constant":false,"id":39067,"mutability":"mutable","name":"to","nameLocation":"4108:2:48","nodeType":"VariableDeclaration","scope":39213,"src":"4092:18:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":39066,"nodeType":"UserDefinedTypeName","pathNode":{"id":39065,"name":"SubnetID","nameLocations":["4092:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"4092:8:48"},"referencedDeclaration":50030,"src":"4092:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":39072,"initialValue":{"expression":{"expression":{"expression":{"id":39068,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"4113:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4126:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"4113:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4134:2:48","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49933,"src":"4113:23:48","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},"id":39071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4137:8:48","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4113:32:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"4092:53:48"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39073,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"4159:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":39074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4162:7:48","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48024,"src":"4159:10:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":39075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39080,"nodeType":"IfStatement","src":"4155:76:48","trueBody":{"id":39079,"nodeType":"Block","src":"4173:58:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39076,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"4194:24:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4194:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39078,"nodeType":"RevertStatement","src":"4187:33:48"}]}},{"condition":{"arguments":[{"expression":{"id":39083,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"4361:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4363:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"4361:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}],"expression":{"id":39081,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"4351:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":39082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4354:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47778,"src":"4351:9:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4351:24:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39090,"nodeType":"IfStatement","src":"4347:90:48","trueBody":{"id":39089,"nodeType":"Block","src":"4377:60:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39086,"name":"CannotSendCrossMsgToItself","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37376,"src":"4398:26:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4398:28:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39088,"nodeType":"RevertStatement","src":"4391:35:48"}]}},{"assignments":[39093],"declarations":[{"constant":false,"id":39093,"mutability":"mutable","name":"from","nameLocation":"4463:4:48","nodeType":"VariableDeclaration","scope":39213,"src":"4447:20:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":39092,"nodeType":"UserDefinedTypeName","pathNode":{"id":39091,"name":"SubnetID","nameLocations":["4447:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"4447:8:48"},"referencedDeclaration":50030,"src":"4447:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":39098,"initialValue":{"expression":{"expression":{"expression":{"id":39094,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"4470:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4483:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"4470:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4491:4:48","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49930,"src":"4470:25:48","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},"id":39097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4496:8:48","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4470:34:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"4447:57:48"},{"assignments":[39101],"declarations":[{"constant":false,"id":39101,"mutability":"mutable","name":"applyType","nameLocation":"4525:9:48","nodeType":"VariableDeclaration","scope":39213,"src":"4514:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"typeName":{"id":39100,"nodeType":"UserDefinedTypeName","pathNode":{"id":39099,"name":"IPCMsgType","nameLocations":["4514:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":37364,"src":"4514:10:48"},"referencedDeclaration":37364,"src":"4514:10:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"id":39108,"initialValue":{"arguments":[{"expression":{"id":39105,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"4568:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4570:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"4568:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":39102,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"4537:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4550:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"4537:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4558:9:48","memberName":"applyType","nodeType":"MemberAccess","referencedDeclaration":47397,"src":"4537:30:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_StorableMsg_$49944_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_enum$_IPCMsgType_$37364_$attached_to$_t_struct$_StorableMsg_$49944_memory_ptr_$","typeString":"function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)"}},"id":39107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4537:45:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"VariableDeclarationStatement","src":"4514:68:48"},{"assignments":[39110],"declarations":[{"constant":false,"id":39110,"mutability":"mutable","name":"isLCA","nameLocation":"4650:5:48","nodeType":"VariableDeclaration","scope":39213,"src":"4645:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39109,"name":"bool","nodeType":"ElementaryTypeName","src":"4645:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":39119,"initialValue":{"arguments":[{"expression":{"id":39116,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"4687:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4689:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"4687:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}],"expression":{"arguments":[{"id":39113,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"4674:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":39111,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"4658:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":39112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4661:12:48","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":47899,"src":"4658:15:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":39114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4658:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":39115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4680:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47778,"src":"4658:28:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4658:43:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4645:56:48"},{"assignments":[39121],"declarations":[{"constant":false,"id":39121,"mutability":"mutable","name":"reject","nameLocation":"5205:6:48","nodeType":"VariableDeclaration","scope":39213,"src":"5200:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39120,"name":"bool","nodeType":"ElementaryTypeName","src":"5200:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":39123,"initialValue":{"hexValue":"66616c7365","id":39122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5214:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"5200:19:48"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":39127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39124,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"5233:9:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39125,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"5246:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":39126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5257:8:48","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":37363,"src":"5246:19:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"5233:32:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":39150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39147,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"5662:9:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39148,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"5675:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":39149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5686:7:48","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"5675:18:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"5662:31:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39166,"nodeType":"IfStatement","src":"5658:256:48","trueBody":{"id":39165,"nodeType":"Block","src":"5695:219:48","statements":[{"expression":{"id":39163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39151,"name":"reject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"5827:6:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":39160,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"5886:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":39161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5897:5:48","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5886:16:48","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":39154,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"5844:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5846:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"5844:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}],"expression":{"id":39152,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"5836:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":39153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5839:4:48","memberName":"down","nodeType":"MemberAccess","referencedDeclaration":48004,"src":"5836:7:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":39156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5836:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":39157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5859:8:48","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47718,"src":"5836:31:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5836:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5870:15:48","memberName":"hasSupplyOfKind","nodeType":"MemberAccess","referencedDeclaration":48070,"src":"5836:49:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_SupplyKind_$50182_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,enum SupplyKind) view returns (bool)"}},"id":39162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5836:67:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5827:76:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39164,"nodeType":"ExpressionStatement","src":"5827:76:48"}]}},"id":39167,"nodeType":"IfStatement","src":"5229:685:48","trueBody":{"id":39146,"nodeType":"Block","src":"5267:385:48","statements":[{"expression":{"id":39144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39128,"name":"reject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"5535:6:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":39133,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"5574:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5576:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"5574:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39129,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"5544:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":39130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5549:15:48","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47531,"src":"5544:20:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":39131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5544:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":39132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5567:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47778,"src":"5544:29:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5544:44:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"expression":{"id":39140,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"5624:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":39141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5635:5:48","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5624:16:48","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39136,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"5592:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":39137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5597:8:48","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47718,"src":"5592:13:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5592:15:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5608:15:48","memberName":"hasSupplyOfKind","nodeType":"MemberAccess","referencedDeclaration":48070,"src":"5592:31:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_SupplyKind_$50182_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,enum SupplyKind) view returns (bool)"}},"id":39142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5592:49:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5544:97:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5535:106:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39145,"nodeType":"ExpressionStatement","src":"5535:106:48"}]}},{"condition":{"id":39168,"name":"reject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"5927:6:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39174,"nodeType":"IfStatement","src":"5923:120:48","trueBody":{"id":39173,"nodeType":"Block","src":"5935:108:48","statements":[{"errorCall":{"arguments":[{"hexValue":"70726f7061676174696f6e206e6f742073757070706f7274656420666f72207375626e657473207769746820455243323020737570706c79","id":39170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5973:58:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_34eedd2aeb34a77e6777de611c865b0564b6c2921cf9e4d802d0985cc2e999a2","typeString":"literal_string \"propagation not suppported for subnets with ERC20 supply\""},"value":"propagation not suppported for subnets with ERC20 supply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34eedd2aeb34a77e6777de611c865b0564b6c2921cf9e4d802d0985cc2e999a2","typeString":"literal_string \"propagation not suppported for subnets with ERC20 supply\""}],"id":39169,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"5956:16:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":39171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5956:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39172,"nodeType":"RevertStatement","src":"5949:83:48"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":39178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39175,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"6200:9:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39176,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"6213:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":39177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6224:7:48","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"6213:18:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"6200:31:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":39179,"name":"isLCA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39110,"src":"6235:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6200:40:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39197,"nodeType":"IfStatement","src":"6196:190:48","trueBody":{"id":39196,"nodeType":"Block","src":"6242:144:48","statements":[{"expression":{"id":39183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6256:23:48","subExpression":{"expression":{"id":39181,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"6258:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6260:19:48","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":42980,"src":"6258:21:48","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":39184,"nodeType":"ExpressionStatement","src":"6256:23:48"},{"expression":{"arguments":[{"id":39188,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"6321:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":39185,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"6293:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6304:16:48","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":42390,"src":"6293:27:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":39189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6293:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39190,"nodeType":"ExpressionStatement","src":"6293:41:48"},{"expression":{"components":[{"id":39193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39191,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39063,"src":"6356:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":39192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6369:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6356:18:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":39194,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6355:20:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":39064,"id":39195,"nodeType":"Return","src":"6348:27:48"}]}},{"expression":{"arguments":[{"id":39201,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"6470:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":39198,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"6441:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6452:17:48","memberName":"commitBottomUpMsg","nodeType":"MemberAccess","referencedDeclaration":42556,"src":"6441:28:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":39202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39203,"nodeType":"ExpressionStatement","src":"6441:42:48"},{"expression":{"components":[{"id":39210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39204,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39063,"src":"6547:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":39205,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"6560:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6573:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"6560:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6581:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49935,"src":"6560:26:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6560:31:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6547:44:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":39211,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6546:46:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":39064,"id":39212,"nodeType":"Return","src":"6539:53:48"}]},"documentation":{"id":39057,"nodeType":"StructuredDocumentation","src":"3507:476:48","text":" @notice Commit the cross message to storage. It outputs a flag signaling\n if the committed messages was bottom-up and some funds need to be\n burnt.\n @dev It also validates that destination subnet ID is not empty\n and not equal to the current network.\n @param crossMessage The cross-network message to commit.\n @return shouldBurn A Boolean that indicates if the input amount should be burned."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCrossMessage","nameLocation":"3997:19:48","parameters":{"id":39061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39060,"mutability":"mutable","name":"crossMessage","nameLocation":"4033:12:48","nodeType":"VariableDeclaration","scope":39214,"src":"4017:28:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":39059,"nodeType":"UserDefinedTypeName","pathNode":{"id":39058,"name":"CrossMsg","nameLocations":["4017:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"4017:8:48"},"referencedDeclaration":49927,"src":"4017:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"4016:30:48"},"returnParameters":{"id":39064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39063,"mutability":"mutable","name":"shouldBurn","nameLocation":"4070:10:48","nodeType":"VariableDeclaration","scope":39214,"src":"4065:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39062,"name":"bool","nodeType":"ElementaryTypeName","src":"4065:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4064:17:48"},"scope":39235,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":39234,"nodeType":"FunctionDefinition","src":"6912:163:48","nodes":[],"body":{"id":39233,"nodeType":"Block","src":"6979:96:48","nodes":[],"statements":[{"condition":{"id":39222,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39219,"src":"6993:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39232,"nodeType":"IfStatement","src":"6989:80:48","trueBody":{"id":39231,"nodeType":"Block","src":"7005:64:48","statements":[{"expression":{"arguments":[{"id":39228,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39217,"src":"7056:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":39225,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"7027:17:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7019:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":39223,"name":"address","nodeType":"ElementaryTypeName","src":"7019:8:48","stateMutability":"payable","typeDescriptions":{}}},"id":39226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":39227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7046:9:48","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"7019:36:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":39229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:39:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39230,"nodeType":"ExpressionStatement","src":"7019:39:48"}]}}]},"documentation":{"id":39215,"nodeType":"StructuredDocumentation","src":"6605:302:48","text":" @dev Performs transaction side-effects from the commitment of a cross-net message. Like\n burning funds when bottom-up messages are propagated.\n @param v - the value of the committed cross-net message\n @param shouldBurn - flag if the message should burn funds"},"implemented":true,"kind":"function","modifiers":[],"name":"_crossMsgSideEffects","nameLocation":"6921:20:48","parameters":{"id":39220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39217,"mutability":"mutable","name":"v","nameLocation":"6950:1:48","nodeType":"VariableDeclaration","scope":39234,"src":"6942:9:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39216,"name":"uint256","nodeType":"ElementaryTypeName","src":"6942:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39219,"mutability":"mutable","name":"shouldBurn","nameLocation":"6958:10:48","nodeType":"VariableDeclaration","scope":39234,"src":"6953:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39218,"name":"bool","nodeType":"ElementaryTypeName","src":"6953:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6941:28:48"},"returnParameters":{"id":39221,"nodeType":"ParameterList","parameters":[],"src":"6979:0:48"},"scope":39235,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":38907,"name":"GatewayActorModifiers","nameLocations":["1094:21:48"],"nodeType":"IdentifierPath","referencedDeclaration":43081,"src":"1094:21:48"},"id":38908,"nodeType":"InheritanceSpecifier","src":"1094:21:48"}],"canonicalName":"GatewayMessengerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[39235,43081],"name":"GatewayMessengerFacet","nameLocation":"1069:21:48","scope":39236,"usedErrors":[1134,1138,37376,37420,37422,37426,37468,37470,37482,37526]}],"license":"MIT OR Apache-2.0"},"id":48} \ No newline at end of file diff --git a/.out/IGateway.sol/IGateway.json b/.out/IGateway.sol/IGateway.json index 8266932e0..155c91873 100644 --- a/.out/IGateway.sol/IGateway.json +++ b/.out/IGateway.sol/IGateway.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"commitCheckpoint","inputs":[{"name":"bottomUpCheckpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitParentFinality","inputs":[{"name":"finality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fundWithToken","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"propagate","inputs":[{"name":"msgCid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"register","inputs":[{"name":"genesisCircSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"release","inputs":[{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"releaseRewardForRelayer","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"releaseStake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendUserXnetMessage","inputs":[{"name":"crossMsg","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addStake()":"5a627dbc","commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":"47dc9b4f","commitParentFinality((uint256,bytes32))":"11196974","createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":"74303771","execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":"0bed7615","fund((uint64,address[]),(uint8,bytes))":"18f44b70","fundWithToken((uint64,address[]),(uint8,bytes),uint256)":"0517e1aa","kill()":"41c0e1b5","propagate(bytes32)":"25bf0db6","register(uint256)":"f207564e","release((uint8,bytes))":"6b2c1eef","releaseRewardForRelayer(uint256)":"d8e25572","releaseStake(uint256)":"45f54485","sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":"210b944e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"bottomUpCheckpoint\",\"type\":\"tuple\"}],\"name\":\"commitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"finality\",\"type\":\"tuple\"}],\"name\":\"commitParentFinality\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"execBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundWithToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"genesisCircSupply\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendUserXnetMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Gateway interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"AddStake adds stake to the collateral of a subnet.\"},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"notice\":\"commitCheckpoint propagates the commitment of a checkpoint from a child\"},\"commitParentFinality((uint256,bytes32))\":{\"notice\":\"commit the ipc parent finality into storage\"},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"notice\":\"creates a new bottom-up checkpoint\"},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"notice\":\"execBottomUpMsgBatch submits a batch of cross-net messages from a subnet actor for their execution.\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"fund locks the received funds \\u2014denominated in the native coin\\u2014 and moves the value down the hierarchy, crediting the funds to the specified address in the destination network. This functions ends up minting supply in the subnet equal to the value of the transaction. It does so by committing the relevant top-down message, updating the top-down nonce along the way. Calling this method on a subnet whose supply source is not 'native' will revert with UnexpectedSupplySource().\"},\"fundWithToken((uint64,address[]),(uint8,bytes),uint256)\":{\"notice\":\"fundWithToken locks the specified amount of tokens in the ERC20 contract linked to the subnet, and moves the value down the hierarchy, crediting the funds as native coins to the specified address in the destination network. This method expects the caller to have approved the gateway to spend `amount` tokens on their behalf (usually done through IERC20#approve). Tokens are locked by calling IERC20#transferFrom(caller, address(this), amount). A failure in transferring tokens to the gateway will revert the call. It's possible to call this method from an EOA or a contract. Regardless, it's recommended to approve strictly the amount that will subsequently be deposited into the subnet. Keeping outstanding approvals is not recommended. Calling this method on a subnet whose supply source is not 'ERC20' will revert with UnexpectedSupplySource().\"},\"kill()\":{\"notice\":\"Kill propagates the kill signal from a subnet actor to unregister it from th hierarchy.\"},\"propagate(bytes32)\":{\"notice\":\"Propagates the stored postbox item for the given cid\"},\"register(uint256)\":{\"notice\":\"Register is called by subnet actors to put the required collateral and register the subnet to the hierarchy.\"},\"release((uint8,bytes))\":{\"notice\":\"Release creates a new check message to release funds in parent chain This function burns the funds that will be released in the current subnet and propagates a new checkpoint message to the parent chain to signal the amount of funds that can be released for a specific address.\"},\"releaseRewardForRelayer(uint256)\":{\"notice\":\"Release reward for relayer\"},\"releaseStake(uint256)\":{\"notice\":\"Release stake recovers some collateral of the subnet\"},\"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"notice\":\"SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy. If the message includes any funds they need to be burnt (like in Release) before being propagated to the corresponding subnet. The circulating supply in each subnet needs to be updated as the message passes through them. Params expect a raw message without any subnet context (the IPC address is included in the message by the actor). Only actors are allowed to send arbitrary cross-messages as a side-effect of their execution. For plain token exchanges fund and release have to be used.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IGateway.sol\":\"IGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"bottomUpCheckpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"commitCheckpoint"},{"inputs":[{"internalType":"struct ParentFinality","name":"finality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"commitParentFinality"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpCheckpoint"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}],"stateMutability":"nonpayable","type":"function","name":"execBottomUpMsgBatch"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"fund"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fundWithToken"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[{"internalType":"bytes32","name":"msgCid","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"propagate"},{"inputs":[{"internalType":"uint256","name":"genesisCircSupply","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register"},{"inputs":[{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseStake"},{"inputs":[{"internalType":"struct CrossMsg","name":"crossMsg","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"payable","type":"function","name":"sendUserXnetMessage"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"addStake()":{"notice":"AddStake adds stake to the collateral of a subnet."},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"notice":"commitCheckpoint propagates the commitment of a checkpoint from a child"},"commitParentFinality((uint256,bytes32))":{"notice":"commit the ipc parent finality into storage"},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"notice":"creates a new bottom-up checkpoint"},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"notice":"execBottomUpMsgBatch submits a batch of cross-net messages from a subnet actor for their execution."},"fund((uint64,address[]),(uint8,bytes))":{"notice":"fund locks the received funds —denominated in the native coin— and moves the value down the hierarchy, crediting the funds to the specified address in the destination network. This functions ends up minting supply in the subnet equal to the value of the transaction. It does so by committing the relevant top-down message, updating the top-down nonce along the way. Calling this method on a subnet whose supply source is not 'native' will revert with UnexpectedSupplySource()."},"fundWithToken((uint64,address[]),(uint8,bytes),uint256)":{"notice":"fundWithToken locks the specified amount of tokens in the ERC20 contract linked to the subnet, and moves the value down the hierarchy, crediting the funds as native coins to the specified address in the destination network. This method expects the caller to have approved the gateway to spend `amount` tokens on their behalf (usually done through IERC20#approve). Tokens are locked by calling IERC20#transferFrom(caller, address(this), amount). A failure in transferring tokens to the gateway will revert the call. It's possible to call this method from an EOA or a contract. Regardless, it's recommended to approve strictly the amount that will subsequently be deposited into the subnet. Keeping outstanding approvals is not recommended. Calling this method on a subnet whose supply source is not 'ERC20' will revert with UnexpectedSupplySource()."},"kill()":{"notice":"Kill propagates the kill signal from a subnet actor to unregister it from th hierarchy."},"propagate(bytes32)":{"notice":"Propagates the stored postbox item for the given cid"},"register(uint256)":{"notice":"Register is called by subnet actors to put the required collateral and register the subnet to the hierarchy."},"release((uint8,bytes))":{"notice":"Release creates a new check message to release funds in parent chain This function burns the funds that will be released in the current subnet and propagates a new checkpoint message to the parent chain to signal the amount of funds that can be released for a specific address."},"releaseRewardForRelayer(uint256)":{"notice":"Release reward for relayer"},"releaseStake(uint256)":{"notice":"Release stake recovers some collateral of the subnet"},"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":{"notice":"SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy. If the message includes any funds they need to be burnt (like in Release) before being propagated to the corresponding subnet. The circulating supply in each subnet needs to be updated as the message passes through them. Params expect a raw message without any subnet context (the IPC address is included in the message by the actor). Only actors are allowed to send arbitrary cross-messages as a side-effect of their execution. For plain token exchanges fund and release have to be used."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IGateway.sol":"IGateway"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/IGateway.sol","id":40355,"exportedSymbols":{"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"CrossMsg":[49974],"FvmAddress":[49998],"IGateway":[40354],"ParentFinality":[49918],"SubnetID":[50077]},"nodeType":"SourceUnit","src":"46:4687:57","nodes":[{"id":40243,"nodeType":"PragmaDirective","src":"46:23:57","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40248,"nodeType":"ImportDirective","src":"71:103:57","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40355,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":40244,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"79:18:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40245,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"99:16:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40246,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"117:8:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40247,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"127:14:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40250,"nodeType":"ImportDirective","src":"175:47:57","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40355,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":40249,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"183:8:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40252,"nodeType":"ImportDirective","src":"223:53:57","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":40355,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":40251,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"231:10:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40354,"nodeType":"ContractDefinition","src":"334:4398:57","nodes":[{"id":40259,"nodeType":"FunctionDefinition","src":"492:62:57","nodes":[],"documentation":{"id":40254,"nodeType":"StructuredDocumentation","src":"359:128:57","text":"@notice Register is called by subnet actors to put the required collateral\n and register the subnet to the hierarchy."},"functionSelector":"f207564e","implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"501:8:57","parameters":{"id":40257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40256,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"518:17:57","nodeType":"VariableDeclaration","scope":40259,"src":"510:25:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40255,"name":"uint256","nodeType":"ElementaryTypeName","src":"510:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"509:27:57"},"returnParameters":{"id":40258,"nodeType":"ParameterList","parameters":[],"src":"553:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40263,"nodeType":"FunctionDefinition","src":"627:37:57","nodes":[],"documentation":{"id":40260,"nodeType":"StructuredDocumentation","src":"560:62:57","text":"@notice AddStake adds stake to the collateral of a subnet."},"functionSelector":"5a627dbc","implemented":false,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"636:8:57","parameters":{"id":40261,"nodeType":"ParameterList","parameters":[],"src":"644:2:57"},"returnParameters":{"id":40262,"nodeType":"ParameterList","parameters":[],"src":"663:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40269,"nodeType":"FunctionDefinition","src":"739:47:57","nodes":[],"documentation":{"id":40264,"nodeType":"StructuredDocumentation","src":"670:64:57","text":"@notice Release stake recovers some collateral of the subnet"},"functionSelector":"45f54485","implemented":false,"kind":"function","modifiers":[],"name":"releaseStake","nameLocation":"748:12:57","parameters":{"id":40267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40266,"mutability":"mutable","name":"amount","nameLocation":"769:6:57","nodeType":"VariableDeclaration","scope":40269,"src":"761:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40265,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:16:57"},"returnParameters":{"id":40268,"nodeType":"ParameterList","parameters":[],"src":"785:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40275,"nodeType":"FunctionDefinition","src":"835:58:57","nodes":[],"documentation":{"id":40270,"nodeType":"StructuredDocumentation","src":"792:38:57","text":"@notice Release reward for relayer"},"functionSelector":"d8e25572","implemented":false,"kind":"function","modifiers":[],"name":"releaseRewardForRelayer","nameLocation":"844:23:57","parameters":{"id":40273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40272,"mutability":"mutable","name":"amount","nameLocation":"876:6:57","nodeType":"VariableDeclaration","scope":40275,"src":"868:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40271,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"867:16:57"},"returnParameters":{"id":40274,"nodeType":"ParameterList","parameters":[],"src":"892:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40279,"nodeType":"FunctionDefinition","src":"1011:25:57","nodes":[],"documentation":{"id":40276,"nodeType":"StructuredDocumentation","src":"899:107:57","text":"@notice Kill propagates the kill signal from a subnet actor to unregister it from th\n hierarchy."},"functionSelector":"41c0e1b5","implemented":false,"kind":"function","modifiers":[],"name":"kill","nameLocation":"1020:4:57","parameters":{"id":40277,"nodeType":"ParameterList","parameters":[],"src":"1024:2:57"},"returnParameters":{"id":40278,"nodeType":"ParameterList","parameters":[],"src":"1035:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40286,"nodeType":"FunctionDefinition","src":"1130:83:57","nodes":[],"documentation":{"id":40280,"nodeType":"StructuredDocumentation","src":"1042:83:57","text":"@notice commitCheckpoint propagates the commitment of a checkpoint from a child"},"functionSelector":"47dc9b4f","implemented":false,"kind":"function","modifiers":[],"name":"commitCheckpoint","nameLocation":"1139:16:57","parameters":{"id":40284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40283,"mutability":"mutable","name":"bottomUpCheckpoint","nameLocation":"1184:18:57","nodeType":"VariableDeclaration","scope":40286,"src":"1156:46:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":40282,"nodeType":"UserDefinedTypeName","pathNode":{"id":40281,"name":"BottomUpCheckpoint","nameLocations":["1156:18:57"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1156:18:57"},"referencedDeclaration":49932,"src":"1156:18:57","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1155:48:57"},"returnParameters":{"id":40285,"nodeType":"ParameterList","parameters":[],"src":"1212:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40296,"nodeType":"FunctionDefinition","src":"1764:83:57","nodes":[],"documentation":{"id":40287,"nodeType":"StructuredDocumentation","src":"1219:540:57","text":"@notice fund locks the received funds —denominated in the native coin— and moves the value down the hierarchy,\n crediting the funds to the specified address in the destination network.\n This functions ends up minting supply in the subnet equal to the value of the transaction. It does so by\n committing the relevant top-down message, updating the top-down nonce along the way.\n Calling this method on a subnet whose supply source is not 'native' will revert with UnexpectedSupplySource()."},"functionSelector":"18f44b70","implemented":false,"kind":"function","modifiers":[],"name":"fund","nameLocation":"1773:4:57","parameters":{"id":40294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40290,"mutability":"mutable","name":"subnetId","nameLocation":"1796:8:57","nodeType":"VariableDeclaration","scope":40296,"src":"1778:26:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40289,"nodeType":"UserDefinedTypeName","pathNode":{"id":40288,"name":"SubnetID","nameLocations":["1778:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1778:8:57"},"referencedDeclaration":50077,"src":"1778:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40293,"mutability":"mutable","name":"to","nameLocation":"1826:2:57","nodeType":"VariableDeclaration","scope":40296,"src":"1806:22:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40292,"nodeType":"UserDefinedTypeName","pathNode":{"id":40291,"name":"FvmAddress","nameLocations":["1806:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1806:10:57"},"referencedDeclaration":49998,"src":"1806:10:57","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1777:52:57"},"returnParameters":{"id":40295,"nodeType":"ParameterList","parameters":[],"src":"1846:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40308,"nodeType":"FunctionDefinition","src":"2806:100:57","nodes":[],"documentation":{"id":40297,"nodeType":"StructuredDocumentation","src":"1853:948:57","text":"@notice fundWithToken locks the specified amount of tokens in the ERC20 contract linked to the subnet, and\n moves the value down the hierarchy, crediting the funds as native coins to the specified address\n in the destination network.\n This method expects the caller to have approved the gateway to spend `amount` tokens on their behalf\n (usually done through IERC20#approve). Tokens are locked by calling IERC20#transferFrom(caller, address(this), amount).\n A failure in transferring tokens to the gateway will revert the call.\n It's possible to call this method from an EOA or a contract. Regardless, it's recommended to approve strictly\n the amount that will subsequently be deposited into the subnet. Keeping outstanding approvals is not recommended.\n Calling this method on a subnet whose supply source is not 'ERC20' will revert with UnexpectedSupplySource()."},"functionSelector":"0517e1aa","implemented":false,"kind":"function","modifiers":[],"name":"fundWithToken","nameLocation":"2815:13:57","parameters":{"id":40306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40300,"mutability":"mutable","name":"subnetId","nameLocation":"2847:8:57","nodeType":"VariableDeclaration","scope":40308,"src":"2829:26:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40299,"nodeType":"UserDefinedTypeName","pathNode":{"id":40298,"name":"SubnetID","nameLocations":["2829:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2829:8:57"},"referencedDeclaration":50077,"src":"2829:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40303,"mutability":"mutable","name":"to","nameLocation":"2877:2:57","nodeType":"VariableDeclaration","scope":40308,"src":"2857:22:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40302,"nodeType":"UserDefinedTypeName","pathNode":{"id":40301,"name":"FvmAddress","nameLocations":["2857:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"2857:10:57"},"referencedDeclaration":49998,"src":"2857:10:57","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40305,"mutability":"mutable","name":"amount","nameLocation":"2889:6:57","nodeType":"VariableDeclaration","scope":40308,"src":"2881:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40304,"name":"uint256","nodeType":"ElementaryTypeName","src":"2881:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2828:68:57"},"returnParameters":{"id":40307,"nodeType":"ParameterList","parameters":[],"src":"2905:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40315,"nodeType":"FunctionDefinition","src":"3238:58:57","nodes":[],"documentation":{"id":40309,"nodeType":"StructuredDocumentation","src":"2912:321:57","text":"@notice Release creates a new check message to release funds in parent chain\n This function burns the funds that will be released in the current subnet\n and propagates a new checkpoint message to the parent chain to signal\n the amount of funds that can be released for a specific address."},"functionSelector":"6b2c1eef","implemented":false,"kind":"function","modifiers":[],"name":"release","nameLocation":"3247:7:57","parameters":{"id":40313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40312,"mutability":"mutable","name":"to","nameLocation":"3275:2:57","nodeType":"VariableDeclaration","scope":40315,"src":"3255:22:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40311,"nodeType":"UserDefinedTypeName","pathNode":{"id":40310,"name":"FvmAddress","nameLocations":["3255:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"3255:10:57"},"referencedDeclaration":49998,"src":"3255:10:57","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"3254:24:57"},"returnParameters":{"id":40314,"nodeType":"ParameterList","parameters":[],"src":"3295:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40322,"nodeType":"FunctionDefinition","src":"3966:72:57","nodes":[],"documentation":{"id":40316,"nodeType":"StructuredDocumentation","src":"3302:659:57","text":"@notice SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy.\n If the message includes any funds they need to be burnt (like in Release)\n before being propagated to the corresponding subnet.\n The circulating supply in each subnet needs to be updated as the message passes through them.\n Params expect a raw message without any subnet context (the IPC address is\n included in the message by the actor). Only actors are allowed to send arbitrary\n cross-messages as a side-effect of their execution. For plain token exchanges\n fund and release have to be used."},"functionSelector":"210b944e","implemented":false,"kind":"function","modifiers":[],"name":"sendUserXnetMessage","nameLocation":"3975:19:57","parameters":{"id":40320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40319,"mutability":"mutable","name":"crossMsg","nameLocation":"4011:8:57","nodeType":"VariableDeclaration","scope":40322,"src":"3995:24:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40318,"nodeType":"UserDefinedTypeName","pathNode":{"id":40317,"name":"CrossMsg","nameLocations":["3995:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"3995:8:57"},"referencedDeclaration":49974,"src":"3995:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"3994:26:57"},"returnParameters":{"id":40321,"nodeType":"ParameterList","parameters":[],"src":"4037:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40328,"nodeType":"FunctionDefinition","src":"4113:52:57","nodes":[],"documentation":{"id":40323,"nodeType":"StructuredDocumentation","src":"4044:64:57","text":"@notice Propagates the stored postbox item for the given cid"},"functionSelector":"25bf0db6","implemented":false,"kind":"function","modifiers":[],"name":"propagate","nameLocation":"4122:9:57","parameters":{"id":40326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40325,"mutability":"mutable","name":"msgCid","nameLocation":"4140:6:57","nodeType":"VariableDeclaration","scope":40328,"src":"4132:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4132:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4131:16:57"},"returnParameters":{"id":40327,"nodeType":"ParameterList","parameters":[],"src":"4164:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40335,"nodeType":"FunctionDefinition","src":"4231:73:57","nodes":[],"documentation":{"id":40329,"nodeType":"StructuredDocumentation","src":"4171:55:57","text":"@notice commit the ipc parent finality into storage"},"functionSelector":"11196974","implemented":false,"kind":"function","modifiers":[],"name":"commitParentFinality","nameLocation":"4240:20:57","parameters":{"id":40333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40332,"mutability":"mutable","name":"finality","nameLocation":"4285:8:57","nodeType":"VariableDeclaration","scope":40335,"src":"4261:32:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":40331,"nodeType":"UserDefinedTypeName","pathNode":{"id":40330,"name":"ParentFinality","nameLocations":["4261:14:57"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"4261:14:57"},"referencedDeclaration":49918,"src":"4261:14:57","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"4260:34:57"},"returnParameters":{"id":40334,"nodeType":"ParameterList","parameters":[],"src":"4303:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40346,"nodeType":"FunctionDefinition","src":"4361:167:57","nodes":[],"documentation":{"id":40336,"nodeType":"StructuredDocumentation","src":"4310:46:57","text":"@notice creates a new bottom-up checkpoint"},"functionSelector":"74303771","implemented":false,"kind":"function","modifiers":[],"name":"createBottomUpCheckpoint","nameLocation":"4370:24:57","parameters":{"id":40344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40339,"mutability":"mutable","name":"checkpoint","nameLocation":"4432:10:57","nodeType":"VariableDeclaration","scope":40346,"src":"4404:38:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":40338,"nodeType":"UserDefinedTypeName","pathNode":{"id":40337,"name":"BottomUpCheckpoint","nameLocations":["4404:18:57"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"4404:18:57"},"referencedDeclaration":49932,"src":"4404:18:57","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":40341,"mutability":"mutable","name":"membershipRootHash","nameLocation":"4460:18:57","nodeType":"VariableDeclaration","scope":40346,"src":"4452:26:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4452:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40343,"mutability":"mutable","name":"membershipWeight","nameLocation":"4496:16:57","nodeType":"VariableDeclaration","scope":40346,"src":"4488:24:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40342,"name":"uint256","nodeType":"ElementaryTypeName","src":"4488:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4394:124:57"},"returnParameters":{"id":40345,"nodeType":"ParameterList","parameters":[],"src":"4527:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40353,"nodeType":"FunctionDefinition","src":"4658:72:57","nodes":[],"documentation":{"id":40347,"nodeType":"StructuredDocumentation","src":"4534:119:57","text":"@notice execBottomUpMsgBatch submits a batch of cross-net messages\n from a subnet actor for their execution."},"functionSelector":"0bed7615","implemented":false,"kind":"function","modifiers":[],"name":"execBottomUpMsgBatch","nameLocation":"4667:20:57","parameters":{"id":40351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40350,"mutability":"mutable","name":"batch","nameLocation":"4714:5:57","nodeType":"VariableDeclaration","scope":40353,"src":"4688:31:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":40349,"nodeType":"UserDefinedTypeName","pathNode":{"id":40348,"name":"BottomUpMsgBatch","nameLocations":["4688:16:57"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"4688:16:57"},"referencedDeclaration":49945,"src":"4688:16:57","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"4687:33:57"},"returnParameters":{"id":40352,"nodeType":"ParameterList","parameters":[],"src":"4729:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IGateway","contractDependencies":[],"contractKind":"interface","documentation":{"id":40253,"nodeType":"StructuredDocumentation","src":"278:56:57","text":"@title Gateway interface\n @author LimeChain team"},"fullyImplemented":false,"linearizedBaseContracts":[40354],"name":"IGateway","nameLocation":"344:8:57","scope":40355,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":57} \ No newline at end of file +{"abi":[{"type":"function","name":"addStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"commitCheckpoint","inputs":[{"name":"bottomUpCheckpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitParentFinality","inputs":[{"name":"finality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fundWithToken","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"propagate","inputs":[{"name":"msgCid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"register","inputs":[{"name":"genesisCircSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"release","inputs":[{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"releaseRewardForRelayer","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"releaseStake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendUserXnetMessage","inputs":[{"name":"crossMsg","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addStake()":"5a627dbc","commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":"47dc9b4f","commitParentFinality((uint256,bytes32))":"11196974","createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":"74303771","execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":"0bed7615","fund((uint64,address[]),(uint8,bytes))":"18f44b70","fundWithToken((uint64,address[]),(uint8,bytes),uint256)":"0517e1aa","kill()":"41c0e1b5","propagate(bytes32)":"25bf0db6","register(uint256)":"f207564e","release((uint8,bytes))":"6b2c1eef","releaseRewardForRelayer(uint256)":"d8e25572","releaseStake(uint256)":"45f54485","sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":"210b944e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"bottomUpCheckpoint\",\"type\":\"tuple\"}],\"name\":\"commitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"finality\",\"type\":\"tuple\"}],\"name\":\"commitParentFinality\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"execBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundWithToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"genesisCircSupply\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendUserXnetMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Gateway interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"AddStake adds stake to the collateral of a subnet.\"},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"notice\":\"commitCheckpoint propagates the commitment of a checkpoint from a child\"},\"commitParentFinality((uint256,bytes32))\":{\"notice\":\"commit the ipc parent finality into storage\"},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"notice\":\"creates a new bottom-up checkpoint\"},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"notice\":\"execBottomUpMsgBatch submits a batch of cross-net messages from a subnet actor for their execution.\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"fund locks the received funds \\u2014denominated in the native coin\\u2014 and moves the value down the hierarchy, crediting the funds to the specified address in the destination network. This functions ends up minting supply in the subnet equal to the value of the transaction. It does so by committing the relevant top-down message, updating the top-down nonce along the way. Calling this method on a subnet whose supply source is not 'native' will revert with UnexpectedSupplySource().\"},\"fundWithToken((uint64,address[]),(uint8,bytes),uint256)\":{\"notice\":\"fundWithToken locks the specified amount of tokens in the ERC20 contract linked to the subnet, and moves the value down the hierarchy, crediting the funds as native coins to the specified address in the destination network. This method expects the caller to have approved the gateway to spend `amount` tokens on their behalf (usually done through IERC20#approve). Tokens are locked by calling IERC20#transferFrom(caller, address(this), amount). A failure in transferring tokens to the gateway will revert the call. It's possible to call this method from an EOA or a contract. Regardless, it's recommended to approve strictly the amount that will subsequently be deposited into the subnet. Keeping outstanding approvals is not recommended. Calling this method on a subnet whose supply source is not 'ERC20' will revert with UnexpectedSupplySource().\"},\"kill()\":{\"notice\":\"Kill propagates the kill signal from a subnet actor to unregister it from th hierarchy.\"},\"propagate(bytes32)\":{\"notice\":\"Propagates the stored postbox item for the given cid\"},\"register(uint256)\":{\"notice\":\"Register is called by subnet actors to put the required collateral and register the subnet to the hierarchy.\"},\"release((uint8,bytes))\":{\"notice\":\"Release creates a new check message to release funds in parent chain This function burns the funds that will be released in the current subnet and propagates a new checkpoint message to the parent chain to signal the amount of funds that can be released for a specific address.\"},\"releaseRewardForRelayer(uint256)\":{\"notice\":\"Release reward for relayer\"},\"releaseStake(uint256)\":{\"notice\":\"Release stake recovers some collateral of the subnet\"},\"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"notice\":\"SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy. If the message includes any funds they need to be burnt (like in Release) before being propagated to the corresponding subnet. The circulating supply in each subnet needs to be updated as the message passes through them. Params expect a raw message without any subnet context (the IPC address is included in the message by the actor). Only actors are allowed to send arbitrary cross-messages as a side-effect of their execution. For plain token exchanges fund and release have to be used.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IGateway.sol\":\"IGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"bottomUpCheckpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"commitCheckpoint"},{"inputs":[{"internalType":"struct ParentFinality","name":"finality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"commitParentFinality"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpCheckpoint"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}],"stateMutability":"nonpayable","type":"function","name":"execBottomUpMsgBatch"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"fund"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fundWithToken"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[{"internalType":"bytes32","name":"msgCid","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"propagate"},{"inputs":[{"internalType":"uint256","name":"genesisCircSupply","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register"},{"inputs":[{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseStake"},{"inputs":[{"internalType":"struct CrossMsg","name":"crossMsg","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"payable","type":"function","name":"sendUserXnetMessage"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"addStake()":{"notice":"AddStake adds stake to the collateral of a subnet."},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"notice":"commitCheckpoint propagates the commitment of a checkpoint from a child"},"commitParentFinality((uint256,bytes32))":{"notice":"commit the ipc parent finality into storage"},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"notice":"creates a new bottom-up checkpoint"},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"notice":"execBottomUpMsgBatch submits a batch of cross-net messages from a subnet actor for their execution."},"fund((uint64,address[]),(uint8,bytes))":{"notice":"fund locks the received funds —denominated in the native coin— and moves the value down the hierarchy, crediting the funds to the specified address in the destination network. This functions ends up minting supply in the subnet equal to the value of the transaction. It does so by committing the relevant top-down message, updating the top-down nonce along the way. Calling this method on a subnet whose supply source is not 'native' will revert with UnexpectedSupplySource()."},"fundWithToken((uint64,address[]),(uint8,bytes),uint256)":{"notice":"fundWithToken locks the specified amount of tokens in the ERC20 contract linked to the subnet, and moves the value down the hierarchy, crediting the funds as native coins to the specified address in the destination network. This method expects the caller to have approved the gateway to spend `amount` tokens on their behalf (usually done through IERC20#approve). Tokens are locked by calling IERC20#transferFrom(caller, address(this), amount). A failure in transferring tokens to the gateway will revert the call. It's possible to call this method from an EOA or a contract. Regardless, it's recommended to approve strictly the amount that will subsequently be deposited into the subnet. Keeping outstanding approvals is not recommended. Calling this method on a subnet whose supply source is not 'ERC20' will revert with UnexpectedSupplySource()."},"kill()":{"notice":"Kill propagates the kill signal from a subnet actor to unregister it from th hierarchy."},"propagate(bytes32)":{"notice":"Propagates the stored postbox item for the given cid"},"register(uint256)":{"notice":"Register is called by subnet actors to put the required collateral and register the subnet to the hierarchy."},"release((uint8,bytes))":{"notice":"Release creates a new check message to release funds in parent chain This function burns the funds that will be released in the current subnet and propagates a new checkpoint message to the parent chain to signal the amount of funds that can be released for a specific address."},"releaseRewardForRelayer(uint256)":{"notice":"Release reward for relayer"},"releaseStake(uint256)":{"notice":"Release stake recovers some collateral of the subnet"},"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":{"notice":"SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy. If the message includes any funds they need to be burnt (like in Release) before being propagated to the corresponding subnet. The circulating supply in each subnet needs to be updated as the message passes through them. Params expect a raw message without any subnet context (the IPC address is included in the message by the actor). Only actors are allowed to send arbitrary cross-messages as a side-effect of their execution. For plain token exchanges fund and release have to be used."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IGateway.sol":"IGateway"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/IGateway.sol","id":40355,"exportedSymbols":{"BottomUpCheckpoint":[49885],"BottomUpMsgBatch":[49898],"CrossMsg":[49927],"FvmAddress":[49951],"IGateway":[40354],"ParentFinality":[49871],"SubnetID":[50030]},"nodeType":"SourceUnit","src":"46:4687:57","nodes":[{"id":40243,"nodeType":"PragmaDirective","src":"46:23:57","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40248,"nodeType":"ImportDirective","src":"71:103:57","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40355,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":40244,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"79:18:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40245,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49898,"src":"99:16:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40246,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"117:8:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40247,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"127:14:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40250,"nodeType":"ImportDirective","src":"175:47:57","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40355,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":40249,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"183:8:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40252,"nodeType":"ImportDirective","src":"223:53:57","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":40355,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":40251,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"231:10:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40354,"nodeType":"ContractDefinition","src":"334:4398:57","nodes":[{"id":40259,"nodeType":"FunctionDefinition","src":"492:62:57","nodes":[],"documentation":{"id":40254,"nodeType":"StructuredDocumentation","src":"359:128:57","text":"@notice Register is called by subnet actors to put the required collateral\n and register the subnet to the hierarchy."},"functionSelector":"f207564e","implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"501:8:57","parameters":{"id":40257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40256,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"518:17:57","nodeType":"VariableDeclaration","scope":40259,"src":"510:25:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40255,"name":"uint256","nodeType":"ElementaryTypeName","src":"510:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"509:27:57"},"returnParameters":{"id":40258,"nodeType":"ParameterList","parameters":[],"src":"553:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40263,"nodeType":"FunctionDefinition","src":"627:37:57","nodes":[],"documentation":{"id":40260,"nodeType":"StructuredDocumentation","src":"560:62:57","text":"@notice AddStake adds stake to the collateral of a subnet."},"functionSelector":"5a627dbc","implemented":false,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"636:8:57","parameters":{"id":40261,"nodeType":"ParameterList","parameters":[],"src":"644:2:57"},"returnParameters":{"id":40262,"nodeType":"ParameterList","parameters":[],"src":"663:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40269,"nodeType":"FunctionDefinition","src":"739:47:57","nodes":[],"documentation":{"id":40264,"nodeType":"StructuredDocumentation","src":"670:64:57","text":"@notice Release stake recovers some collateral of the subnet"},"functionSelector":"45f54485","implemented":false,"kind":"function","modifiers":[],"name":"releaseStake","nameLocation":"748:12:57","parameters":{"id":40267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40266,"mutability":"mutable","name":"amount","nameLocation":"769:6:57","nodeType":"VariableDeclaration","scope":40269,"src":"761:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40265,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:16:57"},"returnParameters":{"id":40268,"nodeType":"ParameterList","parameters":[],"src":"785:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40275,"nodeType":"FunctionDefinition","src":"835:58:57","nodes":[],"documentation":{"id":40270,"nodeType":"StructuredDocumentation","src":"792:38:57","text":"@notice Release reward for relayer"},"functionSelector":"d8e25572","implemented":false,"kind":"function","modifiers":[],"name":"releaseRewardForRelayer","nameLocation":"844:23:57","parameters":{"id":40273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40272,"mutability":"mutable","name":"amount","nameLocation":"876:6:57","nodeType":"VariableDeclaration","scope":40275,"src":"868:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40271,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"867:16:57"},"returnParameters":{"id":40274,"nodeType":"ParameterList","parameters":[],"src":"892:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40279,"nodeType":"FunctionDefinition","src":"1011:25:57","nodes":[],"documentation":{"id":40276,"nodeType":"StructuredDocumentation","src":"899:107:57","text":"@notice Kill propagates the kill signal from a subnet actor to unregister it from th\n hierarchy."},"functionSelector":"41c0e1b5","implemented":false,"kind":"function","modifiers":[],"name":"kill","nameLocation":"1020:4:57","parameters":{"id":40277,"nodeType":"ParameterList","parameters":[],"src":"1024:2:57"},"returnParameters":{"id":40278,"nodeType":"ParameterList","parameters":[],"src":"1035:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40286,"nodeType":"FunctionDefinition","src":"1130:83:57","nodes":[],"documentation":{"id":40280,"nodeType":"StructuredDocumentation","src":"1042:83:57","text":"@notice commitCheckpoint propagates the commitment of a checkpoint from a child"},"functionSelector":"47dc9b4f","implemented":false,"kind":"function","modifiers":[],"name":"commitCheckpoint","nameLocation":"1139:16:57","parameters":{"id":40284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40283,"mutability":"mutable","name":"bottomUpCheckpoint","nameLocation":"1184:18:57","nodeType":"VariableDeclaration","scope":40286,"src":"1156:46:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":40282,"nodeType":"UserDefinedTypeName","pathNode":{"id":40281,"name":"BottomUpCheckpoint","nameLocations":["1156:18:57"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"1156:18:57"},"referencedDeclaration":49885,"src":"1156:18:57","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1155:48:57"},"returnParameters":{"id":40285,"nodeType":"ParameterList","parameters":[],"src":"1212:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40296,"nodeType":"FunctionDefinition","src":"1764:83:57","nodes":[],"documentation":{"id":40287,"nodeType":"StructuredDocumentation","src":"1219:540:57","text":"@notice fund locks the received funds —denominated in the native coin— and moves the value down the hierarchy,\n crediting the funds to the specified address in the destination network.\n This functions ends up minting supply in the subnet equal to the value of the transaction. It does so by\n committing the relevant top-down message, updating the top-down nonce along the way.\n Calling this method on a subnet whose supply source is not 'native' will revert with UnexpectedSupplySource()."},"functionSelector":"18f44b70","implemented":false,"kind":"function","modifiers":[],"name":"fund","nameLocation":"1773:4:57","parameters":{"id":40294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40290,"mutability":"mutable","name":"subnetId","nameLocation":"1796:8:57","nodeType":"VariableDeclaration","scope":40296,"src":"1778:26:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40289,"nodeType":"UserDefinedTypeName","pathNode":{"id":40288,"name":"SubnetID","nameLocations":["1778:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1778:8:57"},"referencedDeclaration":50030,"src":"1778:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40293,"mutability":"mutable","name":"to","nameLocation":"1826:2:57","nodeType":"VariableDeclaration","scope":40296,"src":"1806:22:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40292,"nodeType":"UserDefinedTypeName","pathNode":{"id":40291,"name":"FvmAddress","nameLocations":["1806:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"1806:10:57"},"referencedDeclaration":49951,"src":"1806:10:57","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1777:52:57"},"returnParameters":{"id":40295,"nodeType":"ParameterList","parameters":[],"src":"1846:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40308,"nodeType":"FunctionDefinition","src":"2806:100:57","nodes":[],"documentation":{"id":40297,"nodeType":"StructuredDocumentation","src":"1853:948:57","text":"@notice fundWithToken locks the specified amount of tokens in the ERC20 contract linked to the subnet, and\n moves the value down the hierarchy, crediting the funds as native coins to the specified address\n in the destination network.\n This method expects the caller to have approved the gateway to spend `amount` tokens on their behalf\n (usually done through IERC20#approve). Tokens are locked by calling IERC20#transferFrom(caller, address(this), amount).\n A failure in transferring tokens to the gateway will revert the call.\n It's possible to call this method from an EOA or a contract. Regardless, it's recommended to approve strictly\n the amount that will subsequently be deposited into the subnet. Keeping outstanding approvals is not recommended.\n Calling this method on a subnet whose supply source is not 'ERC20' will revert with UnexpectedSupplySource()."},"functionSelector":"0517e1aa","implemented":false,"kind":"function","modifiers":[],"name":"fundWithToken","nameLocation":"2815:13:57","parameters":{"id":40306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40300,"mutability":"mutable","name":"subnetId","nameLocation":"2847:8:57","nodeType":"VariableDeclaration","scope":40308,"src":"2829:26:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40299,"nodeType":"UserDefinedTypeName","pathNode":{"id":40298,"name":"SubnetID","nameLocations":["2829:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"2829:8:57"},"referencedDeclaration":50030,"src":"2829:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40303,"mutability":"mutable","name":"to","nameLocation":"2877:2:57","nodeType":"VariableDeclaration","scope":40308,"src":"2857:22:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40302,"nodeType":"UserDefinedTypeName","pathNode":{"id":40301,"name":"FvmAddress","nameLocations":["2857:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"2857:10:57"},"referencedDeclaration":49951,"src":"2857:10:57","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40305,"mutability":"mutable","name":"amount","nameLocation":"2889:6:57","nodeType":"VariableDeclaration","scope":40308,"src":"2881:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40304,"name":"uint256","nodeType":"ElementaryTypeName","src":"2881:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2828:68:57"},"returnParameters":{"id":40307,"nodeType":"ParameterList","parameters":[],"src":"2905:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40315,"nodeType":"FunctionDefinition","src":"3238:58:57","nodes":[],"documentation":{"id":40309,"nodeType":"StructuredDocumentation","src":"2912:321:57","text":"@notice Release creates a new check message to release funds in parent chain\n This function burns the funds that will be released in the current subnet\n and propagates a new checkpoint message to the parent chain to signal\n the amount of funds that can be released for a specific address."},"functionSelector":"6b2c1eef","implemented":false,"kind":"function","modifiers":[],"name":"release","nameLocation":"3247:7:57","parameters":{"id":40313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40312,"mutability":"mutable","name":"to","nameLocation":"3275:2:57","nodeType":"VariableDeclaration","scope":40315,"src":"3255:22:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40311,"nodeType":"UserDefinedTypeName","pathNode":{"id":40310,"name":"FvmAddress","nameLocations":["3255:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"3255:10:57"},"referencedDeclaration":49951,"src":"3255:10:57","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"3254:24:57"},"returnParameters":{"id":40314,"nodeType":"ParameterList","parameters":[],"src":"3295:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40322,"nodeType":"FunctionDefinition","src":"3966:72:57","nodes":[],"documentation":{"id":40316,"nodeType":"StructuredDocumentation","src":"3302:659:57","text":"@notice SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy.\n If the message includes any funds they need to be burnt (like in Release)\n before being propagated to the corresponding subnet.\n The circulating supply in each subnet needs to be updated as the message passes through them.\n Params expect a raw message without any subnet context (the IPC address is\n included in the message by the actor). Only actors are allowed to send arbitrary\n cross-messages as a side-effect of their execution. For plain token exchanges\n fund and release have to be used."},"functionSelector":"210b944e","implemented":false,"kind":"function","modifiers":[],"name":"sendUserXnetMessage","nameLocation":"3975:19:57","parameters":{"id":40320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40319,"mutability":"mutable","name":"crossMsg","nameLocation":"4011:8:57","nodeType":"VariableDeclaration","scope":40322,"src":"3995:24:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40318,"nodeType":"UserDefinedTypeName","pathNode":{"id":40317,"name":"CrossMsg","nameLocations":["3995:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"3995:8:57"},"referencedDeclaration":49927,"src":"3995:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"3994:26:57"},"returnParameters":{"id":40321,"nodeType":"ParameterList","parameters":[],"src":"4037:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40328,"nodeType":"FunctionDefinition","src":"4113:52:57","nodes":[],"documentation":{"id":40323,"nodeType":"StructuredDocumentation","src":"4044:64:57","text":"@notice Propagates the stored postbox item for the given cid"},"functionSelector":"25bf0db6","implemented":false,"kind":"function","modifiers":[],"name":"propagate","nameLocation":"4122:9:57","parameters":{"id":40326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40325,"mutability":"mutable","name":"msgCid","nameLocation":"4140:6:57","nodeType":"VariableDeclaration","scope":40328,"src":"4132:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4132:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4131:16:57"},"returnParameters":{"id":40327,"nodeType":"ParameterList","parameters":[],"src":"4164:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40335,"nodeType":"FunctionDefinition","src":"4231:73:57","nodes":[],"documentation":{"id":40329,"nodeType":"StructuredDocumentation","src":"4171:55:57","text":"@notice commit the ipc parent finality into storage"},"functionSelector":"11196974","implemented":false,"kind":"function","modifiers":[],"name":"commitParentFinality","nameLocation":"4240:20:57","parameters":{"id":40333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40332,"mutability":"mutable","name":"finality","nameLocation":"4285:8:57","nodeType":"VariableDeclaration","scope":40335,"src":"4261:32:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":40331,"nodeType":"UserDefinedTypeName","pathNode":{"id":40330,"name":"ParentFinality","nameLocations":["4261:14:57"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"4261:14:57"},"referencedDeclaration":49871,"src":"4261:14:57","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"4260:34:57"},"returnParameters":{"id":40334,"nodeType":"ParameterList","parameters":[],"src":"4303:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40346,"nodeType":"FunctionDefinition","src":"4361:167:57","nodes":[],"documentation":{"id":40336,"nodeType":"StructuredDocumentation","src":"4310:46:57","text":"@notice creates a new bottom-up checkpoint"},"functionSelector":"74303771","implemented":false,"kind":"function","modifiers":[],"name":"createBottomUpCheckpoint","nameLocation":"4370:24:57","parameters":{"id":40344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40339,"mutability":"mutable","name":"checkpoint","nameLocation":"4432:10:57","nodeType":"VariableDeclaration","scope":40346,"src":"4404:38:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":40338,"nodeType":"UserDefinedTypeName","pathNode":{"id":40337,"name":"BottomUpCheckpoint","nameLocations":["4404:18:57"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"4404:18:57"},"referencedDeclaration":49885,"src":"4404:18:57","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":40341,"mutability":"mutable","name":"membershipRootHash","nameLocation":"4460:18:57","nodeType":"VariableDeclaration","scope":40346,"src":"4452:26:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4452:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40343,"mutability":"mutable","name":"membershipWeight","nameLocation":"4496:16:57","nodeType":"VariableDeclaration","scope":40346,"src":"4488:24:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40342,"name":"uint256","nodeType":"ElementaryTypeName","src":"4488:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4394:124:57"},"returnParameters":{"id":40345,"nodeType":"ParameterList","parameters":[],"src":"4527:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40353,"nodeType":"FunctionDefinition","src":"4658:72:57","nodes":[],"documentation":{"id":40347,"nodeType":"StructuredDocumentation","src":"4534:119:57","text":"@notice execBottomUpMsgBatch submits a batch of cross-net messages\n from a subnet actor for their execution."},"functionSelector":"0bed7615","implemented":false,"kind":"function","modifiers":[],"name":"execBottomUpMsgBatch","nameLocation":"4667:20:57","parameters":{"id":40351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40350,"mutability":"mutable","name":"batch","nameLocation":"4714:5:57","nodeType":"VariableDeclaration","scope":40353,"src":"4688:31:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":40349,"nodeType":"UserDefinedTypeName","pathNode":{"id":40348,"name":"BottomUpMsgBatch","nameLocations":["4688:16:57"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"4688:16:57"},"referencedDeclaration":49898,"src":"4688:16:57","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"4687:33:57"},"returnParameters":{"id":40352,"nodeType":"ParameterList","parameters":[],"src":"4729:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IGateway","contractDependencies":[],"contractKind":"interface","documentation":{"id":40253,"nodeType":"StructuredDocumentation","src":"278:56:57","text":"@title Gateway interface\n @author LimeChain team"},"fullyImplemented":false,"linearizedBaseContracts":[40354],"name":"IGateway","nameLocation":"344:8:57","scope":40355,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":57} \ No newline at end of file diff --git a/.out/ISubnetActor.sol/IRelayerRewardDistributor.json b/.out/ISubnetActor.sol/IRelayerRewardDistributor.json new file mode 100644 index 000000000..948df839d --- /dev/null +++ b/.out/ISubnetActor.sol/IRelayerRewardDistributor.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"reward the relayers for processing checkpoint at height `height`. The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISubnetActor.sol\":\"IRelayerRewardDistributor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3\",\"dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"reward the relayers for processing checkpoint at height `height`. The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/ISubnetActor.sol":"IRelayerRewardDistributor"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451","urls":["bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3","dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/ISubnetActor.sol","id":40373,"exportedSymbols":{"BottomUpCheckpoint":[49885],"IRelayerRewardDistributor":[40372],"QuorumObjKind":[49965]},"nodeType":"SourceUnit","src":"46:492:58","nodes":[{"id":40356,"nodeType":"PragmaDirective","src":"46:23:58","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40358,"nodeType":"ImportDirective","src":"71:59:58","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40373,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":40357,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"79:18:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40360,"nodeType":"ImportDirective","src":"131:52:58","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":40373,"sourceUnit":50013,"symbolAliases":[{"foreign":{"id":40359,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49965,"src":"139:13:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40372,"nodeType":"ContractDefinition","src":"185:352:58","nodes":[{"id":40371,"nodeType":"FunctionDefinition","src":"430:105:58","nodes":[],"documentation":{"id":40361,"nodeType":"StructuredDocumentation","src":"227:198:58","text":"reward the relayers for processing checkpoint at height `height`.\n The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages."},"functionSelector":"4c860af6","implemented":false,"kind":"function","modifiers":[],"name":"distributeRewardToRelayers","nameLocation":"439:26:58","parameters":{"id":40369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40363,"mutability":"mutable","name":"height","nameLocation":"474:6:58","nodeType":"VariableDeclaration","scope":40371,"src":"466:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40362,"name":"uint256","nodeType":"ElementaryTypeName","src":"466:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40365,"mutability":"mutable","name":"amount","nameLocation":"490:6:58","nodeType":"VariableDeclaration","scope":40371,"src":"482:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40364,"name":"uint256","nodeType":"ElementaryTypeName","src":"482:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40368,"mutability":"mutable","name":"kind","nameLocation":"512:4:58","nodeType":"VariableDeclaration","scope":40371,"src":"498:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"},"typeName":{"id":40367,"nodeType":"UserDefinedTypeName","pathNode":{"id":40366,"name":"QuorumObjKind","nameLocations":["498:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":49965,"src":"498:13:58"},"referencedDeclaration":49965,"src":"498:13:58","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}},"visibility":"internal"}],"src":"465:52:58"},"returnParameters":{"id":40370,"nodeType":"ParameterList","parameters":[],"src":"534:0:58"},"scope":40372,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IRelayerRewardDistributor","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[40372],"name":"IRelayerRewardDistributor","nameLocation":"195:25:58","scope":40373,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":58} \ No newline at end of file diff --git a/.out/ISubnetActor.sol/ISubnetActor.json b/.out/ISubnetActor.sol/ISubnetActor.json deleted file mode 100644 index 3f1c08143..000000000 --- a/.out/ISubnetActor.sol/ISubnetActor.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"metadata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","stake()":"3a4b66f1","submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":"b9ee2bb9","unstake(uint256)":"2e17de78"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Subnet Actor interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"claim()\":{\"notice\":\"Validator claims released collateral\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims a reward\"},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"reward the relayers for processing checkpoint at height `height`. The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages.\"},\"join(bytes)\":{\"notice\":\"Called by peers looking to join a subnet. It implements the basic logic to onboard new peers to the subnet.\"},\"kill()\":{\"notice\":\"Unregister the subnet from the hierarchy, making it no longer discoverable.\"},\"leave()\":{\"notice\":\"Called by peers looking to leave a subnet.\"},\"preFund()\":{\"notice\":\"Method that allows to pre-fund an address in the subnet before it bootstraps.\"},\"preRelease(uint256)\":{\"notice\":\"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet.\"},\"stake()\":{\"notice\":\"Method that allows a validator to increase their stake\"},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"notice\":\"Executes the checkpoint if it is valid. It triggers the commitment of the checkpoint, the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\"},\"unstake(uint256)\":{\"notice\":\"Method that allows a validator to unstake their collateral from a subnet\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISubnetActor.sol\":\"ISubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"metadata","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"claim()":{"notice":"Validator claims released collateral"},"claimRewardForRelayer()":{"notice":"Relayer claims a reward"},"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"reward the relayers for processing checkpoint at height `height`. The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages."},"join(bytes)":{"notice":"Called by peers looking to join a subnet. It implements the basic logic to onboard new peers to the subnet."},"kill()":{"notice":"Unregister the subnet from the hierarchy, making it no longer discoverable."},"leave()":{"notice":"Called by peers looking to leave a subnet."},"preFund()":{"notice":"Method that allows to pre-fund an address in the subnet before it bootstraps."},"preRelease(uint256)":{"notice":"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet."},"stake()":{"notice":"Method that allows a validator to increase their stake"},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"notice":"Executes the checkpoint if it is valid. It triggers the commitment of the checkpoint, the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping."},"unstake(uint256)":{"notice":"Method that allows a validator to unstake their collateral from a subnet"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/ISubnetActor.sol":"ISubnetActor"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/ISubnetActor.sol","id":40429,"exportedSymbols":{"BottomUpCheckpoint":[49932],"ISubnetActor":[40428],"QuorumObjKind":[50012]},"nodeType":"SourceUnit","src":"46:2048:58","nodes":[{"id":40356,"nodeType":"PragmaDirective","src":"46:23:58","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40358,"nodeType":"ImportDirective","src":"71:59:58","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40429,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":40357,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"79:18:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40360,"nodeType":"ImportDirective","src":"131:52:58","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":40429,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":40359,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"139:13:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40428,"nodeType":"ContractDefinition","src":"246:1847:58","nodes":[{"id":40367,"nodeType":"FunctionDefinition","src":"407:56:58","nodes":[],"documentation":{"id":40362,"nodeType":"StructuredDocumentation","src":"275:127:58","text":"Called by peers looking to join a subnet.\n It implements the basic logic to onboard new peers to the subnet."},"functionSelector":"6170b162","implemented":false,"kind":"function","modifiers":[],"name":"join","nameLocation":"416:4:58","parameters":{"id":40365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40364,"mutability":"mutable","name":"metadata","nameLocation":"436:8:58","nodeType":"VariableDeclaration","scope":40367,"src":"421:23:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":40363,"name":"bytes","nodeType":"ElementaryTypeName","src":"421:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"420:25:58"},"returnParameters":{"id":40366,"nodeType":"ParameterList","parameters":[],"src":"462:0:58"},"scope":40428,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40371,"nodeType":"FunctionDefinition","src":"520:26:58","nodes":[],"documentation":{"id":40368,"nodeType":"StructuredDocumentation","src":"469:46:58","text":"Called by peers looking to leave a subnet."},"functionSelector":"d66d9e19","implemented":false,"kind":"function","modifiers":[],"name":"leave","nameLocation":"529:5:58","parameters":{"id":40369,"nodeType":"ParameterList","parameters":[],"src":"534:2:58"},"returnParameters":{"id":40370,"nodeType":"ParameterList","parameters":[],"src":"545:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40375,"nodeType":"FunctionDefinition","src":"615:34:58","nodes":[],"documentation":{"id":40372,"nodeType":"StructuredDocumentation","src":"552:58:58","text":"Method that allows a validator to increase their stake"},"functionSelector":"3a4b66f1","implemented":false,"kind":"function","modifiers":[],"name":"stake","nameLocation":"624:5:58","parameters":{"id":40373,"nodeType":"ParameterList","parameters":[],"src":"629:2:58"},"returnParameters":{"id":40374,"nodeType":"ParameterList","parameters":[],"src":"648:0:58"},"scope":40428,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40379,"nodeType":"FunctionDefinition","src":"741:36:58","nodes":[],"documentation":{"id":40376,"nodeType":"StructuredDocumentation","src":"655:81:58","text":"Method that allows to pre-fund an address in the subnet before it bootstraps."},"functionSelector":"0b7fbe60","implemented":false,"kind":"function","modifiers":[],"name":"preFund","nameLocation":"750:7:58","parameters":{"id":40377,"nodeType":"ParameterList","parameters":[],"src":"757:2:58"},"returnParameters":{"id":40378,"nodeType":"ParameterList","parameters":[],"src":"776:0:58"},"scope":40428,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40385,"nodeType":"FunctionDefinition","src":"896:45:58","nodes":[],"documentation":{"id":40380,"nodeType":"StructuredDocumentation","src":"783:108:58","text":"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet."},"functionSelector":"66783c9b","implemented":false,"kind":"function","modifiers":[],"name":"preRelease","nameLocation":"905:10:58","parameters":{"id":40383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40382,"mutability":"mutable","name":"amount","nameLocation":"924:6:58","nodeType":"VariableDeclaration","scope":40385,"src":"916:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40381,"name":"uint256","nodeType":"ElementaryTypeName","src":"916:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"915:16:58"},"returnParameters":{"id":40384,"nodeType":"ParameterList","parameters":[],"src":"940:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40391,"nodeType":"FunctionDefinition","src":"1028:42:58","nodes":[],"documentation":{"id":40386,"nodeType":"StructuredDocumentation","src":"947:76:58","text":"Method that allows a validator to unstake their collateral from a subnet"},"functionSelector":"2e17de78","implemented":false,"kind":"function","modifiers":[],"name":"unstake","nameLocation":"1037:7:58","parameters":{"id":40389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40388,"mutability":"mutable","name":"amount","nameLocation":"1053:6:58","nodeType":"VariableDeclaration","scope":40391,"src":"1045:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40387,"name":"uint256","nodeType":"ElementaryTypeName","src":"1045:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1044:16:58"},"returnParameters":{"id":40390,"nodeType":"ParameterList","parameters":[],"src":"1069:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40395,"nodeType":"FunctionDefinition","src":"1160:25:58","nodes":[],"documentation":{"id":40392,"nodeType":"StructuredDocumentation","src":"1076:79:58","text":"Unregister the subnet from the hierarchy, making it no longer discoverable."},"functionSelector":"41c0e1b5","implemented":false,"kind":"function","modifiers":[],"name":"kill","nameLocation":"1169:4:58","parameters":{"id":40393,"nodeType":"ParameterList","parameters":[],"src":"1173:2:58"},"returnParameters":{"id":40394,"nodeType":"ParameterList","parameters":[],"src":"1184:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40399,"nodeType":"FunctionDefinition","src":"1236:26:58","nodes":[],"documentation":{"id":40396,"nodeType":"StructuredDocumentation","src":"1191:40:58","text":"Validator claims released collateral"},"functionSelector":"4e71d92d","implemented":false,"kind":"function","modifiers":[],"name":"claim","nameLocation":"1245:5:58","parameters":{"id":40397,"nodeType":"ParameterList","parameters":[],"src":"1250:2:58"},"returnParameters":{"id":40398,"nodeType":"ParameterList","parameters":[],"src":"1261:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40403,"nodeType":"FunctionDefinition","src":"1300:42:58","nodes":[],"documentation":{"id":40400,"nodeType":"StructuredDocumentation","src":"1268:27:58","text":"Relayer claims a reward"},"functionSelector":"ed7c4da1","implemented":false,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"1309:21:58","parameters":{"id":40401,"nodeType":"ParameterList","parameters":[],"src":"1330:2:58"},"returnParameters":{"id":40402,"nodeType":"ParameterList","parameters":[],"src":"1341:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40416,"nodeType":"FunctionDefinition","src":"1611:166:58","nodes":[],"documentation":{"id":40404,"nodeType":"StructuredDocumentation","src":"1348:258:58","text":"Executes the checkpoint if it is valid.\n It triggers the commitment of the checkpoint, the execution of related cross-net messages,\n and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping."},"functionSelector":"b9ee2bb9","implemented":false,"kind":"function","modifiers":[],"name":"submitCheckpoint","nameLocation":"1620:16:58","parameters":{"id":40414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40407,"mutability":"mutable","name":"checkpoint","nameLocation":"1674:10:58","nodeType":"VariableDeclaration","scope":40416,"src":"1646:38:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":40406,"nodeType":"UserDefinedTypeName","pathNode":{"id":40405,"name":"BottomUpCheckpoint","nameLocations":["1646:18:58"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1646:18:58"},"referencedDeclaration":49932,"src":"1646:18:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":40410,"mutability":"mutable","name":"signatories","nameLocation":"1713:11:58","nodeType":"VariableDeclaration","scope":40416,"src":"1694:30:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":40408,"name":"address","nodeType":"ElementaryTypeName","src":"1694:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40409,"nodeType":"ArrayTypeName","src":"1694:9:58","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":40413,"mutability":"mutable","name":"signatures","nameLocation":"1751:10:58","nodeType":"VariableDeclaration","scope":40416,"src":"1734:27:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":40411,"name":"bytes","nodeType":"ElementaryTypeName","src":"1734:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":40412,"nodeType":"ArrayTypeName","src":"1734:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1636:131:58"},"returnParameters":{"id":40415,"nodeType":"ParameterList","parameters":[],"src":"1776:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40427,"nodeType":"FunctionDefinition","src":"1986:105:58","nodes":[],"documentation":{"id":40417,"nodeType":"StructuredDocumentation","src":"1783:198:58","text":"reward the relayers for processing checkpoint at height `height`.\n The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages."},"functionSelector":"4c860af6","implemented":false,"kind":"function","modifiers":[],"name":"distributeRewardToRelayers","nameLocation":"1995:26:58","parameters":{"id":40425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40419,"mutability":"mutable","name":"height","nameLocation":"2030:6:58","nodeType":"VariableDeclaration","scope":40427,"src":"2022:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40418,"name":"uint256","nodeType":"ElementaryTypeName","src":"2022:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40421,"mutability":"mutable","name":"amount","nameLocation":"2046:6:58","nodeType":"VariableDeclaration","scope":40427,"src":"2038:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40420,"name":"uint256","nodeType":"ElementaryTypeName","src":"2038:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40424,"mutability":"mutable","name":"kind","nameLocation":"2068:4:58","nodeType":"VariableDeclaration","scope":40427,"src":"2054:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"typeName":{"id":40423,"nodeType":"UserDefinedTypeName","pathNode":{"id":40422,"name":"QuorumObjKind","nameLocations":["2054:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"2054:13:58"},"referencedDeclaration":50012,"src":"2054:13:58","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"visibility":"internal"}],"src":"2021:52:58"},"returnParameters":{"id":40426,"nodeType":"ParameterList","parameters":[],"src":"2090:0:58"},"scope":40428,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISubnetActor","contractDependencies":[],"contractKind":"interface","documentation":{"id":40361,"nodeType":"StructuredDocumentation","src":"185:61:58","text":"@title Subnet Actor interface\n @author LimeChain team"},"fullyImplemented":false,"linearizedBaseContracts":[40428],"name":"ISubnetActor","nameLocation":"256:12:58","scope":40429,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":58} \ No newline at end of file diff --git a/.out/IntegrationTestBase.sol/IntegrationTestBase.json b/.out/IntegrationTestBase.sol/IntegrationTestBase.json index 912e8f5c8..bc153c66e 100644 --- a/.out/IntegrationTestBase.sol/IntegrationTestBase.json +++ b/.out/IntegrationTestBase.sol/IntegrationTestBase.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"addStake","inputs":[{"name":"stakeAmount","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addValidator","inputs":[{"name":"validator","type":"address","internalType":"address"},{"name":"weight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createGatewayDiamond","inputs":[{"name":"params","type":"tuple","internalType":"struct GatewayDiamond.ConstructorParams","components":[{"name":"networkName","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"bottomUpCheckPeriod","type":"uint256","internalType":"uint256"},{"name":"msgFee","type":"uint256","internalType":"uint256"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"genesisValidators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"","type":"address","internalType":"contract GatewayDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createMockedSubnetActorWithGateway","inputs":[{"name":"gw","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"_ipcGatewayAddr","type":"address","internalType":"address"},{"name":"_consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"_minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_checkPeriod","type":"uint64","internalType":"uint64"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"_permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"_activeValidatorsLimit","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"_ipcGatewayAddr","type":"address","internalType":"address"},{"name":"_consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"_minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_checkPeriod","type":"uint64","internalType":"uint64"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActorDiamondWithFaucets","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]},{"name":"getterFaucet","type":"address","internalType":"address"},{"name":"managerFaucet","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetRegistryDiamond.ConstructorParams","components":[{"name":"gateway","type":"address","internalType":"address"},{"name":"getterFacet","type":"address","internalType":"address"},{"name":"managerFacet","type":"address","internalType":"address"},{"name":"subnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"subnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetRegistryDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"funderAddress","type":"address","internalType":"address"},{"name":"fundAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"funderAddress","type":"address","internalType":"address"},{"name":"fundAmount","type":"uint256","internalType":"uint256"},{"name":"mode","type":"uint8","internalType":"enum SupplyKind"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getSubnet","inputs":[{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getSubnetGW","inputs":[{"name":"subnetAddress","type":"address","internalType":"address"},{"name":"gw","type":"address","internalType":"contract GatewayDiamond"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"join","inputs":[{"name":"validatorAddress","type":"address","internalType":"address"},{"name":"pubkey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSubnet","inputs":[{"name":"collateral","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSubnetGW","inputs":[{"name":"collateral","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"},{"name":"gw","type":"address","internalType":"contract GatewayDiamond"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"release","inputs":[{"name":"releaseAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reward","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setupValidators","inputs":[],"outputs":[{"name":"validators","type":"tuple[]","internalType":"struct FvmAddress[]","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"addresses","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"setupWhiteListMethod","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"src","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"totalWeight","inputs":[{"name":"weights","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"sum","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"event","name":"SubnetRegistryCreated","inputs":[{"name":"subnetRegistryAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234620025fd57600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601360248201527f52656769737465725375626e6574466163657400000000000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620025de575b508051906001600160401b03821162000f985768010000000000000000821162000f9857601b5482601b558083106200257b575b5060200190601b60005260206000209060005b8160031c81106200252b57506007198116810380620024d3575b505050506040516319b8a26360e21b815260206004820152601160248201527014dd589b995d11d95d1d195c919858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620024b4575b508051906001600160401b03821162000f985768010000000000000000821162000f9857601c5482601c5580831062002448575b5060200190601c60005260206000209060005b8160031c8110620023f85750600719811681036200239f575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162002380575b508051906001600160401b03821162000f985768010000000000000000821162000f9857601d5482601d55808310620022f7575b5060200190601d60005260206000209060005b8160031c8110620022a75750600719811681036200224e575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd6576000916200222f575b508051906001600160401b03821162000f985768010000000000000000821162000f9857601e5482601e55808310620021a6575b5060200190601e60005260206000209060005b8160031c811062002156575060071981168103620020fd575b50506040516319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f724765747465724661636574000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620020de575b508051906001600160401b03821162000f985768010000000000000000821162000f98576024548260245580831062002055575b5060200190602460005260206000209060005b8160031c81106200200557506007198116810362001fac575b50506040516319b8a26360e21b815260206004820152601760248201527f5375626e65744163746f724d616e6167657246616365740000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001f8d575b508051906001600160401b03821162000f985768010000000000000000821162000f98576025548260255580831062001f04575b5060200190602560005260206000209060005b8160031c811062001eb457506007198116810362001e5b575b50506040516319b8a26360e21b815260206004820152601b60248201527f5375626e65744163746f724d616e6167657246616365744d6f636b00000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001e3c575b508051906001600160401b03821162000f985768010000000000000000821162000f98576026548260265580831062001db3575b5060200190602660005260206000209060005b8160031c811062001d6357506007198116810362001d0a575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001ceb575b508051906001600160401b03821162000f985768010000000000000000821162000f98576027548260275580831062001c62575b5060200190602760005260206000209060005b8160031c811062001c1257506007198116810362001bb9575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001b9a575b508051906001600160401b03821162000f985768010000000000000000821162000f98576028548260285580831062001b11575b5060200190602860005260206000209060005b8160031c811062001ac157506007198116810362001a68575b50506040516319b8a26360e21b815260206004820152601260248201527110da1958dadc1bda5b9d1a5b99d19858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001a49575b508051906001600160401b03821162000f985768010000000000000000821162000f9857602f5482602f55808310620019c0575b5060200190602f60005260206000209060005b8160031c81106200197057506007198116810362001917575b50506040516319b8a26360e21b8152602060048201526012602482015271161b995d13595cdcd859da5b99d19858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620018f8575b508051906001600160401b03821162000f985768010000000000000000821162000f9857603054826030558083106200186f575b5060200190603060005260206000209060005b8160031c81106200181f575060071981168103620017c6575b50506040516319b8a26360e21b815260206004820152601460248201527f546f70446f776e46696e616c69747946616365740000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620017a7575b508051906001600160401b03821162000f985768010000000000000000821162000f9857603154826031558083106200171e575b5060200190603160005260206000209060005b8160031c8110620016ce57506007198116810362001675575b50506040516319b8a26360e21b815260206004820152601360248201527f426f74746f6d5570526f757465724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001656575b508051906001600160401b03821162000f985768010000000000000000821162000f985760325482603255808310620015cd575b5060200190603260005260206000209060005b8160031c81106200157d57506007198116810362001524575b50506040516319b8a26360e21b815260206004820152601260248201527111d85d195dd85e51d95d1d195c919858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001505575b508051906001600160401b03821162000f985768010000000000000000821162000f9857603454826034558083106200147c575b5060200190603460005260206000209060005b8160031c81106200142c575060071981168103620013d3575b50506040516319b8a26360e21b815260206004820152601360248201527f476174657761794d616e616765724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620013b4575b508051906001600160401b03821162000f985768010000000000000000821162000f9857603354826033558083106200132b575b5060200190603360005260206000209060005b8160031c8110620012db57506007198116810362001282575b50506040516319b8a26360e21b815260206004820152601560248201527f476174657761794d657373656e676572466163657400000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001263575b508051906001600160401b03821162000f985768010000000000000000821162000f985760355482603555808310620011db575b5060200190603560005260206000209060005b8160031c81106200118b5750600719811681038062001133575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b60448201529150600090508160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001114575b508051906001600160401b03821162000f985768010000000000000000821162000f9857603654826036558083106200108c575b5060200190603660005260206000209060005b8160031c81106200103c5750600719811680820362000fe2575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b60448201529150600090508160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162000fae575b508051906001600160401b03821162000f985768010000000000000000821162000f98576037548260375580831062000f35575b5060200190603760005260206000208160031c9160005b83811062000ee55750600719811690038062000e90575b60405162029b459081620026bd8239f35b9260009360005b81811062000eae5750505001553880808062000e7f565b909194602062000eda600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000e97565b6000805b6008811062000f0057508382015560010162000e68565b9590602062000f2b600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000ee9565b60376000526020600020600780850160031c8201920160031c0190601c8460021b168062000f7c575b505b81811062000f6f575062000e51565b6000815560010162000f60565b600019908183019182549160200360031b1c1690553862000f5e565b634e487b7160e01b600052604160045260246000fd5b62000fcf91503d806000833e62000fc6818362002602565b81019062002626565b3862000e1d565b6040513d6000823e3d90fd5b9260009360005b8184038110620010055750505060031c01553880808062000db4565b909194602062001031600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000fe9565b6000805b600881106200105757508382015560010162000d9a565b9490602062001082600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001040565b60366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8600284901b601c1680620010f0575b50600780850160031c8201920160031c01905b818110620010e3575062000d87565b60008155600101620010d4565b60001990816007870160031c8401019182549160200360031b1c16905538620010c1565b6200112c91503d806000833e62000fc6818362002602565b3862000d53565b9260009360005b818110620011545750505060031c01553880808062000cec565b909194602062001180600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200113a565b6000805b60088110620011a657508382015560010162000cd2565b94906020620011d1600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200118f565b60356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d600284901b601c16806200123f575b50600780850160031c8201920160031c01905b81811062001232575062000cbf565b6000815560010162001223565b60001990816007870160031c8401019182549160200360031b1c1690553862001210565b6200127b91503d806000833e62000fc6818362002602565b3862000c8b565b60009260005b600719831683038110620012a657505060031c015538808062000c18565b90936020620012d1600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001288565b6000805b60088110620012f657508382015560010162000bff565b9490602062001321600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620012df565b60336000527f82a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a82600284901b601c168062001390575b506007840160031c81015b6007830160031c820181106200138357505062000bec565b600081556001016200136b565b60001990816007870160031c8401019182549160200360031b1c1690553862001360565b620013cc91503d806000833e62000fc6818362002602565b3862000bb8565b60009260005b600719831683038110620013f757505060031c015538808062000b45565b9093602062001422600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620013d9565b6000805b600881106200144757508382015560010162000b2c565b9490602062001472600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001430565b60346000527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1600284901b601c1680620014e1575b506007840160031c81015b6007830160031c82018110620014d457505062000b19565b60008155600101620014bc565b60001990816007870160031c8401019182549160200360031b1c16905538620014b1565b6200151d91503d806000833e62000fc6818362002602565b3862000ae5565b60009260005b6007198316830381106200154857505060031c015538808062000a7d565b9093602062001573600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016200152a565b6000805b600881106200159857508382015560010162000a64565b94906020620015c3600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001581565b60326000527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697600284901b601c168062001632575b506007840160031c81015b6007830160031c820181106200162557505062000a51565b600081556001016200160d565b60001990816007870160031c8401019182549160200360031b1c1690553862001602565b6200166e91503d806000833e62000fc6818362002602565b3862000a1d565b60009260005b6007198316830381106200169957505060031c0155388080620009aa565b90936020620016c4600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016200167b565b6000805b60088110620016e957508382015560010162000991565b9490602062001714600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620016d2565b60316000527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc600284901b601c168062001783575b506007840160031c81015b6007830160031c82018110620017765750506200097e565b600081556001016200175e565b60001990816007870160031c8401019182549160200360031b1c1690553862001753565b620017bf91503d806000833e62000fc6818362002602565b386200094a565b60009260005b600719831683038110620017ea57505060031c0155388080620008d7565b9093602062001815600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620017cc565b6000805b600881106200183a575083820155600101620008be565b9490602062001865600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001823565b60306000527f6ff97a59c90d62cc7236ba3a37cd85351bf564556780cf8c1157a220f31f0cbb600284901b601c1680620018d4575b506007840160031c81015b6007830160031c82018110620018c7575050620008ab565b60008155600101620018af565b60001990816007870160031c8401019182549160200360031b1c16905538620018a4565b6200191091503d806000833e62000fc6818362002602565b3862000877565b60009260005b6007198316830381106200193b57505060031c01553880806200080f565b9093602062001966600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016200191d565b6000805b600881106200198b575083820155600101620007f6565b94906020620019b6600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001974565b602f6000527fa813484aef6fb598f9f753daf162068ff39ccea4075cb95e1a30f86995b5b7ee600284901b601c168062001a25575b506007840160031c81015b6007830160031c8201811062001a18575050620007e3565b6000815560010162001a00565b60001990816007870160031c8401019182549160200360031b1c16905538620019f5565b62001a6191503d806000833e62000fc6818362002602565b38620007af565b60009260005b60071983168303811062001a8c57505060031c015538808062000747565b9093602062001ab7600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001a6e565b6000805b6008811062001adc5750838201556001016200072e565b9490602062001b07600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001ac5565b60286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5600284901b601c168062001b76575b506007840160031c81015b6007830160031c8201811062001b695750506200071b565b6000815560010162001b51565b60001990816007870160031c8401019182549160200360031b1c1690553862001b46565b62001bb291503d806000833e62000fc6818362002602565b38620006e7565b60009260005b60071983168303811062001bdd57505060031c015538808062000680565b9093602062001c08600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001bbf565b6000805b6008811062001c2d57508382015560010162000667565b9490602062001c58600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001c16565b60276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b600284901b601c168062001cc7575b506007840160031c81015b6007830160031c8201811062001cba57505062000654565b6000815560010162001ca2565b60001990816007870160031c8401019182549160200360031b1c1690553862001c97565b62001d0391503d806000833e62000fc6818362002602565b3862000620565b60009260005b60071983168303811062001d2e57505060031c0155388080620005bb565b9093602062001d59600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001d10565b6000805b6008811062001d7e575083820155600101620005a2565b9490602062001da9600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001d67565b60266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594600284901b601c168062001e18575b506007840160031c81015b6007830160031c8201811062001e0b5750506200058f565b6000815560010162001df3565b60001990816007870160031c8401019182549160200360031b1c1690553862001de8565b62001e5491503d806000833e62000fc6818362002602565b386200055b565b60009260005b60071983168303811062001e7f57505060031c0155388080620004e8565b9093602062001eaa600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001e61565b6000805b6008811062001ecf575083820155600101620004cf565b9490602062001efa600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001eb8565b60256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c600284901b601c168062001f69575b506007840160031c81015b6007830160031c8201811062001f5c575050620004bc565b6000815560010162001f44565b60001990816007870160031c8401019182549160200360031b1c1690553862001f39565b62001fa591503d806000833e62000fc6818362002602565b3862000488565b60009260005b60071983168303811062001fd057505060031c015538808062000415565b9093602062001ffb600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001fb2565b6000805b6008811062002020575083820155600101620003fc565b949060206200204b600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162002009565b60246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4600284901b601c1680620020ba575b506007840160031c81015b6007830160031c82018110620020ad575050620003e9565b6000815560010162002095565b60001990816007870160031c8401019182549160200360031b1c169055386200208a565b620020f691503d806000833e62000fc6818362002602565b38620003b5565b60009260005b6007198316830381106200212157505060031c015538808062000342565b909360206200214c600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162002103565b6000805b600881106200217157508382015560010162000329565b949060206200219c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200215a565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c16806200220b575b506007840160031c81015b6007830160031c82018110620021fe57505062000316565b60008155600101620021e6565b60001990816007870160031c8401019182549160200360031b1c16905538620021db565b6200224791503d806000833e62000fc6818362002602565b38620002e2565b60009260005b6007198316830381106200227257505060031c01553880806200027b565b909360206200229d600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162002254565b6000805b60088110620022c257508382015560010162000262565b94906020620022ed600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620022ab565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c16806200235c575b506007840160031c81015b6007830160031c820181106200234f5750506200024f565b6000815560010162002337565b60001990816007870160031c8401019182549160200360031b1c169055386200232c565b6200239891503d806000833e62000fc6818362002602565b386200021b565b60009260005b600719831683038110620023c357505060031c0155388080620001b6565b90936020620023ee600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620023a5565b6000805b60088110620024135750838201556001016200019d565b949060206200243e600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620023fc565b601c6000526020600020601c8460021b168062002490575b506007840160031c81015b6007830160031c82018110620024835750506200018a565b600081556001016200246b565b60001990816007870160031c8401019182549160200360031b1c1690553862002460565b620024cc91503d806000833e62000fc6818362002602565b3862000156565b9260009360005b818110620024f45750505060031c015538808080620000ef565b909194602062002520600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620024da565b6000805b6008811062002546575083820155600101620000d5565b9490602062002571600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200252f565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b1680620025c2575b505b818110620025b55750620000c2565b60008155600101620025a6565b600019908183019182549160200360031b1c16905538620025a4565b620025f691503d806000833e62000fc6818362002602565b386200008e565b600080fd5b601f909101601f19168101906001600160401b0382119082101762000f9857604052565b906020908183820312620025fd5782516001600160401b0393848211620025fd570181601f82011215620025fd57805193841162000f98578360051b9060405194620026758584018762002602565b85528380860192820101928311620025fd578301905b8282106200269a575050505090565b81516001600160e01b031981168103620025fd5781529083019083016200268b56fe60808060405260043610156200001457600080fd5b600090813560e01c9081630a9254e41462004252575080630d8d4acf1462003f145780631e3342941462003d2b5780631ed7831c1462003ca55780632d49aa1c1462003b8357806330dd2c451462003a6d57806337bdc99b14620038705780633e5e3c2314620037ea5780633f7286f414620037645780634d238c8e14620037065780635c2c2fed14620032c957806363323eb8146200329157806366d9a9a014620031da5780637b1837de1462002ecb57806385226c811462002d90578063871055571462002d59578063916a17c61462002ca2578063951759c914620029445780639b21108014620021d85780639c821dc61462001a8a578063a0aaa28514620016ce578063a9fb763c1462001628578063b5508aa914620014d9578063ba414fa614620014b0578063c33dd9d51462000b7d578063c69a04691462000b29578063d8d5271314620009a4578063dd7849741462000963578063e20c9f7114620008c3578063eb8df0521462000457578063fa7626d41462000433578063fbfb892714620003fa5763fc6c1f0214620001ae57600080fd5b34620003575760403660031901126200035757620001cb620047d4565b620001d562006a55565b90620001fb620001e58262006af3565b92600093620001f482620056cd565b52620056cd565b506040516200020a816200466c565b60018152602036818301376200022360243591620056cd565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f65760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003eb57620003d5575b50604051906200028c826200466c565b438252836020830152823b15620003c6576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003ca579085939291620003a8575b50603d546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039d5762000369575b50803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b6200034d8291620046a4565b6200035757808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b6200038e9060603d811162000395575b62000385818362004729565b81019062006aac565b5062000310565b503d62000379565b6040513d85823e3d90fd5b620003b79093919293620046a4565b620003c65790839138620002cf565b8380fd5b6040513d87823e3d90fd5b620003e390939193620046a4565b91386200027c565b6040513d86823e3d90fd5b8280fd5b5034620003575760603660031901126200035757620004306200041c620047a6565b62000426620047bd565b9060043562006e8c565b80f35b5034620003575780600319360112620003575760ff60209154166040519015158152f35b50346200035757600319606036820112620003655762000476620047d4565b6044356002811015620003c657602a54620004ae600091620004976200577b565b506038546001600160a01b0390811691166200714f565b9195939792505060018060a01b03603a54169560405193639d3070b560e01b85526020600486015260208580620004e9602482018d62004c3f565b03818b5afa948515620008b85786956200087e575b506001850185116200086a576001870187116200086a576004602062000528602435809662006a47565b9960405192838092632472942560e01b82525afa9081156200085f57879162000823575b5015620007eb57806200071957506039546001600160a01b031690620005729062006af3565b91813b15620007155790620005ae8693928a620005be6040519788968795869463018f44b760e41b865260406004870152604486019062004c3f565b9184830301602485015262004ccc565b03925af180156200039d57620006fd575b5090602092915b602a546200063f906200060a906001600160a01b0316620005f66200577b565b506038546001600160a01b0316906200714f565b9893505098905060018060a01b03603a54166040518080958194639d3070b560e01b8352866004840152602483019062004c3f565b03915afa928315620006f15792620006b1575b50600101036200067757620004309360016200067092011462006dc7565b1462006e07565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006e8575b81620006d06020938362004729565b81010312620006e3575190600162000652565b600080fd5b3d9150620006c1565b604051903d90823e3d90fd5b620007098391620046a4565b620003655738620005cf565b8580fd5b929897969594939260011462000739575b505060209394959650620005d6565b6039549293926001600160a01b031690620007549062006af3565b91813b15620003c65790620007918489819594620007a16040519e8f978896879563028bf0d560e11b875260606004880152606487019062004c3f565b9185830301602486015262004ccc565b90604483015203925af1968715620007de57602094959697620007cc575b879695949291926200072a565b620007d790620046a4565b38620007bf565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000856575b81620008416020938362004729565b81010312620008525751386200054c565b8680fd5b3d915062000832565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008af575b816200089d6020938362004729565b810103126200071557519338620004fe565b3d91506200088e565b6040513d88823e3d90fd5b50346200035757806003193601126200035757604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b858282106200094357505050620009299250038362004729565b6200093f60405192828493845283019062004a8e565b0390f35b85546001600160a01b03168452600195860195889550930192016200090f565b50346200035757602036600319011262000357576200093f6200099362000989620047d4565b620005f66200577b565b916040959395519586958662004c9c565b503462000357576040366003190112620003575780620009c3620047d4565b6024356001600160401b03811162000aec57620009e590369060040162004a41565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000b245760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008b857869162000b0c575b5050813b1562000b0857849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003eb57849162000af0575b5050602a5416803b1562000aec5762000ac68391670de0b6b3a7640000936040519485809481936330b858b160e11b835260206004840152602483019062004bb2565b03925af180156200035a5762000ad95750f35b62000ae490620046a4565b620003575780f35b5050fd5b62000afb90620046a4565b62000aec57823862000a83565b8480fd5b62000b1790620046a4565b62000b0857843862000a3c565b505050fd5b5034620003575760203660031901126200035757600435906001600160401b0382116200035757602062000b6b62000b653660048601620048e3565b620067f2565b6040516001600160a01b039091168152f35b503462000357576003196020368201126200036557600435906001600160401b038211620003f65760a090823603011262000365576040519060a082018281106001600160401b038211176200149a5760405262000bde81600401620047eb565b825262000bee60248201620047eb565b602083015262000c0160448201620047eb565b604083015260648101356001600160401b038111620003c65762000c2c906004369184010162004cf1565b60608301526084810135906001600160401b038211620003c657600462000c57923692010162004cf1565b608082015262000c666200596d565b9060405180610d308101106001600160401b03610d30830111176200148657610d306200b4fe823980610d308101039084f080156200039d57604051806108848101106001600160401b036108848301111762001472576108846200c22e8239806108848101039085f0908115620003eb5760405180611ec58101106001600160401b03611ec5830111176200117e57611ec56202207c823980611ec58101039086f0908115620003ca5760405180610b3d8101106001600160401b03610b3d830111176200145e57610b3d62023f41823980610b3d8101039087f0928315620008b8576040519062000d598262004688565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b806007830110620013e85762000e0494549181811062001266575b81811062001246575b81811062001226575b81811062001206575b818110620011e6575b818110620011c6575b818110620011a8575b1062001192575b50038262004729565b604082015262000e1486620056cd565b5262000e2085620056cd565b506040519062000e308262004688565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b806007830110620013725762000ed39454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262000ee385620056f1565b5262000eef84620056f1565b506040519062000eff8262004688565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620012fc5762000fa29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262000fb28462005702565b5262000fbe8362005702565b506040519062000fce8262004688565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b8060078301106200128657620010719454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620010818362005713565b526200108d8262005713565b506040519161111e90818401918483106001600160401b038411176200117e5791620010cf85949262001137946200a3e08739604083526040830190620059ba565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b036040830151166040820152608062001125606084015160a0606085015260a084019062004acd565b92015190608081840391015262004acd565b039082f08015620007de5760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000dfb565b602083811b6001600160e01b03191685529093019260010162000df4565b604083901b6001600160e01b031916845260209093019260010162000deb565b606083901b6001600160e01b031916845260209093019260010162000de2565b608083901b6001600160e01b031916845260209093019260010162000dd9565b60a083901b6001600160e01b031916845260209093019260010162000dd0565b60c083901b6001600160e01b031916845260209093019260010162000dc7565b60e083901b6001600160e01b031916845260209093019260010162000dbe565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001018565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000f49565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000e7a565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000da3565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b600052604160045260246000fd5b503462000357578060031936011262000357576020620014cf62004d77565b6040519015158152f35b50346200035757806003193601126200035757601054620014fa816200478e565b906200150a604051928362004729565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b8483106200155257604051806200093f888262004bd9565b604051849188549160019280841c9084811680156200161d575b8783108114620016095782845287949392918115620015eb5750600114620015af575b50620015a081600196038262004729565b8152019701920191956200153a565b8b8952838920955088905b808210620015d35750810183019450620015a06200158f565b865483830186015295850195879490910190620015ba565b60ff19168584015250151560051b810183019450620015a06200158f565b634e487b7160e01b8a52602260045260248afd5b91607f16916200156c565b503462000357576020366003190112620003575780806040516200164c816200466c565b601c81527f726577617264206d6574686f642063616c6c65642077697468202564000000006020820152604051620016ba81620016a360208201946309710a9d60e41b865260406024840152606483019062004bb2565b600435604483015203601f19810183528262004729565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003575760c03660031901126200035757620016ec620047d4565b6024908135916001831015620003c657620017066200474b565b916200171162004762565b926200171c620048b3565b604051926200172b84620046f1565b60008452604051936200173e856200466c565b607b8552602090818601526040519261509d938481016001600160401b03958282108783111762001a75579082916201cfdf833903906000f098891562001a405760018060a01b0398896001600160601b0360a01b9b168b602a541617602a5560405161154f808201908282108983111762001a60579082916201ba90833903906000f0801562001a40578a168b602c541617602c55604051610d30808201908282108983111762001a60579082916200b4fe833903906000f0801562001a40578a168b602d541617602d55604051610884808201908282108983111762001a60579082916200c22e833903906000f093841562001a405762001956976200198e889485938f8f908160ff9b168091602e541617602e556200185f6200596d565b9d8e83602a541660405190620018758262004688565b815260008682015262001887620052a8565b60408201526200189782620056cd565b52620018a381620056cd565b5083602c541660405190620018b88262004688565b8152600086820152620018ca62004e76565b6040820152620018da82620056f1565b52620018e681620056f1565b5083602d541660405190620018fb8262004688565b81526000868201526200190d620053b9565b60408201526200191d8262005702565b52620019298162005702565b5060405192620019398462004688565b83526000858401526200194b620054ca565b604084015262005713565b52620019628d62005713565b506200196d620058fa565b9a6040519e8f6200197e81620046d4565b5216908d015260408c01620057ba565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a490818601928684109084111762001a4c575091849391620019ff9362008f3c8639620066fc565b03906000f0801562001a40571690818160295416176029558181602a541617602a558181602c541617602c558181602d541617602d55602e541617602e5580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b5034620003575780600319360112620003575760405162001aab816200470d565b6003815260005b60608110620021be575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039d5783906200217f575b62001b11915062006af3565b62001b1c87620056cd565b5262001b2886620056cd565b5060405183815260c8600482015284818381895afa80156200039d57839062002140575b62001b58915062006af3565b62001b6387620056f1565b5262001b6f86620056f1565b506040519280845261012c93846004820152858184818a5afa8015620003eb57849062002101575b62001ba3915062006af3565b62001bae8862005702565b5262001bba8762005702565b506040519562001bca876200470d565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008b8578694620020c2575b5062001c0789620056cd565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200085f57879162002085575b508462001c458b620056f1565b9116905260405181815287600482015288818781875afa9081156200085f57879162002048575b508462001c798b62005702565b911690526040519062001c8c826200470d565b600382528b368a8401376040519080825283600483015289828881885afa91821562001f7e57889262002009575b50843b1562001f3d5760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af1801562001fa557908a9162001ff1575b505060405182815260c860048201528b818a818a5afa90811562001fa5578a9162001fb4575b50863b1562001fb05787604051918583521660048201528a898201528981604481838b5af1801562001fa557908a9162001f89575b5050604051918252600482015289818881885afa90811562001f7e57889162001f41575b50843b1562001f3d5785906040519283521660048201528786820152868160448183885af180156200085f5790879162001f25575b5050808262001dc362001dd793620056cd565b528262001dd082620056f1565b5262005702565b526040519262001de7846200466c565b4384528487850152813b1562000b085760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003eb57918493918a9362001f05575b50603d546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035a5762001ee4575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b82821062001eaf57888803868a015288806200093f8a8a62004a8e565b9193975091848062001ecf83979899605f198d82030186528b5162004ccc565b99019201920188979695949293919362001e92565b62001efe90873d8911620003955762000385818362004729565b5062001e69565b62001f15919350939193620046a4565b620003f657829188913862001e2c565b62001f3090620046a4565b6200071557853862001db0565b8780fd5b90508981813d831162001f76575b62001f5b818362004729565b8101031262001f3d5762001f6f9062006a97565b3862001d7b565b503d62001f4f565b6040513d8a823e3d90fd5b62001f9490620046a4565b62001fa157883862001d57565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d831162001fe9575b62001fce818362004729565b8101031262001fb05762001fe29062006a97565b3862001d22565b503d62001fc2565b62001ffc90620046a4565b62001fa157883862001cfc565b9091508981813d831162002040575b62002024818362004729565b8101031262001f3d57620020389062006a97565b903862001cba565b503d62002018565b90508881813d83116200207d575b62002062818362004729565b810103126200085257620020769062006a97565b3862001c6c565b503d62002056565b90508881813d8311620020ba575b6200209f818362004729565b810103126200085257620020b39062006a97565b3862001c38565b503d62002093565b9093508781813d8311620020f9575b620020dd818362004729565b810103126200071557620020f19062006a97565b923862001bfb565b503d620020d1565b508581813d831162002138575b6200211a818362004729565b81010312620003c6576200213262001ba39162006a97565b62001b97565b503d6200210e565b508481813d831162002177575b62002159818362004729565b81010312620003f6576200217162001b589162006a97565b62001b4c565b503d6200214d565b508481813d8311620021b6575b62002198818362004729565b81010312620003f657620021b062001b119162006a97565b62001b05565b503d6200218c565b602090620021cb6200577b565b8282850101520162001ab2565b5034620003575760403660031901126200035757620021f6620047d4565b62002200620047a6565b6038546001600160a01b031690813b15620006e357604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003eb5762002928575b506200225a600491836200714f565b603a546040516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039d57839262002900575b506020620022c091604051809381926390ba52cf60e01b8352846004840152602483019062004c3f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d578684918293620028c1575b5060405163aa5106cb60e01b81529293839182916200231091906004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d5762002364916020918591620028a3575b50604051809381926390ba52cf60e01b8352846004840152602483019062004c3f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f1579262002869575b5003620027f257620023ba620023c192620023b3670de0b6b3a76400006004971462006e4c565b1562006dc7565b1562006e07565b603a546040516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de57620024199385918391620027ae575b5060405163aa5106cb60e01b815294859283926004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb578492620027cc575b50620024516004929362006af3565b6040519362002460856200466c565b84526020840152603a546040516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de57620024be9383918391620027ae575060405163aa5106cb60e01b815294859283926004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb57849262002780575b50620024f39062006af3565b6040519162002502836200466c565b82526020820152604051906200251882620046f1565b838252604051926200252a84620046b8565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be40084860152604051946200256e866200466c565b85528560208601526040519262002585846200466c565b600194858552875b602081106200271957505050505082620025a782620056cd565b52620025b381620056cd565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003655760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035a5762002701575b5050603c546001600160a01b031690813b1562000b085791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620026ca5750505050508383809203925af180156200039d57620026b2575b602082604051620026a7816200269885820194868652604083019062006d28565b03601f19810183528262004729565b519020604051908152f35b620026be8391620046a4565b62000365578162002677565b9295975092955092602080620026ec87936043198c8203018652895162006d28565b970192019201928795938a9795929362002655565b6200270c90620046a4565b620003c657833862002604565b6020906040516200272a816200466c565b6040516200273881620046b8565b6200274262006ccd565b81526200274e62006ccd565b848201528b60408201528b888201528b8682015287878201528b8582015281528a83820152828289010152016200258d565b620024f3919250620027a6903d8087833e6200279d818362004729565b81019062006c7a565b9190620024e7565b620027c591503d8085833e6200279d818362004729565b38620023fc565b60049250620027ea62002451913d8088833e6200279d818362004729565b925062002442565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d6020116200289a575b81620028886020938362004729565b81010312620006e3575190386200238c565b3d915062002879565b620028ba91503d8087833e6200279d818362004729565b3862002341565b925050506020813d602011620028f7575b81620028e16020938362004729565b81010312620006e35751828662002310620022ec565b3d9150620028d2565b620022c09192506200291f6020913d8087833e6200279d818362004729565b92915062002296565b600491936200293b6200225a92620046a4565b9391506200224b565b5034620003575760209081600319360112620003575762002964620047d4565b604051615092908181016001600160401b0392828210848311176200117e5790829162024a7e8339039084f09182156200039d5760405161154f80820190828210858311176200145e579082916201ba908339039085f0908115620003eb578590620029cf6200592d565b92604051620029de8162004688565b6001600160a01b03968716815283810188905260405160268054808352600091825282870191907f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35945b81600784011062002c275792849262002af7999262002a959554918482821062002c08575b82821062002be9575b82821062002bca575b82821062002bab575b82821062002b8c575b82821062002b6d575b82821062002b50575b501062002b3a575b509050038262004729565b604082015262002aa585620056cd565b5262002ab184620056cd565b50856040519162002ac28362004688565b168152868882015262002ad462004e76565b604082015262002ae484620056f1565b5262002af083620056f1565b50620057e8565b90604051926114a480850191858310908311176200145e579184939162002b249362008f3c8639620066fc565b039083f0918215620006f1575060405191168152f35b6001600160e01b03191681528d91013862002a8a565b83811b6001600160e01b0319168552909301926001018462002a82565b604084901b6001600160e01b0319168552909301926001018462002a79565b606084901b6001600160e01b0319168552909301926001018462002a70565b608084901b6001600160e01b0319168552909301926001018462002a67565b60a084901b6001600160e01b0319168552909301926001018462002a5e565b60c084901b6001600160e01b0319168552909301926001018462002a55565b60e084901b6001600160e01b0319168552909301926001018462002a4c565b93949596976101006008929394600192875463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520194019201908c97969594939262002a27565b5034620003575780600319360112620003575760135462002cc3816200478e565b9062002cd3604051928362004729565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b83831062002d1a57604051806200093f878262004b0d565b60028260019260405162002d2e816200466c565b848060a01b038a5416815262002d46858b01620055db565b8382015281520196019201919462002d02565b50346200035757604036600319011262000357576200093f6200099362002d7f620047d4565b62002d89620047a6565b906200714f565b5034620003575780600319360112620003575760115462002db1816200478e565b9062002dc1604051928362004729565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b84831062002e0957604051806200093f888262004bd9565b604051849188549160019280841c90848116801562002ec0575b878310811462001609578284528794939291811562002ea2575060011462002e66575b5062002e5781600196038262004729565b81520197019201919562002df1565b8b8952838920955088905b80821062002e8a575081018301945062002e5762002e46565b86548383018601529585019587949091019062002e71565b60ff19168584015250151560051b81018301945062002e5762002e46565b91607f169162002e23565b5034620003575760031990604036830112620003575762002eeb620047d4565b60249283359160018060a01b0362002f5262002f1c82602a541662002f0f6200577b565b508360385416906200714f565b9793919692505084603a54169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62004c3f565b03915afa95861562001a4057600096620031a5575b506001860180961162003190576001890180991162003190578662002f8f8460049362006a47565b9b60405192838092632472942560e01b82525afa90811562001a40576000916200315d575b5015620031265762002fcb87603954169462006af3565b93803b15620006e35762003016946000938e6040519788958694859363018f44b760e41b85526040600486015262003007604486018c62004c3f565b92858403019085015262004ccc565b03925af190811562001a40578a976200307993869362003114575b506200305287602a5416620030456200577b565b508860385416906200714f565b9c935050989050603a54169160405195869485938493845287600485015283019062004c3f565b03915afa90811562001a4057600091620030e1575b5003620030a957506200043093929162000670911462006dc7565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d83116200310c575b620030fa818362004729565b8101031262000357575051386200308e565b503d620030ee565b6200311f90620046a4565b3862003031565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d831162003188575b62003176818362004729565b81010312620003575750513862002fb4565b503d6200316a565b8c634e487b7160e01b60005260116004526000fd5b90958782813d8311620031d2575b620031bf818362004729565b8101031262000357575051943862002f67565b503d620031b3565b50346200035757806003193601126200035757601254620031fb816200478e565b906200320b604051928362004729565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b8383106200325257604051806200093f878262004b0d565b60028260019260405162003266816200466c565b848060a01b038a541681526200327e858b01620055db565b838201528152019601920191946200323a565b503462000357576040366003190112620003575762000430620032b3620047a6565b6038546001600160a01b03169060043562006e8c565b503462000357576101003660031901126200035757620032e8620047d4565b600160243510156200036557620032fe6200474b565b6200330862004762565b9162003313620048b3565b91600360c435101562000b085760e43561ffff81168103620006e357604051946200333e86620046f1565b600086526040519562003351876200466c565b607b8752602087015260405161509d8082018281106001600160401b038211176200149a5782916201cfdf833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602a541617602a5560405161154f8082018281106001600160401b038211176200149a5782916201ba90833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602c541617602c55604051610d308082018281106001600160401b038211176200149a5782916200b4fe833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602d541617602d556040516108848082018281106001600160401b038211176200149a5782916200c22e833903906000f094851562001a4057602e80546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b03918290620034a36200596d565b602a54604051919b91906001600160a01b0316620034c18262004688565b815260006020820152620034d4620052a8565b6040820152620034e48c620056cd565b52620034f08b620056cd565b50602c54604051906001600160a01b03166200350c8262004688565b8152600060208201526200351f62004e76565b60408201526200352f8c620056f1565b526200353b8b620056f1565b50602d54604051906001600160a01b0316620035578262004688565b8152600060208201526200356a620053b9565b60408201526200357a8c62005702565b52620035868b62005702565b5060405190620035968262004688565b6001600160a01b0316815260006020820152620035b2620054ca565b6040820152620035c28b62005713565b52620035ce8a62005713565b50620035d9620058fa565b986040519b620035e98d620046d4565b8c526001600160a01b031660208c01526200360a60243560408d01620057ba565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200364b60c435620057dd565b60c435610140840152610160830152604051916114a490818401928484106001600160401b038511176200149a5784936200368c9362008f3c8639620066fc565b03906000f0801562001a405760018060a01b0316806001600160601b0360a01b6029541617602955806001600160601b0360a01b602a541617602a55806001600160601b0360a01b602c541617602c55806001600160601b0360a01b602d541617602d556001600160601b0360a01b602e541617602e5580f35b503462000357576020366003190112620003575762003724620047d4565b6200372e62006a55565b906200373e620001e58262006af3565b5060646200022360405162003753816200466c565b6001815260203681830137620056cd565b50346200035757806003193601126200035757604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b85828210620037ca57505050620009299250038362004729565b85546001600160a01b0316845260019586019588955093019201620037b0565b50346200035757806003193601126200035757604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200385057505050620009299250038362004729565b85546001600160a01b031684526001958601958895509301920162003836565b503462000357576020806003193601126200036557603a54604051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003ca57859262003a2e575b5060016001600160401b03809316019082821162003a185780603954169086620038e73362006af3565b92803b1562000365576200391a9382916040518080978194636b2c1eef60e01b83528d6004840152602483019062004ccc565b0391600435905af1928315620007de578793620039fb575b5050603a54169360046040518096819382525afa928315620003ca578593620039bb575b50811691160362003965575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d8311620039f3575b620039d6818362004729565b8101031262000b0857620039eb829162006bb2565b929062003956565b503d620039ca565b62003a0991929350620046a4565b62000715578490863862003932565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162003a65575b62003a49818362004729565b8101031262000b085762003a5d9062006bb2565b9038620038bd565b503d62003a3d565b503462000357576020806003193601126200036557600435916001600160401b0391828411620003655736602385011215620003655783600401359062003ab4826200478e565b9162003ac4604051938462004729565b8083528183019560249687600593841b83010191368311620008525788859101915b83831062003b7257505050508384905b868216600381101562003b68578551111562003b535762003b2c879185681fffffffffffffffe085871b16880101519062006a47565b911686811462003b40576001019062003af6565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162003ae6565b503462000357576040366003190112620003575760043562003ba4620047a6565b80319062003bb16200577b565b506038546001600160a01b03929062003bcd908416836200714f565b505050929050836039541686813b15620003575786916004604051809481936316989f6f60e21b83525af180156200085f5762003c8c575b508062003c2491319462003c186200577b565b5060385416906200714f565b5050509390508482039182116200086a570362003c5257620004309262003c4b9162006a47565b1462006e4c565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b9562003c9d62003c249297620046a4565b959062003c05565b50346200035757806003193601126200035757604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b8582821062003d0b57505050620009299250038362004729565b85546001600160a01b031684526001958601958895509301920162003cf1565b5034620003575760031960203682011262000365576001600160401b0360043511620003655760c0906004353603011262000357576040519062003d6f8262004650565b600435600401356001600160401b038111620003655762003d9890600436918135010162004800565b8252600435602481013560208401526044810135604084015262003dbf90606401620048c4565b6060830152608460043501356001600160401b038111620003655736602382600435010112156200036557600481813501013562003dfd816200478e565b9262003e0d604051948562004729565b81845260208401923660248460051b836004350101011162000365576024816004350101935b60248460051b83600435010101851062003e6f57602062000b6b8888608082015262003e6460a460043501620048d3565b60a082015262005a48565b84356001600160401b038111620003c65760606004358401820136036023190112620003c6576040519062003ea48262004688565b600435840181016024810135835262003ec090604401620047eb565b60208301526001600160401b0360648286600435010101351162000b0857602492602092839262003f01903690600435890101606481013501870162004a41565b6040820152815201950194905062003e33565b503462000357576060908160031936011262000357576001600160401b0390600435828111620003655762003f4e903690600401620048e3565b9162003f59620047a6565b9262003f64620047bd565b62003f6e6200592d565b9060405162003f7d8162004688565b6001600160a01b039687168152602080820187905297889162003f9f62004e76565b604082015262003faf85620056cd565b5262003fbb84620056cd565b50876040519362003fcc8562004688565b168352868284015260405190819283918160255494858152019060258b527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c948b5b816007820110620041d9578462004073975493838310620041b8575b83831062004197575b83831062004176575b83831062004155575b83831062004137575b5082821062004118575b828210620040fb575b5010620040e557509050038262004729565b60408201526200408382620056f1565b526200408f81620056f1565b50604051926114a4808501918211858310176200117e5791849391620040bb9362008f3c8639620066fc565b039082f0908115620006f1575016806001600160601b0360a01b6029541617602955604051908152f35b6001600160e01b03191681528b91013862002a8a565b83811b6001600160e01b0319168552909301926001018462004061565b604084901b6001600160e01b0319168552909301926001018462004058565b84901b6001600160e01b03191685529093019260010184386200404e565b608085901b6001600160e01b03191686529481019460019092019162004045565b60a085901b6001600160e01b0319168652948101946001909201916200403c565b60c085901b6001600160e01b03191686529481019460019092019162004033565b60e085901b6001600160e01b0319168652948101946001909201916200402a565b9260089295506101009060019295885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901528d84846080928282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019101928c9286949592956200400e565b90503462000365578160031936011262000365576200434f816200427e6001600160401b03936200466c565b60018152600162004297602092833681830137620056cd565b5260405190620042a78262004650565b620042b16200577b565b825284818301528460408301528460a060609382858201528460808201520152604051620042df81620046f1565b85815260405190620042f1826200466c565b607b8252828201526040516200430781620046f1565b86815260405191620043198362004650565b8252600a838301526402540be40060408301526046848301526080820152606460a08201526001600160a01b0393849162005a48565b1683620043cf62000b656001600160601b0360a01b93808560385416176038558085603a541617603a55808560395416176039558085603b541617603b558085603c541617603c558085603d541617603d558085603e541617603e558085603f541617603f558085604154161760415580856040541617604055620057e8565b1690818160295416176029558181602a541617602a558181602c541617602c558181602e541617602e55602d541617602d55620044c46200440f62006a55565b620044196200577b565b50604051600360621b8482015260148152620044a0906200443a816200466c565b62004491604051916200444d8362004688565b600a83526001600160801b0387840160148152604085019283526040519b8c958a80880152511660408601525116888401525187608084015260a083019062004bb2565b03601f19810188528762004729565b60405195620044af876200466c565b60048752838701528695620001f482620056cd565b506064620044e9604051620044d9816200466c565b60018152833681830137620056cd565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15620007155760405163c88a5e6d60e01b8152600c600482015260016024820152868160448183895af180156200085f576200463a575b5084604051926200454a846200466c565b438452830152833b1562000b08576040516303223eab60e11b815260ff60981b6004820152858160248183895af18015620008b8579186939185936200461a575b50603d546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af18015620003eb57620045fa575b5050803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b816200461492903d10620003955762000385818362004729565b620045c8565b6200462a919350939193620046a4565b62000b085784918391386200458b565b62004647919550620046a4565b84933862004539565b60c081019081106001600160401b038211176200149a57604052565b604081019081106001600160401b038211176200149a57604052565b606081019081106001600160401b038211176200149a57604052565b6001600160401b0381116200149a57604052565b60e081019081106001600160401b038211176200149a57604052565b61018081019081106001600160401b038211176200149a57604052565b602081019081106001600160401b038211176200149a57604052565b608081019081106001600160401b038211176200149a57604052565b90601f801991011681019081106001600160401b038211176200149a57604052565b606435906001600160401b0382168203620006e357565b608435906001600160401b0382168203620006e357565b35906001600160401b0382168203620006e357565b6001600160401b0381116200149a5760051b60200190565b602435906001600160a01b0382168203620006e357565b604435906001600160a01b0382168203620006e357565b600435906001600160a01b0382168203620006e357565b35906001600160a01b0382168203620006e357565b9190604083820312620006e357604051926200481c846200466c565b83620048288262004779565b815260209182810135906001600160401b038211620006e357019280601f85011215620006e35783356200485c816200478e565b946200486c604051968762004729565b818652848087019260051b820101928311620006e35784809101915b8383106200489857505050500152565b8190620048a584620047eb565b815201910190849062004888565b60a4359060ff82168203620006e357565b359060ff82168203620006e357565b359061ffff82168203620006e357565b9190918083036101a08112620006e3576040516200490181620046d4565b80948335906001600160401b038211620006e3576200492291850162004800565b81526200493260208401620047eb565b602082015260408301356001811015620006e357604082015260608301356060820152620049636080840162004779565b60808201526200497660a0840162004779565b60a08201526200498960c08401620048c4565b60c08201526200499c60e08401620048d3565b60e08201526101008084013590820152610120918284013560009381850b820362000b08578301526101408085013590600382101562000b0857830152604061015f1990910112620003655760405192620049f7846200466c565b6101609283820135906002821015620003575750845262004a1c9061018001620047eb565b60208401520152565b6001600160401b0381116200149a57601f01601f191660200190565b81601f82011215620006e35780359062004a5b8262004a25565b9262004a6b604051948562004729565b82845260208383010111620006e357816000926020809301838601378301015290565b90815180825260208080930193019160005b82811062004aaf575050505090565b83516001600160a01b03168552938101939281019260010162004aa0565b90815180825260208080930193019160005b82811062004aee575050505090565b83516001600160e01b0319168552938101939281019260010162004adf565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062004b43575050505050505090565b90919293949596858062004b7b600193603f1986820301885286838d51878060a01b0381511684520151918185820152019062004acd565b99019401940192959493919062004b31565b60005b83811062004ba15750506000910152565b818101518382015260200162004b90565b9060209162004bcd8151809281855285808601910162004b8d565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b84831062004c0e5750505050505090565b909192939495848062004c2e600193603f198682030187528a5162004bb2565b980193019301919493929062004bfd565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062004c7e575050505090565b83516001600160a01b03168552938101939281019260010162004c6f565b91959493909262004cb860809460a0855260a085019062004c3f565b966020840152604083015260608201520152565b906040602062004cee9360ff8151168452015191816020820152019062004bb2565b90565b81601f82011215620006e35780359162004d0b836200478e565b9262004d1b604051948562004729565b808452602092838086019260051b820101928311620006e3578301905b82821062004d47575050505090565b81356001600160e01b031981168103620006e357815290830190830162004d38565b51908115158203620006e357565b6000805460081c60ff161562004d91575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62004db357505090565b819250819060405182602082018381526519985a5b195960d21b60408401526040835262004de18362004688565b62004e1d6024604051809362004e0c6020830197630667f9d760e41b89525180928585019062004b8d565b810103600481018452018262004729565b51925af1503d1562004e6d573d9062004e368262004a25565b9162004e46604051938462004729565b82523d81602084013e5b602082805181010312620003575750602062004cee910162004d69565b60609062004e50565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b81600782011062005012578462004f1b97549383831062004ff1575b83831062004fd0575b83831062004faf575b83831062004f8e575b83831062004f6d575b83831062004f4f575b5082821062004f32575b501062004f1d575b509050038362004729565b565b6001600160e01b031916815201803862004f10565b83811b6001600160e01b0319168552909301926001018462004f08565b84901b6001600160e01b031916855290930192600101843862004efe565b606085901b6001600160e01b03191686529481019460019092019162004ef5565b608085901b6001600160e01b03191686529481019460019092019162004eec565b60a085901b6001600160e01b03191686529481019460019092019162004ee3565b60c085901b6001600160e01b03191686529481019460019092019162004eda565b60e085901b6001600160e01b03191686529481019460019092019162004ed1565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004eb5565b60409081519182603754918282526020908183019060376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae9460005b81600782011062005123578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620050c5565b60409081519182603654918282526020908183019060366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b89460005b81600782011062005234578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620051d6565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b81600782011062005345578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620052e7565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062005456578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620053f8565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062005567578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005509565b906040918251809382549283835260209182840191600052826000209460005b81600782011062005659578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620055fb565b805115620056db5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620056db5760400190565b805160021015620056db5760600190565b805160031015620056db5760800190565b805160061015620056db5760e00190565b805160071015620056db576101000190565b805160081015620056db576101200190565b805160041015620056db5760a00190565b805160051015620056db5760c00190565b604051906200578a826200466c565b6060602083600081520152565b60405190620057a68262004688565b606060408360008152600060208201520152565b6001821015620057c75752565b634e487b7160e01b600052602160045260246000fd5b60031115620057c757565b60408051620057f781620046d4565b620058016200577b565b8152600080602083015280838301528060608301528060808301528060a08301528060c08301528060e08301526101008181840152600c61012083818601526402540be40061014093858588015287516200585c816200466c565b868152866020820152610160809801528562005877620058fa565b9880519a620058868c620046f1565b828c5281519b620058978d6200466c565b607b8d5260208d015281519b620058ae8d620046d4565b8c526001600160a01b031660208c01528a0152670de0b6b3a764000060608a0152600160808a0152600a60a08a0152604660c08a0152606460e08a015288015286015284015282015290565b600060206040516200590c816200466c565b82815201526040516200591f816200466c565b600081526000602082015290565b6040908151916200593e8362004688565b600283528260005b8281106200595357505050565b6020906200596062005797565b8282850101520162005946565b6040519060a082018281106001600160401b038211176200149a57604052600482528160005b60808110620059a0575050565b602090620059ad62005797565b8282850101520162005993565b908082519081815260208091019281808460051b8301019501936000915b848310620059e95750505050505090565b909192939495848062005a37600193601f198682030187528a51858060a01b0381511682528381015162005a1d81620057dd565b848301526040809101519160608092820152019062004acd565b9801930193019194939290620059d8565b906040516117848082018281106001600160401b038211176200149a57829162016232833903906000f0801562001a40576040516116598082018281106001600160401b038211176200149a5782916201a437833903906000f0801562001a4057604051612a818082018281106001600160401b038211176200149a578291620179b6833903906000f090811562001a4057604051612a728082018281106001600160401b038211176200149a578291620137c0833903906000f0801562001a40576040516126e78082018281106001600160401b038211176200149a5782916200ed13833903906000f0801562001a40576040516122618082018281106001600160401b038211176200149a5782916200cab2833903906000f090811562001a40576040516123c68082018281106001600160401b038211176200149a578291620113fa833903906000f092831562001a4057604051610d308082018281106001600160401b038211176200149a5782916200b4fe833903906000f095861562001a40576040516108848082018281106001600160401b038211176200149a5782916200c22e833903906000f095861562001a4057604051986101408a018a81106001600160401b038211176200149a5760405260098a5260005b6101208110620066e157506040519062005c3e8262004688565b60018060a01b031681526000602082015260405180816020602f549283815201602f6000527fa813484aef6fb598f9f753daf162068ff39ccea4075cb95e1a30f86995b5b7ee926000905b8060078301106200666c5762005ce29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005cf28a620056cd565b5262005cfe89620056cd565b506040519062005d0e8262004688565b60018060a01b031681526000602082015260405180816020603054928381520160306000527f6ff97a59c90d62cc7236ba3a37cd85351bf564556780cf8c1157a220f31f0cbb926000905b806007830110620065f75762005db29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005dc28962005724565b5262005dce8862005724565b506040519062005dde8262004688565b60018060a01b031681526000602082015260405180816020603154928381520160316000527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc926000905b806007830110620065825762005e829454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005e928862005735565b5262005e9e8762005735565b506040519062005eae8262004688565b60018060a01b031681526000602082015260405180816020603254928381520160326000527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697926000905b8060078301106200650d5762005f529454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005f628762005747565b5262005f6e8662005747565b506040519062005f7e8262004688565b60018060a01b031681526000602082015260405180816020603354928381520160336000527f82a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a82926000905b8060078301106200649857620060229454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b60408201526200603286620056f1565b526200603e85620056f1565b50604051906200604e8262004688565b60018060a01b031681526000602082015260405180816020603454928381520160346000527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1926000905b8060078301106200642357620060f29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620061028562005702565b526200610e8462005702565b50604051906200611e8262004688565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b806007830110620063ae57620061c29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620061d28462005713565b52620061de8362005713565b5060405190620061ee8262004688565b6001600160a01b03168152600060208201526200620a62005086565b60408201526200621a8362005759565b52620062268262005759565b5060405190620062368262004688565b6001600160a01b03168152600060208201526200625262005197565b604082015262006262826200576a565b526200626e816200576a565b5060405190611b4d808301918383106001600160401b038411176200149a57620062a791620073ef8539604083526040830190620059ba565b906020818303910152620062c5845160c0835260c083019062004c3f565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b8484106200635b5750505050505060a061ffff8185969701511691015203906000f0801562001a4057603880546001600160a01b0319166001600160a01b0392909216918217905590565b9091929394966020806200639d600193601f198682030188528660408d5180518452878060a01b03868201511686850152015191816040820152019062004bb2565b990194019401929493919062006310565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006169565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006099565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005fc9565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005ef9565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005e29565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005d59565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005c89565b808b60208093620066f162005797565b920101520162005c24565b906200671190604083526040830190620059ba565b9060208183039101526200672f82516101a080845283019062004c3f565b9160018060a01b0380602083015116602084015260408201516001811015620057c7576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b908401526101408083015190620067c782620057dd565b84015261016080920151918251926002841015620057c7576101809360209286015201511691015290565b60409081519061509d90818301926001600160401b0392818510848611176200149a576201cfdf823980600094039084f0801562006a3d57845161154f80820190828210868311176200145e579082916201ba908339039085f090811562006a33578551610884808201908282108783111762006a1f579082916200c22e8339039086f090811562006a15578651610d30808201908282108883111762006a01579082916200b4fe8339039087f08015620069f757620068b16200596d565b938851620068bf8162004688565b6001600160a01b03938416815260208101899052620068dd620052a8565b8a820152620068ec86620056cd565b52620068f885620056cd565b5082895191620069088362004688565b1681528760208201526200691b62004e76565b898201526200692a85620056f1565b526200693684620056f1565b5081885191620069468362004688565b1681528660208201526200695962005197565b88820152620069688462005702565b52620069748362005702565b50865191620069838362004688565b1681528460208201526200699662005086565b86820152620069a58262005713565b52620069b18162005713565b508451926114a4808501918211858310176200117e5791849391620069dc9362008f3c8639620066fc565b039082f0918215620069ed57505090565b51903d90823e3d90fd5b87513d88823e3d90fd5b634e487b7160e01b89526041600452602489fd5b86513d87823e3d90fd5b634e487b7160e01b88526041600452602488fd5b85513d86823e3d90fd5b84513d85823e3d90fd5b9190820180921162003a1857565b6040519062006a64826200466c565b600182528160005b6020908181101562006a925760209162006a856200577b565b9082850101520162006a6c565b505050565b51906001600160a01b0382168203620006e357565b809291039160608312620006e357604062006ac78262004d69565b93601f190112620006e357604080519162006ae2836200466c565b602081015183520151602082015290565b6001600160401b039062006b066200577b565b5062006b996040918251906001600160601b03199060601b1660208201526014815262006b33816200466c565b62006b8a83519162006b458362004688565b600a83526001600160801b036020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a083019062004bb2565b03601f19810184528362004729565b519062006ba6826200466c565b60048252602082015290565b51906001600160401b0382168203620006e357565b9190604083820312620006e3576040519262006be3846200466c565b8362006bef8262006bb2565b815260209182810151906001600160401b038211620006e357019280601f85011215620006e357835162006c23816200478e565b9462006c33604051968762004729565b818652848087019260051b820101928311620006e35784809101915b83831062006c5f57505050500152565b819062006c6c8462006a97565b815201910190849062006c4f565b90602082820312620006e35781516001600160401b038111620006e35762004cee920162006bc7565b9062006cbd60209194939460408452604084019062004c3f565b6001600160a01b03909416910152565b6040519062006cdc826200466c565b8162006ce76200577b565b8152602062006cf56200577b565b910152565b62004cee91602062006d16835160408452604084019062004c3f565b92015190602081840391015262004ccc565b906020808351936040845260c062006db462006d52875160e0604089015261012088019062006cfa565b62006d6f8589015191603f1992838a83030160608b015262006cfa565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015262004bb2565b9501516101008501520151151591015290565b1562006dcf57565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b1562006e0f57565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b1562006e5457565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e357829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562007145579088949392916200712e575b5062006ee98591846200714f565b9b93969298919a9050603a54168551938480926394074b0360e01b82525afa91821562006a3d5783926200710e575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b9081845288848062006f5860209b8c8095840152602483019062004c3f565b0381865af4938415620069f7579086918295620070d2575b50875163aa5106cb60e01b815294958591829162006f9291908d840162006ca3565b0381855af492831562006a15579162006fcb939188938793620070b2575b5087518095819482938352868d840152602483019062004c3f565b03915af4928315620070a7579262007072575b500362006fff5750505091620023b3620023ba9262004f1b95941462006e4c565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d83116200709f575b6200708d818362004729565b81010312620006e35751903862006fde565b503d62007081565b8451903d90823e3d90fd5b620070ca9193503d8089833e6200279d818362004729565b913862006fb0565b89809296508193503d831162007106575b620070ef818362004729565b81010312620006e3575192859062006f9262006f70565b503d620070e3565b620071269192503d8085833e6200279d818362004729565b903862006f18565b946200713e62006ee996620046a4565b9462006edb565b83513d87823e3d90fd5b906200715a6200577b565b5060018060a01b0380911691826001600160601b0360a01b81816039541617603955603a541617603a5560409283519182916394074b0360e01b835282600460009586935afa918215620073e45792809291620071ec948293620073c4575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162006ca3565b0381845af492831562007397578293620073a1575b50620072339293603a541693855180926390ba52cf60e01b825281806020978895866004840152602483019062004c3f565b03915af49081156200739757908291829162007360575b50602486518096819363017187cd60e11b835260048301525afa92831562007354578193620072a1575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e620072b6818362004729565b8101918382840312620003575781516001600160401b0392838211620003f657019060c0828503126200035757855194620072f18662004650565b8251865280830151908601528582015186860152620073136060830162006bb2565b6060860152620073266080830162006bb2565b608086015260a08201519283116200035757506200734692910162006bc7565b60a082015238808062007274565b508351903d90823e3d90fd5b809250848092503d83116200738f575b6200737c818362004729565b810103126200036557819051386200724a565b503d62007370565b85513d84823e3d90fd5b620072339350620073bd903d8085833e6200279d818362004729565b9262007201565b620073dc9193503d8084833e6200279d818362004729565b9138620071b9565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd26080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c634300081300336080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c634300081300336080806040523461001657612245908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c6343000813003360808060405234610016576126cb908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c6343000813003360808060405234610016576123aa908161001c8239f35b600080fdfe608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c634300081300336080806040523461001657612a56908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220b48c09038cb95ca358f6b3b986231aac3e6aa9fe9a876f90865eb1782122308064736f6c634300081300336080806040523461001657611768908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220290a93e36b6805df006441b141a908ae17483412928035e4fb087e0eb0d40d6264736f6c634300081300336080806040523461001657612a65908161001c8239f35b600080fdfe604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611989565b61140d60219182546114e7565b90556111a9565b92500155611989565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cdb565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386127ae565b60019283825260258652828a832054168861155282611e66565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611dfb565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612801565b926115d487611e66565b935b818682161161161a575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612a108339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611e66565b1015611652579061164b839282612960565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc95602791611693612388565b8352522054166116d0575b6116a784612319565b6116b083611dfb565b516001600160a01b03928316815292909116602083015281906040820190565b6116d98461201c565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c83612319565b9792915061172385949796956127ca565b9761172d85611e66565b976117378a61220e565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611de8565b9061275e565b9b909b5b8b111561178757611779908c6128c7565b6117828b61220e565b61173e565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206129f0833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611e66565b611768565b505050505050506115bc91929395506000805160206129f0833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff93918416611957578360205460081c16846023541610611925576118476127ae565b60018352602560205286832054168561185f82611e66565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611dfb565b6115bc600080516020612a108339815191529361159c6118c284612801565b6118cb85611e66565b906121b9565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc94611905612388565b8152602760205220541661191c576116a784612319565b6116d9846120a7565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c83612319565b505050506115bc6000805160206129f08339815191529361159c61197a846127ca565b61198385611e66565b906126cb565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611bb1578082526024835287868320541615611ba0578415611af857506119d6836127ca565b976119e084611e66565b985b6001808a83161115611ae95781617fff911c1690818452602585528a611a0c848a87205416611e66565b1115611a2157611a1c90826128c7565b6119e2565b505091939597509193955b6026541615611ae157611a3d6127ae565b600182526025835285818184205416926028611a5885611e66565b95611a616127bc565b600183525220541691611a7383611e66565b11611aa857505091516001600160a01b03909216825260208201526000805160206129f08339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad9612388565b61169e611eb5565b505050505050565b50509193959750919395611a2c565b829450611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996124d1565b8651908152a160265416611b405750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b6e6127bc565b6001835252205416611b94611b8282611e66565b92611b8b611eb5565b61159c83612319565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611ca0575061fffe9193611bce86612801565b93611bd887611e66565b9480966001958692831b168160265416925b611c2c575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612a1083398151915291905080604081016115bc565b818116838111611c9a578d9084811015611c7e57505080611c4f611c5592611de8565b906122c1565b9890985b881015611c7957611c6a9089612960565b611c738861220e565b86611bea565b611bef565b865260288552852054909890611c95908716611e66565b611c59565b50611bef565b94915050611cd49194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061201c565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d7e578084526024855281888520541615611d6d578615611d3c5750611a2c611d2d866127ca565b611d3687611e66565b9061267c565b849193979650611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b939661255c565b8751632a55ca5360e01b8152600490fd5b9693925050508315611dbb5750600080516020612a1083398151915293506115bc9061159c611dac84612801565b611db585611e66565b90612225565b9250611cd47f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b94926120a7565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e138360265416611de8565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611e97576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff806026541690811561200a5790600190611ed4818311156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611f6e91908a611f5f83610e27565b16906026541617602655612826565b848252808652611f82848484205416611e66565b95859860028160265416995b611fa0575b5050505050505050505050565b8181168a8111612004578a811015611fe9575080611c4f611fc092611de8565b9a909a5b891015611fe457611fd5908b612960565b611fde8a61220e565b87611f8e565b611f93565b859b919b52838352611fff878787205416611e66565b611fc4565b50611f93565b6040516340d9b01160e01b8152600490fd5b61202590612801565b61ffff908160265416916120398383612960565b8061204384610e27565b1661ffff19602654161760265561205983612826565b811680921461074957611db5826102ed93600052602860205260018060a01b039061209361208d8360406000205416611e66565b856121b9565b600052602860205260406000205416611e66565b6120b090612801565b61ffff908160265416916120c48383612960565b806120ce84610e27565b1661ffff1960265416176026556120e483612826565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b039260409261212461211e868686205416611e66565b876121b9565b8252808652612137848484205416611e66565b9585986001988997881b168160265416995b61215a575050505050505050505050565b8181168a8111612004578a81101561219e575080611c4f61217a92611de8565b9a909a5b891015611fe45761218f908b612960565b6121988a61220e565b87612149565b859b919b528383526121b4878787205416611e66565b61217e565b9190915b60018061ffff831611156122085781617fff911c1690836121f360008481526028602052604060018060a01b0391205416611e66565b1015612208576122039082612960565b6121bd565b50509050565b60011b906201fffe61fffe83169216820361021e57565b90600161fffe83821b168160009161ffff908160265416925b61224c575b50505050505050565b8181168381116122bb5783811015612295575080611c4f61226c92611de8565b9690965b861015612290576122819087612960565b61228a8661220e565b8461223e565b612243565b8452602860205260408420549096906122b6906001600160a01b0316611e66565b612270565b50612243565b91909161ffff92838216600052602860205261230460018060a01b036122ed8160406000205416611e66565b958316600052602860205260406000205416611e66565b908185106123125750509190565b9350919050565b6102ed90611d3661ffff916123318360235416611de8565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611e66565b61ffff806023541690811561200a57906001906123a7818311156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161244191908a61243283610e27565b16906023541617602355612868565b848252808652612455848484205416611e66565b95859860028160235416995b612472575050505050505050505050565b8181168a8111612004578a8110156124b657508061175e61249292611de8565b9a909a5b891115611fe4576124a7908b6128c7565b6124b08a61220e565b87612461565b859b919b528383526124cc878787205416611e66565b612496565b6124da906127ca565b61ffff908160235416916124ee83836128c7565b806124f884610e27565b1661ffff19602354161760235561250e83612868565b811680921461074957611983826102ed93600052602560205260018060a01b03906125486125428360406000205416611e66565b8561267c565b600052602560205260406000205416611e66565b612565906127ca565b9061ffff9081602354169061257a82856128c7565b8261258483610e27565b1661ffff19602354161760235561259a82612868565b8284168092146126765760009291929183835260259260209484865260018060a01b03916040916125d86125d2858585205416611e66565b8a61267c565b81528587526125eb838383205416611e66565b956125f58961220e565b978560235416985b8681168a8111612668578a81101561264d57508061175e61261d92611de8565b9a909a5b89111561264057612632908b6128c7565b61263b8a61220e565b6125fd565b5050505050505092505050565b849b919b52828252612663868686205416611e66565b612621565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156122085781617fff911c1690836126b660008481526025602052604060018060a01b0391205416611e66565b1115612208576126c690826128c7565b612680565b916126d58361220e565b600061ffff918260235416905b838116828111612754578281101561272e57508061175e61270292611de8565b9690965b8611156127255761271790876128c7565b6127208661220e565b6126e2565b50505050915050565b83526025602052604083205490969061274f906001600160a01b0316611e66565b612706565b5050505050915050565b919061ffff808416600052602560205261279f60018060a01b036127888160406000205416611e66565b928416600052602560205260406000205416611e66565b93848211156123125750509190565b61ffff602354161561200a57565b61ffff602654161561200a57565b6001600160a01b031660009081526024602052604090205461ffff169081156127ef57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff169081156127ef57565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156128b157565b634e487b7160e01b600052600160045260246000fd5b6128ec61ffff8080602354169316936128e2848611156128aa565b16918211156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61297b61ffff8080602654169316936128e2848611156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033608080604052346100165761163d908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c634300081300336080806040523461001657611533908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c634300081300336080806040523461001657615081908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119e15750806310fd426114611870578063268119361461165d5780632e17de78146116305780633a4b66f1146115545780633f4ba83a146114dc57806341c0e1b51461144b5780634c860af6146113f75780634e71d92d146112635780635c975abb146112335780636170b16214610e8357806366783c9b14610da25780638456cb5914610d3a578063b9ee2bb91461093b578063cc2dc2b9146108bb578063d66d9e1914610870578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a25760008051602061502c83398151915260018154146101905780600183925561011d611cde565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611ac3565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b03811161086c576101d6903690600401611b69565b906024356001600160401b038111610868576101f6903690600401611b69565b916044356001600160401b03811161086457610216903690600401611b69565b909461022061411c565b610228611c99565b60ff601354166003811015610850576001036108205781810361080e5784810361080e5760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888613eca565b906140e0565b6001600160a01b0361029c610297848689613f0b565b611ea9565b166001600160a01b03909116036104fd576103066102be610297838588613f0b565b6102c9838989613eca565b6102d785888d969496613f0b565b356102f2604051958693604060208601526060850191613abb565b90604083015203601f198101845283611af1565b6001600160401b03601c541660405161031e81611ad6565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103518161202f565b61035a8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761039282610389600186015461204f565b60018601612142565b602090601f8311600114610460579282600080516020614fec83398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b82612267565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613ea5565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614fec8339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613f56565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611ac3565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828786613eca565b6001600160a01b039190828061060e610297858d8d613f0b565b169116036104fd5761062c610627610297838b8b613f0b565b6131c1565b6107fc576106c391610656610645610297848c8c613f0b565b610650848a89613eca565b91614003565b610679610667610297848c8c613f0b565b61067284878a613f0b565b3590612758565b610687610297838b8b613f0b565b90610693838689613f0b565b35906106a0848a89613eca565b9590604051936106af85611ad6565b845260209683888601961686523691611b2d565b9260408301938452600154600160401b8110156104e7578060016106ea9201600155613f1b565b9290926107e657600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104e75761073882610732855461204f565b85612142565b80601f83116001146107775750819060019560009261076c575b5050600019600383901b1c191690841b1790555b01610516565b015190503880610752565b91929394601f1984168560005283600020936000905b8282106107ce575050916001969594929183889593106107b5575b505050811b019055610766565b015160001960f88460031b161c191690553880806107a8565b8060018697829497870151815501960194019061078d565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b61084c61082b613e28565b60405163015538b160e01b8152602060048201529182916024830190613ea5565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a25760008051602061502c8339815191526001815414610190578060018392556108a7611cde565b6108af61411c565b6108b761490d565b5580f35b50346101a25760603660031901126101a2576001600160401b036004358181116109375736602382011215610937576108fe903690602481600401359101611bc4565b60443591821161093757366023830112156109375761092a610934923690602481600401359101611c1a565b9060243590614cb0565b80f35b8280fd5b50346101a25760031960603682011261086c576001600160401b036004351161086c576080600435600401916004353603011261086c576024356001600160401b03811161093757610991903690600401611b69565b91906044356001600160401b038111610d36576109b2903690600401611b69565b916109bb611cde565b60055494600b54956109cd8782611d09565b60246004350135141580610d26575b610d145760405190610a1460208301836109f68a83611df8565b0393610a0a601f1995868101835282611af1565b5190209882611d09565b6004356024013503610c1157505091610a37610a3f92610a459697943691611bc4565b933691611c1a565b91614cb0565b6024600435013582528160205260408220908035604219600435360301811215610868576004350191600483016001600160401b03610a8382611e49565b16936001600160401b03199485845416178355610aa96001926024848601930190611e5d565b91906001600160401b038311610bfd57600160401b8311610bfd578154838355808410610be2575b509087959493929190865260208620865b838110610bbb575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b1e86611e49565b16908254161790556024600435013582526022602052610b42604083203390611faa565b5060043560240135600555600e546001600160a01b0316803b15610937576040516347dc9b4f60e01b81529183918391829084908290610b859060048301611df8565b03925af180156105c957610ba7575b5050610ba261093491611e49565b61227f565b610bb090611ac3565b61086c578138610b94565b84959697506020610bcf8495969394611ea9565b848301558a989796959401929101610ae2565b82895260208920610bf7918101908501611e92565b38610ad1565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c2957505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610cf3575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610cc8915082611af1565b51902014610cd35780f35b6024600435013581526022602052610cef604082203390611faa565b5080f35b82546001600160a01b03168552889550602090940193918101918101610c87565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156109dc565b8480fd5b50346101a257806003193601126101a257610d53611c99565b610d5b611cde565b60008051602061500c833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a25760043560008051602061502c833981519152600181541461019057600181558115610e715760ff60125460081c16610e5f57338352600360205281604084205410610e4d576108b78392338452600360205260408420610e158282546127ec565b9055610e23816002546127ec565b6002553384526003602052604084205415610e3f575b33613cc7565b610e4833613d41565b610e39565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b03811161086c573660238201121561086c576001600160401b0381600401351161086c5736602482600401358301011161086c57600160008051602061502c833981519152541461019057600160008051602061502c83398151915255610eff611cde565b610f0761411c565b60ff60125460081c1680611226575b3415611214573360009081526015602052604090206002015461119f57604182600401350361118d57336001600160a01b03610f596004850135602486016140e0565b16036104fd57610f9c57806024610f769260040135910133614003565b610f80343361413d565b610f88614571565b8060008051602061502c8339815191525580f35b610fae36826004013560248401611b2d565b6001600160401b03601c54169060405190610fc882611ad6565b600282526020820190815233604083015282600052601d6020526040600020908251610ff38161202f565b610ffc8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761102b82610389600186015461204f565b602090601f8311600114611105579282600080516020614fec8339815191529795936002936110e298966000926110fa575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036110a682612267565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613abb565b9060608301520390a16110f53433614357565b610f88565b01519050388061105d565b906001840160005260206000209160005b601f19851681106111755750836002936110e2989693600193600080516020614fec8339815191529b9997601f1981161061115c575b505050811b016001820155611075565b015160001960f88460031b161c1916905538808061114c565b91926020600181928685015181550194019201611116565b6040516318dca5e960e21b8152600490fd5b61084c6040516111ae81611ad6565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b604051635a78c58160e11b8152600490fd5b61122e61455c565b610f16565b50346101a257806003193601126101a257602060ff60008051602061500c83398151915254166040519015158152f35b50346101a257806003193601126101a25760019060008051602061502c8339815191528281541461019057828155611299611cde565b336000908152601f602052604090209283549061ffff908183169283156113e557829060101c16918391808795818a01915b61135f575b50505086611341937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611348575b6113298133613cc7565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561131f565b9091939483811696828810156113dc578760005260208091858252604060002060405161138b81611aa8565b898254928383520154938491015243106113d157859493889688946113b286958a95611d09565b9c600052526000826040822082815501550116966000190116946112cb565b9850505094936112d0565b965094936112d0565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561086c57611418611cde565b600e546001600160a01b031633036114395761093490602435600435614b05565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a25761146461411c565b61ffff61147a8160195416826016541690612742565b166114ca576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a2576114f5611c99565b60008051602061500c833981519152805460ff8116156115425760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611568611cde565b61157061411c565b61157861455c565b34156112145733600090815260156020526040902060020154156115bf5760125460081c60ff166115b5576115ad343361413d565b610934614571565b6109343433614357565b61084c6040516115ce81611ad6565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b50346101a25760203660031901126101a25761164a611cde565b61165261411c565b61093460043561463d565b50346101a25760031960603682011261086c576004356001600160401b03918282116108685760608260040191833603011261086857602435838111610d36576116ab903690600401611b69565b919060443585811161186c576116c5903690600401611b69565b916024860135966006549687891061182157604401906116e58287611e5d565b9190506009541680911161185a576116fd8287611e5d565b9050141580611833575b611821576117159085611e5d565b90501561180f5787946040516020810190611742816117348985613b45565b03601f198101835282611af1565b519020968803611773575050505050506007541461175e575080f35b81526023602052610cef604082203390611faa565b61178d9392610a3788969893610a3f939a989a3691611bc4565b80602060405161179c81611aa8565b848152015281600655600755825260236020526117bd604083203390611faa565b50600e546001600160a01b031690813b1561018c5782916117f491604051948580948193630bed761560e01b835260048301613b45565b03925af180156105c957611806575080f35b61093490611ac3565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118465788061515611707565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b03916004358381116109375736602382011215610937576118b6903690602481600401359101611b2d565b926118bf611cde565b3383526017825261ffff604084205416156119c9578351156119b75733835260248252604083209184519182116119a3576118fe82610732855461204f565b80601f831160011461193f5750839482939492611934575b50508160011b916000199060031b1c19161790555b610cef33611f41565b015190503880611916565b90601f198316958486528286209286905b88821061198b57505083600195969710611972575b505050811b01905561192b565b015160001960f88460031b161c19169055388080611965565b80600185968294968601518155019501930190611950565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b90508160031936011261086c573415611a99575060ff60125460081c16610e5f573381526003602052604081205415611a40575b338152600360205260408120611a2c348254611d09565b9055611a3a34600254611d09565b60025580f35b600454600160401b811015611a8557611a62816001611a809301600455611ebd565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a15565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b929192611b3982611b12565b91611b476040519384611af1565b829481845281830111611b64578281602093846000960137010152565b600080fd5b9181601f84011215611b64578235916001600160401b038311611b64576020808501948460051b010111611b6457565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b0382168203611b6457565b9291611bcf82611b99565b91611bdd6040519384611af1565b829481845260208094019160051b8101928311611b6457905b828210611c035750505050565b838091611c0f84611bb0565b815201910190611bf6565b92919092611c2784611b99565b91611c356040519384611af1565b829480845260208094019060051b830192828411611b645780915b848310611c5f57505050505050565b82356001600160401b038111611b6457820184601f82011215611b64578691611c8e8683858095359101611b2d565b815201920191611c50565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611ccc57565b6040516330cd747160e01b8152600490fd5b60ff60008051602061500c8339815191525416611cf757565b60405163d93c066560e01b8152600490fd5b91908201809211611d1657565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215611b64570190565b35906001600160401b0382168203611b6457565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578160051b36038313611b6457565b60408201916001600160401b03611d9e83611d40565b1681526060611db260209384810190611d54565b839195604086839601525201929160005b828110611dd1575050505090565b909192938280600192838060a01b03611de989611bb0565b16815201950193929101611dc3565b6020815260806001600160401b03611e426060611e28611e188780611d2c565b85602088015260a0870190611d88565b956020810135604087015260408101358287015201611d40565b1691015290565b356001600160401b0381168103611b645790565b903590601e1981360301821215611b6457018035906001600160401b038211611b6457602001918160051b36038313611b6457565b818110611e9d575050565b60008155600101611e92565b356001600160a01b0381168103611b645790565b600454811015611ef45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611ef45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fa557602554600160401b811015611a85579082611f91611f7a84600160409601602555611f0a565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461202957845494600160401b861015612015576001860180825586101561200157836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561203957565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561207f575b602083101461206957565b634e487b7160e01b600052602260045260246000fd5b91607f169161205e565b906000929180549161209a8361204f565b9182825260019384811690816000146120fc57506001146120bc575b50505050565b90919394506000526020928360002092846000945b8386106120e85750505050010190388080806120b6565b8054858701830152940193859082016120d1565b9294505050602093945060ff191683830152151560051b010190388080806120b6565b60005b8381106121325750506000910152565b8181015183820152602001612122565b9190601f811161215157505050565b61217d926000526020600020906020601f840160051c8301931061217f575b601f0160051c0190611e92565b565b9091508190612170565b908082146122635761219b815461204f565b906001600160401b0382116104e75781906121c0826121ba865461204f565b86612142565b600090601f83116001146121f7576000926121ec575b50508160011b916000199060031b1c1916179055565b0154905038806121d6565b81526020808220858352818320935090601f1985169083905b82821061224a575050908460019594939210612231575b505050811b019055565b015460001960f88460031b161c19169055388080612227565b8495819295850154815560018091019601940190612210565b5050565b9060016001600160401b0380931601918211611d1657565b601c546001600160401b03828116929080831684106122aa5760405163040aaa0560e11b8152600490fd5b808360401c1684106120b65780604093841c165b848282161115612325575050916020916122f87f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612267565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612343826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123688161202f565b8085036123da5750506003612399600161239f94959697019260018060a01b03166000526015602052604060002090565b01612189565b6123bc816001600160401b0316600052601d602052604060002090565b916000908184556001936123d18582016127f9565b015501166122be565b909194506123e78161202f565b60039181830361258557505087519361240f85612408816001809a01612089565b0386611af1565b84518501916020928a87858301920312611b645783870151898111611b645787019681603f89011215611b645787858d9901519261245861244f85611b12565b9a519a8b611af1565b838a528d8483010111611b64578c926124769184888c01910161211f565b015192816124968460018060a01b03166000526015602052604060002090565b01918751918a8311612570578a986124b8846124b2875461204f565b87612142565b81601f85116001146124fd57506124ed9798999a84939284926000956124f2575b50501b92600019911b1c1916179055612758565b61239f565b0151935038806124d9565b91601f9b9493919b1984169b866000528c84600020946000915b8210612555575050846124ed9a9b9c9d1061253b575b50505050811b019055612758565b01519060f884600019921b161c191690553880808061252d565b8383015186558f9d509487019492830192908101908e612517565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125a185612408816001809501612089565b60208086805181010312611b645781818c970151956125bf8161202f565b036126e45784906125d08285612842565b601e546125dd9043611d09565b928751906125ea82611aa8565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061262d91612742565b169c60009d8e5282870188528d20925183555191015561264c9061272f565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b15610937578291602483928a5195869384926345f5448560e01b845260048401525af19081156126d9575090849392916126ca575b5061239f565b6126d390611ac3565b386126c4565b8751903d90823e3d90fd5b5050829350916126f4919261279c565b600e541690813b15611b64578651916316989f6f60e21b83528260048160009485945af19081156126d9575090849392916126ca575061239f565b90600161ffff80931601918211611d1657565b91909161ffff80809416911601918211611d1657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278357505050565b8111156127935761217d916128d1565b61217d91612c17565b9061217d916127e460018060a01b038216928360005260156020526127c981600160406000200154611d09565b93600052601560205283600160406000200155601454611d09565b6014556128d1565b91908203918211611d1657565b612803815461204f565b908161280d575050565b81601f6000931160011461281f575055565b90808391825261283e601f60208420940160051c840160018501611e92565b5555565b906128af6128b79260018060a01b038116906000828152601560205261286f8560016040842001546127ec565b92815260156020526040812060028101848154811590816128c8575b50156128bc575090826003926128aa94835581600184015555016127f9565b612c17565b6014546127ec565b601455565b92505060010155612c17565b9050153861288b565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b02578360135460081c16846016541610612ace5761291661379a565b60019283825260188652828a8320541688612930826131c1565b10612a4857508152601a855283898220541661299f57505050505061299a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461297a8361314c565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129a8866137ed565b926129b2876131c1565b935b8186821611612a0a575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd90806040810161299a565b8085612a2986617fff8f95871c1694858852601b8c52872054166131c1565b1015612a425790612a3b8392826139fb565b90506129b4565b506129be565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061299a95601a91612a83613480565b835252205416612ac0575b612a978461340b565b612aa08361314c565b516001600160a01b03928316815292909116602083015281906040820190565b612ac984613224565b612a8e565b505050505061299a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b97929150612b1385949796956137b6565b97612b1d856131c1565b97612b278a61339c565b8460165416905b858116828111612be05782811015612bc4575080612b4e612b549261272f565b9061374a565b9b909b5b8b1115612b7757612b69908c61396c565b612b728b61339c565b612b2e565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979150806040810161299a565b849c919c5260188352612bdb8588862054166131c1565b612b58565b5050505050505061299a91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197945061297a565b9060018060a01b039283831691600093838552602094601a865261ffff96604095888784205416613016578083526017885288878420541615613005578415612e9f5750612c64836137b6565b97612c6e846131c1565b985b6001808383161115612e905781617fff911c169081855260188a528a612c9a858b882054166131c1565b1115612caf57612caa908261396c565b612c70565b505091939597509193955b816019541615612e8657612ccc61379a565b6001918285526018825283898620541693612ce6856131c1565b95612cef6137a8565b848152601b808552828c8320541697612d07896131c1565b11612d5a57505098516001600160a01b0390961686525050505060208201929092529192507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197919050806040810161299a565b91939597509193959750612d6c613480565b83601954168015612e755780612d87612da3929896986138b3565b87612d9182613210565b1661ffff196019541617601955613812565b838252808552612db7838b842054166131c1565b9484809760028160195416925b612e02575b5050505050505050505061299a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759394612a978461340b565b818116838111612e6f578e9080851115612e5457505080612e25612e2b9261272f565b906133b3565b9990995b891015612e4f57612e40908a6139fb565b612e498961339c565b87612dc4565b612dc9565b8752858552862054909990612e6a9088166131c1565b612e2f565b50612dc9565b8a516340d9b01160e01b8152600490fd5b5050505050509050565b50509193959750919395612cba565b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b929450612ed388949996989297996135db565b8851908152a18260195416928315948515612ef2575050505050509050565b612efa6137a8565b600193848152601b808552828a8320541696612f15886131c1565b98612e755780612d87612f2a929896986138b3565b838252808552612f3e838b842054166131c1565b9484809760028160195416925b612f98575b50505050505050505050612f897f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b0390a180388080808080612e86565b818116838111612fff578e9080851115612fe457505080612e25612fbb9261272f565b9990995b891015612fdf57612fd0908a6139fb565b612fd98961339c565b87612f4b565b612f50565b8752858552862054909990612ffa9088166131c1565b612fbf565b50612f50565b8651632a55ca5360e01b8152600490fd5b84969892949793959715613111575061fffe9193613033866137ed565b9361303d876131c1565b9480966001958692831b168160195416925b6130a3575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd919050806040810161299a565b81811683811161310b578d90848110156130ef57505080612e256130c69261272f565b9890985b8810156130ea576130db90896139fb565b6130e48861339c565b8661304f565b613054565b8652601b85528520549098906131069087166131c1565b6130ca565b50613054565b949150506131459194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613224565b51908152a1565b61217d906131bb61ffff91613164836019541661272f565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556131c1565b90613347565b60ff601354166003811015612039576001036131f2576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d1657565b61322d906137ed565b61ffff9081601954169161324183836139fb565b8061324b84613210565b1661ffff19601954161760195561326183613812565b808216809314613342579161fffe91600091808352601b9060209382855260018060a01b03926040926132a161329b8686862054166131c1565b87613347565b82528086526132b48484842054166131c1565b9585986001988997881b168160195416995b6132d8575b5050505050505050505050565b8181168a811161333c578a811015613321575080612e256132f89261272f565b9a909a5b89101561331c5761330d908b6139fb565b6133168a61339c565b876132c6565b6132cb565b859b919b528383526133378787872054166131c1565b6132fc565b506132cb565b505050565b9190915b60018061ffff831611156133965781617fff911c1690836133816000848152601b602052604060018060a01b03912054166131c1565b10156133965761339190826139fb565b61334b565b50509050565b60011b906201fffe61fffe831692168203611d1657565b91909161ffff92838216600052601b6020526133f660018060a01b036133df81604060002054166131c1565b958316600052601b602052604060002054166131c1565b908185106134045750509190565b9350919050565b61217d9061347a61ffff91613423836016541661272f565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556131c1565b906136fb565b61ffff80601654169081156135c9579060019061349f81831115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161353991908a61352a83613210565b16906016541617601655613854565b84825280865261354d8484842054166131c1565b95859860028160165416995b61356a575050505050505050505050565b8181168a811161333c578a8110156135ae575080612b4e61358a9261272f565b9a909a5b89111561331c5761359f908b61396c565b6135a88a61339c565b87613559565b859b919b528383526135c48787872054166131c1565b61358e565b6040516340d9b01160e01b8152600490fd5b6135e4906137b6565b9061ffff908160165416906135f9828561396c565b8261360383613210565b1661ffff19601654161760165561361982613854565b8284168092146136f55760009291929183835260189260209484865260018060a01b03916040916136576136518585852054166131c1565b8a6136fb565b815285875261366a8383832054166131c1565b956136748961339c565b978560165416985b8681168a81116136e7578a8110156136cc575080612b4e61369c9261272f565b9a909a5b8911156136bf576136b1908b61396c565b6136ba8a61339c565b61367c565b5050505050505092505050565b849b919b528282526136e28686862054166131c1565b6136a0565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133965781617fff911c16908361373560008481526018602052604060018060a01b03912054166131c1565b111561339657613745908261396c565b6136ff565b919061ffff808416600052601860205261378b60018060a01b0361377481604060002054166131c1565b9284166000526018602052604060002054166131c1565b93848211156134045750509190565b61ffff60165416156135c957565b61ffff60195416156135c957565b6001600160a01b031660009081526017602052604090205461ffff169081156137db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561389d57565b634e487b7160e01b600052600160045260246000fd5b6138d661ffff8060195416926138cc8460011115613896565b1691821115613896565b601b60208181527f9fafca4c9c0d5c2cbf85f49fd8ab8212430ce78c2a0cb75b51e0f9c4f9ace00380546000858152604080822080546001600160a01b03948516808552601a8852838520805461ffff19908116909b1790559416808452918320805490981660019081179098559590945284546001600160a01b03199081169092179094559390925281549092169091179055565b61398761ffff8080601654169316936138cc84861115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a1661ffff8080601954169316936138cc84861115613896565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578136038313611b6457565b908060209392818452848401376000828201840152601f01601f1916010190565b613b05613afa613aec8380611d2c565b604085526040850190611d88565b916020810190611d2c565b91602081830391015281359160ff8316809303611b6457613b32604091613b429484526020810190613a8a565b9190928160208201520191613abb565b90565b6020808252613b548380611d2c565b6060918281850152613b6b60809283860190611d88565b613b82604096838101358888015287810190611d54565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bbd57505050505050505050505090565b909192939495969798999a82828203018752613bd98c85611d2c565b90813560de1983360301811215611b64578782528201918a90888e6001600160401b03613c50613c40613c2d613c24613c128b80611d2c565b60e080988c01526101208b0190613adc565b978a018a611d2c565b96603f1997888a830301868b0152613adc565b928d8901358d8901528801611d40565b169060a091828701528a8701359263ffffffff60e01b8416809403611b64578f95613c87613c979460c096878b01528a018a613a8a565b9290918985030190890152613abb565b940135610100840152013590811515809203611b64578a01529a8801999897966001019587019493929190613ba8565b814710613d29576000918291829182916001600160a01b03165af13d15613d24573d613cf281611b12565b90613d006040519283611af1565b8152600060203d92013e5b15613d1257565b604051630a12f52160e11b8152600490fd5b613d0b565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d575750505050565b613d6081611ebd565b90546003916001600160a01b039190831b1c811685821614613d86575050600101613d4a565b929350939060001991828101908111613e135790613db784613daa613dd694611ebd565b905490891b1c1691611ebd565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613dfe570192613de984611ebd565b81939154921b1b1916905555388080806120b6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613ebe8151809281855285808601910161211f565b601f01601f1916010190565b9190811015611ef45760051b81013590601e1981360301821215611b645701908135916001600160401b038311611b64576020018236038113611b64579190565b9190811015611ef45760051b0190565b600154811015611ef4576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613fb257505050505050505090565b909192939495856003613ff1839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612089565b9a019401940192969594939190613fa0565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e7576140448161403e845461204f565b84612142565b6000601f821160011461407d57819293946000926140725750508160011b916000199060031b1c1916179055565b0135905038806121d6565b601f198216948382526020918281209281905b8882106140c8575050836001959697106140ae57505050811b019055565b0135600019600384901b60f8161c19169055388080612227565b80600184968294958701358155019501920190614090565b906140ed60418214613896565b80600111611b64576141089136916000190190600101611b2d565b80516020909101206001600160a01b031690565b60ff60125460101c1661412b57565b60405163248c8efb60e11b8152600490fd5b906141529061414c8184614330565b8261279c565b60ff60125460081c16156141635750565b60018054600082815b8381106142e0575b50501561418057505050565b6001600160a01b0383166000908152601560205260409020828101546141d6949091600301604051926141b284611ad6565b83526020936141dd8585019260018060a01b03809516845260405198898092612089565b0388611af1565b60408401968752600160401b8110156104e75780866141fe92018755613f1b565b9290926107e6576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104e757614245836124b2875461204f565b81601f841160011461427e5750928293918392600094614273575b50501b916000199060031b1c1916179055565b015192503880614260565b919083601f1981168760005284600020946000905b888383106142c657505050106142ad57505050811b019055565b015160001960f88460031b161c19169055388080612227565b858701518855909601959485019487935090810190614293565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146143265701839061416c565b5090508238614174565b60018060a01b031660005260156020526143536002604060002001918254611d09565b9055565b9190604051928160208501526020845261437084611aa8565b6001600160401b03601c5416936040519461438a86611ad6565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516143be8161202f565b6143c78161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576143ff816143f6600185015461204f565b60018501612142565b6020601f82116001146144d1576144b8949282600080516020614fec83398151915297959360029361217d9c9d6000926144c6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361447d82612267565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a1614330565b015190503880614434565b6001830160005260206000209960005b601f198416811061454457509260018361217d9b9c6002946144b89997600080516020614fec8339815191529b9997601f1981161061452b575b505050811b01600182015561444c565b015160001960f88460031b161c1916905538808061451b565b828201518c556001909b019a602092830192016144e1565b60ff6013541660038110156120395761082057565b601454600a54811015614582575b50565b61ffff601654166001600160401b03600c5416111561459e5750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806145db81613f56565b0390a160018060a01b03600e5416906145f76002548092611d09565b91803b15611b645760246000926040519485938492637903ab2760e11b845260048401525af18015614631571561457f5761217d90611ac3565b6040513d6000823e3d90fd5b61464561455c565b80156146ac573360009081526015602052604090206002015480156119c95781101561469b5760ff60125460081c16156146835761217d9033614711565b8061469161217d92336146be565b610e398133612842565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146ff576146eb916127ec565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472a84611aa8565b6001600160401b03601c5416936040519461474486611ad6565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516147788161202f565b6147818161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576147b0816143f6600185015461204f565b6020601f821160011461488257614869949282600080516020614fec83398151915297959360029361217d9c9d600092614877575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482e82612267565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a16146be565b0151905038806147e5565b6001830160005260206000209960005b601f19841681106148f557509260018361217d9b9c6002946148699997600080516020614fec8339815191529b9997601f198116106148dc575b505050811b0160018201556147fd565b015160001960f88460031b161c191690553880806148cc565b828201518c556001909b019a60209283019201614892565b60ff60125460081c166149fa575b3360009081526015602052604090206002015480156119c95761493d33614a07565b5060009033825260246020528160408120614958815461204f565b806149bd575b50505060ff60125460081c161561497a5761217d915033614711565b604061217d92338152600360205220548061499b575b5061469181336146be565b806149ab6149b7926002546127ec565b600255610e3933613d41565b38614990565b82601f82116001146149d5575050555b81388061495e565b90918082526149f3601f60208420940160051c840160018501611e92565b55556149cd565b614a0261455c565b61491b565b6000818152602660205260408120549091908015614aec5760001990808201818111614ad85760255490838201918211614ac457808203614a90575b5050506025548015614a7c57810190614a5b82611f0a565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aae614a9f611f7a93611f0a565b90549060031b1c928392611f0a565b9055845260266020526040842055388080614a43565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611ef45760209160051b010190565b9190918215613342576040908151906020938483018381106001600160401b038211176104e75784526000928390526002811015614c9c5780614bfd5750600b54614b4f916127ec565b8152602283528181208251808286829454938481520190855286852092855b88828210614be757505050614b8592500382611af1565b928351948515614bdf57858110614bdf5785900493825b868110614bac5750505050505050565b6001906001600160a01b03614bc18285614af1565b5116855260218452858520614bd7888254611d09565b905501614b9c565b505050505050565b8554845260019586019587955093019201614b6e565b846001859214600014614c4d57606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cbd83611b99565b93604094614ccd86519182611af1565b848152601f19614cdc86611b99565b0194602095368784013760005b818110614db357505060009461ffff8060165416600192839182945b614d62575b505050505060ff600e5460a01c1694858102958187041490151715611d16576064614d36950491614e2a565b9015614d40575050565b60068110156120395760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614dab5760009081526018855220548493929186918591614da191614d9b906001600160a01b03166131c1565b90611d09565b9b01169493614d05565b505098614d0a565b6001600160a01b0380614dc68387614af1565b51166000526017885261ffff89600020541615614e065790614df5600192614dee8388614af1565b51166131c1565b614dff8286614af1565b5201614ce9565b8890614e1460249387614af1565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f125782518514801590614f07575b614efa579392919085945b848610614e72575050505050501015614e6a57600090600590565b600190600090565b909192939495614e8c614e858884614af1565b5184614f1f565b50614e968161202f565b614ee9576001600160a01b0380614ead8a88614af1565b5116911603614ed957614ecd600191614ec68988614af1565b5190611d09565b96019493929190614e4f565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e44565b5050505050905090600290565b8151919060418303614f5057614f4992506020820151906060604084015193015160001a90614f5b565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fdf57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fd35780516001600160a01b03811615614fca57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122078a0ac48511a213e0eba4669384b0aa5256d166c6201d23a213b1f403cf446a764736f6c634300081300336080806040523461001657611ea9908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c634300081300336080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c634300081300336080806040523461001657615076908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611b175750806310fd4261146119a0578063268119361461178d5780632e17de7814611760578063350a14bf1461172d5780633a4b66f1146116515780633f4ba83a146115d957806341c0e1b5146115485780634c860af6146114f45780634e71d92d146113605780635c975abb146113305780636170b16214610f8057806366783c9b14610e9f5780638456cb5914610e37578063b9ee2bb914610a38578063c7ebdaef146109f2578063cc2dc2b914610972578063d66d9e1914610927578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b85760008051602061502183398151915260018154146101a657806001839255610133611e23565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611bf9565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610923576101ec903690600401611c9a565b906024356001600160401b03811161091f5761020c903690600401611c9a565b916044356001600160401b03811161091b5761022c903690600401611c9a565b909461023661407b565b61023e611dde565b60ff601354166003811015610907576001036108d7578181036108c5578481036108c55760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888613ed6565b9061403f565b6001600160a01b036102b26102ad848689613f17565b611fda565b166001600160a01b03909116036105135761031c6102d46102ad838588613f17565b6102df838989613ed6565b6102ed85888d969496613f17565b35610308604051958693604060208601526060850191613ac7565b90604083015203601f198101845283611c27565b6001600160401b03601c541660405161033481611c0c565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612160565b61037081612160565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612180565b60018601612273565b602090601f8311600114610476579282600080516020614fe183398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612398565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613eb1565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614fe18339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9490929391865b868110610697575050505050506001600160401b03600c541610156106855761010061ff0019601254161760125560405190602091828101838252600154809152604082019060408160051b8401019460016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6926000905b838210610639575050505050807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959392930390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af1801561062e5761061e57505080f35b61062790611bf9565b6101b85780f35b6040513d84823e3d90fd5b90919293968360036106766060600194603f198b82030187528c5481528c86808060a01b0391015416858201528160408201520160028c016121ba565b990192019201909392916105a7565b60405163031480b160e51b8152600490fd5b6106a5610291828689613ed6565b6001600160a01b039081806106be6102ad868d89613f17565b16911603610513576106dc6106d76102ad848b87613f17565b613133565b6108b3576107026106f16102ad848b87613f17565b6106fc84888b613ed6565b91613f62565b6107256107136102ad848b87613f17565b61071e848988613f17565b3590612889565b6107336102ad838a86613f17565b9061073f838887613f17565b359161076e61074f85898c613ed6565b6040519561075c87611c0c565b86528460208701941684523691611c63565b9160408401928352600154600160401b8110156104fd578060016107959201600155613f27565b94909461089d57518455600184019151166001600160601b0360a01b825416179055518051906001600160401b0382116104fd576107e3826107da6002860154612180565b60028601612273565b602090601f8311600114610829579180600292600196959460009261081e575b5050600019600383901b1c191690851b179101555b0161052c565b015190503880610803565b906002840160005260206000209160005b601f1985168110610885575092600292600196959492879383601f1981161061086c575b505050811b01910155610818565b015160001960f88460031b161c1916905538808061085e565b9192602060018192868501518155019401920161083a565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6109036108e2613e34565b60405163015538b160e01b8152602060048201529182916024830190613eb1565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b85760008051602061502183398151915260018154146101a65780600183925561095e611e23565b61096661407b565b61096e61490a565b5580f35b50346101b85760603660031901126101b8576001600160401b036004358181116109ee57366023820112156109ee576109b5903690602481600401359101611d09565b6044359182116109ee57366023830112156109ee576109e16109eb923690602481600401359101611d5f565b9060243590614ca5565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c541601908111610a24576109eb906123b0565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610923576001600160401b03600435116109235760806004356004019160043536030112610923576024356001600160401b0381116109ee57610a8e903690600401611c9a565b91906044356001600160401b038111610e3357610aaf903690600401611c9a565b91610ab8611e23565b60055494600b5495610aca8782611e4e565b60246004350135141580610e23575b610e115760405190610b116020830183610af38a83611f29565b0393610b07601f1995868101835282611c27565b5190209882611e4e565b6004356024013503610d0e57505091610b34610b3c92610b429697943691611d09565b933691611d5f565b91614ca5565b602460043501358252816020526040822090803560421960043536030181121561091f576004350191600483016001600160401b03610b8082611f7a565b16936001600160401b03199485845416178355610ba66001926024848601930190611f8e565b91906001600160401b038311610cfa57600160401b8311610cfa578154838355808410610cdf575b509087959493929190865260208620865b838110610cb8575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610c1b86611f7a565b16908254161790556024600435013582526022602052610c3f6040832033906120db565b5060043560240135600555600e546001600160a01b0316803b156109ee576040516347dc9b4f60e01b81529183918391829084908290610c829060048301611f29565b03925af1801561062e57610ca4575b5050610c9f6109eb91611f7a565b6123b0565b610cad90611bf9565b610923578138610c91565b84959697506020610ccc8495969394611fda565b848301558a989796959401929101610bdf565b82895260208920610cf4918101908501611fc3565b38610bce565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610d2657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610df0575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610dc5915082611c27565b51902014610dd05780f35b6024600435013581526022602052610dec6040822033906120db565b5080f35b82546001600160a01b03168552889550602090940193918101918101610d84565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610ad9565b8480fd5b50346101b857806003193601126101b857610e50611dde565b610e58611e23565b600080516020615001833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b85760043560008051602061502183398151915260018154146101a657600181558115610f6e5760ff60125460081c16610f5c57338352600360205281604084205410610f4a5761096e8392338452600360205260408420610f1282825461291d565b9055610f208160025461291d565b6002553384526003602052604084205415610f3c575b33613cd3565b610f4533613d4d565b610f36565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116109235736602382011215610923576001600160401b038160040135116109235736602482600401358301011161092357600160008051602061502183398151915254146101a657600160008051602061502183398151915255610ffc611e23565b61100461407b565b60ff60125460081c1680611323575b3415611311573360009081526015602052604090206002015461129c57604182600401350361128a57336001600160a01b0361105660048501356024860161403f565b160361051357611099578060246110739260040135910133613f62565b61107d343361409c565b6110856144d0565b806000805160206150218339815191525580f35b6110ab36826004013560248401611c63565b6001600160401b03601c541690604051906110c582611c0c565b600282526020820190815233604083015282600052601d60205260406000209082516110f081612160565b6110f981612160565b60ff80198454169116178255518051906001600160401b0382116104fd576111288261039f6001860154612180565b602090601f8311600114611202579282600080516020614fe18339815191529795936002936111df98966000926111f7575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111a382612398565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613ac7565b9060608301520390a16111f234336142b6565b611085565b01519050388061115a565b906001840160005260206000209160005b601f19851681106112725750836002936111df989693600193600080516020614fe18339815191529b9997601f19811610611259575b505050811b016001820155611172565b015160001960f88460031b161c19169055388080611249565b91926020600181928685015181550194019201611213565b6040516318dca5e960e21b8152600490fd5b6109036040516112ab81611c0c565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b604051635a78c58160e11b8152600490fd5b61132b6144bb565b611013565b50346101b857806003193601126101b857602060ff60008051602061500183398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020615021833981519152828154146101a657828155611396611e23565b336000908152601f602052604090209283549061ffff908183169283156114e257829060101c16918391808795818a01915b61145c575b5050508661143e937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611445575b6114268133613cd3565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561141c565b9091939483811696828810156114d9578760005260208091858252604060002060405161148881611bde565b898254928383520154938491015243106114ce57859493889688946114af86958a95611e4e565b9c600052526000826040822082815501550116966000190116946113c8565b9850505094936113cd565b965094936113cd565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561092357611515611e23565b600e546001600160a01b03163303611536576109eb90602435600435614b02565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b85761156161407b565b61ffff6115778160195416826016541690612873565b166115c7576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af1801561062e5761061e5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b8576115f2611dde565b600080516020615001833981519152805460ff81161561163f5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b857611665611e23565b61166d61407b565b6116756144bb565b34156113115733600090815260156020526040902060020154156116bc5760125460081c60ff166116b2576116aa343361409c565b6109eb6144d0565b6109eb34336142b6565b6109036040516116cb81611c0c565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b50346101b85760203660031901126101b8576004356001600160401b038116810361175b576109eb906123b0565b600080fd5b50346101b85760203660031901126101b85761177a611e23565b61178261407b565b6109eb60043561463a565b50346101b857600319606036820112610923576004356001600160401b039182821161091f5760608260040191833603011261091f57602435838111610e33576117db903690600401611c9a565b919060443585811161199c576117f5903690600401611c9a565b916024860135966006549687891061195157604401906118158287611f8e565b9190506009541680911161198a5761182d8287611f8e565b9050141580611963575b611951576118459085611f8e565b90501561193f5787946040516020810190611872816118648985613b51565b03601f198101835282611c27565b5190209688036118a3575050505050506007541461188e575080f35b81526023602052610dec6040822033906120db565b6118bd9392610b3488969893610b3c939a989a3691611d09565b8060206040516118cc81611bde565b848152015281600655600755825260236020526118ed6040832033906120db565b50600e546001600160a01b031690813b156101a257829161192491604051948580948193630bed761560e01b835260048301613b51565b03925af1801561062e57611936575080f35b6109eb90611bf9565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156119765788061515611837565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b03916004358381116109ee57366023820112156109ee576119e6903690602481600401359101611c63565b926119ef611e23565b3383526017825261ffff60408420541615611aff57835115611aed573383526024825260408320918451918211611ad957611a3482611a2e8554612180565b85612273565b80601f8311600114611a755750839482939492611a6a575b50508160011b916000199060031b1c19161790555b610dec33612072565b015190503880611a4c565b90601f198316958486528286209286905b888210611ac157505083600195969710611aa8575b505050811b019055611a61565b015160001960f88460031b161c19169055388080611a9b565b80600185968294968601518155019501930190611a86565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610923573415611bcf575060ff60125460081c16610f5c573381526003602052604081205415611b76575b338152600360205260408120611b62348254611e4e565b9055611b7034600254611e4e565b60025580f35b600454600160401b811015611bbb57611b98816001611bb69301600455611fee565b81546001600160a01b0360039290921b91821b19163390911b179055565b611b4b565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611c6f82611c48565b91611c7d6040519384611c27565b82948184528183011161175b578281602093846000960137010152565b9181601f8401121561175b578235916001600160401b03831161175b576020808501948460051b01011161175b57565b35906001600160401b038216820361175b57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361175b57565b9291611d1482611cde565b91611d226040519384611c27565b829481845260208094019160051b810192831161175b57905b828210611d485750505050565b838091611d5484611cf5565b815201910190611d3b565b92919092611d6c84611cde565b91611d7a6040519384611c27565b829480845260208094019060051b83019282841161175b5780915b848310611da457505050505050565b82356001600160401b03811161175b57820184601f8201121561175b578691611dd38683858095359101611c63565b815201920191611d95565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611e1157565b6040516330cd747160e01b8152600490fd5b60ff6000805160206150018339815191525416611e3c57565b60405163d93c066560e01b8152600490fd5b91908201809211611e5b57565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561175b570190565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b578160051b3603831361175b57565b60408201916001600160401b03611ecf83611cca565b1681526060611ee360209384810190611e85565b839195604086839601525201929160005b828110611f02575050505090565b909192938280600192838060a01b03611f1a89611cf5565b16815201950193929101611ef4565b6020815260806001600160401b03611f736060611f59611f498780611e71565b85602088015260a0870190611eb9565b956020810135604087015260408101358287015201611cca565b1691015290565b356001600160401b038116810361175b5790565b903590601e198136030182121561175b57018035906001600160401b03821161175b57602001918160051b3603831361175b57565b818110611fce575050565b60008155600101611fc3565b356001600160a01b038116810361175b5790565b6004548110156120255760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156120255760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b6000818152602660205260408120546120d657602554600160401b811015611bbb5790826120c26120ab8460016040960160255561203b565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461215a57845494600160401b861015612146576001860180825586101561213257836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561216a57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156121b0575b602083101461219a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161218f565b90600092918054916121cb83612180565b91828252600193848116908160001461222d57506001146121ed575b50505050565b90919394506000526020928360002092846000945b8386106122195750505050010190388080806121e7565b805485870183015294019385908201612202565b9294505050602093945060ff191683830152151560051b010190388080806121e7565b60005b8381106122635750506000910152565b8181015183820152602001612253565b9190601f811161228257505050565b6122ae926000526020600020906020601f840160051c830193106122b0575b601f0160051c0190611fc3565b565b90915081906122a1565b90808214612394576122cc8154612180565b906001600160401b0382116104fd5781906122f1826122eb8654612180565b86612273565b600090601f83116001146123285760009261231d575b50508160011b916000199060031b1c1916179055565b015490503880612307565b81526020808220858352818320935090601f1985169083905b82821061237b575050908460019594939210612362575b505050811b019055565b015460001960f88460031b161c19169055388080612358565b8495819295850154815560018091019601940190612341565b5050565b9060016001600160401b0380931601918211611e5b57565b601c546001600160401b03828116929080831684106123db5760405163040aaa0560e11b8152600490fd5b808360401c1684106121e75780604093841c165b848282161115612456575050916020916124297f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612398565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612474826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff1661249981612160565b80850361250b57505060036124ca60016124d094959697019260018060a01b03166000526015602052604060002090565b016122ba565b6124ed816001600160401b0316600052601d602052604060002090565b9160009081845560019361250285820161292a565b015501166123ef565b9091945061251881612160565b6003918183036126b657505087519361254085612539816001809a016121ba565b0386611c27565b84518501916020928a8785830192031261175b578387015189811161175b5787019681603f8901121561175b5787858d9901519261258961258085611c48565b9a519a8b611c27565b838a528d848301011161175b578c926125a79184888c019101612250565b015192816125c78460018060a01b03166000526015602052604060002090565b01918751918a83116126a1578a986125e9846125e38754612180565b87612273565b81601f851160011461262e575061261e9798999a8493928492600095612623575b50501b92600019911b1c1916179055612889565b6124d0565b01519350388061260a565b91601f9b9493919b1984169b866000528c84600020946000915b82106126865750508461261e9a9b9c9d1061266c575b50505050811b019055612889565b01519060f884600019921b161c191690553880808061265e565b8383015186558f9d509487019492830192908101908e612648565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936126d2856125398160018095016121ba565b6020808680518101031261175b5781818c970151956126f081612160565b036128155784906127018285612973565b601e5461270e9043611e4e565b9287519061271b82611bde565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061275e91612873565b169c60009d8e5282870188528d20925183555191015561277d90612860565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b156109ee578291602483928a5195869384926345f5448560e01b845260048401525af190811561280a575090849392916127fb575b506124d0565b61280490611bf9565b386127f5565b8751903d90823e3d90fd5b50508293509161282591926128cd565b600e541690813b1561175b578651916316989f6f60e21b83528260048160009485945af190811561280a575090849392916127fb57506124d0565b90600161ffff80931601918211611e5b57565b91909161ffff80809416911601918211611e5b57565b9060018060a01b0382166000526015602052604060002081815491558181146000146128b457505050565b8111156128c4576122ae91612a02565b6122ae91612d48565b906122ae9161291560018060a01b038216928360005260156020526128fa81600160406000200154611e4e565b93600052601560205283600160406000200155601454611e4e565b601455612a02565b91908203918211611e5b57565b6129348154612180565b908161293e575050565b81601f60009311600114612950575055565b90808391825261296f601f60208420940160051c840160018501611fc3565b5555565b906129e06129e89260018060a01b03811690600082815260156020526129a085600160408420015461291d565b92815260156020526040812060028101848154811590816129f9575b50156129ed575090826003926129db948355816001840155550161292a565b612d48565b60145461291d565b601455565b92505060010155612d48565b905015386129bc565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612c33578360135460081c16846016541610612bff57612a47613855565b60019283825260188652828a8320541688612a6182613133565b10612b7957508152601a8552838982205416612ad0575050505050612acb7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649394612aab836130be565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612ad9866138a8565b92612ae387613133565b935b8186821611612b3b575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd908060408101612acb565b8085612b5a86617fff8f95871c1694858852601b8c5287205416613133565b1015612b735790612b6c839282613a07565b9050612ae5565b50612aef565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7598999250612acb95601a91612bb461354d565b835252205416612bf1575b612bc8846134d8565b612bd1836130be565b516001600160a01b03928316815292909116602083015281906040820190565b612bfa846132fd565b612bbf565b5050505050612acb7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612aab836134d8565b97929150612c448594979695613871565b97612c4e85613133565b97612c588a613469565b8460165416905b858116828111612d115782811015612cf5575080612c7f612c8592612860565b90613805565b9b909b5b8b1115612ca857612c9a908c61396e565b612ca38b613469565b612c5f565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019791508060408101612acb565b849c919c5260188352612d0c858886205416613133565b612c89565b50505050505050612acb91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612aab565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612f82578082526017835287868320541615612f71578415612ec95750612d9583613871565b97612d9f84613133565b985b6001808a83161115612eba5781617fff911c1690818452601885528a612dcb848a87205416613133565b1115612de057612ddb908261396e565b612da1565b505091939597509193955b6019541615612eb257612dfc613855565b60018252601883528581818420541692601b612e1785613133565b95612e20613863565b600183525220541691612e3283613133565b11612e7957505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197908060408101612acb565b91509150612acb7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612eaa61354d565b612bbf613196565b505050505050565b50509193959750919395612deb565b829450612efd7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613696565b8651908152a160195416612f115750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612f3f613863565b6001835252205416612f65612f5382613133565b92612f5c613196565b612aab836134d8565b0390a1388080806121e7565b8551632a55ca5360e01b8152600490fd5b84969792939598919415613083575061fffe9193612f9f866138a8565b93612fa987613133565b9480966001958692831b168160195416925b61300f575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9190508060408101612acb565b81811683811161307d578d90848110156130615750508061303261303892612860565b90613480565b9890985b88101561305c5761304d9089613a07565b61305688613469565b86612fbb565b612fc0565b8652601b8552852054909890613078908716613133565b61303c565b50612fc0565b949150506130b79194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506132fd565b51908152a1565b6122ae9061312d61ffff916130d68360195416612860565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613133565b90613414565b60ff60135416600381101561216a57600103613164576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611e5b57565b61ffff80601954169081156132eb57906001906131b581831115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161324f91908a61324083613182565b169060195416176019556138cd565b848252808652613263848484205416613133565b95859860028160195416995b613281575b5050505050505050505050565b8181168a81116132e5578a8110156132ca5750806130326132a192612860565b9a909a5b8910156132c5576132b6908b613a07565b6132bf8a613469565b8761326f565b613274565b859b919b528383526132e0878787205416613133565b6132a5565b50613274565b6040516340d9b01160e01b8152600490fd5b613306906138a8565b61ffff9081601954169161331a8383613a07565b8061332484613182565b1661ffff19601954161760195561333a836138cd565b80821680931461340f579161fffe91600091808352601b9060209382855260018060a01b039260409261337a613374868686205416613133565b87613414565b825280865261338d848484205416613133565b9585986001988997881b168160195416995b6133b0575050505050505050505050565b8181168a81116132e5578a8110156133f45750806130326133d092612860565b9a909a5b8910156132c5576133e5908b613a07565b6133ee8a613469565b8761339f565b859b919b5283835261340a878787205416613133565b6133d4565b505050565b9190915b60018061ffff831611156134635781617fff911c16908361344e6000848152601b602052604060018060a01b0391205416613133565b10156134635761345e9082613a07565b613418565b50509050565b60011b906201fffe61fffe831692168203611e5b57565b91909161ffff92838216600052601b6020526134c360018060a01b036134ac8160406000205416613133565b958316600052601b60205260406000205416613133565b908185106134d15750509190565b9350919050565b6122ae9061354761ffff916134f08360165416612860565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613133565b906137b6565b61ffff80601654169081156132eb579060019061356c81831115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161360691908a6135f783613182565b1690601654161760165561390f565b84825280865261361a848484205416613133565b95859860028160165416995b613637575050505050505050505050565b8181168a81116132e5578a81101561367b575080612c7f61365792612860565b9a909a5b8911156132c55761366c908b61396e565b6136758a613469565b87613626565b859b919b52838352613691878787205416613133565b61365b565b61369f90613871565b9061ffff908160165416906136b4828561396e565b826136be83613182565b1661ffff1960165416176016556136d48261390f565b8284168092146137b05760009291929183835260189260209484865260018060a01b039160409161371261370c858585205416613133565b8a6137b6565b8152858752613725838383205416613133565b9561372f89613469565b978560165416985b8681168a81116137a2578a811015613787575080612c7f61375792612860565b9a909a5b89111561377a5761376c908b61396e565b6137758a613469565b613737565b5050505050505092505050565b849b919b5282825261379d868686205416613133565b61375b565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156134635781617fff911c1690836137f060008481526018602052604060018060a01b0391205416613133565b111561346357613800908261396e565b6137ba565b919061ffff808416600052601860205261384660018060a01b0361382f8160406000205416613133565b928416600052601860205260406000205416613133565b93848211156134d15750509190565b61ffff60165416156132eb57565b61ffff60195416156132eb57565b6001600160a01b031660009081526017602052604090205461ffff1690811561389657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561389657565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561395857565b634e487b7160e01b600052600160045260246000fd5b61399361ffff80806016541693169361398984861115613951565b1691821115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a2261ffff80806019541693169361398984861115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b57813603831361175b57565b908060209392818452848401376000828201840152601f01601f1916010190565b613b11613b06613af88380611e71565b604085526040850190611eb9565b916020810190611e71565b91602081830391015281359160ff831680930361175b57613b3e604091613b4e9484526020810190613a96565b9190928160208201520191613ac7565b90565b6020808252613b608380611e71565b6060918281850152613b7760809283860190611eb9565b613b8e604096838101358888015287810190611e85565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bc957505050505050505050505090565b909192939495969798999a82828203018752613be58c85611e71565b90813560de198336030181121561175b578782528201918a90888e6001600160401b03613c5c613c4c613c39613c30613c1e8b80611e71565b60e080988c01526101208b0190613ae8565b978a018a611e71565b96603f1997888a830301868b0152613ae8565b928d8901358d8901528801611cca565b169060a091828701528a8701359263ffffffff60e01b841680940361175b578f95613c93613ca39460c096878b01528a018a613a96565b9290918985030190890152613ac7565b94013561010084015201359081151580920361175b578a01529a8801999897966001019587019493929190613bb4565b814710613d35576000918291829182916001600160a01b03165af13d15613d30573d613cfe81611c48565b90613d0c6040519283611c27565b8152600060203d92013e5b15613d1e57565b604051630a12f52160e11b8152600490fd5b613d17565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d635750505050565b613d6c81611fee565b90546003916001600160a01b039190831b1c811685821614613d92575050600101613d56565b929350939060001991828101908111613e1f5790613dc384613db6613de294611fee565b905490891b1c1691611fee565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613e0a570192613df584611fee565b81939154921b1b1916905555388080806121e7565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613eca81518092818552858086019101612250565b601f01601f1916010190565b91908110156120255760051b81013590601e198136030182121561175b5701908135916001600160401b03831161175b57602001823603811361175b579190565b91908110156120255760051b0190565b600154811015612025576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613fa381613f9d8454612180565b84612273565b6000601f8211600114613fdc5781929394600092613fd15750508160011b916000199060031b1c1916179055565b013590503880612307565b601f198216948382526020918281209281905b8882106140275750508360019596971061400d57505050811b019055565b0135600019600384901b60f8161c19169055388080612358565b80600184968294958701358155019501920190613fef565b9061404c60418214613951565b8060011161175b576140679136916000190190600101611c63565b80516020909101206001600160a01b031690565b60ff60125460101c1661408a57565b60405163248c8efb60e11b8152600490fd5b906140b1906140ab818461428f565b826128cd565b60ff60125460081c16156140c25750565b60018054600082815b83811061423f575b5050156140df57505050565b6001600160a01b0383166000908152601560205260409020828101546141359490916003016040519261411184611c0c565b835260209361413c8585019260018060a01b038095168452604051988980926121ba565b0388611c27565b60408401968752600160401b8110156104fd57808661415d92018755613f27565b92909261089d576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576141a4836125e38754612180565b81601f84116001146141dd57509282939183926000946141d2575b50501b916000199060031b1c1916179055565b0151925038806141bf565b919083601f1981168760005284600020946000905b88838310614225575050501061420c57505050811b019055565b015160001960f88460031b161c19169055388080612358565b8587015188559096019594850194879350908101906141f2565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614614285570183906140cb565b50905082386140d3565b60018060a01b031660005260156020526142b26002604060002001918254611e4e565b9055565b919060405192816020850152602084526142cf84611bde565b6001600160401b03601c541693604051946142e986611c0c565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161431d81612160565b61432681612160565b60ff80198a54169116178855519687516001600160401b0381116104fd5761435e816143556001850154612180565b60018501612273565b6020601f821160011461443057614417949282600080516020614fe18339815191529795936002936122ae9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc82612398565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a161428f565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a35750926001836122ae9b9c6002946144179997600080516020614fe18339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60135416600381101561216a576108d757565b601454600a548110156144e1575b50565b61ffff601654166001600160401b03600c541611156144fd5750565b61010061ff00196012541617601255604080516020908181018282526001805480925284830190858360051b850101926000958287527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69387905b898483106145ec575050505050505090807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a160018060a01b03600e54166145a66002548095611e4e565b93813b156109ee57906024839285519687938492637903ab2760e11b845260048401525af19182156145e2575050156144de576122ae90611bf9565b51903d90823e3d90fd5b92600361462a87989995839798949596603f198d82030187528b54815260018060a01b03868d01541685820152606080928201520160028b016121ba565b9801920192019094939291614558565b6146426144bb565b80156146a957336000908152601560205260409020600201548015611aff578110156146985760ff60125460081c1615614680576122ae903361470e565b8061468e6122ae92336146bb565b610f368133612973565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146fc576146e89161291d565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472784611bde565b6001600160401b03601c5416936040519461474186611c0c565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161477581612160565b61477e81612160565b60ff80198a54169116178855519687516001600160401b0381116104fd576147ad816143556001850154612180565b6020601f821160011461487f57614866949282600080516020614fe18339815191529795936002936122ae9c9d600092614874575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482b82612398565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a16146bb565b0151905038806147e2565b6001830160005260206000209960005b601f19841681106148f25750926001836122ae9b9c6002946148669997600080516020614fe18339815191529b9997601f198116106148d9575b505050811b0160018201556147fa565b015160001960f88460031b161c191690553880806148c9565b828201518c556001909b019a6020928301920161488f565b60ff60125460081c166149f7575b336000908152601560205260409020600201548015611aff5761493a33614a04565b50600090338252602460205281604081206149558154612180565b806149ba575b50505060ff60125460081c1615614977576122ae91503361470e565b60406122ae923381526003602052205480614998575b5061468e81336146bb565b806149a86149b49260025461291d565b600255610f3633613d4d565b3861498d565b82601f82116001146149d2575050555b81388061495b565b90918082526149f0601f60208420940160051c840160018501611fc3565b55556149ca565b6149ff6144bb565b614918565b6000818152602660205260408120549091908015614ae95760001990808201818111614ad55760255490838201918211614ac157808203614a8d575b5050506025548015614a7957810190614a588261203b565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aab614a9c6120ab9361203b565b90549060031b1c92839261203b565b9055845260266020526040842055388080614a40565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b80518210156120255760209160051b010190565b919091821561340f576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614c915780614bf25750600b54614b4c9161291d565b8152602283528181208251808286829454938481520190855286852092855b88828210614bdc57505050614b8292500382611c27565b928351948515612eb257858110612eb25785900493825b868110614ba95750505050505050565b6001906001600160a01b03614bbe8285614aee565b5116855260218452858520614bd4888254611e4e565b905501614b99565b8554845260019586019587955093019201614b6b565b846001859214600014614c4257606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cb283611cde565b93604094614cc286519182611c27565b848152601f19614cd186611cde565b0194602095368784013760005b818110614da857505060009461ffff8060165416600192839182945b614d57575b505050505060ff600e5460a01c1694858102958187041490151715611e5b576064614d2b950491614e1f565b9015614d35575050565b600681101561216a5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614da05760009081526018855220548493929186918591614d9691614d90906001600160a01b0316613133565b90611e4e565b9b01169493614cfa565b505098614cff565b6001600160a01b0380614dbb8387614aee565b51166000526017885261ffff89600020541615614dfb5790614dea600192614de38388614aee565b5116613133565b614df48286614aee565b5201614cde565b8890614e0960249387614aee565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f075782518514801590614efc575b614eef579392919085945b848610614e67575050505050501015614e5f57600090600590565b600190600090565b909192939495614e81614e7a8884614aee565b5184614f14565b50614e8b81612160565b614ede576001600160a01b0380614ea28a88614aee565b5116911603614ece57614ec2600191614ebb8988614aee565b5190611e4e565b96019493929190614e44565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e39565b5050505050905090600290565b8151919060418303614f4557614f3e92506020820151906060604084015193015160001a90614f50565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fd457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fc85780516001600160a01b03811615614fbf57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212208365497f3930f76c2e44a97011eac04d4fdac27c51258885a3dbc3b6ce4a273664736f6c63430008130033a264697066735822122006739a8771b16ea6d82ac437ffc1850d16cc03f85e86cc522084a712fd90678e64736f6c63430008130033","sourceMap":"8662:23266:88:-:0;;;;;;;1594:4:2;8662:23266:88;;;;1594:4:2;8662:23266:88;;;1594:4:2;8662:23266:88;3201:4:5;8662:23266:88;;;3201:4:5;8662:23266:88;;;;4159:55;;8662:23266;3201:4:5;4159:55:88;;8662:23266;;;;;;;;;;;1594:4:2;4159:15:88;8662:23266;4159:15;;:55;;;;;;;1594:4:2;4159:55:88;;;-1:-1:-1;;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;4128:86;8662:23266;;4128:86;8662:23266;;;;;;-1:-1:-1;8662:23266:88;;;;4128:86;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;4261:53;;8662:23266;3201:4:5;4261:53:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;1594:4:2;4159:15:88;8662:23266;4159:15;;4261:53;;;;;;;1594:4:2;4261:53:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;4224:90;8662:23266;;4224:90;8662:23266;;;;;;;;;;;4224:90;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;4350:51:88;;8662:23266;3201:4:5;4350:51:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;4350:51;;;;;;;1594:4:2;4350:51:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;4324:77;8662:23266;;4324:77;8662:23266;;;;;;;;;;;4324:77;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;4437:53:88;;8662:23266;3201:4:5;4437:53:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;4437:53;;;;;;;1594:4:2;4437:53:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;4411:79;8662:23266;;4411:79;8662:23266;;;;;;;;;;;4411:79;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;7226:58:88;;8662:23266;3201:4:5;7226:58:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;7226:58;;;;;;;1594:4:2;7226:58:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;7315:59:88;;8662:23266;3201:4:5;7315:59:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;7315:59;;;;;;;1594:4:2;7315:59:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;7294:80;8662:23266;;7294:80;8662:23266;;;;;;;;;;;7294:80;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;7411:63:88;;8662:23266;3201:4:5;7411:63:88;;8662:23266;4128:86;8662:23266;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;7411:63;;;;;;;1594:4:2;7411:63:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;7384:90;8662:23266;;7384:90;8662:23266;;;;;;;;;;;7384:90;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;7504:51:88;;8662:23266;3201:4:5;7504:51:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;7504:51;;;;;;;1594:4:2;7504:51:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;7484:71;8662:23266;;7484:71;8662:23266;;;;;;;;;;;7484:71;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;7585:53:88;;8662:23266;3201:4:5;7585:53:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;7585:53;;;;;;;1594:4:2;7585:53:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;7565:73;8662:23266;;7565:73;8662:23266;;;;;;;;;;;7565:73;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5345:54:88;;8662:23266;3201:4:5;5345:54:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5345:54;;;;;;;1594:4:2;5345:54:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5313:86;8662:23266;;5313:86;8662:23266;;;;;;;;;;;5313:86;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5441:54:88;;8662:23266;3201:4:5;5441:54:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5441:54;;;;;;;1594:4:2;5441:54:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5409:86;8662:23266;;5409:86;8662:23266;;;;;;;;;;;5409:86;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5539:56:88;;8662:23266;3201:4:5;5539:56:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5539:56;;;;;;;1594:4:2;5539:56:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5505:90;8662:23266;;5505:90;8662:23266;;;;;;;;;;;5505:90;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5638:55:88;;8662:23266;3201:4:5;5638:55:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5638:55;;;;;;;1594:4:2;5638:55:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5605:88;8662:23266;;5605:88;8662:23266;;;;;;;;;;;5605:88;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5724:54:88;;8662:23266;3201:4:5;5724:54:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5724:54;;;;;;;1594:4:2;5724:54:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5704:74;8662:23266;;5704:74;8662:23266;;;;;;;;;;;5704:74;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5809:55:88;;8662:23266;3201:4:5;5809:55:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5809:55;;;;;;;1594:4:2;5809:55:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5788:76;8662:23266;;5788:76;8662:23266;;;;;;;;;;;5788:76;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5897:57:88;;8662:23266;3201:4:5;5897:57:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5897:57;;;;;;;1594:4:2;5897:57:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5874:80;8662:23266;;5874:80;8662:23266;;;;;;;;;;;5874:80;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5984:51:88;;8662:23266;3201:4:5;5984:51:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;;;8662:23266:88;;;4159:15;5984:51;;;;;;;1594:4:2;5984:51:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5964:71;8662:23266;;5964:71;8662:23266;;;;;;;;;;;5964:71;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;6064:53:88;;8662:23266;3201:4:5;6064:53:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;;;8662:23266:88;;;4159:15;6064:53;;;;;;;1594:4:2;6064:53:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;6045:72;8662:23266;;6045:72;8662:23266;;;;;;;;;;;6045:72;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;1594:4:2;8662:23266:88;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6045:72;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;3201:4:5;8662:23266:88;;1594:4:2;8662:23266:88;6064:53;;;;;;1594:4:2;6064:53:88;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;8662:23266;;;1594:4:2;8662:23266:88;;;;;;;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5964:71;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:51;;;;;;1594:4:2;5984:51:88;;;;;;:::i;:::-;;;;8662:23266;;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5874:80;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5897:57;;;;;;1594:4:2;5897:57:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5788:76;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5809:55;;;;;;1594:4:2;5809:55:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5704:74;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5724:54;;;;;;1594:4:2;5724:54:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:88;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5638:55;;;;;;1594:4:2;5638:55:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5505:90;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5539:56;;;;;;1594:4:2;5539:56:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5409:86;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5441:54;;;;;;1594:4:2;5441:54:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5313:86;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5345:54;;;;;;1594:4:2;5345:54:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7565:73;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7585:53;;;;;;1594:4:2;7585:53:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:71;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7504:51;;;;;;1594:4:2;7504:51:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7384:90;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7411:63;;;;;;1594:4:2;7411:63:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7294:80;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7315:59;;;;;;1594:4:2;7315:59:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7226:58;;;;;;1594:4:2;7226:58:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4411:79;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4437:53;;;;;;1594:4:2;4437:53:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:77;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4350:51;;;;;;1594:4:2;4350:51:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4224:90;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4261:53;;;;;;1594:4:2;4261:53:88;;;;;;:::i;:::-;;;;8662:23266;;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4128:86;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;4159:55;;;;;;1594:4:2;4159:55:88;;;;;;:::i;:::-;;;;8662:23266;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":99697,"length":20},{"start":105616,"length":20},{"start":110130,"length":20},{"start":117669,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":72017,"length":20},{"start":74198,"length":20},{"start":74772,"length":20},{"start":98574,"length":20},{"start":120673,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":63227,"length":20},{"start":63998,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":128983,"length":20},{"start":160396,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":84235,"length":20},{"start":98212,"length":20},{"start":120175,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":18817,"length":20},{"start":18897,"length":20},{"start":18981,"length":20},{"start":19162,"length":20},{"start":19327,"length":20},{"start":38360,"length":20},{"start":39046,"length":20},{"start":48029,"length":20},{"start":62896,"length":20},{"start":70246,"length":20},{"start":70834,"length":20},{"start":71707,"length":20},{"start":73765,"length":20},{"start":74052,"length":20},{"start":74602,"length":20},{"start":77652,"length":20},{"start":80051,"length":20},{"start":80148,"length":20},{"start":81243,"length":20},{"start":83904,"length":20},{"start":84006,"length":20},{"start":84336,"length":20},{"start":84421,"length":20},{"start":84522,"length":20},{"start":84607,"length":20},{"start":86094,"length":20},{"start":86172,"length":20},{"start":86277,"length":20},{"start":86433,"length":20},{"start":86983,"length":20},{"start":87224,"length":20},{"start":87305,"length":20},{"start":92778,"length":20},{"start":97281,"length":20},{"start":97957,"length":20},{"start":103552,"length":20},{"start":103771,"length":20},{"start":103851,"length":20},{"start":104032,"length":20},{"start":104213,"length":20},{"start":117851,"length":20},{"start":119911,"length":20},{"start":127807,"length":20},{"start":153289,"length":20}]},"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":104,"length":20},{"start":304,"length":20},{"start":501,"length":20},{"start":700,"length":20},{"start":911,"length":20},{"start":1122,"length":20},{"start":1333,"length":20},{"start":1530,"length":20},{"start":1729,"length":20},{"start":1929,"length":20},{"start":2129,"length":20},{"start":2340,"length":20},{"start":2551,"length":20},{"start":2751,"length":20},{"start":2962,"length":20},{"start":3173,"length":20},{"start":3373,"length":20},{"start":3575,"length":20}]}}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b600090813560e01c9081630a9254e41462004252575080630d8d4acf1462003f145780631e3342941462003d2b5780631ed7831c1462003ca55780632d49aa1c1462003b8357806330dd2c451462003a6d57806337bdc99b14620038705780633e5e3c2314620037ea5780633f7286f414620037645780634d238c8e14620037065780635c2c2fed14620032c957806363323eb8146200329157806366d9a9a014620031da5780637b1837de1462002ecb57806385226c811462002d90578063871055571462002d59578063916a17c61462002ca2578063951759c914620029445780639b21108014620021d85780639c821dc61462001a8a578063a0aaa28514620016ce578063a9fb763c1462001628578063b5508aa914620014d9578063ba414fa614620014b0578063c33dd9d51462000b7d578063c69a04691462000b29578063d8d5271314620009a4578063dd7849741462000963578063e20c9f7114620008c3578063eb8df0521462000457578063fa7626d41462000433578063fbfb892714620003fa5763fc6c1f0214620001ae57600080fd5b34620003575760403660031901126200035757620001cb620047d4565b620001d562006a55565b90620001fb620001e58262006af3565b92600093620001f482620056cd565b52620056cd565b506040516200020a816200466c565b60018152602036818301376200022360243591620056cd565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f65760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003eb57620003d5575b50604051906200028c826200466c565b438252836020830152823b15620003c6576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003ca579085939291620003a8575b50603d546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039d5762000369575b50803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b6200034d8291620046a4565b6200035757808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b6200038e9060603d811162000395575b62000385818362004729565b81019062006aac565b5062000310565b503d62000379565b6040513d85823e3d90fd5b620003b79093919293620046a4565b620003c65790839138620002cf565b8380fd5b6040513d87823e3d90fd5b620003e390939193620046a4565b91386200027c565b6040513d86823e3d90fd5b8280fd5b5034620003575760603660031901126200035757620004306200041c620047a6565b62000426620047bd565b9060043562006e8c565b80f35b5034620003575780600319360112620003575760ff60209154166040519015158152f35b50346200035757600319606036820112620003655762000476620047d4565b6044356002811015620003c657602a54620004ae600091620004976200577b565b506038546001600160a01b0390811691166200714f565b9195939792505060018060a01b03603a54169560405193639d3070b560e01b85526020600486015260208580620004e9602482018d62004c3f565b03818b5afa948515620008b85786956200087e575b506001850185116200086a576001870187116200086a576004602062000528602435809662006a47565b9960405192838092632472942560e01b82525afa9081156200085f57879162000823575b5015620007eb57806200071957506039546001600160a01b031690620005729062006af3565b91813b15620007155790620005ae8693928a620005be6040519788968795869463018f44b760e41b865260406004870152604486019062004c3f565b9184830301602485015262004ccc565b03925af180156200039d57620006fd575b5090602092915b602a546200063f906200060a906001600160a01b0316620005f66200577b565b506038546001600160a01b0316906200714f565b9893505098905060018060a01b03603a54166040518080958194639d3070b560e01b8352866004840152602483019062004c3f565b03915afa928315620006f15792620006b1575b50600101036200067757620004309360016200067092011462006dc7565b1462006e07565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006e8575b81620006d06020938362004729565b81010312620006e3575190600162000652565b600080fd5b3d9150620006c1565b604051903d90823e3d90fd5b620007098391620046a4565b620003655738620005cf565b8580fd5b929897969594939260011462000739575b505060209394959650620005d6565b6039549293926001600160a01b031690620007549062006af3565b91813b15620003c65790620007918489819594620007a16040519e8f978896879563028bf0d560e11b875260606004880152606487019062004c3f565b9185830301602486015262004ccc565b90604483015203925af1968715620007de57602094959697620007cc575b879695949291926200072a565b620007d790620046a4565b38620007bf565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000856575b81620008416020938362004729565b81010312620008525751386200054c565b8680fd5b3d915062000832565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008af575b816200089d6020938362004729565b810103126200071557519338620004fe565b3d91506200088e565b6040513d88823e3d90fd5b50346200035757806003193601126200035757604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b858282106200094357505050620009299250038362004729565b6200093f60405192828493845283019062004a8e565b0390f35b85546001600160a01b03168452600195860195889550930192016200090f565b50346200035757602036600319011262000357576200093f6200099362000989620047d4565b620005f66200577b565b916040959395519586958662004c9c565b503462000357576040366003190112620003575780620009c3620047d4565b6024356001600160401b03811162000aec57620009e590369060040162004a41565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000b245760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008b857869162000b0c575b5050813b1562000b0857849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003eb57849162000af0575b5050602a5416803b1562000aec5762000ac68391670de0b6b3a7640000936040519485809481936330b858b160e11b835260206004840152602483019062004bb2565b03925af180156200035a5762000ad95750f35b62000ae490620046a4565b620003575780f35b5050fd5b62000afb90620046a4565b62000aec57823862000a83565b8480fd5b62000b1790620046a4565b62000b0857843862000a3c565b505050fd5b5034620003575760203660031901126200035757600435906001600160401b0382116200035757602062000b6b62000b653660048601620048e3565b620067f2565b6040516001600160a01b039091168152f35b503462000357576003196020368201126200036557600435906001600160401b038211620003f65760a090823603011262000365576040519060a082018281106001600160401b038211176200149a5760405262000bde81600401620047eb565b825262000bee60248201620047eb565b602083015262000c0160448201620047eb565b604083015260648101356001600160401b038111620003c65762000c2c906004369184010162004cf1565b60608301526084810135906001600160401b038211620003c657600462000c57923692010162004cf1565b608082015262000c666200596d565b9060405180610d308101106001600160401b03610d30830111176200148657610d306200b4fe823980610d308101039084f080156200039d57604051806108848101106001600160401b036108848301111762001472576108846200c22e8239806108848101039085f0908115620003eb5760405180611ec58101106001600160401b03611ec5830111176200117e57611ec56202207c823980611ec58101039086f0908115620003ca5760405180610b3d8101106001600160401b03610b3d830111176200145e57610b3d62023f41823980610b3d8101039087f0928315620008b8576040519062000d598262004688565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b806007830110620013e85762000e0494549181811062001266575b81811062001246575b81811062001226575b81811062001206575b818110620011e6575b818110620011c6575b818110620011a8575b1062001192575b50038262004729565b604082015262000e1486620056cd565b5262000e2085620056cd565b506040519062000e308262004688565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b806007830110620013725762000ed39454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262000ee385620056f1565b5262000eef84620056f1565b506040519062000eff8262004688565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620012fc5762000fa29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262000fb28462005702565b5262000fbe8362005702565b506040519062000fce8262004688565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b8060078301106200128657620010719454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620010818362005713565b526200108d8262005713565b506040519161111e90818401918483106001600160401b038411176200117e5791620010cf85949262001137946200a3e08739604083526040830190620059ba565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b036040830151166040820152608062001125606084015160a0606085015260a084019062004acd565b92015190608081840391015262004acd565b039082f08015620007de5760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000dfb565b602083811b6001600160e01b03191685529093019260010162000df4565b604083901b6001600160e01b031916845260209093019260010162000deb565b606083901b6001600160e01b031916845260209093019260010162000de2565b608083901b6001600160e01b031916845260209093019260010162000dd9565b60a083901b6001600160e01b031916845260209093019260010162000dd0565b60c083901b6001600160e01b031916845260209093019260010162000dc7565b60e083901b6001600160e01b031916845260209093019260010162000dbe565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001018565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000f49565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000e7a565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000da3565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b600052604160045260246000fd5b503462000357578060031936011262000357576020620014cf62004d77565b6040519015158152f35b50346200035757806003193601126200035757601054620014fa816200478e565b906200150a604051928362004729565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b8483106200155257604051806200093f888262004bd9565b604051849188549160019280841c9084811680156200161d575b8783108114620016095782845287949392918115620015eb5750600114620015af575b50620015a081600196038262004729565b8152019701920191956200153a565b8b8952838920955088905b808210620015d35750810183019450620015a06200158f565b865483830186015295850195879490910190620015ba565b60ff19168584015250151560051b810183019450620015a06200158f565b634e487b7160e01b8a52602260045260248afd5b91607f16916200156c565b503462000357576020366003190112620003575780806040516200164c816200466c565b601c81527f726577617264206d6574686f642063616c6c65642077697468202564000000006020820152604051620016ba81620016a360208201946309710a9d60e41b865260406024840152606483019062004bb2565b600435604483015203601f19810183528262004729565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003575760c03660031901126200035757620016ec620047d4565b6024908135916001831015620003c657620017066200474b565b916200171162004762565b926200171c620048b3565b604051926200172b84620046f1565b60008452604051936200173e856200466c565b607b8552602090818601526040519261509d938481016001600160401b03958282108783111762001a75579082916201cfdf833903906000f098891562001a405760018060a01b0398896001600160601b0360a01b9b168b602a541617602a5560405161154f808201908282108983111762001a60579082916201ba90833903906000f0801562001a40578a168b602c541617602c55604051610d30808201908282108983111762001a60579082916200b4fe833903906000f0801562001a40578a168b602d541617602d55604051610884808201908282108983111762001a60579082916200c22e833903906000f093841562001a405762001956976200198e889485938f8f908160ff9b168091602e541617602e556200185f6200596d565b9d8e83602a541660405190620018758262004688565b815260008682015262001887620052a8565b60408201526200189782620056cd565b52620018a381620056cd565b5083602c541660405190620018b88262004688565b8152600086820152620018ca62004e76565b6040820152620018da82620056f1565b52620018e681620056f1565b5083602d541660405190620018fb8262004688565b81526000868201526200190d620053b9565b60408201526200191d8262005702565b52620019298162005702565b5060405192620019398462004688565b83526000858401526200194b620054ca565b604084015262005713565b52620019628d62005713565b506200196d620058fa565b9a6040519e8f6200197e81620046d4565b5216908d015260408c01620057ba565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a490818601928684109084111762001a4c575091849391620019ff9362008f3c8639620066fc565b03906000f0801562001a40571690818160295416176029558181602a541617602a558181602c541617602c558181602d541617602d55602e541617602e5580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b5034620003575780600319360112620003575760405162001aab816200470d565b6003815260005b60608110620021be575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039d5783906200217f575b62001b11915062006af3565b62001b1c87620056cd565b5262001b2886620056cd565b5060405183815260c8600482015284818381895afa80156200039d57839062002140575b62001b58915062006af3565b62001b6387620056f1565b5262001b6f86620056f1565b506040519280845261012c93846004820152858184818a5afa8015620003eb57849062002101575b62001ba3915062006af3565b62001bae8862005702565b5262001bba8762005702565b506040519562001bca876200470d565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008b8578694620020c2575b5062001c0789620056cd565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200085f57879162002085575b508462001c458b620056f1565b9116905260405181815287600482015288818781875afa9081156200085f57879162002048575b508462001c798b62005702565b911690526040519062001c8c826200470d565b600382528b368a8401376040519080825283600483015289828881885afa91821562001f7e57889262002009575b50843b1562001f3d5760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af1801562001fa557908a9162001ff1575b505060405182815260c860048201528b818a818a5afa90811562001fa5578a9162001fb4575b50863b1562001fb05787604051918583521660048201528a898201528981604481838b5af1801562001fa557908a9162001f89575b5050604051918252600482015289818881885afa90811562001f7e57889162001f41575b50843b1562001f3d5785906040519283521660048201528786820152868160448183885af180156200085f5790879162001f25575b5050808262001dc362001dd793620056cd565b528262001dd082620056f1565b5262005702565b526040519262001de7846200466c565b4384528487850152813b1562000b085760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003eb57918493918a9362001f05575b50603d546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035a5762001ee4575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b82821062001eaf57888803868a015288806200093f8a8a62004a8e565b9193975091848062001ecf83979899605f198d82030186528b5162004ccc565b99019201920188979695949293919362001e92565b62001efe90873d8911620003955762000385818362004729565b5062001e69565b62001f15919350939193620046a4565b620003f657829188913862001e2c565b62001f3090620046a4565b6200071557853862001db0565b8780fd5b90508981813d831162001f76575b62001f5b818362004729565b8101031262001f3d5762001f6f9062006a97565b3862001d7b565b503d62001f4f565b6040513d8a823e3d90fd5b62001f9490620046a4565b62001fa157883862001d57565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d831162001fe9575b62001fce818362004729565b8101031262001fb05762001fe29062006a97565b3862001d22565b503d62001fc2565b62001ffc90620046a4565b62001fa157883862001cfc565b9091508981813d831162002040575b62002024818362004729565b8101031262001f3d57620020389062006a97565b903862001cba565b503d62002018565b90508881813d83116200207d575b62002062818362004729565b810103126200085257620020769062006a97565b3862001c6c565b503d62002056565b90508881813d8311620020ba575b6200209f818362004729565b810103126200085257620020b39062006a97565b3862001c38565b503d62002093565b9093508781813d8311620020f9575b620020dd818362004729565b810103126200071557620020f19062006a97565b923862001bfb565b503d620020d1565b508581813d831162002138575b6200211a818362004729565b81010312620003c6576200213262001ba39162006a97565b62001b97565b503d6200210e565b508481813d831162002177575b62002159818362004729565b81010312620003f6576200217162001b589162006a97565b62001b4c565b503d6200214d565b508481813d8311620021b6575b62002198818362004729565b81010312620003f657620021b062001b119162006a97565b62001b05565b503d6200218c565b602090620021cb6200577b565b8282850101520162001ab2565b5034620003575760403660031901126200035757620021f6620047d4565b62002200620047a6565b6038546001600160a01b031690813b15620006e357604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003eb5762002928575b506200225a600491836200714f565b603a546040516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039d57839262002900575b506020620022c091604051809381926390ba52cf60e01b8352846004840152602483019062004c3f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d578684918293620028c1575b5060405163aa5106cb60e01b81529293839182916200231091906004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d5762002364916020918591620028a3575b50604051809381926390ba52cf60e01b8352846004840152602483019062004c3f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f1579262002869575b5003620027f257620023ba620023c192620023b3670de0b6b3a76400006004971462006e4c565b1562006dc7565b1562006e07565b603a546040516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de57620024199385918391620027ae575b5060405163aa5106cb60e01b815294859283926004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb578492620027cc575b50620024516004929362006af3565b6040519362002460856200466c565b84526020840152603a546040516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de57620024be9383918391620027ae575060405163aa5106cb60e01b815294859283926004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb57849262002780575b50620024f39062006af3565b6040519162002502836200466c565b82526020820152604051906200251882620046f1565b838252604051926200252a84620046b8565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be40084860152604051946200256e866200466c565b85528560208601526040519262002585846200466c565b600194858552875b602081106200271957505050505082620025a782620056cd565b52620025b381620056cd565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003655760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035a5762002701575b5050603c546001600160a01b031690813b1562000b085791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620026ca5750505050508383809203925af180156200039d57620026b2575b602082604051620026a7816200269885820194868652604083019062006d28565b03601f19810183528262004729565b519020604051908152f35b620026be8391620046a4565b62000365578162002677565b9295975092955092602080620026ec87936043198c8203018652895162006d28565b970192019201928795938a9795929362002655565b6200270c90620046a4565b620003c657833862002604565b6020906040516200272a816200466c565b6040516200273881620046b8565b6200274262006ccd565b81526200274e62006ccd565b848201528b60408201528b888201528b8682015287878201528b8582015281528a83820152828289010152016200258d565b620024f3919250620027a6903d8087833e6200279d818362004729565b81019062006c7a565b9190620024e7565b620027c591503d8085833e6200279d818362004729565b38620023fc565b60049250620027ea62002451913d8088833e6200279d818362004729565b925062002442565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d6020116200289a575b81620028886020938362004729565b81010312620006e3575190386200238c565b3d915062002879565b620028ba91503d8087833e6200279d818362004729565b3862002341565b925050506020813d602011620028f7575b81620028e16020938362004729565b81010312620006e35751828662002310620022ec565b3d9150620028d2565b620022c09192506200291f6020913d8087833e6200279d818362004729565b92915062002296565b600491936200293b6200225a92620046a4565b9391506200224b565b5034620003575760209081600319360112620003575762002964620047d4565b604051615092908181016001600160401b0392828210848311176200117e5790829162024a7e8339039084f09182156200039d5760405161154f80820190828210858311176200145e579082916201ba908339039085f0908115620003eb578590620029cf6200592d565b92604051620029de8162004688565b6001600160a01b03968716815283810188905260405160268054808352600091825282870191907f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35945b81600784011062002c275792849262002af7999262002a959554918482821062002c08575b82821062002be9575b82821062002bca575b82821062002bab575b82821062002b8c575b82821062002b6d575b82821062002b50575b501062002b3a575b509050038262004729565b604082015262002aa585620056cd565b5262002ab184620056cd565b50856040519162002ac28362004688565b168152868882015262002ad462004e76565b604082015262002ae484620056f1565b5262002af083620056f1565b50620057e8565b90604051926114a480850191858310908311176200145e579184939162002b249362008f3c8639620066fc565b039083f0918215620006f1575060405191168152f35b6001600160e01b03191681528d91013862002a8a565b83811b6001600160e01b0319168552909301926001018462002a82565b604084901b6001600160e01b0319168552909301926001018462002a79565b606084901b6001600160e01b0319168552909301926001018462002a70565b608084901b6001600160e01b0319168552909301926001018462002a67565b60a084901b6001600160e01b0319168552909301926001018462002a5e565b60c084901b6001600160e01b0319168552909301926001018462002a55565b60e084901b6001600160e01b0319168552909301926001018462002a4c565b93949596976101006008929394600192875463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520194019201908c97969594939262002a27565b5034620003575780600319360112620003575760135462002cc3816200478e565b9062002cd3604051928362004729565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b83831062002d1a57604051806200093f878262004b0d565b60028260019260405162002d2e816200466c565b848060a01b038a5416815262002d46858b01620055db565b8382015281520196019201919462002d02565b50346200035757604036600319011262000357576200093f6200099362002d7f620047d4565b62002d89620047a6565b906200714f565b5034620003575780600319360112620003575760115462002db1816200478e565b9062002dc1604051928362004729565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b84831062002e0957604051806200093f888262004bd9565b604051849188549160019280841c90848116801562002ec0575b878310811462001609578284528794939291811562002ea2575060011462002e66575b5062002e5781600196038262004729565b81520197019201919562002df1565b8b8952838920955088905b80821062002e8a575081018301945062002e5762002e46565b86548383018601529585019587949091019062002e71565b60ff19168584015250151560051b81018301945062002e5762002e46565b91607f169162002e23565b5034620003575760031990604036830112620003575762002eeb620047d4565b60249283359160018060a01b0362002f5262002f1c82602a541662002f0f6200577b565b508360385416906200714f565b9793919692505084603a54169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62004c3f565b03915afa95861562001a4057600096620031a5575b506001860180961162003190576001890180991162003190578662002f8f8460049362006a47565b9b60405192838092632472942560e01b82525afa90811562001a40576000916200315d575b5015620031265762002fcb87603954169462006af3565b93803b15620006e35762003016946000938e6040519788958694859363018f44b760e41b85526040600486015262003007604486018c62004c3f565b92858403019085015262004ccc565b03925af190811562001a40578a976200307993869362003114575b506200305287602a5416620030456200577b565b508860385416906200714f565b9c935050989050603a54169160405195869485938493845287600485015283019062004c3f565b03915afa90811562001a4057600091620030e1575b5003620030a957506200043093929162000670911462006dc7565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d83116200310c575b620030fa818362004729565b8101031262000357575051386200308e565b503d620030ee565b6200311f90620046a4565b3862003031565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d831162003188575b62003176818362004729565b81010312620003575750513862002fb4565b503d6200316a565b8c634e487b7160e01b60005260116004526000fd5b90958782813d8311620031d2575b620031bf818362004729565b8101031262000357575051943862002f67565b503d620031b3565b50346200035757806003193601126200035757601254620031fb816200478e565b906200320b604051928362004729565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b8383106200325257604051806200093f878262004b0d565b60028260019260405162003266816200466c565b848060a01b038a541681526200327e858b01620055db565b838201528152019601920191946200323a565b503462000357576040366003190112620003575762000430620032b3620047a6565b6038546001600160a01b03169060043562006e8c565b503462000357576101003660031901126200035757620032e8620047d4565b600160243510156200036557620032fe6200474b565b6200330862004762565b9162003313620048b3565b91600360c435101562000b085760e43561ffff81168103620006e357604051946200333e86620046f1565b600086526040519562003351876200466c565b607b8752602087015260405161509d8082018281106001600160401b038211176200149a5782916201cfdf833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602a541617602a5560405161154f8082018281106001600160401b038211176200149a5782916201ba90833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602c541617602c55604051610d308082018281106001600160401b038211176200149a5782916200b4fe833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602d541617602d556040516108848082018281106001600160401b038211176200149a5782916200c22e833903906000f094851562001a4057602e80546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b03918290620034a36200596d565b602a54604051919b91906001600160a01b0316620034c18262004688565b815260006020820152620034d4620052a8565b6040820152620034e48c620056cd565b52620034f08b620056cd565b50602c54604051906001600160a01b03166200350c8262004688565b8152600060208201526200351f62004e76565b60408201526200352f8c620056f1565b526200353b8b620056f1565b50602d54604051906001600160a01b0316620035578262004688565b8152600060208201526200356a620053b9565b60408201526200357a8c62005702565b52620035868b62005702565b5060405190620035968262004688565b6001600160a01b0316815260006020820152620035b2620054ca565b6040820152620035c28b62005713565b52620035ce8a62005713565b50620035d9620058fa565b986040519b620035e98d620046d4565b8c526001600160a01b031660208c01526200360a60243560408d01620057ba565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200364b60c435620057dd565b60c435610140840152610160830152604051916114a490818401928484106001600160401b038511176200149a5784936200368c9362008f3c8639620066fc565b03906000f0801562001a405760018060a01b0316806001600160601b0360a01b6029541617602955806001600160601b0360a01b602a541617602a55806001600160601b0360a01b602c541617602c55806001600160601b0360a01b602d541617602d556001600160601b0360a01b602e541617602e5580f35b503462000357576020366003190112620003575762003724620047d4565b6200372e62006a55565b906200373e620001e58262006af3565b5060646200022360405162003753816200466c565b6001815260203681830137620056cd565b50346200035757806003193601126200035757604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b85828210620037ca57505050620009299250038362004729565b85546001600160a01b0316845260019586019588955093019201620037b0565b50346200035757806003193601126200035757604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200385057505050620009299250038362004729565b85546001600160a01b031684526001958601958895509301920162003836565b503462000357576020806003193601126200036557603a54604051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003ca57859262003a2e575b5060016001600160401b03809316019082821162003a185780603954169086620038e73362006af3565b92803b1562000365576200391a9382916040518080978194636b2c1eef60e01b83528d6004840152602483019062004ccc565b0391600435905af1928315620007de578793620039fb575b5050603a54169360046040518096819382525afa928315620003ca578593620039bb575b50811691160362003965575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d8311620039f3575b620039d6818362004729565b8101031262000b0857620039eb829162006bb2565b929062003956565b503d620039ca565b62003a0991929350620046a4565b62000715578490863862003932565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162003a65575b62003a49818362004729565b8101031262000b085762003a5d9062006bb2565b9038620038bd565b503d62003a3d565b503462000357576020806003193601126200036557600435916001600160401b0391828411620003655736602385011215620003655783600401359062003ab4826200478e565b9162003ac4604051938462004729565b8083528183019560249687600593841b83010191368311620008525788859101915b83831062003b7257505050508384905b868216600381101562003b68578551111562003b535762003b2c879185681fffffffffffffffe085871b16880101519062006a47565b911686811462003b40576001019062003af6565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162003ae6565b503462000357576040366003190112620003575760043562003ba4620047a6565b80319062003bb16200577b565b506038546001600160a01b03929062003bcd908416836200714f565b505050929050836039541686813b15620003575786916004604051809481936316989f6f60e21b83525af180156200085f5762003c8c575b508062003c2491319462003c186200577b565b5060385416906200714f565b5050509390508482039182116200086a570362003c5257620004309262003c4b9162006a47565b1462006e4c565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b9562003c9d62003c249297620046a4565b959062003c05565b50346200035757806003193601126200035757604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b8582821062003d0b57505050620009299250038362004729565b85546001600160a01b031684526001958601958895509301920162003cf1565b5034620003575760031960203682011262000365576001600160401b0360043511620003655760c0906004353603011262000357576040519062003d6f8262004650565b600435600401356001600160401b038111620003655762003d9890600436918135010162004800565b8252600435602481013560208401526044810135604084015262003dbf90606401620048c4565b6060830152608460043501356001600160401b038111620003655736602382600435010112156200036557600481813501013562003dfd816200478e565b9262003e0d604051948562004729565b81845260208401923660248460051b836004350101011162000365576024816004350101935b60248460051b83600435010101851062003e6f57602062000b6b8888608082015262003e6460a460043501620048d3565b60a082015262005a48565b84356001600160401b038111620003c65760606004358401820136036023190112620003c6576040519062003ea48262004688565b600435840181016024810135835262003ec090604401620047eb565b60208301526001600160401b0360648286600435010101351162000b0857602492602092839262003f01903690600435890101606481013501870162004a41565b6040820152815201950194905062003e33565b503462000357576060908160031936011262000357576001600160401b0390600435828111620003655762003f4e903690600401620048e3565b9162003f59620047a6565b9262003f64620047bd565b62003f6e6200592d565b9060405162003f7d8162004688565b6001600160a01b039687168152602080820187905297889162003f9f62004e76565b604082015262003faf85620056cd565b5262003fbb84620056cd565b50876040519362003fcc8562004688565b168352868284015260405190819283918160255494858152019060258b527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c948b5b816007820110620041d9578462004073975493838310620041b8575b83831062004197575b83831062004176575b83831062004155575b83831062004137575b5082821062004118575b828210620040fb575b5010620040e557509050038262004729565b60408201526200408382620056f1565b526200408f81620056f1565b50604051926114a4808501918211858310176200117e5791849391620040bb9362008f3c8639620066fc565b039082f0908115620006f1575016806001600160601b0360a01b6029541617602955604051908152f35b6001600160e01b03191681528b91013862002a8a565b83811b6001600160e01b0319168552909301926001018462004061565b604084901b6001600160e01b0319168552909301926001018462004058565b84901b6001600160e01b03191685529093019260010184386200404e565b608085901b6001600160e01b03191686529481019460019092019162004045565b60a085901b6001600160e01b0319168652948101946001909201916200403c565b60c085901b6001600160e01b03191686529481019460019092019162004033565b60e085901b6001600160e01b0319168652948101946001909201916200402a565b9260089295506101009060019295885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901528d84846080928282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019101928c9286949592956200400e565b90503462000365578160031936011262000365576200434f816200427e6001600160401b03936200466c565b60018152600162004297602092833681830137620056cd565b5260405190620042a78262004650565b620042b16200577b565b825284818301528460408301528460a060609382858201528460808201520152604051620042df81620046f1565b85815260405190620042f1826200466c565b607b8252828201526040516200430781620046f1565b86815260405191620043198362004650565b8252600a838301526402540be40060408301526046848301526080820152606460a08201526001600160a01b0393849162005a48565b1683620043cf62000b656001600160601b0360a01b93808560385416176038558085603a541617603a55808560395416176039558085603b541617603b558085603c541617603c558085603d541617603d558085603e541617603e558085603f541617603f558085604154161760415580856040541617604055620057e8565b1690818160295416176029558181602a541617602a558181602c541617602c558181602e541617602e55602d541617602d55620044c46200440f62006a55565b620044196200577b565b50604051600360621b8482015260148152620044a0906200443a816200466c565b62004491604051916200444d8362004688565b600a83526001600160801b0387840160148152604085019283526040519b8c958a80880152511660408601525116888401525187608084015260a083019062004bb2565b03601f19810188528762004729565b60405195620044af876200466c565b60048752838701528695620001f482620056cd565b506064620044e9604051620044d9816200466c565b60018152833681830137620056cd565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15620007155760405163c88a5e6d60e01b8152600c600482015260016024820152868160448183895af180156200085f576200463a575b5084604051926200454a846200466c565b438452830152833b1562000b08576040516303223eab60e11b815260ff60981b6004820152858160248183895af18015620008b8579186939185936200461a575b50603d546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af18015620003eb57620045fa575b5050803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b816200461492903d10620003955762000385818362004729565b620045c8565b6200462a919350939193620046a4565b62000b085784918391386200458b565b62004647919550620046a4565b84933862004539565b60c081019081106001600160401b038211176200149a57604052565b604081019081106001600160401b038211176200149a57604052565b606081019081106001600160401b038211176200149a57604052565b6001600160401b0381116200149a57604052565b60e081019081106001600160401b038211176200149a57604052565b61018081019081106001600160401b038211176200149a57604052565b602081019081106001600160401b038211176200149a57604052565b608081019081106001600160401b038211176200149a57604052565b90601f801991011681019081106001600160401b038211176200149a57604052565b606435906001600160401b0382168203620006e357565b608435906001600160401b0382168203620006e357565b35906001600160401b0382168203620006e357565b6001600160401b0381116200149a5760051b60200190565b602435906001600160a01b0382168203620006e357565b604435906001600160a01b0382168203620006e357565b600435906001600160a01b0382168203620006e357565b35906001600160a01b0382168203620006e357565b9190604083820312620006e357604051926200481c846200466c565b83620048288262004779565b815260209182810135906001600160401b038211620006e357019280601f85011215620006e35783356200485c816200478e565b946200486c604051968762004729565b818652848087019260051b820101928311620006e35784809101915b8383106200489857505050500152565b8190620048a584620047eb565b815201910190849062004888565b60a4359060ff82168203620006e357565b359060ff82168203620006e357565b359061ffff82168203620006e357565b9190918083036101a08112620006e3576040516200490181620046d4565b80948335906001600160401b038211620006e3576200492291850162004800565b81526200493260208401620047eb565b602082015260408301356001811015620006e357604082015260608301356060820152620049636080840162004779565b60808201526200497660a0840162004779565b60a08201526200498960c08401620048c4565b60c08201526200499c60e08401620048d3565b60e08201526101008084013590820152610120918284013560009381850b820362000b08578301526101408085013590600382101562000b0857830152604061015f1990910112620003655760405192620049f7846200466c565b6101609283820135906002821015620003575750845262004a1c9061018001620047eb565b60208401520152565b6001600160401b0381116200149a57601f01601f191660200190565b81601f82011215620006e35780359062004a5b8262004a25565b9262004a6b604051948562004729565b82845260208383010111620006e357816000926020809301838601378301015290565b90815180825260208080930193019160005b82811062004aaf575050505090565b83516001600160a01b03168552938101939281019260010162004aa0565b90815180825260208080930193019160005b82811062004aee575050505090565b83516001600160e01b0319168552938101939281019260010162004adf565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062004b43575050505050505090565b90919293949596858062004b7b600193603f1986820301885286838d51878060a01b0381511684520151918185820152019062004acd565b99019401940192959493919062004b31565b60005b83811062004ba15750506000910152565b818101518382015260200162004b90565b9060209162004bcd8151809281855285808601910162004b8d565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b84831062004c0e5750505050505090565b909192939495848062004c2e600193603f198682030187528a5162004bb2565b980193019301919493929062004bfd565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062004c7e575050505090565b83516001600160a01b03168552938101939281019260010162004c6f565b91959493909262004cb860809460a0855260a085019062004c3f565b966020840152604083015260608201520152565b906040602062004cee9360ff8151168452015191816020820152019062004bb2565b90565b81601f82011215620006e35780359162004d0b836200478e565b9262004d1b604051948562004729565b808452602092838086019260051b820101928311620006e3578301905b82821062004d47575050505090565b81356001600160e01b031981168103620006e357815290830190830162004d38565b51908115158203620006e357565b6000805460081c60ff161562004d91575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62004db357505090565b819250819060405182602082018381526519985a5b195960d21b60408401526040835262004de18362004688565b62004e1d6024604051809362004e0c6020830197630667f9d760e41b89525180928585019062004b8d565b810103600481018452018262004729565b51925af1503d1562004e6d573d9062004e368262004a25565b9162004e46604051938462004729565b82523d81602084013e5b602082805181010312620003575750602062004cee910162004d69565b60609062004e50565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b81600782011062005012578462004f1b97549383831062004ff1575b83831062004fd0575b83831062004faf575b83831062004f8e575b83831062004f6d575b83831062004f4f575b5082821062004f32575b501062004f1d575b509050038362004729565b565b6001600160e01b031916815201803862004f10565b83811b6001600160e01b0319168552909301926001018462004f08565b84901b6001600160e01b031916855290930192600101843862004efe565b606085901b6001600160e01b03191686529481019460019092019162004ef5565b608085901b6001600160e01b03191686529481019460019092019162004eec565b60a085901b6001600160e01b03191686529481019460019092019162004ee3565b60c085901b6001600160e01b03191686529481019460019092019162004eda565b60e085901b6001600160e01b03191686529481019460019092019162004ed1565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004eb5565b60409081519182603754918282526020908183019060376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae9460005b81600782011062005123578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620050c5565b60409081519182603654918282526020908183019060366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b89460005b81600782011062005234578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620051d6565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b81600782011062005345578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620052e7565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062005456578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620053f8565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062005567578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005509565b906040918251809382549283835260209182840191600052826000209460005b81600782011062005659578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620055fb565b805115620056db5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620056db5760400190565b805160021015620056db5760600190565b805160031015620056db5760800190565b805160061015620056db5760e00190565b805160071015620056db576101000190565b805160081015620056db576101200190565b805160041015620056db5760a00190565b805160051015620056db5760c00190565b604051906200578a826200466c565b6060602083600081520152565b60405190620057a68262004688565b606060408360008152600060208201520152565b6001821015620057c75752565b634e487b7160e01b600052602160045260246000fd5b60031115620057c757565b60408051620057f781620046d4565b620058016200577b565b8152600080602083015280838301528060608301528060808301528060a08301528060c08301528060e08301526101008181840152600c61012083818601526402540be40061014093858588015287516200585c816200466c565b868152866020820152610160809801528562005877620058fa565b9880519a620058868c620046f1565b828c5281519b620058978d6200466c565b607b8d5260208d015281519b620058ae8d620046d4565b8c526001600160a01b031660208c01528a0152670de0b6b3a764000060608a0152600160808a0152600a60a08a0152604660c08a0152606460e08a015288015286015284015282015290565b600060206040516200590c816200466c565b82815201526040516200591f816200466c565b600081526000602082015290565b6040908151916200593e8362004688565b600283528260005b8281106200595357505050565b6020906200596062005797565b8282850101520162005946565b6040519060a082018281106001600160401b038211176200149a57604052600482528160005b60808110620059a0575050565b602090620059ad62005797565b8282850101520162005993565b908082519081815260208091019281808460051b8301019501936000915b848310620059e95750505050505090565b909192939495848062005a37600193601f198682030187528a51858060a01b0381511682528381015162005a1d81620057dd565b848301526040809101519160608092820152019062004acd565b9801930193019194939290620059d8565b906040516117848082018281106001600160401b038211176200149a57829162016232833903906000f0801562001a40576040516116598082018281106001600160401b038211176200149a5782916201a437833903906000f0801562001a4057604051612a818082018281106001600160401b038211176200149a578291620179b6833903906000f090811562001a4057604051612a728082018281106001600160401b038211176200149a578291620137c0833903906000f0801562001a40576040516126e78082018281106001600160401b038211176200149a5782916200ed13833903906000f0801562001a40576040516122618082018281106001600160401b038211176200149a5782916200cab2833903906000f090811562001a40576040516123c68082018281106001600160401b038211176200149a578291620113fa833903906000f092831562001a4057604051610d308082018281106001600160401b038211176200149a5782916200b4fe833903906000f095861562001a40576040516108848082018281106001600160401b038211176200149a5782916200c22e833903906000f095861562001a4057604051986101408a018a81106001600160401b038211176200149a5760405260098a5260005b6101208110620066e157506040519062005c3e8262004688565b60018060a01b031681526000602082015260405180816020602f549283815201602f6000527fa813484aef6fb598f9f753daf162068ff39ccea4075cb95e1a30f86995b5b7ee926000905b8060078301106200666c5762005ce29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005cf28a620056cd565b5262005cfe89620056cd565b506040519062005d0e8262004688565b60018060a01b031681526000602082015260405180816020603054928381520160306000527f6ff97a59c90d62cc7236ba3a37cd85351bf564556780cf8c1157a220f31f0cbb926000905b806007830110620065f75762005db29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005dc28962005724565b5262005dce8862005724565b506040519062005dde8262004688565b60018060a01b031681526000602082015260405180816020603154928381520160316000527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc926000905b806007830110620065825762005e829454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005e928862005735565b5262005e9e8762005735565b506040519062005eae8262004688565b60018060a01b031681526000602082015260405180816020603254928381520160326000527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697926000905b8060078301106200650d5762005f529454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005f628762005747565b5262005f6e8662005747565b506040519062005f7e8262004688565b60018060a01b031681526000602082015260405180816020603354928381520160336000527f82a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a82926000905b8060078301106200649857620060229454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b60408201526200603286620056f1565b526200603e85620056f1565b50604051906200604e8262004688565b60018060a01b031681526000602082015260405180816020603454928381520160346000527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1926000905b8060078301106200642357620060f29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620061028562005702565b526200610e8462005702565b50604051906200611e8262004688565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b806007830110620063ae57620061c29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620061d28462005713565b52620061de8362005713565b5060405190620061ee8262004688565b6001600160a01b03168152600060208201526200620a62005086565b60408201526200621a8362005759565b52620062268262005759565b5060405190620062368262004688565b6001600160a01b03168152600060208201526200625262005197565b604082015262006262826200576a565b526200626e816200576a565b5060405190611b4d808301918383106001600160401b038411176200149a57620062a791620073ef8539604083526040830190620059ba565b906020818303910152620062c5845160c0835260c083019062004c3f565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b8484106200635b5750505050505060a061ffff8185969701511691015203906000f0801562001a4057603880546001600160a01b0319166001600160a01b0392909216918217905590565b9091929394966020806200639d600193601f198682030188528660408d5180518452878060a01b03868201511686850152015191816040820152019062004bb2565b990194019401929493919062006310565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006169565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006099565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005fc9565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005ef9565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005e29565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005d59565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005c89565b808b60208093620066f162005797565b920101520162005c24565b906200671190604083526040830190620059ba565b9060208183039101526200672f82516101a080845283019062004c3f565b9160018060a01b0380602083015116602084015260408201516001811015620057c7576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b908401526101408083015190620067c782620057dd565b84015261016080920151918251926002841015620057c7576101809360209286015201511691015290565b60409081519061509d90818301926001600160401b0392818510848611176200149a576201cfdf823980600094039084f0801562006a3d57845161154f80820190828210868311176200145e579082916201ba908339039085f090811562006a33578551610884808201908282108783111762006a1f579082916200c22e8339039086f090811562006a15578651610d30808201908282108883111762006a01579082916200b4fe8339039087f08015620069f757620068b16200596d565b938851620068bf8162004688565b6001600160a01b03938416815260208101899052620068dd620052a8565b8a820152620068ec86620056cd565b52620068f885620056cd565b5082895191620069088362004688565b1681528760208201526200691b62004e76565b898201526200692a85620056f1565b526200693684620056f1565b5081885191620069468362004688565b1681528660208201526200695962005197565b88820152620069688462005702565b52620069748362005702565b50865191620069838362004688565b1681528460208201526200699662005086565b86820152620069a58262005713565b52620069b18162005713565b508451926114a4808501918211858310176200117e5791849391620069dc9362008f3c8639620066fc565b039082f0918215620069ed57505090565b51903d90823e3d90fd5b87513d88823e3d90fd5b634e487b7160e01b89526041600452602489fd5b86513d87823e3d90fd5b634e487b7160e01b88526041600452602488fd5b85513d86823e3d90fd5b84513d85823e3d90fd5b9190820180921162003a1857565b6040519062006a64826200466c565b600182528160005b6020908181101562006a925760209162006a856200577b565b9082850101520162006a6c565b505050565b51906001600160a01b0382168203620006e357565b809291039160608312620006e357604062006ac78262004d69565b93601f190112620006e357604080519162006ae2836200466c565b602081015183520151602082015290565b6001600160401b039062006b066200577b565b5062006b996040918251906001600160601b03199060601b1660208201526014815262006b33816200466c565b62006b8a83519162006b458362004688565b600a83526001600160801b036020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a083019062004bb2565b03601f19810184528362004729565b519062006ba6826200466c565b60048252602082015290565b51906001600160401b0382168203620006e357565b9190604083820312620006e3576040519262006be3846200466c565b8362006bef8262006bb2565b815260209182810151906001600160401b038211620006e357019280601f85011215620006e357835162006c23816200478e565b9462006c33604051968762004729565b818652848087019260051b820101928311620006e35784809101915b83831062006c5f57505050500152565b819062006c6c8462006a97565b815201910190849062006c4f565b90602082820312620006e35781516001600160401b038111620006e35762004cee920162006bc7565b9062006cbd60209194939460408452604084019062004c3f565b6001600160a01b03909416910152565b6040519062006cdc826200466c565b8162006ce76200577b565b8152602062006cf56200577b565b910152565b62004cee91602062006d16835160408452604084019062004c3f565b92015190602081840391015262004ccc565b906020808351936040845260c062006db462006d52875160e0604089015261012088019062006cfa565b62006d6f8589015191603f1992838a83030160608b015262006cfa565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015262004bb2565b9501516101008501520151151591015290565b1562006dcf57565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b1562006e0f57565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b1562006e5457565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e357829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562007145579088949392916200712e575b5062006ee98591846200714f565b9b93969298919a9050603a54168551938480926394074b0360e01b82525afa91821562006a3d5783926200710e575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b9081845288848062006f5860209b8c8095840152602483019062004c3f565b0381865af4938415620069f7579086918295620070d2575b50875163aa5106cb60e01b815294958591829162006f9291908d840162006ca3565b0381855af492831562006a15579162006fcb939188938793620070b2575b5087518095819482938352868d840152602483019062004c3f565b03915af4928315620070a7579262007072575b500362006fff5750505091620023b3620023ba9262004f1b95941462006e4c565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d83116200709f575b6200708d818362004729565b81010312620006e35751903862006fde565b503d62007081565b8451903d90823e3d90fd5b620070ca9193503d8089833e6200279d818362004729565b913862006fb0565b89809296508193503d831162007106575b620070ef818362004729565b81010312620006e3575192859062006f9262006f70565b503d620070e3565b620071269192503d8085833e6200279d818362004729565b903862006f18565b946200713e62006ee996620046a4565b9462006edb565b83513d87823e3d90fd5b906200715a6200577b565b5060018060a01b0380911691826001600160601b0360a01b81816039541617603955603a541617603a5560409283519182916394074b0360e01b835282600460009586935afa918215620073e45792809291620071ec948293620073c4575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162006ca3565b0381845af492831562007397578293620073a1575b50620072339293603a541693855180926390ba52cf60e01b825281806020978895866004840152602483019062004c3f565b03915af49081156200739757908291829162007360575b50602486518096819363017187cd60e11b835260048301525afa92831562007354578193620072a1575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e620072b6818362004729565b8101918382840312620003575781516001600160401b0392838211620003f657019060c0828503126200035757855194620072f18662004650565b8251865280830151908601528582015186860152620073136060830162006bb2565b6060860152620073266080830162006bb2565b608086015260a08201519283116200035757506200734692910162006bc7565b60a082015238808062007274565b508351903d90823e3d90fd5b809250848092503d83116200738f575b6200737c818362004729565b810103126200036557819051386200724a565b503d62007370565b85513d84823e3d90fd5b620072339350620073bd903d8085833e6200279d818362004729565b9262007201565b620073dc9193503d8084833e6200279d818362004729565b9138620071b9565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd26080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c634300081300336080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c634300081300336080806040523461001657612245908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c6343000813003360808060405234610016576126cb908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c6343000813003360808060405234610016576123aa908161001c8239f35b600080fdfe608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c634300081300336080806040523461001657612a56908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220b48c09038cb95ca358f6b3b986231aac3e6aa9fe9a876f90865eb1782122308064736f6c634300081300336080806040523461001657611768908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220290a93e36b6805df006441b141a908ae17483412928035e4fb087e0eb0d40d6264736f6c634300081300336080806040523461001657612a65908161001c8239f35b600080fdfe604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611989565b61140d60219182546114e7565b90556111a9565b92500155611989565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cdb565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386127ae565b60019283825260258652828a832054168861155282611e66565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611dfb565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612801565b926115d487611e66565b935b818682161161161a575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612a108339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611e66565b1015611652579061164b839282612960565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc95602791611693612388565b8352522054166116d0575b6116a784612319565b6116b083611dfb565b516001600160a01b03928316815292909116602083015281906040820190565b6116d98461201c565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c83612319565b9792915061172385949796956127ca565b9761172d85611e66565b976117378a61220e565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611de8565b9061275e565b9b909b5b8b111561178757611779908c6128c7565b6117828b61220e565b61173e565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206129f0833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611e66565b611768565b505050505050506115bc91929395506000805160206129f0833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff93918416611957578360205460081c16846023541610611925576118476127ae565b60018352602560205286832054168561185f82611e66565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611dfb565b6115bc600080516020612a108339815191529361159c6118c284612801565b6118cb85611e66565b906121b9565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc94611905612388565b8152602760205220541661191c576116a784612319565b6116d9846120a7565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c83612319565b505050506115bc6000805160206129f08339815191529361159c61197a846127ca565b61198385611e66565b906126cb565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611bb1578082526024835287868320541615611ba0578415611af857506119d6836127ca565b976119e084611e66565b985b6001808a83161115611ae95781617fff911c1690818452602585528a611a0c848a87205416611e66565b1115611a2157611a1c90826128c7565b6119e2565b505091939597509193955b6026541615611ae157611a3d6127ae565b600182526025835285818184205416926028611a5885611e66565b95611a616127bc565b600183525220541691611a7383611e66565b11611aa857505091516001600160a01b03909216825260208201526000805160206129f08339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad9612388565b61169e611eb5565b505050505050565b50509193959750919395611a2c565b829450611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996124d1565b8651908152a160265416611b405750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b6e6127bc565b6001835252205416611b94611b8282611e66565b92611b8b611eb5565b61159c83612319565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611ca0575061fffe9193611bce86612801565b93611bd887611e66565b9480966001958692831b168160265416925b611c2c575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612a1083398151915291905080604081016115bc565b818116838111611c9a578d9084811015611c7e57505080611c4f611c5592611de8565b906122c1565b9890985b881015611c7957611c6a9089612960565b611c738861220e565b86611bea565b611bef565b865260288552852054909890611c95908716611e66565b611c59565b50611bef565b94915050611cd49194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061201c565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d7e578084526024855281888520541615611d6d578615611d3c5750611a2c611d2d866127ca565b611d3687611e66565b9061267c565b849193979650611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b939661255c565b8751632a55ca5360e01b8152600490fd5b9693925050508315611dbb5750600080516020612a1083398151915293506115bc9061159c611dac84612801565b611db585611e66565b90612225565b9250611cd47f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b94926120a7565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e138360265416611de8565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611e97576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff806026541690811561200a5790600190611ed4818311156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611f6e91908a611f5f83610e27565b16906026541617602655612826565b848252808652611f82848484205416611e66565b95859860028160265416995b611fa0575b5050505050505050505050565b8181168a8111612004578a811015611fe9575080611c4f611fc092611de8565b9a909a5b891015611fe457611fd5908b612960565b611fde8a61220e565b87611f8e565b611f93565b859b919b52838352611fff878787205416611e66565b611fc4565b50611f93565b6040516340d9b01160e01b8152600490fd5b61202590612801565b61ffff908160265416916120398383612960565b8061204384610e27565b1661ffff19602654161760265561205983612826565b811680921461074957611db5826102ed93600052602860205260018060a01b039061209361208d8360406000205416611e66565b856121b9565b600052602860205260406000205416611e66565b6120b090612801565b61ffff908160265416916120c48383612960565b806120ce84610e27565b1661ffff1960265416176026556120e483612826565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b039260409261212461211e868686205416611e66565b876121b9565b8252808652612137848484205416611e66565b9585986001988997881b168160265416995b61215a575050505050505050505050565b8181168a8111612004578a81101561219e575080611c4f61217a92611de8565b9a909a5b891015611fe45761218f908b612960565b6121988a61220e565b87612149565b859b919b528383526121b4878787205416611e66565b61217e565b9190915b60018061ffff831611156122085781617fff911c1690836121f360008481526028602052604060018060a01b0391205416611e66565b1015612208576122039082612960565b6121bd565b50509050565b60011b906201fffe61fffe83169216820361021e57565b90600161fffe83821b168160009161ffff908160265416925b61224c575b50505050505050565b8181168381116122bb5783811015612295575080611c4f61226c92611de8565b9690965b861015612290576122819087612960565b61228a8661220e565b8461223e565b612243565b8452602860205260408420549096906122b6906001600160a01b0316611e66565b612270565b50612243565b91909161ffff92838216600052602860205261230460018060a01b036122ed8160406000205416611e66565b958316600052602860205260406000205416611e66565b908185106123125750509190565b9350919050565b6102ed90611d3661ffff916123318360235416611de8565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611e66565b61ffff806023541690811561200a57906001906123a7818311156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161244191908a61243283610e27565b16906023541617602355612868565b848252808652612455848484205416611e66565b95859860028160235416995b612472575050505050505050505050565b8181168a8111612004578a8110156124b657508061175e61249292611de8565b9a909a5b891115611fe4576124a7908b6128c7565b6124b08a61220e565b87612461565b859b919b528383526124cc878787205416611e66565b612496565b6124da906127ca565b61ffff908160235416916124ee83836128c7565b806124f884610e27565b1661ffff19602354161760235561250e83612868565b811680921461074957611983826102ed93600052602560205260018060a01b03906125486125428360406000205416611e66565b8561267c565b600052602560205260406000205416611e66565b612565906127ca565b9061ffff9081602354169061257a82856128c7565b8261258483610e27565b1661ffff19602354161760235561259a82612868565b8284168092146126765760009291929183835260259260209484865260018060a01b03916040916125d86125d2858585205416611e66565b8a61267c565b81528587526125eb838383205416611e66565b956125f58961220e565b978560235416985b8681168a8111612668578a81101561264d57508061175e61261d92611de8565b9a909a5b89111561264057612632908b6128c7565b61263b8a61220e565b6125fd565b5050505050505092505050565b849b919b52828252612663868686205416611e66565b612621565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156122085781617fff911c1690836126b660008481526025602052604060018060a01b0391205416611e66565b1115612208576126c690826128c7565b612680565b916126d58361220e565b600061ffff918260235416905b838116828111612754578281101561272e57508061175e61270292611de8565b9690965b8611156127255761271790876128c7565b6127208661220e565b6126e2565b50505050915050565b83526025602052604083205490969061274f906001600160a01b0316611e66565b612706565b5050505050915050565b919061ffff808416600052602560205261279f60018060a01b036127888160406000205416611e66565b928416600052602560205260406000205416611e66565b93848211156123125750509190565b61ffff602354161561200a57565b61ffff602654161561200a57565b6001600160a01b031660009081526024602052604090205461ffff169081156127ef57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff169081156127ef57565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156128b157565b634e487b7160e01b600052600160045260246000fd5b6128ec61ffff8080602354169316936128e2848611156128aa565b16918211156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61297b61ffff8080602654169316936128e2848611156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033608080604052346100165761163d908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c634300081300336080806040523461001657611533908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c634300081300336080806040523461001657615081908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119e15750806310fd426114611870578063268119361461165d5780632e17de78146116305780633a4b66f1146115545780633f4ba83a146114dc57806341c0e1b51461144b5780634c860af6146113f75780634e71d92d146112635780635c975abb146112335780636170b16214610e8357806366783c9b14610da25780638456cb5914610d3a578063b9ee2bb91461093b578063cc2dc2b9146108bb578063d66d9e1914610870578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a25760008051602061502c83398151915260018154146101905780600183925561011d611cde565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611ac3565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b03811161086c576101d6903690600401611b69565b906024356001600160401b038111610868576101f6903690600401611b69565b916044356001600160401b03811161086457610216903690600401611b69565b909461022061411c565b610228611c99565b60ff601354166003811015610850576001036108205781810361080e5784810361080e5760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888613eca565b906140e0565b6001600160a01b0361029c610297848689613f0b565b611ea9565b166001600160a01b03909116036104fd576103066102be610297838588613f0b565b6102c9838989613eca565b6102d785888d969496613f0b565b356102f2604051958693604060208601526060850191613abb565b90604083015203601f198101845283611af1565b6001600160401b03601c541660405161031e81611ad6565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103518161202f565b61035a8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761039282610389600186015461204f565b60018601612142565b602090601f8311600114610460579282600080516020614fec83398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b82612267565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613ea5565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614fec8339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613f56565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611ac3565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828786613eca565b6001600160a01b039190828061060e610297858d8d613f0b565b169116036104fd5761062c610627610297838b8b613f0b565b6131c1565b6107fc576106c391610656610645610297848c8c613f0b565b610650848a89613eca565b91614003565b610679610667610297848c8c613f0b565b61067284878a613f0b565b3590612758565b610687610297838b8b613f0b565b90610693838689613f0b565b35906106a0848a89613eca565b9590604051936106af85611ad6565b845260209683888601961686523691611b2d565b9260408301938452600154600160401b8110156104e7578060016106ea9201600155613f1b565b9290926107e657600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104e75761073882610732855461204f565b85612142565b80601f83116001146107775750819060019560009261076c575b5050600019600383901b1c191690841b1790555b01610516565b015190503880610752565b91929394601f1984168560005283600020936000905b8282106107ce575050916001969594929183889593106107b5575b505050811b019055610766565b015160001960f88460031b161c191690553880806107a8565b8060018697829497870151815501960194019061078d565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b61084c61082b613e28565b60405163015538b160e01b8152602060048201529182916024830190613ea5565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a25760008051602061502c8339815191526001815414610190578060018392556108a7611cde565b6108af61411c565b6108b761490d565b5580f35b50346101a25760603660031901126101a2576001600160401b036004358181116109375736602382011215610937576108fe903690602481600401359101611bc4565b60443591821161093757366023830112156109375761092a610934923690602481600401359101611c1a565b9060243590614cb0565b80f35b8280fd5b50346101a25760031960603682011261086c576001600160401b036004351161086c576080600435600401916004353603011261086c576024356001600160401b03811161093757610991903690600401611b69565b91906044356001600160401b038111610d36576109b2903690600401611b69565b916109bb611cde565b60055494600b54956109cd8782611d09565b60246004350135141580610d26575b610d145760405190610a1460208301836109f68a83611df8565b0393610a0a601f1995868101835282611af1565b5190209882611d09565b6004356024013503610c1157505091610a37610a3f92610a459697943691611bc4565b933691611c1a565b91614cb0565b6024600435013582528160205260408220908035604219600435360301811215610868576004350191600483016001600160401b03610a8382611e49565b16936001600160401b03199485845416178355610aa96001926024848601930190611e5d565b91906001600160401b038311610bfd57600160401b8311610bfd578154838355808410610be2575b509087959493929190865260208620865b838110610bbb575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b1e86611e49565b16908254161790556024600435013582526022602052610b42604083203390611faa565b5060043560240135600555600e546001600160a01b0316803b15610937576040516347dc9b4f60e01b81529183918391829084908290610b859060048301611df8565b03925af180156105c957610ba7575b5050610ba261093491611e49565b61227f565b610bb090611ac3565b61086c578138610b94565b84959697506020610bcf8495969394611ea9565b848301558a989796959401929101610ae2565b82895260208920610bf7918101908501611e92565b38610ad1565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c2957505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610cf3575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610cc8915082611af1565b51902014610cd35780f35b6024600435013581526022602052610cef604082203390611faa565b5080f35b82546001600160a01b03168552889550602090940193918101918101610c87565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156109dc565b8480fd5b50346101a257806003193601126101a257610d53611c99565b610d5b611cde565b60008051602061500c833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a25760043560008051602061502c833981519152600181541461019057600181558115610e715760ff60125460081c16610e5f57338352600360205281604084205410610e4d576108b78392338452600360205260408420610e158282546127ec565b9055610e23816002546127ec565b6002553384526003602052604084205415610e3f575b33613cc7565b610e4833613d41565b610e39565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b03811161086c573660238201121561086c576001600160401b0381600401351161086c5736602482600401358301011161086c57600160008051602061502c833981519152541461019057600160008051602061502c83398151915255610eff611cde565b610f0761411c565b60ff60125460081c1680611226575b3415611214573360009081526015602052604090206002015461119f57604182600401350361118d57336001600160a01b03610f596004850135602486016140e0565b16036104fd57610f9c57806024610f769260040135910133614003565b610f80343361413d565b610f88614571565b8060008051602061502c8339815191525580f35b610fae36826004013560248401611b2d565b6001600160401b03601c54169060405190610fc882611ad6565b600282526020820190815233604083015282600052601d6020526040600020908251610ff38161202f565b610ffc8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761102b82610389600186015461204f565b602090601f8311600114611105579282600080516020614fec8339815191529795936002936110e298966000926110fa575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036110a682612267565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613abb565b9060608301520390a16110f53433614357565b610f88565b01519050388061105d565b906001840160005260206000209160005b601f19851681106111755750836002936110e2989693600193600080516020614fec8339815191529b9997601f1981161061115c575b505050811b016001820155611075565b015160001960f88460031b161c1916905538808061114c565b91926020600181928685015181550194019201611116565b6040516318dca5e960e21b8152600490fd5b61084c6040516111ae81611ad6565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b604051635a78c58160e11b8152600490fd5b61122e61455c565b610f16565b50346101a257806003193601126101a257602060ff60008051602061500c83398151915254166040519015158152f35b50346101a257806003193601126101a25760019060008051602061502c8339815191528281541461019057828155611299611cde565b336000908152601f602052604090209283549061ffff908183169283156113e557829060101c16918391808795818a01915b61135f575b50505086611341937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611348575b6113298133613cc7565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561131f565b9091939483811696828810156113dc578760005260208091858252604060002060405161138b81611aa8565b898254928383520154938491015243106113d157859493889688946113b286958a95611d09565b9c600052526000826040822082815501550116966000190116946112cb565b9850505094936112d0565b965094936112d0565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561086c57611418611cde565b600e546001600160a01b031633036114395761093490602435600435614b05565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a25761146461411c565b61ffff61147a8160195416826016541690612742565b166114ca576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a2576114f5611c99565b60008051602061500c833981519152805460ff8116156115425760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611568611cde565b61157061411c565b61157861455c565b34156112145733600090815260156020526040902060020154156115bf5760125460081c60ff166115b5576115ad343361413d565b610934614571565b6109343433614357565b61084c6040516115ce81611ad6565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b50346101a25760203660031901126101a25761164a611cde565b61165261411c565b61093460043561463d565b50346101a25760031960603682011261086c576004356001600160401b03918282116108685760608260040191833603011261086857602435838111610d36576116ab903690600401611b69565b919060443585811161186c576116c5903690600401611b69565b916024860135966006549687891061182157604401906116e58287611e5d565b9190506009541680911161185a576116fd8287611e5d565b9050141580611833575b611821576117159085611e5d565b90501561180f5787946040516020810190611742816117348985613b45565b03601f198101835282611af1565b519020968803611773575050505050506007541461175e575080f35b81526023602052610cef604082203390611faa565b61178d9392610a3788969893610a3f939a989a3691611bc4565b80602060405161179c81611aa8565b848152015281600655600755825260236020526117bd604083203390611faa565b50600e546001600160a01b031690813b1561018c5782916117f491604051948580948193630bed761560e01b835260048301613b45565b03925af180156105c957611806575080f35b61093490611ac3565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118465788061515611707565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b03916004358381116109375736602382011215610937576118b6903690602481600401359101611b2d565b926118bf611cde565b3383526017825261ffff604084205416156119c9578351156119b75733835260248252604083209184519182116119a3576118fe82610732855461204f565b80601f831160011461193f5750839482939492611934575b50508160011b916000199060031b1c19161790555b610cef33611f41565b015190503880611916565b90601f198316958486528286209286905b88821061198b57505083600195969710611972575b505050811b01905561192b565b015160001960f88460031b161c19169055388080611965565b80600185968294968601518155019501930190611950565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b90508160031936011261086c573415611a99575060ff60125460081c16610e5f573381526003602052604081205415611a40575b338152600360205260408120611a2c348254611d09565b9055611a3a34600254611d09565b60025580f35b600454600160401b811015611a8557611a62816001611a809301600455611ebd565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a15565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b929192611b3982611b12565b91611b476040519384611af1565b829481845281830111611b64578281602093846000960137010152565b600080fd5b9181601f84011215611b64578235916001600160401b038311611b64576020808501948460051b010111611b6457565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b0382168203611b6457565b9291611bcf82611b99565b91611bdd6040519384611af1565b829481845260208094019160051b8101928311611b6457905b828210611c035750505050565b838091611c0f84611bb0565b815201910190611bf6565b92919092611c2784611b99565b91611c356040519384611af1565b829480845260208094019060051b830192828411611b645780915b848310611c5f57505050505050565b82356001600160401b038111611b6457820184601f82011215611b64578691611c8e8683858095359101611b2d565b815201920191611c50565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611ccc57565b6040516330cd747160e01b8152600490fd5b60ff60008051602061500c8339815191525416611cf757565b60405163d93c066560e01b8152600490fd5b91908201809211611d1657565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215611b64570190565b35906001600160401b0382168203611b6457565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578160051b36038313611b6457565b60408201916001600160401b03611d9e83611d40565b1681526060611db260209384810190611d54565b839195604086839601525201929160005b828110611dd1575050505090565b909192938280600192838060a01b03611de989611bb0565b16815201950193929101611dc3565b6020815260806001600160401b03611e426060611e28611e188780611d2c565b85602088015260a0870190611d88565b956020810135604087015260408101358287015201611d40565b1691015290565b356001600160401b0381168103611b645790565b903590601e1981360301821215611b6457018035906001600160401b038211611b6457602001918160051b36038313611b6457565b818110611e9d575050565b60008155600101611e92565b356001600160a01b0381168103611b645790565b600454811015611ef45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611ef45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fa557602554600160401b811015611a85579082611f91611f7a84600160409601602555611f0a565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461202957845494600160401b861015612015576001860180825586101561200157836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561203957565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561207f575b602083101461206957565b634e487b7160e01b600052602260045260246000fd5b91607f169161205e565b906000929180549161209a8361204f565b9182825260019384811690816000146120fc57506001146120bc575b50505050565b90919394506000526020928360002092846000945b8386106120e85750505050010190388080806120b6565b8054858701830152940193859082016120d1565b9294505050602093945060ff191683830152151560051b010190388080806120b6565b60005b8381106121325750506000910152565b8181015183820152602001612122565b9190601f811161215157505050565b61217d926000526020600020906020601f840160051c8301931061217f575b601f0160051c0190611e92565b565b9091508190612170565b908082146122635761219b815461204f565b906001600160401b0382116104e75781906121c0826121ba865461204f565b86612142565b600090601f83116001146121f7576000926121ec575b50508160011b916000199060031b1c1916179055565b0154905038806121d6565b81526020808220858352818320935090601f1985169083905b82821061224a575050908460019594939210612231575b505050811b019055565b015460001960f88460031b161c19169055388080612227565b8495819295850154815560018091019601940190612210565b5050565b9060016001600160401b0380931601918211611d1657565b601c546001600160401b03828116929080831684106122aa5760405163040aaa0560e11b8152600490fd5b808360401c1684106120b65780604093841c165b848282161115612325575050916020916122f87f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612267565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612343826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123688161202f565b8085036123da5750506003612399600161239f94959697019260018060a01b03166000526015602052604060002090565b01612189565b6123bc816001600160401b0316600052601d602052604060002090565b916000908184556001936123d18582016127f9565b015501166122be565b909194506123e78161202f565b60039181830361258557505087519361240f85612408816001809a01612089565b0386611af1565b84518501916020928a87858301920312611b645783870151898111611b645787019681603f89011215611b645787858d9901519261245861244f85611b12565b9a519a8b611af1565b838a528d8483010111611b64578c926124769184888c01910161211f565b015192816124968460018060a01b03166000526015602052604060002090565b01918751918a8311612570578a986124b8846124b2875461204f565b87612142565b81601f85116001146124fd57506124ed9798999a84939284926000956124f2575b50501b92600019911b1c1916179055612758565b61239f565b0151935038806124d9565b91601f9b9493919b1984169b866000528c84600020946000915b8210612555575050846124ed9a9b9c9d1061253b575b50505050811b019055612758565b01519060f884600019921b161c191690553880808061252d565b8383015186558f9d509487019492830192908101908e612517565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125a185612408816001809501612089565b60208086805181010312611b645781818c970151956125bf8161202f565b036126e45784906125d08285612842565b601e546125dd9043611d09565b928751906125ea82611aa8565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061262d91612742565b169c60009d8e5282870188528d20925183555191015561264c9061272f565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b15610937578291602483928a5195869384926345f5448560e01b845260048401525af19081156126d9575090849392916126ca575b5061239f565b6126d390611ac3565b386126c4565b8751903d90823e3d90fd5b5050829350916126f4919261279c565b600e541690813b15611b64578651916316989f6f60e21b83528260048160009485945af19081156126d9575090849392916126ca575061239f565b90600161ffff80931601918211611d1657565b91909161ffff80809416911601918211611d1657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278357505050565b8111156127935761217d916128d1565b61217d91612c17565b9061217d916127e460018060a01b038216928360005260156020526127c981600160406000200154611d09565b93600052601560205283600160406000200155601454611d09565b6014556128d1565b91908203918211611d1657565b612803815461204f565b908161280d575050565b81601f6000931160011461281f575055565b90808391825261283e601f60208420940160051c840160018501611e92565b5555565b906128af6128b79260018060a01b038116906000828152601560205261286f8560016040842001546127ec565b92815260156020526040812060028101848154811590816128c8575b50156128bc575090826003926128aa94835581600184015555016127f9565b612c17565b6014546127ec565b601455565b92505060010155612c17565b9050153861288b565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b02578360135460081c16846016541610612ace5761291661379a565b60019283825260188652828a8320541688612930826131c1565b10612a4857508152601a855283898220541661299f57505050505061299a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461297a8361314c565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129a8866137ed565b926129b2876131c1565b935b8186821611612a0a575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd90806040810161299a565b8085612a2986617fff8f95871c1694858852601b8c52872054166131c1565b1015612a425790612a3b8392826139fb565b90506129b4565b506129be565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061299a95601a91612a83613480565b835252205416612ac0575b612a978461340b565b612aa08361314c565b516001600160a01b03928316815292909116602083015281906040820190565b612ac984613224565b612a8e565b505050505061299a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b97929150612b1385949796956137b6565b97612b1d856131c1565b97612b278a61339c565b8460165416905b858116828111612be05782811015612bc4575080612b4e612b549261272f565b9061374a565b9b909b5b8b1115612b7757612b69908c61396c565b612b728b61339c565b612b2e565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979150806040810161299a565b849c919c5260188352612bdb8588862054166131c1565b612b58565b5050505050505061299a91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197945061297a565b9060018060a01b039283831691600093838552602094601a865261ffff96604095888784205416613016578083526017885288878420541615613005578415612e9f5750612c64836137b6565b97612c6e846131c1565b985b6001808383161115612e905781617fff911c169081855260188a528a612c9a858b882054166131c1565b1115612caf57612caa908261396c565b612c70565b505091939597509193955b816019541615612e8657612ccc61379a565b6001918285526018825283898620541693612ce6856131c1565b95612cef6137a8565b848152601b808552828c8320541697612d07896131c1565b11612d5a57505098516001600160a01b0390961686525050505060208201929092529192507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197919050806040810161299a565b91939597509193959750612d6c613480565b83601954168015612e755780612d87612da3929896986138b3565b87612d9182613210565b1661ffff196019541617601955613812565b838252808552612db7838b842054166131c1565b9484809760028160195416925b612e02575b5050505050505050505061299a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759394612a978461340b565b818116838111612e6f578e9080851115612e5457505080612e25612e2b9261272f565b906133b3565b9990995b891015612e4f57612e40908a6139fb565b612e498961339c565b87612dc4565b612dc9565b8752858552862054909990612e6a9088166131c1565b612e2f565b50612dc9565b8a516340d9b01160e01b8152600490fd5b5050505050509050565b50509193959750919395612cba565b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b929450612ed388949996989297996135db565b8851908152a18260195416928315948515612ef2575050505050509050565b612efa6137a8565b600193848152601b808552828a8320541696612f15886131c1565b98612e755780612d87612f2a929896986138b3565b838252808552612f3e838b842054166131c1565b9484809760028160195416925b612f98575b50505050505050505050612f897f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b0390a180388080808080612e86565b818116838111612fff578e9080851115612fe457505080612e25612fbb9261272f565b9990995b891015612fdf57612fd0908a6139fb565b612fd98961339c565b87612f4b565b612f50565b8752858552862054909990612ffa9088166131c1565b612fbf565b50612f50565b8651632a55ca5360e01b8152600490fd5b84969892949793959715613111575061fffe9193613033866137ed565b9361303d876131c1565b9480966001958692831b168160195416925b6130a3575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd919050806040810161299a565b81811683811161310b578d90848110156130ef57505080612e256130c69261272f565b9890985b8810156130ea576130db90896139fb565b6130e48861339c565b8661304f565b613054565b8652601b85528520549098906131069087166131c1565b6130ca565b50613054565b949150506131459194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613224565b51908152a1565b61217d906131bb61ffff91613164836019541661272f565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556131c1565b90613347565b60ff601354166003811015612039576001036131f2576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d1657565b61322d906137ed565b61ffff9081601954169161324183836139fb565b8061324b84613210565b1661ffff19601954161760195561326183613812565b808216809314613342579161fffe91600091808352601b9060209382855260018060a01b03926040926132a161329b8686862054166131c1565b87613347565b82528086526132b48484842054166131c1565b9585986001988997881b168160195416995b6132d8575b5050505050505050505050565b8181168a811161333c578a811015613321575080612e256132f89261272f565b9a909a5b89101561331c5761330d908b6139fb565b6133168a61339c565b876132c6565b6132cb565b859b919b528383526133378787872054166131c1565b6132fc565b506132cb565b505050565b9190915b60018061ffff831611156133965781617fff911c1690836133816000848152601b602052604060018060a01b03912054166131c1565b10156133965761339190826139fb565b61334b565b50509050565b60011b906201fffe61fffe831692168203611d1657565b91909161ffff92838216600052601b6020526133f660018060a01b036133df81604060002054166131c1565b958316600052601b602052604060002054166131c1565b908185106134045750509190565b9350919050565b61217d9061347a61ffff91613423836016541661272f565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556131c1565b906136fb565b61ffff80601654169081156135c9579060019061349f81831115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161353991908a61352a83613210565b16906016541617601655613854565b84825280865261354d8484842054166131c1565b95859860028160165416995b61356a575050505050505050505050565b8181168a811161333c578a8110156135ae575080612b4e61358a9261272f565b9a909a5b89111561331c5761359f908b61396c565b6135a88a61339c565b87613559565b859b919b528383526135c48787872054166131c1565b61358e565b6040516340d9b01160e01b8152600490fd5b6135e4906137b6565b9061ffff908160165416906135f9828561396c565b8261360383613210565b1661ffff19601654161760165561361982613854565b8284168092146136f55760009291929183835260189260209484865260018060a01b03916040916136576136518585852054166131c1565b8a6136fb565b815285875261366a8383832054166131c1565b956136748961339c565b978560165416985b8681168a81116136e7578a8110156136cc575080612b4e61369c9261272f565b9a909a5b8911156136bf576136b1908b61396c565b6136ba8a61339c565b61367c565b5050505050505092505050565b849b919b528282526136e28686862054166131c1565b6136a0565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133965781617fff911c16908361373560008481526018602052604060018060a01b03912054166131c1565b111561339657613745908261396c565b6136ff565b919061ffff808416600052601860205261378b60018060a01b0361377481604060002054166131c1565b9284166000526018602052604060002054166131c1565b93848211156134045750509190565b61ffff60165416156135c957565b61ffff60195416156135c957565b6001600160a01b031660009081526017602052604090205461ffff169081156137db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561389d57565b634e487b7160e01b600052600160045260246000fd5b6138d661ffff8060195416926138cc8460011115613896565b1691821115613896565b601b60208181527f9fafca4c9c0d5c2cbf85f49fd8ab8212430ce78c2a0cb75b51e0f9c4f9ace00380546000858152604080822080546001600160a01b03948516808552601a8852838520805461ffff19908116909b1790559416808452918320805490981660019081179098559590945284546001600160a01b03199081169092179094559390925281549092169091179055565b61398761ffff8080601654169316936138cc84861115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a1661ffff8080601954169316936138cc84861115613896565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578136038313611b6457565b908060209392818452848401376000828201840152601f01601f1916010190565b613b05613afa613aec8380611d2c565b604085526040850190611d88565b916020810190611d2c565b91602081830391015281359160ff8316809303611b6457613b32604091613b429484526020810190613a8a565b9190928160208201520191613abb565b90565b6020808252613b548380611d2c565b6060918281850152613b6b60809283860190611d88565b613b82604096838101358888015287810190611d54565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bbd57505050505050505050505090565b909192939495969798999a82828203018752613bd98c85611d2c565b90813560de1983360301811215611b64578782528201918a90888e6001600160401b03613c50613c40613c2d613c24613c128b80611d2c565b60e080988c01526101208b0190613adc565b978a018a611d2c565b96603f1997888a830301868b0152613adc565b928d8901358d8901528801611d40565b169060a091828701528a8701359263ffffffff60e01b8416809403611b64578f95613c87613c979460c096878b01528a018a613a8a565b9290918985030190890152613abb565b940135610100840152013590811515809203611b64578a01529a8801999897966001019587019493929190613ba8565b814710613d29576000918291829182916001600160a01b03165af13d15613d24573d613cf281611b12565b90613d006040519283611af1565b8152600060203d92013e5b15613d1257565b604051630a12f52160e11b8152600490fd5b613d0b565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d575750505050565b613d6081611ebd565b90546003916001600160a01b039190831b1c811685821614613d86575050600101613d4a565b929350939060001991828101908111613e135790613db784613daa613dd694611ebd565b905490891b1c1691611ebd565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613dfe570192613de984611ebd565b81939154921b1b1916905555388080806120b6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613ebe8151809281855285808601910161211f565b601f01601f1916010190565b9190811015611ef45760051b81013590601e1981360301821215611b645701908135916001600160401b038311611b64576020018236038113611b64579190565b9190811015611ef45760051b0190565b600154811015611ef4576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613fb257505050505050505090565b909192939495856003613ff1839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612089565b9a019401940192969594939190613fa0565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e7576140448161403e845461204f565b84612142565b6000601f821160011461407d57819293946000926140725750508160011b916000199060031b1c1916179055565b0135905038806121d6565b601f198216948382526020918281209281905b8882106140c8575050836001959697106140ae57505050811b019055565b0135600019600384901b60f8161c19169055388080612227565b80600184968294958701358155019501920190614090565b906140ed60418214613896565b80600111611b64576141089136916000190190600101611b2d565b80516020909101206001600160a01b031690565b60ff60125460101c1661412b57565b60405163248c8efb60e11b8152600490fd5b906141529061414c8184614330565b8261279c565b60ff60125460081c16156141635750565b60018054600082815b8381106142e0575b50501561418057505050565b6001600160a01b0383166000908152601560205260409020828101546141d6949091600301604051926141b284611ad6565b83526020936141dd8585019260018060a01b03809516845260405198898092612089565b0388611af1565b60408401968752600160401b8110156104e75780866141fe92018755613f1b565b9290926107e6576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104e757614245836124b2875461204f565b81601f841160011461427e5750928293918392600094614273575b50501b916000199060031b1c1916179055565b015192503880614260565b919083601f1981168760005284600020946000905b888383106142c657505050106142ad57505050811b019055565b015160001960f88460031b161c19169055388080612227565b858701518855909601959485019487935090810190614293565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146143265701839061416c565b5090508238614174565b60018060a01b031660005260156020526143536002604060002001918254611d09565b9055565b9190604051928160208501526020845261437084611aa8565b6001600160401b03601c5416936040519461438a86611ad6565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516143be8161202f565b6143c78161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576143ff816143f6600185015461204f565b60018501612142565b6020601f82116001146144d1576144b8949282600080516020614fec83398151915297959360029361217d9c9d6000926144c6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361447d82612267565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a1614330565b015190503880614434565b6001830160005260206000209960005b601f198416811061454457509260018361217d9b9c6002946144b89997600080516020614fec8339815191529b9997601f1981161061452b575b505050811b01600182015561444c565b015160001960f88460031b161c1916905538808061451b565b828201518c556001909b019a602092830192016144e1565b60ff6013541660038110156120395761082057565b601454600a54811015614582575b50565b61ffff601654166001600160401b03600c5416111561459e5750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806145db81613f56565b0390a160018060a01b03600e5416906145f76002548092611d09565b91803b15611b645760246000926040519485938492637903ab2760e11b845260048401525af18015614631571561457f5761217d90611ac3565b6040513d6000823e3d90fd5b61464561455c565b80156146ac573360009081526015602052604090206002015480156119c95781101561469b5760ff60125460081c16156146835761217d9033614711565b8061469161217d92336146be565b610e398133612842565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146ff576146eb916127ec565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472a84611aa8565b6001600160401b03601c5416936040519461474486611ad6565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516147788161202f565b6147818161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576147b0816143f6600185015461204f565b6020601f821160011461488257614869949282600080516020614fec83398151915297959360029361217d9c9d600092614877575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482e82612267565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a16146be565b0151905038806147e5565b6001830160005260206000209960005b601f19841681106148f557509260018361217d9b9c6002946148699997600080516020614fec8339815191529b9997601f198116106148dc575b505050811b0160018201556147fd565b015160001960f88460031b161c191690553880806148cc565b828201518c556001909b019a60209283019201614892565b60ff60125460081c166149fa575b3360009081526015602052604090206002015480156119c95761493d33614a07565b5060009033825260246020528160408120614958815461204f565b806149bd575b50505060ff60125460081c161561497a5761217d915033614711565b604061217d92338152600360205220548061499b575b5061469181336146be565b806149ab6149b7926002546127ec565b600255610e3933613d41565b38614990565b82601f82116001146149d5575050555b81388061495e565b90918082526149f3601f60208420940160051c840160018501611e92565b55556149cd565b614a0261455c565b61491b565b6000818152602660205260408120549091908015614aec5760001990808201818111614ad85760255490838201918211614ac457808203614a90575b5050506025548015614a7c57810190614a5b82611f0a565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aae614a9f611f7a93611f0a565b90549060031b1c928392611f0a565b9055845260266020526040842055388080614a43565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611ef45760209160051b010190565b9190918215613342576040908151906020938483018381106001600160401b038211176104e75784526000928390526002811015614c9c5780614bfd5750600b54614b4f916127ec565b8152602283528181208251808286829454938481520190855286852092855b88828210614be757505050614b8592500382611af1565b928351948515614bdf57858110614bdf5785900493825b868110614bac5750505050505050565b6001906001600160a01b03614bc18285614af1565b5116855260218452858520614bd7888254611d09565b905501614b9c565b505050505050565b8554845260019586019587955093019201614b6e565b846001859214600014614c4d57606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cbd83611b99565b93604094614ccd86519182611af1565b848152601f19614cdc86611b99565b0194602095368784013760005b818110614db357505060009461ffff8060165416600192839182945b614d62575b505050505060ff600e5460a01c1694858102958187041490151715611d16576064614d36950491614e2a565b9015614d40575050565b60068110156120395760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614dab5760009081526018855220548493929186918591614da191614d9b906001600160a01b03166131c1565b90611d09565b9b01169493614d05565b505098614d0a565b6001600160a01b0380614dc68387614af1565b51166000526017885261ffff89600020541615614e065790614df5600192614dee8388614af1565b51166131c1565b614dff8286614af1565b5201614ce9565b8890614e1460249387614af1565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f125782518514801590614f07575b614efa579392919085945b848610614e72575050505050501015614e6a57600090600590565b600190600090565b909192939495614e8c614e858884614af1565b5184614f1f565b50614e968161202f565b614ee9576001600160a01b0380614ead8a88614af1565b5116911603614ed957614ecd600191614ec68988614af1565b5190611d09565b96019493929190614e4f565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e44565b5050505050905090600290565b8151919060418303614f5057614f4992506020820151906060604084015193015160001a90614f5b565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fdf57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fd35780516001600160a01b03811615614fca57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122078a0ac48511a213e0eba4669384b0aa5256d166c6201d23a213b1f403cf446a764736f6c634300081300336080806040523461001657611ea9908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c634300081300336080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c634300081300336080806040523461001657615076908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611b175750806310fd4261146119a0578063268119361461178d5780632e17de7814611760578063350a14bf1461172d5780633a4b66f1146116515780633f4ba83a146115d957806341c0e1b5146115485780634c860af6146114f45780634e71d92d146113605780635c975abb146113305780636170b16214610f8057806366783c9b14610e9f5780638456cb5914610e37578063b9ee2bb914610a38578063c7ebdaef146109f2578063cc2dc2b914610972578063d66d9e1914610927578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b85760008051602061502183398151915260018154146101a657806001839255610133611e23565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611bf9565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610923576101ec903690600401611c9a565b906024356001600160401b03811161091f5761020c903690600401611c9a565b916044356001600160401b03811161091b5761022c903690600401611c9a565b909461023661407b565b61023e611dde565b60ff601354166003811015610907576001036108d7578181036108c5578481036108c55760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888613ed6565b9061403f565b6001600160a01b036102b26102ad848689613f17565b611fda565b166001600160a01b03909116036105135761031c6102d46102ad838588613f17565b6102df838989613ed6565b6102ed85888d969496613f17565b35610308604051958693604060208601526060850191613ac7565b90604083015203601f198101845283611c27565b6001600160401b03601c541660405161033481611c0c565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612160565b61037081612160565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612180565b60018601612273565b602090601f8311600114610476579282600080516020614fe183398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612398565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613eb1565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614fe18339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9490929391865b868110610697575050505050506001600160401b03600c541610156106855761010061ff0019601254161760125560405190602091828101838252600154809152604082019060408160051b8401019460016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6926000905b838210610639575050505050807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959392930390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af1801561062e5761061e57505080f35b61062790611bf9565b6101b85780f35b6040513d84823e3d90fd5b90919293968360036106766060600194603f198b82030187528c5481528c86808060a01b0391015416858201528160408201520160028c016121ba565b990192019201909392916105a7565b60405163031480b160e51b8152600490fd5b6106a5610291828689613ed6565b6001600160a01b039081806106be6102ad868d89613f17565b16911603610513576106dc6106d76102ad848b87613f17565b613133565b6108b3576107026106f16102ad848b87613f17565b6106fc84888b613ed6565b91613f62565b6107256107136102ad848b87613f17565b61071e848988613f17565b3590612889565b6107336102ad838a86613f17565b9061073f838887613f17565b359161076e61074f85898c613ed6565b6040519561075c87611c0c565b86528460208701941684523691611c63565b9160408401928352600154600160401b8110156104fd578060016107959201600155613f27565b94909461089d57518455600184019151166001600160601b0360a01b825416179055518051906001600160401b0382116104fd576107e3826107da6002860154612180565b60028601612273565b602090601f8311600114610829579180600292600196959460009261081e575b5050600019600383901b1c191690851b179101555b0161052c565b015190503880610803565b906002840160005260206000209160005b601f1985168110610885575092600292600196959492879383601f1981161061086c575b505050811b01910155610818565b015160001960f88460031b161c1916905538808061085e565b9192602060018192868501518155019401920161083a565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6109036108e2613e34565b60405163015538b160e01b8152602060048201529182916024830190613eb1565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b85760008051602061502183398151915260018154146101a65780600183925561095e611e23565b61096661407b565b61096e61490a565b5580f35b50346101b85760603660031901126101b8576001600160401b036004358181116109ee57366023820112156109ee576109b5903690602481600401359101611d09565b6044359182116109ee57366023830112156109ee576109e16109eb923690602481600401359101611d5f565b9060243590614ca5565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c541601908111610a24576109eb906123b0565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610923576001600160401b03600435116109235760806004356004019160043536030112610923576024356001600160401b0381116109ee57610a8e903690600401611c9a565b91906044356001600160401b038111610e3357610aaf903690600401611c9a565b91610ab8611e23565b60055494600b5495610aca8782611e4e565b60246004350135141580610e23575b610e115760405190610b116020830183610af38a83611f29565b0393610b07601f1995868101835282611c27565b5190209882611e4e565b6004356024013503610d0e57505091610b34610b3c92610b429697943691611d09565b933691611d5f565b91614ca5565b602460043501358252816020526040822090803560421960043536030181121561091f576004350191600483016001600160401b03610b8082611f7a565b16936001600160401b03199485845416178355610ba66001926024848601930190611f8e565b91906001600160401b038311610cfa57600160401b8311610cfa578154838355808410610cdf575b509087959493929190865260208620865b838110610cb8575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610c1b86611f7a565b16908254161790556024600435013582526022602052610c3f6040832033906120db565b5060043560240135600555600e546001600160a01b0316803b156109ee576040516347dc9b4f60e01b81529183918391829084908290610c829060048301611f29565b03925af1801561062e57610ca4575b5050610c9f6109eb91611f7a565b6123b0565b610cad90611bf9565b610923578138610c91565b84959697506020610ccc8495969394611fda565b848301558a989796959401929101610bdf565b82895260208920610cf4918101908501611fc3565b38610bce565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610d2657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610df0575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610dc5915082611c27565b51902014610dd05780f35b6024600435013581526022602052610dec6040822033906120db565b5080f35b82546001600160a01b03168552889550602090940193918101918101610d84565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610ad9565b8480fd5b50346101b857806003193601126101b857610e50611dde565b610e58611e23565b600080516020615001833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b85760043560008051602061502183398151915260018154146101a657600181558115610f6e5760ff60125460081c16610f5c57338352600360205281604084205410610f4a5761096e8392338452600360205260408420610f1282825461291d565b9055610f208160025461291d565b6002553384526003602052604084205415610f3c575b33613cd3565b610f4533613d4d565b610f36565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116109235736602382011215610923576001600160401b038160040135116109235736602482600401358301011161092357600160008051602061502183398151915254146101a657600160008051602061502183398151915255610ffc611e23565b61100461407b565b60ff60125460081c1680611323575b3415611311573360009081526015602052604090206002015461129c57604182600401350361128a57336001600160a01b0361105660048501356024860161403f565b160361051357611099578060246110739260040135910133613f62565b61107d343361409c565b6110856144d0565b806000805160206150218339815191525580f35b6110ab36826004013560248401611c63565b6001600160401b03601c541690604051906110c582611c0c565b600282526020820190815233604083015282600052601d60205260406000209082516110f081612160565b6110f981612160565b60ff80198454169116178255518051906001600160401b0382116104fd576111288261039f6001860154612180565b602090601f8311600114611202579282600080516020614fe18339815191529795936002936111df98966000926111f7575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111a382612398565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613ac7565b9060608301520390a16111f234336142b6565b611085565b01519050388061115a565b906001840160005260206000209160005b601f19851681106112725750836002936111df989693600193600080516020614fe18339815191529b9997601f19811610611259575b505050811b016001820155611172565b015160001960f88460031b161c19169055388080611249565b91926020600181928685015181550194019201611213565b6040516318dca5e960e21b8152600490fd5b6109036040516112ab81611c0c565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b604051635a78c58160e11b8152600490fd5b61132b6144bb565b611013565b50346101b857806003193601126101b857602060ff60008051602061500183398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020615021833981519152828154146101a657828155611396611e23565b336000908152601f602052604090209283549061ffff908183169283156114e257829060101c16918391808795818a01915b61145c575b5050508661143e937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611445575b6114268133613cd3565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561141c565b9091939483811696828810156114d9578760005260208091858252604060002060405161148881611bde565b898254928383520154938491015243106114ce57859493889688946114af86958a95611e4e565b9c600052526000826040822082815501550116966000190116946113c8565b9850505094936113cd565b965094936113cd565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561092357611515611e23565b600e546001600160a01b03163303611536576109eb90602435600435614b02565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b85761156161407b565b61ffff6115778160195416826016541690612873565b166115c7576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af1801561062e5761061e5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b8576115f2611dde565b600080516020615001833981519152805460ff81161561163f5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b857611665611e23565b61166d61407b565b6116756144bb565b34156113115733600090815260156020526040902060020154156116bc5760125460081c60ff166116b2576116aa343361409c565b6109eb6144d0565b6109eb34336142b6565b6109036040516116cb81611c0c565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b50346101b85760203660031901126101b8576004356001600160401b038116810361175b576109eb906123b0565b600080fd5b50346101b85760203660031901126101b85761177a611e23565b61178261407b565b6109eb60043561463a565b50346101b857600319606036820112610923576004356001600160401b039182821161091f5760608260040191833603011261091f57602435838111610e33576117db903690600401611c9a565b919060443585811161199c576117f5903690600401611c9a565b916024860135966006549687891061195157604401906118158287611f8e565b9190506009541680911161198a5761182d8287611f8e565b9050141580611963575b611951576118459085611f8e565b90501561193f5787946040516020810190611872816118648985613b51565b03601f198101835282611c27565b5190209688036118a3575050505050506007541461188e575080f35b81526023602052610dec6040822033906120db565b6118bd9392610b3488969893610b3c939a989a3691611d09565b8060206040516118cc81611bde565b848152015281600655600755825260236020526118ed6040832033906120db565b50600e546001600160a01b031690813b156101a257829161192491604051948580948193630bed761560e01b835260048301613b51565b03925af1801561062e57611936575080f35b6109eb90611bf9565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156119765788061515611837565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b03916004358381116109ee57366023820112156109ee576119e6903690602481600401359101611c63565b926119ef611e23565b3383526017825261ffff60408420541615611aff57835115611aed573383526024825260408320918451918211611ad957611a3482611a2e8554612180565b85612273565b80601f8311600114611a755750839482939492611a6a575b50508160011b916000199060031b1c19161790555b610dec33612072565b015190503880611a4c565b90601f198316958486528286209286905b888210611ac157505083600195969710611aa8575b505050811b019055611a61565b015160001960f88460031b161c19169055388080611a9b565b80600185968294968601518155019501930190611a86565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610923573415611bcf575060ff60125460081c16610f5c573381526003602052604081205415611b76575b338152600360205260408120611b62348254611e4e565b9055611b7034600254611e4e565b60025580f35b600454600160401b811015611bbb57611b98816001611bb69301600455611fee565b81546001600160a01b0360039290921b91821b19163390911b179055565b611b4b565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611c6f82611c48565b91611c7d6040519384611c27565b82948184528183011161175b578281602093846000960137010152565b9181601f8401121561175b578235916001600160401b03831161175b576020808501948460051b01011161175b57565b35906001600160401b038216820361175b57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361175b57565b9291611d1482611cde565b91611d226040519384611c27565b829481845260208094019160051b810192831161175b57905b828210611d485750505050565b838091611d5484611cf5565b815201910190611d3b565b92919092611d6c84611cde565b91611d7a6040519384611c27565b829480845260208094019060051b83019282841161175b5780915b848310611da457505050505050565b82356001600160401b03811161175b57820184601f8201121561175b578691611dd38683858095359101611c63565b815201920191611d95565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611e1157565b6040516330cd747160e01b8152600490fd5b60ff6000805160206150018339815191525416611e3c57565b60405163d93c066560e01b8152600490fd5b91908201809211611e5b57565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561175b570190565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b578160051b3603831361175b57565b60408201916001600160401b03611ecf83611cca565b1681526060611ee360209384810190611e85565b839195604086839601525201929160005b828110611f02575050505090565b909192938280600192838060a01b03611f1a89611cf5565b16815201950193929101611ef4565b6020815260806001600160401b03611f736060611f59611f498780611e71565b85602088015260a0870190611eb9565b956020810135604087015260408101358287015201611cca565b1691015290565b356001600160401b038116810361175b5790565b903590601e198136030182121561175b57018035906001600160401b03821161175b57602001918160051b3603831361175b57565b818110611fce575050565b60008155600101611fc3565b356001600160a01b038116810361175b5790565b6004548110156120255760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156120255760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b6000818152602660205260408120546120d657602554600160401b811015611bbb5790826120c26120ab8460016040960160255561203b565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461215a57845494600160401b861015612146576001860180825586101561213257836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561216a57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156121b0575b602083101461219a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161218f565b90600092918054916121cb83612180565b91828252600193848116908160001461222d57506001146121ed575b50505050565b90919394506000526020928360002092846000945b8386106122195750505050010190388080806121e7565b805485870183015294019385908201612202565b9294505050602093945060ff191683830152151560051b010190388080806121e7565b60005b8381106122635750506000910152565b8181015183820152602001612253565b9190601f811161228257505050565b6122ae926000526020600020906020601f840160051c830193106122b0575b601f0160051c0190611fc3565b565b90915081906122a1565b90808214612394576122cc8154612180565b906001600160401b0382116104fd5781906122f1826122eb8654612180565b86612273565b600090601f83116001146123285760009261231d575b50508160011b916000199060031b1c1916179055565b015490503880612307565b81526020808220858352818320935090601f1985169083905b82821061237b575050908460019594939210612362575b505050811b019055565b015460001960f88460031b161c19169055388080612358565b8495819295850154815560018091019601940190612341565b5050565b9060016001600160401b0380931601918211611e5b57565b601c546001600160401b03828116929080831684106123db5760405163040aaa0560e11b8152600490fd5b808360401c1684106121e75780604093841c165b848282161115612456575050916020916124297f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612398565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612474826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff1661249981612160565b80850361250b57505060036124ca60016124d094959697019260018060a01b03166000526015602052604060002090565b016122ba565b6124ed816001600160401b0316600052601d602052604060002090565b9160009081845560019361250285820161292a565b015501166123ef565b9091945061251881612160565b6003918183036126b657505087519361254085612539816001809a016121ba565b0386611c27565b84518501916020928a8785830192031261175b578387015189811161175b5787019681603f8901121561175b5787858d9901519261258961258085611c48565b9a519a8b611c27565b838a528d848301011161175b578c926125a79184888c019101612250565b015192816125c78460018060a01b03166000526015602052604060002090565b01918751918a83116126a1578a986125e9846125e38754612180565b87612273565b81601f851160011461262e575061261e9798999a8493928492600095612623575b50501b92600019911b1c1916179055612889565b6124d0565b01519350388061260a565b91601f9b9493919b1984169b866000528c84600020946000915b82106126865750508461261e9a9b9c9d1061266c575b50505050811b019055612889565b01519060f884600019921b161c191690553880808061265e565b8383015186558f9d509487019492830192908101908e612648565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936126d2856125398160018095016121ba565b6020808680518101031261175b5781818c970151956126f081612160565b036128155784906127018285612973565b601e5461270e9043611e4e565b9287519061271b82611bde565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061275e91612873565b169c60009d8e5282870188528d20925183555191015561277d90612860565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b156109ee578291602483928a5195869384926345f5448560e01b845260048401525af190811561280a575090849392916127fb575b506124d0565b61280490611bf9565b386127f5565b8751903d90823e3d90fd5b50508293509161282591926128cd565b600e541690813b1561175b578651916316989f6f60e21b83528260048160009485945af190811561280a575090849392916127fb57506124d0565b90600161ffff80931601918211611e5b57565b91909161ffff80809416911601918211611e5b57565b9060018060a01b0382166000526015602052604060002081815491558181146000146128b457505050565b8111156128c4576122ae91612a02565b6122ae91612d48565b906122ae9161291560018060a01b038216928360005260156020526128fa81600160406000200154611e4e565b93600052601560205283600160406000200155601454611e4e565b601455612a02565b91908203918211611e5b57565b6129348154612180565b908161293e575050565b81601f60009311600114612950575055565b90808391825261296f601f60208420940160051c840160018501611fc3565b5555565b906129e06129e89260018060a01b03811690600082815260156020526129a085600160408420015461291d565b92815260156020526040812060028101848154811590816129f9575b50156129ed575090826003926129db948355816001840155550161292a565b612d48565b60145461291d565b601455565b92505060010155612d48565b905015386129bc565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612c33578360135460081c16846016541610612bff57612a47613855565b60019283825260188652828a8320541688612a6182613133565b10612b7957508152601a8552838982205416612ad0575050505050612acb7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649394612aab836130be565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612ad9866138a8565b92612ae387613133565b935b8186821611612b3b575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd908060408101612acb565b8085612b5a86617fff8f95871c1694858852601b8c5287205416613133565b1015612b735790612b6c839282613a07565b9050612ae5565b50612aef565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7598999250612acb95601a91612bb461354d565b835252205416612bf1575b612bc8846134d8565b612bd1836130be565b516001600160a01b03928316815292909116602083015281906040820190565b612bfa846132fd565b612bbf565b5050505050612acb7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612aab836134d8565b97929150612c448594979695613871565b97612c4e85613133565b97612c588a613469565b8460165416905b858116828111612d115782811015612cf5575080612c7f612c8592612860565b90613805565b9b909b5b8b1115612ca857612c9a908c61396e565b612ca38b613469565b612c5f565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019791508060408101612acb565b849c919c5260188352612d0c858886205416613133565b612c89565b50505050505050612acb91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612aab565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612f82578082526017835287868320541615612f71578415612ec95750612d9583613871565b97612d9f84613133565b985b6001808a83161115612eba5781617fff911c1690818452601885528a612dcb848a87205416613133565b1115612de057612ddb908261396e565b612da1565b505091939597509193955b6019541615612eb257612dfc613855565b60018252601883528581818420541692601b612e1785613133565b95612e20613863565b600183525220541691612e3283613133565b11612e7957505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197908060408101612acb565b91509150612acb7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612eaa61354d565b612bbf613196565b505050505050565b50509193959750919395612deb565b829450612efd7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613696565b8651908152a160195416612f115750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612f3f613863565b6001835252205416612f65612f5382613133565b92612f5c613196565b612aab836134d8565b0390a1388080806121e7565b8551632a55ca5360e01b8152600490fd5b84969792939598919415613083575061fffe9193612f9f866138a8565b93612fa987613133565b9480966001958692831b168160195416925b61300f575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9190508060408101612acb565b81811683811161307d578d90848110156130615750508061303261303892612860565b90613480565b9890985b88101561305c5761304d9089613a07565b61305688613469565b86612fbb565b612fc0565b8652601b8552852054909890613078908716613133565b61303c565b50612fc0565b949150506130b79194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506132fd565b51908152a1565b6122ae9061312d61ffff916130d68360195416612860565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613133565b90613414565b60ff60135416600381101561216a57600103613164576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611e5b57565b61ffff80601954169081156132eb57906001906131b581831115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161324f91908a61324083613182565b169060195416176019556138cd565b848252808652613263848484205416613133565b95859860028160195416995b613281575b5050505050505050505050565b8181168a81116132e5578a8110156132ca5750806130326132a192612860565b9a909a5b8910156132c5576132b6908b613a07565b6132bf8a613469565b8761326f565b613274565b859b919b528383526132e0878787205416613133565b6132a5565b50613274565b6040516340d9b01160e01b8152600490fd5b613306906138a8565b61ffff9081601954169161331a8383613a07565b8061332484613182565b1661ffff19601954161760195561333a836138cd565b80821680931461340f579161fffe91600091808352601b9060209382855260018060a01b039260409261337a613374868686205416613133565b87613414565b825280865261338d848484205416613133565b9585986001988997881b168160195416995b6133b0575050505050505050505050565b8181168a81116132e5578a8110156133f45750806130326133d092612860565b9a909a5b8910156132c5576133e5908b613a07565b6133ee8a613469565b8761339f565b859b919b5283835261340a878787205416613133565b6133d4565b505050565b9190915b60018061ffff831611156134635781617fff911c16908361344e6000848152601b602052604060018060a01b0391205416613133565b10156134635761345e9082613a07565b613418565b50509050565b60011b906201fffe61fffe831692168203611e5b57565b91909161ffff92838216600052601b6020526134c360018060a01b036134ac8160406000205416613133565b958316600052601b60205260406000205416613133565b908185106134d15750509190565b9350919050565b6122ae9061354761ffff916134f08360165416612860565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613133565b906137b6565b61ffff80601654169081156132eb579060019061356c81831115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161360691908a6135f783613182565b1690601654161760165561390f565b84825280865261361a848484205416613133565b95859860028160165416995b613637575050505050505050505050565b8181168a81116132e5578a81101561367b575080612c7f61365792612860565b9a909a5b8911156132c55761366c908b61396e565b6136758a613469565b87613626565b859b919b52838352613691878787205416613133565b61365b565b61369f90613871565b9061ffff908160165416906136b4828561396e565b826136be83613182565b1661ffff1960165416176016556136d48261390f565b8284168092146137b05760009291929183835260189260209484865260018060a01b039160409161371261370c858585205416613133565b8a6137b6565b8152858752613725838383205416613133565b9561372f89613469565b978560165416985b8681168a81116137a2578a811015613787575080612c7f61375792612860565b9a909a5b89111561377a5761376c908b61396e565b6137758a613469565b613737565b5050505050505092505050565b849b919b5282825261379d868686205416613133565b61375b565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156134635781617fff911c1690836137f060008481526018602052604060018060a01b0391205416613133565b111561346357613800908261396e565b6137ba565b919061ffff808416600052601860205261384660018060a01b0361382f8160406000205416613133565b928416600052601860205260406000205416613133565b93848211156134d15750509190565b61ffff60165416156132eb57565b61ffff60195416156132eb57565b6001600160a01b031660009081526017602052604090205461ffff1690811561389657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561389657565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561395857565b634e487b7160e01b600052600160045260246000fd5b61399361ffff80806016541693169361398984861115613951565b1691821115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a2261ffff80806019541693169361398984861115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b57813603831361175b57565b908060209392818452848401376000828201840152601f01601f1916010190565b613b11613b06613af88380611e71565b604085526040850190611eb9565b916020810190611e71565b91602081830391015281359160ff831680930361175b57613b3e604091613b4e9484526020810190613a96565b9190928160208201520191613ac7565b90565b6020808252613b608380611e71565b6060918281850152613b7760809283860190611eb9565b613b8e604096838101358888015287810190611e85565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bc957505050505050505050505090565b909192939495969798999a82828203018752613be58c85611e71565b90813560de198336030181121561175b578782528201918a90888e6001600160401b03613c5c613c4c613c39613c30613c1e8b80611e71565b60e080988c01526101208b0190613ae8565b978a018a611e71565b96603f1997888a830301868b0152613ae8565b928d8901358d8901528801611cca565b169060a091828701528a8701359263ffffffff60e01b841680940361175b578f95613c93613ca39460c096878b01528a018a613a96565b9290918985030190890152613ac7565b94013561010084015201359081151580920361175b578a01529a8801999897966001019587019493929190613bb4565b814710613d35576000918291829182916001600160a01b03165af13d15613d30573d613cfe81611c48565b90613d0c6040519283611c27565b8152600060203d92013e5b15613d1e57565b604051630a12f52160e11b8152600490fd5b613d17565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d635750505050565b613d6c81611fee565b90546003916001600160a01b039190831b1c811685821614613d92575050600101613d56565b929350939060001991828101908111613e1f5790613dc384613db6613de294611fee565b905490891b1c1691611fee565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613e0a570192613df584611fee565b81939154921b1b1916905555388080806121e7565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613eca81518092818552858086019101612250565b601f01601f1916010190565b91908110156120255760051b81013590601e198136030182121561175b5701908135916001600160401b03831161175b57602001823603811361175b579190565b91908110156120255760051b0190565b600154811015612025576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613fa381613f9d8454612180565b84612273565b6000601f8211600114613fdc5781929394600092613fd15750508160011b916000199060031b1c1916179055565b013590503880612307565b601f198216948382526020918281209281905b8882106140275750508360019596971061400d57505050811b019055565b0135600019600384901b60f8161c19169055388080612358565b80600184968294958701358155019501920190613fef565b9061404c60418214613951565b8060011161175b576140679136916000190190600101611c63565b80516020909101206001600160a01b031690565b60ff60125460101c1661408a57565b60405163248c8efb60e11b8152600490fd5b906140b1906140ab818461428f565b826128cd565b60ff60125460081c16156140c25750565b60018054600082815b83811061423f575b5050156140df57505050565b6001600160a01b0383166000908152601560205260409020828101546141359490916003016040519261411184611c0c565b835260209361413c8585019260018060a01b038095168452604051988980926121ba565b0388611c27565b60408401968752600160401b8110156104fd57808661415d92018755613f27565b92909261089d576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576141a4836125e38754612180565b81601f84116001146141dd57509282939183926000946141d2575b50501b916000199060031b1c1916179055565b0151925038806141bf565b919083601f1981168760005284600020946000905b88838310614225575050501061420c57505050811b019055565b015160001960f88460031b161c19169055388080612358565b8587015188559096019594850194879350908101906141f2565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614614285570183906140cb565b50905082386140d3565b60018060a01b031660005260156020526142b26002604060002001918254611e4e565b9055565b919060405192816020850152602084526142cf84611bde565b6001600160401b03601c541693604051946142e986611c0c565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161431d81612160565b61432681612160565b60ff80198a54169116178855519687516001600160401b0381116104fd5761435e816143556001850154612180565b60018501612273565b6020601f821160011461443057614417949282600080516020614fe18339815191529795936002936122ae9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc82612398565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a161428f565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a35750926001836122ae9b9c6002946144179997600080516020614fe18339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60135416600381101561216a576108d757565b601454600a548110156144e1575b50565b61ffff601654166001600160401b03600c541611156144fd5750565b61010061ff00196012541617601255604080516020908181018282526001805480925284830190858360051b850101926000958287527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69387905b898483106145ec575050505050505090807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a160018060a01b03600e54166145a66002548095611e4e565b93813b156109ee57906024839285519687938492637903ab2760e11b845260048401525af19182156145e2575050156144de576122ae90611bf9565b51903d90823e3d90fd5b92600361462a87989995839798949596603f198d82030187528b54815260018060a01b03868d01541685820152606080928201520160028b016121ba565b9801920192019094939291614558565b6146426144bb565b80156146a957336000908152601560205260409020600201548015611aff578110156146985760ff60125460081c1615614680576122ae903361470e565b8061468e6122ae92336146bb565b610f368133612973565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146fc576146e89161291d565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472784611bde565b6001600160401b03601c5416936040519461474186611c0c565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161477581612160565b61477e81612160565b60ff80198a54169116178855519687516001600160401b0381116104fd576147ad816143556001850154612180565b6020601f821160011461487f57614866949282600080516020614fe18339815191529795936002936122ae9c9d600092614874575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482b82612398565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a16146bb565b0151905038806147e2565b6001830160005260206000209960005b601f19841681106148f25750926001836122ae9b9c6002946148669997600080516020614fe18339815191529b9997601f198116106148d9575b505050811b0160018201556147fa565b015160001960f88460031b161c191690553880806148c9565b828201518c556001909b019a6020928301920161488f565b60ff60125460081c166149f7575b336000908152601560205260409020600201548015611aff5761493a33614a04565b50600090338252602460205281604081206149558154612180565b806149ba575b50505060ff60125460081c1615614977576122ae91503361470e565b60406122ae923381526003602052205480614998575b5061468e81336146bb565b806149a86149b49260025461291d565b600255610f3633613d4d565b3861498d565b82601f82116001146149d2575050555b81388061495b565b90918082526149f0601f60208420940160051c840160018501611fc3565b55556149ca565b6149ff6144bb565b614918565b6000818152602660205260408120549091908015614ae95760001990808201818111614ad55760255490838201918211614ac157808203614a8d575b5050506025548015614a7957810190614a588261203b565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aab614a9c6120ab9361203b565b90549060031b1c92839261203b565b9055845260266020526040842055388080614a40565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b80518210156120255760209160051b010190565b919091821561340f576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614c915780614bf25750600b54614b4c9161291d565b8152602283528181208251808286829454938481520190855286852092855b88828210614bdc57505050614b8292500382611c27565b928351948515612eb257858110612eb25785900493825b868110614ba95750505050505050565b6001906001600160a01b03614bbe8285614aee565b5116855260218452858520614bd4888254611e4e565b905501614b99565b8554845260019586019587955093019201614b6b565b846001859214600014614c4257606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cb283611cde565b93604094614cc286519182611c27565b848152601f19614cd186611cde565b0194602095368784013760005b818110614da857505060009461ffff8060165416600192839182945b614d57575b505050505060ff600e5460a01c1694858102958187041490151715611e5b576064614d2b950491614e1f565b9015614d35575050565b600681101561216a5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614da05760009081526018855220548493929186918591614d9691614d90906001600160a01b0316613133565b90611e4e565b9b01169493614cfa565b505098614cff565b6001600160a01b0380614dbb8387614aee565b51166000526017885261ffff89600020541615614dfb5790614dea600192614de38388614aee565b5116613133565b614df48286614aee565b5201614cde565b8890614e0960249387614aee565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f075782518514801590614efc575b614eef579392919085945b848610614e67575050505050501015614e5f57600090600590565b600190600090565b909192939495614e81614e7a8884614aee565b5184614f14565b50614e8b81612160565b614ede576001600160a01b0380614ea28a88614aee565b5116911603614ece57614ec2600191614ebb8988614aee565b5190611e4e565b96019493929190614e44565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e39565b5050505050905090600290565b8151919060418303614f4557614f3e92506020820151906060604084015193015160001a90614f50565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fd457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fc85780516001600160a01b03811615614fbf57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212208365497f3930f76c2e44a97011eac04d4fdac27c51258885a3dbc3b6ce4a273664736f6c63430008130033a264697066735822122006739a8771b16ea6d82ac437ffc1850d16cc03f85e86cc522084a712fd90678e64736f6c63430008130033","sourceMap":"8662:23266:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;:::i;:::-;24775:19;;:::i;:::-;24820:32;24804:48;24820:32;;;:::i;:::-;24804:48;8662:23266;24804:48;;;;:::i;:::-;;;:::i;:::-;;8662:23266;;;;;:::i;:::-;24792:1;8662:23266;;1220:14:3;8662:23266:88;1220:14:3;;;8662:23266:88;24915:19;8662:23266;;24915:19;;:::i;:::-;8662:23266;;24945:21;;;;;;8662:23266;;-1:-1:-1;;;24945:21:88;;-1:-1:-1;;;;;8662:23266:88;;;;24945:21;;8662:23266;;;1220:14:3;;8662:23266:88;24945:21;8662:23266;1220:14:3;8662:23266:88;24945:21;;;;;;;;;;8662:23266;;;;;;;;:::i;:::-;25033:12;8662:23266;;25009:61;1220:14:3;25009:61:88;;8662:23266;25146:38;;;;;8662:23266;;-1:-1:-1;;;25146:38:88;;-1:-1:-1;;;8662:23266:88;25146:38;;8662:23266;25146:38;8662:23266;;;25146:38;;;;;;;;;;;;;;;8662:23266;-1:-1:-1;25194:22:88;540:42:1;8662:23266:88;;-1:-1:-1;;;25194:53:88;;540:42:1;;8662:23266:88;25194:53;;8662:23266;540:42:1;;;;;;;;8662:23266:88;;;25194:53;;8662:23266;;540:42:1;;8662:23266:88;;;;;25194:53;;;;;;;;8662:23266;25257:14;;;;;;8662:23266;;;;;;;;;;;;;25257:14;;;;;;;;;;8662:23266;;;25257:14;;;;;:::i;:::-;8662:23266;;25257:14;8662:23266;;;;;;25257:14;8662:23266;;;;;;;;;25257:14;8662:23266;;;25194:53;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;8662:23266;;;;;;;;;25146:38;;;;;;;;:::i;:::-;8662:23266;;25146:38;;;;;;8662:23266;;;;25146:38;8662:23266;;;;;;;;;24945:21;;;;;;;:::i;:::-;;;;;;8662:23266;;;;;;;;;24945:21;8662:23266;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;:::i;:::-;;;;;;;;;25793:9;8662:23266;31877:42;8662:23266;;;;:::i;:::-;-1:-1:-1;31904:14:88;3541:10;-1:-1:-1;;;;;8662:23266:88;;;;;31877:42;:::i;:::-;8662:23266;;;;;;;;;;;;25851:8;8662:23266;;;;;;;;;25851:45;;;8662:23266;25851:45;;8662:23266;25851:45;8662:23266;;;;;;;;:::i;:::-;25851:45;;;;;;;;;;;;;;8662:23266;;;;;;;;;;;;;;;;;25851:45;25988:29;8662:23266;;25988:29;;;:::i;:::-;8662:23266;;;;;;;;;;26036:22;;;;;;;;;;;;;8662:23266;26036:26;;8662:23266;;26098:25;8662:23266;;-1:-1:-1;26139:9:88;8662:23266;-1:-1:-1;;;;;8662:23266:88;;26183:36;;;:::i;:::-;26139:81;;;;;;8662:23266;;;;;;;;;;;;;;;;;;;26139:81;;8662:23266;;26139:81;;8662:23266;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;26139:81;;;;;;;;;;26094:281;;;25851:45;26094:281;;;25793:9;8662:23266;;;31877:42;;-1:-1:-1;;;;;8662:23266:88;;;:::i;:::-;-1:-1:-1;31904:14:88;3541:10;-1:-1:-1;;;;;8662:23266:88;;31877:42;:::i;:::-;8662:23266;;;;;;;;;;;;25851:8;8662:23266;;;;;;;;;;;;26477:45;;;8662:23266;26477:45;;8662:23266;;;;;;:::i;:::-;26477:45;;;;;;;;;;;;26094:281;8662:23266;;;26477:74;8662:23266;;26646:66;8662:23266;;26585:51;8662:23266;;26593:22;26585:51;:::i;:::-;26654:32;26646:66;:::i;8662:23266::-;;;-1:-1:-1;;;8662:23266:88;;25851:45;8662:23266;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;26477:45;;;;25851;26477;;25851;26477;;;;;;25851;26477;;;:::i;:::-;;;8662:23266;;;;540:42:1;;8662:23266:88;26477:45;;8662:23266;;;;26477:45;;;-1:-1:-1;26477:45:88;;;8662:23266;;;;;;;;;;26139:81;;;;;:::i;:::-;8662:23266;;26139:81;;;;8662:23266;;;26094:281;26241:24;;;;;;;;8662:23266;26241:24;26237:138;;26094:281;;;25851:45;26094:281;;;;;;;26237:138;26281:9;8662:23266;;;;-1:-1:-1;;;;;8662:23266:88;;26315:36;;;:::i;:::-;26281:83;;;;;;8662:23266;;;;;;;;;;;;;;;;;;;;26281:83;;8662:23266;;26281:83;;8662:23266;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;26281:83;;;;;;;;;25851:45;26281:83;;;;;;26237:138;;;;;;;;;;26281:83;;;;:::i;:::-;;;;;8662:23266;;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;25851:45;8662:23266;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;26036:22;;;25851:45;26036:22;;25851:45;26036:22;;;;;;25851:45;26036:22;;;:::i;:::-;;;8662:23266;;;;540:42:1;26036:22:88;;;8662:23266;;;;26036:22;;;-1:-1:-1;26036:22:88;;;8662:23266;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;25851:45;;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;25851:45:88;;;;;;;-1:-1:-1;25851:45:88;;;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;8662:23266:88;;;;;;;;;2130:18:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;31877:42;8662:23266;;:::i;:::-;;;:::i;31877:42::-;8662:23266;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;:::i;:::-;;;26803:26;;;;;8662:23266;;-1:-1:-1;;;26803:26:88;;-1:-1:-1;;;;;8662:23266:88;;;;26803:26;;8662:23266;;;;26803:26;8662:23266;;;26803:26;;;;;;;;;;;;;8662:23266;26839:56;;;;;;;8662:23266;;;;;;;;;;;;;;;26839:56;;8662:23266;26839:56;;8662:23266;;;;;;26839:56;;;;;;;;;;;8662:23266;;;26905:9;8662:23266;;26905:56;;;;;8662:23266;;;2857:7;8662:23266;;;;;;;;;;;;26905:56;;8662:23266;;26905:56;;8662:23266;;;;;;:::i;:::-;26905:56;;;;;;;;;;8662:23266;;26905:56;;;;:::i;:::-;8662:23266;;26905:56;8662:23266;26905:56;8662:23266;;;26839:56;;;;:::i;:::-;8662:23266;;26839:56;;;;;8662:23266;;;26803:26;;;;:::i;:::-;8662:23266;;26803:26;;;;;8662:23266;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;:::i;:::-;;;;;20610:26;;:::i;:::-;8662:23266;;;20677:21;;;;;-1:-1:-1;;;;;20677:21:88;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;20742:23;;;;;-1:-1:-1;;;;;20742:23:88;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;20812:25;;;;;-1:-1:-1;;;;;20812:25:88;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;20882:23;;;;;-1:-1:-1;;;;;20882:23:88;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;;;;;:::i;:::-;;;;;;;;;20946:200;8662:23266;20946:200;;8662:23266;;;;;;21108:23;8662:23266;;;;;;21108:23;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20946:200;;8662:23266;20916:240;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;21196:198;8662:23266;21196:198;;8662:23266;;;;;;21356:23;8662:23266;;;;;;21356:23;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21196:198;;8662:23266;21166:238;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;21444:206;8662:23266;21444:206;;8662:23266;;;;;;21607:28;8662:23266;;;;;;21607:28;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21444:206;;8662:23266;21414:246;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;21700:212;8662:23266;21700:212;;8662:23266;;;;;;21863:34;8662:23266;;;;;;21863:34;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21700:212;;8662:23266;21670:252;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;21975:45;;;;;;;;;;-1:-1:-1;;;;;21975:45:88;;;;;;8662:23266;21975:45;;;8662:23266;21975:45;;;;8662:23266;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;21975:45;;;;;;;;8662:23266;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;22035:49;;8662:23266;22035:49;8662:23266;;;21975:45;-1:-1:-1;;;8662:23266:88;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20882:23;-1:-1:-1;;;8662:23266:88;;;;;;;;20742:23;-1:-1:-1;;;8662:23266:88;;;;;;;;20677:21;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;8662:23266:88;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;1982:18:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;-1:-1:-1;8662:23266:88;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;-1:-1:-1;8662:23266:88;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;;;:::i;:::-;;1671:64:2;;8662:23266:88;;;;;;;6628:51:16;;8662:23266:88;;6628:51:16;;;;;;;;8662:23266:88;6628:51:16;;;8662:23266:88;;;;;;:::i;:::-;;;;;;;6628:51:16;779:22:61;;6628:51:16;;;;;;:::i;:::-;8662:23266:88;392:159:16;131:42;392:159;;;8662:23266:88;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3497:3;;;8662:23266;17074:43;;;;8662:23266;;;17140:29;;;;;;-1:-1:-1;;;;;17140:29:88;;;;;;;;;;;;;;;;;;8662:23266;17140:29;;;;;;8662:23266;;;;;3541:10;;-1:-1:-1;;;;;3541:10:88;;8662:23266;;3541:10;17128:41;3541:10;;;17128:41;3541:10;8662:23266;;17190:28;;;;;;;;;;;;;;;;;;;;;;8662:23266;17190:28;;;;;8662:23266;;3541:10;17179:39;3541:10;;;17179:39;3541:10;8662:23266;;17239:21;;;;;;;;;;;;;;;;;;;;;;8662:23266;17239:21;;;;;8662:23266;;3541:10;17228:32;3541:10;;;17228:32;3541:10;8662:23266;;17281:23;;;;;;;;;;;;;;;;;;;;;;8662:23266;17281:23;;;;;;18114:229;8662:23266;18426:657;8662:23266;;;;;;;;;;;3541:10;;17270:34;3541:10;;;17270:34;3541:10;17355:26;;:::i;:::-;8662:23266;;;17128:41;8662:23266;;;;;;;;:::i;:::-;;;;17422:191;;;8662:23266;;;:::i;:::-;;17422:191;;8662:23266;17392:231;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;17179:39;8662:23266;;;;;;;;:::i;:::-;;;;17664:189;;;8662:23266;;;:::i;:::-;;17664:189;;8662:23266;17634:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;17228:32;8662:23266;;;;;;;;:::i;:::-;;;;17904:189;;;8662:23266;;;:::i;:::-;;17904:189;;8662:23266;17874:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;18144:189;;;8662:23266;;;:::i;:::-;;18144:189;;8662:23266;18114:229;:::i;:::-;;;;;:::i;:::-;;19041:27;;:::i;:::-;8662:23266;;;;;;;;:::i;:::-;;;18426:657;;;8662:23266;;18426:657;;;:::i;:::-;8662:23266;;2805:2;18426:657;;8662:23266;;18426:657;;;3497:3;8662:23266;;18426:657;;3497:3;8662:23266;;18426:657;;3410:3;8662:23266;;18426:657;;3410:3;3055:7;18426:657;;;8662:23266;18903:2;18426:657;;;3455:2;8662:23266;18426:657;;;3455:2;18426:657;;;8662:23266;;;18366:727;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;18366:727;;;;;8662:23266;3541:10;;;18354:739;3541:10;;;18354:739;3541:10;;;17128:41;3541:10;;;17128:41;3541:10;;;17179:39;3541:10;;;17179:39;3541:10;;;17228:32;3541:10;;;17228:32;3541:10;17270:34;3541:10;;;17270:34;3541:10;8662:23266;;18366:727;8662:23266;;;;;;;;;18366:727;-1:-1:-1;;;8662:23266:88;;;;;;;;17281:23;8662:23266;;;;;;;;;;;17140:29;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;22520:12;;;;22528:3;22520:12;;8662:23266;22520:12;;8662:23266;;1220:14:3;;8662:23266:88;22520:12;;;;;;;;;;;;;;;;8662:23266;22498:35;;;;:::i;:::-;22482:51;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;22581:12;;;22589:3;8662:23266;22581:12;;8662:23266;22581:12;;;;;;;;;;;;;;;8662:23266;22559:35;;;;:::i;:::-;22543:51;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;22642:12;;;;22650:3;22642:12;;8662:23266;22642:12;;8662:23266;22642:12;;;;;;;;;;;;;;;8662:23266;22620:35;;;;:::i;:::-;22604:51;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;;;;;;22719:12;;;;;8662:23266;22719:12;;8662:23266;22719:12;;;;;;;;;;;;;;;;8662:23266;22704:27;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;;;22756:12;;;22589:3;8662:23266;22756:12;;8662:23266;22756:12;8662:23266;22756:12;8662:23266;22756:12;;;;;;;;;;;;8662:23266;22741:27;;;;;:::i;:::-;8662:23266;;;;;;22793:12;;;;8662:23266;22793:12;;8662:23266;22793:12;;;;;;;;;;;;;;;;8662:23266;22778:27;;;;;:::i;:::-;8662:23266;;;;;;;;;;:::i;:::-;;;;;;1220:14:3;;;8662:23266:88;;;22878:12;;;;;8662:23266;22878:12;;8662:23266;22878:12;;;;;;;;;;;;;;;;8662:23266;22870:24;;;;;;8662:23266;;-1:-1:-1;;;22870:24:88;;;8662:23266;;;;22870:24;;8662:23266;;1220:14:3;;;8662:23266:88;;;;;22870:24;8662:23266;1220:14:3;8662:23266:88;22870:24;;;;;;;;;;;;;8662:23266;;;;;22912:12;;;22589:3;8662:23266;22912:12;;8662:23266;22912:12;;;;;;;;;;;;;;;;8662:23266;22904:24;;;;;;8662:23266;;;22904:24;;;;8662:23266;;22904:24;;8662:23266;1220:14:3;;;;8662:23266:88;22904:24;;1220:14:3;22904:24:88;;;;;;;;;;;;;;8662:23266;;;;;22946:12;;;8662:23266;22946:12;;8662:23266;22946:12;;;;;;;;;;;;;;;;8662:23266;22938:24;;;;;;8662:23266;;;;22938:24;;;8662:23266;;22938:24;;8662:23266;1220:14:3;;;;8662:23266:88;22938:24;;1220:14:3;22938:24:88;;;;;;;;;;;;;;8662:23266;22973:16;;;;;23025;22973;;:::i;:::-;8662:23266;22999:16;;;;:::i;:::-;8662:23266;23025:16;:::i;:::-;8662:23266;;;;;;;:::i;:::-;23109:12;8662:23266;;23085:61;;;;8662:23266;23157:33;;;;;8662:23266;;-1:-1:-1;;;23157:33:88;;-1:-1:-1;;;8662:23266:88;23157:33;;8662:23266;;;;;;;;;;23157:33;;;;;;;;;;;;;;8662:23266;-1:-1:-1;23200:22:88;540:42:1;8662:23266:88;;-1:-1:-1;;;23200:53:88;;540:42:1;;8662:23266:88;23200:53;;8662:23266;540:42:1;;;;;;;;8662:23266:88;;;;;540:42:1;;8662:23266:88;;;;23200:53;;;;;;;;8662:23266;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;23200:53;;;;;;;;;;;;;:::i;:::-;;;;23157:33;;;;;;;;;:::i;:::-;8662:23266;;23157:33;;;;;;;22938:24;;;;:::i;:::-;8662:23266;;22938:24;;;;;8662:23266;;;22946:12;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22946:12:88;;;;;;;;;8662:23266;;;;;;;;;22904:24;;;;:::i;:::-;8662:23266;;22904:24;;;;8662:23266;;;;22904:24;8662:23266;;;;;;;;;22904:24;8662:23266;;;22912:12;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22912:12:88;;;;;;;;22870:24;;;;:::i;:::-;8662:23266;;22870:24;;;;22878:12;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22878:12:88;;;;;;;;;22793;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22793:12:88;;;;;;;;22756;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22756:12:88;;;;;;;;22719;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22719:12:88;;;;;;;;;22642;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;22620:35:88;1220:14:3;;:::i;:::-;22642:12:88;;;;;;;22581;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;22559:35:88;1220:14:3;;:::i;:::-;22581:12:88;;;;;;;22520;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;22498:35:88;1220:14:3;;:::i;:::-;22520:12:88;;;;;;;8662:23266;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;:::i;:::-;;;:::i;:::-;31174:14;3541:10;-1:-1:-1;;;;;8662:23266:88;;30405:38;;;;;8662:23266;;-1:-1:-1;;;30405:38:88;;8662:23266;;30405:38;;8662:23266;;;;;;;;;;;30405:38;;;;;;;;8662:23266;30536:64;;8662:23266;30536:64;;;:::i;:::-;30643:8;8662:23266;;;-1:-1:-1;;;30643:25:88;;8662:23266;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;-1:-1:-1;;;;;8662:23266:88;30643:25;;;;;;;;;;;8662:23266;;;;;;;;;;;;;;30700:11;;;8662:23266;30700:11;;8662:23266;;;;;;:::i;:::-;30700:11;:9;;:11;;;;;;;;;;;;;;8662:23266;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;30715:43:88;;8662:23266;;;;;;30715:43;;8662:23266;;30715:43;;;:::i;:::-;;30700:9;;30715:43;;;;;;;8662:23266;30715:43;8662:23266;30715:43;;;;;8662:23266;;;;;;;;;;;30715:52;;;8662:23266;30715:52;;8662:23266;;;;;;:::i;:::-;30715:52;30700:9;;30715:52;;;;;;;;;;8662:23266;30700:67;;8662:23266;;30928:46;30984:49;30878:19;30870:48;8662:23266;;30878:19;;30870:48;:::i;:::-;30936:17;30928:46;:::i;:::-;30992:15;30984:49;:::i;:::-;30643:8;8662:23266;;;-1:-1:-1;;;23555:25:88;;8662:23266;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;23555:25;;;;;;;:48;:25;;;;;;;8662:23266;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;23555:48:88;;8662:23266;;;;;;23555:48;;;:::i;:::-;;30700:9;;23555:48;;;;;;;;;;;8662:23266;23637:29;;8662:23266;23637:29;;;:::i;:::-;8662:23266;;;;;;:::i;:::-;;;;23512:173;;8662:23266;30643:8;8662:23266;;;-1:-1:-1;;;23750:25:88;;8662:23266;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;23750:25;;;;;;;:45;:25;;;;;;;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;23750:45:88;;8662:23266;;;;;;23750:45;;;:::i;:::-;;30700:9;;23750:45;;;;;;;;;;;8662:23266;23829:26;;;;:::i;:::-;8662:23266;;;;;;:::i;:::-;;;;23707:167;;8662:23266;;;;;;;:::i;:::-;1671:64:2;;;8662:23266:88;;;;;;:::i;:::-;;;;23476:608;;8662:23266;;;23476:608;;8662:23266;23476:608;;;;;3497:3;23476:608;;;;;;234:9:40;8662:23266:88;23476:608;;;;8662:23266;23476:608;;3055:7;23476:608;;;8662:23266;;;;;;;:::i;:::-;;;23444:679;8662:23266;23444:679;;234:9:40;8662:23266:88;;;;;;:::i;:::-;;;;;;234:9:40;;8662:23266:88;234:9:40;;;;24185:18:88;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;24433:33;;;;;8662:23266;;-1:-1:-1;;;24433:33:88;;-1:-1:-1;;;8662:23266:88;24433:33;;8662:23266;;;;;;;;;;;;24433:33;;;;;;;;234:9:40;-1:-1:-1;;24476:20:88;234:9:40;-1:-1:-1;;;;;8662:23266:88;;24476:45;;;;;8662:23266;;;;;;;;;;;24476:45;;8662:23266;234:9:40;;24476:45:88;8662:23266;;24476:45;;234:9:40;8662:23266:88;;;;;;;;234:9:40;8662:23266:88;;234:9:40;;;;;;;;;;;;;;;;;24476:45:88;;;;;;;;;;;;;;;;;;;234:9:40;8662:23266:88;;;;2508:20:60;;8662:23266:88;2508:20:60;;;8662:23266:88;;;;;;;;;:::i;:::-;2508:20:60;779:22:61;;2508:20:60;;;;;;:::i;:::-;8662:23266:88;2498:31:60;;8662:23266:88;;;;;;24476:45;;;;;:::i;:::-;8662:23266;;24476:45;;;234:9:40;;;;;;;;;8662:23266:88;234:9:40;;;;;;;;;;;;;;;:::i;:::-;8662:23266:88;;234:9:40;;;;;;;;;;;;;;;24433:33:88;;;;:::i;:::-;8662:23266;;24433:33;;;;234:9:40;8662:23266:88;;;;;;;:::i;:::-;;;;;;:::i;:::-;234:9:40;;:::i;:::-;;;;;:::i;:::-;;;;;;8662:23266:88;234:9:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23750:45:88;23829:26;23750:45;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:25;;;;;;;;;;;;;:::i;:::-;;;;23555:48;8662:23266;23555:48;;;23637:29;23555:48;;;;;;;;;;:::i;:::-;;;;;8662:23266;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;30715:52;;;;8662:23266;30715:52;;8662:23266;30715:52;;;;;;8662:23266;30715:52;;;:::i;:::-;;;8662:23266;;;;540:42:1;30715:52:88;;;;;;;-1:-1:-1;30715:52:88;;:43;;;;;;;;;;;;;:::i;:::-;;;;30700:11;;;;;8662:23266;30700:11;;8662:23266;30700:11;;;;;;8662:23266;30700:11;;;:::i;:::-;;;8662:23266;;;;540:42:1;;;30715:43:88;30700:11;;;;;-1:-1:-1;30700:11:88;;30643:25;8662:23266;30643:25;;;;8662:23266;30643:25;;;;;;;;;;:::i;:::-;;;;;;30405:38;8662:23266;30405:38;;;30536:64;30405:38;;:::i;:::-;;;;;;8662:23266;;;;;;;;;;;;;;;;;:::i;:::-;;;19495:33;;;;;-1:-1:-1;;;;;19495:33:88;;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;19570:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19649:26;;;;:::i;:::-;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;19716:201;;;8662:23266;;;;;19878:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;20229:39;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19716:201;;8662:23266;19686:241;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;;:::i;:::-;;;;19968:187;;;;8662:23266;;;:::i;:::-;;19968:187;;8662:23266;19938:227;;;:::i;:::-;;;;;:::i;:::-;;20229:39;:::i;:::-;8662:23266;;;20302:42;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8662:23266;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;8662:23266:88;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2899:18:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;2416:18:8;8662:23266:88;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2416:18:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;-1:-1:-1;8662:23266:88;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;;:::i;:::-;;;;;;;;;;;;31877:42;8662:23266;25793:9;8662:23266;;;;:::i;:::-;;3541:10;31904:14;3541:10;8662:23266;31877:42;;:::i;:::-;8662:23266;;;;;;;;25851:8;8662:23266;;;;;;;;;25851:45;;;;;;;;;;;;;;8662:23266;25851:45;;8662:23266;;;;;:::i;:::-;25851:45;;;;;;;;;8662:23266;25851:45;;;8662:23266;;;;;;;;;;;;;;;;;;25988:29;;;8662:23266;25988:29;;:::i;:::-;8662:23266;;;;;;;;;;26036:22;;;;;;;;;8662:23266;26036:22;;;8662:23266;26036:26;;8662:23266;;26183:36;8662:23266;26139:9;8662:23266;;26183:36;;:::i;:::-;26139:81;;;;;;8662:23266;;;;;;;;;;;;;;;;;26139:81;;8662:23266;;26139:81;;8662:23266;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;26139:81;;;;;;;;;;;8662:23266;26139:81;;;;;8662:23266;;31877:42;8662:23266;25793:9;8662:23266;;;;:::i;:::-;;3541:10;31904:14;3541:10;8662:23266;31877:42;;:::i;:::-;8662:23266;;;;;;;25851:8;8662:23266;;;;;26477:45;;;;;;;;;;8662:23266;26477:45;;8662:23266;;;;;:::i;:::-;26477:45;;;;;;;;;8662:23266;26477:45;;;8662:23266;26477:74;;8662:23266;;26593:22;26646:66;26593:22;;;26585:51;26593:22;;26585:51;:::i;8662:23266::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;26477:45;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;;26477:45:88;;;;;;;;26139:81;;;;:::i;:::-;;;;8662:23266;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;26036:22;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;;26036:22:88;;;;;;;;8662:23266;;;;;;;;;;;;25851:45;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;;25851:45:88;;;;;;;;;8662:23266;;;;;;;;;;;;;2592:26:8;8662:23266:88;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2592:26:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;31174:14;8662:23266;;:::i;:::-;31174:14;3541:10;-1:-1:-1;;;;;8662:23266:88;;;;31174:14;:::i;8662:23266::-;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3497:3;;;8662:23266;17074:43;;8662:23266;;;17140:29;;;;;;;-1:-1:-1;;;;;17140:29:88;;;;;;;;;;;;8662:23266;17140:29;;;;;8662:23266;;;;;;-1:-1:-1;;;;;3541:10:88;;17128:41;3541:10;;;17128:41;3541:10;8662:23266;;17190:28;;;;;;;-1:-1:-1;;;;;17190:28:88;;;;;;;;;;;;8662:23266;17190:28;;;;;8662:23266;;;;;;-1:-1:-1;;;;;3541:10:88;;17179:39;3541:10;;;17179:39;3541:10;8662:23266;;17239:21;;;;;;;-1:-1:-1;;;;;17239:21:88;;;;;;;;;;;;8662:23266;17239:21;;;;;8662:23266;;;;;;-1:-1:-1;;;;;3541:10:88;;17228:32;3541:10;;;17228:32;3541:10;8662:23266;;17281:23;;;;;;;-1:-1:-1;;;;;17281:23:88;;;;;;;;;;;;8662:23266;17281:23;;;;;;17270:34;3541:10;;-1:-1:-1;;;;;;3541:10:88;-1:-1:-1;;;;;8662:23266:88;;3541:10;;;8662:23266;;;;-1:-1:-1;;;;;8662:23266:88;;;17355:26;;:::i;:::-;17128:41;8662:23266;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;:::i;:::-;;;;;17422:191;;8662:23266;;;:::i;:::-;;17422:191;;8662:23266;17392:231;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;17179:39:88;8662:23266;;;;-1:-1:-1;;;;;8662:23266:88;;;;:::i;:::-;;;;;17664:189;;8662:23266;;;:::i;:::-;;17664:189;;8662:23266;17634:229;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;17228:32:88;8662:23266;;;;-1:-1:-1;;;;;8662:23266:88;;;;:::i;:::-;;;;;17904:189;;8662:23266;;;:::i;:::-;;17904:189;;8662:23266;17874:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;18144:189;;8662:23266;;;:::i;:::-;;18144:189;;8662:23266;18114:229;;;:::i;:::-;;;;;:::i;:::-;;19041:27;;:::i;:::-;8662:23266;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;18426:657;;8662:23266;18426:657;8662:23266;;;18426:657;;;:::i;:::-;8662:23266;;2805:2;18426:657;;8662:23266;;18426:657;;;3497:3;8662:23266;;18426:657;;3497:3;8662:23266;18426:657;;;3410:3;8662:23266;;18426:657;;3410:3;3055:7;8662:23266;18426:657;;8662:23266;18903:2;18426:657;;;3455:2;;8662:23266;;3455:2;:::i;:::-;8662:23266;;18426:657;;;3455:2;18426:657;;;8662:23266;;;18366:727;;;;;;;;;;-1:-1:-1;;;;;18366:727:88;;;;;;;;;;;;;:::i;:::-;;;8662:23266;18366:727;;;;;8662:23266;;;;;;3541:10;-1:-1:-1;;;;;3541:10:88;;18354:739;3541:10;;;18354:739;3541:10;;-1:-1:-1;;;;;3541:10:88;;17128:41;3541:10;;;17128:41;3541:10;;-1:-1:-1;;;;;3541:10:88;;17179:39;3541:10;;;17179:39;3541:10;;-1:-1:-1;;;;;3541:10:88;;17228:32;3541:10;;;17228:32;3541:10;-1:-1:-1;;;;;3541:10:88;;17270:34;3541:10;;;17270:34;3541:10;8662:23266;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;:::i;:::-;24775:19;;:::i;:::-;24820:32;24804:48;24820:32;;;:::i;24804:48::-;;24651:3;24915:19;8662:23266;;;;;:::i;:::-;24792:1;8662:23266;;;;1220:14:3;;;8662:23266:88;24915:19;:::i;8662:23266::-;;;;;;;;;;;;;;;;;;2747:18:8;8662:23266:88;;;;;;;;;2747:18:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;8662:23266:88;;;;;;;;;3040:16:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;29455:8;8662:23266;;;-1:-1:-1;;;29455:24:88;;;8662:23266;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;29455:24;;;;;;;;;;;8662:23266;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;29493:9;8662:23266;;29555:10;;29533:33;29555:10;29533:33;:::i;:::-;29493:74;;;;;;8662:23266;;;;;;;;;;;;;;29493:74;;;8662:23266;29493:74;;8662:23266;;;;;;:::i;:::-;29493:74;8662:23266;;;29493:74;;;;;;;;;;;;8662:23266;;;29455:8;8662:23266;;;;;;29585:24;;;;;;;;;;;;;;;;;8662:23266;;;;;;29585:41;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;29585:24;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;;;;;:::i;:::-;29585:24;;;;;;;;;29493:74;;;;;;;:::i;:::-;8662:23266;;29493:74;;;;;;8662:23266;;;;;;;;;;;;29455:24;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;;;;:::i;:::-;29455:24;;;;;;;;;8662:23266;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22199:11;22227:12;22222:73;22248:3;8662:23266;;;;22241:5;;;;;8662:23266;;-1:-1:-1;3541:10:88;;;22267:17;3541:10;;;;;;;;;;;8662:23266;22267:17;;:::i;:::-;22248:3;8662:23266;;;;;;;;22227:12;;;8662:23266;-1:-1:-1;;;8662:23266:88;;;;;;;;3541:10;8662:23266;;;;;3541:10;;8662:23266;3541:10;8662:23266;3541:10;22241:5;;;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;:::i;:::-;29788:21;;8662:23266;;;:::i;:::-;-1:-1:-1;31904:14:88;3541:10;-1:-1:-1;;;;;8662:23266:88;3541:10;31877:42;;8662:23266;;31877:42;;:::i;:::-;8662:23266;;;;;;;29888:9;8662:23266;;29888:40;;;;;;8662:23266;;;;;;;;;;;;29888:40;;;;;;;;;;8662:23266;29962:21;;31877:42;29962:21;;8662:23266;;;:::i;:::-;;31904:14;3541:10;8662:23266;31877:42;;:::i;:::-;8662:23266;;;;;;;;;;;;;;30068:43;8662:23266;;30144:70;30167:26;;;;:::i;:::-;30152:41;30144:70;:::i;8662:23266::-;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;29888:40;;;31877:42;29888:40;;;:::i;:::-;;;;;8662:23266;;;;;;;;;;;;;;;;;;2272:16:8;8662:23266:88;;;;;;;;;2272:16:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;14059:26;;:::i;:::-;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;;14126:184;;;8662:23266;;;;;;;;:::i;:::-;;14126:184;;8662:23266;14096:224;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;;:::i;:::-;;;;14361:186;;;;8662:23266;;;;;;;;;14514:18;8662:23266;;;;;;;14514:18;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14361:186;;8662:23266;14331:226;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;8662:23266:88;;;14580:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8662:23266;;3541:10;-1:-1:-1;;;;;3541:10:88;;14568:54;3541:10;;;14568:54;3541:10;8662:23266;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9356:41;8662:23266;;-1:-1:-1;;;;;8662:23266:88;;:::i;:::-;9155:1;8662:23266;;9155:1;9167:25;8662:23266;;;;;;;;9167:25;:::i;:::-;8662:23266;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3497:3;;;6353:58;;;8662:23266;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;2914:2;6293:412;;;8662:23266;3055:7;8662:23266;6293:412;;8662:23266;2805:2;6293:412;;;3410:3;8662:23266;6293:412;;8662:23266;3410:3;8662:23266;6293:412;;3410:3;-1:-1:-1;;;;;8662:23266:88;;;9356:41;:::i;:::-;8662:23266;3541:10;10268:38;10163:82;-1:-1:-1;;;;;3541:10:88;;;;;9339:58;3541:10;;;9339:58;3541:10;;;9408:54;3541:10;;;9408:54;3541:10;;;9472:56;3541:10;;;9472:56;3541:10;;;9538:66;3541:10;;;9538:66;3541:10;;;9614:66;3541:10;;;9614:66;3541:10;;;9690:70;3541:10;;;9690:70;3541:10;;;9770:68;3541:10;;;9770:68;3541:10;;;9848:60;3541:10;;;9848:60;3541:10;;;9918:53;3541:10;;;9918:53;3541:10;;;8662:23266;3541:10;;;8662:23266;3541:10;10163:82;:::i;10268:38::-;8662:23266;3541:10;;;10256:50;3541:10;;;10256:50;3541:10;;;10316:55;3541:10;;;10316:55;3541:10;;;10381:53;3541:10;;;10381:53;3541:10;;;10444:48;3541:10;;;10444:48;3541:10;10502:46;3541:10;;;10502:46;3541:10;24804:48;24775:19;;:::i;:::-;8662:23266;;:::i;:::-;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;779:22:61;;;480:2;;779:22;;695:118;;779:22;8662:23266:88;779:22:61;:::i;:::-;480:2;8662:23266:88;;;;;;:::i;:::-;2914:2;3497:3;;-1:-1:-1;;;;;719:84:61;;;480:2;;;8662:23266:88;719:84:61;;8662:23266:88;;;;;695:118:61;;;;;;;480:2;;8662:23266:88;;480:2:61;;8662:23266:88;480:2:61;;;;;;;;8662:23266:88;480:2:61;;;8662:23266:88;480:2:61;;;;:::i;:::-;695:118;779:22;;695:118;;;;;;:::i;:::-;8662:23266:88;;;;;;:::i;:::-;;3410:3;;837:51:61;;;8662:23266:88;24804:48;;;;;:::i;:::-;;3410:3;24915:19;8662:23266;;;;;:::i;:::-;9155:1;8662:23266;;;;1220:14:3;;;8662:23266:88;24915:19;:::i;:::-;8662:23266;;24945:21;;;;;;8662:23266;;-1:-1:-1;;;24945:21:88;;8662:23266;;24945:21;;8662:23266;9155:1;1220:14:3;;;8662:23266:88;24945:21;8662:23266;1220:14:3;8662:23266:88;24945:21;;;;;;;;;;8662:23266;;;;;;;;;:::i;:::-;25033:12;8662:23266;;25009:61;;8662:23266;25146:38;;;;;8662:23266;;-1:-1:-1;;;25146:38:88;;-1:-1:-1;;;8662:23266:88;25146:38;;8662:23266;25146:38;8662:23266;1220:14:3;8662:23266:88;25146:38;;;;;;;;;;;;;;;;8662:23266;-1:-1:-1;9690:70:88;540:42:1;8662:23266:88;;-1:-1:-1;;;25194:53:88;;540:42:1;;8662:23266:88;25194:53;;8662:23266;540:42:1;;;;;;;;8662:23266:88;;;;;540:42:1;;8662:23266:88;;;;25194:53;;;;;;;;8662:23266;25257:14;;;;;;;8662:23266;;;;;;;;;;;;;25257:14;;;;;;;;;;8662:23266;;;25194:53;;;;;;-1:-1:-1;25194:53:88;;;;;;:::i;:::-;;;25146:38;;;;;;;;;:::i;:::-;8662:23266;;25146:38;;;;;;;24945:21;;;;;;:::i;:::-;8662:23266;24945:21;;;;8662:23266;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;779:22:61;;;8662:23266:88;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;:::i;:::-;;;;;;;:::o;:::-;-1:-1:-1;;;;;8662:23266:88;;;;779:22:61;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;779:22:61;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;1671:64:2;;8662:23266:88;;;;1671:64:2;;;;:::o;1819:584::-;1873:7;8662:23266:88;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;8662:23266:88;;;;;;;2196:43:2;;;;8662:23266:88;;;1671:64:2;;;8662:23266:88;1671:64:2;;8662:23266:88;;2196:43:2;;;;;:::i;:::-;2086:175;1671:64;8662:23266:88;;2086:175:2;;1671:64;2196:43;2086:175;;8662:23266:88;;;;;;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;:::i;:::-;8662:23266:88;;;;;;;:::i;:::-;1671:64:2;;;;2196:43;1671:64;;;;2196:43;8662:23266:88;;;2312:27:2;;1671:64;;;;2312:27;2196:43;1671:64;2312:27;;1671:64;:::i;:::-;8662:23266:88;1671:64:2;;;8662:23266:88;;;;;;;14278:17;8662:23266;;;;;;;;;;;14278:17;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;13407:16;8662:23266;;;;;;;;;;;13407:16;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;13646:17;8662:23266;;;;;;;;;;;13646:17;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;15309:18;8662:23266;;;;;;;;;;;15309:18;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;18061:17;8662:23266;;;;;;;;;;;18061:17;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;18301:17;8662:23266;;;;;;;;;;;18301:17;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;-1:-1:-1;8662:23266:88;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;3541:10;8662:23266;;3541:10;;;;;;:::o;:::-;8662:23266;;;;3541:10;;;;;8662:23266;3541:10;;8662:23266;;14342:1;3541:10;;;;;;;:::o;:::-;8662:23266;;22615:1;3541:10;;;;;;;:::o;:::-;8662:23266;;21681:1;3541:10;;;;;;;:::o;:::-;8662:23266;;11707:1;3541:10;;;;;;;:::o;:::-;8662:23266;;11971:1;3541:10;;;;;;;:::o;:::-;8662:23266;;12239:1;3541:10;;;;;;;:::o;:::-;8662:23266;;13233:1;3541:10;;;;;;;:::o;:::-;8662:23266;;13472:1;3541:10;;;;;;;:::o;8662:23266::-;;;;;;;:::i;:::-;1671:64:2;8662:23266:88;;-1:-1:-1;8662:23266:88;;;;:::o;2805:2::-;8662:23266;;;;;;:::i;:::-;2805:2;8662:23266;2805:2;-1:-1:-1;2805:2:88;;-1:-1:-1;2805:2:88;;;;;;:::o;3455:::-;;;;;;;;:::o;:::-;8662:23266;;;-1:-1:-1;3455:2:88;;;;;-1:-1:-1;3455:2:88;;;-1:-1:-1;3455:2:88;;;:::o;7651:1007::-;8662:23266;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3455:2;8662:23266;;;;;;3055:7;8662:23266;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7837:27;;;:::i;:::-;8662:23266;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3497:3;;;8662:23266;7988:58;;8662:23266;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;7927:700;;8662:23266;7927:700;;3455:2;2857:7;8662:23266;7927:700;;8662:23266;;;7927:700;;3497:3;2914:2;8662:23266;7927:700;;3497:3;2805:2;8662:23266;7927:700;;3410:3;;8662:23266;7927:700;;3410:3;7927:700;;8662:23266;7927:700;;3455:2;7927:700;;3455:2;7927:700;;8662:23266;;7651:1007::o;4539:185:76:-;-1:-1:-1;8662:23266:88;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;-1:-1:-1;8662:23266:88;;-1:-1:-1;8662:23266:88;4618:99:76;;8662:23266:88;4539:185:76;:::o;8662:23266:88:-;;;;;;;;;:::i;:::-;14083:1;8662:23266;;;-1:-1:-1;8662:23266:88;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;:::o;:::-;779:22:61;;;;;;;;8662:23266:88;;779:22:61;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;3455:2;;;:::i;:::-;8662:23266;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;10610:3185;;8662:23266;;10770:24;;;;;;;-1:-1:-1;;;;;10770:24:88;;;;;;;;;;;;;;;;;;8662:23266;;10844:24;;;;;;;-1:-1:-1;;;;;10844:24:88;;;;;;;;;;;;10770;10844;;;;;8662:23266;;10922:26;;;;;;;-1:-1:-1;;;;;10922:26:88;;;;;;;;;;;;10770:24;10922:26;;;;;;8662:23266;;11000:25;;;;;;;-1:-1:-1;;;;;11000:25:88;;;;;;;;;;;;10770:24;11000:25;;;;;8662:23266;;11066:25;;;;;;;-1:-1:-1;;;;;11066:25:88;;;;;;;;;;;;10770:24;11066:25;;;;;8662:23266;;11129:24;;;;;;;-1:-1:-1;;;;;11129:24:88;;;;;;;;;;;;10770;11129;;;;;;8662:23266;;11197:27;;;;;;;-1:-1:-1;;;;;11197:27:88;;;;;;;;;;;;10770:24;11197:27;;;;;;8662:23266;;11259:21;;;;;;;-1:-1:-1;;;;;11259:21:88;;;;;;;;;;;;10770:24;11259:21;;;;;;8662:23266;;11317:23;;;;;;;-1:-1:-1;;;;;11317:23:88;;;;;;;;;;;;10770:24;11317:23;;;;;;8662:23266;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;11417:1;8662:23266;;10770:24;8662:23266;;;;;;;;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;11462:211;;8662:23266;;;;;;11629:29;8662:23266;;;;;;11629:29;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11462:211;;8662:23266;11430:253;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;11726:211;;8662:23266;;;;;;11893:29;8662:23266;;;;;;11893:29;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11726:211;;8662:23266;11694:253;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;11990:215;;8662:23266;;;;;;12159:31;8662:23266;;;;;;12159:31;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11990:215;;8662:23266;11958:257;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;12258:213;;8662:23266;;;;;;12426:30;8662:23266;;;;;;12426:30;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12258:213;;8662:23266;12226:255;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;12524:189;;8662:23266;;;;;;12680:18;8662:23266;;;;;;12680:18;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12524:189;;8662:23266;12492:231;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;12766:187;;8662:23266;;;;;;12921:17;8662:23266;;;;;;12921:17;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12766:187;;8662:23266;12734:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;13006:193;;8662:23266;;;;;;13164:20;8662:23266;;;;;;13164:20;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13006:193;;8662:23266;12974:235;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;10770:24;8662:23266;13252:186;;8662:23266;;;:::i;:::-;;13252:186;;8662:23266;13220:228;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;10770:24;8662:23266;13491:187;;8662:23266;;;:::i;:::-;;13491:187;;8662:23266;13459:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;13716:40;;;;;;;;;-1:-1:-1;;;;;13716:40:88;;;;;8662:23266;13716:40;;;;8662:23266;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;13716:40;;10770:24;13716:40;;;;;13699:57;3541:10;;-1:-1:-1;;;;;;3541:10:88;-1:-1:-1;;;;;8662:23266:88;;;;3541:10;;;;;8662:23266;10610:3185::o;8662:23266::-;779:22:61;;;;;;8662:23266:88;779:22:61;8662:23266:88;;779:22:61;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3455:2;;;;;8662:23266;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3455:2;;;;:::i;:::-;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14661:1518::-;8662:23266;;;;14820:29;;;;;;;-1:-1:-1;;;;;14820:29:88;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;14891:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;14956:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;15014:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;15086:26;;:::i;:::-;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;15153:189;;;8662:23266;;;;;:::i;:::-;15153:189;;;8662:23266;15123:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;;:::i;:::-;;;;15393:187;15153:189;15393:187;;8662:23266;;;:::i;:::-;15393:187;;;8662:23266;15363:227;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;;:::i;:::-;;;;15631:187;15153:189;15631:187;;8662:23266;;;:::i;:::-;15631:187;;;8662:23266;15601:227;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;15869:186;15153:189;15869:186;;8662:23266;;;:::i;:::-;15869:186;;;8662:23266;15839:226;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;8662:23266:88;;;16105:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;16158:14;;14661:1518;:::o;16105:42::-;8662:23266;;;;;;;;;15014:21;8662:23266;;;;;;;;;15014:21;-1:-1:-1;;;8662:23266:88;;;;;;;;14956:23;8662:23266;;;;;;;;;14956:23;-1:-1:-1;;;8662:23266:88;;;;;;;;14891:28;8662:23266;;;;;;;;;14820:29;8662:23266;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;24792:1;8662:23266;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;1220:14:3:-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;1220:14:3:o;540:42:1:-;;;;;;;;;;;;1671:64:2;;;:::i;:::-;779:22:61;-1:-1:-1;;540:42:1;;;;;8662:23266:88;;;;;;:::i;:::-;540:42:1;;;;;;;;;;;;;:::o;581:314:61:-;-1:-1:-1;;;;;581:314:61;8662:23266:88;;:::i;:::-;;695:118:61;8662:23266:88;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;779:22:61;;;480:2;;779:22;;;;;:::i;:::-;480:2;8662:23266:88;;;;;;:::i;:::-;2914:2;3497:3;;-1:-1:-1;;;;;779:22:61;719:84;;480:2;;;719:84;;;8662:23266:88;;;;;695:118:61;;;779:22;695:118;;;480:2;;8662:23266:88;480:2:61;;;8662:23266:88;480:2:61;;8662:23266:88;480:2:61;;;;8662:23266:88;480:2:61;;;;;;;;;:::i;:::-;695:118;779:22;;695:118;;;;;;:::i;:::-;8662:23266:88;;;;;:::i;:::-;438:1:61;3410:3:88;;779:22:61;837:51;;8662:23266:88;581:314:61;:::o;8662:23266:88:-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1220:14:3;;;;;:::i;:::-;8662:23266:88;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;234:9:40:-;8662:23266:88;;;;;;:::i;:::-;234:9:40;8662:23266:88;;:::i;:::-;234:9:40;;;8662:23266:88;;:::i;:::-;234:9:40;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;8662:23266:88;;;234:9:40;;;;;;;;;;;:::i;:::-;;;;;;;;;8662:23266:88;-1:-1:-1;;;;;234:9:40;;;;8662:23266:88;234:9:40;;;8662:23266:88;;;;234:9:40;;;;8662:23266:88;234:9:40;;;8662:23266:88;234:9:40;;;;;;;;;;;;;;:::i;:::-;;;;;;;8662:23266:88;234:9:40;;8662:23266:88;;234:9:40;;8662:23266:88;234:9:40;:::o;8662:23266:88:-;;;;:::o;:::-;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;30227:813;-1:-1:-1;;;;;8662:23266:88;;;;;;30405:38;;;;;8662:23266;;;;;;;;;;;30405:38;;30441:1;8662:23266;30441:1;30405:38;;;;;;;;;;8662:23266;30405:38;;;;;;;;;;;;;;30227:813;30536:64;;;;;;:::i;:::-;8662:23266;;;;;;;;;30643:8;8662:23266;;;;;;;;;;;30643:25;;;;;;;;;;;;;30227:813;30700:9;;8662:23266;;;;;;30700:11;;;;8662:23266;;;;;30700:11;;;;;;8662:23266;;;;;;:::i;:::-;30700:11;;;;;;;;;;;;;;;;;30227:813;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;30715:43:88;;8662:23266;;;;;;30715:43;;8662:23266;30715:43;;;;:::i;:::-;;;;;;;;;;;;8662:23266;30715:43;;;;;;;;30227:813;8662:23266;;;30715:52;;;;;;;;;;;;8662:23266;;;;;;:::i;:::-;30715:52;;;;;;;;;;;;30227:813;30700:67;;8662:23266;;30878:19;;;;30870:48;30928:46;30878:19;30984:49;30878:19;;;30870:48;:::i;8662:23266::-;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;30715:52;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;30715:52:88;;;;;;;;;;8662:23266;;;;;;;;;;30715:43;;;;;;;;;;;;;;:::i;:::-;;;;;30700:11;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;;;;30715:43:88;30700:11;;;;;;;30643:25;;;;;;;;;;;;;;:::i;:::-;;;;;30405:38;;;30536:64;30405:38;;:::i;:::-;;;;;8662:23266;;;;;;;;;31202:541;;8662:23266;;:::i;:::-;;;;;;;;;;3541:10;;-1:-1:-1;;;;;3541:10:88;;;;31366:44;3541:10;;;31366:44;3541:10;31420:42;3541:10;;;31420:42;3541:10;8662:23266;;;;;;;;;;31500:25;;-1:-1:-1;31500:25:88;-1:-1:-1;31500:25:88;;;;;;;;;;;;;;:55;:25;;;;;31202:541;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;31500:55:88;;8662:23266;31500:40;;8662:23266;;;;;31500:25;:55;;;:::i;:::-;;;;;;;;;;;;;;;31202:541;8662:23266;;;;31420:42;8662:23266;;;;;;;;;;31606:17;;;;;;;;;31500:25;31606:17;;8662:23266;;;;;;:::i;:::-;31606:17;;;;;;;;;;;;;;;;31202:541;8662:23266;;;;;;;;;;;31589:35;;31500:25;31589:35;;8662:23266;31589:35;;;;;;;;;;;31202:541;31643:9;;;8662:23266;31643:9;;;8662:23266;;;-1:-1:-1;;;;;31668:19:88;;;;;8662:23266;;31689:27;;;;8662:23266;;31718:17;;8662:23266;31635:101;;;;;31202:541;:::o;31589:35::-;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;540:42:1;;8662:23266:88;;;;;540:42:1;8662:23266:88;;;;;;;540:42:1;8662:23266:88;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;:::i;:::-;;;;;31589:35;;;;;;8662:23266;;;;;;;;;;;31606:17;;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;;;31606:17:88;;;;;;;;;8662:23266;;;;;;;;;31500:55;8662:23266;31500:55;;;;;;;;;;;;;:::i;:::-;;;;:25;;;;;;;;;;;;;;:::i;:::-;;;;;;8662:23266;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":89780,"length":20},{"start":95699,"length":20},{"start":100213,"length":20},{"start":107752,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":62100,"length":20},{"start":64281,"length":20},{"start":64855,"length":20},{"start":88657,"length":20},{"start":110756,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":53310,"length":20},{"start":54081,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":119066,"length":20},{"start":150479,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":74318,"length":20},{"start":88295,"length":20},{"start":110258,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":8900,"length":20},{"start":8980,"length":20},{"start":9064,"length":20},{"start":9245,"length":20},{"start":9410,"length":20},{"start":28443,"length":20},{"start":29129,"length":20},{"start":38112,"length":20},{"start":52979,"length":20},{"start":60329,"length":20},{"start":60917,"length":20},{"start":61790,"length":20},{"start":63848,"length":20},{"start":64135,"length":20},{"start":64685,"length":20},{"start":67735,"length":20},{"start":70134,"length":20},{"start":70231,"length":20},{"start":71326,"length":20},{"start":73987,"length":20},{"start":74089,"length":20},{"start":74419,"length":20},{"start":74504,"length":20},{"start":74605,"length":20},{"start":74690,"length":20},{"start":76177,"length":20},{"start":76255,"length":20},{"start":76360,"length":20},{"start":76516,"length":20},{"start":77066,"length":20},{"start":77307,"length":20},{"start":77388,"length":20},{"start":82861,"length":20},{"start":87364,"length":20},{"start":88040,"length":20},{"start":93635,"length":20},{"start":93854,"length":20},{"start":93934,"length":20},{"start":94115,"length":20},{"start":94296,"length":20},{"start":107934,"length":20},{"start":109994,"length":20},{"start":117890,"length":20},{"start":143372,"length":20}]}}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","addStake(uint256,address)":"2d49aa1c","addValidator(address)":"4d238c8e","addValidator(address,uint256)":"fc6c1f02","createGatewayDiamond(((uint64,address[]),uint256,uint256,uint8,(uint256,address,bytes)[],uint16))":"1e334294","createMockedSubnetActorWithGateway(address)":"951759c9","createSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":"c69a0469","createSubnetActor(address,uint8,uint256,uint64,uint64,uint8)":"a0aaa285","createSubnetActor(address,uint8,uint256,uint64,uint64,uint8,uint8,uint16)":"5c2c2fed","createSubnetActorDiamondWithFaucets(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)),address,address)":"0d8d4acf","createSubnetRegistry((address,address,address,bytes4[],bytes4[]))":"c33dd9d5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fund(address,uint256)":"7b1837de","fund(address,uint256,uint8)":"eb8df052","getSubnet(address)":"dd784974","getSubnetGW(address,address)":"87105557","join(address,bytes)":"d8d52713","registerSubnet(uint256,address)":"63323eb8","registerSubnetGW(uint256,address,address)":"fbfb8927","release(uint256)":"37bdc99b","reward(uint256)":"a9fb763c","setUp()":"0a9254e4","setupValidators()":"9c821dc6","setupWhiteListMethod(address,address)":"9b211080","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","totalWeight(uint256[])":"30dd2c45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subnetRegistryAddress\",\"type\":\"address\"}],\"name\":\"SubnetRegistryCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"addValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"}],\"name\":\"addValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"networkName\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"msgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"genesisValidators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"}],\"internalType\":\"struct GatewayDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createGatewayDiamond\",\"outputs\":[{\"internalType\":\"contract GatewayDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"createMockedSubnetActorWithGateway\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"_consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_checkPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"_permissionMode\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"_activeValidatorsLimit\",\"type\":\"uint16\"}],\"name\":\"createSubnetActor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"_consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_checkPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"}],\"name\":\"createSubnetActor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createSubnetActor\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"getterFaucet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFaucet\",\"type\":\"address\"}],\"name\":\"createSubnetActorDiamondWithFaucets\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"getterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct SubnetRegistryDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createSubnetRegistry\",\"outputs\":[{\"internalType\":\"contract SubnetRegistryDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"funderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fundAmount\",\"type\":\"uint256\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"funderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fundAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum SupplyKind\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"getSubnet\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"},{\"internalType\":\"contract GatewayDiamond\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"getSubnetGW\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"registerSubnet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"},{\"internalType\":\"contract GatewayDiamond\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"registerSubnetGW\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"releaseAmount\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reward\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setupValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"}],\"name\":\"setupWhiteListMethod\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"weights\",\"type\":\"uint256[]\"}],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sum\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"IntegrationTestBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496\",\"dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"subnetRegistryAddress","type":"address","indexed":true}],"type":"event","name":"SubnetRegistryCreated","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"stakeAmount","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addStake"},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addValidator"},{"inputs":[{"internalType":"address","name":"validator","type":"address"},{"internalType":"uint256","name":"weight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addValidator"},{"inputs":[{"internalType":"struct GatewayDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"networkName","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"bottomUpCheckPeriod","type":"uint256"},{"internalType":"uint256","name":"msgFee","type":"uint256"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"struct Validator[]","name":"genesisValidators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"}]}],"stateMutability":"nonpayable","type":"function","name":"createGatewayDiamond","outputs":[{"internalType":"contract GatewayDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createMockedSubnetActorWithGateway","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"_consensus","type":"uint8"},{"internalType":"uint256","name":"_minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_checkPeriod","type":"uint64"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"},{"internalType":"enum PermissionMode","name":"_permissionMode","type":"uint8"},{"internalType":"uint16","name":"_activeValidatorsLimit","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor"},{"inputs":[{"internalType":"address","name":"_ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"_consensus","type":"uint8"},{"internalType":"uint256","name":"_minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_checkPeriod","type":"uint64"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor"},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]},{"internalType":"address","name":"getterFaucet","type":"address"},{"internalType":"address","name":"managerFaucet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActorDiamondWithFaucets","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetRegistryDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"gateway","type":"address"},{"internalType":"address","name":"getterFacet","type":"address"},{"internalType":"address","name":"managerFacet","type":"address"},{"internalType":"bytes4[]","name":"subnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"subnetManagerSelectors","type":"bytes4[]"}]}],"stateMutability":"nonpayable","type":"function","name":"createSubnetRegistry","outputs":[{"internalType":"contract SubnetRegistryDiamond","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"funderAddress","type":"address"},{"internalType":"uint256","name":"fundAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fund"},{"inputs":[{"internalType":"address","name":"funderAddress","type":"address"},{"internalType":"uint256","name":"fundAmount","type":"uint256"},{"internalType":"enum SupplyKind","name":"mode","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"fund"},{"inputs":[{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getSubnet","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"subnetAddress","type":"address"},{"internalType":"contract GatewayDiamond","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getSubnetGW","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validatorAddress","type":"address"},{"internalType":"bytes","name":"pubkey","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"join"},{"inputs":[{"internalType":"uint256","name":"collateral","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerSubnet"},{"inputs":[{"internalType":"uint256","name":"collateral","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"},{"internalType":"contract GatewayDiamond","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerSubnetGW"},{"inputs":[{"internalType":"uint256","name":"releaseAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"reward"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setupValidators","outputs":[{"internalType":"struct FvmAddress[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"address[]","name":"addresses","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"src","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setupWhiteListMethod","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"uint256[]","name":"weights","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"totalWeight","outputs":[{"internalType":"uint256","name":"sum","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"IntegrationTestBase"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692","urls":["bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496","dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55376,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49974],"CrossMsgHelper":[40781],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50204],"IntegrationTestBase":[55375],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50165],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52279],"SelectorLibrary":[56263],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52912],"TestParams":[52683],"TestRegistry":[52747],"TestSubnetActor":[53037],"TestUtils":[57051],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50211],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:31883:88","nodes":[{"id":52519,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52520,"nodeType":"ImportDirective","src":"71:28:88","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52521,"nodeType":"ImportDirective","src":"100:36:88","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52522,"nodeType":"ImportDirective","src":"137:37:88","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52525,"nodeType":"ImportDirective","src":"176:72:88","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52523,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52524,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52527,"nodeType":"ImportDirective","src":"249:61:88","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52526,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"311:56:88","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"368:102:88","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":52530,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"376:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"386:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52532,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"406:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52533,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"419:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"471:57:88","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":52535,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"479:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52545,"nodeType":"ImportDirective","src":"529:140:88","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":52537,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"537:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"547:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"559:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"575:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52541,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"591:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52542,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"599:12:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52543,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"613:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"625:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52547,"nodeType":"ImportDirective","src":"670:61:88","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":52546,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"678:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52549,"nodeType":"ImportDirective","src":"732:65:88","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":52548,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"740:16:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"798:61:88","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":52550,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"806:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"860:67:88","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":52552,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"868:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"928:56:88","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52554,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"985:57:88","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52556,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"1043:65:88","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52558,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"1109:73:88","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52560,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"1183:79:88","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1263:75:88","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52564,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1340:80:88","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52566,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1421:80:88","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52568,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1502:84:88","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52570,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1587:82:88","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52572,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1671:84:88","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"./mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":52574,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1679:27:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1756:82:88","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":52576,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"1764:23:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1839:80:88","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":52578,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1847:22:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1920:71:88","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"1928:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1992:82:88","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":52582,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"2000:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"2075:78:88","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"2083:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"2154:71:88","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52586,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2162:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"2226:67:88","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52588,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2234:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2294:69:88","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":52590,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"2302:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2364:50:88","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":52592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2372:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2415:62:88","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":56264,"symbolAliases":[{"foreign":{"id":52594,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2423:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52683,"nodeType":"ContractDefinition","src":"2479:1194:88","nodes":[{"id":52602,"nodeType":"VariableDeclaration","src":"2505:44:88","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2521:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52596,"name":"uint64","nodeType":"ElementaryTypeName","src":"2505:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2538:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52598,"name":"uint64","nodeType":"ElementaryTypeName","src":"2538:6:88","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52597,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2533:4:88","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2546:3:88","memberName":"max","nodeType":"MemberAccess","src":"2533:16:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52608,"nodeType":"VariableDeclaration","src":"2555:91:88","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2572:20:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52603,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2603:42:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2595:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52604,"name":"address","nodeType":"ElementaryTypeName","src":"2595:7:88","typeDescriptions":{}}},"id":52607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2595:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52611,"nodeType":"VariableDeclaration","src":"2652:42:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2668:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2652:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2693:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52614,"nodeType":"VariableDeclaration","src":"2700:54:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2717:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2700:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52617,"nodeType":"VariableDeclaration","src":"2760:47:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2775:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52615,"name":"uint8","nodeType":"ElementaryTypeName","src":"2760:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2805:2:88","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2813:51:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2829:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52618,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2857:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2870:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2886:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2870:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2922:44:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2938:16:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52624,"name":"string","nodeType":"ElementaryTypeName","src":"2922:6:88","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2957:9:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2972:36:88","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2987:7:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52627,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52628,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2997:11:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3014:48:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3031:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52630,"name":"uint256","nodeType":"ElementaryTypeName","src":"3014:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3068:49:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3085:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52633,"name":"uint256","nodeType":"ElementaryTypeName","src":"3068:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3123:52:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3140:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52636,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3172:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3164:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52637,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:88","typeDescriptions":{}}},"id":52640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3181:54:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3198:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52642,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3232:2:88","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52643,"name":"address","nodeType":"ElementaryTypeName","src":"3224:7:88","typeDescriptions":{}}},"id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52652,"nodeType":"VariableDeclaration","src":"3241:57:88","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3257:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52648,"name":"uint64","nodeType":"ElementaryTypeName","src":"3241:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3269:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52650,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"3273:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3269:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52655,"nodeType":"VariableDeclaration","src":"3304:50:88","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3321:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3304:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3347:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52658,"nodeType":"VariableDeclaration","src":"3360:53:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3376:31:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52656,"name":"uint16","nodeType":"ElementaryTypeName","src":"3360:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52661,"nodeType":"VariableDeclaration","src":"3419:38:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3433:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52659,"name":"int8","nodeType":"ElementaryTypeName","src":"3419:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3463:37:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3479:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52662,"name":"uint64","nodeType":"ElementaryTypeName","src":"3463:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3497:3:88","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3506:45:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3523:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3549:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52666,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:88","typeDescriptions":{}}},"id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3557:57:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3574:24:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"3557:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3609:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3601:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52672,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:88","typeDescriptions":{}}},"id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3620:50:88","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3637:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3620:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3667:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3659:7:88","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52683],"name":"TestParams","nameLocation":"2488:10:88","scope":55376,"usedErrors":[]},{"id":52747,"nodeType":"ContractDefinition","src":"3675:824:88","nodes":[{"id":52690,"nodeType":"VariableDeclaration","src":"3723:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3732:28:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52688,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3723:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52689,"nodeType":"ArrayTypeName","src":"3723:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52693,"nodeType":"VariableDeclaration","src":"3766:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3775:34:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52691,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52692,"nodeType":"ArrayTypeName","src":"3766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52696,"nodeType":"VariableDeclaration","src":"3815:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3824:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52694,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3815:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52695,"nodeType":"ArrayTypeName","src":"3815:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52699,"nodeType":"VariableDeclaration","src":"3853:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3862:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52697,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3853:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52698,"nodeType":"ArrayTypeName","src":"3853:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52702,"nodeType":"VariableDeclaration","src":"3892:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3914:15:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52701,"nodeType":"UserDefinedTypeName","pathNode":{"id":52700,"name":"SubnetRegistryDiamond","nameLocations":["3892:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"3892:21:88"},"referencedDeclaration":36853,"src":"3892:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3935:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3953:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52704,"nodeType":"UserDefinedTypeName","pathNode":{"id":52703,"name":"DiamondLoupeFacet","nameLocations":["3935:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"3935:17:88"},"referencedDeclaration":37355,"src":"3935:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"3973:30:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3989:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52707,"nodeType":"UserDefinedTypeName","pathNode":{"id":52706,"name":"DiamondCutFacet","nameLocations":["3973:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"3973:15:88"},"referencedDeclaration":36918,"src":"3973:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4009:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4029:19:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52710,"nodeType":"UserDefinedTypeName","pathNode":{"id":52709,"name":"RegisterSubnetFacet","nameLocations":["4009:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"4009:19:88"},"referencedDeclaration":52279,"src":"4009:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4054:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4072:25:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetGetterFacet","nameLocations":["4054:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"4054:17:88"},"referencedDeclaration":52517,"src":"4054:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52746,"nodeType":"FunctionDefinition","src":"4104:393:88","nodes":[],"body":{"id":52745,"nodeType":"Block","src":"4118:379:88","nodes":[],"statements":[{"expression":{"id":52722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52717,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"4128:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4192:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52718,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4159:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4175:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4159:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4128:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52723,"nodeType":"ExpressionStatement","src":"4128:86:88"},{"expression":{"id":52729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52724,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"4224:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4294:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52725,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4261:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4277:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4261:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4224:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52730,"nodeType":"ExpressionStatement","src":"4224:90:88"},{"expression":{"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52731,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"4324:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4383:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52732,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4350:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4350:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:77:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52737,"nodeType":"ExpressionStatement","src":"4324:77:88"},{"expression":{"id":52743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52738,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"4411:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4470:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52739,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4437:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4437:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4411:79:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52744,"nodeType":"ExpressionStatement","src":"4411:79:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52715,"nodeType":"ParameterList","parameters":[],"src":"4115:2:88"},"returnParameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"4118:0:88"},"scope":52747,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52684,"name":"Test","nameLocations":["3700:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3700:4:88"},"id":52685,"nodeType":"InheritanceSpecifier","src":"3700:4:88"},{"baseName":{"id":52686,"name":"TestParams","nameLocations":["3706:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"3706:10:88"},"id":52687,"nodeType":"InheritanceSpecifier","src":"3706:10:88"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3684:12:88","scope":55376,"usedErrors":[]},{"id":52912,"nodeType":"ContractDefinition","src":"4501:2237:88","nodes":[{"id":52754,"nodeType":"VariableDeclaration","src":"4553:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4562:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52752,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4553:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52753,"nodeType":"ArrayTypeName","src":"4553:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52757,"nodeType":"VariableDeclaration","src":"4597:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4606:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52755,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4597:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52756,"nodeType":"ArrayTypeName","src":"4597:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52760,"nodeType":"VariableDeclaration","src":"4641:40:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4650:31:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52758,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4641:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52759,"nodeType":"ArrayTypeName","src":"4641:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52763,"nodeType":"VariableDeclaration","src":"4687:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4696:30:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52761,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4687:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52762,"nodeType":"ArrayTypeName","src":"4687:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52766,"nodeType":"VariableDeclaration","src":"4733:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4742:18:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4733:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4733:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4766:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4775:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4798:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4807:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4798:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4798:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4834:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4843:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4834:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4834:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4866:25:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4875:16:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4866:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4866:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4898:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4913:14:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52780,"nodeType":"UserDefinedTypeName","pathNode":{"id":52779,"name":"GatewayDiamond","nameLocations":["4898:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"4898:14:88"},"referencedDeclaration":36170,"src":"4898:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4933:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4953:9:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52783,"nodeType":"UserDefinedTypeName","pathNode":{"id":52782,"name":"GatewayManagerFacet","nameLocations":["4933:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"4933:19:88"},"referencedDeclaration":38870,"src":"4933:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"4968:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4987:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52786,"nodeType":"UserDefinedTypeName","pathNode":{"id":52785,"name":"GatewayGetterFacet","nameLocations":["4968:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"4968:18:88"},"referencedDeclaration":38317,"src":"4968:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5001:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5020:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52789,"nodeType":"UserDefinedTypeName","pathNode":{"id":52788,"name":"CheckpointingFacet","nameLocations":["5001:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5001:18:88"},"referencedDeclaration":39870,"src":"5001:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5046:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5065:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"XnetMessagingFacet","nameLocations":["5046:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5046:18:88"},"referencedDeclaration":40144,"src":"5046:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5091:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5112:22:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"TopDownFinalityFacet","nameLocations":["5091:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5091:20:88"},"referencedDeclaration":40071,"src":"5091:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5140:41:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5160:21:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"BottomUpRouterFacet","nameLocations":["5140:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5140:19:88"},"referencedDeclaration":39601,"src":"5140:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5187:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5209:11:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"GatewayMessengerFacet","nameLocations":["5187:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5187:21:88"},"referencedDeclaration":39235,"src":"5187:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5226:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5242:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"DiamondCutFacet","nameLocations":["5226:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5226:15:88"},"referencedDeclaration":36918,"src":"5226:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5256:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5274:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"DiamondLoupeFacet","nameLocations":["5256:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5256:17:88"},"referencedDeclaration":37355,"src":"5256:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52875,"nodeType":"FunctionDefinition","src":"5289:835:88","nodes":[],"body":{"id":52874,"nodeType":"Block","src":"5303:821:88","nodes":[],"statements":[{"expression":{"id":52816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52811,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"5313:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52812,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5345:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5345:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5313:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52817,"nodeType":"ExpressionStatement","src":"5313:86:88"},{"expression":{"id":52823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52818,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"5409:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5474:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52819,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5441:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5441:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5409:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52824,"nodeType":"ExpressionStatement","src":"5409:86:88"},{"expression":{"id":52830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52825,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"5505:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5572:22:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52826,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5539:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5555:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5539:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5539:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5505:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52831,"nodeType":"ExpressionStatement","src":"5505:90:88"},{"expression":{"id":52837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52832,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"5605:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5671:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52833,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5638:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5654:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5638:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:88:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52838,"nodeType":"ExpressionStatement","src":"5605:88:88"},{"expression":{"id":52844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52839,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5704:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5757:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52840,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5724:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5740:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5724:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5724:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5704:74:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52845,"nodeType":"ExpressionStatement","src":"5704:74:88"},{"expression":{"id":52851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52846,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5788:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52847,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5809:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5825:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5809:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5788:76:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52852,"nodeType":"ExpressionStatement","src":"5788:76:88"},{"expression":{"id":52858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52853,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5874:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5930:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52854,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5897:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5913:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5897:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:57:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5874:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52859,"nodeType":"ExpressionStatement","src":"5874:80:88"},{"expression":{"id":52865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52860,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5964:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6017:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52861,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5984:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5984:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5984:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5964:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52866,"nodeType":"ExpressionStatement","src":"5964:71:88"},{"expression":{"id":52872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52867,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"6045:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6097:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52868,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"6064:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6080:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"6064:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6064:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6045:72:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52873,"nodeType":"ExpressionStatement","src":"6045:72:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52809,"nodeType":"ParameterList","parameters":[],"src":"5300:2:88"},"returnParameters":{"id":52810,"nodeType":"ParameterList","parameters":[],"src":"5303:0:88"},"scope":52912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52911,"nodeType":"FunctionDefinition","src":"6130:606:88","nodes":[],"body":{"id":52910,"nodeType":"Block","src":"6234:502:88","nodes":[],"statements":[{"assignments":[52885],"declarations":[{"constant":false,"id":52885,"mutability":"mutable","name":"params","nameLocation":"6284:6:88","nodeType":"VariableDeclaration","scope":52910,"src":"6244:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52884,"nodeType":"UserDefinedTypeName","pathNode":{"id":52883,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6244:14:88","6259:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6244:32:88"},"referencedDeclaration":35883,"src":"6244:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52907,"initialValue":{"arguments":[{"arguments":[{"id":52889,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"6369:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6407:1:88","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":52892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6393:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52890,"name":"address","nodeType":"ElementaryTypeName","src":"6397:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52891,"nodeType":"ArrayTypeName","src":"6397:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52888,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"6353:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6363:4:88","6386:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"6353:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52896,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"6446:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52897,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"6493:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52898,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"6548:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6624:1:88","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":52902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6608:15:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52900,"nodeType":"UserDefinedTypeName","pathNode":{"id":52899,"name":"Validator","nameLocations":["6612:9:88"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"6612:9:88"},"referencedDeclaration":50211,"src":"6612:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":52901,"nodeType":"ArrayTypeName","src":"6612:11:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52905,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"6663:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52886,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6293:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6308:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6293:32:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6340:11:88","6425:19:88","6485:6:88","6528:18:88","6589:17:88","6640:21:88"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6293:412:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6244:461:88"},{"expression":{"id":52908,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52885,"src":"6723:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52880,"id":52909,"nodeType":"Return","src":"6716:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6139:20:88","parameters":{"id":52876,"nodeType":"ParameterList","parameters":[],"src":"6159:2:88"},"returnParameters":{"id":52880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52911,"src":"6193:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52878,"nodeType":"UserDefinedTypeName","pathNode":{"id":52877,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6193:14:88","6208:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6193:32:88"},"referencedDeclaration":35883,"src":"6193:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6192:41:88"},"scope":52912,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52748,"name":"Test","nameLocations":["4530:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4530:4:88"},"id":52749,"nodeType":"InheritanceSpecifier","src":"4530:4:88"},{"baseName":{"id":52750,"name":"TestParams","nameLocations":["4536:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"4536:10:88"},"id":52751,"nodeType":"InheritanceSpecifier","src":"4536:10:88"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52912,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4510:16:88","scope":55376,"usedErrors":[]},{"id":53037,"nodeType":"ContractDefinition","src":"6740:1920:88","nodes":[{"id":52919,"nodeType":"VariableDeclaration","src":"6791:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6800:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52917,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6791:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52918,"nodeType":"ArrayTypeName","src":"6791:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6823:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6832:18:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52920,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6823:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52921,"nodeType":"ArrayTypeName","src":"6823:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6856:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6865:24:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52923,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6856:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52924,"nodeType":"ArrayTypeName","src":"6856:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6895:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6904:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52926,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6895:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52927,"nodeType":"ArrayTypeName","src":"6895:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6927:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6936:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52929,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6927:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52930,"nodeType":"ArrayTypeName","src":"6927:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6960:28:88","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6979:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorDiamond","nameLocations":["6960:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6960:18:88"},"referencedDeclaration":36615,"src":"6960:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6994:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7018:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorManagerFacet","nameLocations":["6994:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"6994:23:88"},"referencedDeclaration":52151,"src":"6994:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"7033:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"7061:15:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"SubnetActorManagerFacetMock","nameLocations":["7033:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"7033:27:88"},"referencedDeclaration":57957,"src":"7033:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"7082:31:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7105:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"SubnetActorGetterFacet","nameLocations":["7082:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"7082:22:88"},"referencedDeclaration":50887,"src":"7082:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52946,"nodeType":"VariableDeclaration","src":"7119:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7135:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52945,"nodeType":"UserDefinedTypeName","pathNode":{"id":52944,"name":"DiamondCutFacet","nameLocations":["7119:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7119:15:88"},"referencedDeclaration":36918,"src":"7119:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52949,"nodeType":"VariableDeclaration","src":"7149:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7167:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52948,"nodeType":"UserDefinedTypeName","pathNode":{"id":52947,"name":"DiamondLoupeFacet","nameLocations":["7149:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7149:17:88"},"referencedDeclaration":37355,"src":"7149:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52988,"nodeType":"FunctionDefinition","src":"7182:463:88","nodes":[],"body":{"id":52987,"nodeType":"Block","src":"7196:449:88","nodes":[],"statements":[{"expression":{"id":52957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52952,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"7206:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7259:24:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52953,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7226:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7242:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7226:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7226:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7206:78:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52958,"nodeType":"ExpressionStatement","src":"7206:78:88"},{"expression":{"id":52964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52959,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"7294:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7348:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52960,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7315:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7331:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7315:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7315:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7294:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52965,"nodeType":"ExpressionStatement","src":"7294:80:88"},{"expression":{"id":52971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52966,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"7384:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7444:29:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":52967,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7411:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7427:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7411:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7384:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52972,"nodeType":"ExpressionStatement","src":"7384:90:88"},{"expression":{"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52973,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"7484:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7537:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52974,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7504:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7520:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7504:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7504:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7484:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52979,"nodeType":"ExpressionStatement","src":"7484:71:88"},{"expression":{"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52980,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"7565:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7618:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52981,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7585:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7585:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7565:73:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52986,"nodeType":"ExpressionStatement","src":"7565:73:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52950,"nodeType":"ParameterList","parameters":[],"src":"7193:2:88"},"returnParameters":{"id":52951,"nodeType":"ParameterList","parameters":[],"src":"7196:0:88"},"scope":53037,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53036,"nodeType":"FunctionDefinition","src":"7651:1007:88","nodes":[],"body":{"id":53035,"nodeType":"Block","src":"7798:860:88","nodes":[],"statements":[{"assignments":[52998],"declarations":[{"constant":false,"id":52998,"mutability":"mutable","name":"native","nameLocation":"7828:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7808:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":52997,"nodeType":"UserDefinedTypeName","pathNode":{"id":52996,"name":"SupplySource","nameLocations":["7808:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7808:12:88"},"referencedDeclaration":50226,"src":"7808:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53002,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52999,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"7837:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7856:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"7837:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7808:56:88"},{"assignments":[53007],"declarations":[{"constant":false,"id":53007,"mutability":"mutable","name":"params","nameLocation":"7918:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7874:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53006,"nodeType":"UserDefinedTypeName","pathNode":{"id":53005,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7874:18:88","7893:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7874:36:88"},"referencedDeclaration":36253,"src":"7874:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53032,"initialValue":{"arguments":[{"arguments":[{"id":53011,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"8004:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8042:1:88","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":53014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8028:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53012,"name":"address","nodeType":"ElementaryTypeName","src":"8032:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53013,"nodeType":"ArrayTypeName","src":"8032:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53010,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"7988:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7998:4:88","8021:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"7988:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53018,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52990,"src":"8076:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53019,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8103:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8117:10:88","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8103:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53021,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"8166:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53022,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52611,"src":"8220:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53023,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8277:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53024,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"8336:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53025,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"8400:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53026,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"8457:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53027,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8506:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53028,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"8557:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8572:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"8557:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53030,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52998,"src":"8610:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53008,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7927:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7946:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7927:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7978:8:88","8060:14:88","8092:9:88","8141:23:88","8205:13:88","8256:19:88","8316:18:88","8377:21:88","8445:10:88","8490:14:88","8541:14:88","8596:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7927:700:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7874:753:88"},{"expression":{"id":53033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53007,"src":"8645:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":52995,"id":53034,"nodeType":"Return","src":"8638:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7660:35:88","parameters":{"id":52991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52990,"mutability":"mutable","name":"gw","nameLocation":"7713:2:88","nodeType":"VariableDeclaration","scope":53036,"src":"7705:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52989,"name":"address","nodeType":"ElementaryTypeName","src":"7705:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7695:26:88"},"returnParameters":{"id":52995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53036,"src":"7753:43:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52993,"nodeType":"UserDefinedTypeName","pathNode":{"id":52992,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7753:18:88","7772:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7753:36:88"},"referencedDeclaration":36253,"src":"7753:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7752:45:88"},"scope":53037,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52913,"name":"Test","nameLocations":["6768:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6768:4:88"},"id":52914,"nodeType":"InheritanceSpecifier","src":"6768:4:88"},{"baseName":{"id":52915,"name":"TestParams","nameLocations":["6774:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"6774:10:88"},"id":52916,"nodeType":"InheritanceSpecifier","src":"6774:10:88"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53037,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6749:15:88","scope":55376,"usedErrors":[]},{"id":55375,"nodeType":"ContractDefinition","src":"8662:23266:88","nodes":[{"id":53051,"nodeType":"UsingForDirective","src":"8766:34:88","nodes":[],"global":false,"libraryName":{"id":53048,"name":"SubnetIDHelper","nameLocations":["8772:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"8772:14:88"},"typeName":{"id":53050,"nodeType":"UserDefinedTypeName","pathNode":{"id":53049,"name":"SubnetID","nameLocations":["8791:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"8791:8:88"},"referencedDeclaration":50077,"src":"8791:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":53055,"nodeType":"UsingForDirective","src":"8805:42:88","nodes":[],"global":false,"libraryName":{"id":53052,"name":"SupplySourceHelper","nameLocations":["8811:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"8811:18:88"},"typeName":{"id":53054,"nodeType":"UserDefinedTypeName","pathNode":{"id":53053,"name":"SupplySource","nameLocations":["8834:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"8834:12:88"},"referencedDeclaration":50226,"src":"8834:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":53059,"nodeType":"UsingForDirective","src":"8852:34:88","nodes":[],"global":false,"libraryName":{"id":53056,"name":"CrossMsgHelper","nameLocations":["8858:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"8858:14:88"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"CrossMsg","nameLocations":["8877:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8877:8:88"},"referencedDeclaration":49974,"src":"8877:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53063,"nodeType":"UsingForDirective","src":"8891:40:88","nodes":[],"global":false,"libraryName":{"id":53060,"name":"StorableMsgHelper","nameLocations":["8897:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"8897:17:88"},"typeName":{"id":53062,"nodeType":"UserDefinedTypeName","pathNode":{"id":53061,"name":"StorableMsg","nameLocations":["8919:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"8919:11:88"},"referencedDeclaration":49991,"src":"8919:11:88","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53067,"nodeType":"UsingForDirective","src":"8936:38:88","nodes":[],"global":false,"libraryName":{"id":53064,"name":"FvmAddressHelper","nameLocations":["8942:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"8942:16:88"},"typeName":{"id":53066,"nodeType":"UserDefinedTypeName","pathNode":{"id":53065,"name":"FvmAddress","nameLocations":["8963:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8963:10:88"},"referencedDeclaration":49998,"src":"8963:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53071,"nodeType":"EventDefinition","src":"8980:67:88","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"8986:21:88","parameters":{"id":53070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53069,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9024:21:88","nodeType":"VariableDeclaration","scope":53071,"src":"9008:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53068,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9007:39:88"}},{"id":53075,"nodeType":"FunctionDefinition","src":"9053:16:88","nodes":[],"body":{"id":53074,"nodeType":"Block","src":"9067:2:88","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53072,"nodeType":"ParameterList","parameters":[],"src":"9064:2:88"},"returnParameters":{"id":53073,"nodeType":"ParameterList","parameters":[],"src":"9067:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53250,"nodeType":"FunctionDefinition","src":"9075:1529:88","nodes":[],"body":{"id":53249,"nodeType":"Block","src":"9107:1497:88","nodes":[],"statements":[{"assignments":[53082],"declarations":[{"constant":false,"id":53082,"mutability":"mutable","name":"path","nameLocation":"9134:4:88","nodeType":"VariableDeclaration","scope":53249,"src":"9117:21:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53080,"name":"address","nodeType":"ElementaryTypeName","src":"9117:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53081,"nodeType":"ArrayTypeName","src":"9117:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53088,"initialValue":{"arguments":[{"hexValue":"31","id":53086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9155:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9141:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53084,"nodeType":"ArrayTypeName","src":"9145:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9141:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9117:40:88"},{"expression":{"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53089,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53082,"src":"9167:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53091,"indexExpression":{"hexValue":"30","id":53090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9167:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53092,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"9177:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9167:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53094,"nodeType":"ExpressionStatement","src":"9167:25:88"},{"assignments":[53099],"declarations":[{"constant":false,"id":53099,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9285:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"9245:59:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53098,"nodeType":"UserDefinedTypeName","pathNode":{"id":53097,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9245:14:88","9260:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9245:32:88"},"referencedDeclaration":35883,"src":"9245:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53100,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52911,"src":"9307:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9245:84:88"},{"expression":{"id":53107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53103,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9339:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53105,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53099,"src":"9377:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53104,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"9356:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:41:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9339:58:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53108,"nodeType":"ExpressionStatement","src":"9339:58:88"},{"expression":{"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53109,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"9408:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53113,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9446:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9438:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53111,"name":"address","nodeType":"ElementaryTypeName","src":"9438:7:88","typeDescriptions":{}}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9438:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53110,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9419:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9419:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9408:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53117,"nodeType":"ExpressionStatement","src":"9408:54:88"},{"expression":{"id":53125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"9472:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53122,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9512:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9504:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9504:7:88","typeDescriptions":{}}},"id":53123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9504:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53119,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9484:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9472:56:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53126,"nodeType":"ExpressionStatement","src":"9472:56:88"},{"expression":{"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53127,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"9538:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53131,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9588:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9580:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53129,"name":"address","nodeType":"ElementaryTypeName","src":"9580:7:88","typeDescriptions":{}}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9580:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53128,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9561:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9538:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53135,"nodeType":"ExpressionStatement","src":"9538:66:88"},{"expression":{"id":53143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53136,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9614:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53140,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9664:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9656:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53138,"name":"address","nodeType":"ElementaryTypeName","src":"9656:7:88","typeDescriptions":{}}},"id":53141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53137,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9637:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9637:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9614:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53144,"nodeType":"ExpressionStatement","src":"9614:66:88"},{"expression":{"id":53152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53145,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9690:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53149,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9744:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9736:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53147,"name":"address","nodeType":"ElementaryTypeName","src":"9736:7:88","typeDescriptions":{}}},"id":53150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9736:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53146,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9715:20:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9690:70:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53153,"nodeType":"ExpressionStatement","src":"9690:70:88"},{"expression":{"id":53161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53154,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9770:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53158,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9822:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9814:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53156,"name":"address","nodeType":"ElementaryTypeName","src":"9814:7:88","typeDescriptions":{}}},"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9814:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53155,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9794:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9770:68:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53162,"nodeType":"ExpressionStatement","src":"9770:68:88"},{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53163,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9848:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53167,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9892:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9884:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53165,"name":"address","nodeType":"ElementaryTypeName","src":"9884:7:88","typeDescriptions":{}}},"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9884:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53164,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9862:21:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9848:60:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53171,"nodeType":"ExpressionStatement","src":"9848:60:88"},{"expression":{"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53172,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9918:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53176,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9955:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9947:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"9947:7:88","typeDescriptions":{}}},"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53173,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9929:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9929:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9918:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53180,"nodeType":"ExpressionStatement","src":"9918:53:88"},{"expression":{"id":53188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53181,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9981:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53185,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10016:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53183,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:88","typeDescriptions":{}}},"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53182,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"9992:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9992:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"9981:51:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53189,"nodeType":"ExpressionStatement","src":"9981:51:88"},{"assignments":[53194],"declarations":[{"constant":false,"id":53194,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10141:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"10097:63:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53193,"nodeType":"UserDefinedTypeName","pathNode":{"id":53192,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10097:18:88","10116:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10097:36:88"},"referencedDeclaration":36253,"src":"10097:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53201,"initialValue":{"arguments":[{"arguments":[{"id":53198,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10220:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53196,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:88","typeDescriptions":{}}},"id":53199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53195,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"10163:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10163:82:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10097:148:88"},{"expression":{"id":53206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10256:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53204,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53194,"src":"10286:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53203,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53710,"src":"10268:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10256:50:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53207,"nodeType":"ExpressionStatement","src":"10256:50:88"},{"expression":{"id":53215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53208,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10316:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10360:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10352:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53210,"name":"address","nodeType":"ElementaryTypeName","src":"10352:7:88","typeDescriptions":{}}},"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53209,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"10328:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10328:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"10316:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53216,"nodeType":"ExpressionStatement","src":"10316:55:88"},{"expression":{"id":53224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10381:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10423:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10415:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53219,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:88","typeDescriptions":{}}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53218,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"10392:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10392:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"10381:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53225,"nodeType":"ExpressionStatement","src":"10381:53:88"},{"expression":{"id":53233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53226,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"10444:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53230,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10481:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10473:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53228,"name":"address","nodeType":"ElementaryTypeName","src":"10473:7:88","typeDescriptions":{}}},"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10473:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53227,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10455:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10455:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10444:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53234,"nodeType":"ExpressionStatement","src":"10444:48:88"},{"expression":{"id":53242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53235,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"10502:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53239,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10537:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10529:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53237,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:88","typeDescriptions":{}}},"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10529:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53236,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10513:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10513:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10502:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53243,"nodeType":"ExpressionStatement","src":"10502:46:88"},{"expression":{"arguments":[{"id":53245,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"10572:19:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10593:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53244,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"10559:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53248,"nodeType":"ExpressionStatement","src":"10559:38:88"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9084:5:88","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"9089:2:88"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"9107:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53509,"nodeType":"FunctionDefinition","src":"10610:3185:88","nodes":[],"body":{"id":53508,"nodeType":"Block","src":"10720:3075:88","nodes":[],"statements":[{"assignments":[53261],"declarations":[{"constant":false,"id":53261,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"10749:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10730:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53260,"nodeType":"UserDefinedTypeName","pathNode":{"id":53259,"name":"CheckpointingFacet","nameLocations":["10730:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10730:18:88"},"referencedDeclaration":39870,"src":"10730:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10770:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53263,"nodeType":"UserDefinedTypeName","pathNode":{"id":53262,"name":"CheckpointingFacet","nameLocations":["10774:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10774:18:88"},"referencedDeclaration":39870,"src":"10774:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10770:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10730:64:88"},{"assignments":[53269],"declarations":[{"constant":false,"id":53269,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"10823:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10804:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53268,"nodeType":"UserDefinedTypeName","pathNode":{"id":53267,"name":"XnetMessagingFacet","nameLocations":["10804:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10804:18:88"},"referencedDeclaration":40144,"src":"10804:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10844:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53271,"nodeType":"UserDefinedTypeName","pathNode":{"id":53270,"name":"XnetMessagingFacet","nameLocations":["10848:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10848:18:88"},"referencedDeclaration":40144,"src":"10848:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10844:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10804:64:88"},{"assignments":[53277],"declarations":[{"constant":false,"id":53277,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"10899:20:88","nodeType":"VariableDeclaration","scope":53508,"src":"10878:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53276,"nodeType":"UserDefinedTypeName","pathNode":{"id":53275,"name":"TopDownFinalityFacet","nameLocations":["10878:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10878:20:88"},"referencedDeclaration":40071,"src":"10878:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10922:24:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53279,"nodeType":"UserDefinedTypeName","pathNode":{"id":53278,"name":"TopDownFinalityFacet","nameLocations":["10926:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10926:20:88"},"referencedDeclaration":40071,"src":"10926:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"10878:70:88"},{"assignments":[53285],"declarations":[{"constant":false,"id":53285,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"10978:19:88","nodeType":"VariableDeclaration","scope":53508,"src":"10958:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53284,"nodeType":"UserDefinedTypeName","pathNode":{"id":53283,"name":"BottomUpRouterFacet","nameLocations":["10958:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"10958:19:88"},"referencedDeclaration":39601,"src":"10958:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53290,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11000:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53287,"nodeType":"UserDefinedTypeName","pathNode":{"id":53286,"name":"BottomUpRouterFacet","nameLocations":["11004:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11004:19:88"},"referencedDeclaration":39601,"src":"11004:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"10958:67:88"},{"assignments":[53293],"declarations":[{"constant":false,"id":53293,"mutability":"mutable","name":"manager","nameLocation":"11056:7:88","nodeType":"VariableDeclaration","scope":53508,"src":"11036:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53292,"nodeType":"UserDefinedTypeName","pathNode":{"id":53291,"name":"GatewayManagerFacet","nameLocations":["11036:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11036:19:88"},"referencedDeclaration":38870,"src":"11036:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53298,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11066:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayManagerFacet","nameLocations":["11070:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11070:19:88"},"referencedDeclaration":38870,"src":"11070:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11066:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11036:55:88"},{"assignments":[53301],"declarations":[{"constant":false,"id":53301,"mutability":"mutable","name":"getter","nameLocation":"11120:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11101:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53300,"nodeType":"UserDefinedTypeName","pathNode":{"id":53299,"name":"GatewayGetterFacet","nameLocations":["11101:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11101:18:88"},"referencedDeclaration":38317,"src":"11101:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11129:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53303,"nodeType":"UserDefinedTypeName","pathNode":{"id":53302,"name":"GatewayGetterFacet","nameLocations":["11133:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11133:18:88"},"referencedDeclaration":38317,"src":"11133:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11101:52:88"},{"assignments":[53309],"declarations":[{"constant":false,"id":53309,"mutability":"mutable","name":"messenger","nameLocation":"11185:9:88","nodeType":"VariableDeclaration","scope":53508,"src":"11163:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53308,"nodeType":"UserDefinedTypeName","pathNode":{"id":53307,"name":"GatewayMessengerFacet","nameLocations":["11163:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11163:21:88"},"referencedDeclaration":39235,"src":"11163:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11197:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53311,"nodeType":"UserDefinedTypeName","pathNode":{"id":53310,"name":"GatewayMessengerFacet","nameLocations":["11201:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11201:21:88"},"referencedDeclaration":39235,"src":"11201:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11197:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11163:61:88"},{"assignments":[53317],"declarations":[{"constant":false,"id":53317,"mutability":"mutable","name":"cutter","nameLocation":"11250:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11234:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53316,"nodeType":"UserDefinedTypeName","pathNode":{"id":53315,"name":"DiamondCutFacet","nameLocations":["11234:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11234:15:88"},"referencedDeclaration":36918,"src":"11234:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53322,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11259:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53319,"nodeType":"UserDefinedTypeName","pathNode":{"id":53318,"name":"DiamondCutFacet","nameLocations":["11263:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11263:15:88"},"referencedDeclaration":36918,"src":"11263:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"11234:46:88"},{"assignments":[53325],"declarations":[{"constant":false,"id":53325,"mutability":"mutable","name":"louper","nameLocation":"11308:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11290:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53324,"nodeType":"UserDefinedTypeName","pathNode":{"id":53323,"name":"DiamondLoupeFacet","nameLocations":["11290:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11290:17:88"},"referencedDeclaration":37355,"src":"11290:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11317:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53327,"nodeType":"UserDefinedTypeName","pathNode":{"id":53326,"name":"DiamondLoupeFacet","nameLocations":["11321:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11321:17:88"},"referencedDeclaration":37355,"src":"11321:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11317:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"11290:50:88"},{"assignments":[53336],"declarations":[{"constant":false,"id":53336,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"11378:12:88","nodeType":"VariableDeclaration","scope":53508,"src":"11351:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"IDiamond.FacetCut","nameLocations":["11351:8:88","11360:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11351:17:88"},"referencedDeclaration":40159,"src":"11351:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53335,"nodeType":"ArrayTypeName","src":"11351:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53343,"initialValue":{"arguments":[{"hexValue":"39","id":53341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11417:1:88","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11393:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"IDiamond.FacetCut","nameLocations":["11397:8:88","11406:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11397:17:88"},"referencedDeclaration":40159,"src":"11397:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53339,"nodeType":"ArrayTypeName","src":"11397:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11393:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11351:68:88"},{"expression":{"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53344,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11430:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53346,"indexExpression":{"hexValue":"30","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11443:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11430:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53351,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53261,"src":"11520:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11512:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53349,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:88","typeDescriptions":{}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11512:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53353,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11565:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11574:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11565:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11589:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11565:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53356,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"11629:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53347,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11462:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11471:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11462:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11498:12:88","11557:6:88","11610:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11462:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11448:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11430:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53360,"nodeType":"ExpressionStatement","src":"11430:253:88"},{"expression":{"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53361,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11694:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53363,"indexExpression":{"hexValue":"36","id":53362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:88","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11694:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53368,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53269,"src":"11784:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53366,"name":"address","nodeType":"ElementaryTypeName","src":"11776:7:88","typeDescriptions":{}}},"id":53369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11776:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53370,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11829:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11838:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11829:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11853:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11829:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53373,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"11893:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53364,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11726:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11735:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11726:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11762:12:88","11821:6:88","11874:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11726:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11712:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11694:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53377,"nodeType":"ExpressionStatement","src":"11694:253:88"},{"expression":{"id":53393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53378,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11958:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53380,"indexExpression":{"hexValue":"37","id":53379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:88","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11958:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53385,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53277,"src":"12048:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12040:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53383,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:88","typeDescriptions":{}}},"id":53386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53387,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12095:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12104:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12095:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12119:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12095:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53390,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"12159:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53381,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11990:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11999:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11990:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12026:12:88","12087:6:88","12140:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11990:215:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11976:239:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11958:257:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53394,"nodeType":"ExpressionStatement","src":"11958:257:88"},{"expression":{"id":53410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53395,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12226:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53397,"indexExpression":{"hexValue":"38","id":53396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:88","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12226:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53402,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53285,"src":"12316:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12308:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53400,"name":"address","nodeType":"ElementaryTypeName","src":"12308:7:88","typeDescriptions":{}}},"id":53403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12308:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53404,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12362:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12371:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12362:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12386:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12362:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53407,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"12426:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53398,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12258:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12267:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12258:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12294:12:88","12354:6:88","12407:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12258:213:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53409,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12244:237:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12226:255:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53411,"nodeType":"ExpressionStatement","src":"12226:255:88"},{"expression":{"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53412,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12492:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53414,"indexExpression":{"hexValue":"31","id":53413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12492:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53419,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53293,"src":"12582:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53417,"name":"address","nodeType":"ElementaryTypeName","src":"12574:7:88","typeDescriptions":{}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53421,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12616:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12625:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12616:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12640:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12616:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53424,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12680:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53415,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12524:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12533:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12524:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12560:12:88","12608:6:88","12661:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12524:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12510:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12492:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53428,"nodeType":"ExpressionStatement","src":"12492:231:88"},{"expression":{"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53429,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12734:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53431,"indexExpression":{"hexValue":"32","id":53430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12747:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12734:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53436,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53301,"src":"12824:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53434,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:88","typeDescriptions":{}}},"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53438,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12857:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12866:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12857:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12881:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12857:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53441,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12921:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12766:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12775:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12766:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12802:12:88","12849:6:88","12902:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12766:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12752:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12734:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53445,"nodeType":"ExpressionStatement","src":"12734:229:88"},{"expression":{"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53446,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12974:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53448,"indexExpression":{"hexValue":"33","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12987:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12974:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53453,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53309,"src":"13064:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13056:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53451,"name":"address","nodeType":"ElementaryTypeName","src":"13056:7:88","typeDescriptions":{}}},"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53455,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13100:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13109:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13100:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13124:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13100:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53458,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13164:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13006:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13042:12:88","13092:6:88","13145:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13006:193:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12992:217:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12974:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53462,"nodeType":"ExpressionStatement","src":"12974:235:88"},{"expression":{"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53463,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13220:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53465,"indexExpression":{"hexValue":"34","id":53464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13233:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13220:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53470,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53325,"src":"13310:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13302:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53468,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:88","typeDescriptions":{}}},"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13302:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53472,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13343:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13352:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13343:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13367:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13343:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53475,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13407:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13252:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13261:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13252:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13288:12:88","13335:6:88","13388:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13252:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13238:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13220:228:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53479,"nodeType":"ExpressionStatement","src":"13220:228:88"},{"expression":{"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53480,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13459:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53482,"indexExpression":{"hexValue":"35","id":53481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13472:1:88","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13459:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53487,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53317,"src":"13549:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"13541:7:88","typeDescriptions":{}}},"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13541:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53489,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13582:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13591:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13582:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13606:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13582:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53492,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13646:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13491:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13500:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13491:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13527:12:88","13574:6:88","13627:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13491:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13477:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13459:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53496,"nodeType":"ExpressionStatement","src":"13459:229:88"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53497,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13699:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53501,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13735:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53502,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53253,"src":"13749:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13716:18:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53499,"nodeType":"UserDefinedTypeName","pathNode":{"id":53498,"name":"GatewayDiamond","nameLocations":["13720:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"13720:14:88"},"referencedDeclaration":36170,"src":"13720:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13716:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"13699:57:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53505,"nodeType":"ExpressionStatement","src":"13699:57:88"},{"expression":{"id":53506,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13774:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53258,"id":53507,"nodeType":"Return","src":"13767:21:88"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"10619:20:88","parameters":{"id":53254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53253,"mutability":"mutable","name":"params","nameLocation":"10680:6:88","nodeType":"VariableDeclaration","scope":53509,"src":"10640:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53252,"nodeType":"UserDefinedTypeName","pathNode":{"id":53251,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10640:14:88","10655:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10640:32:88"},"referencedDeclaration":35883,"src":"10640:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10639:48:88"},"returnParameters":{"id":53258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53509,"src":"10704:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53256,"nodeType":"UserDefinedTypeName","pathNode":{"id":53255,"name":"GatewayDiamond","nameLocations":["10704:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"10704:14:88"},"referencedDeclaration":36170,"src":"10704:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"10703:16:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53575,"nodeType":"FunctionDefinition","src":"13801:854:88","nodes":[],"body":{"id":53574,"nodeType":"Block","src":"14009:646:88","nodes":[],"statements":[{"assignments":[53527],"declarations":[{"constant":false,"id":53527,"mutability":"mutable","name":"diamondCut","nameLocation":"14046:10:88","nodeType":"VariableDeclaration","scope":53574,"src":"14019:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53525,"nodeType":"UserDefinedTypeName","pathNode":{"id":53524,"name":"IDiamond.FacetCut","nameLocations":["14019:8:88","14028:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14019:17:88"},"referencedDeclaration":40159,"src":"14019:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53526,"nodeType":"ArrayTypeName","src":"14019:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53534,"initialValue":{"arguments":[{"hexValue":"32","id":53532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14083:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14059:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53529,"nodeType":"UserDefinedTypeName","pathNode":{"id":53528,"name":"IDiamond.FacetCut","nameLocations":["14063:8:88","14072:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14063:17:88"},"referencedDeclaration":40159,"src":"14063:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53530,"nodeType":"ArrayTypeName","src":"14063:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14059:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14019:66:88"},{"expression":{"id":53547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14096:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53537,"indexExpression":{"hexValue":"30","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14096:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53540,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53514,"src":"14176:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53541,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14214:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14223:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14214:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14238:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14214:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53544,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"14278:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53538,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:88","14206:6:88","14259:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:184:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53546,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:208:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14096:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53548,"nodeType":"ExpressionStatement","src":"14096:224:88"},{"expression":{"id":53561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53549,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14331:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53551,"indexExpression":{"hexValue":"31","id":53550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14331:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53554,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"14411:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53555,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14450:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14459:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14450:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14474:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14450:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53558,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"14514:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53552,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14361:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14370:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14361:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14397:12:88","14442:6:88","14495:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14361:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14347:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14331:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53562,"nodeType":"ExpressionStatement","src":"14331:226:88"},{"expression":{"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53563,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14568:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53567,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14603:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53568,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53512,"src":"14615:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14580:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53565,"nodeType":"UserDefinedTypeName","pathNode":{"id":53564,"name":"SubnetActorDiamond","nameLocations":["14584:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14584:18:88"},"referencedDeclaration":36615,"src":"14584:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"14568:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53571,"nodeType":"ExpressionStatement","src":"14568:54:88"},{"expression":{"id":53572,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14639:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53521,"id":53573,"nodeType":"Return","src":"14632:16:88"}]},"functionSelector":"0d8d4acf","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"13810:35:88","parameters":{"id":53517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53512,"mutability":"mutable","name":"params","nameLocation":"13899:6:88","nodeType":"VariableDeclaration","scope":53575,"src":"13855:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53511,"nodeType":"UserDefinedTypeName","pathNode":{"id":53510,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["13855:18:88","13874:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"13855:36:88"},"referencedDeclaration":36253,"src":"13855:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53514,"mutability":"mutable","name":"getterFaucet","nameLocation":"13923:12:88","nodeType":"VariableDeclaration","scope":53575,"src":"13915:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13915:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53516,"mutability":"mutable","name":"managerFaucet","nameLocation":"13953:13:88","nodeType":"VariableDeclaration","scope":53575,"src":"13945:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53515,"name":"address","nodeType":"ElementaryTypeName","src":"13945:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13845:127:88"},"returnParameters":{"id":53521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53575,"src":"13989:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53519,"nodeType":"UserDefinedTypeName","pathNode":{"id":53518,"name":"SubnetActorDiamond","nameLocations":["13989:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"13989:18:88"},"referencedDeclaration":36615,"src":"13989:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"13988:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53710,"nodeType":"FunctionDefinition","src":"14661:1518:88","nodes":[],"body":{"id":53709,"nodeType":"Block","src":"14776:1403:88","nodes":[],"statements":[{"assignments":[53586],"declarations":[{"constant":false,"id":53586,"mutability":"mutable","name":"manager","nameLocation":"14810:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"14786:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53585,"nodeType":"UserDefinedTypeName","pathNode":{"id":53584,"name":"SubnetActorManagerFacet","nameLocations":["14786:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14786:23:88"},"referencedDeclaration":52151,"src":"14786:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53591,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14820:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53588,"nodeType":"UserDefinedTypeName","pathNode":{"id":53587,"name":"SubnetActorManagerFacet","nameLocations":["14824:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14824:23:88"},"referencedDeclaration":52151,"src":"14824:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14820:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"14786:63:88"},{"assignments":[53594],"declarations":[{"constant":false,"id":53594,"mutability":"mutable","name":"getter","nameLocation":"14882:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14859:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53593,"nodeType":"UserDefinedTypeName","pathNode":{"id":53592,"name":"SubnetActorGetterFacet","nameLocations":["14859:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14859:22:88"},"referencedDeclaration":50887,"src":"14859:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53599,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14891:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53596,"nodeType":"UserDefinedTypeName","pathNode":{"id":53595,"name":"SubnetActorGetterFacet","nameLocations":["14895:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14895:22:88"},"referencedDeclaration":50887,"src":"14895:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14891:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"14859:60:88"},{"assignments":[53602],"declarations":[{"constant":false,"id":53602,"mutability":"mutable","name":"louper","nameLocation":"14947:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14929:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53601,"nodeType":"UserDefinedTypeName","pathNode":{"id":53600,"name":"DiamondLoupeFacet","nameLocations":["14929:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14929:17:88"},"referencedDeclaration":37355,"src":"14929:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14956:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"DiamondLoupeFacet","nameLocations":["14960:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14960:17:88"},"referencedDeclaration":37355,"src":"14960:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"14929:50:88"},{"assignments":[53610],"declarations":[{"constant":false,"id":53610,"mutability":"mutable","name":"cutter","nameLocation":"15005:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14989:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"DiamondCutFacet","nameLocations":["14989:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14989:15:88"},"referencedDeclaration":36918,"src":"14989:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15014:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53612,"nodeType":"UserDefinedTypeName","pathNode":{"id":53611,"name":"DiamondCutFacet","nameLocations":["15018:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"15018:15:88"},"referencedDeclaration":36918,"src":"15018:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"14989:46:88"},{"assignments":[53621],"declarations":[{"constant":false,"id":53621,"mutability":"mutable","name":"diamondCut","nameLocation":"15073:10:88","nodeType":"VariableDeclaration","scope":53709,"src":"15046:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53619,"nodeType":"UserDefinedTypeName","pathNode":{"id":53618,"name":"IDiamond.FacetCut","nameLocations":["15046:8:88","15055:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15046:17:88"},"referencedDeclaration":40159,"src":"15046:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53620,"nodeType":"ArrayTypeName","src":"15046:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53628,"initialValue":{"arguments":[{"hexValue":"34","id":53626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15110:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15086:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53623,"nodeType":"UserDefinedTypeName","pathNode":{"id":53622,"name":"IDiamond.FacetCut","nameLocations":["15090:8:88","15099:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15090:17:88"},"referencedDeclaration":40159,"src":"15090:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53624,"nodeType":"ArrayTypeName","src":"15090:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15086:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15046:66:88"},{"expression":{"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53629,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15123:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53631,"indexExpression":{"hexValue":"30","id":53630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15134:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15123:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53636,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53586,"src":"15211:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53634,"name":"address","nodeType":"ElementaryTypeName","src":"15203:7:88","typeDescriptions":{}}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15203:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53638,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15245:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15254:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15245:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15269:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15245:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53641,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"15309:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53632,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15153:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15162:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15153:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15189:12:88","15237:6:88","15290:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15153:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15139:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15123:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53645,"nodeType":"ExpressionStatement","src":"15123:229:88"},{"expression":{"id":53661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53646,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15363:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53648,"indexExpression":{"hexValue":"31","id":53647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15374:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15363:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53653,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15451:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15443:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53651,"name":"address","nodeType":"ElementaryTypeName","src":"15443:7:88","typeDescriptions":{}}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15443:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53655,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15484:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15493:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15484:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15508:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15484:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53658,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"15548:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53649,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15393:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15402:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15393:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15429:12:88","15476:6:88","15529:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15393:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15379:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15363:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53662,"nodeType":"ExpressionStatement","src":"15363:227:88"},{"expression":{"id":53678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53663,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15601:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53665,"indexExpression":{"hexValue":"32","id":53664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15612:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15601:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53670,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53610,"src":"15689:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15681:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53668,"name":"address","nodeType":"ElementaryTypeName","src":"15681:7:88","typeDescriptions":{}}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15681:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53672,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15722:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15722:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15746:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15722:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53675,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"15786:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53666,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15631:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15640:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15631:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15667:12:88","15714:6:88","15767:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15631:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15617:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15601:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53679,"nodeType":"ExpressionStatement","src":"15601:227:88"},{"expression":{"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53680,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15839:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53682,"indexExpression":{"hexValue":"33","id":53681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15850:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15839:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53687,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53602,"src":"15927:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15919:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53685,"name":"address","nodeType":"ElementaryTypeName","src":"15919:7:88","typeDescriptions":{}}},"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15919:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53689,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15960:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15960:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15984:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15960:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53692,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"16024:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53683,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15869:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15878:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15869:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15905:12:88","15952:6:88","16005:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15869:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15855:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15839:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53696,"nodeType":"ExpressionStatement","src":"15839:226:88"},{"assignments":[53699],"declarations":[{"constant":false,"id":53699,"mutability":"mutable","name":"diamond","nameLocation":"16095:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"16076:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53698,"nodeType":"UserDefinedTypeName","pathNode":{"id":53697,"name":"SubnetActorDiamond","nameLocations":["16076:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16076:18:88"},"referencedDeclaration":36615,"src":"16076:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53706,"initialValue":{"arguments":[{"id":53703,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"16128:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53704,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53578,"src":"16140:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16105:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53701,"nodeType":"UserDefinedTypeName","pathNode":{"id":53700,"name":"SubnetActorDiamond","nameLocations":["16109:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16109:18:88"},"referencedDeclaration":36615,"src":"16109:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16105:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"16076:71:88"},{"expression":{"id":53707,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53699,"src":"16165:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53583,"id":53708,"nodeType":"Return","src":"16158:14:88"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14670:17:88","parameters":{"id":53579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53578,"mutability":"mutable","name":"params","nameLocation":"14732:6:88","nodeType":"VariableDeclaration","scope":53710,"src":"14688:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14688:18:88","14707:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14688:36:88"},"referencedDeclaration":36253,"src":"14688:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"14687:52:88"},"returnParameters":{"id":53583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53710,"src":"14756:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53581,"nodeType":"UserDefinedTypeName","pathNode":{"id":53580,"name":"SubnetActorDiamond","nameLocations":["14756:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14756:18:88"},"referencedDeclaration":36615,"src":"14756:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14755:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53739,"nodeType":"FunctionDefinition","src":"16185:522:88","nodes":[],"body":{"id":53738,"nodeType":"Block","src":"16429:278:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":53727,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"16470:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53728,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53715,"src":"16499:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53729,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53717,"src":"16523:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53730,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53719,"src":"16561:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53731,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"16589:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53732,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53723,"src":"16615:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53733,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"16648:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16663:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"16648:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16687:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53726,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53943,"src":"16439:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50165_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:261:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53737,"nodeType":"ExpressionStatement","src":"16439:261:88"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16194:17:88","parameters":{"id":53724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53712,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16229:15:88","nodeType":"VariableDeclaration","scope":53739,"src":"16221:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53711,"name":"address","nodeType":"ElementaryTypeName","src":"16221:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53715,"mutability":"mutable","name":"_consensus","nameLocation":"16268:10:88","nodeType":"VariableDeclaration","scope":53739,"src":"16254:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"ConsensusType","nameLocations":["16254:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16254:13:88"},"referencedDeclaration":37359,"src":"16254:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53717,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16296:24:88","nodeType":"VariableDeclaration","scope":53739,"src":"16288:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53716,"name":"uint256","nodeType":"ElementaryTypeName","src":"16288:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53719,"mutability":"mutable","name":"_minValidators","nameLocation":"16337:14:88","nodeType":"VariableDeclaration","scope":53739,"src":"16330:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53718,"name":"uint64","nodeType":"ElementaryTypeName","src":"16330:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53721,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16368:12:88","nodeType":"VariableDeclaration","scope":53739,"src":"16361:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53720,"name":"uint64","nodeType":"ElementaryTypeName","src":"16361:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53723,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16396:19:88","nodeType":"VariableDeclaration","scope":53739,"src":"16390:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53722,"name":"uint8","nodeType":"ElementaryTypeName","src":"16390:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16211:210:88"},"returnParameters":{"id":53725,"nodeType":"ParameterList","parameters":[],"src":"16429:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53943,"nodeType":"FunctionDefinition","src":"16713:2630:88","nodes":[],"body":{"id":53942,"nodeType":"Block","src":"17036:2307:88","nodes":[],"statements":[{"assignments":[53762],"declarations":[{"constant":false,"id":53762,"mutability":"mutable","name":"_parentId","nameLocation":"17062:9:88","nodeType":"VariableDeclaration","scope":53942,"src":"17046:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53761,"nodeType":"UserDefinedTypeName","pathNode":{"id":53760,"name":"SubnetID","nameLocations":["17046:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"17046:8:88"},"referencedDeclaration":50077,"src":"17046:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53771,"initialValue":{"arguments":[{"id":53764,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17083:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17114:1:88","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":53767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17100:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53766,"nodeType":"ArrayTypeName","src":"17104:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53763,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"17074:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"17046:71:88"},{"expression":{"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53772,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17128:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17140:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"SubnetActorManagerFacet","nameLocations":["17144:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"17144:23:88"},"referencedDeclaration":52151,"src":"17144:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17140:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"17128:41:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53778,"nodeType":"ExpressionStatement","src":"17128:41:88"},{"expression":{"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53779,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17179:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17190:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53781,"nodeType":"UserDefinedTypeName","pathNode":{"id":53780,"name":"SubnetActorGetterFacet","nameLocations":["17194:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"17194:22:88"},"referencedDeclaration":50887,"src":"17194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17190:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"17179:39:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53785,"nodeType":"ExpressionStatement","src":"17179:39:88"},{"expression":{"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53786,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17228:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17239:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53788,"nodeType":"UserDefinedTypeName","pathNode":{"id":53787,"name":"DiamondCutFacet","nameLocations":["17243:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"17243:15:88"},"referencedDeclaration":36918,"src":"17243:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17239:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"17228:32:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53792,"nodeType":"ExpressionStatement","src":"17228:32:88"},{"expression":{"id":53798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53793,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"17270:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17281:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53795,"nodeType":"UserDefinedTypeName","pathNode":{"id":53794,"name":"DiamondLoupeFacet","nameLocations":["17285:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"17285:17:88"},"referencedDeclaration":37355,"src":"17285:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17281:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"17270:34:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53799,"nodeType":"ExpressionStatement","src":"17270:34:88"},{"assignments":[53805],"declarations":[{"constant":false,"id":53805,"mutability":"mutable","name":"diamondCut","nameLocation":"17342:10:88","nodeType":"VariableDeclaration","scope":53942,"src":"17315:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53803,"nodeType":"UserDefinedTypeName","pathNode":{"id":53802,"name":"IDiamond.FacetCut","nameLocations":["17315:8:88","17324:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17315:17:88"},"referencedDeclaration":40159,"src":"17315:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53804,"nodeType":"ArrayTypeName","src":"17315:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53812,"initialValue":{"arguments":[{"hexValue":"34","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17379:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17355:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53807,"nodeType":"UserDefinedTypeName","pathNode":{"id":53806,"name":"IDiamond.FacetCut","nameLocations":["17359:8:88","17368:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17359:17:88"},"referencedDeclaration":40159,"src":"17359:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53808,"nodeType":"ArrayTypeName","src":"17359:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17355:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17315:66:88"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17392:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"30","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17403:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17392:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17480:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17472:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17472:7:88","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17472:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17516:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17516:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17540:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17516:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"17580:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17422:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17431:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17422:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17458:12:88","17508:6:88","17561:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17422:191:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17408:215:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17392:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17392:231:88"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17634:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"31","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17645:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17634:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17722:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17714:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17714:7:88","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17757:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17766:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17757:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17781:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17757:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"17821:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17664:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17673:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17664:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17700:12:88","17749:6:88","17802:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17664:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17650:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17634:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17634:229:88"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17874:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"32","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17885:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17874:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17962:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17954:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"17954:7:88","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17954:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17997:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18006:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17997:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18021:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17997:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"18061:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17904:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17904:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17940:12:88","17989:6:88","18042:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17904:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17890:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17874:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17874:229:88"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18114:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"33","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18125:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18114:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"18202:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18194:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18194:7:88","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18194:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18237:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18246:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18237:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18261:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18237:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"18301:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18144:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18153:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18144:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18180:12:88","18229:6:88","18282:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18144:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18130:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18114:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18114:229:88"},{"expression":{"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53881,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"18354:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53885,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18402:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":53888,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53762,"src":"18491:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53889,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"18534:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53890,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18578:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53891,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"18631:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53892,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53748,"src":"18688:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53893,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53750,"src":"18741:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53894,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18791:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53895,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53757,"src":"18851:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":53896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18903:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":53897,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53755,"src":"18939:15:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53898,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"18988:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"19041:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19060:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"19041:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19041:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53886,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"18426:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18445:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"18426:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18481:8:88","18518:14:88","18567:9:88","18606:23:88","18673:13:88","18720:19:88","18771:18:88","18828:21:88","18891:10:88","18923:14:88","18972:14:88","19027:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"18426:657:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18366:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53883,"nodeType":"UserDefinedTypeName","pathNode":{"id":53882,"name":"SubnetActorDiamond","nameLocations":["18370:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18370:18:88"},"referencedDeclaration":36615,"src":"18370:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18366:727:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"18354:739:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53905,"nodeType":"ExpressionStatement","src":"18354:739:88"},{"expression":{"id":53913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53906,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19104:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53910,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19148:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19140:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53908,"name":"address","nodeType":"ElementaryTypeName","src":"19140:7:88","typeDescriptions":{}}},"id":53911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19140:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53907,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"19116:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19116:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"19104:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53914,"nodeType":"ExpressionStatement","src":"19104:55:88"},{"expression":{"id":53922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53915,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"19169:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53919,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19211:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53917,"name":"address","nodeType":"ElementaryTypeName","src":"19203:7:88","typeDescriptions":{}}},"id":53920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19203:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53916,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"19180:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19180:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"19169:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53923,"nodeType":"ExpressionStatement","src":"19169:53:88"},{"expression":{"id":53931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53924,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"19232:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53928,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19267:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19259:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53926,"name":"address","nodeType":"ElementaryTypeName","src":"19259:7:88","typeDescriptions":{}}},"id":53929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53925,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"19243:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19232:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53932,"nodeType":"ExpressionStatement","src":"19232:46:88"},{"expression":{"id":53940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53933,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"19288:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53937,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19325:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19317:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53935,"name":"address","nodeType":"ElementaryTypeName","src":"19317:7:88","typeDescriptions":{}}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19317:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53934,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"19299:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19299:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"19288:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53941,"nodeType":"ExpressionStatement","src":"19288:48:88"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16722:17:88","parameters":{"id":53758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53741,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16757:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16749:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53740,"name":"address","nodeType":"ElementaryTypeName","src":"16749:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53744,"mutability":"mutable","name":"_consensus","nameLocation":"16796:10:88","nodeType":"VariableDeclaration","scope":53943,"src":"16782:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"ConsensusType","nameLocations":["16782:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16782:13:88"},"referencedDeclaration":37359,"src":"16782:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53746,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16824:24:88","nodeType":"VariableDeclaration","scope":53943,"src":"16816:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"16816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53748,"mutability":"mutable","name":"_minValidators","nameLocation":"16865:14:88","nodeType":"VariableDeclaration","scope":53943,"src":"16858:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53747,"name":"uint64","nodeType":"ElementaryTypeName","src":"16858:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53750,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16896:12:88","nodeType":"VariableDeclaration","scope":53943,"src":"16889:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53749,"name":"uint64","nodeType":"ElementaryTypeName","src":"16889:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53752,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16924:19:88","nodeType":"VariableDeclaration","scope":53943,"src":"16918:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53751,"name":"uint8","nodeType":"ElementaryTypeName","src":"16918:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53755,"mutability":"mutable","name":"_permissionMode","nameLocation":"16968:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16953:30:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"PermissionMode","nameLocations":["16953:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"16953:14:88"},"referencedDeclaration":50165,"src":"16953:14:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53757,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"17000:22:88","nodeType":"VariableDeclaration","scope":53943,"src":"16993:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53756,"name":"uint16","nodeType":"ElementaryTypeName","src":"16993:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16739:289:88"},"returnParameters":{"id":53759,"nodeType":"ParameterList","parameters":[],"src":"17036:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54036,"nodeType":"FunctionDefinition","src":"19349:1021:88","nodes":[],"body":{"id":54035,"nodeType":"Block","src":"19441:929:88","nodes":[],"statements":[{"assignments":[53953],"declarations":[{"constant":false,"id":53953,"mutability":"mutable","name":"mockedManager","nameLocation":"19479:13:88","nodeType":"VariableDeclaration","scope":54035,"src":"19451:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":53952,"nodeType":"UserDefinedTypeName","pathNode":{"id":53951,"name":"SubnetActorManagerFacetMock","nameLocations":["19451:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19451:27:88"},"referencedDeclaration":57957,"src":"19451:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":53958,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19495:31:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"SubnetActorManagerFacetMock","nameLocations":["19499:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19499:27:88"},"referencedDeclaration":57957,"src":"19499:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}},"id":53957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19495:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"19451:77:88"},{"assignments":[53961],"declarations":[{"constant":false,"id":53961,"mutability":"mutable","name":"getter","nameLocation":"19561:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"19538:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53960,"nodeType":"UserDefinedTypeName","pathNode":{"id":53959,"name":"SubnetActorGetterFacet","nameLocations":["19538:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19538:22:88"},"referencedDeclaration":50887,"src":"19538:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19570:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetActorGetterFacet","nameLocations":["19574:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19574:22:88"},"referencedDeclaration":50887,"src":"19574:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19570:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"19538:60:88"},{"assignments":[53972],"declarations":[{"constant":false,"id":53972,"mutability":"mutable","name":"diamondCut","nameLocation":"19636:10:88","nodeType":"VariableDeclaration","scope":54035,"src":"19609:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53970,"nodeType":"UserDefinedTypeName","pathNode":{"id":53969,"name":"IDiamond.FacetCut","nameLocations":["19609:8:88","19618:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19609:17:88"},"referencedDeclaration":40159,"src":"19609:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53971,"nodeType":"ArrayTypeName","src":"19609:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53979,"initialValue":{"arguments":[{"hexValue":"32","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19673:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19649:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53974,"nodeType":"UserDefinedTypeName","pathNode":{"id":53973,"name":"IDiamond.FacetCut","nameLocations":["19653:8:88","19662:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19653:17:88"},"referencedDeclaration":40159,"src":"19653:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53975,"nodeType":"ArrayTypeName","src":"19653:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19649:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19609:66:88"},{"expression":{"id":53995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53980,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19686:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53982,"indexExpression":{"hexValue":"30","id":53981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19686:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53987,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"19774:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}],"id":53986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19766:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53985,"name":"address","nodeType":"ElementaryTypeName","src":"19766:7:88","typeDescriptions":{}}},"id":53988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19766:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53989,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19814:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19823:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"19814:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19838:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"19814:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53992,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"19878:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53983,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19716:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19716:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19752:12:88","19806:6:88","19859:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19716:201:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19702:225:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19686:241:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53996,"nodeType":"ExpressionStatement","src":"19686:241:88"},{"expression":{"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53997,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19938:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53999,"indexExpression":{"hexValue":"31","id":53998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19938:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54004,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53961,"src":"20026:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":54003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20018:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54002,"name":"address","nodeType":"ElementaryTypeName","src":"20018:7:88","typeDescriptions":{}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20018:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54006,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20059:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20068:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20059:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20083:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20059:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54009,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"20123:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54000,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19968:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19977:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19968:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20004:12:88","20051:6:88","20104:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19968:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19954:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19938:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54013,"nodeType":"ExpressionStatement","src":"19938:227:88"},{"assignments":[54018],"declarations":[{"constant":false,"id":54018,"mutability":"mutable","name":"params","nameLocation":"20220:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"20176:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["20176:18:88","20195:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"20176:36:88"},"referencedDeclaration":36253,"src":"20176:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54022,"initialValue":{"arguments":[{"id":54020,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"20265:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54019,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"20229:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20229:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"20176:92:88"},{"assignments":[54025],"declarations":[{"constant":false,"id":54025,"mutability":"mutable","name":"d","nameLocation":"20298:1:88","nodeType":"VariableDeclaration","scope":54035,"src":"20279:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54024,"nodeType":"UserDefinedTypeName","pathNode":{"id":54023,"name":"SubnetActorDiamond","nameLocations":["20279:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20279:18:88"},"referencedDeclaration":36615,"src":"20279:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54032,"initialValue":{"arguments":[{"id":54029,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"20325:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54030,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54018,"src":"20337:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20302:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54027,"nodeType":"UserDefinedTypeName","pathNode":{"id":54026,"name":"SubnetActorDiamond","nameLocations":["20306:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20306:18:88"},"referencedDeclaration":36615,"src":"20306:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"20279:65:88"},{"expression":{"id":54033,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54025,"src":"20362:1:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53950,"id":54034,"nodeType":"Return","src":"20355:8:88"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"19358:34:88","parameters":{"id":53946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53945,"mutability":"mutable","name":"gw","nameLocation":"19401:2:88","nodeType":"VariableDeclaration","scope":54036,"src":"19393:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53944,"name":"address","nodeType":"ElementaryTypeName","src":"19393:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19392:12:88"},"returnParameters":{"id":53950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54036,"src":"19421:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetActorDiamond","nameLocations":["19421:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"19421:18:88"},"referencedDeclaration":36615,"src":"19421:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"19420:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54178,"nodeType":"FunctionDefinition","src":"20422:1703:88","nodes":[],"body":{"id":54177,"nodeType":"Block","src":"20560:1565:88","nodes":[],"statements":[{"assignments":[54050],"declarations":[{"constant":false,"id":54050,"mutability":"mutable","name":"diamondCut","nameLocation":"20597:10:88","nodeType":"VariableDeclaration","scope":54177,"src":"20570:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54048,"nodeType":"UserDefinedTypeName","pathNode":{"id":54047,"name":"IDiamond.FacetCut","nameLocations":["20570:8:88","20579:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20570:17:88"},"referencedDeclaration":40159,"src":"20570:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54049,"nodeType":"ArrayTypeName","src":"20570:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54057,"initialValue":{"arguments":[{"hexValue":"34","id":54055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20610:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54052,"nodeType":"UserDefinedTypeName","pathNode":{"id":54051,"name":"IDiamond.FacetCut","nameLocations":["20614:8:88","20623:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20614:17:88"},"referencedDeclaration":40159,"src":"20614:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54053,"nodeType":"ArrayTypeName","src":"20614:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20610:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20570:66:88"},{"assignments":[54060],"declarations":[{"constant":false,"id":54060,"mutability":"mutable","name":"regCutFacet","nameLocation":"20663:11:88","nodeType":"VariableDeclaration","scope":54177,"src":"20647:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54059,"nodeType":"UserDefinedTypeName","pathNode":{"id":54058,"name":"DiamondCutFacet","nameLocations":["20647:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20647:15:88"},"referencedDeclaration":36918,"src":"20647:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20677:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54062,"nodeType":"UserDefinedTypeName","pathNode":{"id":54061,"name":"DiamondCutFacet","nameLocations":["20681:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20681:15:88"},"referencedDeclaration":36918,"src":"20681:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20677:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"20647:51:88"},{"assignments":[54068],"declarations":[{"constant":false,"id":54068,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"20726:13:88","nodeType":"VariableDeclaration","scope":54177,"src":"20708:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54067,"nodeType":"UserDefinedTypeName","pathNode":{"id":54066,"name":"DiamondLoupeFacet","nameLocations":["20708:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20708:17:88"},"referencedDeclaration":37355,"src":"20708:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54073,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20742:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54070,"nodeType":"UserDefinedTypeName","pathNode":{"id":54069,"name":"DiamondLoupeFacet","nameLocations":["20746:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20746:17:88"},"referencedDeclaration":37355,"src":"20746:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20742:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"20708:57:88"},{"assignments":[54076],"declarations":[{"constant":false,"id":54076,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"20795:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20775:34:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54075,"nodeType":"UserDefinedTypeName","pathNode":{"id":54074,"name":"RegisterSubnetFacet","nameLocations":["20775:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20775:19:88"},"referencedDeclaration":52279,"src":"20775:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20812:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54078,"nodeType":"UserDefinedTypeName","pathNode":{"id":54077,"name":"RegisterSubnetFacet","nameLocations":["20816:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20816:19:88"},"referencedDeclaration":52279,"src":"20816:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"20775:62:88"},{"assignments":[54084],"declarations":[{"constant":false,"id":54084,"mutability":"mutable","name":"regGetterFacet","nameLocation":"20865:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20847:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54083,"nodeType":"UserDefinedTypeName","pathNode":{"id":54082,"name":"SubnetGetterFacet","nameLocations":["20847:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20847:17:88"},"referencedDeclaration":52517,"src":"20847:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20882:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54086,"nodeType":"UserDefinedTypeName","pathNode":{"id":54085,"name":"SubnetGetterFacet","nameLocations":["20886:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20886:17:88"},"referencedDeclaration":52517,"src":"20886:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}},"id":54088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20882:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"20847:58:88"},{"expression":{"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54090,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"20916:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54092,"indexExpression":{"hexValue":"30","id":54091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20927:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20916:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54097,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54068,"src":"21004:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20996:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54095,"name":"address","nodeType":"ElementaryTypeName","src":"20996:7:88","typeDescriptions":{}}},"id":54098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20996:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54099,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21044:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21053:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21044:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21068:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21044:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54102,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"21108:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54093,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20946:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20955:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20946:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20982:12:88","21036:6:88","21089:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20946:200:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20932:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20916:240:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54106,"nodeType":"ExpressionStatement","src":"20916:240:88"},{"expression":{"id":54122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54107,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21166:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54109,"indexExpression":{"hexValue":"31","id":54108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21177:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21166:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54114,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54060,"src":"21254:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21246:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54112,"name":"address","nodeType":"ElementaryTypeName","src":"21246:7:88","typeDescriptions":{}}},"id":54115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21246:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54116,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21292:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21301:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21292:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21316:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21292:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54119,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"21356:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54110,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21196:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21205:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21196:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21232:12:88","21284:6:88","21337:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21196:198:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21182:222:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21166:238:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54123,"nodeType":"ExpressionStatement","src":"21166:238:88"},{"expression":{"id":54139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54124,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21414:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54126,"indexExpression":{"hexValue":"32","id":54125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21425:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21414:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54131,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54076,"src":"21502:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}],"id":54130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21494:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54129,"name":"address","nodeType":"ElementaryTypeName","src":"21494:7:88","typeDescriptions":{}}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54133,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21543:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21552:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21543:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21567:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21543:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54136,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"21607:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54127,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21453:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21444:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21480:12:88","21535:6:88","21588:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21444:206:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21430:230:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21414:246:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54140,"nodeType":"ExpressionStatement","src":"21414:246:88"},{"expression":{"id":54156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54141,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21670:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54143,"indexExpression":{"hexValue":"33","id":54142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21681:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21670:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54148,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54084,"src":"21758:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}],"id":54147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21750:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54146,"name":"address","nodeType":"ElementaryTypeName","src":"21750:7:88","typeDescriptions":{}}},"id":54149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21750:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54150,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21799:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21808:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21799:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21823:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21799:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54153,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"21863:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54144,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21700:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21709:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21700:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21736:12:88","21791:6:88","21844:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21700:212:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21686:236:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21670:252:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54157,"nodeType":"ExpressionStatement","src":"21670:252:88"},{"assignments":[54160],"declarations":[{"constant":false,"id":54160,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"21955:17:88","nodeType":"VariableDeclaration","scope":54177,"src":"21933:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54159,"nodeType":"UserDefinedTypeName","pathNode":{"id":54158,"name":"SubnetRegistryDiamond","nameLocations":["21933:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21933:21:88"},"referencedDeclaration":36853,"src":"21933:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54167,"initialValue":{"arguments":[{"id":54164,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"22001:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54165,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54039,"src":"22013:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21975:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54162,"nodeType":"UserDefinedTypeName","pathNode":{"id":54161,"name":"SubnetRegistryDiamond","nameLocations":["21979:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21979:21:88"},"referencedDeclaration":36853,"src":"21979:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21975:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"21933:87:88"},{"eventCall":{"arguments":[{"arguments":[{"id":54171,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22065:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22057:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54169,"name":"address","nodeType":"ElementaryTypeName","src":"22057:7:88","typeDescriptions":{}}},"id":54172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22057:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54168,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53071,"src":"22035:21:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54174,"nodeType":"EmitStatement","src":"22030:54:88"},{"expression":{"id":54175,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22101:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54044,"id":54176,"nodeType":"Return","src":"22094:24:88"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"20431:20:88","parameters":{"id":54040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54039,"mutability":"mutable","name":"params","nameLocation":"20508:6:88","nodeType":"VariableDeclaration","scope":54178,"src":"20461:53:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54038,"nodeType":"UserDefinedTypeName","pathNode":{"id":54037,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["20461:21:88","20483:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"20461:39:88"},"referencedDeclaration":36652,"src":"20461:39:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"20451:69:88"},"returnParameters":{"id":54044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54178,"src":"20537:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54042,"nodeType":"UserDefinedTypeName","pathNode":{"id":54041,"name":"SubnetRegistryDiamond","nameLocations":["20537:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"20537:21:88"},"referencedDeclaration":36853,"src":"20537:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"20536:23:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54207,"nodeType":"FunctionDefinition","src":"22131:190:88","nodes":[],"body":{"id":54206,"nodeType":"Block","src":"22212:109:88","nodes":[],"statements":[{"body":{"id":54202,"nodeType":"Block","src":"22253:42:88","statements":[{"expression":{"id":54200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54196,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22267:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54197,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54181,"src":"22274:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54199,"indexExpression":{"id":54198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22282:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22274:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22267:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54201,"nodeType":"ExpressionStatement","src":"22267:17:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22241:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"22241:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54203,"initializationExpression":{"assignments":[54187],"declarations":[{"constant":false,"id":54187,"mutability":"mutable","name":"i","nameLocation":"22234:1:88","nodeType":"VariableDeclaration","scope":54203,"src":"22227:8:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54186,"name":"uint64","nodeType":"ElementaryTypeName","src":"22227:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54189,"initialValue":{"hexValue":"30","id":54188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22238:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22227:12:88"},"loopExpression":{"expression":{"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22248:3:88","subExpression":{"id":54193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22248:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54195,"nodeType":"ExpressionStatement","src":"22248:3:88"},"nodeType":"ForStatement","src":"22222:73:88"},{"expression":{"id":54204,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22311:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54185,"id":54205,"nodeType":"Return","src":"22304:10:88"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"22140:11:88","parameters":{"id":54182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54181,"mutability":"mutable","name":"weights","nameLocation":"22169:7:88","nodeType":"VariableDeclaration","scope":54207,"src":"22152:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54179,"name":"uint256","nodeType":"ElementaryTypeName","src":"22152:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54180,"nodeType":"ArrayTypeName","src":"22152:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"22151:26:88"},"returnParameters":{"id":54185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54184,"mutability":"mutable","name":"sum","nameLocation":"22207:3:88","nodeType":"VariableDeclaration","scope":54207,"src":"22199:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54183,"name":"uint256","nodeType":"ElementaryTypeName","src":"22199:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22198:13:88"},"scope":55375,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54382,"nodeType":"FunctionDefinition","src":"22327:933:88","nodes":[],"body":{"id":54381,"nodeType":"Block","src":"22430:830:88","nodes":[],"statements":[{"expression":{"id":54224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54217,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22440:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22470:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22453:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54219,"nodeType":"UserDefinedTypeName","pathNode":{"id":54218,"name":"FvmAddress","nameLocations":["22457:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22457:10:88"},"referencedDeclaration":49998,"src":"22457:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54220,"nodeType":"ArrayTypeName","src":"22457:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"22440:32:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54225,"nodeType":"ExpressionStatement","src":"22440:32:88"},{"expression":{"id":54236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54226,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22482:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54228,"indexExpression":{"hexValue":"30","id":54227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22493:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22482:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22528:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22520:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22523:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22520:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22520:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54229,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22498:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22515:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22498:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22498:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22482:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54237,"nodeType":"ExpressionStatement","src":"22482:51:88"},{"expression":{"id":54248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22543:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54240,"indexExpression":{"hexValue":"31","id":54239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22554:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22543:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54243,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22581:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22584:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22581:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22581:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54241,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22559:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22576:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22559:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22559:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22543:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54249,"nodeType":"ExpressionStatement","src":"22543:51:88"},{"expression":{"id":54260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54250,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22604:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54252,"indexExpression":{"hexValue":"32","id":54251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22615:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22604:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22650:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22642:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22645:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22642:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54253,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22620:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22637:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22620:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22620:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22604:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54261,"nodeType":"ExpressionStatement","src":"22604:51:88"},{"expression":{"id":54268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54262,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22666:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22692:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22678:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54263,"name":"address","nodeType":"ElementaryTypeName","src":"22682:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54264,"nodeType":"ArrayTypeName","src":"22682:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22678:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"22666:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54269,"nodeType":"ExpressionStatement","src":"22666:28:88"},{"expression":{"id":54277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54270,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22704:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54272,"indexExpression":{"hexValue":"30","id":54271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22714:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22704:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22727:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22719:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22722:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22719:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22719:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22704:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54278,"nodeType":"ExpressionStatement","src":"22704:27:88"},{"expression":{"id":54286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54279,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22741:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54281,"indexExpression":{"hexValue":"31","id":54280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22741:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22764:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54282,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22756:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22759:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22756:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22756:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22741:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54287,"nodeType":"ExpressionStatement","src":"22741:27:88"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54288,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22778:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54290,"indexExpression":{"hexValue":"32","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22788:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22778:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22801:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54291,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22793:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22796:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22793:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22793:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22778:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54296,"nodeType":"ExpressionStatement","src":"22778:27:88"},{"assignments":[54301],"declarations":[{"constant":false,"id":54301,"mutability":"mutable","name":"weights","nameLocation":"22833:7:88","nodeType":"VariableDeclaration","scope":54381,"src":"22816:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54299,"name":"uint256","nodeType":"ElementaryTypeName","src":"22816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54300,"nodeType":"ArrayTypeName","src":"22816:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54307,"initialValue":{"arguments":[{"hexValue":"33","id":54305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22857:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22843:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54302,"name":"uint256","nodeType":"ElementaryTypeName","src":"22847:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54303,"nodeType":"ArrayTypeName","src":"22847:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22816:43:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22886:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22878:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22881:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22878:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22878:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22892:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22870:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22873:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22870:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22870:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54317,"nodeType":"ExpressionStatement","src":"22870:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22920:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54321,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22912:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22915:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22912:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54318,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22904:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22907:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22904:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22904:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54327,"nodeType":"ExpressionStatement","src":"22904:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22954:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22946:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22949:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22946:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22946:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22960:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54328,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22938:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22941:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22938:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54337,"nodeType":"ExpressionStatement","src":"22938:24:88"},{"expression":{"id":54342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54338,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22973:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54340,"indexExpression":{"hexValue":"30","id":54339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22981:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22973:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22986:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22973:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54343,"nodeType":"ExpressionStatement","src":"22973:16:88"},{"expression":{"id":54348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54344,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22999:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54346,"indexExpression":{"hexValue":"31","id":54345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23007:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22999:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23012:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22999:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54349,"nodeType":"ExpressionStatement","src":"22999:16:88"},{"expression":{"id":54354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54350,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"23025:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54352,"indexExpression":{"hexValue":"32","id":54351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23033:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23025:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23038:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23025:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54355,"nodeType":"ExpressionStatement","src":"23025:16:88"},{"assignments":[54358],"declarations":[{"constant":false,"id":54358,"mutability":"mutable","name":"finality","nameLocation":"23074:8:88","nodeType":"VariableDeclaration","scope":54381,"src":"23052:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54357,"nodeType":"UserDefinedTypeName","pathNode":{"id":54356,"name":"ParentFinality","nameLocations":["23052:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"23052:14:88"},"referencedDeclaration":49918,"src":"23052:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54367,"initialValue":{"arguments":[{"expression":{"id":54360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23109:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:6:88","memberName":"number","nodeType":"MemberAccess","src":"23109:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23142:1:88","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":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23134:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23134:7:88","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23134:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54359,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"23085:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23101:6:88","23123:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"23085:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"23052:94:88"},{"expression":{"arguments":[{"expression":{"id":54371,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"23166:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23177:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"23166:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54368,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23157:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23160:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23157:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23157:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54374,"nodeType":"ExpressionStatement","src":"23157:33:88"},{"expression":{"arguments":[{"id":54378,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"23244:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54375,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"23200:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23223:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"23200:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54380,"nodeType":"ExpressionStatement","src":"23200:53:88"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"22336:15:88","parameters":{"id":54208,"nodeType":"ParameterList","parameters":[],"src":"22351:2:88"},"returnParameters":{"id":54216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54212,"mutability":"mutable","name":"validators","nameLocation":"22390:10:88","nodeType":"VariableDeclaration","scope":54382,"src":"22370:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54210,"nodeType":"UserDefinedTypeName","pathNode":{"id":54209,"name":"FvmAddress","nameLocations":["22370:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22370:10:88"},"referencedDeclaration":49998,"src":"22370:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54211,"nodeType":"ArrayTypeName","src":"22370:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54215,"mutability":"mutable","name":"addresses","nameLocation":"22419:9:88","nodeType":"VariableDeclaration","scope":54382,"src":"22402:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54213,"name":"address","nodeType":"ElementaryTypeName","src":"22402:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54214,"nodeType":"ArrayTypeName","src":"22402:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"22369:60:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54475,"nodeType":"FunctionDefinition","src":"23266:1297:88","nodes":[],"body":{"id":54474,"nodeType":"Block","src":"23350:1213:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54392,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"23375:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54393,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23402:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54391,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"23360:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23360:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54395,"nodeType":"ExpressionStatement","src":"23360:46:88"},{"assignments":[54398],"declarations":[{"constant":false,"id":54398,"mutability":"mutable","name":"crossMsg","nameLocation":"23433:8:88","nodeType":"VariableDeclaration","scope":54474,"src":"23417:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54397,"nodeType":"UserDefinedTypeName","pathNode":{"id":54396,"name":"CrossMsg","nameLocations":["23417:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"23417:8:88"},"referencedDeclaration":49974,"src":"23417:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54438,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54406,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23596:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54402,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23555:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23564:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23555:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23581:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23555:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54410,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23659:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54408,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23637:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23654:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23637:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23637:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54401,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23512:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23545:8:88","23625:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23512:173:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54418,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23791:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54414,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23750:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23759:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23750:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23750:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54422,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23851:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54420,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23829:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23846:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23829:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23829:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54413,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23707:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23740:8:88","23817:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23707:167:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54425,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"23899:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23899:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54429,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"23976:11:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24023:1:88","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":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24013:9:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54430,"name":"bytes","nodeType":"ElementaryTypeName","src":"24017:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24013:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54434,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"24048:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54400,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"23476:11:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23506:4:88","23703:2:88","23892:5:88","23942:5:88","23968:6:88","24005:6:88","24043:3:88"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"23476:608:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24107:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54399,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"23444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23467:7:88","24098:7:88"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"23444:679:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"23417:706:88"},{"assignments":[54443],"declarations":[{"constant":false,"id":54443,"mutability":"mutable","name":"msgs","nameLocation":"24151:4:88","nodeType":"VariableDeclaration","scope":54474,"src":"24133:22:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54441,"nodeType":"UserDefinedTypeName","pathNode":{"id":54440,"name":"CrossMsg","nameLocations":["24133:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24133:8:88"},"referencedDeclaration":49974,"src":"24133:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54442,"nodeType":"ArrayTypeName","src":"24133:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54450,"initialValue":{"arguments":[{"hexValue":"31","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24173:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24158:14:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54445,"nodeType":"UserDefinedTypeName","pathNode":{"id":54444,"name":"CrossMsg","nameLocations":["24162:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24162:8:88"},"referencedDeclaration":49974,"src":"24162:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54446,"nodeType":"ArrayTypeName","src":"24162:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24158:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24133:42:88"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24185:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54453,"indexExpression":{"hexValue":"30","id":54452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24190:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24185:7:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54454,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24195:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"24185:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54456,"nodeType":"ExpressionStatement","src":"24185:18:88"},{"expression":{"arguments":[{"expression":{"id":54460,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"24442:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24453:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"24442:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24433:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24436:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"24433:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24433:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54463,"nodeType":"ExpressionStatement","src":"24433:33:88"},{"expression":{"arguments":[{"id":54467,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24516:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54464,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"24476:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24497:18:88","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"24476:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24476:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54469,"nodeType":"ExpressionStatement","src":"24476:45:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54470,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24539:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24548:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"24539:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24539:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54390,"id":54473,"nodeType":"Return","src":"24532:24:88"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"23275:20:88","parameters":{"id":54387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54384,"mutability":"mutable","name":"caller","nameLocation":"23304:6:88","nodeType":"VariableDeclaration","scope":54475,"src":"23296:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54383,"name":"address","nodeType":"ElementaryTypeName","src":"23296:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54386,"mutability":"mutable","name":"src","nameLocation":"23320:3:88","nodeType":"VariableDeclaration","scope":54475,"src":"23312:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54385,"name":"address","nodeType":"ElementaryTypeName","src":"23312:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23295:29:88"},"returnParameters":{"id":54390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54475,"src":"23341:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23341:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23340:9:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54486,"nodeType":"FunctionDefinition","src":"24569:93:88","nodes":[],"body":{"id":54485,"nodeType":"Block","src":"24617:45:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54481,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54477,"src":"24640:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24651:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54480,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"24627:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24627:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54484,"nodeType":"ExpressionStatement","src":"24627:28:88"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24578:12:88","parameters":{"id":54478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54477,"mutability":"mutable","name":"validator","nameLocation":"24599:9:88","nodeType":"VariableDeclaration","scope":54486,"src":"24591:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54476,"name":"address","nodeType":"ElementaryTypeName","src":"24591:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24590:19:88"},"returnParameters":{"id":54479,"nodeType":"ParameterList","parameters":[],"src":"24617:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54569,"nodeType":"FunctionDefinition","src":"24668:610:88","nodes":[],"body":{"id":54568,"nodeType":"Block","src":"24732:546:88","nodes":[],"statements":[{"assignments":[54497],"declarations":[{"constant":false,"id":54497,"mutability":"mutable","name":"validators","nameLocation":"24762:10:88","nodeType":"VariableDeclaration","scope":54568,"src":"24742:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54495,"nodeType":"UserDefinedTypeName","pathNode":{"id":54494,"name":"FvmAddress","nameLocations":["24742:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24742:10:88"},"referencedDeclaration":49998,"src":"24742:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54496,"nodeType":"ArrayTypeName","src":"24742:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54504,"initialValue":{"arguments":[{"hexValue":"31","id":54502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24792:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24775:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54499,"nodeType":"UserDefinedTypeName","pathNode":{"id":54498,"name":"FvmAddress","nameLocations":["24779:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24779:10:88"},"referencedDeclaration":49998,"src":"24779:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54500,"nodeType":"ArrayTypeName","src":"24779:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24775:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24742:52:88"},{"expression":{"id":54512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54505,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54497,"src":"24804:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54507,"indexExpression":{"hexValue":"30","id":54506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24815:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24804:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24842:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54508,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"24820:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24837:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"24820:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24820:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"24804:48:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54513,"nodeType":"ExpressionStatement","src":"24804:48:88"},{"assignments":[54518],"declarations":[{"constant":false,"id":54518,"mutability":"mutable","name":"weights","nameLocation":"24879:7:88","nodeType":"VariableDeclaration","scope":54568,"src":"24862:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54516,"name":"uint256","nodeType":"ElementaryTypeName","src":"24862:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54517,"nodeType":"ArrayTypeName","src":"24862:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54524,"initialValue":{"arguments":[{"hexValue":"31","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24903:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24889:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54519,"name":"uint256","nodeType":"ElementaryTypeName","src":"24893:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54520,"nodeType":"ArrayTypeName","src":"24893:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24889:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24862:43:88"},{"expression":{"id":54529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54525,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54518,"src":"24915:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54527,"indexExpression":{"hexValue":"30","id":54526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24915:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54528,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54490,"src":"24928:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24915:19:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54530,"nodeType":"ExpressionStatement","src":"24915:19:88"},{"expression":{"arguments":[{"id":54534,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24953:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24964:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24945:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24948:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"24945:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24945:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54537,"nodeType":"ExpressionStatement","src":"24945:21:88"},{"assignments":[54540],"declarations":[{"constant":false,"id":54540,"mutability":"mutable","name":"finality","nameLocation":"24998:8:88","nodeType":"VariableDeclaration","scope":54568,"src":"24976:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54539,"nodeType":"UserDefinedTypeName","pathNode":{"id":54538,"name":"ParentFinality","nameLocations":["24976:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"24976:14:88"},"referencedDeclaration":49918,"src":"24976:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54549,"initialValue":{"arguments":[{"expression":{"id":54542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25033:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25039:6:88","memberName":"number","nodeType":"MemberAccess","src":"25033:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25066:1:88","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":54545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25058:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25058:7:88","typeDescriptions":{}}},"id":54547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25058:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54541,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"25009:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25025:6:88","25047:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"25009:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"24976:94:88"},{"expression":{"arguments":[{"expression":{"id":54553,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"25160:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25171:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"25160:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54550,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25146:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25149:10:88","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"25146:13:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54556,"nodeType":"ExpressionStatement","src":"25146:38:88"},{"expression":{"arguments":[{"id":54560,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"25238:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54557,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"25194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25217:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"25194:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54562,"nodeType":"ExpressionStatement","src":"25194:53:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25257:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:9:88","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"25257:12:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25257:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54567,"nodeType":"ExpressionStatement","src":"25257:14:88"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24677:12:88","parameters":{"id":54491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54488,"mutability":"mutable","name":"validator","nameLocation":"24698:9:88","nodeType":"VariableDeclaration","scope":54569,"src":"24690:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54487,"name":"address","nodeType":"ElementaryTypeName","src":"24690:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54490,"mutability":"mutable","name":"weight","nameLocation":"24717:6:88","nodeType":"VariableDeclaration","scope":54569,"src":"24709:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54489,"name":"uint256","nodeType":"ElementaryTypeName","src":"24709:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24689:35:88"},"returnParameters":{"id":54492,"nodeType":"ParameterList","parameters":[],"src":"24732:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54582,"nodeType":"FunctionDefinition","src":"25284:112:88","nodes":[],"body":{"id":54581,"nodeType":"Block","src":"25328:68:88","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25350:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54571,"src":"25382:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54574,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"25338:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25346:3:88","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"25338:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25338:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54580,"nodeType":"ExpressionStatement","src":"25338:51:88"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"25293:6:88","parameters":{"id":54572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54571,"mutability":"mutable","name":"amount","nameLocation":"25308:6:88","nodeType":"VariableDeclaration","scope":54582,"src":"25300:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54570,"name":"uint256","nodeType":"ElementaryTypeName","src":"25300:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25299:16:88"},"returnParameters":{"id":54573,"nodeType":"ParameterList","parameters":[],"src":"25328:0:88"},"scope":55375,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54597,"nodeType":"FunctionDefinition","src":"25402:131:88","nodes":[],"body":{"id":54596,"nodeType":"Block","src":"25466:67:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54590,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54584,"src":"25481:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54591,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54586,"src":"25496:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54592,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"25508:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25519:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"25508:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"id":54589,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54597,54722],"referencedDeclaration":54722,"src":"25476:4:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50229_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25476:50:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54595,"nodeType":"ExpressionStatement","src":"25476:50:88"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25411:4:88","parameters":{"id":54587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54584,"mutability":"mutable","name":"funderAddress","nameLocation":"25424:13:88","nodeType":"VariableDeclaration","scope":54597,"src":"25416:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54583,"name":"address","nodeType":"ElementaryTypeName","src":"25416:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54586,"mutability":"mutable","name":"fundAmount","nameLocation":"25447:10:88","nodeType":"VariableDeclaration","scope":54597,"src":"25439:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25439:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25415:43:88"},"returnParameters":{"id":54588,"nodeType":"ParameterList","parameters":[],"src":"25466:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54722,"nodeType":"FunctionDefinition","src":"25539:1180:88","nodes":[],"body":{"id":54721,"nodeType":"Block","src":"25620:1099:88","nodes":[],"statements":[{"assignments":[54609,null,54611,null,54613],"declarations":[{"constant":false,"id":54609,"mutability":"mutable","name":"subnetId","nameLocation":"25712:8:88","nodeType":"VariableDeclaration","scope":54721,"src":"25696:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54608,"nodeType":"UserDefinedTypeName","pathNode":{"id":54607,"name":"SubnetID","nameLocations":["25696:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"25696:8:88"},"referencedDeclaration":50077,"src":"25696:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54611,"mutability":"mutable","name":"nonceBefore","nameLocation":"25732:11:88","nodeType":"VariableDeclaration","scope":54721,"src":"25724:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54610,"name":"uint256","nodeType":"ElementaryTypeName","src":"25724:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54613,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"25755:16:88","nodeType":"VariableDeclaration","scope":54721,"src":"25747:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54612,"name":"uint256","nodeType":"ElementaryTypeName","src":"25747:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54620,"initialValue":{"arguments":[{"arguments":[{"id":54617,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"25793:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25785:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54615,"name":"address","nodeType":"ElementaryTypeName","src":"25785:7:88","typeDescriptions":{}}},"id":54618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25785:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54614,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"25775:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25695:109:88"},{"assignments":[54622],"declarations":[{"constant":false,"id":54622,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"25823:25:88","nodeType":"VariableDeclaration","scope":54721,"src":"25815:33:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54621,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54629,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54625,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"25887:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"25851:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25860:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"25851:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25851:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25899:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25851:49:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25815:85:88"},{"assignments":[54631],"declarations":[{"constant":false,"id":54631,"mutability":"mutable","name":"expectedNonce","nameLocation":"25918:13:88","nodeType":"VariableDeclaration","scope":54721,"src":"25910:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54630,"name":"uint256","nodeType":"ElementaryTypeName","src":"25910:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54635,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54632,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"25934:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25948:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25934:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25910:39:88"},{"assignments":[54637],"declarations":[{"constant":false,"id":54637,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"25967:18:88","nodeType":"VariableDeclaration","scope":54721,"src":"25959:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54636,"name":"uint256","nodeType":"ElementaryTypeName","src":"25959:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54641,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54638,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"25988:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54639,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26007:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25988:29:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25959:58:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54643,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26036:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26045:11:88","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"26036:20:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26061:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26036:26:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26064:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26028:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26028:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54650,"nodeType":"ExpressionStatement","src":"26028:55:88"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54651,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26098:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54652,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26106:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26117:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"26106:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26098:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54668,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26241:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54669,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26249:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26260:5:88","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"26249:16:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26241:24:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54684,"nodeType":"IfStatement","src":"26237:138:88","trueBody":{"id":54683,"nodeType":"Block","src":"26267:108:88","statements":[{"expression":{"arguments":[{"id":54675,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26305:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54678,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26337:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54676,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26315:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26332:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26315:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26315:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54680,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26353:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54672,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26281:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26291:13:88","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"26281:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26281:83:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54682,"nodeType":"ExpressionStatement","src":"26281:83:88"}]}},"id":54685,"nodeType":"IfStatement","src":"26094:281:88","trueBody":{"id":54667,"nodeType":"Block","src":"26125:106:88","statements":[{"expression":{"arguments":[{"id":54660,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26173:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54663,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26205:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54661,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26183:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26200:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26183:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26183:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54655,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26139:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26149:4:88","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"26139:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54658,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26161:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26139:33:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26139:81:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54666,"nodeType":"ExpressionStatement","src":"26139:81:88"}]}},{"assignments":[null,null,54687,null,54689],"declarations":[null,null,{"constant":false,"id":54687,"mutability":"mutable","name":"nonce","nameLocation":"26398:5:88","nodeType":"VariableDeclaration","scope":54721,"src":"26390:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54686,"name":"uint256","nodeType":"ElementaryTypeName","src":"26390:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54689,"mutability":"mutable","name":"circSupply","nameLocation":"26415:10:88","nodeType":"VariableDeclaration","scope":54721,"src":"26407:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54688,"name":"uint256","nodeType":"ElementaryTypeName","src":"26407:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54696,"initialValue":{"arguments":[{"arguments":[{"id":54693,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26447:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26439:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54691,"name":"address","nodeType":"ElementaryTypeName","src":"26439:7:88","typeDescriptions":{}}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26439:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54690,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"26429:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26429:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"26385:73:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54700,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26513:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54698,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26477:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26486:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"26477:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26477:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54702,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54622,"src":"26526:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26477:74:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":54704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26553:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26469:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26469:105:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54706,"nodeType":"ExpressionStatement","src":"26469:105:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54708,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"26593:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54709,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"26602:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26593:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":54711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26617:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":54707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26585:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54713,"nodeType":"ExpressionStatement","src":"26585:51:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54715,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54689,"src":"26654:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54716,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54637,"src":"26668:18:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26654:32:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":54718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26688:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":54714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26646:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:66:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54720,"nodeType":"ExpressionStatement","src":"26646:66:88"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25548:4:88","parameters":{"id":54605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54599,"mutability":"mutable","name":"funderAddress","nameLocation":"25561:13:88","nodeType":"VariableDeclaration","scope":54722,"src":"25553:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54598,"name":"address","nodeType":"ElementaryTypeName","src":"25553:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54601,"mutability":"mutable","name":"fundAmount","nameLocation":"25584:10:88","nodeType":"VariableDeclaration","scope":54722,"src":"25576:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"25576:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54604,"mutability":"mutable","name":"mode","nameLocation":"25607:4:88","nodeType":"VariableDeclaration","scope":54722,"src":"25596:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":54603,"nodeType":"UserDefinedTypeName","pathNode":{"id":54602,"name":"SupplyKind","nameLocations":["25596:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"25596:10:88"},"referencedDeclaration":50229,"src":"25596:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"25552:60:88"},"returnParameters":{"id":54606,"nodeType":"ParameterList","parameters":[],"src":"25620:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54753,"nodeType":"FunctionDefinition","src":"26725:243:88","nodes":[],"body":{"id":54752,"nodeType":"Block","src":"26793:175:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54732,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26812:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26803:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26803:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26803:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54734,"nodeType":"ExpressionStatement","src":"26803:26:88"},{"expression":{"arguments":[{"id":54738,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26847:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54739,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26865:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26865:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":54735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26839:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26842:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26839:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26839:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54743,"nodeType":"ExpressionStatement","src":"26839:56:88"},{"expression":{"arguments":[{"id":54749,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54726,"src":"26954:6:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54744,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26905:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":54746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26915:4:88","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"26905:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":54748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54747,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26927:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"26905:48:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":54750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54751,"nodeType":"ExpressionStatement","src":"26905:56:88"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"26734:4:88","parameters":{"id":54727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54724,"mutability":"mutable","name":"validatorAddress","nameLocation":"26747:16:88","nodeType":"VariableDeclaration","scope":54753,"src":"26739:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54723,"name":"address","nodeType":"ElementaryTypeName","src":"26739:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54726,"mutability":"mutable","name":"pubkey","nameLocation":"26778:6:88","nodeType":"VariableDeclaration","scope":54753,"src":"26765:19:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54725,"name":"bytes","nodeType":"ElementaryTypeName","src":"26765:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26738:47:88"},"returnParameters":{"id":54728,"nodeType":"ParameterList","parameters":[],"src":"26793:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54800,"nodeType":"FunctionDefinition","src":"26974:298:88","nodes":[],"body":{"id":54799,"nodeType":"Block","src":"27042:230:88","nodes":[],"statements":[{"assignments":[54764],"declarations":[{"constant":false,"id":54764,"mutability":"mutable","name":"validators","nameLocation":"27069:10:88","nodeType":"VariableDeclaration","scope":54799,"src":"27052:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54762,"name":"address","nodeType":"ElementaryTypeName","src":"27052:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54763,"nodeType":"ArrayTypeName","src":"27052:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54770,"initialValue":{"arguments":[{"hexValue":"31","id":54768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27096:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27082:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54765,"name":"address","nodeType":"ElementaryTypeName","src":"27086:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54766,"nodeType":"ArrayTypeName","src":"27086:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27082:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27052:46:88"},{"expression":{"id":54775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54771,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27108:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54773,"indexExpression":{"hexValue":"30","id":54772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27119:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27108:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54774,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54755,"src":"27124:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27108:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54776,"nodeType":"ExpressionStatement","src":"27108:25:88"},{"assignments":[54781],"declarations":[{"constant":false,"id":54781,"mutability":"mutable","name":"privKeys","nameLocation":"27161:8:88","nodeType":"VariableDeclaration","scope":54799,"src":"27144:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54779,"name":"uint256","nodeType":"ElementaryTypeName","src":"27144:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54780,"nodeType":"ArrayTypeName","src":"27144:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54787,"initialValue":{"arguments":[{"hexValue":"31","id":54785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27186:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27172:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54782,"name":"uint256","nodeType":"ElementaryTypeName","src":"27176:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54783,"nodeType":"ArrayTypeName","src":"27176:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27172:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27144:44:88"},{"expression":{"id":54792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27198:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54790,"indexExpression":{"hexValue":"30","id":54789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27207:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27198:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54791,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54757,"src":"27212:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27198:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54793,"nodeType":"ExpressionStatement","src":"27198:21:88"},{"expression":{"arguments":[{"id":54795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27244:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54796,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27256:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54794,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27230:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27230:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54798,"nodeType":"ExpressionStatement","src":"27230:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26983:13:88","parameters":{"id":54758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54755,"mutability":"mutable","name":"validator","nameLocation":"27005:9:88","nodeType":"VariableDeclaration","scope":54800,"src":"26997:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54754,"name":"address","nodeType":"ElementaryTypeName","src":"26997:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54757,"mutability":"mutable","name":"privKey","nameLocation":"27024:7:88","nodeType":"VariableDeclaration","scope":54800,"src":"27016:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54756,"name":"uint256","nodeType":"ElementaryTypeName","src":"27016:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26996:36:88"},"returnParameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"27042:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54863,"nodeType":"FunctionDefinition","src":"27278:408:88","nodes":[],"body":{"id":54862,"nodeType":"Block","src":"27386:300:88","nodes":[],"statements":[{"assignments":[54815],"declarations":[{"constant":false,"id":54815,"mutability":"mutable","name":"validators","nameLocation":"27413:10:88","nodeType":"VariableDeclaration","scope":54862,"src":"27396:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54813,"name":"address","nodeType":"ElementaryTypeName","src":"27396:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54814,"nodeType":"ArrayTypeName","src":"27396:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54821,"initialValue":{"arguments":[{"hexValue":"32","id":54819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27440:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27426:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54816,"name":"address","nodeType":"ElementaryTypeName","src":"27430:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54817,"nodeType":"ArrayTypeName","src":"27430:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27426:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27396:46:88"},{"expression":{"id":54826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27452:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54824,"indexExpression":{"hexValue":"30","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27452:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54825,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54802,"src":"27468:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27452:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54827,"nodeType":"ExpressionStatement","src":"27452:26:88"},{"expression":{"id":54832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27488:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54830,"indexExpression":{"hexValue":"31","id":54829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27499:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27488:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54831,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54806,"src":"27504:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27488:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54833,"nodeType":"ExpressionStatement","src":"27488:26:88"},{"assignments":[54838],"declarations":[{"constant":false,"id":54838,"mutability":"mutable","name":"privKeys","nameLocation":"27542:8:88","nodeType":"VariableDeclaration","scope":54862,"src":"27525:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54836,"name":"uint256","nodeType":"ElementaryTypeName","src":"27525:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54837,"nodeType":"ArrayTypeName","src":"27525:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54844,"initialValue":{"arguments":[{"hexValue":"32","id":54842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27567:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27553:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54839,"name":"uint256","nodeType":"ElementaryTypeName","src":"27557:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54840,"nodeType":"ArrayTypeName","src":"27557:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27553:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27525:44:88"},{"expression":{"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54845,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27579:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54847,"indexExpression":{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27588:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27579:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54848,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54804,"src":"27593:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27579:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54850,"nodeType":"ExpressionStatement","src":"27579:22:88"},{"expression":{"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54851,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27611:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54853,"indexExpression":{"hexValue":"31","id":54852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27611:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54854,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54808,"src":"27625:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27611:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54856,"nodeType":"ExpressionStatement","src":"27611:22:88"},{"expression":{"arguments":[{"id":54858,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27658:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54859,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27670:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54857,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27644:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27644:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54861,"nodeType":"ExpressionStatement","src":"27644:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27287:13:88","parameters":{"id":54809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54802,"mutability":"mutable","name":"validator1","nameLocation":"27309:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27301:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54801,"name":"address","nodeType":"ElementaryTypeName","src":"27301:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54804,"mutability":"mutable","name":"privKey1","nameLocation":"27329:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27321:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54803,"name":"uint256","nodeType":"ElementaryTypeName","src":"27321:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54806,"mutability":"mutable","name":"validator2","nameLocation":"27347:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27339:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54805,"name":"address","nodeType":"ElementaryTypeName","src":"27339:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54808,"mutability":"mutable","name":"privKey2","nameLocation":"27367:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27359:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54807,"name":"uint256","nodeType":"ElementaryTypeName","src":"27359:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27300:76:88"},"returnParameters":{"id":54810,"nodeType":"ParameterList","parameters":[],"src":"27386:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54942,"nodeType":"FunctionDefinition","src":"27692:568:88","nodes":[],"body":{"id":54941,"nodeType":"Block","src":"27892:368:88","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"validators","nameLocation":"27919:10:88","nodeType":"VariableDeclaration","scope":54941,"src":"27902:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54880,"name":"address","nodeType":"ElementaryTypeName","src":"27902:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54881,"nodeType":"ArrayTypeName","src":"27902:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54888,"initialValue":{"arguments":[{"hexValue":"33","id":54886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27946:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27932:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"27936:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54884,"nodeType":"ArrayTypeName","src":"27936:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27932:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27902:46:88"},{"expression":{"id":54893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54889,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27958:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54891,"indexExpression":{"hexValue":"30","id":54890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27969:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27958:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54892,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54865,"src":"27974:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27958:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54894,"nodeType":"ExpressionStatement","src":"27958:26:88"},{"expression":{"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54895,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27994:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54897,"indexExpression":{"hexValue":"31","id":54896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28005:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27994:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54898,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54869,"src":"28010:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27994:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54900,"nodeType":"ExpressionStatement","src":"27994:26:88"},{"expression":{"id":54905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54901,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28030:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54903,"indexExpression":{"hexValue":"32","id":54902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28030:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54904,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54873,"src":"28046:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28030:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54906,"nodeType":"ExpressionStatement","src":"28030:26:88"},{"assignments":[54911],"declarations":[{"constant":false,"id":54911,"mutability":"mutable","name":"privKeys","nameLocation":"28084:8:88","nodeType":"VariableDeclaration","scope":54941,"src":"28067:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54909,"name":"uint256","nodeType":"ElementaryTypeName","src":"28067:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54910,"nodeType":"ArrayTypeName","src":"28067:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[{"hexValue":"33","id":54915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28109:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28095:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28099:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54913,"nodeType":"ArrayTypeName","src":"28099:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28095:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28067:44:88"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54918,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28121:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54920,"indexExpression":{"hexValue":"30","id":54919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28130:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28121:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"28135:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28121:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54923,"nodeType":"ExpressionStatement","src":"28121:22:88"},{"expression":{"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54924,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28153:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54926,"indexExpression":{"hexValue":"31","id":54925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28153:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54927,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"28167:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28153:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54929,"nodeType":"ExpressionStatement","src":"28153:22:88"},{"expression":{"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54930,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28185:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54932,"indexExpression":{"hexValue":"32","id":54931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28194:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28185:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54933,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54875,"src":"28199:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28185:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54935,"nodeType":"ExpressionStatement","src":"28185:22:88"},{"expression":{"arguments":[{"id":54937,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28232:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54938,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28244:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54936,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"28218:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28218:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54940,"nodeType":"ExpressionStatement","src":"28218:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27701:13:88","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54865,"mutability":"mutable","name":"validator1","nameLocation":"27732:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27724:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54864,"name":"address","nodeType":"ElementaryTypeName","src":"27724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54867,"mutability":"mutable","name":"privKey1","nameLocation":"27760:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27752:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54866,"name":"uint256","nodeType":"ElementaryTypeName","src":"27752:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54869,"mutability":"mutable","name":"validator2","nameLocation":"27786:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27778:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54868,"name":"address","nodeType":"ElementaryTypeName","src":"27778:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54871,"mutability":"mutable","name":"privKey2","nameLocation":"27814:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27806:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"27806:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54873,"mutability":"mutable","name":"validator3","nameLocation":"27840:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27832:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54872,"name":"address","nodeType":"ElementaryTypeName","src":"27832:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54875,"mutability":"mutable","name":"privKey3","nameLocation":"27868:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27860:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27860:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27714:168:88"},"returnParameters":{"id":54877,"nodeType":"ParameterList","parameters":[],"src":"27892:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55093,"nodeType":"FunctionDefinition","src":"28266:1102:88","nodes":[],"body":{"id":55092,"nodeType":"Block","src":"28354:1014:88","nodes":[],"statements":[{"assignments":[54952],"declarations":[{"constant":false,"id":54952,"mutability":"mutable","name":"n","nameLocation":"28372:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28364:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54951,"name":"uint256","nodeType":"ElementaryTypeName","src":"28364:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54955,"initialValue":{"expression":{"id":54953,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"28376:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28387:6:88","memberName":"length","nodeType":"MemberAccess","src":"28376:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28364:29:88"},{"assignments":[54960],"declarations":[{"constant":false,"id":54960,"mutability":"mutable","name":"signatures","nameLocation":"28419:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28404:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54958,"name":"bytes","nodeType":"ElementaryTypeName","src":"28404:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54959,"nodeType":"ArrayTypeName","src":"28404:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":54966,"initialValue":{"arguments":[{"id":54964,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"28444:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28432:11:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":54961,"name":"bytes","nodeType":"ElementaryTypeName","src":"28436:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54962,"nodeType":"ArrayTypeName","src":"28436:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28432:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28404:42:88"},{"assignments":[54968,null],"declarations":[{"constant":false,"id":54968,"mutability":"mutable","name":"nextConfigNum","nameLocation":"28465:13:88","nodeType":"VariableDeclaration","scope":55092,"src":"28458:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54967,"name":"uint64","nodeType":"ElementaryTypeName","src":"28458:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":54972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54969,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28484:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28493:23:88","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50349,"src":"28484:32:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28484:34:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"28457:61:88"},{"assignments":[54974],"declarations":[{"constant":false,"id":54974,"mutability":"mutable","name":"h","nameLocation":"28537:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28529:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54973,"name":"uint256","nodeType":"ElementaryTypeName","src":"28529:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54982,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54975,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28541:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28550:28:88","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50477,"src":"28541:37:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28541:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54978,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28583:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28592:19:88","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50457,"src":"28583:28:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28583:30:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28541:72:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28529:84:88"},{"assignments":[54985],"declarations":[{"constant":false,"id":54985,"mutability":"mutable","name":"checkpoint","nameLocation":"28650:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28624:36:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":54984,"nodeType":"UserDefinedTypeName","pathNode":{"id":54983,"name":"BottomUpCheckpoint","nameLocations":["28624:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"28624:18:88"},"referencedDeclaration":49932,"src":"28624:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55007,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54993,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28750:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28742:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"28742:7:88","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28742:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54987,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28706:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28715:9:88","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50279,"src":"28706:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28727:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"28706:35:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54996,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28788:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55000,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28835:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28824:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28828:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28824:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28824:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28814:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28814:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55003,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54968,"src":"28877:13:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28877:17:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":54986,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"28663:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:8:88","28775:11:88","28803:9:88","28852:23:88"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"28663:242:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"28624:281:88"},{"expression":{"arguments":[{"arguments":[{"id":55013,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28932:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28924:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55011,"name":"address","nodeType":"ElementaryTypeName","src":"28924:7:88","typeDescriptions":{}}},"id":55014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28924:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28944:9:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55008,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28916:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28919:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28916:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55017,"nodeType":"ExpressionStatement","src":"28916:38:88"},{"assignments":[55019],"declarations":[{"constant":false,"id":55019,"mutability":"mutable","name":"hash","nameLocation":"28973:4:88","nodeType":"VariableDeclaration","scope":55092,"src":"28965:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28965:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55026,"initialValue":{"arguments":[{"arguments":[{"id":55023,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29001:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28990:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28994:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28990:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28990:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55020,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28980:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28980:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28965:48:88"},{"body":{"id":55062,"nodeType":"Block","src":"29056:140:88","statements":[{"assignments":[55038,55040,55042],"declarations":[{"constant":false,"id":55038,"mutability":"mutable","name":"v","nameLocation":"29077:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29071:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55037,"name":"uint8","nodeType":"ElementaryTypeName","src":"29071:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55040,"mutability":"mutable","name":"r","nameLocation":"29088:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29080:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29080:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55042,"mutability":"mutable","name":"s","nameLocation":"29099:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29091:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29091:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55050,"initialValue":{"arguments":[{"baseExpression":{"id":55045,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54948,"src":"29112:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55047,"indexExpression":{"id":55046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29121:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29112:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55048,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55019,"src":"29125:4:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29104:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29107:4:88","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"29104:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29104:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"29070:60:88"},{"expression":{"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55051,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29144:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55053,"indexExpression":{"id":55052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29155:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29144:13:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55056,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55040,"src":"29177:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"29180:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55038,"src":"29183:1:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29160:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29164:12:88","memberName":"encodePacked","nodeType":"MemberAccess","src":"29160:16:88","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29160:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"29144:41:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55061,"nodeType":"ExpressionStatement","src":"29144:41:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29044:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55032,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29048:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29044:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55063,"initializationExpression":{"assignments":[55028],"declarations":[{"constant":false,"id":55028,"mutability":"mutable","name":"i","nameLocation":"29037:1:88","nodeType":"VariableDeclaration","scope":55063,"src":"29029:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55027,"name":"uint256","nodeType":"ElementaryTypeName","src":"29029:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55030,"initialValue":{"hexValue":"30","id":55029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29029:13:88"},"loopExpression":{"expression":{"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29051:3:88","subExpression":{"id":55034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29051:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55036,"nodeType":"ExpressionStatement","src":"29051:3:88"},"nodeType":"ForStatement","src":"29024:172:88"},{"body":{"id":55090,"nodeType":"Block","src":"29238:124:88","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29261:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55079,"indexExpression":{"id":55078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29272:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29261:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29252:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29255:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"29252:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29252:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55081,"nodeType":"ExpressionStatement","src":"29252:23:88"},{"expression":{"arguments":[{"id":55085,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29316:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55086,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29328:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55087,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29340:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55082,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"29289:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":55084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29299:16:88","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":51154,"src":"29289:26:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29289:62:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55089,"nodeType":"ExpressionStatement","src":"29289:62:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29226:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55069,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29230:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29226:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55091,"initializationExpression":{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"i","nameLocation":"29219:1:88","nodeType":"VariableDeclaration","scope":55091,"src":"29211:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55064,"name":"uint256","nodeType":"ElementaryTypeName","src":"29211:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55067,"initialValue":{"hexValue":"30","id":55066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29223:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29211:13:88"},"loopExpression":{"expression":{"id":55072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29233:3:88","subExpression":{"id":55071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29233:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55073,"nodeType":"ExpressionStatement","src":"29233:3:88"},"nodeType":"ForStatement","src":"29206:156:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"28275:13:88","parameters":{"id":54949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54945,"mutability":"mutable","name":"validators","nameLocation":"28306:10:88","nodeType":"VariableDeclaration","scope":55093,"src":"28289:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54943,"name":"address","nodeType":"ElementaryTypeName","src":"28289:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54944,"nodeType":"ArrayTypeName","src":"28289:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54948,"mutability":"mutable","name":"privKeys","nameLocation":"28335:8:88","nodeType":"VariableDeclaration","scope":55093,"src":"28318:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54946,"name":"uint256","nodeType":"ElementaryTypeName","src":"28318:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54947,"nodeType":"ArrayTypeName","src":"28318:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"28288:56:88"},"returnParameters":{"id":54950,"nodeType":"ParameterList","parameters":[],"src":"28354:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55128,"nodeType":"FunctionDefinition","src":"29374:305:88","nodes":[],"body":{"id":55127,"nodeType":"Block","src":"29421:258:88","nodes":[],"statements":[{"assignments":[55099],"declarations":[{"constant":false,"id":55099,"mutability":"mutable","name":"expectedNonce","nameLocation":"29439:13:88","nodeType":"VariableDeclaration","scope":55127,"src":"29431:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55105,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55100,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29455:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29464:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29455:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29455:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29482:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29455:28:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"29431:52:88"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29555:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29559:6:88","memberName":"sender","nodeType":"MemberAccess","src":"29555:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55111,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"29533:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":55112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29550:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"29533:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55106,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29493:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29503:7:88","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"29493:17:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55109,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55095,"src":"29518:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29493:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55117,"nodeType":"ExpressionStatement","src":"29493:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55119,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29585:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29594:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29585:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29585:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55122,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55099,"src":"29613:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29585:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29628:43:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29577:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29577:95:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55126,"nodeType":"ExpressionStatement","src":"29577:95:88"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"29383:7:88","parameters":{"id":55096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55095,"mutability":"mutable","name":"releaseAmount","nameLocation":"29399:13:88","nodeType":"VariableDeclaration","scope":55128,"src":"29391:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55094,"name":"uint256","nodeType":"ElementaryTypeName","src":"29391:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29390:23:88"},"returnParameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"29421:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55183,"nodeType":"FunctionDefinition","src":"29685:536:88","nodes":[],"body":{"id":55182,"nodeType":"Block","src":"29754:467:88","nodes":[],"statements":[{"assignments":[55136],"declarations":[{"constant":false,"id":55136,"mutability":"mutable","name":"balanceBefore","nameLocation":"29772:13:88","nodeType":"VariableDeclaration","scope":55182,"src":"29764:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55135,"name":"uint256","nodeType":"ElementaryTypeName","src":"29764:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55139,"initialValue":{"expression":{"id":55137,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29788:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29802:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29788:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29764:45:88"},{"assignments":[null,55141,null,null,null],"declarations":[null,{"constant":false,"id":55141,"mutability":"mutable","name":"stakedBefore","nameLocation":"29831:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29823:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"29823:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55145,"initialValue":{"arguments":[{"id":55143,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29863:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55142,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"29853:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29853:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29820:57:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55146,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29888:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29898:8:88","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"29888:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55149,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"29914:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29888:38:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29888:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55152,"nodeType":"ExpressionStatement","src":"29888:40:88"},{"assignments":[55154],"declarations":[{"constant":false,"id":55154,"mutability":"mutable","name":"balanceAfter","nameLocation":"29947:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29939:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55153,"name":"uint256","nodeType":"ElementaryTypeName","src":"29939:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55157,"initialValue":{"expression":{"id":55155,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29962:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29976:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29962:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29939:44:88"},{"assignments":[null,55159,null,null,null],"declarations":[null,{"constant":false,"id":55159,"mutability":"mutable","name":"stakedAfter","nameLocation":"30004:11:88","nodeType":"VariableDeclaration","scope":55182,"src":"29996:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29996:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55163,"initialValue":{"arguments":[{"id":55161,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"30035:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55160,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"30025:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30025:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29993:56:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55165,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55154,"src":"30068:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55166,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55136,"src":"30084:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55167,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30100:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30084:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30068:43:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30113:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30060:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30060:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"ExpressionStatement","src":"30060:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55174,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"30152:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55175,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55141,"src":"30167:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55176,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30182:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30167:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30152:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30195:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30144:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30144:70:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"30144:70:88"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"29694:8:88","parameters":{"id":55133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55130,"mutability":"mutable","name":"stakeAmount","nameLocation":"29711:11:88","nodeType":"VariableDeclaration","scope":55183,"src":"29703:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55129,"name":"uint256","nodeType":"ElementaryTypeName","src":"29703:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55132,"mutability":"mutable","name":"subnetAddress","nameLocation":"29732:13:88","nodeType":"VariableDeclaration","scope":55183,"src":"29724:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55131,"name":"address","nodeType":"ElementaryTypeName","src":"29724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29702:44:88"},"returnParameters":{"id":55134,"nodeType":"ParameterList","parameters":[],"src":"29754:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55268,"nodeType":"FunctionDefinition","src":"30227:813:88","nodes":[],"body":{"id":55267,"nodeType":"Block","src":"30322:718:88","nodes":[],"statements":[{"assignments":[55195],"declarations":[{"constant":false,"id":55195,"mutability":"mutable","name":"manager","nameLocation":"30352:7:88","nodeType":"VariableDeclaration","scope":55267,"src":"30332:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55194,"nodeType":"UserDefinedTypeName","pathNode":{"id":55193,"name":"GatewayManagerFacet","nameLocations":["30332:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"30332:19:88"},"referencedDeclaration":38870,"src":"30332:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55202,"initialValue":{"arguments":[{"arguments":[{"id":55199,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30390:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30382:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55197,"name":"address","nodeType":"ElementaryTypeName","src":"30382:7:88","typeDescriptions":{}}},"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30382:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55196,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"30362:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30362:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"30332:62:88"},{"expression":{"arguments":[{"hexValue":"30","id":55208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30441:1:88","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"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55203,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"30405:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30413:8:88","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"30405:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55206,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30429:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30405:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30405:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55210,"nodeType":"ExpressionStatement","src":"30405:38:88"},{"assignments":[55213,55215,55217,null,55219],"declarations":[{"constant":false,"id":55213,"mutability":"mutable","name":"id","nameLocation":"30471:2:88","nodeType":"VariableDeclaration","scope":55267,"src":"30455:18:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55212,"nodeType":"UserDefinedTypeName","pathNode":{"id":55211,"name":"SubnetID","nameLocations":["30455:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30455:8:88"},"referencedDeclaration":50077,"src":"30455:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55215,"mutability":"mutable","name":"stake","nameLocation":"30483:5:88","nodeType":"VariableDeclaration","scope":55267,"src":"30475:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30475:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55217,"mutability":"mutable","name":"topDownNonce","nameLocation":"30498:12:88","nodeType":"VariableDeclaration","scope":55267,"src":"30490:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55216,"name":"uint256","nodeType":"ElementaryTypeName","src":"30490:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55219,"mutability":"mutable","name":"circSupply","nameLocation":"30522:10:88","nodeType":"VariableDeclaration","scope":55267,"src":"30514:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55218,"name":"uint256","nodeType":"ElementaryTypeName","src":"30514:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55224,"initialValue":{"arguments":[{"id":55221,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30561:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55222,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30588:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55220,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"30536:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30536:64:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30454:146:88"},{"assignments":[55227],"declarations":[{"constant":false,"id":55227,"mutability":"mutable","name":"parentNetwork","nameLocation":"30627:13:88","nodeType":"VariableDeclaration","scope":55267,"src":"30611:29:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55226,"nodeType":"UserDefinedTypeName","pathNode":{"id":55225,"name":"SubnetID","nameLocations":["30611:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30611:8:88"},"referencedDeclaration":50077,"src":"30611:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55228,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"30643:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30652:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"30643:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30643:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"30611:57:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55233,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"30700:2:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30700:9:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30700:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55238,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30744:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55236,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55227,"src":"30715:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30729:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"30715:28:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30759:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30715:50:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:52:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"30700:67:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30781:69:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30679:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30679:181:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55245,"nodeType":"ExpressionStatement","src":"30679:181:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55247,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55215,"src":"30878:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55248,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30887:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30878:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30899:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30870:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30870:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55252,"nodeType":"ExpressionStatement","src":"30870:48:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55254,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"30936:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30952:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30936:17:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30955:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30928:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55259,"nodeType":"ExpressionStatement","src":"30928:46:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55261,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"30992:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31006:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30992:15:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31009:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30984:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30984:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55266,"nodeType":"ExpressionStatement","src":"30984:49:88"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"30236:16:88","parameters":{"id":55191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55185,"mutability":"mutable","name":"collateral","nameLocation":"30261:10:88","nodeType":"VariableDeclaration","scope":55268,"src":"30253:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55184,"name":"uint256","nodeType":"ElementaryTypeName","src":"30253:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55187,"mutability":"mutable","name":"subnetAddress","nameLocation":"30281:13:88","nodeType":"VariableDeclaration","scope":55268,"src":"30273:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55186,"name":"address","nodeType":"ElementaryTypeName","src":"30273:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55190,"mutability":"mutable","name":"gw","nameLocation":"30311:2:88","nodeType":"VariableDeclaration","scope":55268,"src":"30296:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55189,"nodeType":"UserDefinedTypeName","pathNode":{"id":55188,"name":"GatewayDiamond","nameLocations":["30296:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"30296:14:88"},"referencedDeclaration":36170,"src":"30296:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"30252:62:88"},"returnParameters":{"id":55192,"nodeType":"ParameterList","parameters":[],"src":"30322:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55282,"nodeType":"FunctionDefinition","src":"31046:150:88","nodes":[],"body":{"id":55281,"nodeType":"Block","src":"31120:76:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55276,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55270,"src":"31147:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55277,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55272,"src":"31159:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55278,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31174:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55275,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"31130:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31130:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55280,"nodeType":"ExpressionStatement","src":"31130:59:88"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"31055:14:88","parameters":{"id":55273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55270,"mutability":"mutable","name":"collateral","nameLocation":"31078:10:88","nodeType":"VariableDeclaration","scope":55282,"src":"31070:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55269,"name":"uint256","nodeType":"ElementaryTypeName","src":"31070:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55272,"mutability":"mutable","name":"subnetAddress","nameLocation":"31098:13:88","nodeType":"VariableDeclaration","scope":55282,"src":"31090:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55271,"name":"address","nodeType":"ElementaryTypeName","src":"31090:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31069:43:88"},"returnParameters":{"id":55274,"nodeType":"ParameterList","parameters":[],"src":"31120:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55352,"nodeType":"FunctionDefinition","src":"31202:541:88","nodes":[],"body":{"id":55351,"nodeType":"Block","src":"31356:387:88","nodes":[],"statements":[{"expression":{"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55301,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"31366:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55305,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31406:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55303,"name":"address","nodeType":"ElementaryTypeName","src":"31398:7:88","typeDescriptions":{}}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55302,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"31378:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"31366:44:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55309,"nodeType":"ExpressionStatement","src":"31366:44:88"},{"expression":{"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55310,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31420:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55314,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31458:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31450:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"31450:7:88","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31450:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55311,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"31431:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31431:31:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"31420:42:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55318,"nodeType":"ExpressionStatement","src":"31420:42:88"},{"assignments":[55321],"declarations":[{"constant":false,"id":55321,"mutability":"mutable","name":"subnetId","nameLocation":"31489:8:88","nodeType":"VariableDeclaration","scope":55351,"src":"31473:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55320,"nodeType":"UserDefinedTypeName","pathNode":{"id":55319,"name":"SubnetID","nameLocations":["31473:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31473:8:88"},"referencedDeclaration":50077,"src":"31473:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55328,"initialValue":{"arguments":[{"id":55326,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"31541:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55322,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31500:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31509:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"31500:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31526:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"31500:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"31473:82:88"},{"assignments":[55331],"declarations":[{"constant":false,"id":55331,"mutability":"mutable","name":"subnet","nameLocation":"31580:6:88","nodeType":"VariableDeclaration","scope":55351,"src":"31566:20:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55330,"nodeType":"UserDefinedTypeName","pathNode":{"id":55329,"name":"Subnet","nameLocations":["31566:6:88"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"31566:6:88"},"referencedDeclaration":50091,"src":"31566:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55338,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55334,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55321,"src":"31606:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31615:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"31606:15:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31606:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55332,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31589:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31598:7:88","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"31589:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50091_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31589:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"31566:58:88"},{"expression":{"components":[{"expression":{"id":55339,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31643:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31650:2:88","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"31643:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55341,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31654:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31661:5:88","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"31654:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55343,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31668:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31675:12:88","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"31668:19:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55345,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31689:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31696:20:88","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"31689:27:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55347,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31718:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31725:10:88","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"31718:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31642:94:88","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55300,"id":55350,"nodeType":"Return","src":"31635:101:88"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"31211:11:88","parameters":{"id":55288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55284,"mutability":"mutable","name":"subnetAddress","nameLocation":"31240:13:88","nodeType":"VariableDeclaration","scope":55352,"src":"31232:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55283,"name":"address","nodeType":"ElementaryTypeName","src":"31232:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55287,"mutability":"mutable","name":"gw","nameLocation":"31278:2:88","nodeType":"VariableDeclaration","scope":55352,"src":"31263:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55286,"nodeType":"UserDefinedTypeName","pathNode":{"id":55285,"name":"GatewayDiamond","nameLocations":["31263:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"31263:14:88"},"referencedDeclaration":36170,"src":"31263:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"31222:64:88"},"returnParameters":{"id":55300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31303:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55290,"nodeType":"UserDefinedTypeName","pathNode":{"id":55289,"name":"SubnetID","nameLocations":["31303:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31303:8:88"},"referencedDeclaration":50077,"src":"31303:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31320:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55292,"name":"uint256","nodeType":"ElementaryTypeName","src":"31320:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31329:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55294,"name":"uint256","nodeType":"ElementaryTypeName","src":"31329:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31338:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55296,"name":"uint256","nodeType":"ElementaryTypeName","src":"31338:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31347:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55298,"name":"uint256","nodeType":"ElementaryTypeName","src":"31347:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31302:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55374,"nodeType":"FunctionDefinition","src":"31749:177:88","nodes":[],"body":{"id":55373,"nodeType":"Block","src":"31860:66:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55369,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55354,"src":"31889:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55370,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31904:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55368,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"31877:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31877:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55367,"id":55372,"nodeType":"Return","src":"31870:49:88"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"31758:9:88","parameters":{"id":55355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55354,"mutability":"mutable","name":"subnetAddress","nameLocation":"31776:13:88","nodeType":"VariableDeclaration","scope":55374,"src":"31768:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55353,"name":"address","nodeType":"ElementaryTypeName","src":"31768:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31767:23:88"},"returnParameters":{"id":55367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31807:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55357,"nodeType":"UserDefinedTypeName","pathNode":{"id":55356,"name":"SubnetID","nameLocations":["31807:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31807:8:88"},"referencedDeclaration":50077,"src":"31807:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31824:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55359,"name":"uint256","nodeType":"ElementaryTypeName","src":"31824:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31833:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55361,"name":"uint256","nodeType":"ElementaryTypeName","src":"31833:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31842:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55363,"name":"uint256","nodeType":"ElementaryTypeName","src":"31842:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31851:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"31851:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31806:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53038,"name":"Test","nameLocations":["8694:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8694:4:88"},"id":53039,"nodeType":"InheritanceSpecifier","src":"8694:4:88"},{"baseName":{"id":53040,"name":"TestParams","nameLocations":["8700:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"8700:10:88"},"id":53041,"nodeType":"InheritanceSpecifier","src":"8700:10:88"},{"baseName":{"id":53042,"name":"TestRegistry","nameLocations":["8712:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":52747,"src":"8712:12:88"},"id":53043,"nodeType":"InheritanceSpecifier","src":"8712:12:88"},{"baseName":{"id":53044,"name":"TestSubnetActor","nameLocations":["8726:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":53037,"src":"8726:15:88"},"id":53045,"nodeType":"InheritanceSpecifier","src":"8726:15:88"},{"baseName":{"id":53046,"name":"TestGatewayActor","nameLocations":["8743:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":52912,"src":"8743:16:88"},"id":53047,"nodeType":"InheritanceSpecifier","src":"8743:16:88"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50887,52151,52279,52517,57957],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55375,52912,53037,52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8671:19:88","scope":55376,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"addStake","inputs":[{"name":"stakeAmount","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addValidator","inputs":[{"name":"validator","type":"address","internalType":"address"},{"name":"weight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createGatewayDiamond","inputs":[{"name":"params","type":"tuple","internalType":"struct GatewayDiamond.ConstructorParams","components":[{"name":"networkName","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"bottomUpCheckPeriod","type":"uint256","internalType":"uint256"},{"name":"msgFee","type":"uint256","internalType":"uint256"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"genesisValidators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"","type":"address","internalType":"contract GatewayDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createMockedSubnetActorWithGateway","inputs":[{"name":"gw","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"_ipcGatewayAddr","type":"address","internalType":"address"},{"name":"_consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"_minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_checkPeriod","type":"uint64","internalType":"uint64"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"_permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"_activeValidatorsLimit","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"_ipcGatewayAddr","type":"address","internalType":"address"},{"name":"_consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"_minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_checkPeriod","type":"uint64","internalType":"uint64"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActorDiamondWithFaucets","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]},{"name":"getter","type":"address","internalType":"address"},{"name":"manager","type":"address","internalType":"address"},{"name":"pauser","type":"address","internalType":"address"},{"name":"rewarder","type":"address","internalType":"address"},{"name":"checkpointer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetRegistryDiamond.ConstructorParams","components":[{"name":"gateway","type":"address","internalType":"address"},{"name":"getterFacet","type":"address","internalType":"address"},{"name":"managerFacet","type":"address","internalType":"address"},{"name":"subnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"subnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetRegistryDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"funderAddress","type":"address","internalType":"address"},{"name":"fundAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"funderAddress","type":"address","internalType":"address"},{"name":"fundAmount","type":"uint256","internalType":"uint256"},{"name":"mode","type":"uint8","internalType":"enum SupplyKind"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getSubnet","inputs":[{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getSubnetGW","inputs":[{"name":"subnetAddress","type":"address","internalType":"address"},{"name":"gw","type":"address","internalType":"contract GatewayDiamond"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"join","inputs":[{"name":"validatorAddress","type":"address","internalType":"address"},{"name":"pubkey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSubnet","inputs":[{"name":"collateral","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSubnetGW","inputs":[{"name":"collateral","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"},{"name":"gw","type":"address","internalType":"contract GatewayDiamond"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"release","inputs":[{"name":"releaseAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reward","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setupValidators","inputs":[],"outputs":[{"name":"validators","type":"tuple[]","internalType":"struct FvmAddress[]","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"addresses","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"setupWhiteListMethod","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"src","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"totalWeight","inputs":[{"name":"weights","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"sum","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"event","name":"SubnetRegistryCreated","inputs":[{"name":"subnetRegistryAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608080604052346300002e5657600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601360248201527f52656769737465725375626e6574466163657400000000000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300002e33575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557601b5482601b558083106300002dcb575b5060200190601b60005260206000209060005b8160031c81106300002d77575060071981168103806300002d1b575b505050506040516319b8a26360e21b815260206004820152601160248201527014dd589b995d11d95d1d195c919858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300002cf8575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557601c5482601c558083106300002c87575b5060200190601c60005260206000209060005b8160031c81106300002c335750600719811681036300002bd6575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300002bb3575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557601d5482601d558083106300002b25575b5060200190601d60005260206000209060005b8160031c81106300002ad15750600719811681036300002a74575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300002a51575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557601e5482601e5580831063000029c3575b5060200190601e60005260206000209060005b8160031c8110630000296f5750600719811681036300002912575b50506040516319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f724765747465724661636574000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e85760009163000028ef575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557602454826024558083106300002861575b5060200190602460005260206000209060005b8160031c8110630000280d57506007198116810363000027b0575b50506040516319b8a26360e21b815260206004820152601760248201527f5375626e65744163746f724d616e6167657246616365740000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e857600091630000278d575b508051906001600160401b03821163000012a55768010000000000000000821163000012a5576025548260255580831063000026ff575b5060200190602560005260206000209060005b8160031c811063000026ab575060071981168103630000264e575b50506040516319b8a26360e21b815260206004820152601560248201527f5375626e65744163746f725061757365466163657400000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e857600091630000262b575b508051906001600160401b03821163000012a55768010000000000000000821163000012a55760265482602655808310630000259d575b5060200190602660005260206000209060005b8160031c8110630000254957506007198116810363000024ec575b50506040516319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f725265776172644661636574000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e85760009163000024c9575b508051906001600160401b03821163000012a55768010000000000000000821163000012a55760275482602755808310630000243b575b5060200190602760005260206000209060005b8160031c811063000023e7575060071981168103630000238a575b50506040516319b8a26360e21b815260206004820152601d60248201527f5375626e65744163746f72436865636b706f696e74696e6746616365740000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300002367575b508051906001600160401b03821163000012a55768010000000000000000821163000012a5576028548260285580831063000022d9575b5060200190602860005260206000209060005b8160031c811063000022855750600719811681036300002228575b50506040516319b8a26360e21b815260206004820152600f60248201526e5375626e65744163746f724d6f636b60881b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300002205575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557602954826029558083106300002177575b5060200190602960005260206000209060005b8160031c8110630000212357506007198116810363000020c6575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e85760009163000020a3575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557602a5482602a558083106300002015575b5060200190602a60005260206000209060005b8160031c81106300001fc15750600719811681036300001f64575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300001f41575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557602b5482602b558083106300001eb3575b5060200190602b60005260206000209060005b8160031c81106300001e5f5750600719811681036300001e02575b50506040516319b8a26360e21b815260206004820152601260248201527110da1958dadc1bda5b9d1a5b99d19858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300001ddf575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557603554826035558083106300001d51575b5060200190603560005260206000209060005b8160031c81106300001cfd5750600719811681036300001ca0575b50506040516319b8a26360e21b8152602060048201526012602482015271161b995d13595cdcd859da5b99d19858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300001c7d575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557603654826036558083106300001bef575b5060200190603660005260206000209060005b8160031c81106300001b9b5750600719811681036300001b3e575b50506040516319b8a26360e21b815260206004820152601460248201527f546f70446f776e46696e616c69747946616365740000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300001b1b575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557603754826037558083106300001a8d575b5060200190603760005260206000209060005b8160031c81106300001a3957506007198116810363000019dc575b50506040516319b8a26360e21b815260206004820152601360248201527f426f74746f6d5570526f757465724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e85760009163000019b9575b508051906001600160401b03821163000012a55768010000000000000000821163000012a55760385482603855808310630000192b575b5060200190603860005260206000209060005b8160031c811063000018d7575060071981168103630000187a575b50506040516319b8a26360e21b815260206004820152601260248201527111d85d195dd85e51d95d1d195c919858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300001857575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557603a5482603a5580831063000017c9575b5060200190603a60005260206000209060005b8160031c811063000017755750600719811681036300001718575b50506040516319b8a26360e21b815260206004820152601360248201527f476174657761794d616e616765724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e85760009163000016f5575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557603954826039558083106300001667575b5060200190603960005260206000209060005b8160031c8110630000161357506007198116810363000015b6575b50506040516319b8a26360e21b815260206004820152601560248201527f476174657761794d657373656e676572466163657400000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300001593575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557603b5482603b558083106300001506575b5060200190603b60005260206000209060005b8160031c811063000014b2575060071981168103806300001456575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b60448201529150600090508160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e8576000916300001433575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557603c5482603c5580831063000013a6575b5060200190603c60005260206000209060005b8160031c811063000013525750600719811680820363000012f4575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b60448201529150600090508160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811563000012e85760009163000012bb575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557603d5482603d55808310630000123d575b5060200190603d60005260206000208160031c9160005b83811063000011e9575060071981169003806300001190575b6040516202ccad90816300002f218239f35b9260009360005b81811063000011b057505050015538808080630000117e565b909194602063000011dd600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016300001197565b6000805b6008811063000012065750838201556001016300001165565b959060206300001232600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960163000011ed565b603d6000526020600020600780850160031c8201920160031c0190601c8460021b16806300001288575b505b818110630000127a5750630000114e565b600081556001016300001269565b600019908183019182549160200360031b1c169055386300001267565b634e487b7160e01b600052604160045260246000fd5b63000012e091503d806000833e63000012d681836300002e5b565b8101906300002e80565b386300001117565b6040513d6000823e3d90fd5b9260009360005b818403811063000013195750505060031c01553880808063000010ac565b90919460206300001346600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910163000012fb565b6000805b60088110630000136f5750838201556001016300001090565b94906020630000139b600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001356565b603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e600284901b601c1680630000140e575b50600780850160031c8201920160031c01905b81811063000014005750630000107d565b6000815560010163000013ef565b60001990816007870160031c8401019182549160200360031b1c1690553863000013dc565b630000144e91503d806000833e63000012d681836300002e5b565b386300001046565b9260009360005b81811063000014795750505060031c0155388080806300000fdd565b909194602063000014a6600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101630000145d565b6000805b6008811063000014cf5750838201556001016300000fc1565b9490602063000014fb600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000014b6565b603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d600284901b601c1680630000156e575b50600780850160031c8201920160031c01905b818110630000156057506300000fae565b60008155600101630000154f565b60001990816007870160031c8401019182549160200360031b1c16905538630000153c565b63000015ae91503d806000833e63000012d681836300002e5b565b386300000f77565b60009260005b60071983168303811063000015dc57505060031c01553880806300000f02565b909360206300001608600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000015bc565b6000805b6008811063000016305750838201556001016300000ee7565b94906020630000165c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001617565b60396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3600284901b601c168063000016d0575b506007840160031c81015b6007830160031c8201811063000016c25750506300000ed4565b6000815560010163000016a8565b60001990816007870160031c8401019182549160200360031b1c16905538630000169d565b630000171091503d806000833e63000012d681836300002e5b565b386300000e9d565b60009260005b600719831683038110630000173e57505060031c01553880806300000e28565b90936020630000176a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101630000171e565b6000805b6008811063000017925750838201556001016300000e0d565b9490602063000017be600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001779565b603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e600284901b601c16806300001832575b506007840160031c81015b6007830160031c8201811063000018245750506300000dfa565b60008155600101630000180a565b60001990816007870160031c8401019182549160200360031b1c1690553863000017ff565b630000187291503d806000833e63000012d681836300002e5b565b386300000dc3565b60009260005b60071983168303811063000018a057505060031c01553880806300000d59565b9093602063000018cc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001880565b6000805b6008811063000018f45750838201556001016300000d3e565b949060206300001920600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000018db565b60386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199600284901b601c16806300001994575b506007840160031c81015b6007830160031c8201811063000019865750506300000d2b565b60008155600101630000196c565b60001990816007870160031c8401019182549160200360031b1c169055386300001961565b63000019d491503d806000833e63000012d681836300002e5b565b386300000cf4565b60009260005b6007198316830381106300001a0257505060031c01553880806300000c7f565b909360206300001a2e600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000019e2565b6000805b600881106300001a565750838201556001016300000c64565b949060206300001a82600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001a3d565b60376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae600284901b601c16806300001af6575b506007840160031c81015b6007830160031c820181106300001ae85750506300000c51565b600081556001016300001ace565b60001990816007870160031c8401019182549160200360031b1c169055386300001ac3565b6300001b3691503d806000833e63000012d681836300002e5b565b386300000c1a565b60009260005b6007198316830381106300001b6457505060031c01553880806300000ba5565b909360206300001b90600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001b44565b6000805b600881106300001bb85750838201556001016300000b8a565b949060206300001be4600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001b9f565b60366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8600284901b601c16806300001c58575b506007840160031c81015b6007830160031c820181106300001c4a5750506300000b77565b600081556001016300001c30565b60001990816007870160031c8401019182549160200360031b1c169055386300001c25565b6300001c9891503d806000833e63000012d681836300002e5b565b386300000b40565b60009260005b6007198316830381106300001cc657505060031c01553880806300000ad6565b909360206300001cf2600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001ca6565b6000805b600881106300001d1a5750838201556001016300000abb565b949060206300001d46600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001d01565b60356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d600284901b601c16806300001dba575b506007840160031c81015b6007830160031c820181106300001dac5750506300000aa8565b600081556001016300001d92565b60001990816007870160031c8401019182549160200360031b1c169055386300001d87565b6300001dfa91503d806000833e63000012d681836300002e5b565b386300000a71565b60009260005b6007198316830381106300001e2857505060031c01553880806300000a07565b909360206300001e54600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001e08565b6000805b600881106300001e7c57508382015560010163000009ec565b949060206300001ea8600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001e63565b602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f600284901b601c16806300001f1c575b506007840160031c81015b6007830160031c820181106300001f0e57505063000009d9565b600081556001016300001ef4565b60001990816007870160031c8401019182549160200360031b1c169055386300001ee9565b6300001f5c91503d806000833e63000012d681836300002e5b565b3863000009a2565b60009260005b6007198316830381106300001f8a57505060031c01553880806300000939565b909360206300001fb6600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001f6a565b6000805b600881106300001fde575083820155600101630000091e565b94906020630000200a600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001fc5565b602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2600284901b601c1680630000207e575b506007840160031c81015b6007830160031c820181106300002070575050630000090b565b600081556001016300002056565b60001990816007870160031c8401019182549160200360031b1c16905538630000204b565b63000020be91503d806000833e63000012d681836300002e5b565b3863000008d4565b60009260005b60071983168303811063000020ec57505060031c0155388080630000086d565b909360206300002118600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000020cc565b6000805b6008811063000021405750838201556001016300000852565b94906020630000216c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002127565b60296000527fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac600284901b601c168063000021e0575b506007840160031c81015b6007830160031c8201811063000021d2575050630000083f565b6000815560010163000021b8565b60001990816007870160031c8401019182549160200360031b1c1690553863000021ad565b630000222091503d806000833e63000012d681836300002e5b565b386300000808565b60009260005b600719831683038110630000224e57505060031c015538808063000007a1565b90936020630000227a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101630000222e565b6000805b6008811063000022a25750838201556001016300000786565b9490602063000022ce600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002289565b60286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5600284901b601c16806300002342575b506007840160031c81015b6007830160031c8201811063000023345750506300000773565b60008155600101630000231a565b60001990816007870160031c8401019182549160200360031b1c16905538630000230f565b630000238291503d806000833e63000012d681836300002e5b565b38630000073c565b60009260005b60071983168303811063000023b057505060031c015538808063000006c7565b9093602063000023dc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002390565b6000805b60088110630000240457508382015560010163000006ac565b949060206300002430600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000023eb565b60276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b600284901b601c168063000024a4575b506007840160031c81015b6007830160031c8201811063000024965750506300000699565b60008155600101630000247c565b60001990816007870160031c8401019182549160200360031b1c169055386300002471565b63000024e491503d806000833e63000012d681836300002e5b565b386300000662565b60009260005b600719831683038110630000251257505060031c015538808063000005ed565b90936020630000253e600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000024f2565b6000805b60088110630000256657508382015560010163000005d2565b949060206300002592600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501630000254d565b60266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594600284901b601c16806300002606575b506007840160031c81015b6007830160031c8201811063000025f857505063000005bf565b6000815560010163000025de565b60001990816007870160031c8401019182549160200360031b1c1690553863000025d3565b630000264691503d806000833e63000012d681836300002e5b565b386300000588565b60009260005b600719831683038110630000267457505060031c01553880806300000513565b9093602063000026a0600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002654565b6000805b6008811063000026c857508382015560010163000004f8565b9490602063000026f4600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000026af565b60256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c600284901b601c16806300002768575b506007840160031c81015b6007830160031c82018110630000275a57505063000004e5565b600081556001016300002740565b60001990816007870160031c8401019182549160200360031b1c169055386300002735565b63000027a891503d806000833e63000012d681836300002e5b565b3863000004ae565b60009260005b60071983168303811063000027d657505060031c01553880806300000439565b909360206300002802600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000027b6565b6000805b60088110630000282a575083820155600101630000041e565b949060206300002856600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002811565b60246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4600284901b601c168063000028ca575b506007840160031c81015b6007830160031c8201811063000028bc575050630000040b565b6000815560010163000028a2565b60001990816007870160031c8401019182549160200360031b1c169055386300002897565b630000290a91503d806000833e63000012d681836300002e5b565b3863000003d4565b60009260005b600719831683038110630000293857505060031c0155388080630000035f565b909360206300002964600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002918565b6000805b60088110630000298c5750838201556001016300000344565b9490602063000029b8600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002973565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c16806300002a2c575b506007840160031c81015b6007830160031c820181106300002a1e5750506300000331565b600081556001016300002a04565b60001990816007870160031c8401019182549160200360031b1c1690553863000029f9565b6300002a6c91503d806000833e63000012d681836300002e5b565b3863000002fa565b60009260005b6007198316830381106300002a9a57505060031c01553880806300000291565b909360206300002ac6600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002a7a565b6000805b600881106300002aee5750838201556001016300000276565b949060206300002b1a600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002ad5565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c16806300002b8e575b506007840160031c81015b6007830160031c820181106300002b805750506300000263565b600081556001016300002b66565b60001990816007870160031c8401019182549160200360031b1c169055386300002b5b565b6300002bce91503d806000833e63000012d681836300002e5b565b38630000022c565b60009260005b6007198316830381106300002bfc57505060031c015538808063000001c5565b909360206300002c28600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002bdc565b6000805b600881106300002c5057508382015560010163000001aa565b949060206300002c7c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002c37565b601c6000526020600020601c8460021b16806300002cd3575b506007840160031c81015b6007830160031c820181106300002cc55750506300000197565b600081556001016300002cab565b60001990816007870160031c8401019182549160200360031b1c169055386300002ca0565b6300002d1391503d806000833e63000012d681836300002e5b565b386300000160565b9260009360005b8181106300002d3e5750505060031c01553880808063000000f7565b90919460206300002d6b600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016300002d22565b6000805b600881106300002d9457508382015560010163000000db565b949060206300002dc0600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002d7b565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b16806300002e16575b505b8181106300002e08575063000000c8565b600081556001016300002df7565b600019908183019182549160200360031b1c169055386300002df5565b6300002e4e91503d806000833e63000012d681836300002e5b565b386300000091565b600080fd5b601f909101601f19168101906001600160401b0382119082101763000012a557604052565b9060209081838203126300002e565782516001600160401b03938482116300002e56570181601f820112156300002e5657805193841163000012a5578360051b90604051946300002ed5858401876300002e5b565b855283808601928201019283116300002e56578301905b8282106300002efc575050505090565b81516001600160e01b0319811681036300002e565781529083019083016300002eec56fe60808060405260043610156200001457600080fd5b600090813560e01c9081630a9254e41462004959575080631e33429414620047705780631ed7831c14620046ea5780632d49aa1c14620045c857806330dd2c4514620044b257806337bdc99b14620042b55780633e5e3c23146200422f5780633f7286f414620041a95780634d238c8e146200414b5780635c2c2fed1462003b5057806363323eb81462003b1857806366d9a9a01462003a615780637b1837de146200375257806385226c8114620036175780638710555714620035e0578063916a17c61462003529578063951759c914620031975780639b2110801462002a2b5780639c821dc614620022dd578063a0aaa2851462001d98578063a9fb763c1462001cf2578063b5508aa91462001ba3578063ba414fa61462001b7a578063c33dd9d51462001313578063c69a046914620012bf578063d8d52713146200113a578063dd78497414620010f9578063e20c9f711462001059578063ea1c89ed14620008c3578063eb8df0521462000457578063fa7626d41462000433578063fbfb892714620003fa5763fc6c1f0214620001ae57600080fd5b34620003575760403660031901126200035757620001cb62004ee2565b620001d562007c74565b90620001fb620001e58262007d12565b92600093620001f48262005f03565b5262005f03565b506040516200020a8162004d91565b6001815260203681830137620002236024359162005f03565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f65760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003eb57620003d5575b50604051906200028c8262004d91565b438252836020830152823b15620003c6576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003ca579085939291620003a8575b506043546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039d5762000369575b50803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b6200034d829162004dc9565b6200035757808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b6200038e9060603d811162000395575b62000385818362004e4e565b81019062007ccb565b5062000310565b503d62000379565b6040513d85823e3d90fd5b620003b7909391929362004dc9565b620003c65790839138620002cf565b8380fd5b6040513d87823e3d90fd5b620003e39093919362004dc9565b91386200027c565b6040513d86823e3d90fd5b8280fd5b5034620003575760603660031901126200035757620004306200041c62004ecb565b6200042662004ef9565b90600435620080ab565b80f35b5034620003575780600319360112620003575760ff60209154166040519015158152f35b5034620003575760031960603682011262000365576200047662004ee2565b6044356002811015620003c657602d54620004ae6000916200049762005fb1565b50603e546001600160a01b0390811691166200838b565b9195939792505060018060a01b03604054169560405193639d3070b560e01b85526020600486015260208580620004e9602482018d62005222565b03818b5afa948515620008b85786956200087e575b506001850185116200086a576001870187116200086a576004602062000528602435809662007c66565b9960405192838092632472942560e01b82525afa9081156200085f57879162000823575b5015620007eb5780620007195750603f546001600160a01b031690620005729062007d12565b91813b15620007155790620005ae8693928a620005be6040519788968795869463018f44b760e41b865260406004870152604486019062005222565b91848303016024850152620052af565b03925af180156200039d57620006fd575b5090602092915b602d546200063f906200060a906001600160a01b0316620005f662005fb1565b50603e546001600160a01b0316906200838b565b9893505098905060018060a01b03604054166040518080958194639d3070b560e01b8352866004840152602483019062005222565b03915afa928315620006f15792620006b1575b50600101036200067757620004309360016200067092011462007fe6565b1462008026565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006e8575b81620006d06020938362004e4e565b81010312620006e3575190600162000652565b600080fd5b3d9150620006c1565b604051903d90823e3d90fd5b62000709839162004dc9565b620003655738620005cf565b8580fd5b929897969594939260011462000739575b505060209394959650620005d6565b603f549293926001600160a01b031690620007549062007d12565b91813b15620003c65790620007918489819594620007a16040519e8f978896879563028bf0d560e11b875260606004880152606487019062005222565b91858303016024860152620052af565b90604483015203925af1968715620007de57602094959697620007cc575b879695949291926200072a565b620007d79062004dc9565b38620007bf565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000856575b81620008416020938362004e4e565b81010312620008525751386200054c565b8680fd5b3d915062000832565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008af575b816200089d6020938362004e4e565b810103126200071557519338620004fe565b3d91506200088e565b6040513d88823e3d90fd5b5034620003575760c036600319011262000357576004356001600160401b0381116200036557620008f99036906004016200534c565b6200090362004ecb565b906200090e62004ef9565b6064356001600160a01b0381168103620006e357608435906001600160a01b0382168203620006e35760a435926001600160a01b0384168403620006e357604051956200095b8762004d75565b6005875260005b60a081106200103f5750604051906200097b8262004dad565b6001600160a01b0316815260208101889052620009976200559b565b6040820152620009a78762005f03565b52620009b38662005f03565b5060405190620009c38262004dad565b60018060a01b0316815286602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062000fca5762000a6e94549181811062000e4b575b81811062000e2b575b81811062000e0b575b81811062000deb575b81811062000dcb575b81811062000dab575b81811062000d8d575b1062000d77575b50038262004e4e565b604082015262000a7e8662005f27565b5262000a8a8562005f27565b506040519062000a9a8262004dad565b60018060a01b0316815285602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062000f555762000b3d94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000b4d8562005f38565b5262000b598462005f38565b506040519062000b698262004dad565b60018060a01b0316815284602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062000ee05762000c0c94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000c1c8462005f49565b5262000c288362005f49565b506040519062000c388262004dad565b60018060a01b0316815283602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062000e6b5762000cdb94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000ceb8362005f5a565b5262000cf78262005f5a565b50604051916114a4808401908482106001600160401b0383111762000d63579184939162000d2b936200a1798639620070ed565b039082f08015620007de57602c80546001600160a01b031981166001600160a01b039093169283179091556040519216178152602090f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000a65565b602083811b6001600160e01b03191685529093019260010162000a5e565b604083901b6001600160e01b031916845260209093019260010162000a55565b606083901b6001600160e01b031916845260209093019260010162000a4c565b608083901b6001600160e01b031916845260209093019260010162000a43565b60a083901b6001600160e01b031916845260209093019260010162000a3a565b60c083901b6001600160e01b031916845260209093019260010162000a31565b60e083901b6001600160e01b031916845260209093019260010162000a28565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000c82565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000bb3565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000ae4565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000a0d565b6020906200104c62005fcd565b82828b0101520162000962565b50346200035757806003193601126200035757604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b85828210620010d957505050620010bf9250038362004e4e565b620010d560405192828493845283019062005071565b0390f35b85546001600160a01b0316845260019586019588955093019201620010a5565b5034620003575760203660031901126200035757620010d5620011296200111f62004ee2565b620005f662005fb1565b91604095939551958695866200527f565b5034620003575760403660031901126200035757806200115962004ee2565b6024356001600160401b03811162001282576200117b90369060040162005014565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620012ba5760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008b8578691620012a2575b5050813b156200129e57849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003eb57849162001286575b5050602d5416803b1562001282576200125c8391670de0b6b3a7640000936040519485809481936330b858b160e11b835260206004840152602483019062005195565b03925af180156200035a576200126f5750f35b6200127a9062004dc9565b620003575780f35b5050fd5b620012919062004dc9565b6200128257823862001219565b8480fd5b620012ad9062004dc9565b6200129e578438620011d2565b505050fd5b5034620003575760203660031901126200035757600435906001600160401b0382116200035757602062001301620012fb36600486016200534c565b620071e3565b6040516001600160a01b039091168152f35b503462000357576003196020368201126200036557600435906001600160401b038211620003f65760a090823603011262000365576040519060a082018281106001600160401b0382111762001b6457604052620013748160040162004f10565b8252620013846024820162004f10565b6020830152620013976044820162004f10565b604083015260648101356001600160401b038111620003c657620013c29060043691840101620052d4565b60608301526084810135906001600160401b038211620003c6576004620013ed9236920101620052d4565b6080820152604051908160a08101106001600160401b0360a08401111762001b645760a082016040526004825260005b6080811062001b4a575060405180610d308101106001600160401b03610d308301111762001b3657610d306200c73b823980610d308101039084f080156200039d57604051806108848101106001600160401b036108848301111762001b22576108846200d46b8239806108848101039085f0908115620003eb5760405180611ec58101106001600160401b03611ec58301111762000d6357611ec56202527c823980611ec58101039086f0908115620003ca5760405180610b3d8101106001600160401b03610b3d8301111762001b0e57610b3d62027141823980610b3d8101039087f0928315620008b85760405190620015198262004dad565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b80600783011062001a9857620015bc94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620015cc8662005f03565b52620015d88562005f03565b5060405190620015e88262004dad565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b80600783011062001a22576200168b94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b60408201526200169b8562005f27565b52620016a78462005f27565b5060405190620016b78262004dad565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620019ac576200175a94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b60408201526200176a8462005f38565b52620017768362005f38565b5060405190620017868262004dad565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062001936576200182994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620018398362005f49565b52620018458262005f49565b506040519161111e90818401918483106001600160401b0384111762000d63579162001887859492620018ef946200b61d8739604083526040830190620061b1565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b0360408301511660408201526080620018dd606084015160a0606085015260a0840190620050b0565b920151906080818403910152620050b0565b039082f08015620007de5760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e0820152019401920184929391620017d0565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001701565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001632565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001563565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b634e487b7160e01b84526041600452602484fd5b60209062001b5762005fcd565b828286010152016200141d565b634e487b7160e01b600052604160045260246000fd5b50346200035757806003193601126200035757602062001b996200549c565b6040519015158152f35b5034620003575780600319360112620003575760105462001bc48162004eb3565b9062001bd4604051928362004e4e565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b84831062001c1c5760405180620010d58882620051bc565b604051849188549160019280841c90848116801562001ce7575b878310811462001cd3578284528794939291811562001cb5575060011462001c79575b5062001c6a81600196038262004e4e565b81520197019201919562001c04565b8b8952838920955088905b80821062001c9d575081018301945062001c6a62001c59565b86548383018601529585019587949091019062001c84565b60ff19168584015250151560051b81018301945062001c6a62001c59565b634e487b7160e01b8a52602260045260248afd5b91607f169162001c36565b5034620003575760203660031901126200035757808060405162001d168162004d91565b601c81527f726577617264206d6574686f642063616c6c6564207769746820256400000000602082015260405162001d848162001d6d60208201946309710a9d60e41b865260406024840152606483019062005195565b600435604483015203601f19810183528262004e4e565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003575760c0366003190112620003575762001db662004ee2565b6024908135916001831015620003c65762001dd062004e70565b9162001ddb62004e87565b9262001de662004fd8565b6040519262001df58462004e16565b600084526040519362001e088562004d91565b607b85526020908186015260405192613942938481016001600160401b039582821087831117620022c8579082916202106f833903906000f0988915620022935760018060a01b0398896001600160601b0360a01b9b168b602d541617602d5560405161154f8082019082821089831117620022b3579082916201fb20833903906000f0801562002293578a168b602f541617602f556040516102308082019082821089831117620022b357908291620249b1833903906000f0801562002293578a168b6031541617603155604051612f0f8082019082821089831117620022b3579082916201cc11833903906000f0801562002293578a168b603254161760325560405161069b8082019082821089831117620022b35790829162024be1833903906000f0801562002293578a168b6030541617603055604051610d308082019082821089831117620022b3579082916200c73b833903906000f0801562002293578a168b60335416176033556040516108848082019082821089831117620022b3579082916200d46b833903906000f093841562002293576200218b97620021c3889485938f8f908160ff9b168091603454161760345562001fcb62006163565b9d8e83602d54166040519062001fe18262004dad565b815260008682015262001ff3620057ab565b6040820152620020038262005f03565b526200200f8162005f03565b5083602f541660405190620020248262004dad565b8152600086820152620020366200559b565b6040820152620020468262005f27565b52620020528162005f27565b50836031541660405190620020678262004dad565b815260008682015262002079620058bc565b6040820152620020898262005f38565b52620020958162005f38565b50836030541660405190620020aa8262004dad565b8152600086820152620020bc620059cd565b6040820152620020cc8262005f49565b52620020d88162005f49565b50836032541660405190620020ed8262004dad565b8152600086820152620020ff62005ade565b60408201526200210f8262005f5a565b526200211b8162005f5a565b50836033541660405190620021308262004dad565b81526000868201526200214262005bef565b6040820152620021528262005fa0565b526200215e8162005fa0565b50604051926200216e8462004dad565b83526000858401526200218062005d00565b604084015262005f6b565b52620021978d62005f6b565b50620021a262006130565b9a6040519e8f620021b38162004df9565b5216908d015260408c0162005ff0565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a49081860192868410908411176200229f57509184939162002234936200a1798639620070ed565b03906000f08015620022935716908181602c541617602c558181602d541617602d558181603154161760315581816030541617603055818160325416176032558181602f541617602f5581816033541617603355603454161760345580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b50346200035757806003193601126200035757604051620022fe8162004e32565b6003815260005b6060811062002a11575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039d578390620029d2575b62002364915062007d12565b6200236f8762005f03565b526200237b8662005f03565b5060405183815260c8600482015284818381895afa80156200039d57839062002993575b620023ab915062007d12565b620023b68762005f27565b52620023c28662005f27565b506040519280845261012c93846004820152858184818a5afa8015620003eb57849062002954575b620023f6915062007d12565b620024018862005f38565b526200240d8762005f38565b50604051956200241d8762004e32565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008b857869462002915575b506200245a8962005f03565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200085f578791620028d8575b5084620024988b62005f27565b9116905260405181815287600482015288818781875afa9081156200085f5787916200289b575b5084620024cc8b62005f38565b9116905260405190620024df8262004e32565b600382528b368a8401376040519080825283600483015289828881885afa918215620027d15788926200285c575b50843b15620027905760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af18015620027f857908a9162002844575b505060405182815260c860048201528b818a818a5afa908115620027f8578a9162002807575b50863b15620028035787604051918583521660048201528a898201528981604481838b5af18015620027f857908a91620027dc575b5050604051918252600482015289818881885afa908115620027d157889162002794575b50843b15620027905785906040519283521660048201528786820152868160448183885af180156200085f5790879162002778575b50508082620026166200262a9362005f03565b5282620026238262005f27565b5262005f38565b52604051926200263a8462004d91565b4384528487850152813b156200129e5760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003eb57918493918a9362002758575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035a5762002737575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b8282106200270257888803868a01528880620010d58a8a62005071565b919397509184806200272283979899605f198d82030186528b51620052af565b990192019201889796959492939193620026e5565b6200275190873d8911620003955762000385818362004e4e565b50620026bc565b6200276891935093919362004dc9565b620003f65782918891386200267f565b620027839062004dc9565b6200071557853862002603565b8780fd5b90508981813d8311620027c9575b620027ae818362004e4e565b810103126200279057620027c29062007cb6565b38620025ce565b503d620027a2565b6040513d8a823e3d90fd5b620027e79062004dc9565b620027f4578838620025aa565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d83116200283c575b62002821818362004e4e565b810103126200280357620028359062007cb6565b3862002575565b503d62002815565b6200284f9062004dc9565b620027f45788386200254f565b9091508981813d831162002893575b62002877818362004e4e565b8101031262002790576200288b9062007cb6565b90386200250d565b503d6200286b565b90508881813d8311620028d0575b620028b5818362004e4e565b810103126200085257620028c99062007cb6565b38620024bf565b503d620028a9565b90508881813d83116200290d575b620028f2818362004e4e565b810103126200085257620029069062007cb6565b386200248b565b503d620028e6565b9093508781813d83116200294c575b62002930818362004e4e565b810103126200071557620029449062007cb6565b92386200244e565b503d62002924565b508581813d83116200298b575b6200296d818362004e4e565b81010312620003c65762002985620023f69162007cb6565b620023ea565b503d62002961565b508481813d8311620029ca575b620029ac818362004e4e565b81010312620003f657620029c4620023ab9162007cb6565b6200239f565b503d620029a0565b508481813d831162002a09575b620029eb818362004e4e565b81010312620003f65762002a03620023649162007cb6565b62002358565b503d620029df565b60209062002a1e62005fb1565b8282850101520162002305565b503462000357576040366003190112620003575762002a4962004ee2565b62002a5362004ecb565b603e546001600160a01b031690813b15620006e357604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003eb576200317b575b5062002aad600491836200838b565b6040805490516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039d57839262003153575b50602062002b1391604051809381926390ba52cf60e01b8352846004840152602483019062005222565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d57868491829362003114575b5060405163aa5106cb60e01b815292938391829162002b6391906004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d5762002bb7916020918591620030f6575b50604051809381926390ba52cf60e01b8352846004840152602483019062005222565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f15792620030bc575b5003620030455762002c0d62002c149262002c06670de0b6b3a7640000600497146200806b565b1562007fe6565b1562008026565b6040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de5762002c6c938591839162003001575b5060405163aa5106cb60e01b815294859283926004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb5784926200301f575b5062002ca46004929362007d12565b6040519362002cb38562004d91565b845260208401526040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de5762002d11938391839162003001575060405163aa5106cb60e01b815294859283926004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb57849262002fd3575b5062002d469062007d12565b6040519162002d558362004d91565b825260208201526040519062002d6b8262004e16565b8382526040519262002d7d8462004ddd565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be400848601526040519462002dc18662004d91565b85528560208601526040519262002dd88462004d91565b600194858552875b6020811062002f6c5750505050508262002dfa8262005f03565b5262002e068162005f03565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003655760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035a5762002f54575b50506042546001600160a01b031690813b156200129e5791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b82821062002f1d5750505050508383809203925af180156200039d5762002f05575b60208260405162002efa8162002eeb85820194868652604083019062007f47565b03601f19810183528262004e4e565b519020604051908152f35b62002f11839162004dc9565b62000365578162002eca565b929597509295509260208062002f3f87936043198c8203018652895162007f47565b970192019201928795938a9795929362002ea8565b62002f5f9062004dc9565b620003c657833862002e57565b60209060405162002f7d8162004d91565b60405162002f8b8162004ddd565b62002f9562007eec565b815262002fa162007eec565b848201528b60408201528b888201528b8682015287878201528b8582015281528a838201528282890101520162002de0565b62002d4691925062002ff9903d8087833e62002ff0818362004e4e565b81019062007e99565b919062002d3a565b6200301891503d8085833e62002ff0818362004e4e565b3862002c4f565b600492506200303d62002ca4913d8088833e62002ff0818362004e4e565b925062002c95565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d602011620030ed575b81620030db6020938362004e4e565b81010312620006e35751903862002bdf565b3d9150620030cc565b6200310d91503d8087833e62002ff0818362004e4e565b3862002b94565b925050506020813d6020116200314a575b81620031346020938362004e4e565b81010312620006e35751828662002b6362002b3f565b3d915062003125565b62002b13919250620031726020913d8087833e62002ff0818362004e4e565b92915062002ae9565b600491936200318e62002aad9262004dc9565b93915062002a9e565b50346200035757602090816003193601126200035757620031b762004ee2565b604051614ffa908181016001600160401b03928282108483111762000d635790829162027c7e8339039084f09182156200039d5760405161154f808201908282108583111762001b0e579082916201fb208339039085f0908115620003eb57859060405192620032278462004dad565b6002845260005b604081106200350a5750604051620032468162004dad565b6001600160a01b03968716815283810188905260405160298054808352600091825282870191907fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac5b8160078401106200348f579284926200335f9992620032fd9554918482821062003470575b82821062003451575b82821062003432575b82821062003413575b828210620033f4575b828210620033d5575b828210620033b8575b5010620033a2575b509050038262004e4e565b60408201526200330d8562005f03565b52620033198462005f03565b5085604051916200332a8362004dad565b16815286888201526200333c6200559b565b60408201526200334c8462005f27565b52620033588362005f27565b506200601e565b90604051926114a4808501918583109083111762001b0e57918493916200338c936200a1798639620070ed565b039083f0918215620006f1575060405191168152f35b6001600160e01b03191681528d910138620032f2565b83811b6001600160e01b03191685529093019260010184620032ea565b604084901b6001600160e01b03191685529093019260010184620032e1565b606084901b6001600160e01b03191685529093019260010184620032d8565b608084901b6001600160e01b03191685529093019260010184620032cf565b60a084901b6001600160e01b03191685529093019260010184620032c6565b60c084901b6001600160e01b03191685529093019260010184620032bd565b60e084901b6001600160e01b03191685529093019260010184620032b4565b93949596976101006008929394600192875463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520194019201908c9796959493926200328f565b620035189391929362005fcd565b82828701015201908792916200322e565b503462000357578060031936011262000357576013546200354a8162004eb3565b906200355a604051928362004e4e565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b838310620035a15760405180620010d58782620050f0565b600282600192604051620035b58162004d91565b848060a01b038a54168152620035cd858b0162005e11565b8382015281520196019201919462003589565b5034620003575760403660031901126200035757620010d5620011296200360662004ee2565b6200361062004ecb565b906200838b565b50346200035757806003193601126200035757601154620036388162004eb3565b9062003648604051928362004e4e565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b848310620036905760405180620010d58882620051bc565b604051849188549160019280841c90848116801562003747575b878310811462001cd35782845287949392918115620037295750600114620036ed575b50620036de81600196038262004e4e565b81520197019201919562003678565b8b8952838920955088905b808210620037115750810183019450620036de620036cd565b865483830186015295850195879490910190620036f8565b60ff19168584015250151560051b810183019450620036de620036cd565b91607f1691620036aa565b503462000357576003199060403683011262000357576200377262004ee2565b60249283359160018060a01b03620037d9620037a382602d54166200379662005fb1565b5083603e5416906200838b565b9793919692505084604054169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62005222565b03915afa958615620022935760009662003a2c575b506001860180961162003a17576001890180991162003a175786620038168460049362007c66565b9b60405192838092632472942560e01b82525afa9081156200229357600091620039e4575b5015620039ad576200385287603f54169462007d12565b93803b15620006e3576200389d946000938e6040519788958694859363018f44b760e41b8552604060048601526200388e604486018c62005222565b928584030190850152620052af565b03925af190811562002293578a97620039009386936200399b575b50620038d987602d5416620038cc62005fb1565b5088603e5416906200838b565b9c935050989050604054169160405195869485938493845287600485015283019062005222565b03915afa908115620022935760009162003968575b50036200393057506200043093929162000670911462007fe6565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d831162003993575b62003981818362004e4e565b81010312620003575750513862003915565b503d62003975565b620039a69062004dc9565b38620038b8565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d831162003a0f575b620039fd818362004e4e565b8101031262000357575051386200383b565b503d620039f1565b8c634e487b7160e01b60005260116004526000fd5b90958782813d831162003a59575b62003a46818362004e4e565b81010312620003575750519438620037ee565b503d62003a3a565b5034620003575780600319360112620003575760125462003a828162004eb3565b9062003a92604051928362004e4e565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b83831062003ad95760405180620010d58782620050f0565b60028260019260405162003aed8162004d91565b848060a01b038a5416815262003b05858b0162005e11565b8382015281520196019201919462003ac1565b50346200035757604036600319011262000357576200043062003b3a62004ecb565b603e546001600160a01b031690600435620080ab565b50346200035757610100366003190112620003575762003b6f62004ee2565b60016024351015620003655762003b8562004e70565b62003b8f62004e87565b9162003b9a62004fd8565b91600360c43510156200129e5760e43561ffff81168103620006e3576040519462003bc58662004e16565b600086526040519562003bd88762004d91565b607b875260208701526040516139428082018281106001600160401b0382111762001b645782916202106f833903906000f08015620022935760018060a01b03166001600160601b0360a01b602d541617602d5560405161154f8082018281106001600160401b0382111762001b645782916201fb20833903906000f08015620022935760018060a01b03166001600160601b0360a01b602f541617602f556040516102308082018281106001600160401b0382111762001b64578291620249b1833903906000f08015620022935760018060a01b03166001600160601b0360a01b6031541617603155604051612f0f8082018281106001600160401b0382111762001b645782916201cc11833903906000f08015620022935760018060a01b03166001600160601b0360a01b603254161760325560405161069b8082018281106001600160401b0382111762001b6457829162024be1833903906000f08015620022935760018060a01b03166001600160601b0360a01b6030541617603055604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f08015620022935760018060a01b03166001600160601b0360a01b60335416176033556040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09485156200229357603480546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b0391829062003e0b62006163565b602d54604051919b91906001600160a01b031662003e298262004dad565b81526000602082015262003e3c620057ab565b604082015262003e4c8c62005f03565b5262003e588b62005f03565b50602f54604051906001600160a01b031662003e748262004dad565b81526000602082015262003e876200559b565b604082015262003e978c62005f27565b5262003ea38b62005f27565b50603154604051906001600160a01b031662003ebf8262004dad565b81526000602082015262003ed2620058bc565b604082015262003ee28c62005f38565b5262003eee8b62005f38565b50603054604051906001600160a01b031662003f0a8262004dad565b81526000602082015262003f1d620059cd565b604082015262003f2d8c62005f49565b5262003f398b62005f49565b50603254604051906001600160a01b031662003f558262004dad565b81526000602082015262003f6862005ade565b604082015262003f788c62005f5a565b5262003f848b62005f5a565b50603354604051906001600160a01b031662003fa08262004dad565b81526000602082015262003fb362005bef565b604082015262003fc38c62005fa0565b5262003fcf8b62005fa0565b506040519062003fdf8262004dad565b6001600160a01b031681526000602082015262003ffb62005d00565b60408201526200400b8b62005f6b565b52620040178a62005f6b565b506200402262006130565b986040519b620040328d62004df9565b8c526001600160a01b031660208c01526200405360243560408d0162005ff0565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200409460c43562006013565b60c435610140840152610160830152604051916114a490818401928484106001600160401b0385111762001b64578493620040d5936200a1798639620070ed565b03906000f080156200229357602c80546001600160a01b03929092166001600160a01b03199283168117909155602d8054831682179055603180548316821790556030805483168217905560328054831682179055602f8054831682179055603380548316821790556034805490921617905580f35b50346200035757602036600319011262000357576200416962004ee2565b6200417362007c74565b9062004183620001e58262007d12565b50606462000223604051620041988162004d91565b600181526020368183013762005f03565b50346200035757806003193601126200035757604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b858282106200420f57505050620010bf9250038362004e4e565b85546001600160a01b0316845260019586019588955093019201620041f5565b50346200035757806003193601126200035757604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200429557505050620010bf9250038362004e4e565b85546001600160a01b03168452600195860195889550930192016200427b565b503462000357576020806003193601126200036557604080549051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003ca57859262004473575b5060016001600160401b0380931601908282116200445d5780603f541690866200432c3362007d12565b92803b1562000365576200435f9382916040518080978194636b2c1eef60e01b83528d60048401526024830190620052af565b0391600435905af1928315620007de57879362004440575b5050604054169360046040518096819382525afa928315620003ca57859362004400575b508116911603620043aa575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d831162004438575b6200441b818362004e4e565b810103126200129e5762004430829162007dd1565b92906200439b565b503d6200440f565b6200444e9192935062004dc9565b62000715578490863862004377565b634e487b7160e01b600052601160045260246000fd5b9091508381813d8311620044aa575b6200448e818362004e4e565b810103126200129e57620044a29062007dd1565b903862004302565b503d62004482565b503462000357576020806003193601126200036557600435916001600160401b03918284116200036557366023850112156200036557836004013590620044f98262004eb3565b9162004509604051938462004e4e565b8083528183019560249687600593841b83010191368311620008525788859101915b838310620045b757505050508384905b8682166003811015620045ad5785511115620045985762004571879185681fffffffffffffffe085871b16880101519062007c66565b91168681146200458557600101906200453b565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b82358152918101918591016200452b565b5034620003575760403660031901126200035757600435620045e962004ecb565b803190620045f662005fb1565b50603e546001600160a01b03929062004612908416836200838b565b50505092905083603f541686813b15620003575786916004604051809481936316989f6f60e21b83525af180156200085f57620046d1575b5080620046699131946200465d62005fb1565b50603e5416906200838b565b5050509390508482039182116200086a570362004697576200043092620046909162007c66565b146200806b565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b95620046e262004669929762004dc9565b95906200464a565b50346200035757806003193601126200035757604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b858282106200475057505050620010bf9250038362004e4e565b85546001600160a01b031684526001958601958895509301920162004736565b5034620003575760031960203682011262000365576001600160401b0360043511620003655760c09060043536030112620003575760405190620047b48262004d75565b600435600401356001600160401b0381116200036557620047dd90600436918135010162004f25565b82526004356024810135602084015260448101356040840152620048049060640162004fe9565b6060830152608460043501356001600160401b0381116200036557366023826004350101121562000365576004818135010135620048428162004eb3565b9262004852604051948562004e4e565b81845260208401923660248460051b836004350101011162000365576024816004350101935b60248460051b836004350101018510620048b45760206200130188886080820152620048a960a46004350162005061565b60a08201526200623f565b84356001600160401b038111620003c65760606004358401820136036023190112620003c65760405190620048e98262004dad565b6004358401810160248101358352620049059060440162004f10565b60208301526001600160401b036064828660043501010135116200129e57602492602092839262004946903690600435890101606481013501870162005014565b6040820152815201950194905062004878565b905034620003655781600319360112620003655762004a5681620049856001600160401b039362004d91565b6001815260016200499e60209283368183013762005f03565b5260405190620049ae8262004d75565b620049b862005fb1565b825284818301528460408301528460a060609382858201528460808201520152604051620049e68162004e16565b85815260405190620049f88262004d91565b607b82528282015260405162004a0e8162004e16565b8681526040519162004a208362004d75565b8252600a838301526402540be40060408301526046848301526080820152606460a08201526001600160a01b039384916200623f565b168362004ad6620012fb6001600160601b0360a01b938085603e541617603e55808560405416176040558085603f541617603f55808560415416176041558085604254161760425580856043541617604355808560445416176044558085604554161760455580856047541617604755808560465416176046556200601e565b16908181602c541617602c558181602d541617602d558181602f541617602f5581816031541617603155818160305416176030558181603254161760325581816034541617603455603354161760335562004be962004b3462007c74565b62004b3e62005fb1565b50604051600360621b848201526014815262004bc59062004b5f8162004d91565b62004bb66040519162004b728362004dad565b600a83526001600160801b0387840160148152604085019283526040519b8c958a80880152511660408601525116888401525187608084015260a083019062005195565b03601f19810188528762004e4e565b6040519562004bd48762004d91565b60048752838701528695620001f48262005f03565b50606462004c0e60405162004bfe8162004d91565b6001815283368183013762005f03565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15620007155760405163c88a5e6d60e01b8152600c600482015260016024820152868160448183895af180156200085f5762004d5f575b50846040519262004c6f8462004d91565b438452830152833b156200129e576040516303223eab60e11b815260ff60981b6004820152858160248183895af18015620008b85791869391859362004d3f575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af18015620003eb5762004d1f575b5050803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b8162004d3992903d10620003955762000385818362004e4e565b62004ced565b62004d4f91935093919362004dc9565b6200129e57849183913862004cb0565b62004d6c91955062004dc9565b84933862004c5e565b60c081019081106001600160401b0382111762001b6457604052565b604081019081106001600160401b0382111762001b6457604052565b606081019081106001600160401b0382111762001b6457604052565b6001600160401b03811162001b6457604052565b60e081019081106001600160401b0382111762001b6457604052565b61018081019081106001600160401b0382111762001b6457604052565b602081019081106001600160401b0382111762001b6457604052565b608081019081106001600160401b0382111762001b6457604052565b90601f801991011681019081106001600160401b0382111762001b6457604052565b606435906001600160401b0382168203620006e357565b608435906001600160401b0382168203620006e357565b35906001600160401b0382168203620006e357565b6001600160401b03811162001b645760051b60200190565b602435906001600160a01b0382168203620006e357565b600435906001600160a01b0382168203620006e357565b604435906001600160a01b0382168203620006e357565b35906001600160a01b0382168203620006e357565b9190604083820312620006e3576040519262004f418462004d91565b8362004f4d8262004e9e565b815260209182810135906001600160401b038211620006e357019280601f85011215620006e357833562004f818162004eb3565b9462004f91604051968762004e4e565b818652848087019260051b820101928311620006e35784809101915b83831062004fbd57505050500152565b819062004fca8462004f10565b815201910190849062004fad565b60a4359060ff82168203620006e357565b359060ff82168203620006e357565b6001600160401b03811162001b6457601f01601f191660200190565b81601f82011215620006e3578035906200502e8262004ff8565b926200503e604051948562004e4e565b82845260208383010111620006e357816000926020809301838601378301015290565b359061ffff82168203620006e357565b90815180825260208080930193019160005b82811062005092575050505090565b83516001600160a01b03168552938101939281019260010162005083565b90815180825260208080930193019160005b828110620050d1575050505090565b83516001600160e01b03191685529381019392810192600101620050c2565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062005126575050505050505090565b9091929394959685806200515e600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620050b0565b99019401940192959493919062005114565b60005b838110620051845750506000910152565b818101518382015260200162005173565b90602091620051b08151809281855285808601910162005170565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310620051f15750505050505090565b909192939495848062005211600193603f198682030187528a5162005195565b9801930193019194939290620051e0565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062005261575050505090565b83516001600160a01b03168552938101939281019260010162005252565b9195949390926200529b60809460a0855260a085019062005222565b966020840152604083015260608201520152565b9060406020620052d19360ff8151168452015191816020820152019062005195565b90565b81601f82011215620006e357803591620052ee8362004eb3565b92620052fe604051948562004e4e565b808452602092838086019260051b820101928311620006e3578301905b8282106200532a575050505090565b81356001600160e01b031981168103620006e35781529083019083016200531b565b9190918083036101a08112620006e3576040516200536a8162004df9565b80948335906001600160401b038211620006e3576200538b91850162004f25565b81526200539b6020840162004f10565b602082015260408301356001811015620006e357604082015260608301356060820152620053cc6080840162004e9e565b6080820152620053df60a0840162004e9e565b60a0820152620053f260c0840162004fe9565b60c08201526200540560e0840162005061565b60e08201526101008084013590820152610120918284013560009381850b82036200129e57830152610140808501359060038210156200129e57830152604061015f1990910112620003655760405192620054608462004d91565b6101609283820135906002821015620003575750845262005485906101800162004f10565b60208401520152565b51908115158203620006e357565b6000805460081c60ff1615620054b6575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620054d857505090565b819250819060405182602082018381526519985a5b195960d21b604084015260408352620055068362004dad565b6200554260246040518093620055316020830197630667f9d760e41b89525180928585019062005170565b810103600481018452018262004e4e565b51925af1503d1562005592573d906200555b8262004ff8565b916200556b604051938462004e4e565b82523d81602084013e5b6020828051810103126200035757506020620052d191016200548e565b60609062005575565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b8160078201106200573757846200564097549383831062005716575b838310620056f5575b838310620056d4575b838310620056b3575b83831062005692575b83831062005674575b5082821062005657575b501062005642575b509050038362004e4e565b565b6001600160e01b031916815201803862005635565b83811b6001600160e01b031916855290930192600101846200562d565b84901b6001600160e01b031916855290930192600101843862005623565b606085901b6001600160e01b0319168652948101946001909201916200561a565b608085901b6001600160e01b03191686529481019460019092019162005611565b60a085901b6001600160e01b03191686529481019460019092019162005608565b60c085901b6001600160e01b031916865294810194600190920191620055ff565b60e085901b6001600160e01b031916865294810194600190920191620055f6565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620055da565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b816007820110620058485784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620057ea565b60409081519182602654918282526020908183019060266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35949460005b816007820110620059595784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620058fb565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062005a6a5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005a0c565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062005b7b5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005b1d565b60409081519182602a549182825260209081830190602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d29460005b81600782011062005c8c5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005c2e565b60409081519182602b549182825260209081830190602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f9460005b81600782011062005d9d5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005d3f565b906040918251809382549283835260209182840191600052826000209460005b81600782011062005e8f5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005e31565b80511562005f115760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005f115760400190565b80516002101562005f115760600190565b80516003101562005f115760800190565b80516004101562005f115760a00190565b80516006101562005f115760e00190565b80516007101562005f11576101000190565b80516008101562005f11576101200190565b80516005101562005f115760c00190565b6040519062005fc08262004d91565b6060602083600081520152565b6040519062005fdc8262004dad565b606060408360008152600060208201520152565b600182101562005ffd5752565b634e487b7160e01b600052602160045260246000fd5b6003111562005ffd57565b604080516200602d8162004df9565b6200603762005fb1565b8152600080602083015280838301528060608301528060808301528060a08301528060c08301528060e08301526101008181840152600c61012083818601526402540be4006101409385858801528751620060928162004d91565b8681528660208201526101608098015285620060ad62006130565b9880519a620060bc8c62004e16565b828c5281519b620060cd8d62004d91565b607b8d5260208d015281519b620060e48d62004df9565b8c526001600160a01b031660208c01528a0152670de0b6b3a764000060608a0152600160808a0152600a60a08a0152604660c08a0152606460e08a015288015286015284015282015290565b60006020604051620061428162004d91565b8281520152604051620061558162004d91565b600081526000602082015290565b6040519061010082018281106001600160401b0382111762001b6457604052600782528160005b60e0811062006197575050565b602090620061a462005fcd565b828285010152016200618a565b908082519081815260208091019281808460051b8301019501936000915b848310620061e05750505050505090565b90919293949584806200622e600193601f198682030187528a51858060a01b03815116825283810151620062148162006013565b8483015260408091015191606080928201520190620050b0565b9801930193019194939290620061cf565b906040516117848082018281106001600160401b0382111762001b645782916201746f833903906000f0801562002293576040516116598082018281106001600160401b0382111762001b645782916201b5b8833903906000f0801562002293576040516129c58082018281106001600160401b0382111762001b6457829162018bf3833903906000f09081156200229357604051612a728082018281106001600160401b0382111762001b64578291620149fd833903906000f0801562002293576040516126e78082018281106001600160401b0382111762001b645782916200ff50833903906000f0801562002293576040516122618082018281106001600160401b0382111762001b645782916200dcef833903906000f090811562002293576040516123c68082018281106001600160401b0382111762001b6457829162012637833903906000f09283156200229357604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f095861562002293576040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09586156200229357604051986101408a018a81106001600160401b0382111762001b645760405260098a5260005b6101208110620070d2575060405190620064358262004dad565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b8060078301106200705d57620064d994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620064e98a62005f03565b52620064f58962005f03565b5060405190620065058262004dad565b60018060a01b031681526000602082015260405180816020603654928381520160366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8926000905b80600783011062006fe857620065a994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620065b98962005f6b565b52620065c58862005f6b565b5060405190620065d58262004dad565b60018060a01b031681526000602082015260405180816020603754928381520160376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae926000905b80600783011062006f73576200667994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620066898862005f7c565b52620066958762005f7c565b5060405190620066a58262004dad565b60018060a01b031681526000602082015260405180816020603854928381520160386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199926000905b80600783011062006efe576200674994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620067598762005f8e565b52620067658662005f8e565b5060405190620067758262004dad565b60018060a01b031681526000602082015260405180816020603954928381520160396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3926000905b80600783011062006e89576200681994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620068298662005f27565b52620068358562005f27565b5060405190620068458262004dad565b60018060a01b031681526000602082015260405180816020603a549283815201603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e926000905b80600783011062006e1457620068e994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620068f98562005f38565b52620069058462005f38565b5060405190620069158262004dad565b60018060a01b031681526000602082015260405180816020603b549283815201603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d926000905b80600783011062006d9f57620069b994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620069c98462005f49565b52620069d58362005f49565b5060405190620069e58262004dad565b60018060a01b031681526000602082015260405180816020603d549283815201603d6000527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3926000905b80600783011062006d2a5762006a8994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262006a998362005f5a565b5262006aa58262005f5a565b506040519062006ab58262004dad565b60018060a01b031681526000602082015260405180816020603c549283815201603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e926000905b80600783011062006cb55762006b5994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262006b698262005fa0565b5262006b758162005fa0565b5060405190611b4d808301918383106001600160401b0384111762001b645762006bae916200862c8539604083526040830190620061b1565b90602081830391015262006bcc845160c0835260c083019062005222565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b84841062006c625750505050505060a061ffff8185969701511691015203906000f080156200229357603e80546001600160a01b0319166001600160a01b0392909216918217905590565b90919293949660208062006ca4600193601f198682030188528660408d5180518452878060a01b03868201511686850152015191816040820152019062005195565b990194019401929493919062006c17565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006b00565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006a30565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006960565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006890565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620067c0565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620066f0565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006620565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006550565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006480565b808b60208093620070e262005fcd565b92010152016200641b565b906200710290604083526040830190620061b1565b9060208183039101526200712082516101a080845283019062005222565b9160018060a01b038060208301511660208401526040820151600181101562005ffd576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b908401526101408083015190620071b88262006013565b8401526101608092015191825192600284101562005ffd576101809360209286015201511691015290565b6040516139428082018281106001600160401b0382111762001b645782916202106f833903906000f08015620022935760405161154f8082018281106001600160401b0382111762001b645782916201fb20833903906000f0801562002293576040516102308082018281106001600160401b0382111762001b64578291620249b1833903906000f0908115620022935760405161069b8082018281106001600160401b0382111762001b6457829162024be1833903906000f080156200229357604051612f0f8082018281106001600160401b0382111762001b645782916201cc11833903906000f090811562002293576040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09384156200229357604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f093841562002293576200734162006163565b9660405190620073518262004dad565b60018060a01b031681526000602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062007bf157620073f594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620074058862005f03565b52620074118762005f03565b5060405190620074218262004dad565b60018060a01b031681526000602082015260405180816020602454928381520160246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4926000905b80600783011062007b7c57620074c594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620074d58762005f27565b52620074e18662005f27565b5060405190620074f18262004dad565b60018060a01b031681526000602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062007b07576200759594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620075a58662005f38565b52620075b18562005f38565b5060405190620075c18262004dad565b60018060a01b031681526000602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062007a92576200766594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620076758562005f49565b52620076818462005f49565b5060405190620076918262004dad565b60018060a01b031681526000602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062007a1d576200773594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620077458462005f5a565b52620077518362005f5a565b5060405190620077618262004dad565b60018060a01b031681526000602082015260405180816020602a549283815201602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2926000905b806007830110620079a8576200780594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620078158362005fa0565b52620078218262005fa0565b5060405190620078318262004dad565b60018060a01b031681526000602082015260405180816020602b549283815201602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f926000905b8060078301106200793357620078d594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620078e58262005f6b565b52620078f18162005f6b565b50604051916114a490818401928484106001600160401b0385111762001b6457849362007924936200a1798639620070ed565b03906000f08015620022935790565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200787c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620077ac565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620076dc565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200760c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200753c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200746c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200739c565b919082018092116200445d57565b6040519062007c838262004d91565b600182528160005b6020908181101562007cb15760209162007ca462005fb1565b9082850101520162007c8b565b505050565b51906001600160a01b0382168203620006e357565b809291039160608312620006e357604062007ce6826200548e565b93601f190112620006e357604080519162007d018362004d91565b602081015183520151602082015290565b6001600160401b039062007d2562005fb1565b5062007db86040918251906001600160601b03199060601b1660208201526014815262007d528162004d91565b62007da983519162007d648362004dad565b600a83526001600160801b036020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a083019062005195565b03601f19810184528362004e4e565b519062007dc58262004d91565b60048252602082015290565b51906001600160401b0382168203620006e357565b9190604083820312620006e3576040519262007e028462004d91565b8362007e0e8262007dd1565b815260209182810151906001600160401b038211620006e357019280601f85011215620006e357835162007e428162004eb3565b9462007e52604051968762004e4e565b818652848087019260051b820101928311620006e35784809101915b83831062007e7e57505050500152565b819062007e8b8462007cb6565b815201910190849062007e6e565b90602082820312620006e35781516001600160401b038111620006e357620052d1920162007de6565b9062007edc60209194939460408452604084019062005222565b6001600160a01b03909416910152565b6040519062007efb8262004d91565b8162007f0662005fb1565b8152602062007f1462005fb1565b910152565b620052d191602062007f35835160408452604084019062005222565b920151906020818403910152620052af565b906020808351936040845260c062007fd362007f71875160e0604089015261012088019062007f19565b62007f8e8589015191603f1992838a83030160608b015262007f19565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015262005195565b9501516101008501520151151591015290565b1562007fee57565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b156200802e57565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b156200807357565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e357829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562008381579088949392916200836a575b50620081088591846200838b565b9b93969298919a90508554168551938480926394074b0360e01b82525afa9182156200836057839262008340575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b908184528884806200817660209b8c8095840152602483019062005222565b0381865af493841562008336579086918295620082fa575b50875163aa5106cb60e01b8152949585918291620081b091908d840162007ec2565b0381855af4928315620082f05791620081e9939188938793620082d0575b5087518095819482938352868d840152602483019062005222565b03915af4928315620082c5579262008290575b50036200821d575050509162002c0662002c0d92620056409594146200806b565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d8311620082bd575b620082ab818362004e4e565b81010312620006e357519038620081fc565b503d6200829f565b8451903d90823e3d90fd5b620082e89193503d8089833e62002ff0818362004e4e565b9138620081ce565b86513d87823e3d90fd5b89809296508193503d83116200832e575b62008317818362004e4e565b81010312620006e35751928590620081b06200818e565b503d6200830b565b87513d88823e3d90fd5b620083589192503d8085833e62002ff0818362004e4e565b903862008136565b84513d85823e3d90fd5b946200837a620081089662004dc9565b94620080fa565b83513d87823e3d90fd5b906200839662005fb1565b50603f80546001600160a01b039283166001600160a01b03199182168117909255604080549091168217815580516394074b0360e01b815290936000928390839060049082905afa9182156200862157928092916200842a94829362008601575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162007ec2565b0381845af4928315620085d4578293620085de575b5062008470929385541693855180926390ba52cf60e01b825281806020978895866004840152602483019062005222565b03915af4908115620085d45790829182916200859d575b50602486518096819363017187cd60e11b835260048301525afa92831562008591578193620084de575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e620084f3818362004e4e565b8101918382840312620003575781516001600160401b0392838211620003f657019060c08285031262000357578551946200852e8662004d75565b8251865280830151908601528582015186860152620085506060830162007dd1565b6060860152620085636080830162007dd1565b608086015260a08201519283116200035757506200858392910162007de6565b60a0820152388080620084b1565b508351903d90823e3d90fd5b809250848092503d8311620085cc575b620085b9818362004e4e565b8101031262000365578190513862008487565b503d620085ad565b85513d84823e3d90fd5b620084709350620085fa903d8085833e62002ff0818362004e4e565b926200843f565b620086199193503d8084833e62002ff0818362004e4e565b9138620083f7565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd26080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c634300081300336080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c634300081300336080806040523461001657612245908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c6343000813003360808060405234610016576126cb908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c6343000813003360808060405234610016576123aa908161001c8239f35b600080fdfe608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c634300081300336080806040523461001657612a56908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220c4d6de27f1233bb2baddb6170a0e148c0cd1cbad72a5f55f9b520ca9f859118f64736f6c634300081300336080806040523461001657611768908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220dfde9bd283f04b3e3a7a27bf2503b849d602efb13f7bbc32d0ef932af181aa8264736f6c6343000813003360808060405234610016576129a9908161001c8239f35b600080fdfe604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611980565b61140d60219182546114e7565b90556111a9565b92500155611980565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cd2565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386126f2565b60019283825260258652828a832054168861155282611ed1565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611e66565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612745565b926115d487611ed1565b935b818682161161161a575b505097516001600160a01b0390951685525050505060208101919091529091506000805160206129548339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611ed1565b1015611652579061164b8392826128a4565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc956027916116936122cc565b8352522054166116d0575b6116a78461225d565b6116b083611e66565b516001600160a01b03928316815292909116602083015281906040820190565b6116d984612087565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c8361225d565b97929150611723859497969561270e565b9761172d85611ed1565b976117378a6121ee565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611e53565b906126a2565b9b909b5b8b111561178757611779908c61280b565b6117828b6121ee565b61173e565b505093516001600160a01b039095168552505050506020810191909152909250600080516020612934833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611ed1565b611768565b505050505050506115bc9192939550600080516020612934833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff9391841661194e578360205460081c1684602354161061191c576118476126f2565b60018352602560205286832054168561185f82611ed1565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611e66565b6115bc6000805160206129548339815191529361159c6118c284612745565b6118cb85611ed1565b90612199565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc946119056122cc565b815260276020522054166116d0576116a78461225d565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c8361225d565b505050506115bc6000805160206129348339815191529361159c6119718461270e565b61197a85611ed1565b9061260f565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611ba8578082526024835287868320541615611b97578415611aef57506119cd8361270e565b976119d784611ed1565b985b6001808a83161115611ae05781617fff911c1690818452602585528a611a03848a87205416611ed1565b1115611a1857611a13908261280b565b6119d9565b505091939597509193955b6026541615611ad857611a346126f2565b600182526025835285818184205416926028611a4f85611ed1565b95611a58612700565b600183525220541691611a6a83611ed1565b11611a9f57505091516001600160a01b03909216825260208201526000805160206129348339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad06122cc565b61169e611f20565b505050505050565b50509193959750919395611a23565b829450611b237f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799612415565b8651908152a160265416611b375750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b65612700565b6001835252205416611b8b611b7982611ed1565b92611b82611f20565b61159c8361225d565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611c97575061fffe9193611bc586612745565b93611bcf87611ed1565b9480966001958692831b168160265416925b611c23575b505099516001600160a01b0390971687525050505060208301939093525091925060008051602061295483398151915291905080604081016115bc565b818116838111611c91578d9084811015611c7557505080611c46611c4c92611e53565b90612205565b9890985b881015611c7057611c6190896128a4565b611c6a886121ee565b86611be1565b611be6565b865260288552852054909890611c8c908716611ed1565b611c50565b50611be6565b94915050611ccb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250612087565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d75578084526024855281888520541615611d64578615611d335750611a23611d248661270e565b611d2d87611ed1565b906125c0565b849193979650611b237f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93966124a0565b8751632a55ca5360e01b8152600490fd5b8698979894939492919215611c97575061fffe9193611d9386612745565b93611d9d87611ed1565b9480966001958692831b168160265416925b611df057505099516001600160a01b0390971687525050505060208301939093525091925060008051602061295483398151915291905080604081016115bc565b818116838111611c91578d9084811015611e3757505080611c46611e1392611e53565b9890985b881015611c7057611e2890896128a4565b611e31886121ee565b86611daf565b865260288552852054909890611e4e908716611ed1565b611e17565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e7e8360265416611e53565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611f02576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff80602654169081156120755790600190611f3f818311156127ee565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611fd991908a611fca83610e27565b1690602654161760265561276a565b848252808652611fed848484205416611ed1565b95859860028160265416995b61200b575b5050505050505050505050565b8181168a811161206f578a811015612054575080611c4661202b92611e53565b9a909a5b89101561204f57612040908b6128a4565b6120498a6121ee565b87611ff9565b611ffe565b859b919b5283835261206a878787205416611ed1565b61202f565b50611ffe565b6040516340d9b01160e01b8152600490fd5b61209090612745565b61ffff908160265416916120a483836128a4565b806120ae84610e27565b1661ffff1960265416176026556120c48361276a565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b03926040926121046120fe868686205416611ed1565b87612199565b8252808652612117848484205416611ed1565b9585986001988997881b168160265416995b61213a575050505050505050505050565b8181168a811161206f578a81101561217e575080611c4661215a92611e53565b9a909a5b89101561204f5761216f908b6128a4565b6121788a6121ee565b87612129565b859b919b52838352612194878787205416611ed1565b61215e565b9190915b60018061ffff831611156121e85781617fff911c1690836121d360008481526028602052604060018060a01b0391205416611ed1565b10156121e8576121e390826128a4565b61219d565b50509050565b60011b906201fffe61fffe83169216820361021e57565b91909161ffff92838216600052602860205261224860018060a01b036122318160406000205416611ed1565b958316600052602860205260406000205416611ed1565b908185106122565750509190565b9350919050565b6102ed90611d2d61ffff916122758360235416611e53565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611ed1565b61ffff806023541690811561207557906001906122eb818311156127ee565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161238591908a61237683610e27565b169060235416176023556127ac565b848252808652612399848484205416611ed1565b95859860028160235416995b6123b6575050505050505050505050565b8181168a811161206f578a8110156123fa57508061175e6123d692611e53565b9a909a5b89111561204f576123eb908b61280b565b6123f48a6121ee565b876123a5565b859b919b52838352612410878787205416611ed1565b6123da565b61241e9061270e565b61ffff90816023541691612432838361280b565b8061243c84610e27565b1661ffff196023541617602355612452836127ac565b81168092146107495761197a826102ed93600052602560205260018060a01b039061248c6124868360406000205416611ed1565b856125c0565b600052602560205260406000205416611ed1565b6124a99061270e565b9061ffff908160235416906124be828561280b565b826124c883610e27565b1661ffff1960235416176023556124de826127ac565b8284168092146125ba5760009291929183835260259260209484865260018060a01b039160409161251c612516858585205416611ed1565b8a6125c0565b815285875261252f838383205416611ed1565b95612539896121ee565b978560235416985b8681168a81116125ac578a81101561259157508061175e61256192611e53565b9a909a5b89111561258457612576908b61280b565b61257f8a6121ee565b612541565b5050505050505092505050565b849b919b528282526125a7868686205416611ed1565b612565565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156121e85781617fff911c1690836125fa60008481526025602052604060018060a01b0391205416611ed1565b11156121e85761260a908261280b565b6125c4565b91612619836121ee565b600061ffff918260235416905b838116828111612698578281101561267257508061175e61264692611e53565b9690965b8611156126695761265b908761280b565b612664866121ee565b612626565b50505050915050565b835260256020526040832054909690612693906001600160a01b0316611ed1565b61264a565b5050505050915050565b919061ffff80841660005260256020526126e360018060a01b036126cc8160406000205416611ed1565b928416600052602560205260406000205416611ed1565b93848211156122565750509190565b61ffff602354161561207557565b61ffff602654161561207557565b6001600160a01b031660009081526024602052604090205461ffff1690811561273357565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff1690811561273357565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156127f557565b634e487b7160e01b600052600160045260246000fd5b61283061ffff808060235416931693612826848611156127ee565b16918211156127ee565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b6128bf61ffff808060265416931693612826848611156127ee565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033608080604052346100165761163d908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c634300081300336080806040523461001657612ef3908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c908163268119361461051957508063b9ee2bb9146100c45763cc2dc2b91461004257600080fd5b346100c15760603660031901126100c1576001600160401b036004358181116100bd57366023820112156100bd5761008490369060248160040135910161080d565b6044359182116100bd57366023830112156100bd576100b06100ba92369060248160040135910161087e565b9060243590612b18565b80f35b8280fd5b80fd5b50346100c157600319606036820112610365576001600160401b03600435116103655760806004356004019160043536030112610365576024356001600160401b0381116100bd5761011a903690600401610748565b91906044356001600160401b0381116105155761013b903690600401610748565b9160ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f86354166105035760055494600b54956101778782610926565b602460043501351415806104f3575b6104e157604051906101be60208301836101a08a83610a15565b03936101b4601f19958681018352826107c1565b5190209882610926565b60043560240135036103de575050916101e16101e9926101ef969794369161080d565b93369161087e565b91612b18565b60246004350135825281602052604082209080356042196004353603018112156103da576004350191600483016001600160401b0361022d82610a66565b16936001600160401b031994858454161783556102536001926024848601930190610a7a565b91906001600160401b0383116103c657600160401b83116103c65781548383558084106103ab575b509087959493929190865260208620865b838110610374575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b036102c886610a66565b169082541617905560246004350135825260226020526102ec604083203390610ac6565b5060043560240135600555600e546001600160a01b0316803b156100bd576040516347dc9b4f60e01b8152918391839182908490829061032f9060048301610a15565b03925af1801561036957610351575b505061034c6100ba91610a66565b610d6e565b61035a906107ae565b61036557813861033e565b5080fd5b6040513d84823e3d90fd5b909180939495969750359060018060a01b03821682036103a757602086929401938184015501908896959493929161028c565b8980fd5b828952602089206103c0918101908501610aaf565b3861027b565b634e487b7160e01b88526041600452602488fd5b8380fd5b9450945050505060246004350135146103f657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b8781106104c0575050506002810154606084015260038101546080840152600401546001600160401b031660a08301520390810183526104959150826107c1565b519020146104a05780f35b60246004350135815260226020526104bc604082203390610ac6565b5080f35b82546001600160a01b03168552889550602090940193918101918101610454565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610186565b60405163d93c066560e01b8152600490fd5b8480fd5b90503461036557600319906060368301126100bd57600435916001600160401b039081841161051557606084600401918536030112610515576024358281116107445761056a903690600401610748565b9260443581811161074057610583903690600401610748565b92909160248801359760065497888a106107315750604401906105a68287610a7a565b9190506009541680911161071f576105be8287610a7a565b90501415806106f8575b6106e6576105d69085610a7a565b9050156106d45787946040516020810190610603816105f58985612996565b03601f1981018352826107c1565b519020968803610634575050505050506007541461061f575080f35b815260236020526104bc604082203390610ac6565b61064e93926101e1889698936101e9939a989a369161080d565b80602060405161065d8161077d565b8481520152816006556007558252602360205261067e604083203390610ac6565b50600e546001600160a01b031690813b156106d05782916106b591604051948580948193630bed761560e01b835260048301612996565b03925af18015610369576106c7575080f35b6100ba906107ae565b5050fd5b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b50600854801561070b57880615156105c8565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b63200c52f760e21b8152600490fd5b8780fd5b8580fd5b9181601f84011215610778578235916001600160401b038311610778576020808501948460051b01011161077857565b600080fd5b604081019081106001600160401b0382111761079857604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161079857604052565b90601f801991011681019081106001600160401b0382111761079857604052565b6001600160401b0381116107985760051b60200190565b35906001600160a01b038216820361077857565b9291610818826107e2565b9161082660405193846107c1565b829481845260208094019160051b810192831161077857905b82821061084c5750505050565b838091610858846107f9565b81520191019061083f565b6001600160401b03811161079857601f01601f191660200190565b9291909261088b846107e2565b9160409461089b865194856107c1565b839581855260208095019160051b8401938385116107785780925b8584106108c65750505050505050565b83356001600160401b03811161077857820185601f82011215610778578035916108ef83610863565b6108fb865191826107c1565b838152878a85850101116107785760008a8581968280970183860137830101528152019301926108b6565b9190820180921161093357565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215610778570190565b35906001600160401b038216820361077857565b9035601e19823603018112156107785701602081359101916001600160401b038211610778578160051b3603831361077857565b60408201916001600160401b036109bb8361095d565b16815260606109cf60209384810190610971565b839195604086839601525201929160005b8281106109ee575050505090565b909192938280600192838060a01b03610a06896107f9565b168152019501939291016109e0565b6020815260806001600160401b03610a5f6060610a45610a358780610949565b85602088015260a08701906109a5565b95602081013560408701526040810135828701520161095d565b1691015290565b356001600160401b03811681036107785790565b903590601e198136030182121561077857018035906001600160401b03821161077857602001918160051b3603831361077857565b818110610aba575050565b60008155600101610aaf565b91906001830160009082825280602052604082205415600014610b4557845494600160401b861015610b315760018601808255861015610b1d57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60041115610b5557565b634e487b7160e01b600052602160045260246000fd5b90600182811c92168015610b9b575b6020831014610b8557565b634e487b7160e01b600052602260045260246000fd5b91607f1691610b7a565b9060405191826000825492610bb984610b6b565b908184526001948581169081600014610c285750600114610be5575b5050610be3925003836107c1565b565b9093915060005260209081600020936000915b818310610c10575050610be393508201013880610bd5565b85548884018501529485019487945091830191610bf8565b915050610be394506020925060ff191682840152151560051b8201013880610bd5565b9190601f8111610c5a57505050565b610be3926000526020600020906020601f840160051c83019310610c86575b601f0160051c0190610aaf565b9091508190610c79565b90808214610d6a57610ca28154610b6b565b906001600160401b038211610798578190610cc782610cc18654610b6b565b86610c4b565b600090601f8311600114610cfe57600092610cf3575b50508160011b916000199060031b1c1916179055565b015490503880610cdd565b81526020808220858352818320935090601f1985169083905b828210610d51575050908460019594939210610d38575b505050811b019055565b015460001960f88460031b161c19169055388080610d2e565b8495819295850154815560018091019601940190610d17565b5050565b601c54906001600160401b039081168183168110610d985760405163040aaa0560e11b8152600490fd5b818360401c1681106113215781604093841c165b818382161115610e14575060018101918211610933577f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf639260209267ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b82610e32826001600160401b0316600052601d602052604060002090565b9160018060a01b03806002850154169060ff855416610e5081610b4b565b60028103610ec35750506003610e816001610e87949596019260018060a01b03166000526015602052604060002090565b01610c90565b610ea4816001600160401b0316600052601d602052604060002090565b9060008083556002600193610eba85820161138a565b01550116610dac565b909350610ecf81610b4b565b600393818503611064575050610ee86001809501610ba5565b9081518201936020928981858801970312610778578381015189811161077857810186603f82011215610778578481015190610f2382610863565b97610f308d51998a6107c1565b8289528c8383010111610778578b9291869160005b82811061104d575050906000918901015201519281610f768460018060a01b03166000526015602052604060002090565b01918651918a8311610798578a97610f9884610f928754610b6b565b87610c4b565b81601f8511600114610fdc5750610fcc9798998493928492600095610fd1575b50501b92600019911b1c1916179055611339565b610e87565b015193503880610fb8565b91601f9a9493919a1984168660005283600020936000905b8282106110335750509a84610fcc9a9b9c10611019575b50505050811b019055611339565b01519060f884600019921b161c191690553880808061100b565b838e015186558f9c50948701949283019290810190610ff4565b818101909501518a86018401528d94889301610f45565b91909294936110766001809601610ba5565b602081805181010312610778576020869101519461109381610b4b565b036112855761112c906110c485876110bd8660018060a01b03166000526015602052604060002090565b015461137d565b9060026110e38560018060a01b03166000526015602052604060002090565b01548215908161127c575b5015611259576001600160a01b038416600090815260156020526040902061112691906000808255808a83015560028201550161138a565b82611869565b601461113984825461137d565b9055611147601e5443610926565b88516111528161077d565b81815260208101858152600096848852601f6020528b88209283549161ffff93838580951694859160101c16018581116112455785168b528582016020528e8b2092518355519101557f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63946060949093909290916111cf90611326565b1661ffff198254161790558a519182528560208301528a820152a1600e541690813b156100bd57829160248392895195869384926345f5448560e01b845260048401525af190811561123a57509084929161122b575b50610e87565b611234906107ae565b38611225565b8651903d90823e3d90fd5b634e487b7160e01b8c52601160045260248cfd5b506001600160a01b03831660009081526015602052604090208190870155611126565b905015386110ee565b5092836112b584836112ae6112e796979860018060a01b03166000526015602052604060002090565b0154610926565b6001600160a01b038216600090815260156020526040902090928391015560146112e0868254610926565b90556113d3565b600e541690813b15610778578551916316989f6f60e21b83528260048160009485945af190811561123a57509084929161122b5750610e87565b505050565b90600161ffff8093160191821161093357565b9060018060a01b03821660005260156020526040600020818154915581811460001461136457505050565b81111561137457610be3916116e3565b610be391611bbc565b9190820391821161093357565b6113948154610b6b565b908161139e575050565b81601f600093116001146113b0575055565b9080839182526113cf601f60208420940160051c840160018501610aaf565b5555565b919060018060a01b03928381166000948186526020916017835261ffff916040978389822054166115f2578360135460081c168460165416106115be5761141861269a565b60019283825260188652828a832054168861143282611d39565b1061153857508152601a85528389822054166114a157505050505061149c7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461147c83611cc9565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6114aa866126ed565b926114b487611d39565b935b81868216116114fa575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612e9e83398151915290806040810161149c565b808561151986617fff8f95871c1694858852601b8c5287205416611d39565b1015611532579061152b83928261284c565b90506114b6565b506114c0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061149c95601a91611573612274565b8352522054166115b0575b61158784612200565b61159083611cc9565b516001600160a01b03928316815292909116602083015281906040820190565b6115b984611f03565b61157e565b505050505061149c7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461147c83612200565b9792915061160385949796956126b6565b9761160d85611d39565b976116178a6120f5565b8460165416905b8581168281116116be57828110156116a257508061163e61164492611326565b9061264a565b9b909b5b8b111561166757611659908c6127b3565b6116628b6120f5565b61161e565b505093516001600160a01b039095168552505050506020810191909152909250600080516020612e7e8339815191529150806040810161149c565b849c919c52601883526116b9858886205416611d39565b611648565b5050505050505061149c9192939550600080516020612e7e833981519152945061147c565b6001600160a01b03808216600081815260176020526040808220549095949361ffff93918416611837578360135460081c168460165416106118055761172761269a565b60018352601860205286832054168561173f82611d39565b106117b157508152601a60205284902054166117835761149c7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361147c83611cc9565b61149c600080516020612e9e8339815191529361147c6117a2846126ed565b6117ab85611d39565b906120a0565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261149c946117e5612274565b8152601a6020522054166117fc5761158784612200565b6115b984611f8e565b5050505061149c7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361147c83612200565b5050505061149c600080516020612e7e8339815191529361147c61185a846126b6565b61186385611d39565b906125b7565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416611a92578082526017835287868320541615611a815784156119d857506118b6836126b6565b976118c084611d39565b985b6001808a831611156119c95781617fff911c1690818452601885528a6118ec848a87205416611d39565b1115611901576118fc90826127b3565b6118c2565b505091939597509193955b60195416156119c15761191d61269a565b60018252601883528581818420541692601b61193885611d39565b956119416126a8565b60018352522054169161195383611d39565b1161198857505091516001600160a01b0390921682526020820152600080516020612e7e83398151915290806040810161149c565b9150915061149c7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75936119b9612274565b61157e611d9c565b505050505050565b5050919395975091939561190c565b829450611a0c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996123bd565b8651908152a160195416611a21575b50505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492611a4f6126a8565b6001835252205416611a75611a6382611d39565b92611a6c611d9c565b61147c83612200565b0390a138808080611a1b565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611b81575061fffe9193611aaf866126ed565b93611ab987611d39565b9480966001958692831b168160195416925b611b0d575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612e9e833981519152919050806040810161149c565b818116838111611b7b578d9084811015611b5f57505080611b30611b3692611326565b906121a8565b9890985b881015611b5a57611b4b908961284c565b611b54886120f5565b86611acb565b611ad0565b8652601b8552852054909890611b76908716611d39565b611b3a565b50611ad0565b94915050611bb59194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250611f03565b51908152a1565b6001600160a01b038082166000818152601a602090815260408083205490969594919361ffff918216611c5f578084526017855281888520541615611c4e578615611c1d575061190c611c0e866126b6565b611c1787611d39565b90612568565b849193979650611a0c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396612448565b8751632a55ca5360e01b8152600490fd5b9693925050508315611c9c5750600080516020612e9e833981519152935061149c9061147c611c8d846126ed565b611c9685611d39565b9061210c565b9250611bb57f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9492611f8e565b610be3906117ab61ffff91611ce18360195416611326565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906bffffffffffffffffffffffff60a01b82541617905560195416176019555b60ff601354166003811015610b5557600103611d6a576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff908116600019019190821161093357565b61ffff8060195416908115611ef15790600190611dbb81831115612796565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611e5591908a611e4683611d88565b16906019541617601955612712565b848252808652611e69848484205416611d39565b95859860028160195416995b611e87575b5050505050505050505050565b8181168a8111611eeb578a811015611ed0575080611b30611ea792611326565b9a909a5b891015611ecb57611ebc908b61284c565b611ec58a6120f5565b87611e75565b611e7a565b859b919b52838352611ee6878787205416611d39565b611eab565b50611e7a565b6040516340d9b01160e01b8152600490fd5b611f0c906126ed565b61ffff90816019541691611f20838361284c565b80611f2a84611d88565b1661ffff196019541617601955611f4083612712565b8116809214610d6a57611c9682610be393600052601b60205260018060a01b0390611f7a611f748360406000205416611d39565b856120a0565b600052601b60205260406000205416611d39565b611f97906126ed565b61ffff90816019541691611fab838361284c565b80611fb584611d88565b1661ffff196019541617601955611fcb83612712565b808216809314611321579161fffe91600091808352601b9060209382855260018060a01b039260409261200b612005868686205416611d39565b876120a0565b825280865261201e848484205416611d39565b9585986001988997881b168160195416995b612041575050505050505050505050565b8181168a8111611eeb578a811015612085575080611b3061206192611326565b9a909a5b891015611ecb57612076908b61284c565b61207f8a6120f5565b87612030565b859b919b5283835261209b878787205416611d39565b612065565b9190915b60018061ffff831611156120ef5781617fff911c1690836120da6000848152601b602052604060018060a01b0391205416611d39565b10156120ef576120ea908261284c565b6120a4565b50509050565b60011b906201fffe61fffe83169216820361093357565b90600161fffe83821b168160009161ffff908160195416925b612133575b50505050505050565b8181168381116121a2578381101561217c575080611b3061215392611326565b9690965b86101561217757612168908761284c565b612171866120f5565b84612125565b61212a565b8452601b602052604084205490969061219d906001600160a01b0316611d39565b612157565b5061212a565b91909161ffff92838216600052601b6020526121eb60018060a01b036121d48160406000205416611d39565b958316600052601b60205260406000205416611d39565b908185106121f95750509190565b9350919050565b610be390611c1761ffff916122188360165416611326565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906bffffffffffffffffffffffff60a01b8254161790556016541617601655611d39565b61ffff8060165416908115611ef1579060019061229381831115612796565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161232d91908a61231e83611d88565b16906016541617601655612754565b848252808652612341848484205416611d39565b95859860028160165416995b61235e575050505050505050505050565b8181168a8111611eeb578a8110156123a257508061163e61237e92611326565b9a909a5b891115611ecb57612393908b6127b3565b61239c8a6120f5565b8761234d565b859b919b528383526123b8878787205416611d39565b612382565b6123c6906126b6565b61ffff908160165416916123da83836127b3565b806123e484611d88565b1661ffff1960165416176016556123fa83612754565b8116809214610d6a5761186382610be393600052601860205260018060a01b039061243461242e8360406000205416611d39565b85612568565b600052601860205260406000205416611d39565b612451906126b6565b9061ffff9081601654169061246682856127b3565b8261247083611d88565b1661ffff19601654161760165561248682612754565b8284168092146125625760009291929183835260189260209484865260018060a01b03916040916124c46124be858585205416611d39565b8a612568565b81528587526124d7838383205416611d39565b956124e1896120f5565b978560165416985b8681168a8111612554578a81101561253957508061163e61250992611326565b9a909a5b89111561252c5761251e908b6127b3565b6125278a6120f5565b6124e9565b5050505050505092505050565b849b919b5282825261254f868686205416611d39565b61250d565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156120ef5781617fff911c1690836125a260008481526018602052604060018060a01b0391205416611d39565b11156120ef576125b290826127b3565b61256c565b916125c1836120f5565b600061ffff918260165416905b838116828111612640578281101561261a57508061163e6125ee92611326565b9690965b8611156126115761260390876127b3565b61260c866120f5565b6125ce565b50505050915050565b83526018602052604083205490969061263b906001600160a01b0316611d39565b6125f2565b5050505050915050565b919061ffff808416600052601860205261268b60018060a01b036126748160406000205416611d39565b928416600052601860205260406000205416611d39565b93848211156121f95750509190565b61ffff6016541615611ef157565b61ffff6019541615611ef157565b6001600160a01b031660009081526017602052604090205461ffff169081156126db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156126db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561279d57565b634e487b7160e01b600052600160045260246000fd5b6127d861ffff8080601654169316936127ce84861115612796565b1691821115612796565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61286761ffff8080601954169316936127ce84861115612796565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156107785701602081359101916001600160401b03821161077857813603831361077857565b908060209392818452848401376000828201840152601f01601f1916010190565b61295661294b61293d8380610949565b6040855260408501906109a5565b916020810190610949565b91602081830391015281359160ff83168093036107785761298360409161299394845260208101906128db565b919092816020820152019161290c565b90565b60208082526129a58380610949565b60609182818501526129bc608092838601906109a5565b6129d3604096838101358888015287810190610971565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710612a0e57505050505050505050505090565b909192939495969798999a82828203018752612a2a8c85610949565b90813560de1983360301811215610778578782528201918a90888e6001600160401b03612aa1612a91612a7e612a75612a638b80610949565b60e080988c01526101208b019061292d565b978a018a610949565b96603f1997888a830301868b015261292d565b928d8901358d890152880161095d565b169060a091828701528a8701359263ffffffff60e01b8416809403610778578f95612ad8612ae89460c096878b01528a018a6128db565b929091898503019089015261290c565b940135610100840152013590811515809203610778578a01529a88019998979660010195870194939291906129f9565b91825191612b25836107e2565b93604094612b35865191826107c1565b848152601f19612b44866107e2565b0194602095368784013760005b818110612c1b57505060009461ffff8060165416600192839182945b612bca575b505050505060ff600e5460a01c1694858102958187041490151715610933576064612b9e950491612cbc565b9015612ba8575050565b6006811015610b555760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111612c135760009081526018855220548493929186918591612c0991612c03906001600160a01b0316611d39565b90610926565b9b01169493612b6d565b505098612b72565b6001600160a01b0380612c2e8387612c92565b51166000526017885261ffff89600020541615612c6e5790612c5d600192612c568388612c92565b5116611d39565b612c678286612c92565b5201612b51565b8890612c7c60249387612c92565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015612ca65760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b84519294600094908415612da45782518514801590612d99575b612d8c579392919085945b848610612d04575050505050501015612cfc57600090600590565b600190600090565b909192939495612d1e612d178884612c92565b5184612db1565b50612d2881610b4b565b612d7b576001600160a01b0380612d3f8a88612c92565b5116911603612d6b57612d5f600191612d588988612c92565b5190610926565b96019493929190612ce1565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415612cd6565b5050505050905090600290565b8151919060418303612de257612ddb92506020820151906060604084015193015160001a90612ded565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612e7157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15612e655780516001600160a01b03811615612e5c57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda264697066735822122038238f2d99ddb501fea49d87c0dcec952359bebfb7ce7e8d76de0f495aadd34564736f6c634300081300336080806040523461001657611533908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c634300081300336080806040523461001657613926908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014610ec55750806310fd426114610d4c5780632e17de7814610d1f5780633a4b66f114610c4357806341c0e1b514610b905780636170b1621461084d57806366783c9b1461075a578063d66d9e19146106eb5763da5d09ee1461008457600080fd5b346104ed5760603660031901126104ed576004356001600160401b0381116106e7576100b490369060040161104d565b6024356001600160401b0381116106e3576100d390369060040161104d565b9190926044356001600160401b0381116106df576100f590369060040161104d565b90926100ff6121ce565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036106cd5760ff6013541660038110156106b95760010361068957818103610677578481036106775760125460081c60ff161561043457865b818110610175575050505050505080f35b61018961018382888a61133a565b90612171565b6001600160a01b036101a461019f84868961137b565b61138b565b166001600160a01b0390911603610422576101c361019f82848761137b565b9061020f6101d282898b61133a565b6101e084888b95949561137b565b356101fb6040519485936040602086015260608501916121ad565b90604083015203601f198101835282610fd5565b6001600160401b03601c54169060405161022881610f9f565b6003815281602082015260018060a01b038516604082015282600052601d60205260406000208151600481101561040c5760ff8019835416911617815560208201518051906001600160401b0382116103f6576102958261028c600186015461139f565b600186016113f0565b602090601f831160011461038357600293929160009183610378575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03600183011161036257600193826001600160401b03866000805160206138918339815191529501166001600160401b0319601c541617601c5561035360405193849360038552888060a01b0316602085015260808060408601528401906112fa565b9060608301520390a101610164565b634e487b7160e01b600052601160045260246000fd5b0151905038806102b1565b906001840160005260206000209160005b601f19851681106103de575091839160019360029695601f198116106103c5575b505050811b0160018201556102c9565b015160001960f88460031b161c191690553880806103b5565b91926020600181928685015181550194019201610394565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b604051634be9251d60e11b8152600490fd5b94909391865b868110610511575050505050506001600160401b03600c541610156104ff5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061049681611641565b0390a1600e5460025482916001600160a01b0316803b156104fb578290602460405180948193637903ab2760e11b83528160048401525af180156104f0576104dd57505080f35b6104e690610f8c565b6104ed5780f35b80fd5b6040513d84823e3d90fd5b5050fd5b60405163031480b160e51b8152600490fd5b61051f61018382868661133a565b6001600160a01b0361053561019f848b8761137b565b166001600160a01b03909116036104225761055461019f82898561137b565b600060ff6013541660038110156106635760010361064457506001600160a01b03166000908152601560205260409020545b61063257806105af61059e61019f6001948b8761137b565b6105a983888861133a565b91612076565b6105d26105c061019f838b8761137b565b6105cb838a8a61137b565b359061173d565b61062c6105e361019f838b8761137b565b6106226105f1848b8b61137b565b35916105fe858a8a61133a565b90916040519461060d86610f9f565b8552878060a01b031660208501523691611011565b6040820152611437565b0161043a565b604051630472b35360e41b8152600490fd5b6001600160a01b03909116815260156020526040902060010154610586565b634e487b7160e01b82526021600452602482fd5b604051637e65935960e01b8152600490fd5b6106b561069461127d565b60405163015538b160e01b81526020600482015291829160248301906112fa565b0390fd5b634e487b7160e01b88526021600452602488fd5b6040516330cd747160e01b8152600490fd5b8580fd5b8380fd5b5080fd5b50346104ed57806003193601126104ed577f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095600181541461074857806001839255610734612dab565b61073c6121ce565b610744613647565b5580f35b6040516329f745a760e01b8152600490fd5b50346104ed5760203660031901126104ed576004357f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009560018154146107485760018155811561083b5760ff60125460081c16610829573383526003602052816040842054106108175761074483923384526003602052604084206107df82825461110e565b90556107ed8160025461110e565b6002553384526003602052604084205415610809575b3361111b565b61081233611195565b610803565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b506020806003193601126106e7576001600160401b03906004358281116106e357366023820112156106e357806004013590838211610b8c5760248101906024833692010111610b8c576001937f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959385855414610748578585556108cf612dab565b6108d76121ce565b60ff60125460081c169586610b7f575b3415610b6d5733600090815260156020526040902060020154610af95760418503610ae7576001600160a01b039033826109218888612171565b160361042257889761094e57505050509061093c9133612076565b6109463433612de8565b6107446131a9565b90919294939650610960368589611011565b85601c54169260405161097281610f9f565b60028152858101928352604081019233845285600052601d875260406000209151600481101561040c5760ff8019845416911617825584820190518051908a82116103f6576109cb826109c5855461139f565b856113f0565b8890601f8311600114610a7f5760029493929160009183610a74575b5050600019600383901b1c191690871b1790555b019151166001600160601b0360a01b825416179055810184811161036257879660008051602061389183398151915295610a6192166001600160401b0319601c541617601c556040519485946002865233908601526080604086015260808501916121ad565b9060608301520390a16107443433612f78565b0151905038806109e7565b9392918791601f19821690846000528b6000209160005b8d828210610ad1575050968360029810610ab8575b505050811b0190556109fb565b015160001960f88460031b161c19169055388080610aab565b838a015185558c96909401939283019201610a96565b6040516318dca5e960e21b8152600490fd5b5060405190610b0782610f9f565b603282527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722081830152711a185cc8185b1c9958591e481a9bda5b995960721b60408301526106b560405192839263015538b160e01b8452600484015260248301906112fa565b604051635a78c58160e11b8152600490fd5b610b87613194565b6108e7565b8480fd5b50346104ed57806003193601126104ed57610ba96121ce565b61ffff8060195416816016541601818111610c2f5716610c1d576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610c1a5781906004604051809481936341c0e1b560e01b83525af180156104f057610c0e575080f35b610c1790610f8c565b80f35b50fd5b604051636b62255160e11b8152600490fd5b634e487b7160e01b83526011600452602483fd5b50806003193601126104ed57610c57612dab565b610c5f6121ce565b610c67613194565b3415610b6d573360009081526015602052604090206002015415610cae5760125460081c60ff16610ca457610c9c3433612de8565b610c176131a9565b610c173433612f78565b6106b5604051610cbd81610f9f565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b83526020600484015260248301906112fa565b50346104ed5760203660031901126104ed57610d39612dab565b610d416121ce565b610c17600435613275565b50346104ed57602090816003193601126104ed576001600160401b0391600435838111610ec15736602382011215610ec157610d92903690602481600401359101611011565b92610d9b612dab565b3383526017825261ffff60408420541615610ea957835115610e97573383526024825260408320918451918211610e8357610dda826109c5855461139f565b80601f8311600114610e1f5750839482939492610e14575b50508160011b916000199060031b1c19161790555b610e103361383e565b5080f35b015190503880610df2565b90601f198316958486528286209286905b888210610e6b57505083600195969710610e52575b505050811b019055610e07565b015160001960f88460031b161c19169055388080610e45565b80600185968294968601518155019501930190610e30565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b8280fd5b9050816003193601126106e7573415610f7d575060ff60125460081c16610829573381526003602052604081205415610f24575b338152600360205260408120610f10348254611101565b9055610f1e34600254611101565b60025580f35b600454600160401b811015610f6957610f46816001610f64930160045561107d565b81546001600160a01b0360039290921b91821b19163390911b179055565b610ef9565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b6001600160401b0381116103f657604052565b606081019081106001600160401b038211176103f657604052565b604081019081106001600160401b038211176103f657604052565b90601f801991011681019081106001600160401b038211176103f657604052565b6001600160401b0381116103f657601f01601f191660200190565b92919261101d82610ff6565b9161102b6040519384610fd5565b829481845281830111611048578281602093846000960137010152565b600080fd5b9181601f84011215611048578235916001600160401b038311611048576020808501948460051b01011161104857565b6004548110156110b45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156110b45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b9190820180921161036257565b9190820391821161036257565b81471061117d576000918291829182916001600160a01b03165af13d15611178573d61114681610ff6565b906111546040519283610fd5565b8152600060203d92013e5b1561116657565b604051630a12f52160e11b8152600490fd5b61115f565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b8381106111ac575b50505050565b6111b58161107d565b90546003916001600160a01b039190831b1c8116858216146111db57505060010161119e565b929350939060001991828101908111611268579061120c846111ff61122b9461107d565b905490891b1c169161107d565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561125357019261123e8461107d565b81939154921b1b1916905555388080806111a6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176103f6576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b919082519283825260005b848110611326575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611305565b91908110156110b45760051b81013590601e19813603018212156110485701908135916001600160401b038311611048576020018236038113611048579190565b91908110156110b45760051b0190565b356001600160a01b03811681036110485790565b90600182811c921680156113cf575b60208310146113b957565b634e487b7160e01b600052602260045260246000fd5b91607f16916113ae565b8181106113e4575050565b600081556001016113d9565b9190601f81116113ff57505050565b61142b926000526020600020906020601f840160051c8301931061142d575b601f0160051c01906113d9565b565b909150819061141e565b60018054600160401b8110156103f6578181018083558110156110b457600360009183835202918351837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6015560407fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf87fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf785019460209560018060a01b0387890151166001600160601b0360a01b82541617905501940151918251926001600160401b038411610f69576115158461150f885461139f565b886113f0565b8491601f851160011461154d579394508492919083611542575b50501b916000199060031b1c1916179055565b01519250388061152f565b86815285812093958591601f198316915b888383106115925750505010611579575b505050811b019055565b015160001960f88460031b161c1916905538808061156f565b85870151885590960195948501948793509081019061155e565b90600092918054916115bd8361139f565b91828252600193848116908160001461161e57506001146115de5750505050565b90919394506000526020928360002092846000945b83861061160a5750505050010190388080806111a6565b8054858701830152940193859082016115f3565b9294505050602093945060ff191683830152151560051b010190388080806111a6565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061169d57505050505050505090565b9091929394958560036116dc839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016115ac565b9a01940194019296959493919061168b565b60ff60135416600381101561040c5760010361171f576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b9060018060a01b03821660005260156020526040600020818154915581811460001461176857505050565b8111156117785761142b91611a91565b61142b91611f69565b919060018060a01b03928381166000948186526020916017835261ffff916040978389822054166119a0578360135460081c1684601654161061196c576117c6612b87565b60019283825260188652828a83205416886117e0826116ee565b106118e657508152601a855283898220541661184f57505050505061184a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461182a83612202565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b61185886612bda565b92611862876116ee565b935b81868216116118a8575b505097516001600160a01b0390951685525050505060208101919091529091506000805160206138d183398151915290806040810161184a565b80856118c786617fff8f95871c1694858852601b8c52872054166116ee565b10156118e057906118d9839282612d1c565b9050611864565b5061186e565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061184a95601a91611921612761565b83525220541661195e575b611935846126f2565b61193e83612202565b516001600160a01b03928316815292909116602083015281906040820190565b611967846123ec565b61192c565b505050505061184a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461182a836126f2565b979291506119b18594979695612ba3565b976119bb856116ee565b976119c58a6125e7565b8460165416905b858116828111611a6c5782811015611a505750806119ec6119f2926121ef565b90612b37565b9b909b5b8b1115611a1557611a07908c612c83565b611a108b6125e7565b6119cc565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206138b18339815191529150806040810161184a565b849c919c5260188352611a678588862054166116ee565b6119f6565b5050505050505061184a91929395506000805160206138b1833981519152945061182a565b6001600160a01b03808216600081815260176020526040808220549095949361ffff93918416611be5578360135460081c16846016541610611bb357611ad5612b87565b600183526018602052868320541685611aed826116ee565b10611b5f57508152601a6020528490205416611b315761184a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361182a83612202565b61184a6000805160206138d18339815191529361182a611b5084612bda565b611b59856116ee565b90612592565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261184a94611b93612761565b8152601a602052205416611baa57611935846126f2565b6119678461247b565b5050505061184a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361182a836126f2565b5050505061184a6000805160206138b18339815191529361182a611c0884612ba3565b611c11856116ee565b90612aa4565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416611e3f578082526017835287868320541615611e2e578415611d865750611c6483612ba3565b97611c6e846116ee565b985b6001808a83161115611d775781617fff911c1690818452601885528a611c9a848a872054166116ee565b1115611caf57611caa9082612c83565b611c70565b505091939597509193955b6019541615611d6f57611ccb612b87565b60018252601883528581818420541692601b611ce6856116ee565b95611cef612b95565b600183525220541691611d01836116ee565b11611d3657505091516001600160a01b03909216825260208201526000805160206138b183398151915290806040810161184a565b9150915061184a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611d67612761565b61192c612285565b505050505050565b50509193959750919395611cba565b829450611dba7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996128aa565b8651908152a160195416611dce5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492611dfc612b95565b6001835252205416611e22611e10826116ee565b92611e19612285565b61182a836126f2565b0390a1388080806111a6565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611f2e575061fffe9193611e5c86612bda565b93611e66876116ee565b9480966001958692831b168160195416925b611eba575b505099516001600160a01b039097168752505050506020830193909352509192506000805160206138d1833981519152919050806040810161184a565b818116838111611f28578d9084811015611f0c57505080611edd611ee3926121ef565b9061269a565b9890985b881015611f0757611ef89089612d1c565b611f01886125e7565b86611e78565b611e7d565b8652601b8552852054909890611f239087166116ee565b611ee7565b50611e7d565b94915050611f629194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506123ec565b51908152a1565b6001600160a01b038082166000818152601a602090815260408083205490969594919361ffff91821661200c578084526017855281888520541615611ffb578615611fca5750611cba611fbb86612ba3565b611fc4876116ee565b90612a55565b849193979650611dba7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396612935565b8751632a55ca5360e01b8152600490fd5b969392505050831561204957506000805160206138d1833981519152935061184a9061182a61203a84612bda565b612043856116ee565b906125fe565b9250611f627f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949261247b565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116103f6576120b7816120b1845461139f565b846113f0565b6000601f82116001146120f157819293946000926120e6575b50508160011b916000199060031b1c1916179055565b0135905038806120d0565b601f198216948382526020918281209281905b88821061213c5750508360019596971061212257505050811b019055565b0135600019600384901b60f8161c1916905538808061156f565b80600184968294958701358155019501920190612104565b1561215b57565b634e487b7160e01b600052600160045260246000fd5b9061217e60418214612154565b80600111611048576121999136916000190190600101611011565b80516020909101206001600160a01b031690565b908060209392818452848401376000828201840152601f01601f1916010190565b60ff60125460101c166121dd57565b60405163248c8efb60e11b8152600490fd5b90600161ffff8093160191821161036257565b61142b90611b5961ffff9161221a83601954166121ef565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556116ee565b61ffff908116600019019190821161036257565b61ffff80601954169081156123da57906001906122a481831115612154565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161233e91908a61232f83612271565b16906019541617601955612bff565b8482528086526123528484842054166116ee565b95859860028160195416995b612370575b5050505050505050505050565b8181168a81116123d4578a8110156123b9575080611edd612390926121ef565b9a909a5b8910156123b4576123a5908b612d1c565b6123ae8a6125e7565b8761235e565b612363565b859b919b528383526123cf8787872054166116ee565b612394565b50612363565b6040516340d9b01160e01b8152600490fd5b6123f590612bda565b61ffff908160195416916124098383612d1c565b8061241384612271565b1661ffff19601954161760195561242983612bff565b8116809214612477576120438261142b93600052601b60205260018060a01b039061246361245d83604060002054166116ee565b85612592565b600052601b602052604060002054166116ee565b5050565b61248490612bda565b61ffff908160195416916124988383612d1c565b806124a284612271565b1661ffff1960195416176019556124b883612bff565b80821680931461258d579161fffe91600091808352601b9060209382855260018060a01b03926040926124f86124f28686862054166116ee565b87612592565b825280865261250b8484842054166116ee565b9585986001988997881b168160195416995b61252e575050505050505050505050565b8181168a81116123d4578a811015612572575080611edd61254e926121ef565b9a909a5b8910156123b457612563908b612d1c565b61256c8a6125e7565b8761251d565b859b919b528383526125888787872054166116ee565b612552565b505050565b9190915b60018061ffff831611156125e15781617fff911c1690836125cc6000848152601b602052604060018060a01b03912054166116ee565b10156125e1576125dc9082612d1c565b612596565b50509050565b60011b906201fffe61fffe83169216820361036257565b90600161fffe83821b168160009161ffff908160195416925b612625575b50505050505050565b818116838111612694578381101561266e575080611edd612645926121ef565b9690965b8610156126695761265a9087612d1c565b612663866125e7565b84612617565b61261c565b8452601b602052604084205490969061268f906001600160a01b03166116ee565b612649565b5061261c565b91909161ffff92838216600052601b6020526126dd60018060a01b036126c681604060002054166116ee565b958316600052601b602052604060002054166116ee565b908185106126eb5750509190565b9350919050565b61142b90611fc461ffff9161270a83601654166121ef565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556116ee565b61ffff80601654169081156123da579060019061278081831115612154565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161281a91908a61280b83612271565b16906016541617601655612c41565b84825280865261282e8484842054166116ee565b95859860028160165416995b61284b575050505050505050505050565b8181168a81116123d4578a81101561288f5750806119ec61286b926121ef565b9a909a5b8911156123b457612880908b612c83565b6128898a6125e7565b8761283a565b859b919b528383526128a58787872054166116ee565b61286f565b6128b390612ba3565b61ffff908160165416916128c78383612c83565b806128d184612271565b1661ffff1960165416176016556128e783612c41565b811680921461247757611c118261142b93600052601860205260018060a01b039061292161291b83604060002054166116ee565b85612a55565b6000526018602052604060002054166116ee565b61293e90612ba3565b9061ffff908160165416906129538285612c83565b8261295d83612271565b1661ffff19601654161760165561297382612c41565b828416809214612a4f5760009291929183835260189260209484865260018060a01b03916040916129b16129ab8585852054166116ee565b8a612a55565b81528587526129c48383832054166116ee565b956129ce896125e7565b978560165416985b8681168a8111612a41578a811015612a265750806119ec6129f6926121ef565b9a909a5b891115612a1957612a0b908b612c83565b612a148a6125e7565b6129d6565b5050505050505092505050565b849b919b52828252612a3c8686862054166116ee565b6129fa565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156125e15781617fff911c169083612a8f60008481526018602052604060018060a01b03912054166116ee565b11156125e157612a9f9082612c83565b612a59565b91612aae836125e7565b600061ffff918260165416905b838116828111612b2d5782811015612b075750806119ec612adb926121ef565b9690965b861115612afe57612af09087612c83565b612af9866125e7565b612abb565b50505050915050565b835260186020526040832054909690612b28906001600160a01b03166116ee565b612adf565b5050505050915050565b919061ffff8084166000526018602052612b7860018060a01b03612b6181604060002054166116ee565b9284166000526018602052604060002054166116ee565b93848211156126eb5750509190565b61ffff60165416156123da57565b61ffff60195416156123da57565b6001600160a01b031660009081526017602052604090205461ffff16908115612bc857565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff16908115612bc857565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b612ca861ffff808060165416931693612c9e84861115612154565b1691821115612154565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b612d3761ffff808060195416931693612c9e84861115612154565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b60ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f8635416612dd657565b60405163d93c066560e01b8152600490fd5b612df28282612f51565b612e55600192612e4c612e238286612e1c8760018060a01b03166000526015602052604060002090565b0154611101565b918286612e428760018060a01b03166000526015602052604060002090565b0155601454611101565b60145582611781565b60ff60125460081c1615612e67575050565b60008083549084815b838110612eff575b5050505015612e85575050565b612ef861062261142b93612eab8460018060a01b03166000526015602052604060002090565b0154926003612ecc8260018060a01b03166000526015602052604060002090565b019060405194612edb86610f9f565b85526001600160a01b0316602085015260405192839182906115ac565b0382610fd5565b818352600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614612f4357018590612e70565b509250505038808481612e78565b60018060a01b03166000526015602052612f746002604060002001918254611101565b9055565b91906040519281602085015260208452612f9184610fba565b6001600160401b03601c54169360405194612fab86610f9f565b600095868152602081019083825260018060a01b0385166040820152828852601d6020526040882091815160048110156131805760ff80198554169116178355519182516001600160401b03811161316c57600193613018826130108786015461139f565b8786016113f0565b602090601f83116001146131015760029392918c91836130f6575b5050600019600383901b1c191690851b17818501555b0190604060018060a01b03910151166001600160601b0360a01b82541617905581016001600160401b0381116130e2579560008051602061389183398151915292916001600160401b0361142b9798166001600160401b0319601c541617601c556130d4604051938493845260018060a01b03871660208501526080604085015260808401906112fa565b9060608301520390a1612f51565b634e487b7160e01b87526011600452602487fd5b015190503880613033565b929185918284018d5260208d20908d5b601f1984168110613154575060029583601f1981161061313b575b505050811b0184820155613049565b015160001960f88460031b161c1916905538808061312c565b81870151835588949092019160209182019101613111565b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b8a52602160045260248afd5b60ff60135416600381101561040c5761068957565b601454600a548110156131ba575b50565b61ffff601654166001600160401b03600c541611156131d65750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061321381611641565b0390a160018060a01b03600e54169061322f6002548092611101565b91803b156110485760246000926040519485938492637903ab2760e11b845260048401525af1801561326957156131b75761142b90610f8c565b6040513d6000823e3d90fd5b61327d613194565b80156132d657336000908152601560205260409020600201548015610ea9578110156132c55760ff60125460081c16156132bb5761142b903361346e565b61142b90336132e8565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b9061142b916132f7828261341b565b61339561332383600161331c8560018060a01b03166000526015602052604060002090565b015461110e565b6001600160a01b03831660009081526015602052604090206002015481159081613412575b50156133ef576001600160a01b0383166000908152601560205260409020600360009182815582600182015582600282015501613385815461139f565b806133b2575b5050505b82611c17565b6133a18260145461110e565b6014556001600160a01b031661111b565b82601f82116001146133ca575050555b38808061338b565b90918082526133e8601f60208420940160051c8401600185016113d9565b55556133c2565b6001600160a01b038316600090815260156020526040902081906001015561338f565b90501538613348565b6001600160a01b0316600081815260156020526040902060020154909180821061345c576134489161110e565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b90604051918160208401526020835261348683610fba565b6001600160401b03601c541692604051906134a082610f9f565b600182526020820191818352604081019060018060a01b0385169384835287600052601d60205260406000209151600481101561040c5760ff80198454169116178255518051906001600160401b0382116103f6576135068261028c600186015461139f565b602090601f83116001146135d4576002939291600091836135c9575b50508160011b916000199060031b1c19161760018201555b019060018060a01b039051166001600160601b0360a01b82541617905560018501916001600160401b0383116103625761142b956001600160401b0360008051602061389183398151915294166001600160401b0319601c541617601c556135bb6040519384936001855260208501526080604085015260808401906112fa565b9060608301520390a161341b565b015190503880613522565b906001840160005260206000209160005b601f198516811061362f575091839160019360029695601f19811610613616575b505050811b01600182015561353a565b015160001960f88460031b161c19169055388080613606565b919260206001819286850151815501940192016135e5565b60ff60125460081c16613730575b336000908152601560205260409020600201548015610ea9576136773361373d565b5060009033825260246020528160408120613692815461139f565b806136f3575b50505060ff60125460081c16156136b45761142b91503361346e565b604061142b9233815260036020522054806136d1575b50336132e8565b806136e16136ed9260025461110e565b60025561080333611195565b386136ca565b82601f821160011461370b575050555b813880613698565b9091808252613729601f60208420940160051c8401600185016113d9565b5555613703565b613738613194565b613655565b600081815260266020526040812054909190801561383957600019908082018181116138255760255490838201918211613811578082036137c6575b50505060255480156137b257810190613791826110ca565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6137fb6137d56137e4936110ca565b90549060031b1c9283926110ca565b819391549060031b91821b91600019901b19161790565b9055845260266020526040842055388080613779565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b60008181526026602052604081205461388b57602554600160401b811015610f695790826138776137e4846001604096016025556110ca565b905560255492815260266020522055600190565b90509056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda264697066735822122083f27a7a77250915921f99077b478e87411ad3c8f0a1e4a71f87e5481ace8fde64736f6c634300081300336080806040523461001657610214908161001c8239f35b600080fdfe604060808152600436101561001357600080fd5b600090813560e01c80633f4ba83a146101105780635c975abb146100ce57638456cb591461004057600080fd5b346100ca57816003193601126100ca57610058610199565b7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863805460ff81166100b95760ff19166001179055513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a180f35b825163d93c066560e01b8152600490fd5b5080fd5b50346100ca57816003193601126100ca5760209060ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863541690519015158152f35b50346100ca57816003193601126100ca57610129610199565b7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863805460ff8116156101885760ff19169055513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152600490fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036101cc57565b6040516330cd747160e01b8152600490fdfea264697066735822122048fd97b221e741f6cd5538c2b97886b6c9ef17ff171973ebfda3b7195e33a43364736f6c63430008130033608080604052346100165761067f908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c80634c860af61461035f5780634e71d92d1461010e5763ed7c4da11461003e57600080fd5b3461010b578060031936011261010b5760008051602061062a8339815191529060018254146100f957600182556100736103b6565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156100f55781602491604051928380926382985e0b60e01b82523360048301525af480156100ea576100be575b5080915580f35b67ffffffffffffffff81116100d657604052386100b7565b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5080fd5b6040516329f745a760e01b8152600490fd5b80fd5b503461010b578060031936011261010b57600160008051602061062a83398151915254146100f957600160008051602061062a833981519152556101506103b6565b336000908152601f602052604090209081549061ffff82161561034d5761ffff8260101c169261ffff831693825b61ffff851661ffff8316101561033f5761ffff82168452600183016020526040842060405180604081011067ffffffffffffffff60408301111761032b5790816040602094930160405260018254928383520154938491015243106102165761ffff60016101ee8294839461042b565b948281168852818701602052878260408220828155015501169660001901169591905061017e565b94505063ffff000092945b61ffff8354911693849260101b169063ffffffff19161717905515610314575b8047106102fc578180808084335af13d156102f7573d67ffffffffffffffff81116102e3576040519061027e601f8201601f1916602001836103f3565b81528360203d92013e5b156102d15760407f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514918151903382526020820152a18060008051602061062a8339815191525580f35b604051630a12f52160e11b8152600490fd5b634e487b7160e01b84526041600452602484fd5b610288565b60405163cd78605960e01b8152306004820152602490fd5b336000908152601f60205260409020829055610241565b634e487b7160e01b86526041600452602486fd5b935063ffff00009294610221565b6040516364b0557f60e01b8152600490fd5b50606036600319011261010b5760443560028110156100f5576103806103b6565b600e546001600160a01b031633036103a4576103a19060243560043561044e565b80f35b60405163e7e601db60e01b8152600490fd5b60ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f86354166103e157565b60405163d93c066560e01b8152600490fd5b90601f8019910116810190811067ffffffffffffffff82111761041557604052565b634e487b7160e01b600052604160045260246000fd5b9190820180921161043857565b634e487b7160e01b600052601160045260246000fd5b91811561062457604080519360209283860186811067ffffffffffffffff821117610415578352600095869052600281101561061057806105715750600b54810390811161055d578452602282528084208151808285829454938481520190885285882092885b87828210610547575050506104cc925003826103f3565b91825193841561053f5784811061053f5784900492855b8581106104f35750505050505050565b815181101561052b57600190818060a01b03848260051b850101511688526021845284882061052387825461042b565b9055016104e3565b634e487b7160e01b87526032600452602487fd5b505050505050565b85548452600195860195879550930192016104b5565b634e487b7160e01b85526011600452602485fd5b8360018492146000146105c157606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b86526021600452602486fd5b50505056fe691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212202641eb343375887c3c4f0191635489e06bca83b7362f3d3483ca56ac3d98b35064736f6c634300081300336080806040523461001657611ea9908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c634300081300336080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c634300081300336080806040523461001657614fde908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611a705750806310fd4261146118ff57806326811936146116ec5780632e17de78146116bf578063350a14bf1461168c5780633a4b66f1146115b05780633f4ba83a1461153857806341c0e1b5146114a75780634c860af6146114535780634e71d92d146112bf5780635c975abb1461128f5780636170b16214610edf57806366783c9b14610dfe5780638456cb5914610d96578063b9ee2bb914610997578063c7ebdaef14610951578063cc2dc2b9146108d1578063d66d9e1914610886578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b857600080516020614f8983398151915260018154146101a657806001839255610133612049565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033a26469706673582212208bc252d2c0ae18988be902d7b42813e060a32bc150575394fbe84873dc233d4d64736f6c63430008130033","sourceMap":"9370:26271:91:-:0;;;;;;;1594:4:2;9370:26271:91;;;;1594:4:2;9370:26271:91;;;1594:4:2;9370:26271:91;3201:4:5;9370:26271:91;;;3201:4:5;9370:26271:91;;;;4392:55;;9370:26271;3201:4:5;4392:55:91;;9370:26271;;;;;;;;;;;1594:4:2;4392:15:91;9370:26271;4392:15;;:55;;;;;;;1594:4:2;4392:55:91;;;-1:-1:-1;;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;4361:86;9370:26271;;4361:86;9370:26271;;;;;;-1:-1:-1;9370:26271:91;;;;4361:86;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;;;;;;;4494:53;;9370:26271;3201:4:5;4494:53:91;;9370:26271;;;;;;-1:-1:-1;;;9370:26271:91;;;;1594:4:2;4392:15:91;9370:26271;4392:15;;4494:53;;;;;;;1594:4:2;4494:53:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;4457:90;9370:26271;;4457:90;9370:26271;;;;;;;;;;;4457:90;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;4583:51:91;;9370:26271;3201:4:5;4583:51:91;;9370:26271;;;;;;-1:-1:-1;;;9370:26271:91;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;4583:51;;;;;;;1594:4:2;4583:51:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;4557:77;9370:26271;;4557:77;9370:26271;;;;;;;;;;;4557:77;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;4670:53:91;;9370:26271;3201:4:5;4670:53:91;;9370:26271;;;;;;-1:-1:-1;;;9370:26271:91;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;4670:53;;;;;;;1594:4:2;4670:53:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;4644:79;9370:26271;;4644:79;9370:26271;;;;;;;;;;;4644:79;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;7668:58:91;;9370:26271;3201:4:5;7668:58:91;;9370:26271;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;7668:58;;;;;;;1594:4:2;7668:58:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;7757:59:91;;9370:26271;3201:4:5;7757:59:91;;9370:26271;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;7757:59;;;;;;;1594:4:2;7757:59:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;7736:80;9370:26271;;7736:80;9370:26271;;;;;;;;;;;7736:80;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;7846:57:91;;9370:26271;3201:4:5;7846:57:91;;9370:26271;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;7846:57;;;;;;;1594:4:2;7846:57:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;7826:77;9370:26271;;7826:77;9370:26271;;;;;;;;;;;7826:77;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;7935:58:91;;9370:26271;3201:4:5;7935:58:91;;9370:26271;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;7935:58;;;;;;;1594:4:2;7935:58:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;7913:80;9370:26271;;7913:80;9370:26271;;;;;;;;;;;7913:80;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;8029:65:91;;9370:26271;3201:4:5;8029:65:91;;9370:26271;4557:77;9370:26271;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;8029:65;;;;;;;1594:4:2;8029:65:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;8003:91;9370:26271;;8003:91;9370:26271;;;;;;;;;;;8003:91;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;8131:51:91;;9370:26271;3201:4:5;8131:51:91;;9370:26271;;;;;;-1:-1:-1;;;9370:26271:91;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;8131:51;;;;;;;1594:4:2;8131:51:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;8104:78;9370:26271;;8104:78;9370:26271;;;;;;;;;;;8104:78;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;8212:51:91;;9370:26271;3201:4:5;8212:51:91;;9370:26271;;;;;;-1:-1:-1;;;9370:26271:91;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;8212:51;;;;;;;1594:4:2;8212:51:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;8192:71;9370:26271;;8192:71;9370:26271;;;;;;;;;;;8192:71;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;8293:53:91;;9370:26271;3201:4:5;8293:53:91;;9370:26271;;;;;;-1:-1:-1;;;9370:26271:91;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;8293:53;;;;;;;1594:4:2;8293:53:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;8273:73;9370:26271;;8273:73;9370:26271;;;;;;;;;;;8273:73;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;5578:54:91;;9370:26271;3201:4:5;5578:54:91;;9370:26271;;;;;;-1:-1:-1;;;9370:26271:91;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;5578:54;;;;;;;1594:4:2;5578:54:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;5546:86;9370:26271;;5546:86;9370:26271;;;;;;;;;;;5546:86;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;5674:54:91;;9370:26271;3201:4:5;5674:54:91;;9370:26271;;;;;;-1:-1:-1;;;9370:26271:91;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;5674:54;;;;;;;1594:4:2;5674:54:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;5642:86;9370:26271;;5642:86;9370:26271;;;;;;;;;;;5642:86;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;5772:56:91;;9370:26271;3201:4:5;5772:56:91;;9370:26271;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;5772:56;;;;;;;1594:4:2;5772:56:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;5738:90;9370:26271;;5738:90;9370:26271;;;;;;;;;;;5738:90;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;5871:55:91;;9370:26271;3201:4:5;5871:55:91;;9370:26271;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;5871:55;;;;;;;1594:4:2;5871:55:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;5838:88;9370:26271;;5838:88;9370:26271;;;;;;;;;;;5838:88;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;5957:54:91;;9370:26271;3201:4:5;5957:54:91;;9370:26271;;;;;;-1:-1:-1;;;9370:26271:91;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;5957:54;;;;;;;1594:4:2;5957:54:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;5937:74;9370:26271;;5937:74;9370:26271;;;;;;;;;;;5937:74;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;6042:55:91;;9370:26271;3201:4:5;6042:55:91;;9370:26271;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;6042:55;;;;;;;1594:4:2;6042:55:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;6021:76;9370:26271;;6021:76;9370:26271;;;;;;;;;;;6021:76;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;6130:57:91;;9370:26271;3201:4:5;6130:57:91;;9370:26271;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;4392:15;6130:57;;;;;;;1594:4:2;6130:57:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;6107:80;9370:26271;;6107:80;9370:26271;;;;;;;;;;;6107:80;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;6217:51:91;;9370:26271;3201:4:5;6217:51:91;;9370:26271;;;;;;-1:-1:-1;;;9370:26271:91;;;;;-1:-1:-1;;;;9370:26271:91;;;4392:15;6217:51;;;;;;;1594:4:2;6217:51:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;6197:71;9370:26271;;6197:71;9370:26271;;;;;;;;;;;6197:71;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;;-1:-1:-1;;9370:26271:91;;-1:-1:-1;;;6297:53:91;;9370:26271;3201:4:5;6297:53:91;;9370:26271;;;;;;-1:-1:-1;;;9370:26271:91;;;;;-1:-1:-1;;;;9370:26271:91;;;4392:15;6297:53;;;;;;;1594:4:2;6297:53:91;;;9370:26271;-1:-1:-1;9370:26271:91;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;6278:72;9370:26271;;6278:72;9370:26271;;;;;;;;;;;6278:72;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;1594:4:2;9370:26271:91;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6278:72;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;3201:4:5;9370:26271:91;;1594:4:2;9370:26271:91;6297:53;;;;;;1594:4:2;6297:53:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;9370:26271;;;1594:4:2;9370:26271:91;;;;;;;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6197:71;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6217:51;;;;;;1594:4:2;6217:51:91;;;;;;:::i;:::-;;;;9370:26271;;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6107:80;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6130:57;;;;;;1594:4:2;6130:57:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6021:76;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6042:55;;;;;;1594:4:2;6042:55:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5937:74;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5957:54;;;;;;1594:4:2;5957:54:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5838:88;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5871:55;;;;;;1594:4:2;5871:55:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5738:90;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5772:56;;;;;;1594:4:2;5772:56:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5642:86;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5674:54;;;;;;1594:4:2;5674:54:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5546:86;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5578:54;;;;;;1594:4:2;5578:54:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8273:73;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8293:53;;;;;;1594:4:2;8293:53:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8192:71;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8212:51;;;;;;1594:4:2;8212:51:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8104:78;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8131:51;;;;;;1594:4:2;8131:51:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8003:91;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8029:65;;;;;;1594:4:2;8029:65:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7913:80;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7935:58;;;;;;1594:4:2;7935:58:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7826:77;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7846:57;;;;;;1594:4:2;7846:57:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7736:80;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7757:59;;;;;;1594:4:2;7757:59:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7668:58;;;;;;1594:4:2;7668:58:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4644:79;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4670:53;;;;;;1594:4:2;4670:53:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4557:77;1594:4:2;9370:26271:91;;;;;;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4583:51;;;;;;1594:4:2;4583:51:91;;;;;;:::i;:::-;;;;9370:26271;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4457:90;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;4457:90;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4494:53;;;;;;1594:4:2;4494:53:91;;;;;;:::i;:::-;;;;9370:26271;;1594:4:2;9370:26271:91;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;;;;1594:4:2;9370:26271:91;;;;;;;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4361:86;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;9370:26271:91;;1594:4:2;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;4392:55;;;;;;1594:4:2;4392:55:91;;;;;;:::i;:::-;;;;9370:26271;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":106514,"length":20},{"start":112433,"length":20},{"start":116947,"length":20},{"start":124298,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":78834,"length":20},{"start":81015,"length":20},{"start":81589,"length":20},{"start":105391,"length":20},{"start":127302,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":70044,"length":20},{"start":70815,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":162707,"length":20},{"start":175344,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":91052,"length":20},{"start":105029,"length":20},{"start":126804,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":23096,"length":20},{"start":23176,"length":20},{"start":23260,"length":20},{"start":23441,"length":20},{"start":23606,"length":20},{"start":45146,"length":20},{"start":45864,"length":20},{"start":54846,"length":20},{"start":69713,"length":20},{"start":77063,"length":20},{"start":77651,"length":20},{"start":78524,"length":20},{"start":80582,"length":20},{"start":80869,"length":20},{"start":81419,"length":20},{"start":84469,"length":20},{"start":86868,"length":20},{"start":86965,"length":20},{"start":88060,"length":20},{"start":90721,"length":20},{"start":90823,"length":20},{"start":91153,"length":20},{"start":91238,"length":20},{"start":91339,"length":20},{"start":91424,"length":20},{"start":92911,"length":20},{"start":92989,"length":20},{"start":93094,"length":20},{"start":93250,"length":20},{"start":93800,"length":20},{"start":94041,"length":20},{"start":94122,"length":20},{"start":99595,"length":20},{"start":104098,"length":20},{"start":104774,"length":20},{"start":110369,"length":20},{"start":110588,"length":20},{"start":110668,"length":20},{"start":110849,"length":20},{"start":111030,"length":20},{"start":124480,"length":20},{"start":126540,"length":20},{"start":146483,"length":20},{"start":168237,"length":20}]},"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":105,"length":20},{"start":312,"length":20},{"start":516,"length":20},{"start":722,"length":20},{"start":940,"length":20},{"start":1158,"length":20},{"start":1376,"length":20},{"start":1594,"length":20},{"start":1812,"length":20},{"start":2016,"length":20},{"start":2220,"length":20},{"start":2426,"length":20},{"start":2633,"length":20},{"start":2840,"length":20},{"start":3058,"length":20},{"start":3276,"length":20},{"start":3483,"length":20},{"start":3701,"length":20},{"start":3919,"length":20},{"start":4126,"length":20},{"start":4335,"length":20}]}}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b600090813560e01c9081630a9254e41462004959575080631e33429414620047705780631ed7831c14620046ea5780632d49aa1c14620045c857806330dd2c4514620044b257806337bdc99b14620042b55780633e5e3c23146200422f5780633f7286f414620041a95780634d238c8e146200414b5780635c2c2fed1462003b5057806363323eb81462003b1857806366d9a9a01462003a615780637b1837de146200375257806385226c8114620036175780638710555714620035e0578063916a17c61462003529578063951759c914620031975780639b2110801462002a2b5780639c821dc614620022dd578063a0aaa2851462001d98578063a9fb763c1462001cf2578063b5508aa91462001ba3578063ba414fa61462001b7a578063c33dd9d51462001313578063c69a046914620012bf578063d8d52713146200113a578063dd78497414620010f9578063e20c9f711462001059578063ea1c89ed14620008c3578063eb8df0521462000457578063fa7626d41462000433578063fbfb892714620003fa5763fc6c1f0214620001ae57600080fd5b34620003575760403660031901126200035757620001cb62004ee2565b620001d562007c74565b90620001fb620001e58262007d12565b92600093620001f48262005f03565b5262005f03565b506040516200020a8162004d91565b6001815260203681830137620002236024359162005f03565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f65760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003eb57620003d5575b50604051906200028c8262004d91565b438252836020830152823b15620003c6576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003ca579085939291620003a8575b506043546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039d5762000369575b50803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b6200034d829162004dc9565b6200035757808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b6200038e9060603d811162000395575b62000385818362004e4e565b81019062007ccb565b5062000310565b503d62000379565b6040513d85823e3d90fd5b620003b7909391929362004dc9565b620003c65790839138620002cf565b8380fd5b6040513d87823e3d90fd5b620003e39093919362004dc9565b91386200027c565b6040513d86823e3d90fd5b8280fd5b5034620003575760603660031901126200035757620004306200041c62004ecb565b6200042662004ef9565b90600435620080ab565b80f35b5034620003575780600319360112620003575760ff60209154166040519015158152f35b5034620003575760031960603682011262000365576200047662004ee2565b6044356002811015620003c657602d54620004ae6000916200049762005fb1565b50603e546001600160a01b0390811691166200838b565b9195939792505060018060a01b03604054169560405193639d3070b560e01b85526020600486015260208580620004e9602482018d62005222565b03818b5afa948515620008b85786956200087e575b506001850185116200086a576001870187116200086a576004602062000528602435809662007c66565b9960405192838092632472942560e01b82525afa9081156200085f57879162000823575b5015620007eb5780620007195750603f546001600160a01b031690620005729062007d12565b91813b15620007155790620005ae8693928a620005be6040519788968795869463018f44b760e41b865260406004870152604486019062005222565b91848303016024850152620052af565b03925af180156200039d57620006fd575b5090602092915b602d546200063f906200060a906001600160a01b0316620005f662005fb1565b50603e546001600160a01b0316906200838b565b9893505098905060018060a01b03604054166040518080958194639d3070b560e01b8352866004840152602483019062005222565b03915afa928315620006f15792620006b1575b50600101036200067757620004309360016200067092011462007fe6565b1462008026565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006e8575b81620006d06020938362004e4e565b81010312620006e3575190600162000652565b600080fd5b3d9150620006c1565b604051903d90823e3d90fd5b62000709839162004dc9565b620003655738620005cf565b8580fd5b929897969594939260011462000739575b505060209394959650620005d6565b603f549293926001600160a01b031690620007549062007d12565b91813b15620003c65790620007918489819594620007a16040519e8f978896879563028bf0d560e11b875260606004880152606487019062005222565b91858303016024860152620052af565b90604483015203925af1968715620007de57602094959697620007cc575b879695949291926200072a565b620007d79062004dc9565b38620007bf565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000856575b81620008416020938362004e4e565b81010312620008525751386200054c565b8680fd5b3d915062000832565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008af575b816200089d6020938362004e4e565b810103126200071557519338620004fe565b3d91506200088e565b6040513d88823e3d90fd5b5034620003575760c036600319011262000357576004356001600160401b0381116200036557620008f99036906004016200534c565b6200090362004ecb565b906200090e62004ef9565b6064356001600160a01b0381168103620006e357608435906001600160a01b0382168203620006e35760a435926001600160a01b0384168403620006e357604051956200095b8762004d75565b6005875260005b60a081106200103f5750604051906200097b8262004dad565b6001600160a01b0316815260208101889052620009976200559b565b6040820152620009a78762005f03565b52620009b38662005f03565b5060405190620009c38262004dad565b60018060a01b0316815286602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062000fca5762000a6e94549181811062000e4b575b81811062000e2b575b81811062000e0b575b81811062000deb575b81811062000dcb575b81811062000dab575b81811062000d8d575b1062000d77575b50038262004e4e565b604082015262000a7e8662005f27565b5262000a8a8562005f27565b506040519062000a9a8262004dad565b60018060a01b0316815285602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062000f555762000b3d94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000b4d8562005f38565b5262000b598462005f38565b506040519062000b698262004dad565b60018060a01b0316815284602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062000ee05762000c0c94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000c1c8462005f49565b5262000c288362005f49565b506040519062000c388262004dad565b60018060a01b0316815283602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062000e6b5762000cdb94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000ceb8362005f5a565b5262000cf78262005f5a565b50604051916114a4808401908482106001600160401b0383111762000d63579184939162000d2b936200a1798639620070ed565b039082f08015620007de57602c80546001600160a01b031981166001600160a01b039093169283179091556040519216178152602090f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000a65565b602083811b6001600160e01b03191685529093019260010162000a5e565b604083901b6001600160e01b031916845260209093019260010162000a55565b606083901b6001600160e01b031916845260209093019260010162000a4c565b608083901b6001600160e01b031916845260209093019260010162000a43565b60a083901b6001600160e01b031916845260209093019260010162000a3a565b60c083901b6001600160e01b031916845260209093019260010162000a31565b60e083901b6001600160e01b031916845260209093019260010162000a28565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000c82565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000bb3565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000ae4565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000a0d565b6020906200104c62005fcd565b82828b0101520162000962565b50346200035757806003193601126200035757604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b85828210620010d957505050620010bf9250038362004e4e565b620010d560405192828493845283019062005071565b0390f35b85546001600160a01b0316845260019586019588955093019201620010a5565b5034620003575760203660031901126200035757620010d5620011296200111f62004ee2565b620005f662005fb1565b91604095939551958695866200527f565b5034620003575760403660031901126200035757806200115962004ee2565b6024356001600160401b03811162001282576200117b90369060040162005014565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620012ba5760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008b8578691620012a2575b5050813b156200129e57849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003eb57849162001286575b5050602d5416803b1562001282576200125c8391670de0b6b3a7640000936040519485809481936330b858b160e11b835260206004840152602483019062005195565b03925af180156200035a576200126f5750f35b6200127a9062004dc9565b620003575780f35b5050fd5b620012919062004dc9565b6200128257823862001219565b8480fd5b620012ad9062004dc9565b6200129e578438620011d2565b505050fd5b5034620003575760203660031901126200035757600435906001600160401b0382116200035757602062001301620012fb36600486016200534c565b620071e3565b6040516001600160a01b039091168152f35b503462000357576003196020368201126200036557600435906001600160401b038211620003f65760a090823603011262000365576040519060a082018281106001600160401b0382111762001b6457604052620013748160040162004f10565b8252620013846024820162004f10565b6020830152620013976044820162004f10565b604083015260648101356001600160401b038111620003c657620013c29060043691840101620052d4565b60608301526084810135906001600160401b038211620003c6576004620013ed9236920101620052d4565b6080820152604051908160a08101106001600160401b0360a08401111762001b645760a082016040526004825260005b6080811062001b4a575060405180610d308101106001600160401b03610d308301111762001b3657610d306200c73b823980610d308101039084f080156200039d57604051806108848101106001600160401b036108848301111762001b22576108846200d46b8239806108848101039085f0908115620003eb5760405180611ec58101106001600160401b03611ec58301111762000d6357611ec56202527c823980611ec58101039086f0908115620003ca5760405180610b3d8101106001600160401b03610b3d8301111762001b0e57610b3d62027141823980610b3d8101039087f0928315620008b85760405190620015198262004dad565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b80600783011062001a9857620015bc94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620015cc8662005f03565b52620015d88562005f03565b5060405190620015e88262004dad565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b80600783011062001a22576200168b94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b60408201526200169b8562005f27565b52620016a78462005f27565b5060405190620016b78262004dad565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620019ac576200175a94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b60408201526200176a8462005f38565b52620017768362005f38565b5060405190620017868262004dad565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062001936576200182994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620018398362005f49565b52620018458262005f49565b506040519161111e90818401918483106001600160401b0384111762000d63579162001887859492620018ef946200b61d8739604083526040830190620061b1565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b0360408301511660408201526080620018dd606084015160a0606085015260a0840190620050b0565b920151906080818403910152620050b0565b039082f08015620007de5760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e0820152019401920184929391620017d0565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001701565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001632565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001563565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b634e487b7160e01b84526041600452602484fd5b60209062001b5762005fcd565b828286010152016200141d565b634e487b7160e01b600052604160045260246000fd5b50346200035757806003193601126200035757602062001b996200549c565b6040519015158152f35b5034620003575780600319360112620003575760105462001bc48162004eb3565b9062001bd4604051928362004e4e565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b84831062001c1c5760405180620010d58882620051bc565b604051849188549160019280841c90848116801562001ce7575b878310811462001cd3578284528794939291811562001cb5575060011462001c79575b5062001c6a81600196038262004e4e565b81520197019201919562001c04565b8b8952838920955088905b80821062001c9d575081018301945062001c6a62001c59565b86548383018601529585019587949091019062001c84565b60ff19168584015250151560051b81018301945062001c6a62001c59565b634e487b7160e01b8a52602260045260248afd5b91607f169162001c36565b5034620003575760203660031901126200035757808060405162001d168162004d91565b601c81527f726577617264206d6574686f642063616c6c6564207769746820256400000000602082015260405162001d848162001d6d60208201946309710a9d60e41b865260406024840152606483019062005195565b600435604483015203601f19810183528262004e4e565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003575760c0366003190112620003575762001db662004ee2565b6024908135916001831015620003c65762001dd062004e70565b9162001ddb62004e87565b9262001de662004fd8565b6040519262001df58462004e16565b600084526040519362001e088562004d91565b607b85526020908186015260405192613942938481016001600160401b039582821087831117620022c8579082916202106f833903906000f0988915620022935760018060a01b0398896001600160601b0360a01b9b168b602d541617602d5560405161154f8082019082821089831117620022b3579082916201fb20833903906000f0801562002293578a168b602f541617602f556040516102308082019082821089831117620022b357908291620249b1833903906000f0801562002293578a168b6031541617603155604051612f0f8082019082821089831117620022b3579082916201cc11833903906000f0801562002293578a168b603254161760325560405161069b8082019082821089831117620022b35790829162024be1833903906000f0801562002293578a168b6030541617603055604051610d308082019082821089831117620022b3579082916200c73b833903906000f0801562002293578a168b60335416176033556040516108848082019082821089831117620022b3579082916200d46b833903906000f093841562002293576200218b97620021c3889485938f8f908160ff9b168091603454161760345562001fcb62006163565b9d8e83602d54166040519062001fe18262004dad565b815260008682015262001ff3620057ab565b6040820152620020038262005f03565b526200200f8162005f03565b5083602f541660405190620020248262004dad565b8152600086820152620020366200559b565b6040820152620020468262005f27565b52620020528162005f27565b50836031541660405190620020678262004dad565b815260008682015262002079620058bc565b6040820152620020898262005f38565b52620020958162005f38565b50836030541660405190620020aa8262004dad565b8152600086820152620020bc620059cd565b6040820152620020cc8262005f49565b52620020d88162005f49565b50836032541660405190620020ed8262004dad565b8152600086820152620020ff62005ade565b60408201526200210f8262005f5a565b526200211b8162005f5a565b50836033541660405190620021308262004dad565b81526000868201526200214262005bef565b6040820152620021528262005fa0565b526200215e8162005fa0565b50604051926200216e8462004dad565b83526000858401526200218062005d00565b604084015262005f6b565b52620021978d62005f6b565b50620021a262006130565b9a6040519e8f620021b38162004df9565b5216908d015260408c0162005ff0565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a49081860192868410908411176200229f57509184939162002234936200a1798639620070ed565b03906000f08015620022935716908181602c541617602c558181602d541617602d558181603154161760315581816030541617603055818160325416176032558181602f541617602f5581816033541617603355603454161760345580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b50346200035757806003193601126200035757604051620022fe8162004e32565b6003815260005b6060811062002a11575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039d578390620029d2575b62002364915062007d12565b6200236f8762005f03565b526200237b8662005f03565b5060405183815260c8600482015284818381895afa80156200039d57839062002993575b620023ab915062007d12565b620023b68762005f27565b52620023c28662005f27565b506040519280845261012c93846004820152858184818a5afa8015620003eb57849062002954575b620023f6915062007d12565b620024018862005f38565b526200240d8762005f38565b50604051956200241d8762004e32565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008b857869462002915575b506200245a8962005f03565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200085f578791620028d8575b5084620024988b62005f27565b9116905260405181815287600482015288818781875afa9081156200085f5787916200289b575b5084620024cc8b62005f38565b9116905260405190620024df8262004e32565b600382528b368a8401376040519080825283600483015289828881885afa918215620027d15788926200285c575b50843b15620027905760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af18015620027f857908a9162002844575b505060405182815260c860048201528b818a818a5afa908115620027f8578a9162002807575b50863b15620028035787604051918583521660048201528a898201528981604481838b5af18015620027f857908a91620027dc575b5050604051918252600482015289818881885afa908115620027d157889162002794575b50843b15620027905785906040519283521660048201528786820152868160448183885af180156200085f5790879162002778575b50508082620026166200262a9362005f03565b5282620026238262005f27565b5262005f38565b52604051926200263a8462004d91565b4384528487850152813b156200129e5760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003eb57918493918a9362002758575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035a5762002737575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b8282106200270257888803868a01528880620010d58a8a62005071565b919397509184806200272283979899605f198d82030186528b51620052af565b990192019201889796959492939193620026e5565b6200275190873d8911620003955762000385818362004e4e565b50620026bc565b6200276891935093919362004dc9565b620003f65782918891386200267f565b620027839062004dc9565b6200071557853862002603565b8780fd5b90508981813d8311620027c9575b620027ae818362004e4e565b810103126200279057620027c29062007cb6565b38620025ce565b503d620027a2565b6040513d8a823e3d90fd5b620027e79062004dc9565b620027f4578838620025aa565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d83116200283c575b62002821818362004e4e565b810103126200280357620028359062007cb6565b3862002575565b503d62002815565b6200284f9062004dc9565b620027f45788386200254f565b9091508981813d831162002893575b62002877818362004e4e565b8101031262002790576200288b9062007cb6565b90386200250d565b503d6200286b565b90508881813d8311620028d0575b620028b5818362004e4e565b810103126200085257620028c99062007cb6565b38620024bf565b503d620028a9565b90508881813d83116200290d575b620028f2818362004e4e565b810103126200085257620029069062007cb6565b386200248b565b503d620028e6565b9093508781813d83116200294c575b62002930818362004e4e565b810103126200071557620029449062007cb6565b92386200244e565b503d62002924565b508581813d83116200298b575b6200296d818362004e4e565b81010312620003c65762002985620023f69162007cb6565b620023ea565b503d62002961565b508481813d8311620029ca575b620029ac818362004e4e565b81010312620003f657620029c4620023ab9162007cb6565b6200239f565b503d620029a0565b508481813d831162002a09575b620029eb818362004e4e565b81010312620003f65762002a03620023649162007cb6565b62002358565b503d620029df565b60209062002a1e62005fb1565b8282850101520162002305565b503462000357576040366003190112620003575762002a4962004ee2565b62002a5362004ecb565b603e546001600160a01b031690813b15620006e357604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003eb576200317b575b5062002aad600491836200838b565b6040805490516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039d57839262003153575b50602062002b1391604051809381926390ba52cf60e01b8352846004840152602483019062005222565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d57868491829362003114575b5060405163aa5106cb60e01b815292938391829162002b6391906004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d5762002bb7916020918591620030f6575b50604051809381926390ba52cf60e01b8352846004840152602483019062005222565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f15792620030bc575b5003620030455762002c0d62002c149262002c06670de0b6b3a7640000600497146200806b565b1562007fe6565b1562008026565b6040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de5762002c6c938591839162003001575b5060405163aa5106cb60e01b815294859283926004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb5784926200301f575b5062002ca46004929362007d12565b6040519362002cb38562004d91565b845260208401526040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de5762002d11938391839162003001575060405163aa5106cb60e01b815294859283926004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb57849262002fd3575b5062002d469062007d12565b6040519162002d558362004d91565b825260208201526040519062002d6b8262004e16565b8382526040519262002d7d8462004ddd565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be400848601526040519462002dc18662004d91565b85528560208601526040519262002dd88462004d91565b600194858552875b6020811062002f6c5750505050508262002dfa8262005f03565b5262002e068162005f03565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003655760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035a5762002f54575b50506042546001600160a01b031690813b156200129e5791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b82821062002f1d5750505050508383809203925af180156200039d5762002f05575b60208260405162002efa8162002eeb85820194868652604083019062007f47565b03601f19810183528262004e4e565b519020604051908152f35b62002f11839162004dc9565b62000365578162002eca565b929597509295509260208062002f3f87936043198c8203018652895162007f47565b970192019201928795938a9795929362002ea8565b62002f5f9062004dc9565b620003c657833862002e57565b60209060405162002f7d8162004d91565b60405162002f8b8162004ddd565b62002f9562007eec565b815262002fa162007eec565b848201528b60408201528b888201528b8682015287878201528b8582015281528a838201528282890101520162002de0565b62002d4691925062002ff9903d8087833e62002ff0818362004e4e565b81019062007e99565b919062002d3a565b6200301891503d8085833e62002ff0818362004e4e565b3862002c4f565b600492506200303d62002ca4913d8088833e62002ff0818362004e4e565b925062002c95565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d602011620030ed575b81620030db6020938362004e4e565b81010312620006e35751903862002bdf565b3d9150620030cc565b6200310d91503d8087833e62002ff0818362004e4e565b3862002b94565b925050506020813d6020116200314a575b81620031346020938362004e4e565b81010312620006e35751828662002b6362002b3f565b3d915062003125565b62002b13919250620031726020913d8087833e62002ff0818362004e4e565b92915062002ae9565b600491936200318e62002aad9262004dc9565b93915062002a9e565b50346200035757602090816003193601126200035757620031b762004ee2565b604051614ffa908181016001600160401b03928282108483111762000d635790829162027c7e8339039084f09182156200039d5760405161154f808201908282108583111762001b0e579082916201fb208339039085f0908115620003eb57859060405192620032278462004dad565b6002845260005b604081106200350a5750604051620032468162004dad565b6001600160a01b03968716815283810188905260405160298054808352600091825282870191907fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac5b8160078401106200348f579284926200335f9992620032fd9554918482821062003470575b82821062003451575b82821062003432575b82821062003413575b828210620033f4575b828210620033d5575b828210620033b8575b5010620033a2575b509050038262004e4e565b60408201526200330d8562005f03565b52620033198462005f03565b5085604051916200332a8362004dad565b16815286888201526200333c6200559b565b60408201526200334c8462005f27565b52620033588362005f27565b506200601e565b90604051926114a4808501918583109083111762001b0e57918493916200338c936200a1798639620070ed565b039083f0918215620006f1575060405191168152f35b6001600160e01b03191681528d910138620032f2565b83811b6001600160e01b03191685529093019260010184620032ea565b604084901b6001600160e01b03191685529093019260010184620032e1565b606084901b6001600160e01b03191685529093019260010184620032d8565b608084901b6001600160e01b03191685529093019260010184620032cf565b60a084901b6001600160e01b03191685529093019260010184620032c6565b60c084901b6001600160e01b03191685529093019260010184620032bd565b60e084901b6001600160e01b03191685529093019260010184620032b4565b93949596976101006008929394600192875463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520194019201908c9796959493926200328f565b620035189391929362005fcd565b82828701015201908792916200322e565b503462000357578060031936011262000357576013546200354a8162004eb3565b906200355a604051928362004e4e565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b838310620035a15760405180620010d58782620050f0565b600282600192604051620035b58162004d91565b848060a01b038a54168152620035cd858b0162005e11565b8382015281520196019201919462003589565b5034620003575760403660031901126200035757620010d5620011296200360662004ee2565b6200361062004ecb565b906200838b565b50346200035757806003193601126200035757601154620036388162004eb3565b9062003648604051928362004e4e565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b848310620036905760405180620010d58882620051bc565b604051849188549160019280841c90848116801562003747575b878310811462001cd35782845287949392918115620037295750600114620036ed575b50620036de81600196038262004e4e565b81520197019201919562003678565b8b8952838920955088905b808210620037115750810183019450620036de620036cd565b865483830186015295850195879490910190620036f8565b60ff19168584015250151560051b810183019450620036de620036cd565b91607f1691620036aa565b503462000357576003199060403683011262000357576200377262004ee2565b60249283359160018060a01b03620037d9620037a382602d54166200379662005fb1565b5083603e5416906200838b565b9793919692505084604054169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62005222565b03915afa958615620022935760009662003a2c575b506001860180961162003a17576001890180991162003a175786620038168460049362007c66565b9b60405192838092632472942560e01b82525afa9081156200229357600091620039e4575b5015620039ad576200385287603f54169462007d12565b93803b15620006e3576200389d946000938e6040519788958694859363018f44b760e41b8552604060048601526200388e604486018c62005222565b928584030190850152620052af565b03925af190811562002293578a97620039009386936200399b575b50620038d987602d5416620038cc62005fb1565b5088603e5416906200838b565b9c935050989050604054169160405195869485938493845287600485015283019062005222565b03915afa908115620022935760009162003968575b50036200393057506200043093929162000670911462007fe6565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d831162003993575b62003981818362004e4e565b81010312620003575750513862003915565b503d62003975565b620039a69062004dc9565b38620038b8565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d831162003a0f575b620039fd818362004e4e565b8101031262000357575051386200383b565b503d620039f1565b8c634e487b7160e01b60005260116004526000fd5b90958782813d831162003a59575b62003a46818362004e4e565b81010312620003575750519438620037ee565b503d62003a3a565b5034620003575780600319360112620003575760125462003a828162004eb3565b9062003a92604051928362004e4e565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b83831062003ad95760405180620010d58782620050f0565b60028260019260405162003aed8162004d91565b848060a01b038a5416815262003b05858b0162005e11565b8382015281520196019201919462003ac1565b50346200035757604036600319011262000357576200043062003b3a62004ecb565b603e546001600160a01b031690600435620080ab565b50346200035757610100366003190112620003575762003b6f62004ee2565b60016024351015620003655762003b8562004e70565b62003b8f62004e87565b9162003b9a62004fd8565b91600360c43510156200129e5760e43561ffff81168103620006e3576040519462003bc58662004e16565b600086526040519562003bd88762004d91565b607b875260208701526040516139428082018281106001600160401b0382111762001b645782916202106f833903906000f08015620022935760018060a01b03166001600160601b0360a01b602d541617602d5560405161154f8082018281106001600160401b0382111762001b645782916201fb20833903906000f08015620022935760018060a01b03166001600160601b0360a01b602f541617602f556040516102308082018281106001600160401b0382111762001b64578291620249b1833903906000f08015620022935760018060a01b03166001600160601b0360a01b6031541617603155604051612f0f8082018281106001600160401b0382111762001b645782916201cc11833903906000f08015620022935760018060a01b03166001600160601b0360a01b603254161760325560405161069b8082018281106001600160401b0382111762001b6457829162024be1833903906000f08015620022935760018060a01b03166001600160601b0360a01b6030541617603055604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f08015620022935760018060a01b03166001600160601b0360a01b60335416176033556040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09485156200229357603480546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b0391829062003e0b62006163565b602d54604051919b91906001600160a01b031662003e298262004dad565b81526000602082015262003e3c620057ab565b604082015262003e4c8c62005f03565b5262003e588b62005f03565b50602f54604051906001600160a01b031662003e748262004dad565b81526000602082015262003e876200559b565b604082015262003e978c62005f27565b5262003ea38b62005f27565b50603154604051906001600160a01b031662003ebf8262004dad565b81526000602082015262003ed2620058bc565b604082015262003ee28c62005f38565b5262003eee8b62005f38565b50603054604051906001600160a01b031662003f0a8262004dad565b81526000602082015262003f1d620059cd565b604082015262003f2d8c62005f49565b5262003f398b62005f49565b50603254604051906001600160a01b031662003f558262004dad565b81526000602082015262003f6862005ade565b604082015262003f788c62005f5a565b5262003f848b62005f5a565b50603354604051906001600160a01b031662003fa08262004dad565b81526000602082015262003fb362005bef565b604082015262003fc38c62005fa0565b5262003fcf8b62005fa0565b506040519062003fdf8262004dad565b6001600160a01b031681526000602082015262003ffb62005d00565b60408201526200400b8b62005f6b565b52620040178a62005f6b565b506200402262006130565b986040519b620040328d62004df9565b8c526001600160a01b031660208c01526200405360243560408d0162005ff0565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200409460c43562006013565b60c435610140840152610160830152604051916114a490818401928484106001600160401b0385111762001b64578493620040d5936200a1798639620070ed565b03906000f080156200229357602c80546001600160a01b03929092166001600160a01b03199283168117909155602d8054831682179055603180548316821790556030805483168217905560328054831682179055602f8054831682179055603380548316821790556034805490921617905580f35b50346200035757602036600319011262000357576200416962004ee2565b6200417362007c74565b9062004183620001e58262007d12565b50606462000223604051620041988162004d91565b600181526020368183013762005f03565b50346200035757806003193601126200035757604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b858282106200420f57505050620010bf9250038362004e4e565b85546001600160a01b0316845260019586019588955093019201620041f5565b50346200035757806003193601126200035757604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200429557505050620010bf9250038362004e4e565b85546001600160a01b03168452600195860195889550930192016200427b565b503462000357576020806003193601126200036557604080549051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003ca57859262004473575b5060016001600160401b0380931601908282116200445d5780603f541690866200432c3362007d12565b92803b1562000365576200435f9382916040518080978194636b2c1eef60e01b83528d60048401526024830190620052af565b0391600435905af1928315620007de57879362004440575b5050604054169360046040518096819382525afa928315620003ca57859362004400575b508116911603620043aa575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d831162004438575b6200441b818362004e4e565b810103126200129e5762004430829162007dd1565b92906200439b565b503d6200440f565b6200444e9192935062004dc9565b62000715578490863862004377565b634e487b7160e01b600052601160045260246000fd5b9091508381813d8311620044aa575b6200448e818362004e4e565b810103126200129e57620044a29062007dd1565b903862004302565b503d62004482565b503462000357576020806003193601126200036557600435916001600160401b03918284116200036557366023850112156200036557836004013590620044f98262004eb3565b9162004509604051938462004e4e565b8083528183019560249687600593841b83010191368311620008525788859101915b838310620045b757505050508384905b8682166003811015620045ad5785511115620045985762004571879185681fffffffffffffffe085871b16880101519062007c66565b91168681146200458557600101906200453b565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b82358152918101918591016200452b565b5034620003575760403660031901126200035757600435620045e962004ecb565b803190620045f662005fb1565b50603e546001600160a01b03929062004612908416836200838b565b50505092905083603f541686813b15620003575786916004604051809481936316989f6f60e21b83525af180156200085f57620046d1575b5080620046699131946200465d62005fb1565b50603e5416906200838b565b5050509390508482039182116200086a570362004697576200043092620046909162007c66565b146200806b565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b95620046e262004669929762004dc9565b95906200464a565b50346200035757806003193601126200035757604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b858282106200475057505050620010bf9250038362004e4e565b85546001600160a01b031684526001958601958895509301920162004736565b5034620003575760031960203682011262000365576001600160401b0360043511620003655760c09060043536030112620003575760405190620047b48262004d75565b600435600401356001600160401b0381116200036557620047dd90600436918135010162004f25565b82526004356024810135602084015260448101356040840152620048049060640162004fe9565b6060830152608460043501356001600160401b0381116200036557366023826004350101121562000365576004818135010135620048428162004eb3565b9262004852604051948562004e4e565b81845260208401923660248460051b836004350101011162000365576024816004350101935b60248460051b836004350101018510620048b45760206200130188886080820152620048a960a46004350162005061565b60a08201526200623f565b84356001600160401b038111620003c65760606004358401820136036023190112620003c65760405190620048e98262004dad565b6004358401810160248101358352620049059060440162004f10565b60208301526001600160401b036064828660043501010135116200129e57602492602092839262004946903690600435890101606481013501870162005014565b6040820152815201950194905062004878565b905034620003655781600319360112620003655762004a5681620049856001600160401b039362004d91565b6001815260016200499e60209283368183013762005f03565b5260405190620049ae8262004d75565b620049b862005fb1565b825284818301528460408301528460a060609382858201528460808201520152604051620049e68162004e16565b85815260405190620049f88262004d91565b607b82528282015260405162004a0e8162004e16565b8681526040519162004a208362004d75565b8252600a838301526402540be40060408301526046848301526080820152606460a08201526001600160a01b039384916200623f565b168362004ad6620012fb6001600160601b0360a01b938085603e541617603e55808560405416176040558085603f541617603f55808560415416176041558085604254161760425580856043541617604355808560445416176044558085604554161760455580856047541617604755808560465416176046556200601e565b16908181602c541617602c558181602d541617602d558181602f541617602f5581816031541617603155818160305416176030558181603254161760325581816034541617603455603354161760335562004be962004b3462007c74565b62004b3e62005fb1565b50604051600360621b848201526014815262004bc59062004b5f8162004d91565b62004bb66040519162004b728362004dad565b600a83526001600160801b0387840160148152604085019283526040519b8c958a80880152511660408601525116888401525187608084015260a083019062005195565b03601f19810188528762004e4e565b6040519562004bd48762004d91565b60048752838701528695620001f48262005f03565b50606462004c0e60405162004bfe8162004d91565b6001815283368183013762005f03565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15620007155760405163c88a5e6d60e01b8152600c600482015260016024820152868160448183895af180156200085f5762004d5f575b50846040519262004c6f8462004d91565b438452830152833b156200129e576040516303223eab60e11b815260ff60981b6004820152858160248183895af18015620008b85791869391859362004d3f575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af18015620003eb5762004d1f575b5050803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b8162004d3992903d10620003955762000385818362004e4e565b62004ced565b62004d4f91935093919362004dc9565b6200129e57849183913862004cb0565b62004d6c91955062004dc9565b84933862004c5e565b60c081019081106001600160401b0382111762001b6457604052565b604081019081106001600160401b0382111762001b6457604052565b606081019081106001600160401b0382111762001b6457604052565b6001600160401b03811162001b6457604052565b60e081019081106001600160401b0382111762001b6457604052565b61018081019081106001600160401b0382111762001b6457604052565b602081019081106001600160401b0382111762001b6457604052565b608081019081106001600160401b0382111762001b6457604052565b90601f801991011681019081106001600160401b0382111762001b6457604052565b606435906001600160401b0382168203620006e357565b608435906001600160401b0382168203620006e357565b35906001600160401b0382168203620006e357565b6001600160401b03811162001b645760051b60200190565b602435906001600160a01b0382168203620006e357565b600435906001600160a01b0382168203620006e357565b604435906001600160a01b0382168203620006e357565b35906001600160a01b0382168203620006e357565b9190604083820312620006e3576040519262004f418462004d91565b8362004f4d8262004e9e565b815260209182810135906001600160401b038211620006e357019280601f85011215620006e357833562004f818162004eb3565b9462004f91604051968762004e4e565b818652848087019260051b820101928311620006e35784809101915b83831062004fbd57505050500152565b819062004fca8462004f10565b815201910190849062004fad565b60a4359060ff82168203620006e357565b359060ff82168203620006e357565b6001600160401b03811162001b6457601f01601f191660200190565b81601f82011215620006e3578035906200502e8262004ff8565b926200503e604051948562004e4e565b82845260208383010111620006e357816000926020809301838601378301015290565b359061ffff82168203620006e357565b90815180825260208080930193019160005b82811062005092575050505090565b83516001600160a01b03168552938101939281019260010162005083565b90815180825260208080930193019160005b828110620050d1575050505090565b83516001600160e01b03191685529381019392810192600101620050c2565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062005126575050505050505090565b9091929394959685806200515e600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620050b0565b99019401940192959493919062005114565b60005b838110620051845750506000910152565b818101518382015260200162005173565b90602091620051b08151809281855285808601910162005170565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310620051f15750505050505090565b909192939495848062005211600193603f198682030187528a5162005195565b9801930193019194939290620051e0565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062005261575050505090565b83516001600160a01b03168552938101939281019260010162005252565b9195949390926200529b60809460a0855260a085019062005222565b966020840152604083015260608201520152565b9060406020620052d19360ff8151168452015191816020820152019062005195565b90565b81601f82011215620006e357803591620052ee8362004eb3565b92620052fe604051948562004e4e565b808452602092838086019260051b820101928311620006e3578301905b8282106200532a575050505090565b81356001600160e01b031981168103620006e35781529083019083016200531b565b9190918083036101a08112620006e3576040516200536a8162004df9565b80948335906001600160401b038211620006e3576200538b91850162004f25565b81526200539b6020840162004f10565b602082015260408301356001811015620006e357604082015260608301356060820152620053cc6080840162004e9e565b6080820152620053df60a0840162004e9e565b60a0820152620053f260c0840162004fe9565b60c08201526200540560e0840162005061565b60e08201526101008084013590820152610120918284013560009381850b82036200129e57830152610140808501359060038210156200129e57830152604061015f1990910112620003655760405192620054608462004d91565b6101609283820135906002821015620003575750845262005485906101800162004f10565b60208401520152565b51908115158203620006e357565b6000805460081c60ff1615620054b6575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620054d857505090565b819250819060405182602082018381526519985a5b195960d21b604084015260408352620055068362004dad565b6200554260246040518093620055316020830197630667f9d760e41b89525180928585019062005170565b810103600481018452018262004e4e565b51925af1503d1562005592573d906200555b8262004ff8565b916200556b604051938462004e4e565b82523d81602084013e5b6020828051810103126200035757506020620052d191016200548e565b60609062005575565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b8160078201106200573757846200564097549383831062005716575b838310620056f5575b838310620056d4575b838310620056b3575b83831062005692575b83831062005674575b5082821062005657575b501062005642575b509050038362004e4e565b565b6001600160e01b031916815201803862005635565b83811b6001600160e01b031916855290930192600101846200562d565b84901b6001600160e01b031916855290930192600101843862005623565b606085901b6001600160e01b0319168652948101946001909201916200561a565b608085901b6001600160e01b03191686529481019460019092019162005611565b60a085901b6001600160e01b03191686529481019460019092019162005608565b60c085901b6001600160e01b031916865294810194600190920191620055ff565b60e085901b6001600160e01b031916865294810194600190920191620055f6565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620055da565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b816007820110620058485784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620057ea565b60409081519182602654918282526020908183019060266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35949460005b816007820110620059595784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620058fb565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062005a6a5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005a0c565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062005b7b5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005b1d565b60409081519182602a549182825260209081830190602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d29460005b81600782011062005c8c5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005c2e565b60409081519182602b549182825260209081830190602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f9460005b81600782011062005d9d5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005d3f565b906040918251809382549283835260209182840191600052826000209460005b81600782011062005e8f5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005e31565b80511562005f115760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005f115760400190565b80516002101562005f115760600190565b80516003101562005f115760800190565b80516004101562005f115760a00190565b80516006101562005f115760e00190565b80516007101562005f11576101000190565b80516008101562005f11576101200190565b80516005101562005f115760c00190565b6040519062005fc08262004d91565b6060602083600081520152565b6040519062005fdc8262004dad565b606060408360008152600060208201520152565b600182101562005ffd5752565b634e487b7160e01b600052602160045260246000fd5b6003111562005ffd57565b604080516200602d8162004df9565b6200603762005fb1565b8152600080602083015280838301528060608301528060808301528060a08301528060c08301528060e08301526101008181840152600c61012083818601526402540be4006101409385858801528751620060928162004d91565b8681528660208201526101608098015285620060ad62006130565b9880519a620060bc8c62004e16565b828c5281519b620060cd8d62004d91565b607b8d5260208d015281519b620060e48d62004df9565b8c526001600160a01b031660208c01528a0152670de0b6b3a764000060608a0152600160808a0152600a60a08a0152604660c08a0152606460e08a015288015286015284015282015290565b60006020604051620061428162004d91565b8281520152604051620061558162004d91565b600081526000602082015290565b6040519061010082018281106001600160401b0382111762001b6457604052600782528160005b60e0811062006197575050565b602090620061a462005fcd565b828285010152016200618a565b908082519081815260208091019281808460051b8301019501936000915b848310620061e05750505050505090565b90919293949584806200622e600193601f198682030187528a51858060a01b03815116825283810151620062148162006013565b8483015260408091015191606080928201520190620050b0565b9801930193019194939290620061cf565b906040516117848082018281106001600160401b0382111762001b645782916201746f833903906000f0801562002293576040516116598082018281106001600160401b0382111762001b645782916201b5b8833903906000f0801562002293576040516129c58082018281106001600160401b0382111762001b6457829162018bf3833903906000f09081156200229357604051612a728082018281106001600160401b0382111762001b64578291620149fd833903906000f0801562002293576040516126e78082018281106001600160401b0382111762001b645782916200ff50833903906000f0801562002293576040516122618082018281106001600160401b0382111762001b645782916200dcef833903906000f090811562002293576040516123c68082018281106001600160401b0382111762001b6457829162012637833903906000f09283156200229357604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f095861562002293576040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09586156200229357604051986101408a018a81106001600160401b0382111762001b645760405260098a5260005b6101208110620070d2575060405190620064358262004dad565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b8060078301106200705d57620064d994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620064e98a62005f03565b52620064f58962005f03565b5060405190620065058262004dad565b60018060a01b031681526000602082015260405180816020603654928381520160366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8926000905b80600783011062006fe857620065a994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620065b98962005f6b565b52620065c58862005f6b565b5060405190620065d58262004dad565b60018060a01b031681526000602082015260405180816020603754928381520160376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae926000905b80600783011062006f73576200667994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620066898862005f7c565b52620066958762005f7c565b5060405190620066a58262004dad565b60018060a01b031681526000602082015260405180816020603854928381520160386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199926000905b80600783011062006efe576200674994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620067598762005f8e565b52620067658662005f8e565b5060405190620067758262004dad565b60018060a01b031681526000602082015260405180816020603954928381520160396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3926000905b80600783011062006e89576200681994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620068298662005f27565b52620068358562005f27565b5060405190620068458262004dad565b60018060a01b031681526000602082015260405180816020603a549283815201603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e926000905b80600783011062006e1457620068e994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620068f98562005f38565b52620069058462005f38565b5060405190620069158262004dad565b60018060a01b031681526000602082015260405180816020603b549283815201603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d926000905b80600783011062006d9f57620069b994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620069c98462005f49565b52620069d58362005f49565b5060405190620069e58262004dad565b60018060a01b031681526000602082015260405180816020603d549283815201603d6000527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3926000905b80600783011062006d2a5762006a8994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262006a998362005f5a565b5262006aa58262005f5a565b506040519062006ab58262004dad565b60018060a01b031681526000602082015260405180816020603c549283815201603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e926000905b80600783011062006cb55762006b5994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262006b698262005fa0565b5262006b758162005fa0565b5060405190611b4d808301918383106001600160401b0384111762001b645762006bae916200862c8539604083526040830190620061b1565b90602081830391015262006bcc845160c0835260c083019062005222565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b84841062006c625750505050505060a061ffff8185969701511691015203906000f080156200229357603e80546001600160a01b0319166001600160a01b0392909216918217905590565b90919293949660208062006ca4600193601f198682030188528660408d5180518452878060a01b03868201511686850152015191816040820152019062005195565b990194019401929493919062006c17565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006b00565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006a30565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006960565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006890565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620067c0565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620066f0565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006620565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006550565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006480565b808b60208093620070e262005fcd565b92010152016200641b565b906200710290604083526040830190620061b1565b9060208183039101526200712082516101a080845283019062005222565b9160018060a01b038060208301511660208401526040820151600181101562005ffd576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b908401526101408083015190620071b88262006013565b8401526101608092015191825192600284101562005ffd576101809360209286015201511691015290565b6040516139428082018281106001600160401b0382111762001b645782916202106f833903906000f08015620022935760405161154f8082018281106001600160401b0382111762001b645782916201fb20833903906000f0801562002293576040516102308082018281106001600160401b0382111762001b64578291620249b1833903906000f0908115620022935760405161069b8082018281106001600160401b0382111762001b6457829162024be1833903906000f080156200229357604051612f0f8082018281106001600160401b0382111762001b645782916201cc11833903906000f090811562002293576040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09384156200229357604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f093841562002293576200734162006163565b9660405190620073518262004dad565b60018060a01b031681526000602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062007bf157620073f594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620074058862005f03565b52620074118762005f03565b5060405190620074218262004dad565b60018060a01b031681526000602082015260405180816020602454928381520160246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4926000905b80600783011062007b7c57620074c594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620074d58762005f27565b52620074e18662005f27565b5060405190620074f18262004dad565b60018060a01b031681526000602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062007b07576200759594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620075a58662005f38565b52620075b18562005f38565b5060405190620075c18262004dad565b60018060a01b031681526000602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062007a92576200766594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620076758562005f49565b52620076818462005f49565b5060405190620076918262004dad565b60018060a01b031681526000602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062007a1d576200773594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620077458462005f5a565b52620077518362005f5a565b5060405190620077618262004dad565b60018060a01b031681526000602082015260405180816020602a549283815201602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2926000905b806007830110620079a8576200780594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620078158362005fa0565b52620078218262005fa0565b5060405190620078318262004dad565b60018060a01b031681526000602082015260405180816020602b549283815201602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f926000905b8060078301106200793357620078d594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620078e58262005f6b565b52620078f18162005f6b565b50604051916114a490818401928484106001600160401b0385111762001b6457849362007924936200a1798639620070ed565b03906000f08015620022935790565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200787c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620077ac565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620076dc565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200760c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200753c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200746c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200739c565b919082018092116200445d57565b6040519062007c838262004d91565b600182528160005b6020908181101562007cb15760209162007ca462005fb1565b9082850101520162007c8b565b505050565b51906001600160a01b0382168203620006e357565b809291039160608312620006e357604062007ce6826200548e565b93601f190112620006e357604080519162007d018362004d91565b602081015183520151602082015290565b6001600160401b039062007d2562005fb1565b5062007db86040918251906001600160601b03199060601b1660208201526014815262007d528162004d91565b62007da983519162007d648362004dad565b600a83526001600160801b036020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a083019062005195565b03601f19810184528362004e4e565b519062007dc58262004d91565b60048252602082015290565b51906001600160401b0382168203620006e357565b9190604083820312620006e3576040519262007e028462004d91565b8362007e0e8262007dd1565b815260209182810151906001600160401b038211620006e357019280601f85011215620006e357835162007e428162004eb3565b9462007e52604051968762004e4e565b818652848087019260051b820101928311620006e35784809101915b83831062007e7e57505050500152565b819062007e8b8462007cb6565b815201910190849062007e6e565b90602082820312620006e35781516001600160401b038111620006e357620052d1920162007de6565b9062007edc60209194939460408452604084019062005222565b6001600160a01b03909416910152565b6040519062007efb8262004d91565b8162007f0662005fb1565b8152602062007f1462005fb1565b910152565b620052d191602062007f35835160408452604084019062005222565b920151906020818403910152620052af565b906020808351936040845260c062007fd362007f71875160e0604089015261012088019062007f19565b62007f8e8589015191603f1992838a83030160608b015262007f19565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015262005195565b9501516101008501520151151591015290565b1562007fee57565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b156200802e57565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b156200807357565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e357829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562008381579088949392916200836a575b50620081088591846200838b565b9b93969298919a90508554168551938480926394074b0360e01b82525afa9182156200836057839262008340575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b908184528884806200817660209b8c8095840152602483019062005222565b0381865af493841562008336579086918295620082fa575b50875163aa5106cb60e01b8152949585918291620081b091908d840162007ec2565b0381855af4928315620082f05791620081e9939188938793620082d0575b5087518095819482938352868d840152602483019062005222565b03915af4928315620082c5579262008290575b50036200821d575050509162002c0662002c0d92620056409594146200806b565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d8311620082bd575b620082ab818362004e4e565b81010312620006e357519038620081fc565b503d6200829f565b8451903d90823e3d90fd5b620082e89193503d8089833e62002ff0818362004e4e565b9138620081ce565b86513d87823e3d90fd5b89809296508193503d83116200832e575b62008317818362004e4e565b81010312620006e35751928590620081b06200818e565b503d6200830b565b87513d88823e3d90fd5b620083589192503d8085833e62002ff0818362004e4e565b903862008136565b84513d85823e3d90fd5b946200837a620081089662004dc9565b94620080fa565b83513d87823e3d90fd5b906200839662005fb1565b50603f80546001600160a01b039283166001600160a01b03199182168117909255604080549091168217815580516394074b0360e01b815290936000928390839060049082905afa9182156200862157928092916200842a94829362008601575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162007ec2565b0381845af4928315620085d4578293620085de575b5062008470929385541693855180926390ba52cf60e01b825281806020978895866004840152602483019062005222565b03915af4908115620085d45790829182916200859d575b50602486518096819363017187cd60e11b835260048301525afa92831562008591578193620084de575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e620084f3818362004e4e565b8101918382840312620003575781516001600160401b0392838211620003f657019060c08285031262000357578551946200852e8662004d75565b8251865280830151908601528582015186860152620085506060830162007dd1565b6060860152620085636080830162007dd1565b608086015260a08201519283116200035757506200858392910162007de6565b60a0820152388080620084b1565b508351903d90823e3d90fd5b809250848092503d8311620085cc575b620085b9818362004e4e565b8101031262000365578190513862008487565b503d620085ad565b85513d84823e3d90fd5b620084709350620085fa903d8085833e62002ff0818362004e4e565b926200843f565b620086199193503d8084833e62002ff0818362004e4e565b9138620083f7565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd26080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c634300081300336080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c634300081300336080806040523461001657612245908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c6343000813003360808060405234610016576126cb908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c6343000813003360808060405234610016576123aa908161001c8239f35b600080fdfe608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c634300081300336080806040523461001657612a56908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220c4d6de27f1233bb2baddb6170a0e148c0cd1cbad72a5f55f9b520ca9f859118f64736f6c634300081300336080806040523461001657611768908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220dfde9bd283f04b3e3a7a27bf2503b849d602efb13f7bbc32d0ef932af181aa8264736f6c6343000813003360808060405234610016576129a9908161001c8239f35b600080fdfe604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611980565b61140d60219182546114e7565b90556111a9565b92500155611980565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cd2565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386126f2565b60019283825260258652828a832054168861155282611ed1565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611e66565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612745565b926115d487611ed1565b935b818682161161161a575b505097516001600160a01b0390951685525050505060208101919091529091506000805160206129548339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611ed1565b1015611652579061164b8392826128a4565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc956027916116936122cc565b8352522054166116d0575b6116a78461225d565b6116b083611e66565b516001600160a01b03928316815292909116602083015281906040820190565b6116d984612087565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c8361225d565b97929150611723859497969561270e565b9761172d85611ed1565b976117378a6121ee565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611e53565b906126a2565b9b909b5b8b111561178757611779908c61280b565b6117828b6121ee565b61173e565b505093516001600160a01b039095168552505050506020810191909152909250600080516020612934833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611ed1565b611768565b505050505050506115bc9192939550600080516020612934833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff9391841661194e578360205460081c1684602354161061191c576118476126f2565b60018352602560205286832054168561185f82611ed1565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611e66565b6115bc6000805160206129548339815191529361159c6118c284612745565b6118cb85611ed1565b90612199565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc946119056122cc565b815260276020522054166116d0576116a78461225d565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c8361225d565b505050506115bc6000805160206129348339815191529361159c6119718461270e565b61197a85611ed1565b9061260f565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611ba8578082526024835287868320541615611b97578415611aef57506119cd8361270e565b976119d784611ed1565b985b6001808a83161115611ae05781617fff911c1690818452602585528a611a03848a87205416611ed1565b1115611a1857611a13908261280b565b6119d9565b505091939597509193955b6026541615611ad857611a346126f2565b600182526025835285818184205416926028611a4f85611ed1565b95611a58612700565b600183525220541691611a6a83611ed1565b11611a9f57505091516001600160a01b03909216825260208201526000805160206129348339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad06122cc565b61169e611f20565b505050505050565b50509193959750919395611a23565b829450611b237f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799612415565b8651908152a160265416611b375750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b65612700565b6001835252205416611b8b611b7982611ed1565b92611b82611f20565b61159c8361225d565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611c97575061fffe9193611bc586612745565b93611bcf87611ed1565b9480966001958692831b168160265416925b611c23575b505099516001600160a01b0390971687525050505060208301939093525091925060008051602061295483398151915291905080604081016115bc565b818116838111611c91578d9084811015611c7557505080611c46611c4c92611e53565b90612205565b9890985b881015611c7057611c6190896128a4565b611c6a886121ee565b86611be1565b611be6565b865260288552852054909890611c8c908716611ed1565b611c50565b50611be6565b94915050611ccb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250612087565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d75578084526024855281888520541615611d64578615611d335750611a23611d248661270e565b611d2d87611ed1565b906125c0565b849193979650611b237f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93966124a0565b8751632a55ca5360e01b8152600490fd5b8698979894939492919215611c97575061fffe9193611d9386612745565b93611d9d87611ed1565b9480966001958692831b168160265416925b611df057505099516001600160a01b0390971687525050505060208301939093525091925060008051602061295483398151915291905080604081016115bc565b818116838111611c91578d9084811015611e3757505080611c46611e1392611e53565b9890985b881015611c7057611e2890896128a4565b611e31886121ee565b86611daf565b865260288552852054909890611e4e908716611ed1565b611e17565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e7e8360265416611e53565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611f02576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff80602654169081156120755790600190611f3f818311156127ee565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611fd991908a611fca83610e27565b1690602654161760265561276a565b848252808652611fed848484205416611ed1565b95859860028160265416995b61200b575b5050505050505050505050565b8181168a811161206f578a811015612054575080611c4661202b92611e53565b9a909a5b89101561204f57612040908b6128a4565b6120498a6121ee565b87611ff9565b611ffe565b859b919b5283835261206a878787205416611ed1565b61202f565b50611ffe565b6040516340d9b01160e01b8152600490fd5b61209090612745565b61ffff908160265416916120a483836128a4565b806120ae84610e27565b1661ffff1960265416176026556120c48361276a565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b03926040926121046120fe868686205416611ed1565b87612199565b8252808652612117848484205416611ed1565b9585986001988997881b168160265416995b61213a575050505050505050505050565b8181168a811161206f578a81101561217e575080611c4661215a92611e53565b9a909a5b89101561204f5761216f908b6128a4565b6121788a6121ee565b87612129565b859b919b52838352612194878787205416611ed1565b61215e565b9190915b60018061ffff831611156121e85781617fff911c1690836121d360008481526028602052604060018060a01b0391205416611ed1565b10156121e8576121e390826128a4565b61219d565b50509050565b60011b906201fffe61fffe83169216820361021e57565b91909161ffff92838216600052602860205261224860018060a01b036122318160406000205416611ed1565b958316600052602860205260406000205416611ed1565b908185106122565750509190565b9350919050565b6102ed90611d2d61ffff916122758360235416611e53565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611ed1565b61ffff806023541690811561207557906001906122eb818311156127ee565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161238591908a61237683610e27565b169060235416176023556127ac565b848252808652612399848484205416611ed1565b95859860028160235416995b6123b6575050505050505050505050565b8181168a811161206f578a8110156123fa57508061175e6123d692611e53565b9a909a5b89111561204f576123eb908b61280b565b6123f48a6121ee565b876123a5565b859b919b52838352612410878787205416611ed1565b6123da565b61241e9061270e565b61ffff90816023541691612432838361280b565b8061243c84610e27565b1661ffff196023541617602355612452836127ac565b81168092146107495761197a826102ed93600052602560205260018060a01b039061248c6124868360406000205416611ed1565b856125c0565b600052602560205260406000205416611ed1565b6124a99061270e565b9061ffff908160235416906124be828561280b565b826124c883610e27565b1661ffff1960235416176023556124de826127ac565b8284168092146125ba5760009291929183835260259260209484865260018060a01b039160409161251c612516858585205416611ed1565b8a6125c0565b815285875261252f838383205416611ed1565b95612539896121ee565b978560235416985b8681168a81116125ac578a81101561259157508061175e61256192611e53565b9a909a5b89111561258457612576908b61280b565b61257f8a6121ee565b612541565b5050505050505092505050565b849b919b528282526125a7868686205416611ed1565b612565565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156121e85781617fff911c1690836125fa60008481526025602052604060018060a01b0391205416611ed1565b11156121e85761260a908261280b565b6125c4565b91612619836121ee565b600061ffff918260235416905b838116828111612698578281101561267257508061175e61264692611e53565b9690965b8611156126695761265b908761280b565b612664866121ee565b612626565b50505050915050565b835260256020526040832054909690612693906001600160a01b0316611ed1565b61264a565b5050505050915050565b919061ffff80841660005260256020526126e360018060a01b036126cc8160406000205416611ed1565b928416600052602560205260406000205416611ed1565b93848211156122565750509190565b61ffff602354161561207557565b61ffff602654161561207557565b6001600160a01b031660009081526024602052604090205461ffff1690811561273357565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff1690811561273357565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156127f557565b634e487b7160e01b600052600160045260246000fd5b61283061ffff808060235416931693612826848611156127ee565b16918211156127ee565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b6128bf61ffff808060265416931693612826848611156127ee565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033608080604052346100165761163d908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c634300081300336080806040523461001657612ef3908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c908163268119361461051957508063b9ee2bb9146100c45763cc2dc2b91461004257600080fd5b346100c15760603660031901126100c1576001600160401b036004358181116100bd57366023820112156100bd5761008490369060248160040135910161080d565b6044359182116100bd57366023830112156100bd576100b06100ba92369060248160040135910161087e565b9060243590612b18565b80f35b8280fd5b80fd5b50346100c157600319606036820112610365576001600160401b03600435116103655760806004356004019160043536030112610365576024356001600160401b0381116100bd5761011a903690600401610748565b91906044356001600160401b0381116105155761013b903690600401610748565b9160ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f86354166105035760055494600b54956101778782610926565b602460043501351415806104f3575b6104e157604051906101be60208301836101a08a83610a15565b03936101b4601f19958681018352826107c1565b5190209882610926565b60043560240135036103de575050916101e16101e9926101ef969794369161080d565b93369161087e565b91612b18565b60246004350135825281602052604082209080356042196004353603018112156103da576004350191600483016001600160401b0361022d82610a66565b16936001600160401b031994858454161783556102536001926024848601930190610a7a565b91906001600160401b0383116103c657600160401b83116103c65781548383558084106103ab575b509087959493929190865260208620865b838110610374575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b036102c886610a66565b169082541617905560246004350135825260226020526102ec604083203390610ac6565b5060043560240135600555600e546001600160a01b0316803b156100bd576040516347dc9b4f60e01b8152918391839182908490829061032f9060048301610a15565b03925af1801561036957610351575b505061034c6100ba91610a66565b610d6e565b61035a906107ae565b61036557813861033e565b5080fd5b6040513d84823e3d90fd5b909180939495969750359060018060a01b03821682036103a757602086929401938184015501908896959493929161028c565b8980fd5b828952602089206103c0918101908501610aaf565b3861027b565b634e487b7160e01b88526041600452602488fd5b8380fd5b9450945050505060246004350135146103f657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b8781106104c0575050506002810154606084015260038101546080840152600401546001600160401b031660a08301520390810183526104959150826107c1565b519020146104a05780f35b60246004350135815260226020526104bc604082203390610ac6565b5080f35b82546001600160a01b03168552889550602090940193918101918101610454565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610186565b60405163d93c066560e01b8152600490fd5b8480fd5b90503461036557600319906060368301126100bd57600435916001600160401b039081841161051557606084600401918536030112610515576024358281116107445761056a903690600401610748565b9260443581811161074057610583903690600401610748565b92909160248801359760065497888a106107315750604401906105a68287610a7a565b9190506009541680911161071f576105be8287610a7a565b90501415806106f8575b6106e6576105d69085610a7a565b9050156106d45787946040516020810190610603816105f58985612996565b03601f1981018352826107c1565b519020968803610634575050505050506007541461061f575080f35b815260236020526104bc604082203390610ac6565b61064e93926101e1889698936101e9939a989a369161080d565b80602060405161065d8161077d565b8481520152816006556007558252602360205261067e604083203390610ac6565b50600e546001600160a01b031690813b156106d05782916106b591604051948580948193630bed761560e01b835260048301612996565b03925af18015610369576106c7575080f35b6100ba906107ae565b5050fd5b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b50600854801561070b57880615156105c8565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b63200c52f760e21b8152600490fd5b8780fd5b8580fd5b9181601f84011215610778578235916001600160401b038311610778576020808501948460051b01011161077857565b600080fd5b604081019081106001600160401b0382111761079857604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161079857604052565b90601f801991011681019081106001600160401b0382111761079857604052565b6001600160401b0381116107985760051b60200190565b35906001600160a01b038216820361077857565b9291610818826107e2565b9161082660405193846107c1565b829481845260208094019160051b810192831161077857905b82821061084c5750505050565b838091610858846107f9565b81520191019061083f565b6001600160401b03811161079857601f01601f191660200190565b9291909261088b846107e2565b9160409461089b865194856107c1565b839581855260208095019160051b8401938385116107785780925b8584106108c65750505050505050565b83356001600160401b03811161077857820185601f82011215610778578035916108ef83610863565b6108fb865191826107c1565b838152878a85850101116107785760008a8581968280970183860137830101528152019301926108b6565b9190820180921161093357565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215610778570190565b35906001600160401b038216820361077857565b9035601e19823603018112156107785701602081359101916001600160401b038211610778578160051b3603831361077857565b60408201916001600160401b036109bb8361095d565b16815260606109cf60209384810190610971565b839195604086839601525201929160005b8281106109ee575050505090565b909192938280600192838060a01b03610a06896107f9565b168152019501939291016109e0565b6020815260806001600160401b03610a5f6060610a45610a358780610949565b85602088015260a08701906109a5565b95602081013560408701526040810135828701520161095d565b1691015290565b356001600160401b03811681036107785790565b903590601e198136030182121561077857018035906001600160401b03821161077857602001918160051b3603831361077857565b818110610aba575050565b60008155600101610aaf565b91906001830160009082825280602052604082205415600014610b4557845494600160401b861015610b315760018601808255861015610b1d57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60041115610b5557565b634e487b7160e01b600052602160045260246000fd5b90600182811c92168015610b9b575b6020831014610b8557565b634e487b7160e01b600052602260045260246000fd5b91607f1691610b7a565b9060405191826000825492610bb984610b6b565b908184526001948581169081600014610c285750600114610be5575b5050610be3925003836107c1565b565b9093915060005260209081600020936000915b818310610c10575050610be393508201013880610bd5565b85548884018501529485019487945091830191610bf8565b915050610be394506020925060ff191682840152151560051b8201013880610bd5565b9190601f8111610c5a57505050565b610be3926000526020600020906020601f840160051c83019310610c86575b601f0160051c0190610aaf565b9091508190610c79565b90808214610d6a57610ca28154610b6b565b906001600160401b038211610798578190610cc782610cc18654610b6b565b86610c4b565b600090601f8311600114610cfe57600092610cf3575b50508160011b916000199060031b1c1916179055565b015490503880610cdd565b81526020808220858352818320935090601f1985169083905b828210610d51575050908460019594939210610d38575b505050811b019055565b015460001960f88460031b161c19169055388080610d2e565b8495819295850154815560018091019601940190610d17565b5050565b601c54906001600160401b039081168183168110610d985760405163040aaa0560e11b8152600490fd5b818360401c1681106113215781604093841c165b818382161115610e14575060018101918211610933577f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf639260209267ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b82610e32826001600160401b0316600052601d602052604060002090565b9160018060a01b03806002850154169060ff855416610e5081610b4b565b60028103610ec35750506003610e816001610e87949596019260018060a01b03166000526015602052604060002090565b01610c90565b610ea4816001600160401b0316600052601d602052604060002090565b9060008083556002600193610eba85820161138a565b01550116610dac565b909350610ecf81610b4b565b600393818503611064575050610ee86001809501610ba5565b9081518201936020928981858801970312610778578381015189811161077857810186603f82011215610778578481015190610f2382610863565b97610f308d51998a6107c1565b8289528c8383010111610778578b9291869160005b82811061104d575050906000918901015201519281610f768460018060a01b03166000526015602052604060002090565b01918651918a8311610798578a97610f9884610f928754610b6b565b87610c4b565b81601f8511600114610fdc5750610fcc9798998493928492600095610fd1575b50501b92600019911b1c1916179055611339565b610e87565b015193503880610fb8565b91601f9a9493919a1984168660005283600020936000905b8282106110335750509a84610fcc9a9b9c10611019575b50505050811b019055611339565b01519060f884600019921b161c191690553880808061100b565b838e015186558f9c50948701949283019290810190610ff4565b818101909501518a86018401528d94889301610f45565b91909294936110766001809601610ba5565b602081805181010312610778576020869101519461109381610b4b565b036112855761112c906110c485876110bd8660018060a01b03166000526015602052604060002090565b015461137d565b9060026110e38560018060a01b03166000526015602052604060002090565b01548215908161127c575b5015611259576001600160a01b038416600090815260156020526040902061112691906000808255808a83015560028201550161138a565b82611869565b601461113984825461137d565b9055611147601e5443610926565b88516111528161077d565b81815260208101858152600096848852601f6020528b88209283549161ffff93838580951694859160101c16018581116112455785168b528582016020528e8b2092518355519101557f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63946060949093909290916111cf90611326565b1661ffff198254161790558a519182528560208301528a820152a1600e541690813b156100bd57829160248392895195869384926345f5448560e01b845260048401525af190811561123a57509084929161122b575b50610e87565b611234906107ae565b38611225565b8651903d90823e3d90fd5b634e487b7160e01b8c52601160045260248cfd5b506001600160a01b03831660009081526015602052604090208190870155611126565b905015386110ee565b5092836112b584836112ae6112e796979860018060a01b03166000526015602052604060002090565b0154610926565b6001600160a01b038216600090815260156020526040902090928391015560146112e0868254610926565b90556113d3565b600e541690813b15610778578551916316989f6f60e21b83528260048160009485945af190811561123a57509084929161122b5750610e87565b505050565b90600161ffff8093160191821161093357565b9060018060a01b03821660005260156020526040600020818154915581811460001461136457505050565b81111561137457610be3916116e3565b610be391611bbc565b9190820391821161093357565b6113948154610b6b565b908161139e575050565b81601f600093116001146113b0575055565b9080839182526113cf601f60208420940160051c840160018501610aaf565b5555565b919060018060a01b03928381166000948186526020916017835261ffff916040978389822054166115f2578360135460081c168460165416106115be5761141861269a565b60019283825260188652828a832054168861143282611d39565b1061153857508152601a85528389822054166114a157505050505061149c7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461147c83611cc9565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6114aa866126ed565b926114b487611d39565b935b81868216116114fa575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612e9e83398151915290806040810161149c565b808561151986617fff8f95871c1694858852601b8c5287205416611d39565b1015611532579061152b83928261284c565b90506114b6565b506114c0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061149c95601a91611573612274565b8352522054166115b0575b61158784612200565b61159083611cc9565b516001600160a01b03928316815292909116602083015281906040820190565b6115b984611f03565b61157e565b505050505061149c7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461147c83612200565b9792915061160385949796956126b6565b9761160d85611d39565b976116178a6120f5565b8460165416905b8581168281116116be57828110156116a257508061163e61164492611326565b9061264a565b9b909b5b8b111561166757611659908c6127b3565b6116628b6120f5565b61161e565b505093516001600160a01b039095168552505050506020810191909152909250600080516020612e7e8339815191529150806040810161149c565b849c919c52601883526116b9858886205416611d39565b611648565b5050505050505061149c9192939550600080516020612e7e833981519152945061147c565b6001600160a01b03808216600081815260176020526040808220549095949361ffff93918416611837578360135460081c168460165416106118055761172761269a565b60018352601860205286832054168561173f82611d39565b106117b157508152601a60205284902054166117835761149c7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361147c83611cc9565b61149c600080516020612e9e8339815191529361147c6117a2846126ed565b6117ab85611d39565b906120a0565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261149c946117e5612274565b8152601a6020522054166117fc5761158784612200565b6115b984611f8e565b5050505061149c7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361147c83612200565b5050505061149c600080516020612e7e8339815191529361147c61185a846126b6565b61186385611d39565b906125b7565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416611a92578082526017835287868320541615611a815784156119d857506118b6836126b6565b976118c084611d39565b985b6001808a831611156119c95781617fff911c1690818452601885528a6118ec848a87205416611d39565b1115611901576118fc90826127b3565b6118c2565b505091939597509193955b60195416156119c15761191d61269a565b60018252601883528581818420541692601b61193885611d39565b956119416126a8565b60018352522054169161195383611d39565b1161198857505091516001600160a01b0390921682526020820152600080516020612e7e83398151915290806040810161149c565b9150915061149c7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75936119b9612274565b61157e611d9c565b505050505050565b5050919395975091939561190c565b829450611a0c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996123bd565b8651908152a160195416611a21575b50505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492611a4f6126a8565b6001835252205416611a75611a6382611d39565b92611a6c611d9c565b61147c83612200565b0390a138808080611a1b565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611b81575061fffe9193611aaf866126ed565b93611ab987611d39565b9480966001958692831b168160195416925b611b0d575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612e9e833981519152919050806040810161149c565b818116838111611b7b578d9084811015611b5f57505080611b30611b3692611326565b906121a8565b9890985b881015611b5a57611b4b908961284c565b611b54886120f5565b86611acb565b611ad0565b8652601b8552852054909890611b76908716611d39565b611b3a565b50611ad0565b94915050611bb59194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250611f03565b51908152a1565b6001600160a01b038082166000818152601a602090815260408083205490969594919361ffff918216611c5f578084526017855281888520541615611c4e578615611c1d575061190c611c0e866126b6565b611c1787611d39565b90612568565b849193979650611a0c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396612448565b8751632a55ca5360e01b8152600490fd5b9693925050508315611c9c5750600080516020612e9e833981519152935061149c9061147c611c8d846126ed565b611c9685611d39565b9061210c565b9250611bb57f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9492611f8e565b610be3906117ab61ffff91611ce18360195416611326565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906bffffffffffffffffffffffff60a01b82541617905560195416176019555b60ff601354166003811015610b5557600103611d6a576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff908116600019019190821161093357565b61ffff8060195416908115611ef15790600190611dbb81831115612796565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611e5591908a611e4683611d88565b16906019541617601955612712565b848252808652611e69848484205416611d39565b95859860028160195416995b611e87575b5050505050505050505050565b8181168a8111611eeb578a811015611ed0575080611b30611ea792611326565b9a909a5b891015611ecb57611ebc908b61284c565b611ec58a6120f5565b87611e75565b611e7a565b859b919b52838352611ee6878787205416611d39565b611eab565b50611e7a565b6040516340d9b01160e01b8152600490fd5b611f0c906126ed565b61ffff90816019541691611f20838361284c565b80611f2a84611d88565b1661ffff196019541617601955611f4083612712565b8116809214610d6a57611c9682610be393600052601b60205260018060a01b0390611f7a611f748360406000205416611d39565b856120a0565b600052601b60205260406000205416611d39565b611f97906126ed565b61ffff90816019541691611fab838361284c565b80611fb584611d88565b1661ffff196019541617601955611fcb83612712565b808216809314611321579161fffe91600091808352601b9060209382855260018060a01b039260409261200b612005868686205416611d39565b876120a0565b825280865261201e848484205416611d39565b9585986001988997881b168160195416995b612041575050505050505050505050565b8181168a8111611eeb578a811015612085575080611b3061206192611326565b9a909a5b891015611ecb57612076908b61284c565b61207f8a6120f5565b87612030565b859b919b5283835261209b878787205416611d39565b612065565b9190915b60018061ffff831611156120ef5781617fff911c1690836120da6000848152601b602052604060018060a01b0391205416611d39565b10156120ef576120ea908261284c565b6120a4565b50509050565b60011b906201fffe61fffe83169216820361093357565b90600161fffe83821b168160009161ffff908160195416925b612133575b50505050505050565b8181168381116121a2578381101561217c575080611b3061215392611326565b9690965b86101561217757612168908761284c565b612171866120f5565b84612125565b61212a565b8452601b602052604084205490969061219d906001600160a01b0316611d39565b612157565b5061212a565b91909161ffff92838216600052601b6020526121eb60018060a01b036121d48160406000205416611d39565b958316600052601b60205260406000205416611d39565b908185106121f95750509190565b9350919050565b610be390611c1761ffff916122188360165416611326565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906bffffffffffffffffffffffff60a01b8254161790556016541617601655611d39565b61ffff8060165416908115611ef1579060019061229381831115612796565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161232d91908a61231e83611d88565b16906016541617601655612754565b848252808652612341848484205416611d39565b95859860028160165416995b61235e575050505050505050505050565b8181168a8111611eeb578a8110156123a257508061163e61237e92611326565b9a909a5b891115611ecb57612393908b6127b3565b61239c8a6120f5565b8761234d565b859b919b528383526123b8878787205416611d39565b612382565b6123c6906126b6565b61ffff908160165416916123da83836127b3565b806123e484611d88565b1661ffff1960165416176016556123fa83612754565b8116809214610d6a5761186382610be393600052601860205260018060a01b039061243461242e8360406000205416611d39565b85612568565b600052601860205260406000205416611d39565b612451906126b6565b9061ffff9081601654169061246682856127b3565b8261247083611d88565b1661ffff19601654161760165561248682612754565b8284168092146125625760009291929183835260189260209484865260018060a01b03916040916124c46124be858585205416611d39565b8a612568565b81528587526124d7838383205416611d39565b956124e1896120f5565b978560165416985b8681168a8111612554578a81101561253957508061163e61250992611326565b9a909a5b89111561252c5761251e908b6127b3565b6125278a6120f5565b6124e9565b5050505050505092505050565b849b919b5282825261254f868686205416611d39565b61250d565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156120ef5781617fff911c1690836125a260008481526018602052604060018060a01b0391205416611d39565b11156120ef576125b290826127b3565b61256c565b916125c1836120f5565b600061ffff918260165416905b838116828111612640578281101561261a57508061163e6125ee92611326565b9690965b8611156126115761260390876127b3565b61260c866120f5565b6125ce565b50505050915050565b83526018602052604083205490969061263b906001600160a01b0316611d39565b6125f2565b5050505050915050565b919061ffff808416600052601860205261268b60018060a01b036126748160406000205416611d39565b928416600052601860205260406000205416611d39565b93848211156121f95750509190565b61ffff6016541615611ef157565b61ffff6019541615611ef157565b6001600160a01b031660009081526017602052604090205461ffff169081156126db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156126db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561279d57565b634e487b7160e01b600052600160045260246000fd5b6127d861ffff8080601654169316936127ce84861115612796565b1691821115612796565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61286761ffff8080601954169316936127ce84861115612796565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156107785701602081359101916001600160401b03821161077857813603831361077857565b908060209392818452848401376000828201840152601f01601f1916010190565b61295661294b61293d8380610949565b6040855260408501906109a5565b916020810190610949565b91602081830391015281359160ff83168093036107785761298360409161299394845260208101906128db565b919092816020820152019161290c565b90565b60208082526129a58380610949565b60609182818501526129bc608092838601906109a5565b6129d3604096838101358888015287810190610971565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710612a0e57505050505050505050505090565b909192939495969798999a82828203018752612a2a8c85610949565b90813560de1983360301811215610778578782528201918a90888e6001600160401b03612aa1612a91612a7e612a75612a638b80610949565b60e080988c01526101208b019061292d565b978a018a610949565b96603f1997888a830301868b015261292d565b928d8901358d890152880161095d565b169060a091828701528a8701359263ffffffff60e01b8416809403610778578f95612ad8612ae89460c096878b01528a018a6128db565b929091898503019089015261290c565b940135610100840152013590811515809203610778578a01529a88019998979660010195870194939291906129f9565b91825191612b25836107e2565b93604094612b35865191826107c1565b848152601f19612b44866107e2565b0194602095368784013760005b818110612c1b57505060009461ffff8060165416600192839182945b612bca575b505050505060ff600e5460a01c1694858102958187041490151715610933576064612b9e950491612cbc565b9015612ba8575050565b6006811015610b555760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111612c135760009081526018855220548493929186918591612c0991612c03906001600160a01b0316611d39565b90610926565b9b01169493612b6d565b505098612b72565b6001600160a01b0380612c2e8387612c92565b51166000526017885261ffff89600020541615612c6e5790612c5d600192612c568388612c92565b5116611d39565b612c678286612c92565b5201612b51565b8890612c7c60249387612c92565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015612ca65760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b84519294600094908415612da45782518514801590612d99575b612d8c579392919085945b848610612d04575050505050501015612cfc57600090600590565b600190600090565b909192939495612d1e612d178884612c92565b5184612db1565b50612d2881610b4b565b612d7b576001600160a01b0380612d3f8a88612c92565b5116911603612d6b57612d5f600191612d588988612c92565b5190610926565b96019493929190612ce1565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415612cd6565b5050505050905090600290565b8151919060418303612de257612ddb92506020820151906060604084015193015160001a90612ded565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612e7157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15612e655780516001600160a01b03811615612e5c57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda264697066735822122038238f2d99ddb501fea49d87c0dcec952359bebfb7ce7e8d76de0f495aadd34564736f6c634300081300336080806040523461001657611533908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c634300081300336080806040523461001657613926908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014610ec55750806310fd426114610d4c5780632e17de7814610d1f5780633a4b66f114610c4357806341c0e1b514610b905780636170b1621461084d57806366783c9b1461075a578063d66d9e19146106eb5763da5d09ee1461008457600080fd5b346104ed5760603660031901126104ed576004356001600160401b0381116106e7576100b490369060040161104d565b6024356001600160401b0381116106e3576100d390369060040161104d565b9190926044356001600160401b0381116106df576100f590369060040161104d565b90926100ff6121ce565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036106cd5760ff6013541660038110156106b95760010361068957818103610677578481036106775760125460081c60ff161561043457865b818110610175575050505050505080f35b61018961018382888a61133a565b90612171565b6001600160a01b036101a461019f84868961137b565b61138b565b166001600160a01b0390911603610422576101c361019f82848761137b565b9061020f6101d282898b61133a565b6101e084888b95949561137b565b356101fb6040519485936040602086015260608501916121ad565b90604083015203601f198101835282610fd5565b6001600160401b03601c54169060405161022881610f9f565b6003815281602082015260018060a01b038516604082015282600052601d60205260406000208151600481101561040c5760ff8019835416911617815560208201518051906001600160401b0382116103f6576102958261028c600186015461139f565b600186016113f0565b602090601f831160011461038357600293929160009183610378575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03600183011161036257600193826001600160401b03866000805160206138918339815191529501166001600160401b0319601c541617601c5561035360405193849360038552888060a01b0316602085015260808060408601528401906112fa565b9060608301520390a101610164565b634e487b7160e01b600052601160045260246000fd5b0151905038806102b1565b906001840160005260206000209160005b601f19851681106103de575091839160019360029695601f198116106103c5575b505050811b0160018201556102c9565b015160001960f88460031b161c191690553880806103b5565b91926020600181928685015181550194019201610394565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b604051634be9251d60e11b8152600490fd5b94909391865b868110610511575050505050506001600160401b03600c541610156104ff5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061049681611641565b0390a1600e5460025482916001600160a01b0316803b156104fb578290602460405180948193637903ab2760e11b83528160048401525af180156104f0576104dd57505080f35b6104e690610f8c565b6104ed5780f35b80fd5b6040513d84823e3d90fd5b5050fd5b60405163031480b160e51b8152600490fd5b61051f61018382868661133a565b6001600160a01b0361053561019f848b8761137b565b166001600160a01b03909116036104225761055461019f82898561137b565b600060ff6013541660038110156106635760010361064457506001600160a01b03166000908152601560205260409020545b61063257806105af61059e61019f6001948b8761137b565b6105a983888861133a565b91612076565b6105d26105c061019f838b8761137b565b6105cb838a8a61137b565b359061173d565b61062c6105e361019f838b8761137b565b6106226105f1848b8b61137b565b35916105fe858a8a61133a565b90916040519461060d86610f9f565b8552878060a01b031660208501523691611011565b6040820152611437565b0161043a565b604051630472b35360e41b8152600490fd5b6001600160a01b03909116815260156020526040902060010154610586565b634e487b7160e01b82526021600452602482fd5b604051637e65935960e01b8152600490fd5b6106b561069461127d565b60405163015538b160e01b81526020600482015291829160248301906112fa565b0390fd5b634e487b7160e01b88526021600452602488fd5b6040516330cd747160e01b8152600490fd5b8580fd5b8380fd5b5080fd5b50346104ed57806003193601126104ed577f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095600181541461074857806001839255610734612dab565b61073c6121ce565b610744613647565b5580f35b6040516329f745a760e01b8152600490fd5b50346104ed5760203660031901126104ed576004357f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009560018154146107485760018155811561083b5760ff60125460081c16610829573383526003602052816040842054106108175761074483923384526003602052604084206107df82825461110e565b90556107ed8160025461110e565b6002553384526003602052604084205415610809575b3361111b565b61081233611195565b610803565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b506020806003193601126106e7576001600160401b03906004358281116106e357366023820112156106e357806004013590838211610b8c5760248101906024833692010111610b8c576001937f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959385855414610748578585556108cf612dab565b6108d76121ce565b60ff60125460081c169586610b7f575b3415610b6d5733600090815260156020526040902060020154610af95760418503610ae7576001600160a01b039033826109218888612171565b160361042257889761094e57505050509061093c9133612076565b6109463433612de8565b6107446131a9565b90919294939650610960368589611011565b85601c54169260405161097281610f9f565b60028152858101928352604081019233845285600052601d875260406000209151600481101561040c5760ff8019845416911617825584820190518051908a82116103f6576109cb826109c5855461139f565b856113f0565b8890601f8311600114610a7f5760029493929160009183610a74575b5050600019600383901b1c191690871b1790555b019151166001600160601b0360a01b825416179055810184811161036257879660008051602061389183398151915295610a6192166001600160401b0319601c541617601c556040519485946002865233908601526080604086015260808501916121ad565b9060608301520390a16107443433612f78565b0151905038806109e7565b9392918791601f19821690846000528b6000209160005b8d828210610ad1575050968360029810610ab8575b505050811b0190556109fb565b015160001960f88460031b161c19169055388080610aab565b838a015185558c96909401939283019201610a96565b6040516318dca5e960e21b8152600490fd5b5060405190610b0782610f9f565b603282527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722081830152711a185cc8185b1c9958591e481a9bda5b995960721b60408301526106b560405192839263015538b160e01b8452600484015260248301906112fa565b604051635a78c58160e11b8152600490fd5b610b87613194565b6108e7565b8480fd5b50346104ed57806003193601126104ed57610ba96121ce565b61ffff8060195416816016541601818111610c2f5716610c1d576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610c1a5781906004604051809481936341c0e1b560e01b83525af180156104f057610c0e575080f35b610c1790610f8c565b80f35b50fd5b604051636b62255160e11b8152600490fd5b634e487b7160e01b83526011600452602483fd5b50806003193601126104ed57610c57612dab565b610c5f6121ce565b610c67613194565b3415610b6d573360009081526015602052604090206002015415610cae5760125460081c60ff16610ca457610c9c3433612de8565b610c176131a9565b610c173433612f78565b6106b5604051610cbd81610f9f565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b83526020600484015260248301906112fa565b50346104ed5760203660031901126104ed57610d39612dab565b610d416121ce565b610c17600435613275565b50346104ed57602090816003193601126104ed576001600160401b0391600435838111610ec15736602382011215610ec157610d92903690602481600401359101611011565b92610d9b612dab565b3383526017825261ffff60408420541615610ea957835115610e97573383526024825260408320918451918211610e8357610dda826109c5855461139f565b80601f8311600114610e1f5750839482939492610e14575b50508160011b916000199060031b1c19161790555b610e103361383e565b5080f35b015190503880610df2565b90601f198316958486528286209286905b888210610e6b57505083600195969710610e52575b505050811b019055610e07565b015160001960f88460031b161c19169055388080610e45565b80600185968294968601518155019501930190610e30565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b8280fd5b9050816003193601126106e7573415610f7d575060ff60125460081c16610829573381526003602052604081205415610f24575b338152600360205260408120610f10348254611101565b9055610f1e34600254611101565b60025580f35b600454600160401b811015610f6957610f46816001610f64930160045561107d565b81546001600160a01b0360039290921b91821b19163390911b179055565b610ef9565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b6001600160401b0381116103f657604052565b606081019081106001600160401b038211176103f657604052565b604081019081106001600160401b038211176103f657604052565b90601f801991011681019081106001600160401b038211176103f657604052565b6001600160401b0381116103f657601f01601f191660200190565b92919261101d82610ff6565b9161102b6040519384610fd5565b829481845281830111611048578281602093846000960137010152565b600080fd5b9181601f84011215611048578235916001600160401b038311611048576020808501948460051b01011161104857565b6004548110156110b45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156110b45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b9190820180921161036257565b9190820391821161036257565b81471061117d576000918291829182916001600160a01b03165af13d15611178573d61114681610ff6565b906111546040519283610fd5565b8152600060203d92013e5b1561116657565b604051630a12f52160e11b8152600490fd5b61115f565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b8381106111ac575b50505050565b6111b58161107d565b90546003916001600160a01b039190831b1c8116858216146111db57505060010161119e565b929350939060001991828101908111611268579061120c846111ff61122b9461107d565b905490891b1c169161107d565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561125357019261123e8461107d565b81939154921b1b1916905555388080806111a6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176103f6576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b919082519283825260005b848110611326575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611305565b91908110156110b45760051b81013590601e19813603018212156110485701908135916001600160401b038311611048576020018236038113611048579190565b91908110156110b45760051b0190565b356001600160a01b03811681036110485790565b90600182811c921680156113cf575b60208310146113b957565b634e487b7160e01b600052602260045260246000fd5b91607f16916113ae565b8181106113e4575050565b600081556001016113d9565b9190601f81116113ff57505050565b61142b926000526020600020906020601f840160051c8301931061142d575b601f0160051c01906113d9565b565b909150819061141e565b60018054600160401b8110156103f6578181018083558110156110b457600360009183835202918351837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6015560407fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf87fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf785019460209560018060a01b0387890151166001600160601b0360a01b82541617905501940151918251926001600160401b038411610f69576115158461150f885461139f565b886113f0565b8491601f851160011461154d579394508492919083611542575b50501b916000199060031b1c1916179055565b01519250388061152f565b86815285812093958591601f198316915b888383106115925750505010611579575b505050811b019055565b015160001960f88460031b161c1916905538808061156f565b85870151885590960195948501948793509081019061155e565b90600092918054916115bd8361139f565b91828252600193848116908160001461161e57506001146115de5750505050565b90919394506000526020928360002092846000945b83861061160a5750505050010190388080806111a6565b8054858701830152940193859082016115f3565b9294505050602093945060ff191683830152151560051b010190388080806111a6565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061169d57505050505050505090565b9091929394958560036116dc839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016115ac565b9a01940194019296959493919061168b565b60ff60135416600381101561040c5760010361171f576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b9060018060a01b03821660005260156020526040600020818154915581811460001461176857505050565b8111156117785761142b91611a91565b61142b91611f69565b919060018060a01b03928381166000948186526020916017835261ffff916040978389822054166119a0578360135460081c1684601654161061196c576117c6612b87565b60019283825260188652828a83205416886117e0826116ee565b106118e657508152601a855283898220541661184f57505050505061184a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461182a83612202565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b61185886612bda565b92611862876116ee565b935b81868216116118a8575b505097516001600160a01b0390951685525050505060208101919091529091506000805160206138d183398151915290806040810161184a565b80856118c786617fff8f95871c1694858852601b8c52872054166116ee565b10156118e057906118d9839282612d1c565b9050611864565b5061186e565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061184a95601a91611921612761565b83525220541661195e575b611935846126f2565b61193e83612202565b516001600160a01b03928316815292909116602083015281906040820190565b611967846123ec565b61192c565b505050505061184a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461182a836126f2565b979291506119b18594979695612ba3565b976119bb856116ee565b976119c58a6125e7565b8460165416905b858116828111611a6c5782811015611a505750806119ec6119f2926121ef565b90612b37565b9b909b5b8b1115611a1557611a07908c612c83565b611a108b6125e7565b6119cc565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206138b18339815191529150806040810161184a565b849c919c5260188352611a678588862054166116ee565b6119f6565b5050505050505061184a91929395506000805160206138b1833981519152945061182a565b6001600160a01b03808216600081815260176020526040808220549095949361ffff93918416611be5578360135460081c16846016541610611bb357611ad5612b87565b600183526018602052868320541685611aed826116ee565b10611b5f57508152601a6020528490205416611b315761184a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361182a83612202565b61184a6000805160206138d18339815191529361182a611b5084612bda565b611b59856116ee565b90612592565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261184a94611b93612761565b8152601a602052205416611baa57611935846126f2565b6119678461247b565b5050505061184a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361182a836126f2565b5050505061184a6000805160206138b18339815191529361182a611c0884612ba3565b611c11856116ee565b90612aa4565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416611e3f578082526017835287868320541615611e2e578415611d865750611c6483612ba3565b97611c6e846116ee565b985b6001808a83161115611d775781617fff911c1690818452601885528a611c9a848a872054166116ee565b1115611caf57611caa9082612c83565b611c70565b505091939597509193955b6019541615611d6f57611ccb612b87565b60018252601883528581818420541692601b611ce6856116ee565b95611cef612b95565b600183525220541691611d01836116ee565b11611d3657505091516001600160a01b03909216825260208201526000805160206138b183398151915290806040810161184a565b9150915061184a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611d67612761565b61192c612285565b505050505050565b50509193959750919395611cba565b829450611dba7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996128aa565b8651908152a160195416611dce5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492611dfc612b95565b6001835252205416611e22611e10826116ee565b92611e19612285565b61182a836126f2565b0390a1388080806111a6565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611f2e575061fffe9193611e5c86612bda565b93611e66876116ee565b9480966001958692831b168160195416925b611eba575b505099516001600160a01b039097168752505050506020830193909352509192506000805160206138d1833981519152919050806040810161184a565b818116838111611f28578d9084811015611f0c57505080611edd611ee3926121ef565b9061269a565b9890985b881015611f0757611ef89089612d1c565b611f01886125e7565b86611e78565b611e7d565b8652601b8552852054909890611f239087166116ee565b611ee7565b50611e7d565b94915050611f629194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506123ec565b51908152a1565b6001600160a01b038082166000818152601a602090815260408083205490969594919361ffff91821661200c578084526017855281888520541615611ffb578615611fca5750611cba611fbb86612ba3565b611fc4876116ee565b90612a55565b849193979650611dba7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396612935565b8751632a55ca5360e01b8152600490fd5b969392505050831561204957506000805160206138d1833981519152935061184a9061182a61203a84612bda565b612043856116ee565b906125fe565b9250611f627f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949261247b565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116103f6576120b7816120b1845461139f565b846113f0565b6000601f82116001146120f157819293946000926120e6575b50508160011b916000199060031b1c1916179055565b0135905038806120d0565b601f198216948382526020918281209281905b88821061213c5750508360019596971061212257505050811b019055565b0135600019600384901b60f8161c1916905538808061156f565b80600184968294958701358155019501920190612104565b1561215b57565b634e487b7160e01b600052600160045260246000fd5b9061217e60418214612154565b80600111611048576121999136916000190190600101611011565b80516020909101206001600160a01b031690565b908060209392818452848401376000828201840152601f01601f1916010190565b60ff60125460101c166121dd57565b60405163248c8efb60e11b8152600490fd5b90600161ffff8093160191821161036257565b61142b90611b5961ffff9161221a83601954166121ef565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556116ee565b61ffff908116600019019190821161036257565b61ffff80601954169081156123da57906001906122a481831115612154565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161233e91908a61232f83612271565b16906019541617601955612bff565b8482528086526123528484842054166116ee565b95859860028160195416995b612370575b5050505050505050505050565b8181168a81116123d4578a8110156123b9575080611edd612390926121ef565b9a909a5b8910156123b4576123a5908b612d1c565b6123ae8a6125e7565b8761235e565b612363565b859b919b528383526123cf8787872054166116ee565b612394565b50612363565b6040516340d9b01160e01b8152600490fd5b6123f590612bda565b61ffff908160195416916124098383612d1c565b8061241384612271565b1661ffff19601954161760195561242983612bff565b8116809214612477576120438261142b93600052601b60205260018060a01b039061246361245d83604060002054166116ee565b85612592565b600052601b602052604060002054166116ee565b5050565b61248490612bda565b61ffff908160195416916124988383612d1c565b806124a284612271565b1661ffff1960195416176019556124b883612bff565b80821680931461258d579161fffe91600091808352601b9060209382855260018060a01b03926040926124f86124f28686862054166116ee565b87612592565b825280865261250b8484842054166116ee565b9585986001988997881b168160195416995b61252e575050505050505050505050565b8181168a81116123d4578a811015612572575080611edd61254e926121ef565b9a909a5b8910156123b457612563908b612d1c565b61256c8a6125e7565b8761251d565b859b919b528383526125888787872054166116ee565b612552565b505050565b9190915b60018061ffff831611156125e15781617fff911c1690836125cc6000848152601b602052604060018060a01b03912054166116ee565b10156125e1576125dc9082612d1c565b612596565b50509050565b60011b906201fffe61fffe83169216820361036257565b90600161fffe83821b168160009161ffff908160195416925b612625575b50505050505050565b818116838111612694578381101561266e575080611edd612645926121ef565b9690965b8610156126695761265a9087612d1c565b612663866125e7565b84612617565b61261c565b8452601b602052604084205490969061268f906001600160a01b03166116ee565b612649565b5061261c565b91909161ffff92838216600052601b6020526126dd60018060a01b036126c681604060002054166116ee565b958316600052601b602052604060002054166116ee565b908185106126eb5750509190565b9350919050565b61142b90611fc461ffff9161270a83601654166121ef565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556116ee565b61ffff80601654169081156123da579060019061278081831115612154565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161281a91908a61280b83612271565b16906016541617601655612c41565b84825280865261282e8484842054166116ee565b95859860028160165416995b61284b575050505050505050505050565b8181168a81116123d4578a81101561288f5750806119ec61286b926121ef565b9a909a5b8911156123b457612880908b612c83565b6128898a6125e7565b8761283a565b859b919b528383526128a58787872054166116ee565b61286f565b6128b390612ba3565b61ffff908160165416916128c78383612c83565b806128d184612271565b1661ffff1960165416176016556128e783612c41565b811680921461247757611c118261142b93600052601860205260018060a01b039061292161291b83604060002054166116ee565b85612a55565b6000526018602052604060002054166116ee565b61293e90612ba3565b9061ffff908160165416906129538285612c83565b8261295d83612271565b1661ffff19601654161760165561297382612c41565b828416809214612a4f5760009291929183835260189260209484865260018060a01b03916040916129b16129ab8585852054166116ee565b8a612a55565b81528587526129c48383832054166116ee565b956129ce896125e7565b978560165416985b8681168a8111612a41578a811015612a265750806119ec6129f6926121ef565b9a909a5b891115612a1957612a0b908b612c83565b612a148a6125e7565b6129d6565b5050505050505092505050565b849b919b52828252612a3c8686862054166116ee565b6129fa565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156125e15781617fff911c169083612a8f60008481526018602052604060018060a01b03912054166116ee565b11156125e157612a9f9082612c83565b612a59565b91612aae836125e7565b600061ffff918260165416905b838116828111612b2d5782811015612b075750806119ec612adb926121ef565b9690965b861115612afe57612af09087612c83565b612af9866125e7565b612abb565b50505050915050565b835260186020526040832054909690612b28906001600160a01b03166116ee565b612adf565b5050505050915050565b919061ffff8084166000526018602052612b7860018060a01b03612b6181604060002054166116ee565b9284166000526018602052604060002054166116ee565b93848211156126eb5750509190565b61ffff60165416156123da57565b61ffff60195416156123da57565b6001600160a01b031660009081526017602052604090205461ffff16908115612bc857565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff16908115612bc857565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b612ca861ffff808060165416931693612c9e84861115612154565b1691821115612154565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b612d3761ffff808060195416931693612c9e84861115612154565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b60ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f8635416612dd657565b60405163d93c066560e01b8152600490fd5b612df28282612f51565b612e55600192612e4c612e238286612e1c8760018060a01b03166000526015602052604060002090565b0154611101565b918286612e428760018060a01b03166000526015602052604060002090565b0155601454611101565b60145582611781565b60ff60125460081c1615612e67575050565b60008083549084815b838110612eff575b5050505015612e85575050565b612ef861062261142b93612eab8460018060a01b03166000526015602052604060002090565b0154926003612ecc8260018060a01b03166000526015602052604060002090565b019060405194612edb86610f9f565b85526001600160a01b0316602085015260405192839182906115ac565b0382610fd5565b818352600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614612f4357018590612e70565b509250505038808481612e78565b60018060a01b03166000526015602052612f746002604060002001918254611101565b9055565b91906040519281602085015260208452612f9184610fba565b6001600160401b03601c54169360405194612fab86610f9f565b600095868152602081019083825260018060a01b0385166040820152828852601d6020526040882091815160048110156131805760ff80198554169116178355519182516001600160401b03811161316c57600193613018826130108786015461139f565b8786016113f0565b602090601f83116001146131015760029392918c91836130f6575b5050600019600383901b1c191690851b17818501555b0190604060018060a01b03910151166001600160601b0360a01b82541617905581016001600160401b0381116130e2579560008051602061389183398151915292916001600160401b0361142b9798166001600160401b0319601c541617601c556130d4604051938493845260018060a01b03871660208501526080604085015260808401906112fa565b9060608301520390a1612f51565b634e487b7160e01b87526011600452602487fd5b015190503880613033565b929185918284018d5260208d20908d5b601f1984168110613154575060029583601f1981161061313b575b505050811b0184820155613049565b015160001960f88460031b161c1916905538808061312c565b81870151835588949092019160209182019101613111565b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b8a52602160045260248afd5b60ff60135416600381101561040c5761068957565b601454600a548110156131ba575b50565b61ffff601654166001600160401b03600c541611156131d65750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061321381611641565b0390a160018060a01b03600e54169061322f6002548092611101565b91803b156110485760246000926040519485938492637903ab2760e11b845260048401525af1801561326957156131b75761142b90610f8c565b6040513d6000823e3d90fd5b61327d613194565b80156132d657336000908152601560205260409020600201548015610ea9578110156132c55760ff60125460081c16156132bb5761142b903361346e565b61142b90336132e8565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b9061142b916132f7828261341b565b61339561332383600161331c8560018060a01b03166000526015602052604060002090565b015461110e565b6001600160a01b03831660009081526015602052604090206002015481159081613412575b50156133ef576001600160a01b0383166000908152601560205260409020600360009182815582600182015582600282015501613385815461139f565b806133b2575b5050505b82611c17565b6133a18260145461110e565b6014556001600160a01b031661111b565b82601f82116001146133ca575050555b38808061338b565b90918082526133e8601f60208420940160051c8401600185016113d9565b55556133c2565b6001600160a01b038316600090815260156020526040902081906001015561338f565b90501538613348565b6001600160a01b0316600081815260156020526040902060020154909180821061345c576134489161110e565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b90604051918160208401526020835261348683610fba565b6001600160401b03601c541692604051906134a082610f9f565b600182526020820191818352604081019060018060a01b0385169384835287600052601d60205260406000209151600481101561040c5760ff80198454169116178255518051906001600160401b0382116103f6576135068261028c600186015461139f565b602090601f83116001146135d4576002939291600091836135c9575b50508160011b916000199060031b1c19161760018201555b019060018060a01b039051166001600160601b0360a01b82541617905560018501916001600160401b0383116103625761142b956001600160401b0360008051602061389183398151915294166001600160401b0319601c541617601c556135bb6040519384936001855260208501526080604085015260808401906112fa565b9060608301520390a161341b565b015190503880613522565b906001840160005260206000209160005b601f198516811061362f575091839160019360029695601f19811610613616575b505050811b01600182015561353a565b015160001960f88460031b161c19169055388080613606565b919260206001819286850151815501940192016135e5565b60ff60125460081c16613730575b336000908152601560205260409020600201548015610ea9576136773361373d565b5060009033825260246020528160408120613692815461139f565b806136f3575b50505060ff60125460081c16156136b45761142b91503361346e565b604061142b9233815260036020522054806136d1575b50336132e8565b806136e16136ed9260025461110e565b60025561080333611195565b386136ca565b82601f821160011461370b575050555b813880613698565b9091808252613729601f60208420940160051c8401600185016113d9565b5555613703565b613738613194565b613655565b600081815260266020526040812054909190801561383957600019908082018181116138255760255490838201918211613811578082036137c6575b50505060255480156137b257810190613791826110ca565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6137fb6137d56137e4936110ca565b90549060031b1c9283926110ca565b819391549060031b91821b91600019901b19161790565b9055845260266020526040842055388080613779565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b60008181526026602052604081205461388b57602554600160401b811015610f695790826138776137e4846001604096016025556110ca565b905560255492815260266020522055600190565b90509056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda264697066735822122083f27a7a77250915921f99077b478e87411ad3c8f0a1e4a71f87e5481ace8fde64736f6c634300081300336080806040523461001657610214908161001c8239f35b600080fdfe604060808152600436101561001357600080fd5b600090813560e01c80633f4ba83a146101105780635c975abb146100ce57638456cb591461004057600080fd5b346100ca57816003193601126100ca57610058610199565b7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863805460ff81166100b95760ff19166001179055513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a180f35b825163d93c066560e01b8152600490fd5b5080fd5b50346100ca57816003193601126100ca5760209060ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863541690519015158152f35b50346100ca57816003193601126100ca57610129610199565b7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863805460ff8116156101885760ff19169055513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152600490fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036101cc57565b6040516330cd747160e01b8152600490fdfea264697066735822122048fd97b221e741f6cd5538c2b97886b6c9ef17ff171973ebfda3b7195e33a43364736f6c63430008130033608080604052346100165761067f908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c80634c860af61461035f5780634e71d92d1461010e5763ed7c4da11461003e57600080fd5b3461010b578060031936011261010b5760008051602061062a8339815191529060018254146100f957600182556100736103b6565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156100f55781602491604051928380926382985e0b60e01b82523360048301525af480156100ea576100be575b5080915580f35b67ffffffffffffffff81116100d657604052386100b7565b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5080fd5b6040516329f745a760e01b8152600490fd5b80fd5b503461010b578060031936011261010b57600160008051602061062a83398151915254146100f957600160008051602061062a833981519152556101506103b6565b336000908152601f602052604090209081549061ffff82161561034d5761ffff8260101c169261ffff831693825b61ffff851661ffff8316101561033f5761ffff82168452600183016020526040842060405180604081011067ffffffffffffffff60408301111761032b5790816040602094930160405260018254928383520154938491015243106102165761ffff60016101ee8294839461042b565b948281168852818701602052878260408220828155015501169660001901169591905061017e565b94505063ffff000092945b61ffff8354911693849260101b169063ffffffff19161717905515610314575b8047106102fc578180808084335af13d156102f7573d67ffffffffffffffff81116102e3576040519061027e601f8201601f1916602001836103f3565b81528360203d92013e5b156102d15760407f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514918151903382526020820152a18060008051602061062a8339815191525580f35b604051630a12f52160e11b8152600490fd5b634e487b7160e01b84526041600452602484fd5b610288565b60405163cd78605960e01b8152306004820152602490fd5b336000908152601f60205260409020829055610241565b634e487b7160e01b86526041600452602486fd5b935063ffff00009294610221565b6040516364b0557f60e01b8152600490fd5b50606036600319011261010b5760443560028110156100f5576103806103b6565b600e546001600160a01b031633036103a4576103a19060243560043561044e565b80f35b60405163e7e601db60e01b8152600490fd5b60ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f86354166103e157565b60405163d93c066560e01b8152600490fd5b90601f8019910116810190811067ffffffffffffffff82111761041557604052565b634e487b7160e01b600052604160045260246000fd5b9190820180921161043857565b634e487b7160e01b600052601160045260246000fd5b91811561062457604080519360209283860186811067ffffffffffffffff821117610415578352600095869052600281101561061057806105715750600b54810390811161055d578452602282528084208151808285829454938481520190885285882092885b87828210610547575050506104cc925003826103f3565b91825193841561053f5784811061053f5784900492855b8581106104f35750505050505050565b815181101561052b57600190818060a01b03848260051b850101511688526021845284882061052387825461042b565b9055016104e3565b634e487b7160e01b87526032600452602487fd5b505050505050565b85548452600195860195879550930192016104b5565b634e487b7160e01b85526011600452602485fd5b8360018492146000146105c157606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b86526021600452602486fd5b50505056fe691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212202641eb343375887c3c4f0191635489e06bca83b7362f3d3483ca56ac3d98b35064736f6c634300081300336080806040523461001657611ea9908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c634300081300336080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c634300081300336080806040523461001657614fde908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611a705750806310fd4261146118ff57806326811936146116ec5780632e17de78146116bf578063350a14bf1461168c5780633a4b66f1146115b05780633f4ba83a1461153857806341c0e1b5146114a75780634c860af6146114535780634e71d92d146112bf5780635c975abb1461128f5780636170b16214610edf57806366783c9b14610dfe5780638456cb5914610d96578063b9ee2bb914610997578063c7ebdaef14610951578063cc2dc2b9146108d1578063d66d9e1914610886578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b857600080516020614f8983398151915260018154146101a657806001839255610133612049565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033a26469706673582212208bc252d2c0ae18988be902d7b42813e060a32bc150575394fbe84873dc233d4d64736f6c63430008130033","sourceMap":"9370:26271:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;:::i;:::-;28483:19;;:::i;:::-;28528:32;28512:48;28528:32;;;:::i;:::-;28512:48;9370:26271;28512:48;;;;:::i;:::-;;;:::i;:::-;;9370:26271;;;;;:::i;:::-;28500:1;9370:26271;;1220:14:3;9370:26271:91;1220:14:3;;;9370:26271:91;28623:19;9370:26271;;28623:19;;:::i;:::-;9370:26271;;28653:21;;;;;;9370:26271;;-1:-1:-1;;;28653:21:91;;-1:-1:-1;;;;;9370:26271:91;;;;28653:21;;9370:26271;;;1220:14:3;;9370:26271:91;28653:21;9370:26271;1220:14:3;9370:26271:91;28653:21;;;;;;;;;;9370:26271;;;;;;;;:::i;:::-;28741:12;9370:26271;;28717:61;1220:14:3;28717:61:91;;9370:26271;28854:38;;;;;9370:26271;;-1:-1:-1;;;28854:38:91;;-1:-1:-1;;;9370:26271:91;28854:38;;9370:26271;28854:38;9370:26271;;;28854:38;;;;;;;;;;;;;;;9370:26271;-1:-1:-1;28902:22:91;540:42:1;9370:26271:91;;-1:-1:-1;;;28902:53:91;;540:42:1;;9370:26271:91;28902:53;;9370:26271;540:42:1;;;;;;;;9370:26271:91;;;28902:53;;9370:26271;;540:42:1;;9370:26271:91;;;;;28902:53;;;;;;;;9370:26271;28965:14;;;;;;9370:26271;;;;;;;;;;;;;28965:14;;;;;;;;;;9370:26271;;;28965:14;;;;;:::i;:::-;9370:26271;;28965:14;9370:26271;;;;;;28965:14;9370:26271;;;;;;;;;28965:14;9370:26271;;;28902:53;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;9370:26271;;;;;;;;;28854:38;;;;;;;;:::i;:::-;9370:26271;;28854:38;;;;;;9370:26271;;;;28854:38;9370:26271;;;;;;;;;28653:21;;;;;;;:::i;:::-;;;;;;9370:26271;;;;;;;;;28653:21;9370:26271;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;;;:::i;:::-;;;;;;;;;29501:9;9370:26271;35590:42;9370:26271;;;;:::i;:::-;-1:-1:-1;35617:14:91;3774:10;-1:-1:-1;;;;;9370:26271:91;;;;;35590:42;:::i;:::-;9370:26271;;;;;;;;;;;;;;;;;;;;;;29559:45;;;9370:26271;29559:45;;9370:26271;29559:45;9370:26271;;;;;;;;:::i;:::-;29559:45;;;;;;;;;;;;;;9370:26271;;;;;;;;;;;;;;;;;29559:45;29696:29;9370:26271;;29696:29;;;:::i;:::-;9370:26271;;;;;;;;;;29744:22;;;;;;;;;;;;;9370:26271;29744:26;;9370:26271;;29806:25;9370:26271;;-1:-1:-1;29847:9:91;9370:26271;-1:-1:-1;;;;;9370:26271:91;;29891:36;;;:::i;:::-;29847:81;;;;;;9370:26271;;;;;;;;;;;;;;;;;;;29847:81;;9370:26271;;29847:81;;9370:26271;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;29847:81;;;;;;;;;;29802:281;;;29559:45;29802:281;;;29501:9;9370:26271;;;35590:42;;-1:-1:-1;;;;;9370:26271:91;;;:::i;:::-;-1:-1:-1;35617:14:91;3774:10;-1:-1:-1;;;;;9370:26271:91;;35590:42;:::i;:::-;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;30185:45;;;9370:26271;30185:45;;9370:26271;;;;;;:::i;:::-;30185:45;;;;;;;;;;;;29802:281;9370:26271;;;30185:74;9370:26271;;30354:66;9370:26271;;30293:51;9370:26271;;30301:22;30293:51;:::i;:::-;30362:32;30354:66;:::i;9370:26271::-;;;-1:-1:-1;;;9370:26271:91;;29559:45;9370:26271;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;30185:45;;;;29559;30185;;29559;30185;;;;;;29559;30185;;;:::i;:::-;;;9370:26271;;;;540:42:1;;9370:26271:91;30185:45;;9370:26271;;;;30185:45;;;-1:-1:-1;30185:45:91;;;9370:26271;;;;;;;;;;29847:81;;;;;:::i;:::-;9370:26271;;29847:81;;;;9370:26271;;;29802:281;29949:24;;;;;;;;9370:26271;29949:24;29945:138;;29802:281;;;29559:45;29802:281;;;;;;;29945:138;29989:9;9370:26271;;;;-1:-1:-1;;;;;9370:26271:91;;30023:36;;;:::i;:::-;29989:83;;;;;;9370:26271;;;;;;;;;;;;;;;;;;;;29989:83;;9370:26271;;29989:83;;9370:26271;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;29989:83;;;;;;;;;29559:45;29989:83;;;;;;29945:138;;;;;;;;;;29989:83;;;;:::i;:::-;;;;;9370:26271;;;;;;;;;;;;;;-1:-1:-1;;;9370:26271:91;;29559:45;9370:26271;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;29744:22;;;29559:45;29744:22;;29559:45;29744:22;;;;;;29559:45;29744:22;;;:::i;:::-;;;9370:26271;;;;540:42:1;29744:22:91;;;9370:26271;;;;29744:22;;;-1:-1:-1;29744:22:91;;;9370:26271;;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;;29559:45;;;;;;;;;;;;;;;;;;:::i;:::-;;;9370:26271;;;;540:42:1;29559:45:91;;;;;;;-1:-1:-1;29559:45:91;;;9370:26271;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;:::i;:::-;15062:1;9370:26271;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9370:26271:91;;;;15105:178;;9370:26271;;;;;:::i;:::-;;15105:178;;9370:26271;15075:218;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;15334:180;9370:26271;15334:180;;9370:26271;;;;;;15481:18;9370:26271;;;;;;15481:18;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15334:180;;9370:26271;15304:220;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;15565:178;9370:26271;15565:178;;9370:26271;;;;;;15711:17;9370:26271;;;;;;15711:17;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15565:178;;9370:26271;15535:218;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;15794:182;9370:26271;15794:182;;9370:26271;;;;;;15942:19;9370:26271;;;;;;15942:19;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15794:182;;9370:26271;15764:222;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;16027:190;9370:26271;16027:190;;9370:26271;;;;;;16179:23;9370:26271;;;;;;16179:23;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16027:190;;9370:26271;15997:230;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;16250:42;;;;;;;;;-1:-1:-1;;;;;16250:42:91;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;16238:54;3774:10;;-1:-1:-1;;;;;;3774:10:91;;-1:-1:-1;;;;;9370:26271:91;;;3774:10;;;;;;9370:26271;;;;;;;;;;16250:42;-1:-1:-1;;;9370:26271:91;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;9370:26271:91;;;;;;;;;2130:18:8;9370:26271:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;35590:42;9370:26271;;:::i;:::-;;;:::i;35590:42::-;9370:26271;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;:::i;:::-;;;30511:26;;;;;9370:26271;;-1:-1:-1;;;30511:26:91;;-1:-1:-1;;;;;9370:26271:91;;;;30511:26;;9370:26271;;;;30511:26;9370:26271;;;30511:26;;;;;;;;;;;;;9370:26271;30547:56;;;;;;;9370:26271;;;;;;;;;;;;;;;30547:56;;9370:26271;30547:56;;9370:26271;;;;;;30547:56;;;;;;;;;;;9370:26271;;;30613:9;9370:26271;;30613:56;;;;;9370:26271;;;3090:7;9370:26271;;;;;;;;;;;;30613:56;;9370:26271;;30613:56;;9370:26271;;;;;;:::i;:::-;30613:56;;;;;;;;;;9370:26271;;30613:56;;;;:::i;:::-;9370:26271;;30613:56;9370:26271;30613:56;9370:26271;;;30547:56;;;;:::i;:::-;9370:26271;;30547:56;;;;;9370:26271;;;30511:26;;;;:::i;:::-;9370:26271;;30511:26;;;;;9370:26271;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;24385:21;;;;;-1:-1:-1;;;;;24385:21:91;;;;;;;;;;;;;;;;;;;;;;;9370:26271;;24450:23;;;;;-1:-1:-1;;;;;24450:23:91;;;;;;;;;;;;;;;;;;;;;;;;9370:26271;;24520:25;;;;;-1:-1:-1;;;;;24520:25:91;;;;;;;;;;;;;;;;;;;;;;;;9370:26271;;24590:23;;;;;-1:-1:-1;;;;;24590:23:91;;;;;;;;;;;;;;;;;;;;;;;;9370:26271;;;;;;:::i;:::-;;;;;;;;;24654:200;9370:26271;24654:200;;9370:26271;;;;;;24816:23;9370:26271;;;;;;24816:23;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24654:200;;9370:26271;24624:240;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;24904:198;9370:26271;24904:198;;9370:26271;;;;;;25064:23;9370:26271;;;;;;25064:23;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24904:198;;9370:26271;24874:238;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;25152:206;9370:26271;25152:206;;9370:26271;;;;;;25315:28;9370:26271;;;;;;25315:28;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25152:206;;9370:26271;25122:246;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;25408:212;9370:26271;25408:212;;9370:26271;;;;;;25571:34;9370:26271;;;;;;25571:34;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25408:212;;9370:26271;25378:252;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;25683:45;;;;;;;;;;-1:-1:-1;;;;;25683:45:91;;;;;;9370:26271;25683:45;;;9370:26271;25683:45;;;;9370:26271;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;25683:45;;;;;;;;9370:26271;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;25743:49;;9370:26271;25743:49;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24590:23;-1:-1:-1;;;9370:26271:91;;;;;;;;24450:23;-1:-1:-1;;;9370:26271:91;;;;;;;;24385:21;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;9370:26271:91;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;1982:18:8;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;-1:-1:-1;9370:26271:91;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;-1:-1:-1;9370:26271:91;;;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;;;;;:::i;:::-;;1671:64:2;;9370:26271:91;;;;;;;6628:51:16;;9370:26271:91;;6628:51:16;;;;;;;;9370:26271:91;6628:51:16;;;9370:26271:91;;;;;;:::i;:::-;;;;;;;6628:51:16;779:22:61;;6628:51:16;;;;;;:::i;:::-;9370:26271:91;392:159:16;131:42;392:159;;;9370:26271:91;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3730:3;;;9370:26271;19706:43;;;;9370:26271;;;19772:29;;;;;;-1:-1:-1;;;;;19772:29:91;;;;;;;;;;;;;;;;;;9370:26271;19772:29;;;;;;9370:26271;;;;;3774:10;;-1:-1:-1;;;;;3774:10:91;;9370:26271;;3774:10;19760:41;3774:10;;;19760:41;3774:10;9370:26271;;19822:28;;;;;;;;;;;;;;;;;;;;;;9370:26271;19822:28;;;;;9370:26271;;3774:10;19811:39;3774:10;;;19811:39;3774:10;9370:26271;;19871:27;;;;;;;;;;;;;;;;;;;;;;9370:26271;19871:27;;;;;9370:26271;;3774:10;19860:38;3774:10;;;19860:38;3774:10;9370:26271;;19925:35;;;;;;;;;;;;;;;;;;;;;;9370:26271;19925:35;;;;;9370:26271;;3774:10;19908:52;3774:10;;;19908:52;3774:10;9370:26271;;19983:28;;;;;;;;;;;;;;;;;;;;;;9370:26271;19983:28;;;;;9370:26271;;3774:10;19970:41;3774:10;;;19970:41;3774:10;9370:26271;;20032:21;;;;;;;;;;;;;;;;;;;;;;9370:26271;20032:21;;;;;9370:26271;;3774:10;20021:32;3774:10;;;20021:32;3774:10;9370:26271;;20074:23;;;;;;;;;;;;;;;;;;;;;;9370:26271;20074:23;;;;;;21643:229;9370:26271;21955:657;9370:26271;;;;;;;;;;;3774:10;;20063:34;3774:10;;;20063:34;3774:10;20148:26;;:::i;:::-;9370:26271;;;19760:41;9370:26271;;;;;;;;:::i;:::-;;;;20215:191;;;9370:26271;;;:::i;:::-;;20215:191;;9370:26271;20185:231;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;19811:39;9370:26271;;;;;;;;:::i;:::-;;;;20457:189;;;9370:26271;;;:::i;:::-;;20457:189;;9370:26271;20427:229;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;19860:38;9370:26271;;;;;;;;:::i;:::-;;;;20697:189;;;9370:26271;;;:::i;:::-;;20697:189;;9370:26271;20667:229;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;19970:41;9370:26271;;;;;;;;:::i;:::-;;;;20937:193;;;9370:26271;;;:::i;:::-;;20937:193;;9370:26271;20907:233;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;19908:52;9370:26271;;;;;;;;:::i;:::-;;;;21181:201;;;9370:26271;;;:::i;:::-;;21181:201;;9370:26271;21151:241;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;20021:32;9370:26271;;;;;;;;:::i;:::-;;;;21433:189;;;9370:26271;;;:::i;:::-;;21433:189;;9370:26271;21403:229;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;21673:189;;;9370:26271;;;:::i;:::-;;21673:189;;9370:26271;21643:229;:::i;:::-;;;;;:::i;:::-;;22570:27;;:::i;:::-;9370:26271;;;;;;;;:::i;:::-;;;21955:657;;;9370:26271;;21955:657;;;:::i;:::-;9370:26271;;3038:2;21955:657;;9370:26271;;21955:657;;;3730:3;9370:26271;;21955:657;;3730:3;9370:26271;;21955:657;;3643:3;9370:26271;;21955:657;;3643:3;3288:7;21955:657;;;9370:26271;22432:2;21955:657;;;3688:2;9370:26271;21955:657;;;3688:2;21955:657;;;9370:26271;;;21895:727;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9370:26271;21895:727;;;;;9370:26271;3774:10;;;21883:739;3774:10;;;21883:739;3774:10;;;19760:41;3774:10;;;19760:41;3774:10;;;19860:38;3774:10;;;19860:38;3774:10;;;19970:41;3774:10;;;19970:41;3774:10;;;19908:52;3774:10;;;19908:52;3774:10;;;19811:39;3774:10;;;19811:39;3774:10;;;20021:32;3774:10;;;20021:32;3774:10;20063:34;3774:10;;;20063:34;3774:10;9370:26271;;21895:727;9370:26271;;;;;;;;;21895:727;-1:-1:-1;;;9370:26271:91;;;;;;;;20074:23;9370:26271;;;;;;;;;;;19772:29;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;26228:12;;;;26236:3;26228:12;;9370:26271;26228:12;;9370:26271;;1220:14:3;;9370:26271:91;26228:12;;;;;;;;;;;;;;;;9370:26271;26206:35;;;;:::i;:::-;26190:51;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;26289:12;;;26297:3;9370:26271;26289:12;;9370:26271;26289:12;;;;;;;;;;;;;;;9370:26271;26267:35;;;;:::i;:::-;26251:51;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;26350:12;;;;26358:3;26350:12;;9370:26271;26350:12;;9370:26271;26350:12;;;;;;;;;;;;;;;9370:26271;26328:35;;;;:::i;:::-;26312:51;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;;;;;;26427:12;;;;;9370:26271;26427:12;;9370:26271;26427:12;;;;;;;;;;;;;;;;9370:26271;26412:27;;;;:::i;:::-;-1:-1:-1;;;;;9370:26271:91;;;;;;;26464:12;;;26297:3;9370:26271;26464:12;;9370:26271;26464:12;9370:26271;26464:12;9370:26271;26464:12;;;;;;;;;;;;9370:26271;26449:27;;;;;:::i;:::-;9370:26271;;;;;;26501:12;;;;9370:26271;26501:12;;9370:26271;26501:12;;;;;;;;;;;;;;;;9370:26271;26486:27;;;;;:::i;:::-;9370:26271;;;;;;;;;;:::i;:::-;;;;;;1220:14:3;;;9370:26271:91;;;26586:12;;;;;9370:26271;26586:12;;9370:26271;26586:12;;;;;;;;;;;;;;;;9370:26271;26578:24;;;;;;9370:26271;;-1:-1:-1;;;26578:24:91;;;9370:26271;;;;26578:24;;9370:26271;;1220:14:3;;;9370:26271:91;;;;;26578:24;9370:26271;1220:14:3;9370:26271:91;26578:24;;;;;;;;;;;;;9370:26271;;;;;26620:12;;;26297:3;9370:26271;26620:12;;9370:26271;26620:12;;;;;;;;;;;;;;;;9370:26271;26612:24;;;;;;9370:26271;;;26612:24;;;;9370:26271;;26612:24;;9370:26271;1220:14:3;;;;9370:26271:91;26612:24;;1220:14:3;26612:24:91;;;;;;;;;;;;;;9370:26271;;;;;26654:12;;;9370:26271;26654:12;;9370:26271;26654:12;;;;;;;;;;;;;;;;9370:26271;26646:24;;;;;;9370:26271;;;;26646:24;;;9370:26271;;26646:24;;9370:26271;1220:14:3;;;;9370:26271:91;26646:24;;1220:14:3;26646:24:91;;;;;;;;;;;;;;9370:26271;26681:16;;;;;26733;26681;;:::i;:::-;9370:26271;26707:16;;;;:::i;:::-;9370:26271;26733:16;:::i;:::-;9370:26271;;;;;;;:::i;:::-;26817:12;9370:26271;;26793:61;;;;9370:26271;26865:33;;;;;9370:26271;;-1:-1:-1;;;26865:33:91;;-1:-1:-1;;;9370:26271:91;26865:33;;9370:26271;;;;;;;;;;26865:33;;;;;;;;;;;;;;9370:26271;-1:-1:-1;26908:22:91;540:42:1;9370:26271:91;;-1:-1:-1;;;26908:53:91;;540:42:1;;9370:26271:91;26908:53;;9370:26271;540:42:1;;;;;;;;9370:26271:91;;;;;540:42:1;;9370:26271:91;;;;26908:53;;;;;;;;9370:26271;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;26908:53;;;;;;;;;;;;;:::i;:::-;;;;26865:33;;;;;;;;;:::i;:::-;9370:26271;;26865:33;;;;;;;26646:24;;;;:::i;:::-;9370:26271;;26646:24;;;;;9370:26271;;;26654:12;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26654:12:91;;;;;;;;;9370:26271;;;;;;;;;26612:24;;;;:::i;:::-;9370:26271;;26612:24;;;;9370:26271;;;;26612:24;9370:26271;;;;;;;;;26612:24;9370:26271;;;26620:12;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26620:12:91;;;;;;;;26578:24;;;;:::i;:::-;9370:26271;;26578:24;;;;26586:12;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26586:12:91;;;;;;;;;26501;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26501:12:91;;;;;;;;26464;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26464:12:91;;;;;;;;26427;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26427:12:91;;;;;;;;;26350;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26328:35:91;1220:14:3;;:::i;:::-;26350:12:91;;;;;;;26289;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26267:35:91;1220:14:3;;:::i;:::-;26289:12:91;;;;;;;26228;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26206:35:91;1220:14:3;;:::i;:::-;26228:12:91;;;;;;;9370:26271;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;:::i;:::-;;;:::i;:::-;34887:14;3774:10;-1:-1:-1;;;;;9370:26271:91;;34118:38;;;;;9370:26271;;-1:-1:-1;;;34118:38:91;;9370:26271;;34118:38;;9370:26271;;;;;;;;;;;34118:38;;;;;;;;9370:26271;34249:64;;9370:26271;34249:64;;;:::i;:::-;9370:26271;;;;;-1:-1:-1;;;34356:25:91;;9370:26271;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;-1:-1:-1;;;;;9370:26271:91;34356:25;;;;;;;;;;;9370:26271;;;;;;;;;;;;;;34413:11;;;9370:26271;34413:11;;9370:26271;;;;;;:::i;:::-;34413:11;:9;;:11;;;;;;;;;;;;;;9370:26271;-1:-1:-1;9370:26271:91;;-1:-1:-1;;;34428:43:91;;9370:26271;;;;;;34428:43;;9370:26271;;34428:43;;;:::i;:::-;;34413:9;;34428:43;;;;;;;9370:26271;34428:43;9370:26271;34428:43;;;;;9370:26271;;;;;;;;;;;34428:52;;;9370:26271;34428:52;;9370:26271;;;;;;:::i;:::-;34428:52;34413:9;;34428:52;;;;;;;;;;9370:26271;34413:67;;9370:26271;;34641:46;34697:49;34591:19;34583:48;9370:26271;;34591:19;;34583:48;:::i;:::-;34649:17;34641:46;:::i;:::-;34705:15;34697:49;:::i;:::-;9370:26271;;;;;-1:-1:-1;;;27263:25:91;;9370:26271;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;27263:25;;;;;;;:48;:25;;;;;;;9370:26271;-1:-1:-1;9370:26271:91;;-1:-1:-1;;;27263:48:91;;9370:26271;;;;;;27263:48;;;:::i;:::-;;34413:9;;27263:48;;;;;;;;;;;9370:26271;27345:29;;9370:26271;27345:29;;;:::i;:::-;9370:26271;;;;;;:::i;:::-;;;;27220:173;;9370:26271;;;;;;-1:-1:-1;;;27458:25:91;;9370:26271;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;27458:25;;;;;;;:45;:25;;;;;;;-1:-1:-1;9370:26271:91;;-1:-1:-1;;;27458:45:91;;9370:26271;;;;;;27458:45;;;:::i;:::-;;34413:9;;27458:45;;;;;;;;;;;9370:26271;27537:26;;;;:::i;:::-;9370:26271;;;;;;:::i;:::-;;;;27415:167;;9370:26271;;;;;;;:::i;:::-;1671:64:2;;;9370:26271:91;;;;;;:::i;:::-;;;;27184:608;;9370:26271;;;27184:608;;9370:26271;27184:608;;;;;3730:3;27184:608;;;;;;234:9:40;9370:26271:91;27184:608;;;;9370:26271;27184:608;;3288:7;27184:608;;;9370:26271;;;;;;;:::i;:::-;;;27152:679;9370:26271;27152:679;;234:9:40;9370:26271:91;;;;;;:::i;:::-;;;;;;234:9:40;;9370:26271:91;234:9:40;;;;27893:18:91;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;28141:33;;;;;9370:26271;;-1:-1:-1;;;28141:33:91;;-1:-1:-1;;;9370:26271:91;28141:33;;9370:26271;;;;;;;;;;;;28141:33;;;;;;;;234:9:40;-1:-1:-1;;28184:20:91;234:9:40;-1:-1:-1;;;;;9370:26271:91;;28184:45;;;;;9370:26271;;;;;;;;;;;28184:45;;9370:26271;234:9:40;;28184:45:91;9370:26271;;28184:45;;234:9:40;9370:26271:91;;;;;;;;234:9:40;9370:26271:91;;234:9:40;;;;;;;;;;;;;;;;;28184:45:91;;;;;;;;;;;;;;;;;;;234:9:40;9370:26271:91;;;;2508:20:60;;9370:26271:91;2508:20:60;;;9370:26271:91;;;;;;;;;:::i;:::-;2508:20:60;779:22:61;;2508:20:60;;;;;;:::i;:::-;9370:26271:91;2498:31:60;;9370:26271:91;;;;;;28184:45;;;;;:::i;:::-;9370:26271;;28184:45;;;234:9:40;;;;;;;;;9370:26271:91;234:9:40;;;;;;;;;;;;;;;:::i;:::-;9370:26271:91;;234:9:40;;;;;;;;;;;;;;;28141:33:91;;;;:::i;:::-;9370:26271;;28141:33;;;;234:9:40;9370:26271:91;;;;;;;:::i;:::-;;;;;;:::i;:::-;234:9:40;;:::i;:::-;;;;;:::i;:::-;;;;;;9370:26271:91;234:9:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27458:45:91;27537:26;27458:45;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:25;;;;;;;;;;;;;:::i;:::-;;;;27263:48;9370:26271;27263:48;;;27345:29;27263:48;;;;;;;;;;:::i;:::-;;;;;9370:26271;;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;34428:52;;;;9370:26271;34428:52;;9370:26271;34428:52;;;;;;9370:26271;34428:52;;;:::i;:::-;;;9370:26271;;;;540:42:1;34428:52:91;;;;;;;-1:-1:-1;34428:52:91;;:43;;;;;;;;;;;;;:::i;:::-;;;;34413:11;;;;;9370:26271;34413:11;;9370:26271;34413:11;;;;;;9370:26271;34413:11;;;:::i;:::-;;;9370:26271;;;;540:42:1;;;34428:43:91;34413:11;;;;;-1:-1:-1;34413:11:91;;34356:25;9370:26271;34356:25;;;;9370:26271;34356:25;;;;;;;;;;:::i;:::-;;;;;;34118:38;9370:26271;34118:38;;;34249:64;34118:38;;:::i;:::-;;;;;;9370:26271;;;;;;;;;;;;;;;;;:::i;:::-;;;23215:21;;;;;-1:-1:-1;;;;;23215:21:91;;;;;;;;;;;;;;;;;;;;;;;;;9370:26271;;23278:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9370:26271;;;;;;;;:::i;:::-;23381:1;9370:26271;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9370:26271:91;;;;;23424:201;;;9370:26271;;;;;23586:24;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;23937:39;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23424:201;;9370:26271;23394:241;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;;:::i;:::-;;;;23676:187;;;;9370:26271;;;:::i;:::-;;23676:187;;9370:26271;23646:227;;;:::i;:::-;;;;;:::i;:::-;;23937:39;:::i;:::-;9370:26271;;;24010:42;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9370:26271;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;9370:26271:91;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2899:18:8;9370:26271:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;2416:18:8;9370:26271:91;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2416:18:8;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;-1:-1:-1;9370:26271:91;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;;;;:::i;:::-;;;;;;;;;;;;35590:42;9370:26271;29501:9;9370:26271;;;;:::i;:::-;;3774:10;35617:14;3774:10;9370:26271;35590:42;;:::i;:::-;9370:26271;;;;;;;;;;;;;;;;;;29559:45;;;;;;;;;;;;;;9370:26271;29559:45;;9370:26271;;;;;:::i;:::-;29559:45;;;;;;;;;9370:26271;29559:45;;;9370:26271;;;;;;;;;;;;;;;;;;29696:29;;;9370:26271;29696:29;;:::i;:::-;9370:26271;;;;;;;;;;29744:22;;;;;;;;;9370:26271;29744:22;;;9370:26271;29744:26;;9370:26271;;29891:36;9370:26271;29847:9;9370:26271;;29891:36;;:::i;:::-;29847:81;;;;;;9370:26271;;;;;;;;;;;;;;;;;29847:81;;9370:26271;;29847:81;;9370:26271;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;29847:81;;;;;;;;;;;9370:26271;29847:81;;;;;9370:26271;;35590:42;9370:26271;29501:9;9370:26271;;;;:::i;:::-;;3774:10;35617:14;3774:10;9370:26271;35590:42;;:::i;:::-;9370:26271;;;;;;;;;;;;;30185:45;;;;;;;;;;9370:26271;30185:45;;9370:26271;;;;;:::i;:::-;30185:45;;;;;;;;;9370:26271;30185:45;;;9370:26271;30185:74;;9370:26271;;30301:22;30354:66;30301:22;;;30293:51;30301:22;;30293:51;:::i;9370:26271::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;30185:45;;;;;;;;;;;;;;;:::i;:::-;;;9370:26271;;;;540:42:1;;30185:45:91;;;;;;;;29847:81;;;;:::i;:::-;;;;9370:26271;;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;29744:22;;;;;;;;;;;;;;;:::i;:::-;;;9370:26271;;;;540:42:1;;29744:22:91;;;;;;;;9370:26271;;;;;;;;;;;;29559:45;;;;;;;;;;;;;;;;:::i;:::-;;;9370:26271;;;;540:42:1;;29559:45:91;;;;;;;;;9370:26271;;;;;;;;;;;;;2592:26:8;9370:26271:91;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2592:26:8;9370:26271:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;34887:14;9370:26271;;:::i;:::-;34887:14;3774:10;-1:-1:-1;;;;;9370:26271:91;;;;34887:14;:::i;9370:26271::-;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3730:3;;;9370:26271;19706:43;;9370:26271;;;19772:29;;;;;;;-1:-1:-1;;;;;19772:29:91;;;;;;;;;;;;9370:26271;19772:29;;;;;9370:26271;;;;;;-1:-1:-1;;;;;3774:10:91;;19760:41;3774:10;;;19760:41;3774:10;9370:26271;;19822:28;;;;;;;-1:-1:-1;;;;;19822:28:91;;;;;;;;;;;;9370:26271;19822:28;;;;;9370:26271;;;;;;-1:-1:-1;;;;;3774:10:91;;19811:39;3774:10;;;19811:39;3774:10;9370:26271;;19871:27;;;;;;;-1:-1:-1;;;;;19871:27:91;;;;;;;;;;;;9370:26271;19871:27;;;;;9370:26271;;;;;;-1:-1:-1;;;;;3774:10:91;;19860:38;3774:10;;;19860:38;3774:10;9370:26271;;19925:35;;;;;;;-1:-1:-1;;;;;19925:35:91;;;;;;;;;;;;9370:26271;19925:35;;;;;9370:26271;;;;;;-1:-1:-1;;;;;3774:10:91;;19908:52;3774:10;;;19908:52;3774:10;9370:26271;;19983:28;;;;;;;-1:-1:-1;;;;;19983:28:91;;;;;;;;;;;;9370:26271;19983:28;;;;;9370:26271;;;;;;-1:-1:-1;;;;;3774:10:91;;19970:41;3774:10;;;19970:41;3774:10;9370:26271;;20032:21;;;;;;;-1:-1:-1;;;;;20032:21:91;;;;;;;;;;;;9370:26271;20032:21;;;;;9370:26271;;;;;;-1:-1:-1;;;;;3774:10:91;;20021:32;3774:10;;;20021:32;3774:10;9370:26271;;20074:23;;;;;;;-1:-1:-1;;;;;20074:23:91;;;;;;;;;;;;9370:26271;20074:23;;;;;;20063:34;3774:10;;-1:-1:-1;;;;;;3774:10:91;-1:-1:-1;;;;;9370:26271:91;;3774:10;;;9370:26271;;;;-1:-1:-1;;;;;9370:26271:91;;;20148:26;;:::i;:::-;19760:41;9370:26271;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;:::i;:::-;;;;;20215:191;;9370:26271;;;:::i;:::-;;20215:191;;9370:26271;20185:231;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19811:39:91;9370:26271;;;;-1:-1:-1;;;;;9370:26271:91;;;;:::i;:::-;;;;;20457:189;;9370:26271;;;:::i;:::-;;20457:189;;9370:26271;20427:229;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19860:38:91;9370:26271;;;;-1:-1:-1;;;;;9370:26271:91;;;;:::i;:::-;;;;;20697:189;;9370:26271;;;:::i;:::-;;20697:189;;9370:26271;20667:229;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19970:41:91;9370:26271;;;;-1:-1:-1;;;;;9370:26271:91;;;;:::i;:::-;;;;;20937:193;;9370:26271;;;:::i;:::-;;20937:193;;9370:26271;20907:233;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19908:52:91;9370:26271;;;;-1:-1:-1;;;;;9370:26271:91;;;;:::i;:::-;;;;;21181:201;;9370:26271;;;:::i;:::-;;21181:201;;9370:26271;21151:241;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;20021:32:91;9370:26271;;;;-1:-1:-1;;;;;9370:26271:91;;;;:::i;:::-;;;;;21433:189;;9370:26271;;;:::i;:::-;;21433:189;;9370:26271;21403:229;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;-1:-1:-1;;;;;9370:26271:91;;;;;21673:189;;9370:26271;;;:::i;:::-;;21673:189;;9370:26271;21643:229;;;:::i;:::-;;;;;:::i;:::-;;22570:27;;:::i;:::-;9370:26271;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;9370:26271:91;;21955:657;;9370:26271;21955:657;9370:26271;;;21955:657;;;:::i;:::-;9370:26271;;3038:2;21955:657;;9370:26271;;21955:657;;;3730:3;9370:26271;;21955:657;;3730:3;9370:26271;21955:657;;;3643:3;9370:26271;;21955:657;;3643:3;3288:7;9370:26271;21955:657;;9370:26271;22432:2;21955:657;;;3688:2;;9370:26271;;3688:2;:::i;:::-;9370:26271;;21955:657;;;3688:2;21955:657;;;9370:26271;;;21895:727;;;;;;;;;;-1:-1:-1;;;;;21895:727:91;;;;;;;;;;;;;:::i;:::-;;;9370:26271;21895:727;;;;;21883:739;3774:10;;-1:-1:-1;;;;;9370:26271:91;;;;-1:-1:-1;;;;;;3774:10:91;;;;;;;;19760:41;3774:10;;;;;;;;19860:38;3774:10;;;;;;;;19970:41;3774:10;;;;;;;;19908:52;3774:10;;;;;;;;19811:39;3774:10;;;;;;;;20021:32;3774:10;;;;;;;;20063:34;3774:10;;;;;;;;9370:26271;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;:::i;:::-;28483:19;;:::i;:::-;28528:32;28512:48;28528:32;;;:::i;28512:48::-;;28359:3;28623:19;9370:26271;;;;;:::i;:::-;28500:1;9370:26271;;;;1220:14:3;;;9370:26271:91;28623:19;:::i;9370:26271::-;;;;;;;;;;;;;;;;;;2747:18:8;9370:26271:91;;;;;;;;;2747:18:8;9370:26271:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;9370:26271:91;;;;;;;;;3040:16:8;9370:26271:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;33168:24:91;;;9370:26271;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;33168:24;;;;;;;;;;;9370:26271;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;33206:9;9370:26271;;33268:10;;33246:33;33268:10;33246:33;:::i;:::-;33206:74;;;;;;9370:26271;;;;;;;;;;;;;;33206:74;;;9370:26271;33206:74;;9370:26271;;;;;;:::i;:::-;33206:74;9370:26271;;;33206:74;;;;;;;;;;;;9370:26271;;;;;;;;;;33298:24;;;;;;;;;;;;;;;;;9370:26271;;;;;;33298:41;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;33298:24;;;;;;;;;;;;;;;;;:::i;:::-;;;9370:26271;;;;;;;;:::i;:::-;33298:24;;;;;;;;;33206:74;;;;;;;:::i;:::-;9370:26271;;33206:74;;;;;;9370:26271;;;;;;;;;;;;33168:24;;;;;;;;;;;;;;;;;:::i;:::-;;;9370:26271;;;;;;;:::i;:::-;33168:24;;;;;;;;;9370:26271;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25907:11;25935:12;25930:73;25956:3;9370:26271;;;;25949:5;;;;;9370:26271;;-1:-1:-1;3774:10:91;;;25975:17;3774:10;;;;;;;;;;;9370:26271;25975:17;;:::i;:::-;25956:3;9370:26271;;;;;;;;25935:12;;;9370:26271;-1:-1:-1;;;9370:26271:91;;;;;;;;3774:10;9370:26271;;;;;3774:10;;9370:26271;3774:10;9370:26271;3774:10;25949:5;;;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;;:::i;:::-;33501:21;;9370:26271;;;:::i;:::-;-1:-1:-1;35617:14:91;3774:10;-1:-1:-1;;;;;9370:26271:91;3774:10;35590:42;;9370:26271;;35590:42;;:::i;:::-;9370:26271;;;;;;;33601:9;9370:26271;;33601:40;;;;;;9370:26271;;;;;;;;;;;;33601:40;;;;;;;;;;9370:26271;33675:21;;35590:42;33675:21;;9370:26271;;;:::i;:::-;;35617:14;3774:10;9370:26271;35590:42;;:::i;:::-;9370:26271;;;;;;;;;;;;;;33781:43;9370:26271;;33857:70;33880:26;;;;:::i;:::-;33865:41;33857:70;:::i;9370:26271::-;;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;33601:40;;;35590:42;33601:40;;;:::i;:::-;;;;;9370:26271;;;;;;;;;;;;;;;;;;2272:16:8;9370:26271:91;;;;;;;;;2272:16:8;9370:26271:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10064:41;9370:26271;;-1:-1:-1;;;;;9370:26271:91;;:::i;:::-;9863:1;9370:26271;;9863:1;9875:25;9370:26271;;;;;;;;9875:25;:::i;:::-;9370:26271;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3730:3;;;6586:58;;;9370:26271;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;3147:2;6526:412;;;9370:26271;3288:7;9370:26271;6526:412;;9370:26271;3038:2;6526:412;;;3643:3;9370:26271;6526:412;;9370:26271;3643:3;9370:26271;6526:412;;3643:3;-1:-1:-1;;;;;9370:26271:91;;;10064:41;:::i;:::-;9370:26271;3774:10;10976:38;10871:82;-1:-1:-1;;;;;3774:10:91;;;;;10047:58;3774:10;;;10047:58;3774:10;;;9370:26271;3774:10;;;9370:26271;3774:10;;;10180:56;3774:10;;;10180:56;3774:10;;;10246:66;3774:10;;;10246:66;3774:10;;;10322:66;3774:10;;;10322:66;3774:10;;;10398:70;3774:10;;;10398:70;3774:10;;;10478:68;3774:10;;;10478:68;3774:10;;;10556:60;3774:10;;;10556:60;3774:10;;;10626:53;3774:10;;;10626:53;3774:10;;;3038:2;3774:10;;;3038:2;3774:10;10871:82;:::i;10976:38::-;9370:26271;3774:10;;;10964:50;3774:10;;;10964:50;3774:10;;;11024:55;3774:10;;;11024:55;3774:10;;;11089:53;3774:10;;;11089:53;3774:10;;;11152:52;3774:10;;;11152:52;3774:10;;;11214:55;3774:10;;;11214:55;3774:10;;;11279:66;3774:10;;;11279:66;3774:10;;;11355:48;3774:10;;;11355:48;3774:10;11413:46;3774:10;;;11413:46;3774:10;28512:48;28483:19;;:::i;:::-;9370:26271;;:::i;:::-;-1:-1:-1;9370:26271:91;;-1:-1:-1;;;779:22:61;;;480:2;;779:22;;695:118;;779:22;9370:26271:91;779:22:61;:::i;:::-;480:2;9370:26271:91;;;;;;:::i;:::-;3147:2;3730:3;;-1:-1:-1;;;;;719:84:61;;;480:2;;;9370:26271:91;719:84:61;;9370:26271:91;;;;;695:118:61;;;;;;;480:2;;9370:26271:91;;480:2:61;;9370:26271:91;480:2:61;;;;;;;;9370:26271:91;480:2:61;;;9370:26271:91;480:2:61;;;;:::i;:::-;695:118;779:22;;695:118;;;;;;:::i;:::-;9370:26271:91;;;;;;:::i;:::-;;3643:3;;837:51:61;;;9370:26271:91;28512:48;;;;;:::i;:::-;;3643:3;28623:19;9370:26271;;;;;:::i;:::-;9863:1;9370:26271;;;;1220:14:3;;;9370:26271:91;28623:19;:::i;:::-;9370:26271;;28653:21;;;;;;9370:26271;;-1:-1:-1;;;28653:21:91;;9370:26271;;28653:21;;9370:26271;9863:1;1220:14:3;;;9370:26271:91;28653:21;9370:26271;10478:68;9370:26271;28653:21;;;;;;;;;;9370:26271;;;;;;;;;:::i;:::-;28741:12;9370:26271;;28717:61;;9370:26271;28854:38;;;;;9370:26271;;-1:-1:-1;;;28854:38:91;;-1:-1:-1;;;9370:26271:91;28854:38;;9370:26271;28854:38;9370:26271;1220:14:3;9370:26271:91;28854:38;;;;;;;;;;;;;;;;9370:26271;-1:-1:-1;10398:70:91;540:42:1;9370:26271:91;;-1:-1:-1;;;28902:53:91;;540:42:1;;9370:26271:91;28902:53;;9370:26271;540:42:1;;;;;;;;9370:26271:91;;;;;540:42:1;;9370:26271:91;;;;28902:53;;;;;;;;9370:26271;28965:14;;;;;;;9370:26271;;;;;;;;;;;;;28965:14;;;;;;;;;;9370:26271;;;28902:53;;;;;;-1:-1:-1;28902:53:91;;;;;;:::i;:::-;;;28854:38;;;;;;;;;:::i;:::-;9370:26271;;28854:38;;;;;;;28653:21;;;;;;:::i;:::-;9370:26271;28653:21;;;;9370:26271;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;:::o;:::-;-1:-1:-1;;;;;9370:26271:91;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;:::o;:::-;;779:22:61;;;9370:26271:91;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;:::o;:::-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;:::o;:::-;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;:::o;:::-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;9370:26271:91;;;;779:22:61;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;779:22:61;9370:26271:91;-1:-1:-1;;9370:26271:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9370:26271:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;:::i;:::-;;;;;;;:::o;1671:64:2:-;;9370:26271:91;;;;1671:64:2;;;;:::o;1819:584::-;1873:7;9370:26271:91;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;9370:26271:91;;;;;;;2196:43:2;;;;9370:26271:91;;;1671:64:2;;;9370:26271:91;1671:64:2;;9370:26271:91;;2196:43:2;;;;;:::i;:::-;2086:175;1671:64;9370:26271:91;;2086:175:2;;1671:64;2196:43;2086:175;;9370:26271:91;;;;;;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;:::i;:::-;9370:26271:91;;;;;;;:::i;:::-;1671:64:2;;;;2196:43;1671:64;;;;2196:43;9370:26271:91;;;2312:27:2;;1671:64;;;;2312:27;2196:43;1671:64;2312:27;;1671:64;:::i;:::-;9370:26271:91;1671:64:2;;;9370:26271:91;;;;;;;23831:17;9370:26271;;;;;;;;;;;23831:17;-1:-1:-1;9370:26271:91;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;20373:18;9370:26271;;;;;;;;;;;20373:18;-1:-1:-1;9370:26271:91;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;20854:17;9370:26271;;;;;;;;;;;20854:17;-1:-1:-1;9370:26271:91;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;21096:19;9370:26271;;;;;;;;;;;21096:19;-1:-1:-1;9370:26271:91;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;21344:23;9370:26271;;;;;;;;;;;21344:23;-1:-1:-1;9370:26271:91;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;21590:17;9370:26271;;;;;;;;;;;21590:17;-1:-1:-1;9370:26271:91;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;21830:17;9370:26271;;;;;;;;;;;21830:17;-1:-1:-1;9370:26271:91;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;-1:-1:-1;9370:26271:91;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;3774:10;9370:26271;;3774:10;;;;;;:::o;:::-;9370:26271;;;;3774:10;;;;;9370:26271;3774:10;;9370:26271;;23657:1;3774:10;;;;;;;:::o;:::-;9370:26271;;26323:1;3774:10;;;;;;;:::o;:::-;9370:26271;;25389:1;3774:10;;;;;;;:::o;:::-;9370:26271;;;3774:10;;;;;;;:::o;:::-;9370:26271;;12618:1;3774:10;;;;;;;:::o;:::-;9370:26271;;12882:1;3774:10;;;;;;;:::o;:::-;9370:26271;;13150:1;3774:10;;;;;;;:::o;:::-;9370:26271;;14383:1;3774:10;;;;;;;:::o;9370:26271::-;;;;;;;:::i;:::-;1671:64:2;9370:26271:91;;-1:-1:-1;9370:26271:91;;;;:::o;3038:2::-;9370:26271;;;;;;:::i;:::-;3038:2;9370:26271;3038:2;-1:-1:-1;3038:2:91;;-1:-1:-1;3038:2:91;;;;;;:::o;3688:::-;;;;;;;;:::o;:::-;9370:26271;;;-1:-1:-1;3688:2:91;;;;;-1:-1:-1;3688:2:91;;;-1:-1:-1;3688:2:91;;;:::o;8359:1007::-;9370:26271;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3688:2;9370:26271;;;;;;3288:7;9370:26271;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;8545:27;;;:::i;:::-;9370:26271;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3730:3;;;9370:26271;8696:58;;9370:26271;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;9370:26271:91;;8635:700;;9370:26271;8635:700;;3688:2;3090:7;9370:26271;8635:700;;9370:26271;;;8635:700;;3730:3;3147:2;9370:26271;8635:700;;3730:3;3038:2;9370:26271;8635:700;;3643:3;;9370:26271;8635:700;;3643:3;8635:700;;9370:26271;8635:700;;3688:2;8635:700;;3688:2;8635:700;;9370:26271;;8359:1007::o;4539:185:76:-;-1:-1:-1;9370:26271:91;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;-1:-1:-1;9370:26271:91;;-1:-1:-1;9370:26271:91;4618:99:76;;9370:26271:91;4539:185:76;:::o;9370:26271:91:-;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;17011:1;9370:26271;;;-1:-1:-1;9370:26271:91;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;;:::o;:::-;779:22:61;;;;;;;;9370:26271:91;;779:22:61;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;3688:2;;;:::i;:::-;9370:26271;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;11521:3185;;9370:26271;;11681:24;;;;;;;-1:-1:-1;;;;;11681:24:91;;;;;;;;;;;;;;;;;;9370:26271;;11755:24;;;;;;;-1:-1:-1;;;;;11755:24:91;;;;;;;;;;;;11681;11755;;;;;9370:26271;;11833:26;;;;;;;-1:-1:-1;;;;;11833:26:91;;;;;;;;;;;;11681:24;11833:26;;;;;;9370:26271;;11911:25;;;;;;;-1:-1:-1;;;;;11911:25:91;;;;;;;;;;;;11681:24;11911:25;;;;;9370:26271;;11977:25;;;;;;;-1:-1:-1;;;;;11977:25:91;;;;;;;;;;;;11681:24;11977:25;;;;;9370:26271;;12040:24;;;;;;;-1:-1:-1;;;;;12040:24:91;;;;;;;;;;;;11681;12040;;;;;;9370:26271;;12108:27;;;;;;;-1:-1:-1;;;;;12108:27:91;;;;;;;;;;;;11681:24;12108:27;;;;;;9370:26271;;12170:21;;;;;;;-1:-1:-1;;;;;12170:21:91;;;;;;;;;;;;11681:24;12170:21;;;;;;9370:26271;;12228:23;;;;;;;-1:-1:-1;;;;;12228:23:91;;;;;;;;;;;;11681:24;12228:23;;;;;;9370:26271;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;12328:1;9370:26271;;11681:24;9370:26271;;;;;;;;;;;;;:::i;:::-;;;;;;;;;11681:24;9370:26271;12373:211;;9370:26271;;;;;;12540:29;9370:26271;;;;;;12540:29;11681:24;9370:26271;;;11681:24;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12373:211;;9370:26271;12341:253;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;11681:24;9370:26271;12637:211;;9370:26271;;;;;;12804:29;9370:26271;;;;;;12804:29;11681:24;9370:26271;;;11681:24;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12637:211;;9370:26271;12605:253;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;11681:24;9370:26271;12901:215;;9370:26271;;;;;;13070:31;9370:26271;;;;;;13070:31;11681:24;9370:26271;;;11681:24;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12901:215;;9370:26271;12869:257;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;11681:24;9370:26271;13169:213;;9370:26271;;;;;;13337:30;9370:26271;;;;;;13337:30;11681:24;9370:26271;;;11681:24;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13169:213;;9370:26271;13137:255;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;11681:24;9370:26271;13435:189;;9370:26271;;;;;;13591:18;9370:26271;;;;;;13591:18;11681:24;9370:26271;;;11681:24;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13435:189;;9370:26271;13403:231;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;11681:24;9370:26271;13677:187;;9370:26271;;;;;;13832:17;9370:26271;;;;;;13832:17;11681:24;9370:26271;;;11681:24;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13677:187;;9370:26271;13645:229;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;11681:24;9370:26271;13917:193;;9370:26271;;;;;;14075:20;9370:26271;;;;;;14075:20;11681:24;9370:26271;;;11681:24;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13917:193;;9370:26271;13885:235;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;11681:24;9370:26271;14163:186;;9370:26271;;;;;;14318:16;9370:26271;;;;;;14318:16;11681:24;9370:26271;;;11681:24;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14163:186;;9370:26271;14131:228;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;11681:24;9370:26271;14402:187;;9370:26271;;;;;;14557:17;9370:26271;;;;;;14557:17;11681:24;9370:26271;;;11681:24;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14402:187;;9370:26271;14370:229;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;14627:40;;;;;;;;;-1:-1:-1;;;;;14627:40:91;;;;;9370:26271;14627:40;;;;9370:26271;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11681:24;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;14627:40;;11681:24;14627:40;;;;;14610:57;3774:10;;-1:-1:-1;;;;;;3774:10:91;-1:-1:-1;;;;;9370:26271:91;;;;3774:10;;;;;9370:26271;11521:3185::o;9370:26271::-;779:22:61;;;;;;9370:26271:91;779:22:61;9370:26271:91;;779:22:61;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3688:2;;;;;9370:26271;;;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3688:2;;;;:::i;:::-;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16331:2480::-;9370:26271;;16490:29;;;;;;;-1:-1:-1;;;;;16490:29:91;;;;;;;;;;;;;;;;;;9370:26271;;16561:28;;;;;;;-1:-1:-1;;;;;16561:28:91;;;;;;;;;;;;16490:29;16561:28;;;;;9370:26271;;16630:27;;;;;;;-1:-1:-1;;;;;16630:27:91;;;;;;;;;;;;16490:29;16630:27;;;;;;9370:26271;;16701:28;;;;;;;-1:-1:-1;;;;;16701:28:91;;;;;;;;;;;;16490:29;16701:28;;;;;9370:26271;;16784:35;;;;;;;-1:-1:-1;;;;;16784:35:91;;;;;;;;;;;;16490:29;16784:35;;;;;;9370:26271;;16857:23;;;;;;;-1:-1:-1;;;;;16857:23:91;;;;;;;;;;;;16490:29;16857:23;;;;;;9370:26271;;16915:21;;;;;;;-1:-1:-1;;;;;16915:21:91;;;;;;;;;;;;16490:29;16915:21;;;;;;16987:26;;:::i;:::-;9370:26271;;;;;;;:::i;:::-;;;;;;;;;16490:29;17054:189;;;9370:26271;;;;;17054:189;17210:18;9370:26271;;;;;;17210:18;16490:29;9370:26271;;;16490:29;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17054:189;;9370:26271;17024:229;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;16490:29;17054:189;17294:187;;9370:26271;;;;;17054:189;17449:17;9370:26271;;;;;;17449:17;16490:29;9370:26271;;;16490:29;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17294:187;;9370:26271;17264:227;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;16490:29;17054:189;17532:187;;9370:26271;;;;;17054:189;17687:17;9370:26271;;;;;;17687:17;16490:29;9370:26271;;;16490:29;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17532:187;;9370:26271;17502:227;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;16490:29;17054:189;17770:191;;9370:26271;;;;;17054:189;17927:19;9370:26271;;;;;;17927:19;16490:29;9370:26271;;;16490:29;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17770:191;;9370:26271;17740:231;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;16490:29;17054:189;18012:199;;9370:26271;;;;;17054:189;18173:23;9370:26271;;;;;;18173:23;16490:29;9370:26271;;;16490:29;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18012:199;;9370:26271;17982:239;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;16490:29;17054:189;18262:187;;9370:26271;;;;;17054:189;18417:17;9370:26271;;;;;;18417:17;16490:29;9370:26271;;;16490:29;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18262:187;;9370:26271;18232:227;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;;;;;:::i;:::-;;;;;;;;;16490:29;17054:189;18500:187;;9370:26271;;;;;17054:189;18655:17;9370:26271;;;;;;18655:17;16490:29;9370:26271;;;16490:29;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18500:187;;9370:26271;18470:227;;;:::i;:::-;;;;;:::i;:::-;;9370:26271;;18737:42;;;;;;;;;;-1:-1:-1;;;;;18737:42:91;;;;;;;;;;;;;:::i;:::-;;;16490:29;18737:42;;;;;16331:2480;:::o;9370:26271::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:189;9370:26271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;28500:1;9370:26271;;;-1:-1:-1;9370:26271:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;1220:14:3:-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;1220:14:3:o;540:42:1:-;;;;;;;;;;;;1671:64:2;;;:::i;:::-;779:22:61;-1:-1:-1;;540:42:1;;;;;9370:26271:91;;;;;;:::i;:::-;540:42:1;;;;;;;;;;;;;:::o;581:314:61:-;-1:-1:-1;;;;;581:314:61;9370:26271:91;;:::i;:::-;;695:118:61;9370:26271:91;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;779:22:61;;;480:2;;779:22;;;;;:::i;:::-;480:2;9370:26271:91;;;;;;:::i;:::-;3147:2;3730:3;;-1:-1:-1;;;;;779:22:61;719:84;;480:2;;;719:84;;;9370:26271:91;;;;;695:118:61;;;779:22;695:118;;;480:2;;9370:26271:91;480:2:61;;;9370:26271:91;480:2:61;;9370:26271:91;480:2:61;;;;9370:26271:91;480:2:61;;;;;;;;;:::i;:::-;695:118;779:22;;695:118;;;;;;:::i;:::-;9370:26271:91;;;;;:::i;:::-;438:1:61;3643:3:91;;779:22:61;837:51;;9370:26271:91;581:314:61;:::o;9370:26271:91:-;;;-1:-1:-1;;;;;9370:26271:91;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1220:14:3;;;;;:::i;:::-;9370:26271:91;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9370:26271:91;;;;;;:::o;234:9:40:-;9370:26271:91;;;;;;:::i;:::-;234:9:40;9370:26271:91;;:::i;:::-;234:9:40;;;9370:26271:91;;:::i;:::-;234:9:40;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;9370:26271:91;;;234:9:40;;;;;;;;;;;:::i;:::-;;;;;;;;;9370:26271:91;-1:-1:-1;;;;;234:9:40;;;;9370:26271:91;234:9:40;;;9370:26271:91;;;;234:9:40;;;;9370:26271:91;234:9:40;;;9370:26271:91;234:9:40;;;;;;;;;;;;;;:::i;:::-;;;;;;;9370:26271:91;234:9:40;;9370:26271:91;;234:9:40;;9370:26271:91;234:9:40;:::o;9370:26271:91:-;;;;:::o;:::-;;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;;33940:813;-1:-1:-1;;;;;9370:26271:91;;;;;;34118:38;;;;;9370:26271;;;;;;;;;;;34118:38;;34154:1;9370:26271;34154:1;34118:38;;;;;;;;;;9370:26271;34118:38;;;;;;;;;;;;;;33940:813;34249:64;;;;;;:::i;:::-;9370:26271;;;;;;;;;;;;;;;;;;;;;34356:25;;;;;;;;;;;;;33940:813;34413:9;;9370:26271;;;;;;34413:11;;;;9370:26271;;;;;34413:11;;;;;;9370:26271;;;;;;:::i;:::-;34413:11;;;;;;;;;;;;;;;;;33940:813;-1:-1:-1;9370:26271:91;;-1:-1:-1;;;34428:43:91;;9370:26271;;;;;;34428:43;;9370:26271;34428:43;;;;:::i;:::-;;;;;;;;;;;;9370:26271;34428:43;;;;;;;;33940:813;9370:26271;;;34428:52;;;;;;;;;;;;9370:26271;;;;;;:::i;:::-;34428:52;;;;;;;;;;;;33940:813;34413:67;;9370:26271;;34591:19;;;;34583:48;34641:46;34591:19;34697:49;34591:19;;;34583:48;:::i;9370:26271::-;;-1:-1:-1;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9370:26271:91;;;;;;-1:-1:-1;9370:26271:91;34428:52;;;;;;;;;;;;;;;;;:::i;:::-;;;9370:26271;;;;540:42:1;34428:52:91;;;;;;;;;;9370:26271;;;;;;;;;;34428:43;;;;;;;;;;;;;;:::i;:::-;;;;;;9370:26271;;;;;;;;;34413:11;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9370:26271;;;;540:42:1;;;;34428:43:91;34413:11;;;;;;;;9370:26271;;;;;;;;;34356:25;;;;;;;;;;;;;;:::i;:::-;;;;;;9370:26271;;;;;;;;;34118:38;;;34249:64;34118:38;;:::i;:::-;;;;;9370:26271;;;;;;;;;34915:541;;9370:26271;;:::i;:::-;-1:-1:-1;35079:44:91;3774:10;;-1:-1:-1;;;;;9370:26271:91;;;-1:-1:-1;;;;;;3774:10:91;;;;;;;;35133:42;3774:10;;;;;;;;;9370:26271;;-1:-1:-1;;;35213:25:91;;35133:42;;-1:-1:-1;;;;9370:26271:91;;35213:25;;9370:26271;;35213:25;;;;;;;;;;;:55;:25;;;;;34915:541;-1:-1:-1;9370:26271:91;;-1:-1:-1;;;35213:55:91;;9370:26271;35213:40;;9370:26271;;;;;35213:25;:55;;;:::i;:::-;;;;;;;;;;;;;;;34915:541;9370:26271;;;;;;;;;;;;;;;35319:17;;;;;;;;;35213:25;35319:17;;9370:26271;;;;;;:::i;:::-;35319:17;;;;;;;;;;;;;;;;34915:541;9370:26271;;;;;;;;;;;35302:35;;35213:25;35302:35;;9370:26271;35302:35;;;;;;;;;;;34915:541;35356:9;;;9370:26271;35356:9;;;9370:26271;;;-1:-1:-1;;;;;35381:19:91;;;;;9370:26271;;35402:27;;;;9370:26271;;35431:17;;9370:26271;35348:101;;;;;34915:541;:::o;35302:35::-;;;;;;;;;;;;;;:::i;:::-;;;9370:26271;;;;;;;;;;-1:-1:-1;;;;;9370:26271:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;540:42:1;;9370:26271:91;;;;;540:42:1;9370:26271:91;;;;;;;540:42:1;9370:26271:91;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;9370:26271:91;;;;;:::i;:::-;;;;;35302:35;;;;;;9370:26271;;;;;;;;;;;35319:17;;;;;;;;;;;;;;;;;;:::i;:::-;;;9370:26271;;;;540:42:1;;;35319:17:91;;;;;;;;;9370:26271;;;;;;;;;35213:55;9370:26271;35213:55;;;;;;;;;;;;;:::i;:::-;;;;:25;;;;;;;;;;;;;;:::i;:::-;;;;;;9370:26271;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":94449,"length":20},{"start":100368,"length":20},{"start":104882,"length":20},{"start":112233,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":66769,"length":20},{"start":68950,"length":20},{"start":69524,"length":20},{"start":93326,"length":20},{"start":115237,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":57979,"length":20},{"start":58750,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":150642,"length":20},{"start":163279,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":78987,"length":20},{"start":92964,"length":20},{"start":114739,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":11031,"length":20},{"start":11111,"length":20},{"start":11195,"length":20},{"start":11376,"length":20},{"start":11541,"length":20},{"start":33081,"length":20},{"start":33799,"length":20},{"start":42781,"length":20},{"start":57648,"length":20},{"start":64998,"length":20},{"start":65586,"length":20},{"start":66459,"length":20},{"start":68517,"length":20},{"start":68804,"length":20},{"start":69354,"length":20},{"start":72404,"length":20},{"start":74803,"length":20},{"start":74900,"length":20},{"start":75995,"length":20},{"start":78656,"length":20},{"start":78758,"length":20},{"start":79088,"length":20},{"start":79173,"length":20},{"start":79274,"length":20},{"start":79359,"length":20},{"start":80846,"length":20},{"start":80924,"length":20},{"start":81029,"length":20},{"start":81185,"length":20},{"start":81735,"length":20},{"start":81976,"length":20},{"start":82057,"length":20},{"start":87530,"length":20},{"start":92033,"length":20},{"start":92709,"length":20},{"start":98304,"length":20},{"start":98523,"length":20},{"start":98603,"length":20},{"start":98784,"length":20},{"start":98965,"length":20},{"start":112415,"length":20},{"start":114475,"length":20},{"start":134418,"length":20},{"start":156172,"length":20}]}}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","addStake(uint256,address)":"2d49aa1c","addValidator(address)":"4d238c8e","addValidator(address,uint256)":"fc6c1f02","createGatewayDiamond(((uint64,address[]),uint256,uint256,uint8,(uint256,address,bytes)[],uint16))":"1e334294","createMockedSubnetActorWithGateway(address)":"951759c9","createSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":"c69a0469","createSubnetActor(address,uint8,uint256,uint64,uint64,uint8)":"a0aaa285","createSubnetActor(address,uint8,uint256,uint64,uint64,uint8,uint8,uint16)":"5c2c2fed","createSubnetActorDiamondWithFaucets(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)),address,address,address,address,address)":"ea1c89ed","createSubnetRegistry((address,address,address,bytes4[],bytes4[]))":"c33dd9d5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fund(address,uint256)":"7b1837de","fund(address,uint256,uint8)":"eb8df052","getSubnet(address)":"dd784974","getSubnetGW(address,address)":"87105557","join(address,bytes)":"d8d52713","registerSubnet(uint256,address)":"63323eb8","registerSubnetGW(uint256,address,address)":"fbfb8927","release(uint256)":"37bdc99b","reward(uint256)":"a9fb763c","setUp()":"0a9254e4","setupValidators()":"9c821dc6","setupWhiteListMethod(address,address)":"9b211080","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","totalWeight(uint256[])":"30dd2c45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subnetRegistryAddress\",\"type\":\"address\"}],\"name\":\"SubnetRegistryCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"addValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"}],\"name\":\"addValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"networkName\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"msgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"genesisValidators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"}],\"internalType\":\"struct GatewayDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createGatewayDiamond\",\"outputs\":[{\"internalType\":\"contract GatewayDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"createMockedSubnetActorWithGateway\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"_consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_checkPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"_permissionMode\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"_activeValidatorsLimit\",\"type\":\"uint16\"}],\"name\":\"createSubnetActor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"_consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_checkPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"}],\"name\":\"createSubnetActor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createSubnetActor\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"getter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pauser\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rewarder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"checkpointer\",\"type\":\"address\"}],\"name\":\"createSubnetActorDiamondWithFaucets\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"getterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct SubnetRegistryDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createSubnetRegistry\",\"outputs\":[{\"internalType\":\"contract SubnetRegistryDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"funderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fundAmount\",\"type\":\"uint256\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"funderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fundAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum SupplyKind\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"getSubnet\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"},{\"internalType\":\"contract GatewayDiamond\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"getSubnetGW\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"registerSubnet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"},{\"internalType\":\"contract GatewayDiamond\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"registerSubnetGW\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"releaseAmount\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reward\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setupValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"}],\"name\":\"setupWhiteListMethod\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"weights\",\"type\":\"uint256[]\"}],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sum\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"IntegrationTestBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402\",\"dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd\",\"dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3\",\"dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorCheckpointingFacet.sol\":{\"keccak256\":\"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a\",\"dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8\",\"dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm\"]},\"src/subnet/SubnetActorPauseFacet.sol\":{\"keccak256\":\"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14\",\"dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb\"]},\"src/subnet/SubnetActorRewardFacet.sol\":{\"keccak256\":\"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088\",\"dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0x67f2f3bb9cc8e8b503a8399df4c5c5cd86388257fc90451e5e352382fed9eaa6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be78f3e3535929f0b5955f2053bf409dd593d20b561a7f19efa917cdbef4bc28\",\"dweb:/ipfs/QmcwrfvXweJEEK8h2mdt9UtCpGg2WCWN8kRjc8M54sRyiv\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f\",\"dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorMock.sol\":{\"keccak256\":\"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43\",\"dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"subnetRegistryAddress","type":"address","indexed":true}],"type":"event","name":"SubnetRegistryCreated","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"stakeAmount","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addStake"},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addValidator"},{"inputs":[{"internalType":"address","name":"validator","type":"address"},{"internalType":"uint256","name":"weight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addValidator"},{"inputs":[{"internalType":"struct GatewayDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"networkName","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"bottomUpCheckPeriod","type":"uint256"},{"internalType":"uint256","name":"msgFee","type":"uint256"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"struct Validator[]","name":"genesisValidators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"}]}],"stateMutability":"nonpayable","type":"function","name":"createGatewayDiamond","outputs":[{"internalType":"contract GatewayDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createMockedSubnetActorWithGateway","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"_consensus","type":"uint8"},{"internalType":"uint256","name":"_minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_checkPeriod","type":"uint64"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"},{"internalType":"enum PermissionMode","name":"_permissionMode","type":"uint8"},{"internalType":"uint16","name":"_activeValidatorsLimit","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor"},{"inputs":[{"internalType":"address","name":"_ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"_consensus","type":"uint8"},{"internalType":"uint256","name":"_minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_checkPeriod","type":"uint64"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor"},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]},{"internalType":"address","name":"getter","type":"address"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"address","name":"pauser","type":"address"},{"internalType":"address","name":"rewarder","type":"address"},{"internalType":"address","name":"checkpointer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActorDiamondWithFaucets","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetRegistryDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"gateway","type":"address"},{"internalType":"address","name":"getterFacet","type":"address"},{"internalType":"address","name":"managerFacet","type":"address"},{"internalType":"bytes4[]","name":"subnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"subnetManagerSelectors","type":"bytes4[]"}]}],"stateMutability":"nonpayable","type":"function","name":"createSubnetRegistry","outputs":[{"internalType":"contract SubnetRegistryDiamond","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"funderAddress","type":"address"},{"internalType":"uint256","name":"fundAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fund"},{"inputs":[{"internalType":"address","name":"funderAddress","type":"address"},{"internalType":"uint256","name":"fundAmount","type":"uint256"},{"internalType":"enum SupplyKind","name":"mode","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"fund"},{"inputs":[{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getSubnet","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"subnetAddress","type":"address"},{"internalType":"contract GatewayDiamond","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getSubnetGW","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validatorAddress","type":"address"},{"internalType":"bytes","name":"pubkey","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"join"},{"inputs":[{"internalType":"uint256","name":"collateral","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerSubnet"},{"inputs":[{"internalType":"uint256","name":"collateral","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"},{"internalType":"contract GatewayDiamond","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerSubnetGW"},{"inputs":[{"internalType":"uint256","name":"releaseAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"reward"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setupValidators","outputs":[{"internalType":"struct FvmAddress[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"address[]","name":"addresses","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"src","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setupWhiteListMethod","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"uint256[]","name":"weights","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"totalWeight","outputs":[{"internalType":"uint256","name":"sum","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"IntegrationTestBase"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa","urls":["bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402","dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6","urls":["bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd","dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451","urls":["bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3","dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorCheckpointingFacet.sol":{"keccak256":"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96","urls":["bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a","dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c","urls":["bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8","dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorPauseFacet.sol":{"keccak256":"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49","urls":["bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14","dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorRewardFacet.sol":{"keccak256":"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435","urls":["bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088","dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0x67f2f3bb9cc8e8b503a8399df4c5c5cd86388257fc90451e5e352382fed9eaa6","urls":["bzz-raw://be78f3e3535929f0b5955f2053bf409dd593d20b561a7f19efa917cdbef4bc28","dweb:/ipfs/QmcwrfvXweJEEK8h2mdt9UtCpGg2WCWN8kRjc8M54sRyiv"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d","urls":["bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f","dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorMock.sol":{"keccak256":"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a","urls":["bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43","dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55677,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49885],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49927],"CrossMsgHelper":[40725],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49951],"FvmAddressHelper":[40906],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50157],"IntegrationTestBase":[55676],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49871],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50118],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52286],"SelectorLibrary":[56636],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49944],"StorableMsgHelper":[47414],"Subnet":[50044],"SubnetActorCheckpointingFacet":[50577],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[51235],"SubnetActorManagerFacet":[51946],"SubnetActorMock":[58342],"SubnetActorPauseFacet":[51991],"SubnetActorRewardFacet":[52158],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52524],"SubnetID":[50030],"SubnetIDHelper":[48025],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50182],"SupplySource":[50179],"SupplySourceHelper":[48351],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52925],"TestParams":[52696],"TestRegistry":[52760],"TestSubnetActor":[53089],"TestUtils":[57424],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50164],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:35596:91","nodes":[{"id":52526,"nodeType":"PragmaDirective","src":"46:23:91","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52527,"nodeType":"ImportDirective","src":"71:28:91","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52528,"nodeType":"ImportDirective","src":"100:36:91","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"137:37:91","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52532,"nodeType":"ImportDirective","src":"176:72:91","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52530,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"249:61:91","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52533,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"311:56:91","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52535,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52541,"nodeType":"ImportDirective","src":"368:102:91","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":52537,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"376:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"386:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"406:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"419:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52543,"nodeType":"ImportDirective","src":"471:57:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":52542,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"479:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52552,"nodeType":"ImportDirective","src":"529:140:91","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":52544,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"537:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52545,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"547:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52546,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"559:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52547,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"575:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52548,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"591:6:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52549,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"599:12:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52550,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"613:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52551,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"625:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52554,"nodeType":"ImportDirective","src":"670:61:91","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":52553,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"678:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52556,"nodeType":"ImportDirective","src":"732:65:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40907,"symbolAliases":[{"foreign":{"id":52555,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"740:16:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52558,"nodeType":"ImportDirective","src":"798:61:91","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":52557,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"806:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52560,"nodeType":"ImportDirective","src":"860:67:91","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":52559,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"868:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52562,"nodeType":"ImportDirective","src":"928:56:91","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52561,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52564,"nodeType":"ImportDirective","src":"985:57:91","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52563,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52566,"nodeType":"ImportDirective","src":"1043:65:91","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52565,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52568,"nodeType":"ImportDirective","src":"1109:73:91","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52567,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52570,"nodeType":"ImportDirective","src":"1183:79:91","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52569,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52572,"nodeType":"ImportDirective","src":"1263:75:91","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52571,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52574,"nodeType":"ImportDirective","src":"1340:80:91","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52573,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52576,"nodeType":"ImportDirective","src":"1421:80:91","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52575,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52578,"nodeType":"ImportDirective","src":"1502:84:91","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52577,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52580,"nodeType":"ImportDirective","src":"1587:82:91","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52579,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52582,"nodeType":"ImportDirective","src":"1671:60:91","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"./mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":58343,"symbolAliases":[{"foreign":{"id":52581,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58342,"src":"1679:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52584,"nodeType":"ImportDirective","src":"1732:82:91","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":52583,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"1740:23:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52586,"nodeType":"ImportDirective","src":"1815:78:91","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":52585,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"1823:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52588,"nodeType":"ImportDirective","src":"1894:94:91","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":52587,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"1902:29:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52590,"nodeType":"ImportDirective","src":"1989:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":52589,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"1997:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52592,"nodeType":"ImportDirective","src":"2070:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":52591,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"2078:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52594,"nodeType":"ImportDirective","src":"2152:71:91","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52593,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"2160:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52596,"nodeType":"ImportDirective","src":"2224:82:91","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":52595,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"2232:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52598,"nodeType":"ImportDirective","src":"2307:78:91","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":52597,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"2315:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52600,"nodeType":"ImportDirective","src":"2387:71:91","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52599,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2395:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52602,"nodeType":"ImportDirective","src":"2459:67:91","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52601,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2467:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52604,"nodeType":"ImportDirective","src":"2527:69:91","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":52603,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"2535:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52606,"nodeType":"ImportDirective","src":"2597:50:91","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":57425,"symbolAliases":[{"foreign":{"id":52605,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57424,"src":"2605:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52608,"nodeType":"ImportDirective","src":"2648:62:91","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":56637,"symbolAliases":[{"foreign":{"id":52607,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"2656:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52696,"nodeType":"ContractDefinition","src":"2712:1194:91","nodes":[{"id":52615,"nodeType":"VariableDeclaration","src":"2738:44:91","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2754:9:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2738:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2771:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52611,"name":"uint64","nodeType":"ElementaryTypeName","src":"2771:6:91","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52610,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2766:4:91","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2766:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2779:3:91","memberName":"max","nodeType":"MemberAccess","src":"2766:16:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52621,"nodeType":"VariableDeclaration","src":"2788:91:91","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2805:20:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52616,"name":"address","nodeType":"ElementaryTypeName","src":"2788:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2836:42:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2828:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52617,"name":"address","nodeType":"ElementaryTypeName","src":"2828:7:91","typeDescriptions":{}}},"id":52620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2828:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52624,"nodeType":"VariableDeclaration","src":"2885:42:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2901:22:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52622,"name":"uint64","nodeType":"ElementaryTypeName","src":"2885:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2926:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52627,"nodeType":"VariableDeclaration","src":"2933:54:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2950:27:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52625,"name":"uint256","nodeType":"ElementaryTypeName","src":"2933:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2980:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52630,"nodeType":"VariableDeclaration","src":"2993:47:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"3008:27:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52628,"name":"uint8","nodeType":"ElementaryTypeName","src":"2993:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:2:91","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52633,"nodeType":"VariableDeclaration","src":"3046:51:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"3062:25:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52631,"name":"uint64","nodeType":"ElementaryTypeName","src":"3046:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3090:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52636,"nodeType":"VariableDeclaration","src":"3103:46:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"3119:25:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52634,"name":"uint64","nodeType":"ElementaryTypeName","src":"3103:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52639,"nodeType":"VariableDeclaration","src":"3155:44:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"3171:16:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52637,"name":"string","nodeType":"ElementaryTypeName","src":"3155:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3190:9:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52642,"nodeType":"VariableDeclaration","src":"3205:36:91","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"3220:7:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52640,"name":"bytes","nodeType":"ElementaryTypeName","src":"3205:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52641,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3230:11:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52645,"nodeType":"VariableDeclaration","src":"3247:48:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3264:21:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52643,"name":"uint256","nodeType":"ElementaryTypeName","src":"3247:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52648,"nodeType":"VariableDeclaration","src":"3301:49:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3318:22:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52646,"name":"uint256","nodeType":"ElementaryTypeName","src":"3301:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3343:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52654,"nodeType":"VariableDeclaration","src":"3356:52:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3373:21:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52649,"name":"address","nodeType":"ElementaryTypeName","src":"3356:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3405:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3397:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52650,"name":"address","nodeType":"ElementaryTypeName","src":"3397:7:91","typeDescriptions":{}}},"id":52653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3397:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52660,"nodeType":"VariableDeclaration","src":"3414:54:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3431:23:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52655,"name":"address","nodeType":"ElementaryTypeName","src":"3414:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3465:2:91","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3457:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52656,"name":"address","nodeType":"ElementaryTypeName","src":"3457:7:91","typeDescriptions":{}}},"id":52659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3457:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52665,"nodeType":"VariableDeclaration","src":"3474:57:91","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3490:9:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52661,"name":"uint64","nodeType":"ElementaryTypeName","src":"3474:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3502:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52663,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"3506:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3502:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52668,"nodeType":"VariableDeclaration","src":"3537:50:91","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3554:23:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3537:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3580:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52671,"nodeType":"VariableDeclaration","src":"3593:53:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3609:31:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52669,"name":"uint16","nodeType":"ElementaryTypeName","src":"3593:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3643:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52674,"nodeType":"VariableDeclaration","src":"3652:38:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3666:19:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52672,"name":"int8","nodeType":"ElementaryTypeName","src":"3652:4:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3688:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52677,"nodeType":"VariableDeclaration","src":"3696:37:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3712:15:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52675,"name":"uint64","nodeType":"ElementaryTypeName","src":"3696:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3730:3:91","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52683,"nodeType":"VariableDeclaration","src":"3739:45:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3756:15:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3782:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3774:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52679,"name":"address","nodeType":"ElementaryTypeName","src":"3774:7:91","typeDescriptions":{}}},"id":52682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52689,"nodeType":"VariableDeclaration","src":"3790:57:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3807:24:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52684,"name":"address","nodeType":"ElementaryTypeName","src":"3790:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3842:4:91","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3834:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52685,"name":"address","nodeType":"ElementaryTypeName","src":"3834:7:91","typeDescriptions":{}}},"id":52688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52695,"nodeType":"VariableDeclaration","src":"3853:50:91","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3870:19:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52690,"name":"address","nodeType":"ElementaryTypeName","src":"3853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3900:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3892:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52691,"name":"address","nodeType":"ElementaryTypeName","src":"3892:7:91","typeDescriptions":{}}},"id":52694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3892:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52696],"name":"TestParams","nameLocation":"2721:10:91","scope":55677,"usedErrors":[]},{"id":52760,"nodeType":"ContractDefinition","src":"3908:824:91","nodes":[{"id":52703,"nodeType":"VariableDeclaration","src":"3956:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3965:28:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52701,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3956:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52702,"nodeType":"ArrayTypeName","src":"3956:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52706,"nodeType":"VariableDeclaration","src":"3999:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"4008:34:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52704,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3999:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52705,"nodeType":"ArrayTypeName","src":"3999:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52709,"nodeType":"VariableDeclaration","src":"4048:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"4057:23:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52707,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4048:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52708,"nodeType":"ArrayTypeName","src":"4048:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52712,"nodeType":"VariableDeclaration","src":"4086:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"4095:23:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52710,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4086:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52711,"nodeType":"ArrayTypeName","src":"4086:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52715,"nodeType":"VariableDeclaration","src":"4125:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"4147:15:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52714,"nodeType":"UserDefinedTypeName","pathNode":{"id":52713,"name":"SubnetRegistryDiamond","nameLocations":["4125:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"4125:21:91"},"referencedDeclaration":36853,"src":"4125:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52718,"nodeType":"VariableDeclaration","src":"4168:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"4186:14:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52717,"nodeType":"UserDefinedTypeName","pathNode":{"id":52716,"name":"DiamondLoupeFacet","nameLocations":["4168:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"4168:17:91"},"referencedDeclaration":37355,"src":"4168:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52721,"nodeType":"VariableDeclaration","src":"4206:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"4222:14:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52720,"nodeType":"UserDefinedTypeName","pathNode":{"id":52719,"name":"DiamondCutFacet","nameLocations":["4206:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"4206:15:91"},"referencedDeclaration":36918,"src":"4206:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52724,"nodeType":"VariableDeclaration","src":"4242:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4262:19:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52723,"nodeType":"UserDefinedTypeName","pathNode":{"id":52722,"name":"RegisterSubnetFacet","nameLocations":["4242:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"4242:19:91"},"referencedDeclaration":52286,"src":"4242:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52727,"nodeType":"VariableDeclaration","src":"4287:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4305:25:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52726,"nodeType":"UserDefinedTypeName","pathNode":{"id":52725,"name":"SubnetGetterFacet","nameLocations":["4287:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"4287:17:91"},"referencedDeclaration":52524,"src":"4287:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52759,"nodeType":"FunctionDefinition","src":"4337:393:91","nodes":[],"body":{"id":52758,"nodeType":"Block","src":"4351:379:91","nodes":[],"statements":[{"expression":{"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52730,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52703,"src":"4361:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4425:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52731,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4392:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4408:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4392:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4392:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4361:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52736,"nodeType":"ExpressionStatement","src":"4361:86:91"},{"expression":{"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52737,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"4457:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4527:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52738,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4494:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4510:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4494:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4494:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4457:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52743,"nodeType":"ExpressionStatement","src":"4457:90:91"},{"expression":{"id":52749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52744,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"4557:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4616:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52745,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4583:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4599:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4583:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4583:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4557:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52750,"nodeType":"ExpressionStatement","src":"4557:77:91"},{"expression":{"id":52756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52751,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"4644:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4703:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52752,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4670:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4686:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4670:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4670:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4644:79:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52757,"nodeType":"ExpressionStatement","src":"4644:79:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52728,"nodeType":"ParameterList","parameters":[],"src":"4348:2:91"},"returnParameters":{"id":52729,"nodeType":"ParameterList","parameters":[],"src":"4351:0:91"},"scope":52760,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52697,"name":"Test","nameLocations":["3933:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3933:4:91"},"id":52698,"nodeType":"InheritanceSpecifier","src":"3933:4:91"},{"baseName":{"id":52699,"name":"TestParams","nameLocations":["3939:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"3939:10:91"},"id":52700,"nodeType":"InheritanceSpecifier","src":"3939:10:91"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52760,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3917:12:91","scope":55677,"usedErrors":[]},{"id":52925,"nodeType":"ContractDefinition","src":"4734:2237:91","nodes":[{"id":52767,"nodeType":"VariableDeclaration","src":"4786:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4795:29:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52765,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4786:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52766,"nodeType":"ArrayTypeName","src":"4786:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52770,"nodeType":"VariableDeclaration","src":"4830:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4839:29:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52768,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4830:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52769,"nodeType":"ArrayTypeName","src":"4830:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52773,"nodeType":"VariableDeclaration","src":"4874:40:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4883:31:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52771,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4874:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52772,"nodeType":"ArrayTypeName","src":"4874:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52776,"nodeType":"VariableDeclaration","src":"4920:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4929:30:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52774,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4920:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52775,"nodeType":"ArrayTypeName","src":"4920:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52779,"nodeType":"VariableDeclaration","src":"4966:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4975:18:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52777,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4966:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52778,"nodeType":"ArrayTypeName","src":"4966:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52782,"nodeType":"VariableDeclaration","src":"4999:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"5008:17:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52780,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4999:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52781,"nodeType":"ArrayTypeName","src":"4999:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52785,"nodeType":"VariableDeclaration","src":"5031:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"5040:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52783,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5031:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52784,"nodeType":"ArrayTypeName","src":"5031:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52788,"nodeType":"VariableDeclaration","src":"5067:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"5076:17:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52786,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5067:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52787,"nodeType":"ArrayTypeName","src":"5067:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52791,"nodeType":"VariableDeclaration","src":"5099:25:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"5108:16:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52789,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5099:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52790,"nodeType":"ArrayTypeName","src":"5099:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52794,"nodeType":"VariableDeclaration","src":"5131:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"5146:14:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52793,"nodeType":"UserDefinedTypeName","pathNode":{"id":52792,"name":"GatewayDiamond","nameLocations":["5131:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"5131:14:91"},"referencedDeclaration":36170,"src":"5131:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52797,"nodeType":"VariableDeclaration","src":"5166:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"5186:9:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52796,"nodeType":"UserDefinedTypeName","pathNode":{"id":52795,"name":"GatewayManagerFacet","nameLocations":["5166:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"5166:19:91"},"referencedDeclaration":38870,"src":"5166:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52800,"nodeType":"VariableDeclaration","src":"5201:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"5220:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52799,"nodeType":"UserDefinedTypeName","pathNode":{"id":52798,"name":"GatewayGetterFacet","nameLocations":["5201:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"5201:18:91"},"referencedDeclaration":38317,"src":"5201:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52803,"nodeType":"VariableDeclaration","src":"5234:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5253:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52802,"nodeType":"UserDefinedTypeName","pathNode":{"id":52801,"name":"CheckpointingFacet","nameLocations":["5234:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5234:18:91"},"referencedDeclaration":39870,"src":"5234:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52806,"nodeType":"VariableDeclaration","src":"5279:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5298:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52805,"nodeType":"UserDefinedTypeName","pathNode":{"id":52804,"name":"XnetMessagingFacet","nameLocations":["5279:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5279:18:91"},"referencedDeclaration":40144,"src":"5279:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52809,"nodeType":"VariableDeclaration","src":"5324:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5345:22:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52808,"nodeType":"UserDefinedTypeName","pathNode":{"id":52807,"name":"TopDownFinalityFacet","nameLocations":["5324:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5324:20:91"},"referencedDeclaration":40071,"src":"5324:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52812,"nodeType":"VariableDeclaration","src":"5373:41:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5393:21:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52811,"nodeType":"UserDefinedTypeName","pathNode":{"id":52810,"name":"BottomUpRouterFacet","nameLocations":["5373:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5373:19:91"},"referencedDeclaration":39601,"src":"5373:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52815,"nodeType":"VariableDeclaration","src":"5420:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5442:11:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52814,"nodeType":"UserDefinedTypeName","pathNode":{"id":52813,"name":"GatewayMessengerFacet","nameLocations":["5420:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5420:21:91"},"referencedDeclaration":39235,"src":"5420:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52818,"nodeType":"VariableDeclaration","src":"5459:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5475:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52817,"nodeType":"UserDefinedTypeName","pathNode":{"id":52816,"name":"DiamondCutFacet","nameLocations":["5459:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5459:15:91"},"referencedDeclaration":36918,"src":"5459:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52821,"nodeType":"VariableDeclaration","src":"5489:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5507:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52820,"nodeType":"UserDefinedTypeName","pathNode":{"id":52819,"name":"DiamondLoupeFacet","nameLocations":["5489:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5489:17:91"},"referencedDeclaration":37355,"src":"5489:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52888,"nodeType":"FunctionDefinition","src":"5522:835:91","nodes":[],"body":{"id":52887,"nodeType":"Block","src":"5536:821:91","nodes":[],"statements":[{"expression":{"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52824,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52767,"src":"5546:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5611:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52825,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5578:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5594:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5578:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5546:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52830,"nodeType":"ExpressionStatement","src":"5546:86:91"},{"expression":{"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52831,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52770,"src":"5642:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5707:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52832,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5674:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5690:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5674:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5674:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5642:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52837,"nodeType":"ExpressionStatement","src":"5642:86:91"},{"expression":{"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52838,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52773,"src":"5738:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5805:22:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52839,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5772:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5788:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5772:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5772:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5738:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52844,"nodeType":"ExpressionStatement","src":"5738:90:91"},{"expression":{"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52845,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"5838:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5904:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52846,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5871:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5887:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5871:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5871:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5838:88:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52851,"nodeType":"ExpressionStatement","src":"5838:88:91"},{"expression":{"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52852,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52782,"src":"5937:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5990:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52853,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5957:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5973:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5957:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5957:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5937:74:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52858,"nodeType":"ExpressionStatement","src":"5937:74:91"},{"expression":{"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52859,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52779,"src":"6021:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6075:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52860,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6042:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6058:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6042:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6042:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6021:76:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52865,"nodeType":"ExpressionStatement","src":"6021:76:91"},{"expression":{"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52866,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52785,"src":"6107:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6163:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52867,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6130:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6146:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6130:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6130:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6107:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52872,"nodeType":"ExpressionStatement","src":"6107:80:91"},{"expression":{"id":52878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52873,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52788,"src":"6197:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6250:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52874,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6217:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6233:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6217:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6217:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6197:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52879,"nodeType":"ExpressionStatement","src":"6197:71:91"},{"expression":{"id":52885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52880,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52791,"src":"6278:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6330:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52881,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6297:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6313:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6297:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6297:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6278:72:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52886,"nodeType":"ExpressionStatement","src":"6278:72:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52822,"nodeType":"ParameterList","parameters":[],"src":"5533:2:91"},"returnParameters":{"id":52823,"nodeType":"ParameterList","parameters":[],"src":"5536:0:91"},"scope":52925,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52924,"nodeType":"FunctionDefinition","src":"6363:606:91","nodes":[],"body":{"id":52923,"nodeType":"Block","src":"6467:502:91","nodes":[],"statements":[{"assignments":[52898],"declarations":[{"constant":false,"id":52898,"mutability":"mutable","name":"params","nameLocation":"6517:6:91","nodeType":"VariableDeclaration","scope":52923,"src":"6477:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52897,"nodeType":"UserDefinedTypeName","pathNode":{"id":52896,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6477:14:91","6492:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6477:32:91"},"referencedDeclaration":35883,"src":"6477:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52920,"initialValue":{"arguments":[{"arguments":[{"id":52902,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"6602:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6640:1:91","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":52905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6626:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52903,"name":"address","nodeType":"ElementaryTypeName","src":"6630:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52904,"nodeType":"ArrayTypeName","src":"6630:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6626:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52901,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"6586:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6596:4:91","6619:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"6586:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52909,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"6679:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52910,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"6726:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52911,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52630,"src":"6781:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6857:1:91","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":52915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6841:15:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52913,"nodeType":"UserDefinedTypeName","pathNode":{"id":52912,"name":"Validator","nameLocations":["6845:9:91"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"6845:9:91"},"referencedDeclaration":50164,"src":"6845:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":52914,"nodeType":"ArrayTypeName","src":"6845:11:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6841:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52918,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"6896:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52899,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6526:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6541:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6526:32:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6573:11:91","6658:19:91","6718:6:91","6761:18:91","6822:17:91","6873:21:91"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6526:412:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6477:461:91"},{"expression":{"id":52921,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"6956:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52893,"id":52922,"nodeType":"Return","src":"6949:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6372:20:91","parameters":{"id":52889,"nodeType":"ParameterList","parameters":[],"src":"6392:2:91"},"returnParameters":{"id":52893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52924,"src":"6426:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52891,"nodeType":"UserDefinedTypeName","pathNode":{"id":52890,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6426:14:91","6441:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6426:32:91"},"referencedDeclaration":35883,"src":"6426:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6425:41:91"},"scope":52925,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52761,"name":"Test","nameLocations":["4763:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4763:4:91"},"id":52762,"nodeType":"InheritanceSpecifier","src":"4763:4:91"},{"baseName":{"id":52763,"name":"TestParams","nameLocations":["4769:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"4769:10:91"},"id":52764,"nodeType":"InheritanceSpecifier","src":"4769:10:91"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52925,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4743:16:91","scope":55677,"usedErrors":[]},{"id":53089,"nodeType":"ContractDefinition","src":"6973:2395:91","nodes":[{"id":52932,"nodeType":"VariableDeclaration","src":"7024:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"7033:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52930,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7024:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52931,"nodeType":"ArrayTypeName","src":"7024:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52935,"nodeType":"VariableDeclaration","src":"7056:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"7065:18:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52933,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7056:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52934,"nodeType":"ArrayTypeName","src":"7056:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52938,"nodeType":"VariableDeclaration","src":"7089:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauserSelectors","nameLocation":"7098:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52936,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7089:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52937,"nodeType":"ArrayTypeName","src":"7089:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52941,"nodeType":"VariableDeclaration","src":"7121:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarderSelectors","nameLocation":"7130:19:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52939,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7121:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52940,"nodeType":"ArrayTypeName","src":"7121:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52944,"nodeType":"VariableDeclaration","src":"7155:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointerSelectors","nameLocation":"7164:23:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52942,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7155:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52943,"nodeType":"ArrayTypeName","src":"7155:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52947,"nodeType":"VariableDeclaration","src":"7193:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"7202:24:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52945,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7193:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52946,"nodeType":"ArrayTypeName","src":"7193:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52950,"nodeType":"VariableDeclaration","src":"7232:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"7241:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52948,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7232:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52949,"nodeType":"ArrayTypeName","src":"7232:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52953,"nodeType":"VariableDeclaration","src":"7264:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"7273:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52951,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7264:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52952,"nodeType":"ArrayTypeName","src":"7264:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52956,"nodeType":"VariableDeclaration","src":"7297:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"7316:9:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52955,"nodeType":"UserDefinedTypeName","pathNode":{"id":52954,"name":"SubnetActorDiamond","nameLocations":["7297:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"7297:18:91"},"referencedDeclaration":36615,"src":"7297:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52959,"nodeType":"VariableDeclaration","src":"7331:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7355:9:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52958,"nodeType":"UserDefinedTypeName","pathNode":{"id":52957,"name":"SubnetActorManagerFacet","nameLocations":["7331:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"7331:23:91"},"referencedDeclaration":51946,"src":"7331:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52962,"nodeType":"VariableDeclaration","src":"7370:22:91","nodes":[],"constant":false,"mutability":"mutable","name":"saMock","nameLocation":"7386:6:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"},"typeName":{"id":52961,"nodeType":"UserDefinedTypeName","pathNode":{"id":52960,"name":"SubnetActorMock","nameLocations":["7370:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"7370:15:91"},"referencedDeclaration":58342,"src":"7370:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"visibility":"internal"},{"id":52965,"nodeType":"VariableDeclaration","src":"7398:31:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7421:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52964,"nodeType":"UserDefinedTypeName","pathNode":{"id":52963,"name":"SubnetActorGetterFacet","nameLocations":["7398:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"7398:22:91"},"referencedDeclaration":51235,"src":"7398:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52968,"nodeType":"VariableDeclaration","src":"7435:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarder","nameLocation":"7458:10:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":52967,"nodeType":"UserDefinedTypeName","pathNode":{"id":52966,"name":"SubnetActorRewardFacet","nameLocations":["7435:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"7435:22:91"},"referencedDeclaration":52158,"src":"7435:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"},{"id":52971,"nodeType":"VariableDeclaration","src":"7474:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauser","nameLocation":"7496:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":52970,"nodeType":"UserDefinedTypeName","pathNode":{"id":52969,"name":"SubnetActorPauseFacet","nameLocations":["7474:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"7474:21:91"},"referencedDeclaration":51991,"src":"7474:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"},{"id":52974,"nodeType":"VariableDeclaration","src":"7510:44:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointer","nameLocation":"7540:14:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":52973,"nodeType":"UserDefinedTypeName","pathNode":{"id":52972,"name":"SubnetActorCheckpointingFacet","nameLocations":["7510:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"7510:29:91"},"referencedDeclaration":50577,"src":"7510:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"},{"id":52977,"nodeType":"VariableDeclaration","src":"7561:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7577:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52976,"nodeType":"UserDefinedTypeName","pathNode":{"id":52975,"name":"DiamondCutFacet","nameLocations":["7561:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7561:15:91"},"referencedDeclaration":36918,"src":"7561:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52980,"nodeType":"VariableDeclaration","src":"7591:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7609:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52979,"nodeType":"UserDefinedTypeName","pathNode":{"id":52978,"name":"DiamondLoupeFacet","nameLocations":["7591:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7591:17:91"},"referencedDeclaration":37355,"src":"7591:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":53040,"nodeType":"FunctionDefinition","src":"7624:729:91","nodes":[],"body":{"id":53039,"nodeType":"Block","src":"7638:715:91","nodes":[],"statements":[{"expression":{"id":52988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52983,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"7648:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7701:24:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52984,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7668:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7684:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7668:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7668:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7648:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52989,"nodeType":"ExpressionStatement","src":"7648:78:91"},{"expression":{"id":52995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52990,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"7736:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7790:25:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52991,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7757:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7773:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7757:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7757:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7736:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52996,"nodeType":"ExpressionStatement","src":"7736:80:91"},{"expression":{"id":53002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52997,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"7826:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":53000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7879:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""},"value":"SubnetActorPauseFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""}],"expression":{"id":52998,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7846:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7862:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7846:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7846:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7826:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53003,"nodeType":"ExpressionStatement","src":"7826:77:91"},{"expression":{"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53004,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"7913:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":53007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7968:24:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""},"value":"SubnetActorRewardFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""}],"expression":{"id":53005,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7935:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7951:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7935:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7935:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7913:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53010,"nodeType":"ExpressionStatement","src":"7913:80:91"},{"expression":{"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53011,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"8003:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":53014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8062:31:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""},"value":"SubnetActorCheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""}],"expression":{"id":53012,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8029:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8045:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8029:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8029:65:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8003:91:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53017,"nodeType":"ExpressionStatement","src":"8003:91:91"},{"expression":{"id":53023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53018,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"8104:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":53021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8164:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""},"value":"SubnetActorMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""}],"expression":{"id":53019,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8131:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8131:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8131:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8104:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53024,"nodeType":"ExpressionStatement","src":"8104:78:91"},{"expression":{"id":53030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53025,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"8192:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":53028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8245:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":53026,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8212:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8228:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8212:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8212:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8192:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53031,"nodeType":"ExpressionStatement","src":"8192:71:91"},{"expression":{"id":53037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53032,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"8273:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":53035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8326:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":53033,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8293:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8309:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8293:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8293:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8273:73:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53038,"nodeType":"ExpressionStatement","src":"8273:73:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52981,"nodeType":"ParameterList","parameters":[],"src":"7635:2:91"},"returnParameters":{"id":52982,"nodeType":"ParameterList","parameters":[],"src":"7638:0:91"},"scope":53089,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53088,"nodeType":"FunctionDefinition","src":"8359:1007:91","nodes":[],"body":{"id":53087,"nodeType":"Block","src":"8506:860:91","nodes":[],"statements":[{"assignments":[53050],"declarations":[{"constant":false,"id":53050,"mutability":"mutable","name":"native","nameLocation":"8536:6:91","nodeType":"VariableDeclaration","scope":53087,"src":"8516:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":53049,"nodeType":"UserDefinedTypeName","pathNode":{"id":53048,"name":"SupplySource","nameLocations":["8516:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"8516:12:91"},"referencedDeclaration":50179,"src":"8516:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53054,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53051,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"8545:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":53052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8564:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"8545:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8545:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"8516:56:91"},{"assignments":[53059],"declarations":[{"constant":false,"id":53059,"mutability":"mutable","name":"params","nameLocation":"8626:6:91","nodeType":"VariableDeclaration","scope":53087,"src":"8582:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8582:18:91","8601:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"8582:36:91"},"referencedDeclaration":36253,"src":"8582:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53084,"initialValue":{"arguments":[{"arguments":[{"id":53063,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"8712:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8750:1:91","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":53066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8736:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53064,"name":"address","nodeType":"ElementaryTypeName","src":"8740:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53065,"nodeType":"ArrayTypeName","src":"8740:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8736:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53062,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"8696:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8706:4:91","8729:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"8696:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53070,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53042,"src":"8784:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53071,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8811:13:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8825:10:91","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8811:24:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53073,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"8874:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53074,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52624,"src":"8928:22:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53075,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"8985:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53076,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52630,"src":"9044:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53077,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"9108:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53078,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52674,"src":"9165:19:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53079,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"9214:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53080,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"9265:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9280:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"9265:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":53082,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53050,"src":"9318:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53060,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"8635:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8654:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"8635:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8686:8:91","8768:14:91","8800:9:91","8849:23:91","8913:13:91","8964:19:91","9024:18:91","9085:21:91","9153:10:91","9198:14:91","9249:14:91","9304:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"8635:700:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8582:753:91"},{"expression":{"id":53085,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53059,"src":"9353:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":53047,"id":53086,"nodeType":"Return","src":"9346:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"8368:35:91","parameters":{"id":53043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53042,"mutability":"mutable","name":"gw","nameLocation":"8421:2:91","nodeType":"VariableDeclaration","scope":53088,"src":"8413:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53041,"name":"address","nodeType":"ElementaryTypeName","src":"8413:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8403:26:91"},"returnParameters":{"id":53047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53088,"src":"8461:43:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53045,"nodeType":"UserDefinedTypeName","pathNode":{"id":53044,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8461:18:91","8480:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"8461:36:91"},"referencedDeclaration":36253,"src":"8461:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"8460:45:91"},"scope":53089,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52926,"name":"Test","nameLocations":["7001:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"7001:4:91"},"id":52927,"nodeType":"InheritanceSpecifier","src":"7001:4:91"},{"baseName":{"id":52928,"name":"TestParams","nameLocations":["7007:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"7007:10:91"},"id":52929,"nodeType":"InheritanceSpecifier","src":"7007:10:91"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53089,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6982:15:91","scope":55677,"usedErrors":[]},{"id":55676,"nodeType":"ContractDefinition","src":"9370:26271:91","nodes":[{"id":53103,"nodeType":"UsingForDirective","src":"9474:34:91","nodes":[],"global":false,"libraryName":{"id":53100,"name":"SubnetIDHelper","nameLocations":["9480:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"9480:14:91"},"typeName":{"id":53102,"nodeType":"UserDefinedTypeName","pathNode":{"id":53101,"name":"SubnetID","nameLocations":["9499:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"9499:8:91"},"referencedDeclaration":50030,"src":"9499:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":53107,"nodeType":"UsingForDirective","src":"9513:42:91","nodes":[],"global":false,"libraryName":{"id":53104,"name":"SupplySourceHelper","nameLocations":["9519:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"9519:18:91"},"typeName":{"id":53106,"nodeType":"UserDefinedTypeName","pathNode":{"id":53105,"name":"SupplySource","nameLocations":["9542:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"9542:12:91"},"referencedDeclaration":50179,"src":"9542:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":53111,"nodeType":"UsingForDirective","src":"9560:34:91","nodes":[],"global":false,"libraryName":{"id":53108,"name":"CrossMsgHelper","nameLocations":["9566:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"9566:14:91"},"typeName":{"id":53110,"nodeType":"UserDefinedTypeName","pathNode":{"id":53109,"name":"CrossMsg","nameLocations":["9585:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"9585:8:91"},"referencedDeclaration":49927,"src":"9585:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53115,"nodeType":"UsingForDirective","src":"9599:40:91","nodes":[],"global":false,"libraryName":{"id":53112,"name":"StorableMsgHelper","nameLocations":["9605:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"9605:17:91"},"typeName":{"id":53114,"nodeType":"UserDefinedTypeName","pathNode":{"id":53113,"name":"StorableMsg","nameLocations":["9627:11:91"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"9627:11:91"},"referencedDeclaration":49944,"src":"9627:11:91","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53119,"nodeType":"UsingForDirective","src":"9644:38:91","nodes":[],"global":false,"libraryName":{"id":53116,"name":"FvmAddressHelper","nameLocations":["9650:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"9650:16:91"},"typeName":{"id":53118,"nodeType":"UserDefinedTypeName","pathNode":{"id":53117,"name":"FvmAddress","nameLocations":["9671:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"9671:10:91"},"referencedDeclaration":49951,"src":"9671:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53123,"nodeType":"EventDefinition","src":"9688:67:91","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"9694:21:91","parameters":{"id":53122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53121,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9732:21:91","nodeType":"VariableDeclaration","scope":53123,"src":"9716:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9716:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9715:39:91"}},{"id":53127,"nodeType":"FunctionDefinition","src":"9761:16:91","nodes":[],"body":{"id":53126,"nodeType":"Block","src":"9775:2:91","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53124,"nodeType":"ParameterList","parameters":[],"src":"9772:2:91"},"returnParameters":{"id":53125,"nodeType":"ParameterList","parameters":[],"src":"9775:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53329,"nodeType":"FunctionDefinition","src":"9783:1732:91","nodes":[],"body":{"id":53328,"nodeType":"Block","src":"9815:1700:91","nodes":[],"statements":[{"assignments":[53134],"declarations":[{"constant":false,"id":53134,"mutability":"mutable","name":"path","nameLocation":"9842:4:91","nodeType":"VariableDeclaration","scope":53328,"src":"9825:21:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53132,"name":"address","nodeType":"ElementaryTypeName","src":"9825:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53133,"nodeType":"ArrayTypeName","src":"9825:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53140,"initialValue":{"arguments":[{"hexValue":"31","id":53138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9863:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9849:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53135,"name":"address","nodeType":"ElementaryTypeName","src":"9853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53136,"nodeType":"ArrayTypeName","src":"9853:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9849:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9825:40:91"},{"expression":{"id":53145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53141,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"9875:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53143,"indexExpression":{"hexValue":"30","id":53142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9880:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9875:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53144,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52683,"src":"9885:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9875:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53146,"nodeType":"ExpressionStatement","src":"9875:25:91"},{"assignments":[53151],"declarations":[{"constant":false,"id":53151,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9993:19:91","nodeType":"VariableDeclaration","scope":53328,"src":"9953:59:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53150,"nodeType":"UserDefinedTypeName","pathNode":{"id":53149,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9953:14:91","9968:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9953:32:91"},"referencedDeclaration":35883,"src":"9953:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53154,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53152,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52924,"src":"10015:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10015:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9953:84:91"},{"expression":{"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10047:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53157,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53151,"src":"10085:19:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53156,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53588,"src":"10064:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10064:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"10047:58:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53160,"nodeType":"ExpressionStatement","src":"10047:58:91"},{"expression":{"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53161,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"10116:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53165,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10154:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10146:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53163,"name":"address","nodeType":"ElementaryTypeName","src":"10146:7:91","typeDescriptions":{}}},"id":53166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10146:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53162,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"10127:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10127:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"10116:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53169,"nodeType":"ExpressionStatement","src":"10116:54:91"},{"expression":{"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53170,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"10180:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53174,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10220:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53172,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:91","typeDescriptions":{}}},"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53171,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"10192:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10192:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"10180:56:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53178,"nodeType":"ExpressionStatement","src":"10180:56:91"},{"expression":{"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53179,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52803,"src":"10246:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53183,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10296:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10288:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53181,"name":"address","nodeType":"ElementaryTypeName","src":"10288:7:91","typeDescriptions":{}}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10288:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53180,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"10269:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10269:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"10246:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53187,"nodeType":"ExpressionStatement","src":"10246:66:91"},{"expression":{"id":53195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53188,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"10322:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53192,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10372:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10364:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53190,"name":"address","nodeType":"ElementaryTypeName","src":"10364:7:91","typeDescriptions":{}}},"id":53193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10364:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53189,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"10345:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10345:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"10322:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53196,"nodeType":"ExpressionStatement","src":"10322:66:91"},{"expression":{"id":53204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53197,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"10398:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53201,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10452:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10444:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53199,"name":"address","nodeType":"ElementaryTypeName","src":"10444:7:91","typeDescriptions":{}}},"id":53202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10444:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53198,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"10423:20:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10423:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"10398:70:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53205,"nodeType":"ExpressionStatement","src":"10398:70:91"},{"expression":{"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53206,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52812,"src":"10478:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53210,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10530:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10522:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53208,"name":"address","nodeType":"ElementaryTypeName","src":"10522:7:91","typeDescriptions":{}}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10522:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53207,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"10502:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10502:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"10478:68:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53214,"nodeType":"ExpressionStatement","src":"10478:68:91"},{"expression":{"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53215,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52815,"src":"10556:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53219,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10600:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10592:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53217,"name":"address","nodeType":"ElementaryTypeName","src":"10592:7:91","typeDescriptions":{}}},"id":53220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10592:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53216,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"10570:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10570:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"10556:60:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53223,"nodeType":"ExpressionStatement","src":"10556:60:91"},{"expression":{"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53224,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52821,"src":"10626:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53228,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10663:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10655:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53226,"name":"address","nodeType":"ElementaryTypeName","src":"10655:7:91","typeDescriptions":{}}},"id":53229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10655:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53225,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10637:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10637:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10626:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53232,"nodeType":"ExpressionStatement","src":"10626:53:91"},{"expression":{"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53233,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52818,"src":"10689:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53237,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10724:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10716:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53235,"name":"address","nodeType":"ElementaryTypeName","src":"10716:7:91","typeDescriptions":{}}},"id":53238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10716:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53234,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10700:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10700:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10689:51:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53241,"nodeType":"ExpressionStatement","src":"10689:51:91"},{"assignments":[53246],"declarations":[{"constant":false,"id":53246,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10849:19:91","nodeType":"VariableDeclaration","scope":53328,"src":"10805:63:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53245,"nodeType":"UserDefinedTypeName","pathNode":{"id":53244,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10805:18:91","10824:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10805:36:91"},"referencedDeclaration":36253,"src":"10805:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53253,"initialValue":{"arguments":[{"arguments":[{"id":53250,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10928:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10920:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53248,"name":"address","nodeType":"ElementaryTypeName","src":"10920:7:91","typeDescriptions":{}}},"id":53251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10920:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53247,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53088,"src":"10871:35:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10871:82:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10805:148:91"},{"expression":{"id":53258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53254,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"10964:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53256,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53246,"src":"10994:19:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53255,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53912,53941,54244],"referencedDeclaration":53912,"src":"10976:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10976:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10964:50:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53259,"nodeType":"ExpressionStatement","src":"10964:50:91"},{"expression":{"id":53267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53260,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"11024:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53264,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11068:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11060:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53262,"name":"address","nodeType":"ElementaryTypeName","src":"11060:7:91","typeDescriptions":{}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11060:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53261,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"11036:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11036:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"11024:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53268,"nodeType":"ExpressionStatement","src":"11024:55:91"},{"expression":{"id":53276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53269,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"11089:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53273,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11131:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11123:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53271,"name":"address","nodeType":"ElementaryTypeName","src":"11123:7:91","typeDescriptions":{}}},"id":53274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11123:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53270,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"11100:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11100:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"11089:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53277,"nodeType":"ExpressionStatement","src":"11089:53:91"},{"expression":{"id":53285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53278,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"11152:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53282,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11193:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11185:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53280,"name":"address","nodeType":"ElementaryTypeName","src":"11185:7:91","typeDescriptions":{}}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11185:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53279,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"11163:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":53284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11163:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"11152:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53286,"nodeType":"ExpressionStatement","src":"11152:52:91"},{"expression":{"id":53294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53287,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"11214:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53291,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11258:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11250:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53289,"name":"address","nodeType":"ElementaryTypeName","src":"11250:7:91","typeDescriptions":{}}},"id":53292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11250:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53288,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"11227:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":53293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"11214:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":53295,"nodeType":"ExpressionStatement","src":"11214:55:91"},{"expression":{"id":53303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53296,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"11279:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53300,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11334:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11326:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53298,"name":"address","nodeType":"ElementaryTypeName","src":"11326:7:91","typeDescriptions":{}}},"id":53301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11326:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53297,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"11296:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":53302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11296:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"11279:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":53304,"nodeType":"ExpressionStatement","src":"11279:66:91"},{"expression":{"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53305,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"11355:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53309,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11392:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11384:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53307,"name":"address","nodeType":"ElementaryTypeName","src":"11384:7:91","typeDescriptions":{}}},"id":53310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11384:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53306,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"11366:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11366:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"11355:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53313,"nodeType":"ExpressionStatement","src":"11355:48:91"},{"expression":{"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53314,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"11413:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53318,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11448:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11440:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53316,"name":"address","nodeType":"ElementaryTypeName","src":"11440:7:91","typeDescriptions":{}}},"id":53319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11440:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53315,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"11424:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11424:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"11413:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53322,"nodeType":"ExpressionStatement","src":"11413:46:91"},{"expression":{"arguments":[{"id":53324,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52695,"src":"11483:19:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11504:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53323,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54787,54870],"referencedDeclaration":54870,"src":"11470:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11470:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53327,"nodeType":"ExpressionStatement","src":"11470:38:91"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9792:5:91","parameters":{"id":53128,"nodeType":"ParameterList","parameters":[],"src":"9797:2:91"},"returnParameters":{"id":53129,"nodeType":"ParameterList","parameters":[],"src":"9815:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53588,"nodeType":"FunctionDefinition","src":"11521:3185:91","nodes":[],"body":{"id":53587,"nodeType":"Block","src":"11631:3075:91","nodes":[],"statements":[{"assignments":[53340],"declarations":[{"constant":false,"id":53340,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"11660:18:91","nodeType":"VariableDeclaration","scope":53587,"src":"11641:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53339,"nodeType":"UserDefinedTypeName","pathNode":{"id":53338,"name":"CheckpointingFacet","nameLocations":["11641:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11641:18:91"},"referencedDeclaration":39870,"src":"11641:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53345,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11681:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53342,"nodeType":"UserDefinedTypeName","pathNode":{"id":53341,"name":"CheckpointingFacet","nameLocations":["11685:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11685:18:91"},"referencedDeclaration":39870,"src":"11685:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11681:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11641:64:91"},{"assignments":[53348],"declarations":[{"constant":false,"id":53348,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"11734:18:91","nodeType":"VariableDeclaration","scope":53587,"src":"11715:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53347,"nodeType":"UserDefinedTypeName","pathNode":{"id":53346,"name":"XnetMessagingFacet","nameLocations":["11715:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11715:18:91"},"referencedDeclaration":40144,"src":"11715:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53353,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11755:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53350,"nodeType":"UserDefinedTypeName","pathNode":{"id":53349,"name":"XnetMessagingFacet","nameLocations":["11759:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11759:18:91"},"referencedDeclaration":40144,"src":"11759:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11755:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11715:64:91"},{"assignments":[53356],"declarations":[{"constant":false,"id":53356,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"11810:20:91","nodeType":"VariableDeclaration","scope":53587,"src":"11789:41:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53355,"nodeType":"UserDefinedTypeName","pathNode":{"id":53354,"name":"TopDownFinalityFacet","nameLocations":["11789:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11789:20:91"},"referencedDeclaration":40071,"src":"11789:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53361,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11833:24:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53358,"nodeType":"UserDefinedTypeName","pathNode":{"id":53357,"name":"TopDownFinalityFacet","nameLocations":["11837:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11837:20:91"},"referencedDeclaration":40071,"src":"11837:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11833:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"11789:70:91"},{"assignments":[53364],"declarations":[{"constant":false,"id":53364,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"11889:19:91","nodeType":"VariableDeclaration","scope":53587,"src":"11869:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53363,"nodeType":"UserDefinedTypeName","pathNode":{"id":53362,"name":"BottomUpRouterFacet","nameLocations":["11869:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11869:19:91"},"referencedDeclaration":39601,"src":"11869:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53369,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11911:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53366,"nodeType":"UserDefinedTypeName","pathNode":{"id":53365,"name":"BottomUpRouterFacet","nameLocations":["11915:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11915:19:91"},"referencedDeclaration":39601,"src":"11915:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11911:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11869:67:91"},{"assignments":[53372],"declarations":[{"constant":false,"id":53372,"mutability":"mutable","name":"manager","nameLocation":"11967:7:91","nodeType":"VariableDeclaration","scope":53587,"src":"11947:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53371,"nodeType":"UserDefinedTypeName","pathNode":{"id":53370,"name":"GatewayManagerFacet","nameLocations":["11947:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11947:19:91"},"referencedDeclaration":38870,"src":"11947:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53377,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11977:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53374,"nodeType":"UserDefinedTypeName","pathNode":{"id":53373,"name":"GatewayManagerFacet","nameLocations":["11981:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11981:19:91"},"referencedDeclaration":38870,"src":"11981:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11947:55:91"},{"assignments":[53380],"declarations":[{"constant":false,"id":53380,"mutability":"mutable","name":"getter","nameLocation":"12031:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12012:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53379,"nodeType":"UserDefinedTypeName","pathNode":{"id":53378,"name":"GatewayGetterFacet","nameLocations":["12012:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12012:18:91"},"referencedDeclaration":38317,"src":"12012:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53385,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12040:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53382,"nodeType":"UserDefinedTypeName","pathNode":{"id":53381,"name":"GatewayGetterFacet","nameLocations":["12044:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12044:18:91"},"referencedDeclaration":38317,"src":"12044:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"12012:52:91"},{"assignments":[53388],"declarations":[{"constant":false,"id":53388,"mutability":"mutable","name":"messenger","nameLocation":"12096:9:91","nodeType":"VariableDeclaration","scope":53587,"src":"12074:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53387,"nodeType":"UserDefinedTypeName","pathNode":{"id":53386,"name":"GatewayMessengerFacet","nameLocations":["12074:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12074:21:91"},"referencedDeclaration":39235,"src":"12074:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53393,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12108:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53390,"nodeType":"UserDefinedTypeName","pathNode":{"id":53389,"name":"GatewayMessengerFacet","nameLocations":["12112:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12112:21:91"},"referencedDeclaration":39235,"src":"12112:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12108:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12074:61:91"},{"assignments":[53396],"declarations":[{"constant":false,"id":53396,"mutability":"mutable","name":"cutter","nameLocation":"12161:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12145:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53395,"nodeType":"UserDefinedTypeName","pathNode":{"id":53394,"name":"DiamondCutFacet","nameLocations":["12145:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12145:15:91"},"referencedDeclaration":36918,"src":"12145:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53401,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12170:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53398,"nodeType":"UserDefinedTypeName","pathNode":{"id":53397,"name":"DiamondCutFacet","nameLocations":["12174:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12174:15:91"},"referencedDeclaration":36918,"src":"12174:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12170:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12145:46:91"},{"assignments":[53404],"declarations":[{"constant":false,"id":53404,"mutability":"mutable","name":"louper","nameLocation":"12219:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12201:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53403,"nodeType":"UserDefinedTypeName","pathNode":{"id":53402,"name":"DiamondLoupeFacet","nameLocations":["12201:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12201:17:91"},"referencedDeclaration":37355,"src":"12201:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53409,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12228:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53406,"nodeType":"UserDefinedTypeName","pathNode":{"id":53405,"name":"DiamondLoupeFacet","nameLocations":["12232:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12232:17:91"},"referencedDeclaration":37355,"src":"12232:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12228:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12201:50:91"},{"assignments":[53415],"declarations":[{"constant":false,"id":53415,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"12289:12:91","nodeType":"VariableDeclaration","scope":53587,"src":"12262:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53413,"nodeType":"UserDefinedTypeName","pathNode":{"id":53412,"name":"IDiamond.FacetCut","nameLocations":["12262:8:91","12271:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12262:17:91"},"referencedDeclaration":40159,"src":"12262:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53414,"nodeType":"ArrayTypeName","src":"12262:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53422,"initialValue":{"arguments":[{"hexValue":"39","id":53420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12328:1:91","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12304:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53417,"nodeType":"UserDefinedTypeName","pathNode":{"id":53416,"name":"IDiamond.FacetCut","nameLocations":["12308:8:91","12317:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12308:17:91"},"referencedDeclaration":40159,"src":"12308:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53418,"nodeType":"ArrayTypeName","src":"12308:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12304:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12262:68:91"},{"expression":{"id":53438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53423,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12341:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53425,"indexExpression":{"hexValue":"30","id":53424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12354:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12341:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53430,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53340,"src":"12431:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12423:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53428,"name":"address","nodeType":"ElementaryTypeName","src":"12423:7:91","typeDescriptions":{}}},"id":53431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12423:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12476:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12485:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12476:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12500:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12476:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53435,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52767,"src":"12540:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53426,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12373:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12382:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12373:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12409:12:91","12468:6:91","12521:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12373:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53437,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12359:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12341:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53439,"nodeType":"ExpressionStatement","src":"12341:253:91"},{"expression":{"id":53455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53440,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12605:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53442,"indexExpression":{"hexValue":"36","id":53441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12618:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12605:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53447,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53348,"src":"12695:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12687:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53445,"name":"address","nodeType":"ElementaryTypeName","src":"12687:7:91","typeDescriptions":{}}},"id":53448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12687:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12740:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12749:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12740:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12764:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12740:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53452,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52770,"src":"12804:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53443,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12637:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12646:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12637:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12673:12:91","12732:6:91","12785:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12637:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53454,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12623:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12605:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53456,"nodeType":"ExpressionStatement","src":"12605:253:91"},{"expression":{"id":53472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53457,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12869:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53459,"indexExpression":{"hexValue":"37","id":53458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12882:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12869:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53464,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53356,"src":"12959:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12951:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53462,"name":"address","nodeType":"ElementaryTypeName","src":"12951:7:91","typeDescriptions":{}}},"id":53465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12951:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13006:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13030:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13006:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53469,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52773,"src":"13070:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53460,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12901:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12910:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12901:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12937:12:91","12998:6:91","13051:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12901:215:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12887:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12869:257:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53473,"nodeType":"ExpressionStatement","src":"12869:257:91"},{"expression":{"id":53489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53474,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13137:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53476,"indexExpression":{"hexValue":"38","id":53475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13150:1:91","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13137:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53481,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53364,"src":"13227:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13219:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53479,"name":"address","nodeType":"ElementaryTypeName","src":"13219:7:91","typeDescriptions":{}}},"id":53482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13219:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13273:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13282:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13273:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13297:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13273:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53486,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"13337:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53477,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13169:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13178:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13169:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13205:12:91","13265:6:91","13318:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13169:213:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53488,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13155:237:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13137:255:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53490,"nodeType":"ExpressionStatement","src":"13137:255:91"},{"expression":{"id":53506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53491,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13403:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53493,"indexExpression":{"hexValue":"31","id":53492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13416:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13403:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53498,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53372,"src":"13493:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13485:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53496,"name":"address","nodeType":"ElementaryTypeName","src":"13485:7:91","typeDescriptions":{}}},"id":53499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13485:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53500,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13527:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13536:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13527:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13551:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13527:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53503,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52779,"src":"13591:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53494,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13435:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13444:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13435:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13471:12:91","13519:6:91","13572:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13435:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53505,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13421:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13403:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53507,"nodeType":"ExpressionStatement","src":"13403:231:91"},{"expression":{"id":53523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53508,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13645:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53510,"indexExpression":{"hexValue":"32","id":53509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13658:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13645:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53515,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53380,"src":"13735:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13727:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13727:7:91","typeDescriptions":{}}},"id":53516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13727:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53517,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13768:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13777:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13768:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13792:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13768:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53520,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52782,"src":"13832:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53511,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13677:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13686:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13677:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13713:12:91","13760:6:91","13813:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13677:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53522,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13663:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13645:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53524,"nodeType":"ExpressionStatement","src":"13645:229:91"},{"expression":{"id":53540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53525,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13885:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53527,"indexExpression":{"hexValue":"33","id":53526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13898:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13885:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53532,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53388,"src":"13975:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13967:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53530,"name":"address","nodeType":"ElementaryTypeName","src":"13967:7:91","typeDescriptions":{}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53534,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14011:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14020:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14011:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14035:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14011:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53537,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52785,"src":"14075:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13917:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13926:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13917:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13953:12:91","14003:6:91","14056:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13917:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53539,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13903:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13885:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53541,"nodeType":"ExpressionStatement","src":"13885:235:91"},{"expression":{"id":53557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53542,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14131:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53544,"indexExpression":{"hexValue":"34","id":53543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14144:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14131:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53549,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53404,"src":"14221:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14213:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53547,"name":"address","nodeType":"ElementaryTypeName","src":"14213:7:91","typeDescriptions":{}}},"id":53550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14213:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53551,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14254:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14263:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14254:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14278:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14254:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53554,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52791,"src":"14318:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53545,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14163:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14172:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14163:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14199:12:91","14246:6:91","14299:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14163:186:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53556,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14149:210:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14131:228:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53558,"nodeType":"ExpressionStatement","src":"14131:228:91"},{"expression":{"id":53574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53559,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14370:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53561,"indexExpression":{"hexValue":"35","id":53560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14383:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14370:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53566,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53396,"src":"14460:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14452:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53564,"name":"address","nodeType":"ElementaryTypeName","src":"14452:7:91","typeDescriptions":{}}},"id":53567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14452:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53568,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14493:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14502:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14493:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14517:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14493:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53571,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52788,"src":"14557:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53562,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14402:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14411:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14402:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14438:12:91","14485:6:91","14538:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14402:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14388:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14370:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53575,"nodeType":"ExpressionStatement","src":"14370:229:91"},{"expression":{"id":53583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53576,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"14610:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53580,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14646:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53581,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53332,"src":"14660:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14627:18:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53578,"nodeType":"UserDefinedTypeName","pathNode":{"id":53577,"name":"GatewayDiamond","nameLocations":["14631:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"14631:14:91"},"referencedDeclaration":36170,"src":"14631:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14627:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"14610:57:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53584,"nodeType":"ExpressionStatement","src":"14610:57:91"},{"expression":{"id":53585,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"14685:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53337,"id":53586,"nodeType":"Return","src":"14678:21:91"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"11530:20:91","parameters":{"id":53333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53332,"mutability":"mutable","name":"params","nameLocation":"11591:6:91","nodeType":"VariableDeclaration","scope":53588,"src":"11551:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53331,"nodeType":"UserDefinedTypeName","pathNode":{"id":53330,"name":"GatewayDiamond.ConstructorParams","nameLocations":["11551:14:91","11566:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"11551:32:91"},"referencedDeclaration":35883,"src":"11551:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"11550:48:91"},"returnParameters":{"id":53337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53588,"src":"11615:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53335,"nodeType":"UserDefinedTypeName","pathNode":{"id":53334,"name":"GatewayDiamond","nameLocations":["11615:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"11615:14:91"},"referencedDeclaration":36170,"src":"11615:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"11614:16:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53702,"nodeType":"FunctionDefinition","src":"14712:1613:91","nodes":[],"body":{"id":53701,"nodeType":"Block","src":"14988:1337:91","nodes":[],"statements":[{"assignments":[53612],"declarations":[{"constant":false,"id":53612,"mutability":"mutable","name":"diamondCut","nameLocation":"15025:10:91","nodeType":"VariableDeclaration","scope":53701,"src":"14998:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53610,"nodeType":"UserDefinedTypeName","pathNode":{"id":53609,"name":"IDiamond.FacetCut","nameLocations":["14998:8:91","15007:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14998:17:91"},"referencedDeclaration":40159,"src":"14998:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53611,"nodeType":"ArrayTypeName","src":"14998:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53619,"initialValue":{"arguments":[{"hexValue":"35","id":53617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15062:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":53616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15038:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53614,"nodeType":"UserDefinedTypeName","pathNode":{"id":53613,"name":"IDiamond.FacetCut","nameLocations":["15042:8:91","15051:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15042:17:91"},"referencedDeclaration":40159,"src":"15042:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53615,"nodeType":"ArrayTypeName","src":"15042:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15038:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14998:66:91"},{"expression":{"id":53632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53620,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15075:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53622,"indexExpression":{"hexValue":"30","id":53621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15086:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15075:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53625,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53593,"src":"15155:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53626,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15187:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15196:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15187:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15211:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15187:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53629,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"15251:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53623,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15105:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15114:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15105:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15141:12:91","15179:6:91","15232:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15105:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53631,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15091:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15075:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53633,"nodeType":"ExpressionStatement","src":"15075:218:91"},{"expression":{"id":53646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53634,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15304:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53636,"indexExpression":{"hexValue":"31","id":53635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15315:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15304:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53639,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53595,"src":"15384:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53640,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15417:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15426:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15417:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15441:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15417:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53643,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"15481:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53637,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15334:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15343:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15334:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15370:12:91","15409:6:91","15462:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15334:180:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53645,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15320:204:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15304:220:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53647,"nodeType":"ExpressionStatement","src":"15304:220:91"},{"expression":{"id":53660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53648,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15535:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53650,"indexExpression":{"hexValue":"32","id":53649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15546:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15535:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53653,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53597,"src":"15615:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53654,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15647:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15656:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15647:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15671:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15647:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53657,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"15711:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53651,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15565:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15574:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15565:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15601:12:91","15639:6:91","15692:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15565:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53659,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15551:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15535:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53661,"nodeType":"ExpressionStatement","src":"15535:218:91"},{"expression":{"id":53674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53662,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15764:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53664,"indexExpression":{"hexValue":"33","id":53663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15775:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15764:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53667,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53599,"src":"15844:8:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53668,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15878:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15887:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15878:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15902:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15878:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53671,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"15942:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53665,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15794:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15803:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15794:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15830:12:91","15870:6:91","15923:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15794:182:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53673,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15780:206:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15764:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53675,"nodeType":"ExpressionStatement","src":"15764:222:91"},{"expression":{"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53676,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15997:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53678,"indexExpression":{"hexValue":"34","id":53677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16008:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15997:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53681,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53601,"src":"16077:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53682,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16124:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"16115:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16139:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"16115:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53685,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"16179:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53679,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16027:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16036:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"16027:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16063:12:91","16107:6:91","16160:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"16027:190:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53687,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16013:214:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15997:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53689,"nodeType":"ExpressionStatement","src":"15997:230:91"},{"expression":{"id":53697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53690,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"16238:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53694,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"16273:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53695,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53591,"src":"16285:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16250:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53692,"nodeType":"UserDefinedTypeName","pathNode":{"id":53691,"name":"SubnetActorDiamond","nameLocations":["16254:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16254:18:91"},"referencedDeclaration":36615,"src":"16254:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16250:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"16238:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53698,"nodeType":"ExpressionStatement","src":"16238:54:91"},{"expression":{"id":53699,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"16309:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53606,"id":53700,"nodeType":"Return","src":"16302:16:91"}]},"functionSelector":"ea1c89ed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"14721:35:91","parameters":{"id":53602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53591,"mutability":"mutable","name":"params","nameLocation":"14810:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14766:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53590,"nodeType":"UserDefinedTypeName","pathNode":{"id":53589,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14766:18:91","14785:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14766:36:91"},"referencedDeclaration":36253,"src":"14766:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53593,"mutability":"mutable","name":"getter","nameLocation":"14834:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14826:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53592,"name":"address","nodeType":"ElementaryTypeName","src":"14826:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53595,"mutability":"mutable","name":"manager","nameLocation":"14858:7:91","nodeType":"VariableDeclaration","scope":53702,"src":"14850:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53594,"name":"address","nodeType":"ElementaryTypeName","src":"14850:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53597,"mutability":"mutable","name":"pauser","nameLocation":"14883:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14875:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53596,"name":"address","nodeType":"ElementaryTypeName","src":"14875:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53599,"mutability":"mutable","name":"rewarder","nameLocation":"14907:8:91","nodeType":"VariableDeclaration","scope":53702,"src":"14899:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53598,"name":"address","nodeType":"ElementaryTypeName","src":"14899:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53601,"mutability":"mutable","name":"checkpointer","nameLocation":"14933:12:91","nodeType":"VariableDeclaration","scope":53702,"src":"14925:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53600,"name":"address","nodeType":"ElementaryTypeName","src":"14925:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14756:195:91"},"returnParameters":{"id":53606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53702,"src":"14968:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"SubnetActorDiamond","nameLocations":["14968:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14968:18:91"},"referencedDeclaration":36615,"src":"14968:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14967:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53912,"nodeType":"FunctionDefinition","src":"16331:2480:91","nodes":[],"body":{"id":53911,"nodeType":"Block","src":"16446:2365:91","nodes":[],"statements":[{"assignments":[53713],"declarations":[{"constant":false,"id":53713,"mutability":"mutable","name":"manager","nameLocation":"16480:7:91","nodeType":"VariableDeclaration","scope":53911,"src":"16456:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53712,"nodeType":"UserDefinedTypeName","pathNode":{"id":53711,"name":"SubnetActorManagerFacet","nameLocations":["16456:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16456:23:91"},"referencedDeclaration":51946,"src":"16456:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53718,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16490:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53715,"nodeType":"UserDefinedTypeName","pathNode":{"id":53714,"name":"SubnetActorManagerFacet","nameLocations":["16494:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16494:23:91"},"referencedDeclaration":51946,"src":"16494:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16490:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"16456:63:91"},{"assignments":[53721],"declarations":[{"constant":false,"id":53721,"mutability":"mutable","name":"getter","nameLocation":"16552:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16529:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53720,"nodeType":"UserDefinedTypeName","pathNode":{"id":53719,"name":"SubnetActorGetterFacet","nameLocations":["16529:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16529:22:91"},"referencedDeclaration":51235,"src":"16529:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53726,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16561:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53723,"nodeType":"UserDefinedTypeName","pathNode":{"id":53722,"name":"SubnetActorGetterFacet","nameLocations":["16565:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16565:22:91"},"referencedDeclaration":51235,"src":"16565:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16561:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"16529:60:91"},{"assignments":[53729],"declarations":[{"constant":false,"id":53729,"mutability":"mutable","name":"pauser","nameLocation":"16621:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16599:28:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":53728,"nodeType":"UserDefinedTypeName","pathNode":{"id":53727,"name":"SubnetActorPauseFacet","nameLocations":["16599:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16599:21:91"},"referencedDeclaration":51991,"src":"16599:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"}],"id":53734,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16630:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53731,"nodeType":"UserDefinedTypeName","pathNode":{"id":53730,"name":"SubnetActorPauseFacet","nameLocations":["16634:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16634:21:91"},"referencedDeclaration":51991,"src":"16634:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16630:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"VariableDeclarationStatement","src":"16599:58:91"},{"assignments":[53737],"declarations":[{"constant":false,"id":53737,"mutability":"mutable","name":"rewarder","nameLocation":"16690:8:91","nodeType":"VariableDeclaration","scope":53911,"src":"16667:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":53736,"nodeType":"UserDefinedTypeName","pathNode":{"id":53735,"name":"SubnetActorRewardFacet","nameLocations":["16667:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16667:22:91"},"referencedDeclaration":52158,"src":"16667:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"}],"id":53742,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16701:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":53739,"nodeType":"UserDefinedTypeName","pathNode":{"id":53738,"name":"SubnetActorRewardFacet","nameLocations":["16705:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16705:22:91"},"referencedDeclaration":52158,"src":"16705:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":53741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16701:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"VariableDeclarationStatement","src":"16667:62:91"},{"assignments":[53745],"declarations":[{"constant":false,"id":53745,"mutability":"mutable","name":"checkpointer","nameLocation":"16769:12:91","nodeType":"VariableDeclaration","scope":53911,"src":"16739:42:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":53744,"nodeType":"UserDefinedTypeName","pathNode":{"id":53743,"name":"SubnetActorCheckpointingFacet","nameLocations":["16739:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16739:29:91"},"referencedDeclaration":50577,"src":"16739:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"}],"id":53750,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16784:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53747,"nodeType":"UserDefinedTypeName","pathNode":{"id":53746,"name":"SubnetActorCheckpointingFacet","nameLocations":["16788:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16788:29:91"},"referencedDeclaration":50577,"src":"16788:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16784:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"16739:80:91"},{"assignments":[53753],"declarations":[{"constant":false,"id":53753,"mutability":"mutable","name":"louper","nameLocation":"16848:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16830:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53752,"nodeType":"UserDefinedTypeName","pathNode":{"id":53751,"name":"DiamondLoupeFacet","nameLocations":["16830:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16830:17:91"},"referencedDeclaration":37355,"src":"16830:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53758,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16857:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53755,"nodeType":"UserDefinedTypeName","pathNode":{"id":53754,"name":"DiamondLoupeFacet","nameLocations":["16861:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16861:17:91"},"referencedDeclaration":37355,"src":"16861:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16857:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"16830:50:91"},{"assignments":[53761],"declarations":[{"constant":false,"id":53761,"mutability":"mutable","name":"cutter","nameLocation":"16906:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16890:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53760,"nodeType":"UserDefinedTypeName","pathNode":{"id":53759,"name":"DiamondCutFacet","nameLocations":["16890:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16890:15:91"},"referencedDeclaration":36918,"src":"16890:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53766,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16915:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53763,"nodeType":"UserDefinedTypeName","pathNode":{"id":53762,"name":"DiamondCutFacet","nameLocations":["16919:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16919:15:91"},"referencedDeclaration":36918,"src":"16919:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16915:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"16890:46:91"},{"assignments":[53772],"declarations":[{"constant":false,"id":53772,"mutability":"mutable","name":"diamondCut","nameLocation":"16974:10:91","nodeType":"VariableDeclaration","scope":53911,"src":"16947:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53770,"nodeType":"UserDefinedTypeName","pathNode":{"id":53769,"name":"IDiamond.FacetCut","nameLocations":["16947:8:91","16956:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16947:17:91"},"referencedDeclaration":40159,"src":"16947:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53771,"nodeType":"ArrayTypeName","src":"16947:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53779,"initialValue":{"arguments":[{"hexValue":"37","id":53777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17011:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"id":53776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16987:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"IDiamond.FacetCut","nameLocations":["16991:8:91","17000:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16991:17:91"},"referencedDeclaration":40159,"src":"16991:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53775,"nodeType":"ArrayTypeName","src":"16991:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16987:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"16947:66:91"},{"expression":{"id":53795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53780,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17024:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53782,"indexExpression":{"hexValue":"30","id":53781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17035:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17024:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53787,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53713,"src":"17112:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":53786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17104:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53785,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:91","typeDescriptions":{}}},"id":53788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17104:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53789,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17146:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17155:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17146:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17170:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17146:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53792,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"17210:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53783,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17054:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17063:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17054:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17090:12:91","17138:6:91","17191:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17054:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17040:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17024:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53796,"nodeType":"ExpressionStatement","src":"17024:229:91"},{"expression":{"id":53812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53797,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17264:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53799,"indexExpression":{"hexValue":"31","id":53798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17275:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17264:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53804,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"17352:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":53803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17344:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53802,"name":"address","nodeType":"ElementaryTypeName","src":"17344:7:91","typeDescriptions":{}}},"id":53805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17344:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53806,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17385:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17394:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17385:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17409:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17385:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53809,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"17449:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53800,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17294:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17303:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17294:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17330:12:91","17377:6:91","17430:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17294:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53811,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17280:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17264:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53813,"nodeType":"ExpressionStatement","src":"17264:227:91"},{"expression":{"id":53829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53814,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17502:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53816,"indexExpression":{"hexValue":"32","id":53815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17513:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17502:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53821,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53729,"src":"17590:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":53820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17582:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53819,"name":"address","nodeType":"ElementaryTypeName","src":"17582:7:91","typeDescriptions":{}}},"id":53822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17582:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53823,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17623:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17632:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17623:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17647:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17623:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53826,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"17687:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53817,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17532:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17541:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17532:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17568:12:91","17615:6:91","17668:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17532:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53828,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17518:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17502:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53830,"nodeType":"ExpressionStatement","src":"17502:227:91"},{"expression":{"id":53846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53831,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17740:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53833,"indexExpression":{"hexValue":"33","id":53832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17751:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17740:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53838,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"17828:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":53837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17820:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53836,"name":"address","nodeType":"ElementaryTypeName","src":"17820:7:91","typeDescriptions":{}}},"id":53839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17820:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53840,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17863:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17872:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17863:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17887:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17863:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53843,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"17927:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53834,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17770:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17779:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17770:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17806:12:91","17855:6:91","17908:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17770:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53845,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17756:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17740:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53847,"nodeType":"ExpressionStatement","src":"17740:231:91"},{"expression":{"id":53863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53848,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17982:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53850,"indexExpression":{"hexValue":"34","id":53849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17993:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17982:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53855,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53745,"src":"18070:12:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":53854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18062:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53853,"name":"address","nodeType":"ElementaryTypeName","src":"18062:7:91","typeDescriptions":{}}},"id":53856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18062:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53857,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18109:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18118:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18109:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18133:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18109:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53860,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"18173:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53851,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18012:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18021:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18012:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18048:12:91","18101:6:91","18154:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18012:199:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53862,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17998:223:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17982:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53864,"nodeType":"ExpressionStatement","src":"17982:239:91"},{"expression":{"id":53880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53865,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18232:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53867,"indexExpression":{"hexValue":"35","id":53866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18243:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18232:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53872,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53761,"src":"18320:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18312:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53870,"name":"address","nodeType":"ElementaryTypeName","src":"18312:7:91","typeDescriptions":{}}},"id":53873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18312:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53874,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18353:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18362:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18353:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18377:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18353:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53877,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"18417:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53868,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18262:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18271:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18262:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18298:12:91","18345:6:91","18398:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18262:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53879,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18248:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18232:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53881,"nodeType":"ExpressionStatement","src":"18232:227:91"},{"expression":{"id":53897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53882,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18470:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53884,"indexExpression":{"hexValue":"36","id":53883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18481:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18470:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53889,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53753,"src":"18558:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18550:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53887,"name":"address","nodeType":"ElementaryTypeName","src":"18550:7:91","typeDescriptions":{}}},"id":53890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18550:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53891,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18591:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18600:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18591:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18615:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18591:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53894,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"18655:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53885,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18500:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18509:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18500:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18536:12:91","18583:6:91","18636:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18500:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53896,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18486:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18470:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53898,"nodeType":"ExpressionStatement","src":"18470:227:91"},{"assignments":[53901],"declarations":[{"constant":false,"id":53901,"mutability":"mutable","name":"diamond","nameLocation":"18727:7:91","nodeType":"VariableDeclaration","scope":53911,"src":"18708:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53900,"nodeType":"UserDefinedTypeName","pathNode":{"id":53899,"name":"SubnetActorDiamond","nameLocations":["18708:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18708:18:91"},"referencedDeclaration":36615,"src":"18708:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53908,"initialValue":{"arguments":[{"id":53905,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18760:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53906,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53705,"src":"18772:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18737:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53903,"nodeType":"UserDefinedTypeName","pathNode":{"id":53902,"name":"SubnetActorDiamond","nameLocations":["18741:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18741:18:91"},"referencedDeclaration":36615,"src":"18741:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18737:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"18708:71:91"},{"expression":{"id":53909,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53901,"src":"18797:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53710,"id":53910,"nodeType":"Return","src":"18790:14:91"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16340:17:91","parameters":{"id":53706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53705,"mutability":"mutable","name":"params","nameLocation":"16402:6:91","nodeType":"VariableDeclaration","scope":53912,"src":"16358:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53704,"nodeType":"UserDefinedTypeName","pathNode":{"id":53703,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["16358:18:91","16377:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"16358:36:91"},"referencedDeclaration":36253,"src":"16358:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"16357:52:91"},"returnParameters":{"id":53710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53912,"src":"16426:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53708,"nodeType":"UserDefinedTypeName","pathNode":{"id":53707,"name":"SubnetActorDiamond","nameLocations":["16426:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16426:18:91"},"referencedDeclaration":36615,"src":"16426:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16425:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53941,"nodeType":"FunctionDefinition","src":"18817:522:91","nodes":[],"body":{"id":53940,"nodeType":"Block","src":"19061:278:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":53929,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53914,"src":"19102:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53930,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53917,"src":"19131:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53931,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53919,"src":"19155:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53932,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53921,"src":"19193:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53933,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53923,"src":"19221:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53934,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53925,"src":"19247:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53935,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"19280:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19295:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"19280:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19319:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53928,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53912,53941,54244],"referencedDeclaration":54244,"src":"19071:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50118_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19071:261:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53939,"nodeType":"ExpressionStatement","src":"19071:261:91"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"18826:17:91","parameters":{"id":53926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53914,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"18861:15:91","nodeType":"VariableDeclaration","scope":53941,"src":"18853:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53913,"name":"address","nodeType":"ElementaryTypeName","src":"18853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53917,"mutability":"mutable","name":"_consensus","nameLocation":"18900:10:91","nodeType":"VariableDeclaration","scope":53941,"src":"18886:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53916,"nodeType":"UserDefinedTypeName","pathNode":{"id":53915,"name":"ConsensusType","nameLocations":["18886:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"18886:13:91"},"referencedDeclaration":37359,"src":"18886:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53919,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"18928:24:91","nodeType":"VariableDeclaration","scope":53941,"src":"18920:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53918,"name":"uint256","nodeType":"ElementaryTypeName","src":"18920:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53921,"mutability":"mutable","name":"_minValidators","nameLocation":"18969:14:91","nodeType":"VariableDeclaration","scope":53941,"src":"18962:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53920,"name":"uint64","nodeType":"ElementaryTypeName","src":"18962:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53923,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19000:12:91","nodeType":"VariableDeclaration","scope":53941,"src":"18993:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53922,"name":"uint64","nodeType":"ElementaryTypeName","src":"18993:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53925,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19028:19:91","nodeType":"VariableDeclaration","scope":53941,"src":"19022:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53924,"name":"uint8","nodeType":"ElementaryTypeName","src":"19022:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18843:210:91"},"returnParameters":{"id":53927,"nodeType":"ParameterList","parameters":[],"src":"19061:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54244,"nodeType":"FunctionDefinition","src":"19345:3730:91","nodes":[],"body":{"id":54243,"nodeType":"Block","src":"19668:3407:91","nodes":[],"statements":[{"assignments":[53964],"declarations":[{"constant":false,"id":53964,"mutability":"mutable","name":"_parentId","nameLocation":"19694:9:91","nodeType":"VariableDeclaration","scope":54243,"src":"19678:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetID","nameLocations":["19678:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"19678:8:91"},"referencedDeclaration":50030,"src":"19678:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53973,"initialValue":{"arguments":[{"id":53966,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"19715:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19746:1:91","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":53969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19732:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53967,"name":"address","nodeType":"ElementaryTypeName","src":"19736:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53968,"nodeType":"ArrayTypeName","src":"19736:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19732:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53965,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"19706:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19706:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"19678:71:91"},{"expression":{"id":53979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53974,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"19760:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19772:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53976,"nodeType":"UserDefinedTypeName","pathNode":{"id":53975,"name":"SubnetActorManagerFacet","nameLocations":["19776:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"19776:23:91"},"referencedDeclaration":51946,"src":"19776:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19772:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"19760:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53980,"nodeType":"ExpressionStatement","src":"19760:41:91"},{"expression":{"id":53986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53981,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"19811:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19822:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53983,"nodeType":"UserDefinedTypeName","pathNode":{"id":53982,"name":"SubnetActorGetterFacet","nameLocations":["19826:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"19826:22:91"},"referencedDeclaration":51235,"src":"19826:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19822:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"19811:39:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53987,"nodeType":"ExpressionStatement","src":"19811:39:91"},{"expression":{"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53988,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"19860:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19871:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53990,"nodeType":"UserDefinedTypeName","pathNode":{"id":53989,"name":"SubnetActorPauseFacet","nameLocations":["19875:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"19875:21:91"},"referencedDeclaration":51991,"src":"19875:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19871:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"19860:38:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53994,"nodeType":"ExpressionStatement","src":"19860:38:91"},{"expression":{"id":54000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53995,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"19908:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19925:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53997,"nodeType":"UserDefinedTypeName","pathNode":{"id":53996,"name":"SubnetActorCheckpointingFacet","nameLocations":["19929:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"19929:29:91"},"referencedDeclaration":50577,"src":"19929:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19925:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"19908:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54001,"nodeType":"ExpressionStatement","src":"19908:52:91"},{"expression":{"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54002,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"19970:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19983:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":54004,"nodeType":"UserDefinedTypeName","pathNode":{"id":54003,"name":"SubnetActorRewardFacet","nameLocations":["19987:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"19987:22:91"},"referencedDeclaration":52158,"src":"19987:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":54006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19983:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"19970:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54008,"nodeType":"ExpressionStatement","src":"19970:41:91"},{"expression":{"id":54014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54009,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"20021:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20032:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54011,"nodeType":"UserDefinedTypeName","pathNode":{"id":54010,"name":"DiamondCutFacet","nameLocations":["20036:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20036:15:91"},"referencedDeclaration":36918,"src":"20036:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20032:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"20021:32:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54015,"nodeType":"ExpressionStatement","src":"20021:32:91"},{"expression":{"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54016,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"20063:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20074:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54018,"nodeType":"UserDefinedTypeName","pathNode":{"id":54017,"name":"DiamondLoupeFacet","nameLocations":["20078:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20078:17:91"},"referencedDeclaration":37355,"src":"20078:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20074:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"20063:34:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54022,"nodeType":"ExpressionStatement","src":"20063:34:91"},{"assignments":[54028],"declarations":[{"constant":false,"id":54028,"mutability":"mutable","name":"diamondCut","nameLocation":"20135:10:91","nodeType":"VariableDeclaration","scope":54243,"src":"20108:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54026,"nodeType":"UserDefinedTypeName","pathNode":{"id":54025,"name":"IDiamond.FacetCut","nameLocations":["20108:8:91","20117:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20108:17:91"},"referencedDeclaration":40159,"src":"20108:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54027,"nodeType":"ArrayTypeName","src":"20108:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54035,"initialValue":{"arguments":[{"hexValue":"37","id":54033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20172:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"id":54032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20148:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54030,"nodeType":"UserDefinedTypeName","pathNode":{"id":54029,"name":"IDiamond.FacetCut","nameLocations":["20152:8:91","20161:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20152:17:91"},"referencedDeclaration":40159,"src":"20152:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54031,"nodeType":"ArrayTypeName","src":"20152:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20148:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20108:66:91"},{"expression":{"id":54051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54036,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20185:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54038,"indexExpression":{"hexValue":"30","id":54037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20196:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20185:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54043,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"20273:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20265:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54041,"name":"address","nodeType":"ElementaryTypeName","src":"20265:7:91","typeDescriptions":{}}},"id":54044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20265:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54045,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20309:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20318:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20309:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20333:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20309:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54048,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"20373:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54039,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20215:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20224:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20215:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20251:12:91","20301:6:91","20354:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20215:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54050,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20201:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20185:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54052,"nodeType":"ExpressionStatement","src":"20185:231:91"},{"expression":{"id":54068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54053,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20427:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54055,"indexExpression":{"hexValue":"31","id":54054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20438:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20427:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54060,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"20515:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20507:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54058,"name":"address","nodeType":"ElementaryTypeName","src":"20507:7:91","typeDescriptions":{}}},"id":54061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20507:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54062,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20550:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20559:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20550:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20574:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20550:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54065,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"20614:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54056,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20457:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20466:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20457:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20493:12:91","20542:6:91","20595:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20457:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54067,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20443:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20427:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54069,"nodeType":"ExpressionStatement","src":"20427:229:91"},{"expression":{"id":54085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54070,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20667:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54072,"indexExpression":{"hexValue":"32","id":54071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20678:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20667:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54077,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"20755:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":54076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20747:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54075,"name":"address","nodeType":"ElementaryTypeName","src":"20747:7:91","typeDescriptions":{}}},"id":54078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20747:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54079,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20790:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20799:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20790:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20814:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20790:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54082,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"20854:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54073,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20697:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20706:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20697:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20733:12:91","20782:6:91","20835:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20697:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54084,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20683:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20667:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54086,"nodeType":"ExpressionStatement","src":"20667:229:91"},{"expression":{"id":54102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54087,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20907:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54089,"indexExpression":{"hexValue":"33","id":54088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20918:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20907:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54094,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"20995:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":54093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20987:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54092,"name":"address","nodeType":"ElementaryTypeName","src":"20987:7:91","typeDescriptions":{}}},"id":54095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20987:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54096,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21032:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21041:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21032:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21056:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21032:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54099,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"21096:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54090,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20937:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20946:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20937:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20973:12:91","21024:6:91","21077:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20937:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54101,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20923:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20907:233:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54103,"nodeType":"ExpressionStatement","src":"20907:233:91"},{"expression":{"id":54119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54104,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21151:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54106,"indexExpression":{"hexValue":"34","id":54105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21162:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21151:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54111,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"21239:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":54110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21231:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54109,"name":"address","nodeType":"ElementaryTypeName","src":"21231:7:91","typeDescriptions":{}}},"id":54112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21231:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54113,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21280:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21289:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21280:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21304:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21280:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54116,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"21344:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54107,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21181:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21190:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21181:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21217:12:91","21272:6:91","21325:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21181:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54118,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21167:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21151:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54120,"nodeType":"ExpressionStatement","src":"21151:241:91"},{"expression":{"id":54136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54121,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21403:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54123,"indexExpression":{"hexValue":"35","id":54122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21414:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21403:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54128,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"21491:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21483:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54126,"name":"address","nodeType":"ElementaryTypeName","src":"21483:7:91","typeDescriptions":{}}},"id":54129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21483:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54130,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21526:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21535:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21526:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21550:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21526:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54133,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"21590:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54124,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21433:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21442:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21433:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21469:12:91","21518:6:91","21571:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21433:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21419:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21403:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54137,"nodeType":"ExpressionStatement","src":"21403:229:91"},{"expression":{"id":54153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54138,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21643:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54140,"indexExpression":{"hexValue":"36","id":54139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21654:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21643:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54145,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"21731:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21723:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54143,"name":"address","nodeType":"ElementaryTypeName","src":"21723:7:91","typeDescriptions":{}}},"id":54146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21723:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54147,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21766:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21775:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21766:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21790:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21766:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54150,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"21830:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54141,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21673:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21682:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21673:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21709:12:91","21758:6:91","21811:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21673:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54152,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21659:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21643:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54154,"nodeType":"ExpressionStatement","src":"21643:229:91"},{"expression":{"id":54178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54155,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"21883:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54159,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21931:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":54162,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53964,"src":"22020:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54163,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53943,"src":"22063:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54164,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53946,"src":"22107:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":54165,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53948,"src":"22160:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54166,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53950,"src":"22217:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54167,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53952,"src":"22270:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54168,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53954,"src":"22320:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54169,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"22380:22:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":54170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22432:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":54171,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53957,"src":"22468:15:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":54172,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"22517:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54173,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"22570:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":54174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22589:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"22570:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":54175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22570:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":54160,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"21955:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":54161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21974:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"21955:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":54176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["22010:8:91","22047:14:91","22096:9:91","22135:23:91","22202:13:91","22249:19:91","22300:18:91","22357:21:91","22420:10:91","22452:14:91","22501:14:91","22556:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"21955:657:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21895:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54157,"nodeType":"UserDefinedTypeName","pathNode":{"id":54156,"name":"SubnetActorDiamond","nameLocations":["21899:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"21899:18:91"},"referencedDeclaration":36615,"src":"21899:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21895:727:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"21883:739:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":54179,"nodeType":"ExpressionStatement","src":"21883:739:91"},{"expression":{"id":54187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54180,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"22633:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54184,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22677:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22669:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54182,"name":"address","nodeType":"ElementaryTypeName","src":"22669:7:91","typeDescriptions":{}}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22669:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54181,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"22645:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":54186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22645:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"22633:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":54188,"nodeType":"ExpressionStatement","src":"22633:55:91"},{"expression":{"id":54196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54189,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"22698:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54193,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22739:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22731:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54191,"name":"address","nodeType":"ElementaryTypeName","src":"22731:7:91","typeDescriptions":{}}},"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22731:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54190,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"22709:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":54195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22709:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"22698:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":54197,"nodeType":"ExpressionStatement","src":"22698:52:91"},{"expression":{"id":54205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54198,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"22760:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22804:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22796:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54200,"name":"address","nodeType":"ElementaryTypeName","src":"22796:7:91","typeDescriptions":{}}},"id":54203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22796:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54199,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"22773:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":54204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22773:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"22760:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54206,"nodeType":"ExpressionStatement","src":"22760:55:91"},{"expression":{"id":54214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54207,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"22825:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54211,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22880:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22872:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54209,"name":"address","nodeType":"ElementaryTypeName","src":"22872:7:91","typeDescriptions":{}}},"id":54212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22872:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54208,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"22842:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":54213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22842:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"22825:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54215,"nodeType":"ExpressionStatement","src":"22825:66:91"},{"expression":{"id":54223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54216,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"22901:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54220,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22943:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22935:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54218,"name":"address","nodeType":"ElementaryTypeName","src":"22935:7:91","typeDescriptions":{}}},"id":54221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22935:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54217,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"22912:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":54222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"22901:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":54224,"nodeType":"ExpressionStatement","src":"22901:53:91"},{"expression":{"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54225,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"22964:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54229,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22999:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22991:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54227,"name":"address","nodeType":"ElementaryTypeName","src":"22991:7:91","typeDescriptions":{}}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22991:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54226,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"22975:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22975:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"22964:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54233,"nodeType":"ExpressionStatement","src":"22964:46:91"},{"expression":{"id":54241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54234,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"23020:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54238,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"23057:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23049:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54236,"name":"address","nodeType":"ElementaryTypeName","src":"23049:7:91","typeDescriptions":{}}},"id":54239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23049:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54235,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"23031:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":54240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23031:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"23020:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54242,"nodeType":"ExpressionStatement","src":"23020:48:91"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"19354:17:91","parameters":{"id":53960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53943,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"19389:15:91","nodeType":"VariableDeclaration","scope":54244,"src":"19381:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53942,"name":"address","nodeType":"ElementaryTypeName","src":"19381:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53946,"mutability":"mutable","name":"_consensus","nameLocation":"19428:10:91","nodeType":"VariableDeclaration","scope":54244,"src":"19414:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53945,"nodeType":"UserDefinedTypeName","pathNode":{"id":53944,"name":"ConsensusType","nameLocations":["19414:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"19414:13:91"},"referencedDeclaration":37359,"src":"19414:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53948,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"19456:24:91","nodeType":"VariableDeclaration","scope":54244,"src":"19448:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53947,"name":"uint256","nodeType":"ElementaryTypeName","src":"19448:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53950,"mutability":"mutable","name":"_minValidators","nameLocation":"19497:14:91","nodeType":"VariableDeclaration","scope":54244,"src":"19490:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53949,"name":"uint64","nodeType":"ElementaryTypeName","src":"19490:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53952,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19528:12:91","nodeType":"VariableDeclaration","scope":54244,"src":"19521:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53951,"name":"uint64","nodeType":"ElementaryTypeName","src":"19521:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53954,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19556:19:91","nodeType":"VariableDeclaration","scope":54244,"src":"19550:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53953,"name":"uint8","nodeType":"ElementaryTypeName","src":"19550:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53957,"mutability":"mutable","name":"_permissionMode","nameLocation":"19600:15:91","nodeType":"VariableDeclaration","scope":54244,"src":"19585:30:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":53956,"nodeType":"UserDefinedTypeName","pathNode":{"id":53955,"name":"PermissionMode","nameLocations":["19585:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"19585:14:91"},"referencedDeclaration":50118,"src":"19585:14:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53959,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"19632:22:91","nodeType":"VariableDeclaration","scope":54244,"src":"19625:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53958,"name":"uint16","nodeType":"ElementaryTypeName","src":"19625:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19371:289:91"},"returnParameters":{"id":53961,"nodeType":"ParameterList","parameters":[],"src":"19668:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54337,"nodeType":"FunctionDefinition","src":"23081:997:91","nodes":[],"body":{"id":54336,"nodeType":"Block","src":"23173:905:91","nodes":[],"statements":[{"assignments":[54254],"declarations":[{"constant":false,"id":54254,"mutability":"mutable","name":"mockedManager","nameLocation":"23199:13:91","nodeType":"VariableDeclaration","scope":54336,"src":"23183:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"},"typeName":{"id":54253,"nodeType":"UserDefinedTypeName","pathNode":{"id":54252,"name":"SubnetActorMock","nameLocations":["23183:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"23183:15:91"},"referencedDeclaration":58342,"src":"23183:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"visibility":"internal"}],"id":54259,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23215:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorMock_$58342_$","typeString":"function () returns (contract SubnetActorMock)"},"typeName":{"id":54256,"nodeType":"UserDefinedTypeName","pathNode":{"id":54255,"name":"SubnetActorMock","nameLocations":["23219:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"23219:15:91"},"referencedDeclaration":58342,"src":"23219:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23215:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"nodeType":"VariableDeclarationStatement","src":"23183:53:91"},{"assignments":[54262],"declarations":[{"constant":false,"id":54262,"mutability":"mutable","name":"getter","nameLocation":"23269:6:91","nodeType":"VariableDeclaration","scope":54336,"src":"23246:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":54261,"nodeType":"UserDefinedTypeName","pathNode":{"id":54260,"name":"SubnetActorGetterFacet","nameLocations":["23246:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23246:22:91"},"referencedDeclaration":51235,"src":"23246:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":54267,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23278:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":54264,"nodeType":"UserDefinedTypeName","pathNode":{"id":54263,"name":"SubnetActorGetterFacet","nameLocations":["23282:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23282:22:91"},"referencedDeclaration":51235,"src":"23282:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":54266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23278:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"23246:60:91"},{"assignments":[54273],"declarations":[{"constant":false,"id":54273,"mutability":"mutable","name":"diamondCut","nameLocation":"23344:10:91","nodeType":"VariableDeclaration","scope":54336,"src":"23317:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54271,"nodeType":"UserDefinedTypeName","pathNode":{"id":54270,"name":"IDiamond.FacetCut","nameLocations":["23317:8:91","23326:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23317:17:91"},"referencedDeclaration":40159,"src":"23317:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54272,"nodeType":"ArrayTypeName","src":"23317:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54280,"initialValue":{"arguments":[{"hexValue":"32","id":54278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23381:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23357:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54275,"nodeType":"UserDefinedTypeName","pathNode":{"id":54274,"name":"IDiamond.FacetCut","nameLocations":["23361:8:91","23370:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23361:17:91"},"referencedDeclaration":40159,"src":"23361:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54276,"nodeType":"ArrayTypeName","src":"23361:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23357:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"23317:66:91"},{"expression":{"id":54296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54281,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"23394:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54283,"indexExpression":{"hexValue":"30","id":54282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23405:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23394:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54288,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54254,"src":"23482:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}],"id":54287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23474:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54286,"name":"address","nodeType":"ElementaryTypeName","src":"23474:7:91","typeDescriptions":{}}},"id":54289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23474:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54290,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23522:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23531:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23522:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23546:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23522:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54293,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"23586:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54284,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23424:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23433:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23424:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23460:12:91","23514:6:91","23567:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23424:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54295,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23410:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23394:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54297,"nodeType":"ExpressionStatement","src":"23394:241:91"},{"expression":{"id":54313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54298,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"23646:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54300,"indexExpression":{"hexValue":"31","id":54299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23657:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23646:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54305,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54262,"src":"23734:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23726:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54303,"name":"address","nodeType":"ElementaryTypeName","src":"23726:7:91","typeDescriptions":{}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23726:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54307,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23767:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23767:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23791:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23767:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54310,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"23831:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54301,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23676:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23685:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23676:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23712:12:91","23759:6:91","23812:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23676:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23662:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23646:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54314,"nodeType":"ExpressionStatement","src":"23646:227:91"},{"assignments":[54319],"declarations":[{"constant":false,"id":54319,"mutability":"mutable","name":"params","nameLocation":"23928:6:91","nodeType":"VariableDeclaration","scope":54336,"src":"23884:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54318,"nodeType":"UserDefinedTypeName","pathNode":{"id":54317,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["23884:18:91","23903:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"23884:36:91"},"referencedDeclaration":36253,"src":"23884:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54323,"initialValue":{"arguments":[{"id":54321,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54246,"src":"23973:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54320,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53088,"src":"23937:35:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23937:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"23884:92:91"},{"assignments":[54326],"declarations":[{"constant":false,"id":54326,"mutability":"mutable","name":"d","nameLocation":"24006:1:91","nodeType":"VariableDeclaration","scope":54336,"src":"23987:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54325,"nodeType":"UserDefinedTypeName","pathNode":{"id":54324,"name":"SubnetActorDiamond","nameLocations":["23987:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23987:18:91"},"referencedDeclaration":36615,"src":"23987:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54333,"initialValue":{"arguments":[{"id":54330,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"24033:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54331,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54319,"src":"24045:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24010:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54328,"nodeType":"UserDefinedTypeName","pathNode":{"id":54327,"name":"SubnetActorDiamond","nameLocations":["24014:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"24014:18:91"},"referencedDeclaration":36615,"src":"24014:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24010:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"23987:65:91"},{"expression":{"id":54334,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54326,"src":"24070:1:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":54251,"id":54335,"nodeType":"Return","src":"24063:8:91"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"23090:34:91","parameters":{"id":54247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54246,"mutability":"mutable","name":"gw","nameLocation":"23133:2:91","nodeType":"VariableDeclaration","scope":54337,"src":"23125:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54245,"name":"address","nodeType":"ElementaryTypeName","src":"23125:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23124:12:91"},"returnParameters":{"id":54251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54337,"src":"23153:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54249,"nodeType":"UserDefinedTypeName","pathNode":{"id":54248,"name":"SubnetActorDiamond","nameLocations":["23153:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23153:18:91"},"referencedDeclaration":36615,"src":"23153:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"23152:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54479,"nodeType":"FunctionDefinition","src":"24130:1703:91","nodes":[],"body":{"id":54478,"nodeType":"Block","src":"24268:1565:91","nodes":[],"statements":[{"assignments":[54351],"declarations":[{"constant":false,"id":54351,"mutability":"mutable","name":"diamondCut","nameLocation":"24305:10:91","nodeType":"VariableDeclaration","scope":54478,"src":"24278:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54349,"nodeType":"UserDefinedTypeName","pathNode":{"id":54348,"name":"IDiamond.FacetCut","nameLocations":["24278:8:91","24287:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24278:17:91"},"referencedDeclaration":40159,"src":"24278:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54350,"nodeType":"ArrayTypeName","src":"24278:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54358,"initialValue":{"arguments":[{"hexValue":"34","id":54356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24342:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24318:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54353,"nodeType":"UserDefinedTypeName","pathNode":{"id":54352,"name":"IDiamond.FacetCut","nameLocations":["24322:8:91","24331:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24322:17:91"},"referencedDeclaration":40159,"src":"24322:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54354,"nodeType":"ArrayTypeName","src":"24322:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24318:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24278:66:91"},{"assignments":[54361],"declarations":[{"constant":false,"id":54361,"mutability":"mutable","name":"regCutFacet","nameLocation":"24371:11:91","nodeType":"VariableDeclaration","scope":54478,"src":"24355:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54360,"nodeType":"UserDefinedTypeName","pathNode":{"id":54359,"name":"DiamondCutFacet","nameLocations":["24355:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24355:15:91"},"referencedDeclaration":36918,"src":"24355:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54366,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24385:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54363,"nodeType":"UserDefinedTypeName","pathNode":{"id":54362,"name":"DiamondCutFacet","nameLocations":["24389:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24389:15:91"},"referencedDeclaration":36918,"src":"24389:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24385:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"24355:51:91"},{"assignments":[54369],"declarations":[{"constant":false,"id":54369,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"24434:13:91","nodeType":"VariableDeclaration","scope":54478,"src":"24416:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54368,"nodeType":"UserDefinedTypeName","pathNode":{"id":54367,"name":"DiamondLoupeFacet","nameLocations":["24416:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24416:17:91"},"referencedDeclaration":37355,"src":"24416:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54374,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24450:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54371,"nodeType":"UserDefinedTypeName","pathNode":{"id":54370,"name":"DiamondLoupeFacet","nameLocations":["24454:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24454:17:91"},"referencedDeclaration":37355,"src":"24454:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24450:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"24416:57:91"},{"assignments":[54377],"declarations":[{"constant":false,"id":54377,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"24503:14:91","nodeType":"VariableDeclaration","scope":54478,"src":"24483:34:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54376,"nodeType":"UserDefinedTypeName","pathNode":{"id":54375,"name":"RegisterSubnetFacet","nameLocations":["24483:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24483:19:91"},"referencedDeclaration":52286,"src":"24483:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54382,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24520:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54379,"nodeType":"UserDefinedTypeName","pathNode":{"id":54378,"name":"RegisterSubnetFacet","nameLocations":["24524:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24524:19:91"},"referencedDeclaration":52286,"src":"24524:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}},"id":54381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24520:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"24483:62:91"},{"assignments":[54385],"declarations":[{"constant":false,"id":54385,"mutability":"mutable","name":"regGetterFacet","nameLocation":"24573:14:91","nodeType":"VariableDeclaration","scope":54478,"src":"24555:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54384,"nodeType":"UserDefinedTypeName","pathNode":{"id":54383,"name":"SubnetGetterFacet","nameLocations":["24555:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24555:17:91"},"referencedDeclaration":52524,"src":"24555:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54390,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24590:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54387,"nodeType":"UserDefinedTypeName","pathNode":{"id":54386,"name":"SubnetGetterFacet","nameLocations":["24594:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24594:17:91"},"referencedDeclaration":52524,"src":"24594:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}},"id":54389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24590:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"24555:58:91"},{"expression":{"id":54406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54391,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"24624:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54393,"indexExpression":{"hexValue":"30","id":54392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24635:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24624:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54398,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54369,"src":"24712:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24704:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54396,"name":"address","nodeType":"ElementaryTypeName","src":"24704:7:91","typeDescriptions":{}}},"id":54399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24704:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54400,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24752:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24761:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24752:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24776:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24752:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54403,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"24816:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54394,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24654:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24663:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24654:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24690:12:91","24744:6:91","24797:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24654:200:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24640:224:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24624:240:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54407,"nodeType":"ExpressionStatement","src":"24624:240:91"},{"expression":{"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54408,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"24874:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54410,"indexExpression":{"hexValue":"31","id":54409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24885:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24874:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54415,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54361,"src":"24962:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24954:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54413,"name":"address","nodeType":"ElementaryTypeName","src":"24954:7:91","typeDescriptions":{}}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24954:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54417,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25000:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25009:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25000:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25024:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25000:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54420,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"25064:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54411,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24904:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24913:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24904:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24940:12:91","24992:6:91","25045:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24904:198:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54422,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24890:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24874:238:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54424,"nodeType":"ExpressionStatement","src":"24874:238:91"},{"expression":{"id":54440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54425,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25122:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54427,"indexExpression":{"hexValue":"32","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25133:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25122:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54432,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54377,"src":"25210:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}],"id":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25202:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54430,"name":"address","nodeType":"ElementaryTypeName","src":"25202:7:91","typeDescriptions":{}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25202:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54434,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25251:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25251:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25275:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25251:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54437,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52703,"src":"25315:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54428,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25152:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25161:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25152:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25188:12:91","25243:6:91","25296:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25152:206:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25138:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25122:246:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54441,"nodeType":"ExpressionStatement","src":"25122:246:91"},{"expression":{"id":54457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54442,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25378:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54444,"indexExpression":{"hexValue":"33","id":54443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25389:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25378:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54449,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54385,"src":"25466:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}],"id":54448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25458:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54447,"name":"address","nodeType":"ElementaryTypeName","src":"25458:7:91","typeDescriptions":{}}},"id":54450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25458:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54451,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25507:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25516:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25507:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25531:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25507:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54454,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"25571:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54445,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25408:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25417:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25408:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25444:12:91","25499:6:91","25552:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25408:212:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54456,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25394:236:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25378:252:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54458,"nodeType":"ExpressionStatement","src":"25378:252:91"},{"assignments":[54461],"declarations":[{"constant":false,"id":54461,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"25663:17:91","nodeType":"VariableDeclaration","scope":54478,"src":"25641:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54460,"nodeType":"UserDefinedTypeName","pathNode":{"id":54459,"name":"SubnetRegistryDiamond","nameLocations":["25641:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25641:21:91"},"referencedDeclaration":36853,"src":"25641:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54468,"initialValue":{"arguments":[{"id":54465,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25709:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54466,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54340,"src":"25721:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"25683:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54463,"nodeType":"UserDefinedTypeName","pathNode":{"id":54462,"name":"SubnetRegistryDiamond","nameLocations":["25687:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25687:21:91"},"referencedDeclaration":36853,"src":"25687:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25683:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"25641:87:91"},{"eventCall":{"arguments":[{"arguments":[{"id":54472,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"25773:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25765:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54470,"name":"address","nodeType":"ElementaryTypeName","src":"25765:7:91","typeDescriptions":{}}},"id":54473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25765:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54469,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53123,"src":"25743:21:91","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25743:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54475,"nodeType":"EmitStatement","src":"25738:54:91"},{"expression":{"id":54476,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"25809:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54345,"id":54477,"nodeType":"Return","src":"25802:24:91"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"24139:20:91","parameters":{"id":54341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54340,"mutability":"mutable","name":"params","nameLocation":"24216:6:91","nodeType":"VariableDeclaration","scope":54479,"src":"24169:53:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54339,"nodeType":"UserDefinedTypeName","pathNode":{"id":54338,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["24169:21:91","24191:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"24169:39:91"},"referencedDeclaration":36652,"src":"24169:39:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"24159:69:91"},"returnParameters":{"id":54345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54479,"src":"24245:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54343,"nodeType":"UserDefinedTypeName","pathNode":{"id":54342,"name":"SubnetRegistryDiamond","nameLocations":["24245:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"24245:21:91"},"referencedDeclaration":36853,"src":"24245:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"24244:23:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54508,"nodeType":"FunctionDefinition","src":"25839:190:91","nodes":[],"body":{"id":54507,"nodeType":"Block","src":"25920:109:91","nodes":[],"statements":[{"body":{"id":54503,"nodeType":"Block","src":"25961:42:91","statements":[{"expression":{"id":54501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54497,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"25975:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54498,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54482,"src":"25982:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54500,"indexExpression":{"id":54499,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25990:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25982:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25975:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54502,"nodeType":"ExpressionStatement","src":"25975:17:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54491,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25949:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25953:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"25949:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54504,"initializationExpression":{"assignments":[54488],"declarations":[{"constant":false,"id":54488,"mutability":"mutable","name":"i","nameLocation":"25942:1:91","nodeType":"VariableDeclaration","scope":54504,"src":"25935:8:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54487,"name":"uint64","nodeType":"ElementaryTypeName","src":"25935:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54490,"initialValue":{"hexValue":"30","id":54489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25946:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25935:12:91"},"loopExpression":{"expression":{"id":54495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25956:3:91","subExpression":{"id":54494,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25956:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54496,"nodeType":"ExpressionStatement","src":"25956:3:91"},"nodeType":"ForStatement","src":"25930:73:91"},{"expression":{"id":54505,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"26019:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54486,"id":54506,"nodeType":"Return","src":"26012:10:91"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"25848:11:91","parameters":{"id":54483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54482,"mutability":"mutable","name":"weights","nameLocation":"25877:7:91","nodeType":"VariableDeclaration","scope":54508,"src":"25860:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54480,"name":"uint256","nodeType":"ElementaryTypeName","src":"25860:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54481,"nodeType":"ArrayTypeName","src":"25860:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25859:26:91"},"returnParameters":{"id":54486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54485,"mutability":"mutable","name":"sum","nameLocation":"25915:3:91","nodeType":"VariableDeclaration","scope":54508,"src":"25907:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54484,"name":"uint256","nodeType":"ElementaryTypeName","src":"25907:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25906:13:91"},"scope":55676,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54683,"nodeType":"FunctionDefinition","src":"26035:933:91","nodes":[],"body":{"id":54682,"nodeType":"Block","src":"26138:830:91","nodes":[],"statements":[{"expression":{"id":54525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54518,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26148:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26178:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26161:16:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54520,"nodeType":"UserDefinedTypeName","pathNode":{"id":54519,"name":"FvmAddress","nameLocations":["26165:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26165:10:91"},"referencedDeclaration":49951,"src":"26165:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54521,"nodeType":"ArrayTypeName","src":"26165:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26161:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"26148:32:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54526,"nodeType":"ExpressionStatement","src":"26148:32:91"},{"expression":{"id":54537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54527,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26190:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54529,"indexExpression":{"hexValue":"30","id":54528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26201:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26190:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26236:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54532,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26228:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26231:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26228:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26228:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54530,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26206:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26223:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26206:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26206:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26190:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54538,"nodeType":"ExpressionStatement","src":"26190:51:91"},{"expression":{"id":54549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54539,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26251:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54541,"indexExpression":{"hexValue":"31","id":54540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26262:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26251:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26297:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54544,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26289:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26292:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26289:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26289:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54542,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26267:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26284:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26267:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26267:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26251:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54550,"nodeType":"ExpressionStatement","src":"26251:51:91"},{"expression":{"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54551,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26312:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54553,"indexExpression":{"hexValue":"32","id":54552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26323:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26312:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26358:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54556,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26350:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26353:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26350:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26350:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54554,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26328:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26345:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26328:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26328:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26312:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54562,"nodeType":"ExpressionStatement","src":"26312:51:91"},{"expression":{"id":54569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54563,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26374:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26400:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26386:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54564,"name":"address","nodeType":"ElementaryTypeName","src":"26390:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54565,"nodeType":"ArrayTypeName","src":"26390:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26386:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"26374:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54570,"nodeType":"ExpressionStatement","src":"26374:28:91"},{"expression":{"id":54578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54571,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26412:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54573,"indexExpression":{"hexValue":"30","id":54572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26422:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26412:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26435:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54574,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26427:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26430:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26427:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26427:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26412:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54579,"nodeType":"ExpressionStatement","src":"26412:27:91"},{"expression":{"id":54587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54580,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26449:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54582,"indexExpression":{"hexValue":"31","id":54581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26459:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26449:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26472:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54583,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26464:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26467:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26464:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26464:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26449:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54588,"nodeType":"ExpressionStatement","src":"26449:27:91"},{"expression":{"id":54596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54589,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26486:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54591,"indexExpression":{"hexValue":"32","id":54590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26496:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26486:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26509:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54592,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26501:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26504:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26501:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26501:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26486:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54597,"nodeType":"ExpressionStatement","src":"26486:27:91"},{"assignments":[54602],"declarations":[{"constant":false,"id":54602,"mutability":"mutable","name":"weights","nameLocation":"26541:7:91","nodeType":"VariableDeclaration","scope":54682,"src":"26524:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"26524:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54601,"nodeType":"ArrayTypeName","src":"26524:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54608,"initialValue":{"arguments":[{"hexValue":"33","id":54606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26565:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26551:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54603,"name":"uint256","nodeType":"ElementaryTypeName","src":"26555:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54604,"nodeType":"ArrayTypeName","src":"26555:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26551:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"26524:43:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26594:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54612,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26586:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26589:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26586:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26586:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26600:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54609,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26578:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26581:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26578:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26578:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54618,"nodeType":"ExpressionStatement","src":"26578:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26628:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54622,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26620:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26623:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26620:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26620:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26634:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54619,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26612:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26615:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26612:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26612:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54628,"nodeType":"ExpressionStatement","src":"26612:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26662:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54632,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26654:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26657:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26654:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26654:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26668:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54629,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26646:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26649:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26646:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54638,"nodeType":"ExpressionStatement","src":"26646:24:91"},{"expression":{"id":54643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54639,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26681:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54641,"indexExpression":{"hexValue":"30","id":54640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26689:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26681:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26694:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26681:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54644,"nodeType":"ExpressionStatement","src":"26681:16:91"},{"expression":{"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54645,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26707:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54647,"indexExpression":{"hexValue":"31","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26715:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26707:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26720:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26707:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54650,"nodeType":"ExpressionStatement","src":"26707:16:91"},{"expression":{"id":54655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54651,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26733:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54653,"indexExpression":{"hexValue":"32","id":54652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26741:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26733:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26746:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26733:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54656,"nodeType":"ExpressionStatement","src":"26733:16:91"},{"assignments":[54659],"declarations":[{"constant":false,"id":54659,"mutability":"mutable","name":"finality","nameLocation":"26782:8:91","nodeType":"VariableDeclaration","scope":54682,"src":"26760:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54658,"nodeType":"UserDefinedTypeName","pathNode":{"id":54657,"name":"ParentFinality","nameLocations":["26760:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"26760:14:91"},"referencedDeclaration":49871,"src":"26760:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54668,"initialValue":{"arguments":[{"expression":{"id":54661,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26817:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26823:6:91","memberName":"number","nodeType":"MemberAccess","src":"26817:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26850:1:91","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":54664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26842:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26842:7:91","typeDescriptions":{}}},"id":54666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54660,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"26793:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["26809:6:91","26831:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"26793:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"26760:94:91"},{"expression":{"arguments":[{"expression":{"id":54672,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"26874:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26885:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"26874:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54669,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26865:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26868:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26865:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26865:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54675,"nodeType":"ExpressionStatement","src":"26865:33:91"},{"expression":{"arguments":[{"id":54679,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54659,"src":"26952:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54676,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"26908:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26931:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"26908:43:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49871_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26908:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54681,"nodeType":"ExpressionStatement","src":"26908:53:91"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"26044:15:91","parameters":{"id":54509,"nodeType":"ParameterList","parameters":[],"src":"26059:2:91"},"returnParameters":{"id":54517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54513,"mutability":"mutable","name":"validators","nameLocation":"26098:10:91","nodeType":"VariableDeclaration","scope":54683,"src":"26078:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54511,"nodeType":"UserDefinedTypeName","pathNode":{"id":54510,"name":"FvmAddress","nameLocations":["26078:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26078:10:91"},"referencedDeclaration":49951,"src":"26078:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54512,"nodeType":"ArrayTypeName","src":"26078:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54516,"mutability":"mutable","name":"addresses","nameLocation":"26127:9:91","nodeType":"VariableDeclaration","scope":54683,"src":"26110:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54514,"name":"address","nodeType":"ElementaryTypeName","src":"26110:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54515,"nodeType":"ArrayTypeName","src":"26110:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26077:60:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54776,"nodeType":"FunctionDefinition","src":"26974:1297:91","nodes":[],"body":{"id":54775,"nodeType":"Block","src":"27058:1213:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54693,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"27083:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54694,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27110:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54692,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55583,"src":"27068:14:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27068:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54696,"nodeType":"ExpressionStatement","src":"27068:46:91"},{"assignments":[54699],"declarations":[{"constant":false,"id":54699,"mutability":"mutable","name":"crossMsg","nameLocation":"27141:8:91","nodeType":"VariableDeclaration","scope":54775,"src":"27125:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54698,"nodeType":"UserDefinedTypeName","pathNode":{"id":54697,"name":"CrossMsg","nameLocations":["27125:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27125:8:91"},"referencedDeclaration":49927,"src":"27125:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54739,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54707,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54685,"src":"27304:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54703,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"27263:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27272:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27263:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27263:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27289:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27263:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27263:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54711,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54685,"src":"27367:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54709,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27345:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27362:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27345:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27345:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54702,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27220:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27253:8:91","27333:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27220:173:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54719,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27499:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54715,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"27458:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27467:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27458:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27458:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27484:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27458:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27458:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54723,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27559:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54721,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27537:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27554:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27537:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27537:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54714,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27415:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27448:8:91","27525:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27415:167:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54726,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"27607:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27631:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27607:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27657:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54730,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"27684:11:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27731:1:91","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":54732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27721:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54731,"name":"bytes","nodeType":"ElementaryTypeName","src":"27725:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27721:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54735,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"27756:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54701,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"27184:11:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27214:4:91","27411:2:91","27600:5:91","27650:5:91","27676:6:91","27713:6:91","27751:3:91"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"27184:608:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27815:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54700,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"27152:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27175:7:91","27806:7:91"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"27152:679:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"27125:706:91"},{"assignments":[54744],"declarations":[{"constant":false,"id":54744,"mutability":"mutable","name":"msgs","nameLocation":"27859:4:91","nodeType":"VariableDeclaration","scope":54775,"src":"27841:22:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54742,"nodeType":"UserDefinedTypeName","pathNode":{"id":54741,"name":"CrossMsg","nameLocations":["27841:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27841:8:91"},"referencedDeclaration":49927,"src":"27841:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54743,"nodeType":"ArrayTypeName","src":"27841:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54751,"initialValue":{"arguments":[{"hexValue":"31","id":54749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27881:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27866:14:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54746,"nodeType":"UserDefinedTypeName","pathNode":{"id":54745,"name":"CrossMsg","nameLocations":["27870:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27870:8:91"},"referencedDeclaration":49927,"src":"27870:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54747,"nodeType":"ArrayTypeName","src":"27870:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27866:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27841:42:91"},{"expression":{"id":54756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54752,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"27893:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54754,"indexExpression":{"hexValue":"30","id":54753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27898:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27893:7:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54755,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"27903:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"27893:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54757,"nodeType":"ExpressionStatement","src":"27893:18:91"},{"expression":{"arguments":[{"expression":{"id":54761,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28150:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28161:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28150:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54758,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28141:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28144:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"28141:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28141:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54764,"nodeType":"ExpressionStatement","src":"28141:33:91"},{"expression":{"arguments":[{"id":54768,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"28224:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54765,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"28184:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28205:18:91","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"28184:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28184:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54770,"nodeType":"ExpressionStatement","src":"28184:45:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54771,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"28247:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28256:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40534,"src":"28247:15:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49927_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28247:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54691,"id":54774,"nodeType":"Return","src":"28240:24:91"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"26983:20:91","parameters":{"id":54688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54685,"mutability":"mutable","name":"caller","nameLocation":"27012:6:91","nodeType":"VariableDeclaration","scope":54776,"src":"27004:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54684,"name":"address","nodeType":"ElementaryTypeName","src":"27004:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54687,"mutability":"mutable","name":"src","nameLocation":"27028:3:91","nodeType":"VariableDeclaration","scope":54776,"src":"27020:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54686,"name":"address","nodeType":"ElementaryTypeName","src":"27020:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27003:29:91"},"returnParameters":{"id":54691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54776,"src":"27049:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27049:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27048:9:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54787,"nodeType":"FunctionDefinition","src":"28277:93:91","nodes":[],"body":{"id":54786,"nodeType":"Block","src":"28325:45:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54782,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54778,"src":"28348:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28359:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54781,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54787,54870],"referencedDeclaration":54870,"src":"28335:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28335:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54785,"nodeType":"ExpressionStatement","src":"28335:28:91"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28286:12:91","parameters":{"id":54779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54778,"mutability":"mutable","name":"validator","nameLocation":"28307:9:91","nodeType":"VariableDeclaration","scope":54787,"src":"28299:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54777,"name":"address","nodeType":"ElementaryTypeName","src":"28299:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28298:19:91"},"returnParameters":{"id":54780,"nodeType":"ParameterList","parameters":[],"src":"28325:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54870,"nodeType":"FunctionDefinition","src":"28376:610:91","nodes":[],"body":{"id":54869,"nodeType":"Block","src":"28440:546:91","nodes":[],"statements":[{"assignments":[54798],"declarations":[{"constant":false,"id":54798,"mutability":"mutable","name":"validators","nameLocation":"28470:10:91","nodeType":"VariableDeclaration","scope":54869,"src":"28450:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54796,"nodeType":"UserDefinedTypeName","pathNode":{"id":54795,"name":"FvmAddress","nameLocations":["28450:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28450:10:91"},"referencedDeclaration":49951,"src":"28450:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54797,"nodeType":"ArrayTypeName","src":"28450:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54805,"initialValue":{"arguments":[{"hexValue":"31","id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28500:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28483:16:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54800,"nodeType":"UserDefinedTypeName","pathNode":{"id":54799,"name":"FvmAddress","nameLocations":["28487:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28487:10:91"},"referencedDeclaration":49951,"src":"28487:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54801,"nodeType":"ArrayTypeName","src":"28487:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28483:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28450:52:91"},{"expression":{"id":54813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54806,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54798,"src":"28512:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54808,"indexExpression":{"hexValue":"30","id":54807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28523:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28512:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54789,"src":"28550:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54809,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"28528:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28545:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"28528:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28528:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"28512:48:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54814,"nodeType":"ExpressionStatement","src":"28512:48:91"},{"assignments":[54819],"declarations":[{"constant":false,"id":54819,"mutability":"mutable","name":"weights","nameLocation":"28587:7:91","nodeType":"VariableDeclaration","scope":54869,"src":"28570:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54817,"name":"uint256","nodeType":"ElementaryTypeName","src":"28570:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54818,"nodeType":"ArrayTypeName","src":"28570:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54825,"initialValue":{"arguments":[{"hexValue":"31","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28611:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28597:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54820,"name":"uint256","nodeType":"ElementaryTypeName","src":"28601:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54821,"nodeType":"ArrayTypeName","src":"28601:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28597:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28570:43:91"},{"expression":{"id":54830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54826,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54819,"src":"28623:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54828,"indexExpression":{"hexValue":"30","id":54827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28631:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28623:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54829,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54791,"src":"28636:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28623:19:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54831,"nodeType":"ExpressionStatement","src":"28623:19:91"},{"expression":{"arguments":[{"id":54835,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54789,"src":"28661:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28672:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54832,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28653:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28656:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28653:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28653:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54838,"nodeType":"ExpressionStatement","src":"28653:21:91"},{"assignments":[54841],"declarations":[{"constant":false,"id":54841,"mutability":"mutable","name":"finality","nameLocation":"28706:8:91","nodeType":"VariableDeclaration","scope":54869,"src":"28684:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54840,"nodeType":"UserDefinedTypeName","pathNode":{"id":54839,"name":"ParentFinality","nameLocations":["28684:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"28684:14:91"},"referencedDeclaration":49871,"src":"28684:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54850,"initialValue":{"arguments":[{"expression":{"id":54843,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28741:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28747:6:91","memberName":"number","nodeType":"MemberAccess","src":"28741:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28774:1:91","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":54846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28766:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28766:7:91","typeDescriptions":{}}},"id":54848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28766:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54842,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"28717:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28733:6:91","28755:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"28717:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"28684:94:91"},{"expression":{"arguments":[{"expression":{"id":54854,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28868:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28879:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28868:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54851,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28854:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28857:10:91","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"28854:13:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28854:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54857,"nodeType":"ExpressionStatement","src":"28854:38:91"},{"expression":{"arguments":[{"id":54861,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54841,"src":"28946:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54858,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"28902:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28925:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"28902:43:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49871_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28902:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54863,"nodeType":"ExpressionStatement","src":"28902:53:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54864,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28965:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28968:9:91","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"28965:12:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28965:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54868,"nodeType":"ExpressionStatement","src":"28965:14:91"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28385:12:91","parameters":{"id":54792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54789,"mutability":"mutable","name":"validator","nameLocation":"28406:9:91","nodeType":"VariableDeclaration","scope":54870,"src":"28398:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54788,"name":"address","nodeType":"ElementaryTypeName","src":"28398:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54791,"mutability":"mutable","name":"weight","nameLocation":"28425:6:91","nodeType":"VariableDeclaration","scope":54870,"src":"28417:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54790,"name":"uint256","nodeType":"ElementaryTypeName","src":"28417:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28397:35:91"},"returnParameters":{"id":54793,"nodeType":"ParameterList","parameters":[],"src":"28440:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54883,"nodeType":"FunctionDefinition","src":"28992:112:91","nodes":[],"body":{"id":54882,"nodeType":"Block","src":"29036:68:91","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29058:30:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54879,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54872,"src":"29090:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54875,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"29046:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29054:3:91","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"29046:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29046:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54881,"nodeType":"ExpressionStatement","src":"29046:51:91"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"29001:6:91","parameters":{"id":54873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54872,"mutability":"mutable","name":"amount","nameLocation":"29016:6:91","nodeType":"VariableDeclaration","scope":54883,"src":"29008:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54871,"name":"uint256","nodeType":"ElementaryTypeName","src":"29008:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29007:16:91"},"returnParameters":{"id":54874,"nodeType":"ParameterList","parameters":[],"src":"29036:0:91"},"scope":55676,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54898,"nodeType":"FunctionDefinition","src":"29110:131:91","nodes":[],"body":{"id":54897,"nodeType":"Block","src":"29174:67:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54891,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54885,"src":"29189:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54892,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54887,"src":"29204:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54893,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29216:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29227:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29216:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}],"id":54890,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54898,55023],"referencedDeclaration":55023,"src":"29184:4:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50182_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29184:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54896,"nodeType":"ExpressionStatement","src":"29184:50:91"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29119:4:91","parameters":{"id":54888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54885,"mutability":"mutable","name":"funderAddress","nameLocation":"29132:13:91","nodeType":"VariableDeclaration","scope":54898,"src":"29124:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54884,"name":"address","nodeType":"ElementaryTypeName","src":"29124:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54887,"mutability":"mutable","name":"fundAmount","nameLocation":"29155:10:91","nodeType":"VariableDeclaration","scope":54898,"src":"29147:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54886,"name":"uint256","nodeType":"ElementaryTypeName","src":"29147:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29123:43:91"},"returnParameters":{"id":54889,"nodeType":"ParameterList","parameters":[],"src":"29174:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55023,"nodeType":"FunctionDefinition","src":"29247:1180:91","nodes":[],"body":{"id":55022,"nodeType":"Block","src":"29328:1099:91","nodes":[],"statements":[{"assignments":[54910,null,54912,null,54914],"declarations":[{"constant":false,"id":54910,"mutability":"mutable","name":"subnetId","nameLocation":"29420:8:91","nodeType":"VariableDeclaration","scope":55022,"src":"29404:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54909,"nodeType":"UserDefinedTypeName","pathNode":{"id":54908,"name":"SubnetID","nameLocations":["29404:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"29404:8:91"},"referencedDeclaration":50030,"src":"29404:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54912,"mutability":"mutable","name":"nonceBefore","nameLocation":"29440:11:91","nodeType":"VariableDeclaration","scope":55022,"src":"29432:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54911,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54914,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"29463:16:91","nodeType":"VariableDeclaration","scope":55022,"src":"29455:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54913,"name":"uint256","nodeType":"ElementaryTypeName","src":"29455:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54921,"initialValue":{"arguments":[{"arguments":[{"id":54918,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"29501:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29493:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54916,"name":"address","nodeType":"ElementaryTypeName","src":"29493:7:91","typeDescriptions":{}}},"id":54919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54915,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"29483:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29483:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29403:109:91"},{"assignments":[54923],"declarations":[{"constant":false,"id":54923,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"29531:25:91","nodeType":"VariableDeclaration","scope":55022,"src":"29523:33:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54922,"name":"uint256","nodeType":"ElementaryTypeName","src":"29523:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54930,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54926,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"29595:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54924,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"29559:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29568:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"29559:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29559:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29607:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29559:49:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29523:85:91"},{"assignments":[54932],"declarations":[{"constant":false,"id":54932,"mutability":"mutable","name":"expectedNonce","nameLocation":"29626:13:91","nodeType":"VariableDeclaration","scope":55022,"src":"29618:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54931,"name":"uint256","nodeType":"ElementaryTypeName","src":"29618:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54936,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54933,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54912,"src":"29642:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29656:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29642:15:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29618:39:91"},{"assignments":[54938],"declarations":[{"constant":false,"id":54938,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"29675:18:91","nodeType":"VariableDeclaration","scope":55022,"src":"29667:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54937,"name":"uint256","nodeType":"ElementaryTypeName","src":"29667:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54942,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54939,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54914,"src":"29696:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54940,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"29715:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29696:29:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29667:58:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54944,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"29744:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29753:11:91","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"29744:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29744:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29769:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29744:26:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29772:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29736:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29736:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54951,"nodeType":"ExpressionStatement","src":"29736:55:91"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54952,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54905,"src":"29806:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54953,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29814:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29825:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29814:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29806:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54969,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54905,"src":"29949:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54970,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29957:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29968:5:91","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"29957:16:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29949:24:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54985,"nodeType":"IfStatement","src":"29945:138:91","trueBody":{"id":54984,"nodeType":"Block","src":"29975:108:91","statements":[{"expression":{"arguments":[{"id":54976,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"30013:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54979,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54900,"src":"30045:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54977,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"30023:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30040:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"30023:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30023:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54981,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"30061:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54973,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"29989:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29999:13:91","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"29989:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29989:83:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54983,"nodeType":"ExpressionStatement","src":"29989:83:91"}]}},"id":54986,"nodeType":"IfStatement","src":"29802:281:91","trueBody":{"id":54968,"nodeType":"Block","src":"29833:106:91","statements":[{"expression":{"arguments":[{"id":54961,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"29881:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54964,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54900,"src":"29913:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54962,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29891:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29908:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29891:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29891:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54956,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"29847:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29857:4:91","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"29847:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54959,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"29869:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29847:33:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29847:81:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54967,"nodeType":"ExpressionStatement","src":"29847:81:91"}]}},{"assignments":[null,null,54988,null,54990],"declarations":[null,null,{"constant":false,"id":54988,"mutability":"mutable","name":"nonce","nameLocation":"30106:5:91","nodeType":"VariableDeclaration","scope":55022,"src":"30098:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54987,"name":"uint256","nodeType":"ElementaryTypeName","src":"30098:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54990,"mutability":"mutable","name":"circSupply","nameLocation":"30123:10:91","nodeType":"VariableDeclaration","scope":55022,"src":"30115:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54989,"name":"uint256","nodeType":"ElementaryTypeName","src":"30115:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54997,"initialValue":{"arguments":[{"arguments":[{"id":54994,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"30155:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30147:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54992,"name":"address","nodeType":"ElementaryTypeName","src":"30147:7:91","typeDescriptions":{}}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30147:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54991,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"30137:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30137:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30093:73:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55001,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"30221:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54999,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"30185:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30194:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"30185:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30185:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55003,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54923,"src":"30234:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30185:74:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":55005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30261:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54998,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30177:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30177:105:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55007,"nodeType":"ExpressionStatement","src":"30177:105:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55009,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54988,"src":"30301:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55010,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54932,"src":"30310:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30301:22:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30325:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55008,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30293:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30293:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55014,"nodeType":"ExpressionStatement","src":"30293:51:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55016,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54990,"src":"30362:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55017,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54938,"src":"30376:18:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30362:32:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30396:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55015,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30354:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30354:66:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55021,"nodeType":"ExpressionStatement","src":"30354:66:91"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29256:4:91","parameters":{"id":54906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54900,"mutability":"mutable","name":"funderAddress","nameLocation":"29269:13:91","nodeType":"VariableDeclaration","scope":55023,"src":"29261:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54899,"name":"address","nodeType":"ElementaryTypeName","src":"29261:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54902,"mutability":"mutable","name":"fundAmount","nameLocation":"29292:10:91","nodeType":"VariableDeclaration","scope":55023,"src":"29284:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54901,"name":"uint256","nodeType":"ElementaryTypeName","src":"29284:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54905,"mutability":"mutable","name":"mode","nameLocation":"29315:4:91","nodeType":"VariableDeclaration","scope":55023,"src":"29304:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":54904,"nodeType":"UserDefinedTypeName","pathNode":{"id":54903,"name":"SupplyKind","nameLocations":["29304:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"29304:10:91"},"referencedDeclaration":50182,"src":"29304:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"29260:60:91"},"returnParameters":{"id":54907,"nodeType":"ParameterList","parameters":[],"src":"29328:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55054,"nodeType":"FunctionDefinition","src":"30433:243:91","nodes":[],"body":{"id":55053,"nodeType":"Block","src":"30501:175:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55033,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55025,"src":"30520:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55030,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30511:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30514:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"30511:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30511:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55035,"nodeType":"ExpressionStatement","src":"30511:26:91"},{"expression":{"arguments":[{"id":55039,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55025,"src":"30555:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":55040,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"30573:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30601:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30573:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":55036,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30547:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30550:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"30547:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30547:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55044,"nodeType":"ExpressionStatement","src":"30547:56:91"},{"expression":{"arguments":[{"id":55050,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55027,"src":"30662:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":55045,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"30613:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":55047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30623:4:91","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"30613:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55048,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"30635:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"30613:48:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":55051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30613:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55052,"nodeType":"ExpressionStatement","src":"30613:56:91"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"30442:4:91","parameters":{"id":55028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55025,"mutability":"mutable","name":"validatorAddress","nameLocation":"30455:16:91","nodeType":"VariableDeclaration","scope":55054,"src":"30447:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55024,"name":"address","nodeType":"ElementaryTypeName","src":"30447:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55027,"mutability":"mutable","name":"pubkey","nameLocation":"30486:6:91","nodeType":"VariableDeclaration","scope":55054,"src":"30473:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55026,"name":"bytes","nodeType":"ElementaryTypeName","src":"30473:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30446:47:91"},"returnParameters":{"id":55029,"nodeType":"ParameterList","parameters":[],"src":"30501:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55101,"nodeType":"FunctionDefinition","src":"30682:298:91","nodes":[],"body":{"id":55100,"nodeType":"Block","src":"30750:230:91","nodes":[],"statements":[{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"validators","nameLocation":"30777:10:91","nodeType":"VariableDeclaration","scope":55100,"src":"30760:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55063,"name":"address","nodeType":"ElementaryTypeName","src":"30760:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55064,"nodeType":"ArrayTypeName","src":"30760:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55071,"initialValue":{"arguments":[{"hexValue":"31","id":55069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30804:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":55068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30790:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55066,"name":"address","nodeType":"ElementaryTypeName","src":"30794:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55067,"nodeType":"ArrayTypeName","src":"30794:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30790:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30760:46:91"},{"expression":{"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55072,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"30816:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55074,"indexExpression":{"hexValue":"30","id":55073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30827:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30816:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55075,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55056,"src":"30832:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30816:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55077,"nodeType":"ExpressionStatement","src":"30816:25:91"},{"assignments":[55082],"declarations":[{"constant":false,"id":55082,"mutability":"mutable","name":"privKeys","nameLocation":"30869:8:91","nodeType":"VariableDeclaration","scope":55100,"src":"30852:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55080,"name":"uint256","nodeType":"ElementaryTypeName","src":"30852:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55081,"nodeType":"ArrayTypeName","src":"30852:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55088,"initialValue":{"arguments":[{"hexValue":"31","id":55086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30894:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":55085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30880:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55083,"name":"uint256","nodeType":"ElementaryTypeName","src":"30884:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55084,"nodeType":"ArrayTypeName","src":"30884:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30880:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30852:44:91"},{"expression":{"id":55093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55089,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55082,"src":"30906:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55091,"indexExpression":{"hexValue":"30","id":55090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30915:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30906:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55092,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55058,"src":"30920:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30906:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55094,"nodeType":"ExpressionStatement","src":"30906:21:91"},{"expression":{"arguments":[{"id":55096,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"30952:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55097,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55082,"src":"30964:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55095,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"30938:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30938:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55099,"nodeType":"ExpressionStatement","src":"30938:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30691:13:91","parameters":{"id":55059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55056,"mutability":"mutable","name":"validator","nameLocation":"30713:9:91","nodeType":"VariableDeclaration","scope":55101,"src":"30705:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55055,"name":"address","nodeType":"ElementaryTypeName","src":"30705:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55058,"mutability":"mutable","name":"privKey","nameLocation":"30732:7:91","nodeType":"VariableDeclaration","scope":55101,"src":"30724:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55057,"name":"uint256","nodeType":"ElementaryTypeName","src":"30724:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30704:36:91"},"returnParameters":{"id":55060,"nodeType":"ParameterList","parameters":[],"src":"30750:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55164,"nodeType":"FunctionDefinition","src":"30986:408:91","nodes":[],"body":{"id":55163,"nodeType":"Block","src":"31094:300:91","nodes":[],"statements":[{"assignments":[55116],"declarations":[{"constant":false,"id":55116,"mutability":"mutable","name":"validators","nameLocation":"31121:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"31104:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55114,"name":"address","nodeType":"ElementaryTypeName","src":"31104:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55115,"nodeType":"ArrayTypeName","src":"31104:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55122,"initialValue":{"arguments":[{"hexValue":"32","id":55120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31148:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":55119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31134:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55117,"name":"address","nodeType":"ElementaryTypeName","src":"31138:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55118,"nodeType":"ArrayTypeName","src":"31138:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31134:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31104:46:91"},{"expression":{"id":55127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55123,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31160:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55125,"indexExpression":{"hexValue":"30","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31171:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31160:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55126,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55103,"src":"31176:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31160:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55128,"nodeType":"ExpressionStatement","src":"31160:26:91"},{"expression":{"id":55133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55129,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31196:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55131,"indexExpression":{"hexValue":"31","id":55130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31207:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31196:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55132,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55107,"src":"31212:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31196:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55134,"nodeType":"ExpressionStatement","src":"31196:26:91"},{"assignments":[55139],"declarations":[{"constant":false,"id":55139,"mutability":"mutable","name":"privKeys","nameLocation":"31250:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"31233:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55137,"name":"uint256","nodeType":"ElementaryTypeName","src":"31233:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55138,"nodeType":"ArrayTypeName","src":"31233:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55145,"initialValue":{"arguments":[{"hexValue":"32","id":55143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31275:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":55142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31261:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"31265:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55141,"nodeType":"ArrayTypeName","src":"31265:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31261:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31233:44:91"},{"expression":{"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55146,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31287:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55148,"indexExpression":{"hexValue":"30","id":55147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31296:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31287:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55149,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55105,"src":"31301:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31287:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55151,"nodeType":"ExpressionStatement","src":"31287:22:91"},{"expression":{"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55152,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31319:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55154,"indexExpression":{"hexValue":"31","id":55153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31328:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31319:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55155,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55109,"src":"31333:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31319:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55157,"nodeType":"ExpressionStatement","src":"31319:22:91"},{"expression":{"arguments":[{"id":55159,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31366:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55160,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31378:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55158,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"31352:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31352:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55162,"nodeType":"ExpressionStatement","src":"31352:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30995:13:91","parameters":{"id":55110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55103,"mutability":"mutable","name":"validator1","nameLocation":"31017:10:91","nodeType":"VariableDeclaration","scope":55164,"src":"31009:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55102,"name":"address","nodeType":"ElementaryTypeName","src":"31009:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55105,"mutability":"mutable","name":"privKey1","nameLocation":"31037:8:91","nodeType":"VariableDeclaration","scope":55164,"src":"31029:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55104,"name":"uint256","nodeType":"ElementaryTypeName","src":"31029:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55107,"mutability":"mutable","name":"validator2","nameLocation":"31055:10:91","nodeType":"VariableDeclaration","scope":55164,"src":"31047:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55106,"name":"address","nodeType":"ElementaryTypeName","src":"31047:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55109,"mutability":"mutable","name":"privKey2","nameLocation":"31075:8:91","nodeType":"VariableDeclaration","scope":55164,"src":"31067:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55108,"name":"uint256","nodeType":"ElementaryTypeName","src":"31067:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31008:76:91"},"returnParameters":{"id":55111,"nodeType":"ParameterList","parameters":[],"src":"31094:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55243,"nodeType":"FunctionDefinition","src":"31400:568:91","nodes":[],"body":{"id":55242,"nodeType":"Block","src":"31600:368:91","nodes":[],"statements":[{"assignments":[55183],"declarations":[{"constant":false,"id":55183,"mutability":"mutable","name":"validators","nameLocation":"31627:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31610:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55181,"name":"address","nodeType":"ElementaryTypeName","src":"31610:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55182,"nodeType":"ArrayTypeName","src":"31610:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55189,"initialValue":{"arguments":[{"hexValue":"33","id":55187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31654:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":55186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31640:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55184,"name":"address","nodeType":"ElementaryTypeName","src":"31644:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55185,"nodeType":"ArrayTypeName","src":"31644:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31640:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31610:46:91"},{"expression":{"id":55194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55190,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31666:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55192,"indexExpression":{"hexValue":"30","id":55191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31677:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31666:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55193,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55166,"src":"31682:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31666:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55195,"nodeType":"ExpressionStatement","src":"31666:26:91"},{"expression":{"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55196,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31702:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55198,"indexExpression":{"hexValue":"31","id":55197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31713:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31702:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55199,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55170,"src":"31718:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31702:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55201,"nodeType":"ExpressionStatement","src":"31702:26:91"},{"expression":{"id":55206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55202,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31738:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55204,"indexExpression":{"hexValue":"32","id":55203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31749:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31738:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55205,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55174,"src":"31754:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31738:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55207,"nodeType":"ExpressionStatement","src":"31738:26:91"},{"assignments":[55212],"declarations":[{"constant":false,"id":55212,"mutability":"mutable","name":"privKeys","nameLocation":"31792:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31775:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55210,"name":"uint256","nodeType":"ElementaryTypeName","src":"31775:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55211,"nodeType":"ArrayTypeName","src":"31775:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55218,"initialValue":{"arguments":[{"hexValue":"33","id":55216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31817:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":55215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31803:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55213,"name":"uint256","nodeType":"ElementaryTypeName","src":"31807:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55214,"nodeType":"ArrayTypeName","src":"31807:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31803:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31775:44:91"},{"expression":{"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55219,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31829:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55221,"indexExpression":{"hexValue":"30","id":55220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31838:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31829:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55222,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"31843:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31829:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55224,"nodeType":"ExpressionStatement","src":"31829:22:91"},{"expression":{"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55225,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31861:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55227,"indexExpression":{"hexValue":"31","id":55226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31870:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31861:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55228,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55172,"src":"31875:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31861:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55230,"nodeType":"ExpressionStatement","src":"31861:22:91"},{"expression":{"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55231,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31893:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55233,"indexExpression":{"hexValue":"32","id":55232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31902:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31893:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55234,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55176,"src":"31907:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31893:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55236,"nodeType":"ExpressionStatement","src":"31893:22:91"},{"expression":{"arguments":[{"id":55238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31940:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55239,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31952:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55237,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"31926:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31926:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55241,"nodeType":"ExpressionStatement","src":"31926:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31409:13:91","parameters":{"id":55177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55166,"mutability":"mutable","name":"validator1","nameLocation":"31440:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31432:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55165,"name":"address","nodeType":"ElementaryTypeName","src":"31432:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55168,"mutability":"mutable","name":"privKey1","nameLocation":"31468:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31460:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55167,"name":"uint256","nodeType":"ElementaryTypeName","src":"31460:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55170,"mutability":"mutable","name":"validator2","nameLocation":"31494:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31486:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55169,"name":"address","nodeType":"ElementaryTypeName","src":"31486:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55172,"mutability":"mutable","name":"privKey2","nameLocation":"31522:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31514:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55171,"name":"uint256","nodeType":"ElementaryTypeName","src":"31514:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55174,"mutability":"mutable","name":"validator3","nameLocation":"31548:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31540:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55173,"name":"address","nodeType":"ElementaryTypeName","src":"31540:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55176,"mutability":"mutable","name":"privKey3","nameLocation":"31576:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31568:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55175,"name":"uint256","nodeType":"ElementaryTypeName","src":"31568:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31422:168:91"},"returnParameters":{"id":55178,"nodeType":"ParameterList","parameters":[],"src":"31600:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55394,"nodeType":"FunctionDefinition","src":"31974:1107:91","nodes":[],"body":{"id":55393,"nodeType":"Block","src":"32062:1019:91","nodes":[],"statements":[{"assignments":[55253],"declarations":[{"constant":false,"id":55253,"mutability":"mutable","name":"n","nameLocation":"32080:1:91","nodeType":"VariableDeclaration","scope":55393,"src":"32072:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55252,"name":"uint256","nodeType":"ElementaryTypeName","src":"32072:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55256,"initialValue":{"expression":{"id":55254,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"32084:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32095:6:91","memberName":"length","nodeType":"MemberAccess","src":"32084:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32072:29:91"},{"assignments":[55261],"declarations":[{"constant":false,"id":55261,"mutability":"mutable","name":"signatures","nameLocation":"32127:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"32112:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55259,"name":"bytes","nodeType":"ElementaryTypeName","src":"32112:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55260,"nodeType":"ArrayTypeName","src":"32112:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":55267,"initialValue":{"arguments":[{"id":55265,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32152:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"32140:11:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":55262,"name":"bytes","nodeType":"ElementaryTypeName","src":"32144:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55263,"nodeType":"ArrayTypeName","src":"32144:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":55266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32140:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"32112:42:91"},{"assignments":[55269,null],"declarations":[{"constant":false,"id":55269,"mutability":"mutable","name":"nextConfigNum","nameLocation":"32173:13:91","nodeType":"VariableDeclaration","scope":55393,"src":"32166:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55268,"name":"uint64","nodeType":"ElementaryTypeName","src":"32166:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":55273,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55270,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32192:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32201:23:91","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50697,"src":"32192:32:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":55272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32192:34:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"32165:61:91"},{"assignments":[55275],"declarations":[{"constant":false,"id":55275,"mutability":"mutable","name":"h","nameLocation":"32245:1:91","nodeType":"VariableDeclaration","scope":55393,"src":"32237:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55274,"name":"uint256","nodeType":"ElementaryTypeName","src":"32237:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55283,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55276,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32249:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32258:28:91","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50825,"src":"32249:37:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32249:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55279,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32291:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32300:19:91","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50805,"src":"32291:28:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32291:30:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32249:72:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32237:84:91"},{"assignments":[55286],"declarations":[{"constant":false,"id":55286,"mutability":"mutable","name":"checkpoint","nameLocation":"32358:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"32332:36:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":55285,"nodeType":"UserDefinedTypeName","pathNode":{"id":55284,"name":"BottomUpCheckpoint","nameLocations":["32332:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"32332:18:91"},"referencedDeclaration":49885,"src":"32332:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55308,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":55294,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"32458:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32450:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55292,"name":"address","nodeType":"ElementaryTypeName","src":"32450:7:91","typeDescriptions":{}}},"id":55295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32450:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55288,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32414:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32423:9:91","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50627,"src":"32414:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32414:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32435:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"32414:35:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32414:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55297,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"32496:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55301,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"32543:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32532:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32536:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32532:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32532:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55298,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32522:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32522:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55304,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55269,"src":"32585:13:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32601:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32585:17:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55287,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"32371:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32404:8:91","32483:11:91","32511:9:91","32560:23:91"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"32371:242:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"32332:281:91"},{"expression":{"arguments":[{"arguments":[{"id":55314,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"32640:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32632:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"32632:7:91","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32632:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32652:9:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55309,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32624:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32627:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"32624:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32624:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55318,"nodeType":"ExpressionStatement","src":"32624:38:91"},{"assignments":[55320],"declarations":[{"constant":false,"id":55320,"mutability":"mutable","name":"hash","nameLocation":"32681:4:91","nodeType":"VariableDeclaration","scope":55393,"src":"32673:12:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32673:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55327,"initialValue":{"arguments":[{"arguments":[{"id":55324,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"32709:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55322,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32698:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32702:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32698:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32698:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55321,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32688:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32688:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32673:48:91"},{"body":{"id":55363,"nodeType":"Block","src":"32764:140:91","statements":[{"assignments":[55339,55341,55343],"declarations":[{"constant":false,"id":55339,"mutability":"mutable","name":"v","nameLocation":"32785:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32779:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55338,"name":"uint8","nodeType":"ElementaryTypeName","src":"32779:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55341,"mutability":"mutable","name":"r","nameLocation":"32796:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32788:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32788:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55343,"mutability":"mutable","name":"s","nameLocation":"32807:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32799:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32799:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55351,"initialValue":{"arguments":[{"baseExpression":{"id":55346,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"32820:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55348,"indexExpression":{"id":55347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32829:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32820:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55349,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55320,"src":"32833:4:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55344,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32812:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32815:4:91","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"32812:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32812:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"32778:60:91"},{"expression":{"id":55361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55352,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55261,"src":"32852:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55354,"indexExpression":{"id":55353,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32863:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32852:13:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55357,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55341,"src":"32885:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55358,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55343,"src":"32888:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55359,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55339,"src":"32891:1:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32868:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32872:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"32868:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32868:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"32852:41:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55362,"nodeType":"ExpressionStatement","src":"32852:41:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55332,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32752:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55333,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32756:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32752:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55364,"initializationExpression":{"assignments":[55329],"declarations":[{"constant":false,"id":55329,"mutability":"mutable","name":"i","nameLocation":"32745:1:91","nodeType":"VariableDeclaration","scope":55364,"src":"32737:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55328,"name":"uint256","nodeType":"ElementaryTypeName","src":"32737:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55331,"initialValue":{"hexValue":"30","id":55330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32749:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32737:13:91"},"loopExpression":{"expression":{"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32759:3:91","subExpression":{"id":55335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32759:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55337,"nodeType":"ExpressionStatement","src":"32759:3:91"},"nodeType":"ForStatement","src":"32732:172:91"},{"body":{"id":55391,"nodeType":"Block","src":"32946:129:91","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55378,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"32969:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55380,"indexExpression":{"id":55379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32980:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32969:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55375,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32960:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32963:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"32960:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32960:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55382,"nodeType":"ExpressionStatement","src":"32960:23:91"},{"expression":{"arguments":[{"id":55386,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"33029:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55387,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"33041:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55388,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55261,"src":"33053:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55383,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"32997:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":55385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33012:16:91","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":50370,"src":"32997:31:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32997:67:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55390,"nodeType":"ExpressionStatement","src":"32997:67:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32934:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55370,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32938:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32934:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55392,"initializationExpression":{"assignments":[55366],"declarations":[{"constant":false,"id":55366,"mutability":"mutable","name":"i","nameLocation":"32927:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32919:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"32919:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55368,"initialValue":{"hexValue":"30","id":55367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32931:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32919:13:91"},"loopExpression":{"expression":{"id":55373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32941:3:91","subExpression":{"id":55372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32941:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55374,"nodeType":"ExpressionStatement","src":"32941:3:91"},"nodeType":"ForStatement","src":"32914:161:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31983:13:91","parameters":{"id":55250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55246,"mutability":"mutable","name":"validators","nameLocation":"32014:10:91","nodeType":"VariableDeclaration","scope":55394,"src":"31997:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55244,"name":"address","nodeType":"ElementaryTypeName","src":"31997:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55245,"nodeType":"ArrayTypeName","src":"31997:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55249,"mutability":"mutable","name":"privKeys","nameLocation":"32043:8:91","nodeType":"VariableDeclaration","scope":55394,"src":"32026:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55247,"name":"uint256","nodeType":"ElementaryTypeName","src":"32026:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55248,"nodeType":"ArrayTypeName","src":"32026:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"31996:56:91"},"returnParameters":{"id":55251,"nodeType":"ParameterList","parameters":[],"src":"32062:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55429,"nodeType":"FunctionDefinition","src":"33087:305:91","nodes":[],"body":{"id":55428,"nodeType":"Block","src":"33134:258:91","nodes":[],"statements":[{"assignments":[55400],"declarations":[{"constant":false,"id":55400,"mutability":"mutable","name":"expectedNonce","nameLocation":"33152:13:91","nodeType":"VariableDeclaration","scope":55428,"src":"33144:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55399,"name":"uint256","nodeType":"ElementaryTypeName","src":"33144:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55406,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55401,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"33168:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33177:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33168:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33168:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33195:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33168:28:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"33144:52:91"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55414,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33268:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33272:6:91","memberName":"sender","nodeType":"MemberAccess","src":"33268:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55412,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"33246:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":55413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33263:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"33246:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33246:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55407,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"33206:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33216:7:91","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"33206:17:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55410,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55396,"src":"33231:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33206:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33206:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55418,"nodeType":"ExpressionStatement","src":"33206:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55420,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"33298:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33307:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33298:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33298:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55423,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55400,"src":"33326:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33298:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33341:43:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55419,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33290:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33290:95:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55427,"nodeType":"ExpressionStatement","src":"33290:95:91"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"33096:7:91","parameters":{"id":55397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55396,"mutability":"mutable","name":"releaseAmount","nameLocation":"33112:13:91","nodeType":"VariableDeclaration","scope":55429,"src":"33104:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55395,"name":"uint256","nodeType":"ElementaryTypeName","src":"33104:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33103:23:91"},"returnParameters":{"id":55398,"nodeType":"ParameterList","parameters":[],"src":"33134:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55484,"nodeType":"FunctionDefinition","src":"33398:536:91","nodes":[],"body":{"id":55483,"nodeType":"Block","src":"33467:467:91","nodes":[],"statements":[{"assignments":[55437],"declarations":[{"constant":false,"id":55437,"mutability":"mutable","name":"balanceBefore","nameLocation":"33485:13:91","nodeType":"VariableDeclaration","scope":55483,"src":"33477:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55436,"name":"uint256","nodeType":"ElementaryTypeName","src":"33477:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55440,"initialValue":{"expression":{"id":55438,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33501:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33515:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33501:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33477:45:91"},{"assignments":[null,55442,null,null,null],"declarations":[null,{"constant":false,"id":55442,"mutability":"mutable","name":"stakedBefore","nameLocation":"33544:12:91","nodeType":"VariableDeclaration","scope":55483,"src":"33536:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55441,"name":"uint256","nodeType":"ElementaryTypeName","src":"33536:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55446,"initialValue":{"arguments":[{"id":55444,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33576:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55443,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"33566:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33566:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"33533:57:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55447,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"33601:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33611:8:91","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"33601:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55450,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33627:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33601:38:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33601:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55453,"nodeType":"ExpressionStatement","src":"33601:40:91"},{"assignments":[55455],"declarations":[{"constant":false,"id":55455,"mutability":"mutable","name":"balanceAfter","nameLocation":"33660:12:91","nodeType":"VariableDeclaration","scope":55483,"src":"33652:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55454,"name":"uint256","nodeType":"ElementaryTypeName","src":"33652:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55458,"initialValue":{"expression":{"id":55456,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33675:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33689:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33675:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33652:44:91"},{"assignments":[null,55460,null,null,null],"declarations":[null,{"constant":false,"id":55460,"mutability":"mutable","name":"stakedAfter","nameLocation":"33717:11:91","nodeType":"VariableDeclaration","scope":55483,"src":"33709:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55459,"name":"uint256","nodeType":"ElementaryTypeName","src":"33709:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55464,"initialValue":{"arguments":[{"id":55462,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33748:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55461,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"33738:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33738:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"33706:56:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55466,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55455,"src":"33781:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55467,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55437,"src":"33797:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55468,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33813:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:27:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33781:43:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33826:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33773:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33773:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55473,"nodeType":"ExpressionStatement","src":"33773:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55475,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55460,"src":"33865:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55476,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55442,"src":"33880:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55477,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33895:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33880:26:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33865:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33908:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55474,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33857:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33857:70:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55482,"nodeType":"ExpressionStatement","src":"33857:70:91"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"33407:8:91","parameters":{"id":55434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55431,"mutability":"mutable","name":"stakeAmount","nameLocation":"33424:11:91","nodeType":"VariableDeclaration","scope":55484,"src":"33416:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55430,"name":"uint256","nodeType":"ElementaryTypeName","src":"33416:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55433,"mutability":"mutable","name":"subnetAddress","nameLocation":"33445:13:91","nodeType":"VariableDeclaration","scope":55484,"src":"33437:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55432,"name":"address","nodeType":"ElementaryTypeName","src":"33437:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33415:44:91"},"returnParameters":{"id":55435,"nodeType":"ParameterList","parameters":[],"src":"33467:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55569,"nodeType":"FunctionDefinition","src":"33940:813:91","nodes":[],"body":{"id":55568,"nodeType":"Block","src":"34035:718:91","nodes":[],"statements":[{"assignments":[55496],"declarations":[{"constant":false,"id":55496,"mutability":"mutable","name":"manager","nameLocation":"34065:7:91","nodeType":"VariableDeclaration","scope":55568,"src":"34045:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55495,"nodeType":"UserDefinedTypeName","pathNode":{"id":55494,"name":"GatewayManagerFacet","nameLocations":["34045:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"34045:19:91"},"referencedDeclaration":38870,"src":"34045:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55503,"initialValue":{"arguments":[{"arguments":[{"id":55500,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55491,"src":"34103:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34095:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55498,"name":"address","nodeType":"ElementaryTypeName","src":"34095:7:91","typeDescriptions":{}}},"id":55501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34095:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55497,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"34075:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34075:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"34045:62:91"},{"expression":{"arguments":[{"hexValue":"30","id":55509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34154:1:91","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"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55504,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55496,"src":"34118:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34126:8:91","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"34118:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55507,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"34142:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"34118:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34118:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55511,"nodeType":"ExpressionStatement","src":"34118:38:91"},{"assignments":[55514,55516,55518,null,55520],"declarations":[{"constant":false,"id":55514,"mutability":"mutable","name":"id","nameLocation":"34184:2:91","nodeType":"VariableDeclaration","scope":55568,"src":"34168:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55513,"nodeType":"UserDefinedTypeName","pathNode":{"id":55512,"name":"SubnetID","nameLocations":["34168:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34168:8:91"},"referencedDeclaration":50030,"src":"34168:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55516,"mutability":"mutable","name":"stake","nameLocation":"34196:5:91","nodeType":"VariableDeclaration","scope":55568,"src":"34188:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55515,"name":"uint256","nodeType":"ElementaryTypeName","src":"34188:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55518,"mutability":"mutable","name":"topDownNonce","nameLocation":"34211:12:91","nodeType":"VariableDeclaration","scope":55568,"src":"34203:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55517,"name":"uint256","nodeType":"ElementaryTypeName","src":"34203:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55520,"mutability":"mutable","name":"circSupply","nameLocation":"34235:10:91","nodeType":"VariableDeclaration","scope":55568,"src":"34227:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55519,"name":"uint256","nodeType":"ElementaryTypeName","src":"34227:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55525,"initialValue":{"arguments":[{"id":55522,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55488,"src":"34274:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55523,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55491,"src":"34301:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55521,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55653,"src":"34249:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34249:64:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"34167:146:91"},{"assignments":[55528],"declarations":[{"constant":false,"id":55528,"mutability":"mutable","name":"parentNetwork","nameLocation":"34340:13:91","nodeType":"VariableDeclaration","scope":55568,"src":"34324:29:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55527,"nodeType":"UserDefinedTypeName","pathNode":{"id":55526,"name":"SubnetID","nameLocations":["34324:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34324:8:91"},"referencedDeclaration":50030,"src":"34324:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55532,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55529,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"34356:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34365:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"34356:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34356:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"34324:57:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55534,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55514,"src":"34413:2:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34416:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34413:9:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34413:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55539,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55488,"src":"34457:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55537,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55528,"src":"34428:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34442:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"34428:28:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34428:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34472:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34428:50:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34428:52:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"34413:67:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34494:69:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55533,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34392:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34392:181:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55546,"nodeType":"ExpressionStatement","src":"34392:181:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55548,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55516,"src":"34591:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55549,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"34600:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34591:19:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34612:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34583:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34583:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55553,"nodeType":"ExpressionStatement","src":"34583:48:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55555,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55518,"src":"34649:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34665:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34649:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34668:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55554,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34641:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34641:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55560,"nodeType":"ExpressionStatement","src":"34641:46:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55562,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55520,"src":"34705:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34719:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34705:15:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34722:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55561,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34697:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34697:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55567,"nodeType":"ExpressionStatement","src":"34697:49:91"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"33949:16:91","parameters":{"id":55492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55486,"mutability":"mutable","name":"collateral","nameLocation":"33974:10:91","nodeType":"VariableDeclaration","scope":55569,"src":"33966:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55485,"name":"uint256","nodeType":"ElementaryTypeName","src":"33966:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55488,"mutability":"mutable","name":"subnetAddress","nameLocation":"33994:13:91","nodeType":"VariableDeclaration","scope":55569,"src":"33986:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55487,"name":"address","nodeType":"ElementaryTypeName","src":"33986:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55491,"mutability":"mutable","name":"gw","nameLocation":"34024:2:91","nodeType":"VariableDeclaration","scope":55569,"src":"34009:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55490,"nodeType":"UserDefinedTypeName","pathNode":{"id":55489,"name":"GatewayDiamond","nameLocations":["34009:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34009:14:91"},"referencedDeclaration":36170,"src":"34009:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"33965:62:91"},"returnParameters":{"id":55493,"nodeType":"ParameterList","parameters":[],"src":"34035:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55583,"nodeType":"FunctionDefinition","src":"34759:150:91","nodes":[],"body":{"id":55582,"nodeType":"Block","src":"34833:76:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55577,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55571,"src":"34860:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55578,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55573,"src":"34872:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55579,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"34887:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55576,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55569,"src":"34843:16:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34843:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55581,"nodeType":"ExpressionStatement","src":"34843:59:91"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"34768:14:91","parameters":{"id":55574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55571,"mutability":"mutable","name":"collateral","nameLocation":"34791:10:91","nodeType":"VariableDeclaration","scope":55583,"src":"34783:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55570,"name":"uint256","nodeType":"ElementaryTypeName","src":"34783:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55573,"mutability":"mutable","name":"subnetAddress","nameLocation":"34811:13:91","nodeType":"VariableDeclaration","scope":55583,"src":"34803:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55572,"name":"address","nodeType":"ElementaryTypeName","src":"34803:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34782:43:91"},"returnParameters":{"id":55575,"nodeType":"ParameterList","parameters":[],"src":"34833:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55653,"nodeType":"FunctionDefinition","src":"34915:541:91","nodes":[],"body":{"id":55652,"nodeType":"Block","src":"35069:387:91","nodes":[],"statements":[{"expression":{"id":55609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55602,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"35079:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55606,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55588,"src":"35119:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35111:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55604,"name":"address","nodeType":"ElementaryTypeName","src":"35111:7:91","typeDescriptions":{}}},"id":55607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35111:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55603,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"35091:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35091:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"35079:44:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55610,"nodeType":"ExpressionStatement","src":"35079:44:91"},{"expression":{"id":55618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55611,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35133:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55615,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55588,"src":"35171:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35163:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55613,"name":"address","nodeType":"ElementaryTypeName","src":"35163:7:91","typeDescriptions":{}}},"id":55616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35163:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55612,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"35144:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35144:31:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"35133:42:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55619,"nodeType":"ExpressionStatement","src":"35133:42:91"},{"assignments":[55622],"declarations":[{"constant":false,"id":55622,"mutability":"mutable","name":"subnetId","nameLocation":"35202:8:91","nodeType":"VariableDeclaration","scope":55652,"src":"35186:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55621,"nodeType":"UserDefinedTypeName","pathNode":{"id":55620,"name":"SubnetID","nameLocations":["35186:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35186:8:91"},"referencedDeclaration":50030,"src":"35186:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55629,"initialValue":{"arguments":[{"id":55627,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55585,"src":"35254:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35213:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35222:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"35213:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35213:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35239:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"35213:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35213:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"35186:82:91"},{"assignments":[55632],"declarations":[{"constant":false,"id":55632,"mutability":"mutable","name":"subnet","nameLocation":"35293:6:91","nodeType":"VariableDeclaration","scope":55652,"src":"35279:20:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55631,"nodeType":"UserDefinedTypeName","pathNode":{"id":55630,"name":"Subnet","nameLocations":["35279:6:91"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"35279:6:91"},"referencedDeclaration":50044,"src":"35279:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55639,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55635,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"35319:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35328:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"35319:15:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35319:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55633,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35302:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35311:7:91","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"35302:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50044_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35302:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"35279:58:91"},{"expression":{"components":[{"expression":{"id":55640,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35356:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35363:2:91","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"35356:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55642,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35367:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35374:5:91","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"35367:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55644,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35381:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35388:12:91","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"35381:19:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55646,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35402:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35409:20:91","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"35402:27:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55648,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35431:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35438:10:91","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"35431:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55650,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35355:94:91","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55601,"id":55651,"nodeType":"Return","src":"35348:101:91"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"34924:11:91","parameters":{"id":55589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55585,"mutability":"mutable","name":"subnetAddress","nameLocation":"34953:13:91","nodeType":"VariableDeclaration","scope":55653,"src":"34945:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55584,"name":"address","nodeType":"ElementaryTypeName","src":"34945:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55588,"mutability":"mutable","name":"gw","nameLocation":"34991:2:91","nodeType":"VariableDeclaration","scope":55653,"src":"34976:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55587,"nodeType":"UserDefinedTypeName","pathNode":{"id":55586,"name":"GatewayDiamond","nameLocations":["34976:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34976:14:91"},"referencedDeclaration":36170,"src":"34976:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"34935:64:91"},"returnParameters":{"id":55601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35016:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55591,"nodeType":"UserDefinedTypeName","pathNode":{"id":55590,"name":"SubnetID","nameLocations":["35016:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35016:8:91"},"referencedDeclaration":50030,"src":"35016:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35033:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55593,"name":"uint256","nodeType":"ElementaryTypeName","src":"35033:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35042:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55595,"name":"uint256","nodeType":"ElementaryTypeName","src":"35042:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35051:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55597,"name":"uint256","nodeType":"ElementaryTypeName","src":"35051:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35060:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55599,"name":"uint256","nodeType":"ElementaryTypeName","src":"35060:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35015:53:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55675,"nodeType":"FunctionDefinition","src":"35462:177:91","nodes":[],"body":{"id":55674,"nodeType":"Block","src":"35573:66:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55670,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55655,"src":"35602:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55671,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"35617:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55669,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55653,"src":"35590:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35590:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55668,"id":55673,"nodeType":"Return","src":"35583:49:91"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"35471:9:91","parameters":{"id":55656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55655,"mutability":"mutable","name":"subnetAddress","nameLocation":"35489:13:91","nodeType":"VariableDeclaration","scope":55675,"src":"35481:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55654,"name":"address","nodeType":"ElementaryTypeName","src":"35481:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35480:23:91"},"returnParameters":{"id":55668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35520:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55658,"nodeType":"UserDefinedTypeName","pathNode":{"id":55657,"name":"SubnetID","nameLocations":["35520:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35520:8:91"},"referencedDeclaration":50030,"src":"35520:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35537:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55660,"name":"uint256","nodeType":"ElementaryTypeName","src":"35537:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35546:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55662,"name":"uint256","nodeType":"ElementaryTypeName","src":"35546:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35555:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55664,"name":"uint256","nodeType":"ElementaryTypeName","src":"35555:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55667,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35564:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55666,"name":"uint256","nodeType":"ElementaryTypeName","src":"35564:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35519:53:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53090,"name":"Test","nameLocations":["9402:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"9402:4:91"},"id":53091,"nodeType":"InheritanceSpecifier","src":"9402:4:91"},{"baseName":{"id":53092,"name":"TestParams","nameLocations":["9408:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"9408:10:91"},"id":53093,"nodeType":"InheritanceSpecifier","src":"9408:10:91"},{"baseName":{"id":53094,"name":"TestRegistry","nameLocations":["9420:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":52760,"src":"9420:12:91"},"id":53095,"nodeType":"InheritanceSpecifier","src":"9420:12:91"},{"baseName":{"id":53096,"name":"TestSubnetActor","nameLocations":["9434:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":53089,"src":"9434:15:91"},"id":53097,"nodeType":"InheritanceSpecifier","src":"9434:15:91"},{"baseName":{"id":53098,"name":"TestGatewayActor","nameLocations":["9451:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":52925,"src":"9451:16:91"},"id":53099,"nodeType":"InheritanceSpecifier","src":"9451:16:91"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58342],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55676,52925,53089,52760,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"9379:19:91","scope":55677,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file diff --git a/.out/IntegrationTestBase.sol/TestGatewayActor.json b/.out/IntegrationTestBase.sol/TestGatewayActor.json index 8630e7df5..32e5e7251 100644 --- a/.out/IntegrationTestBase.sol/TestGatewayActor.json +++ b/.out/IntegrationTestBase.sol/TestGatewayActor.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234620012ed57600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601260248201527110da1958dadc1bda5b9d1a5b99d19858d95d60721b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae57600091620012ce575b508051906001600160401b03821162000870576801000000000000000082116200087057601b5482601b558083106200126b575b5060200190601b60005260206000209060005b8160031c81106200121b57506007198116810380620011c3575b505050506040516319b8a26360e21b8152602060048201526012602482015271161b995d13595cdcd859da5b99d19858d95d60721b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae57600091620011a4575b508051906001600160401b03821162000870576801000000000000000082116200087057601c5482601c5580831062001138575b5060200190601c60005260206000209060005b8160031c8110620010e85750600719811681036200108f575b50506040516319b8a26360e21b815260206004820152601460248201527f546f70446f776e46696e616c69747946616365740000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162001070575b508051906001600160401b03821162000870576801000000000000000082116200087057601d5482601d5580831062000fe7575b5060200190601d60005260206000209060005b8160031c811062000f9757506007198116810362000f3e575b50506040516319b8a26360e21b815260206004820152601360248201527f426f74746f6d5570526f757465724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000f1f575b508051906001600160401b03821162000870576801000000000000000082116200087057601e5482601e5580831062000e96575b5060200190601e60005260206000209060005b8160031c811062000e4657506007198116810362000ded575b50506040516319b8a26360e21b815260206004820152601260248201527111d85d195dd85e51d95d1d195c919858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000dce575b508051906001600160401b038211620008705768010000000000000000821162000870576020548260205580831062000d56575b50602060008181529101916000805160206200203b833981519152915b8160031c811062000d0657506007198116810362000cad575b50506040516319b8a26360e21b815260206004820152601360248201527f476174657761794d616e616765724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000c8e575b508051906001600160401b03821162000870576801000000000000000082116200087057601f5482601f5580831062000c05575b5060200190601f60005260206000209060005b8160031c811062000bb557506007198116810362000b5c575b50506040516319b8a26360e21b815260206004820152601560248201527f476174657761794d657373656e676572466163657400000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000b3d575b508051906001600160401b038211620008705768010000000000000000821162000870576021548260215580831062000ab4575b5060200190602160005260206000209060005b8160031c811062000a6457506007198116810362000a0b575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae57600091620009ec575b508051906001600160401b038211620008705768010000000000000000821162000870576022548260225580831062000963575b5060200190602260005260206000209060005b8160031c811062000913575060071981168103620008ba575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000886575b508051906001600160401b03821162000870576801000000000000000082116200087057602354826023558083106200080d575b5060200190602360005260206000208160031c9160005b838110620007bd5750600719811690038062000768575b604051610c8e9081620013ad8239f35b9260009360005b818110620007865750505001553880808062000758565b9091946020620007b2600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200076f565b6000805b60088110620007d857508382015560010162000741565b9590602062000803600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620007c1565b60236000526020600020600780850160031c8201920160031c0190601c8460021b168062000854575b505b8181106200084757506200072a565b6000815560010162000838565b600019908183019182549160200360031b1c1690553862000836565b634e487b7160e01b600052604160045260246000fd5b620008a791503d806000833e6200089e8183620012f2565b81019062001316565b38620006f6565b6040513d6000823e3d90fd5b60009260005b600719831683038110620008de57505060031c01553880806200068f565b9093602062000909600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620008c0565b6000805b600881106200092e57508382015560010162000676565b9490602062000959600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000917565b60226000527f61035b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e510600284901b601c1680620009c8575b506007840160031c81015b6007830160031c82018110620009bb57505062000663565b60008155600101620009a3565b60001990816007870160031c8401019182549160200360031b1c1690553862000998565b62000a0491503d806000833e6200089e8183620012f2565b386200062f565b60009260005b60071983168303811062000a2f57505060031c0155388080620005ca565b9093602062000a5a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000a11565b6000805b6008811062000a7f575083820155600101620005b1565b9490602062000aaa600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000a68565b60216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570600284901b601c168062000b19575b506007840160031c81015b6007830160031c8201811062000b0c5750506200059e565b6000815560010162000af4565b60001990816007870160031c8401019182549160200360031b1c1690553862000ae9565b62000b5591503d806000833e6200089e8183620012f2565b386200056a565b60009260005b60071983168303811062000b8057505060031c0155388080620004f7565b9093602062000bab600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000b62565b6000805b6008811062000bd0575083820155600101620004de565b9490602062000bfb600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000bb9565b601f6000527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807600284901b601c168062000c6a575b506007840160031c81015b6007830160031c8201811062000c5d575050620004cb565b6000815560010162000c45565b60001990816007870160031c8401019182549160200360031b1c1690553862000c3a565b62000ca691503d806000833e6200089e8183620012f2565b3862000497565b60009260005b60071983168303811062000cd157505060031c015538808062000424565b9093602062000cfc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000cb3565b6000805b6008811062000d215750838201556001016200040b565b9490602062000d4c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000d0a565b60206000526000805160206200203b833981519152600284901b601c168062000daa575b506007840160031c81015b6007830160031c8201811062000d9d575050620003ee565b6000815560010162000d85565b60001990816007870160031c8401019182549160200360031b1c1690553862000d7a565b62000de691503d806000833e6200089e8183620012f2565b38620003ba565b60009260005b60071983168303811062000e1157505060031c015538808062000352565b9093602062000e3c600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000df3565b6000805b6008811062000e6157508382015560010162000339565b9490602062000e8c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000e4a565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c168062000efb575b506007840160031c81015b6007830160031c8201811062000eee57505062000326565b6000815560010162000ed6565b60001990816007870160031c8401019182549160200360031b1c1690553862000ecb565b62000f3791503d806000833e6200089e8183620012f2565b38620002f2565b60009260005b60071983168303811062000f6257505060031c01553880806200027f565b9093602062000f8d600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000f44565b6000805b6008811062000fb257508382015560010162000266565b9490602062000fdd600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000f9b565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c16806200104c575b506007840160031c81015b6007830160031c820181106200103f57505062000253565b6000815560010162001027565b60001990816007870160031c8401019182549160200360031b1c169055386200101c565b6200108891503d806000833e6200089e8183620012f2565b386200021f565b60009260005b600719831683038110620010b357505060031c0155388080620001ac565b90936020620010de600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001095565b6000805b600881106200110357508382015560010162000193565b949060206200112e600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620010ec565b601c6000526020600020601c8460021b168062001180575b506007840160031c81015b6007830160031c820181106200117357505062000180565b600081556001016200115b565b60001990816007870160031c8401019182549160200360031b1c1690553862001150565b620011bc91503d806000833e6200089e8183620012f2565b386200014c565b9260009360005b818110620011e45750505060031c015538808080620000e4565b909194602062001210600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620011ca565b6000805b6008811062001236575083820155600101620000ca565b9490602062001261600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200121f565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b1680620012b2575b505b818110620012a55750620000b7565b6000815560010162001296565b600019908183019182549160200360031b1c1690553862001294565b620012e691503d806000833e6200089e8183620012f2565b3862000083565b600080fd5b601f909101601f19168101906001600160401b038211908210176200087057604052565b906020908183820312620012ed5782516001600160401b0393848211620012ed570181601f82011215620012ed57805193841162000870578360051b90604051946200136585840187620012f2565b85528380860192820101928311620012ed578301905b8282106200138a575050505090565b81516001600160e01b031981168103620012ed5781529083019083016200137b56fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220c963444b4037c9ad40a9bc0d116932e1e3ee1de56d04368062ea43244df2937b64736f6c63430008130033c97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb","sourceMap":"4501:2237:88:-:0;;;;;;;1594:4:2;4501:2237:88;;;;1594:4:2;4501:2237:88;;;1594:4:2;4501:2237:88;3201:4:5;4501:2237:88;;;3201:4:5;4501:2237:88;;;;5345:54;;4501:2237;3201:4:5;5345:54:88;;4501:2237;;;;;;-1:-1:-1;;;4501:2237:88;;;;1594:4:2;5345:15:88;4501:2237;5345:15;;:54;;;;;;;1594:4:2;5345:54:88;;;-1:-1:-1;;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5313:86;4501:2237;;5313:86;4501:2237;;;;;;-1:-1:-1;4501:2237:88;;;;5313:86;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;;;;;;;;;;;5441:54;;4501:2237;3201:4:5;5441:54:88;;4501:2237;;;;;;-1:-1:-1;;;4501:2237:88;;;;1594:4:2;5345:15:88;4501:2237;5345:15;;5441:54;;;;;;;1594:4:2;5441:54:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5409:86;4501:2237;;5409:86;4501:2237;;;;;;;;;;;5409:86;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5539:56:88;;4501:2237;3201:4:5;5539:56:88;;4501:2237;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5539:56;;;;;;;1594:4:2;5539:56:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5505:90;4501:2237;;5505:90;4501:2237;;;;;;;;;;;5505:90;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5638:55:88;;4501:2237;3201:4:5;5638:55:88;;4501:2237;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5638:55;;;;;;;1594:4:2;5638:55:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5605:88;4501:2237;;5605:88;4501:2237;;;;;;;;;;;5605:88;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5724:54:88;;4501:2237;3201:4:5;5724:54:88;;4501:2237;;;;;;-1:-1:-1;;;4501:2237:88;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5724:54;;;;;;;1594:4:2;5724:54:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4501:2237:88;1594:4:2;4501:2237:88;;;;;;-1:-1:-1;;;;;;;;;;;4501:2237:88;;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5809:55:88;;4501:2237;3201:4:5;5809:55:88;;4501:2237;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5809:55;;;;;;;1594:4:2;5809:55:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5788:76;4501:2237;;5788:76;4501:2237;;;;;;;;;;;5788:76;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5897:57:88;;4501:2237;3201:4:5;5897:57:88;;4501:2237;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5897:57;;;;;;;1594:4:2;5897:57:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5874:80;4501:2237;;5874:80;4501:2237;;;;;;;;;;;5874:80;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5984:51:88;;4501:2237;3201:4:5;5984:51:88;;4501:2237;;;;;;-1:-1:-1;;;4501:2237:88;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5984:51;;;;;;;1594:4:2;5984:51:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5964:71;4501:2237;;5964:71;4501:2237;;;;;;;;;;;5964:71;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;6064:53:88;;4501:2237;3201:4:5;6064:53:88;;4501:2237;;;;;;-1:-1:-1;;;4501:2237:88;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;6064:53;;;;;;;1594:4:2;6064:53:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;6045:72;4501:2237;;6045:72;4501:2237;;;;;;;;;;;6045:72;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;1594:4:2;4501:2237:88;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6045:72;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;3201:4:5;4501:2237:88;;1594:4:2;4501:2237:88;6064:53;;;;;;1594:4:2;6064:53:88;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;4501:2237;;;1594:4:2;4501:2237:88;;;;;;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5964:71;1594:4:2;4501:2237:88;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:51;;;;;;1594:4:2;5984:51:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5874:80;1594:4:2;4501:2237:88;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5897:57;;;;;;1594:4:2;5897:57:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5788:76;1594:4:2;4501:2237:88;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5809:55;;;;;;1594:4:2;5809:55:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;-1:-1:-1;;;;;;;;;;;4501:2237:88;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5724:54;;;;;;1594:4:2;5724:54:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:88;1594:4:2;4501:2237:88;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5638:55;;;;;;1594:4:2;5638:55:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5505:90;1594:4:2;4501:2237:88;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5539:56;;;;;;1594:4:2;5539:56:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5409:86;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5441:54;;;;;;1594:4:2;5441:54:88;;;;;;:::i;:::-;;;;4501:2237;;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5313:86;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;5345:54;;;;;;1594:4:2;5345:54:88;;;;;;:::i;:::-;;;;4501:2237;;;;;;;;;-1:-1:-1;;4501:2237:88;;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;","linkReferences":{"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":93,"length":20},{"start":294,"length":20},{"start":505,"length":20},{"start":716,"length":20},{"start":916,"length":20},{"start":1137,"length":20},{"start":1348,"length":20},{"start":1545,"length":20},{"start":1744,"length":20}]}}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220c963444b4037c9ad40a9bc0d116932e1e3ee1de56d04368062ea43244df2937b64736f6c63430008130033","sourceMap":"4501:2237:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;4501:2237:88;;;;:::i;:::-;;1671:64:2;4501:2237:88;;1671:64:2;;;:::i;:::-;4501:2237:88;;;1982:18:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4501:2237:88;;;;;;;;-1:-1:-1;4501:2237:88;;;;;-1:-1:-1;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;;;-1:-1:-1;4501:2237:88;;;;;;;;;-1:-1:-1;4501:2237:88;;;;-1:-1:-1;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;4501:2237:88;;;;:::i;:::-;;1671:64:2;4501:2237:88;;1671:64:2;;;:::i;:::-;4501:2237:88;;;2899:18:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;4501:2237:88;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;4501:2237:88;;;;:::i;:::-;;1671:64:2;4501:2237:88;;1671:64:2;;;:::i;:::-;4501:2237:88;;;2416:18:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4501:2237:88;;;;;;;;-1:-1:-1;4501:2237:88;;;;;-1:-1:-1;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;;;-1:-1:-1;4501:2237:88;;;;;;;;;-1:-1:-1;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;4501:2237:88;;;;:::i;:::-;;1671:64:2;4501:2237:88;;1671:64:2;;;:::i;:::-;4501:2237:88;;;2592:26:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;4501:2237:88;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;1671:64:2;4501:2237:88;1671:64:2;;;;;;;;;;;4501:2237:88;1671:64:2;:::o;:::-;4501:2237:88;;;1671:64:2;;;;;;;;;;4501:2237:88;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;4501:2237:88;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;4501:2237:88;;;2196:43:2;;;4501:2237:88;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;4501:2237:88;;-1:-1:-1;1671:64:2;;4501:2237:88;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;4501:2237:88;1671:64:2;2086:175;;;4501:2237:88;;;;;;1671:64:2;4501:2237:88;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;4501:2237:88;;;1671:64:2;4501:2237:88;;;-1:-1:-1;;4501:2237:88;2196:43:2;1671:64;4501:2237:88;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;4501:2237:88;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;4501:2237:88;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;4501:2237:88;1671:64:2;;;4501:2237:88;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;4501:2237:88;1671:64:2;4501:2237:88;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"TestGatewayActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496\",\"dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestGatewayActor"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692","urls":["bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496","dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55376,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49974],"CrossMsgHelper":[40781],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50204],"IntegrationTestBase":[55375],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50165],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52279],"SelectorLibrary":[56263],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52912],"TestParams":[52683],"TestRegistry":[52747],"TestSubnetActor":[53037],"TestUtils":[57051],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50211],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:31883:88","nodes":[{"id":52519,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52520,"nodeType":"ImportDirective","src":"71:28:88","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52521,"nodeType":"ImportDirective","src":"100:36:88","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52522,"nodeType":"ImportDirective","src":"137:37:88","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52525,"nodeType":"ImportDirective","src":"176:72:88","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52523,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52524,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52527,"nodeType":"ImportDirective","src":"249:61:88","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52526,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"311:56:88","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"368:102:88","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":52530,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"376:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"386:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52532,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"406:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52533,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"419:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"471:57:88","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":52535,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"479:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52545,"nodeType":"ImportDirective","src":"529:140:88","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":52537,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"537:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"547:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"559:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"575:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52541,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"591:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52542,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"599:12:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52543,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"613:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"625:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52547,"nodeType":"ImportDirective","src":"670:61:88","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":52546,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"678:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52549,"nodeType":"ImportDirective","src":"732:65:88","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":52548,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"740:16:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"798:61:88","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":52550,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"806:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"860:67:88","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":52552,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"868:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"928:56:88","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52554,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"985:57:88","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52556,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"1043:65:88","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52558,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"1109:73:88","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52560,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"1183:79:88","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1263:75:88","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52564,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1340:80:88","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52566,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1421:80:88","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52568,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1502:84:88","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52570,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1587:82:88","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52572,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1671:84:88","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"./mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":52574,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1679:27:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1756:82:88","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":52576,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"1764:23:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1839:80:88","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":52578,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1847:22:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1920:71:88","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"1928:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1992:82:88","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":52582,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"2000:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"2075:78:88","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"2083:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"2154:71:88","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52586,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2162:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"2226:67:88","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52588,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2234:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2294:69:88","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":52590,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"2302:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2364:50:88","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":52592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2372:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2415:62:88","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":56264,"symbolAliases":[{"foreign":{"id":52594,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2423:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52683,"nodeType":"ContractDefinition","src":"2479:1194:88","nodes":[{"id":52602,"nodeType":"VariableDeclaration","src":"2505:44:88","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2521:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52596,"name":"uint64","nodeType":"ElementaryTypeName","src":"2505:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2538:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52598,"name":"uint64","nodeType":"ElementaryTypeName","src":"2538:6:88","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52597,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2533:4:88","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2546:3:88","memberName":"max","nodeType":"MemberAccess","src":"2533:16:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52608,"nodeType":"VariableDeclaration","src":"2555:91:88","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2572:20:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52603,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2603:42:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2595:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52604,"name":"address","nodeType":"ElementaryTypeName","src":"2595:7:88","typeDescriptions":{}}},"id":52607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2595:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52611,"nodeType":"VariableDeclaration","src":"2652:42:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2668:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2652:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2693:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52614,"nodeType":"VariableDeclaration","src":"2700:54:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2717:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2700:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52617,"nodeType":"VariableDeclaration","src":"2760:47:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2775:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52615,"name":"uint8","nodeType":"ElementaryTypeName","src":"2760:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2805:2:88","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2813:51:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2829:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52618,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2857:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2870:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2886:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2870:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2922:44:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2938:16:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52624,"name":"string","nodeType":"ElementaryTypeName","src":"2922:6:88","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2957:9:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2972:36:88","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2987:7:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52627,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52628,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2997:11:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3014:48:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3031:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52630,"name":"uint256","nodeType":"ElementaryTypeName","src":"3014:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3068:49:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3085:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52633,"name":"uint256","nodeType":"ElementaryTypeName","src":"3068:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3123:52:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3140:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52636,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3172:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3164:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52637,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:88","typeDescriptions":{}}},"id":52640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3181:54:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3198:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52642,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3232:2:88","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52643,"name":"address","nodeType":"ElementaryTypeName","src":"3224:7:88","typeDescriptions":{}}},"id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52652,"nodeType":"VariableDeclaration","src":"3241:57:88","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3257:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52648,"name":"uint64","nodeType":"ElementaryTypeName","src":"3241:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3269:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52650,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"3273:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3269:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52655,"nodeType":"VariableDeclaration","src":"3304:50:88","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3321:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3304:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3347:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52658,"nodeType":"VariableDeclaration","src":"3360:53:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3376:31:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52656,"name":"uint16","nodeType":"ElementaryTypeName","src":"3360:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52661,"nodeType":"VariableDeclaration","src":"3419:38:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3433:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52659,"name":"int8","nodeType":"ElementaryTypeName","src":"3419:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3463:37:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3479:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52662,"name":"uint64","nodeType":"ElementaryTypeName","src":"3463:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3497:3:88","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3506:45:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3523:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3549:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52666,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:88","typeDescriptions":{}}},"id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3557:57:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3574:24:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"3557:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3609:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3601:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52672,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:88","typeDescriptions":{}}},"id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3620:50:88","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3637:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3620:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3667:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3659:7:88","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52683],"name":"TestParams","nameLocation":"2488:10:88","scope":55376,"usedErrors":[]},{"id":52747,"nodeType":"ContractDefinition","src":"3675:824:88","nodes":[{"id":52690,"nodeType":"VariableDeclaration","src":"3723:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3732:28:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52688,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3723:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52689,"nodeType":"ArrayTypeName","src":"3723:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52693,"nodeType":"VariableDeclaration","src":"3766:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3775:34:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52691,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52692,"nodeType":"ArrayTypeName","src":"3766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52696,"nodeType":"VariableDeclaration","src":"3815:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3824:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52694,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3815:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52695,"nodeType":"ArrayTypeName","src":"3815:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52699,"nodeType":"VariableDeclaration","src":"3853:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3862:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52697,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3853:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52698,"nodeType":"ArrayTypeName","src":"3853:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52702,"nodeType":"VariableDeclaration","src":"3892:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3914:15:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52701,"nodeType":"UserDefinedTypeName","pathNode":{"id":52700,"name":"SubnetRegistryDiamond","nameLocations":["3892:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"3892:21:88"},"referencedDeclaration":36853,"src":"3892:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3935:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3953:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52704,"nodeType":"UserDefinedTypeName","pathNode":{"id":52703,"name":"DiamondLoupeFacet","nameLocations":["3935:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"3935:17:88"},"referencedDeclaration":37355,"src":"3935:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"3973:30:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3989:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52707,"nodeType":"UserDefinedTypeName","pathNode":{"id":52706,"name":"DiamondCutFacet","nameLocations":["3973:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"3973:15:88"},"referencedDeclaration":36918,"src":"3973:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4009:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4029:19:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52710,"nodeType":"UserDefinedTypeName","pathNode":{"id":52709,"name":"RegisterSubnetFacet","nameLocations":["4009:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"4009:19:88"},"referencedDeclaration":52279,"src":"4009:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4054:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4072:25:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetGetterFacet","nameLocations":["4054:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"4054:17:88"},"referencedDeclaration":52517,"src":"4054:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52746,"nodeType":"FunctionDefinition","src":"4104:393:88","nodes":[],"body":{"id":52745,"nodeType":"Block","src":"4118:379:88","nodes":[],"statements":[{"expression":{"id":52722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52717,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"4128:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4192:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52718,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4159:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4175:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4159:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4128:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52723,"nodeType":"ExpressionStatement","src":"4128:86:88"},{"expression":{"id":52729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52724,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"4224:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4294:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52725,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4261:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4277:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4261:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4224:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52730,"nodeType":"ExpressionStatement","src":"4224:90:88"},{"expression":{"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52731,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"4324:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4383:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52732,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4350:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4350:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:77:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52737,"nodeType":"ExpressionStatement","src":"4324:77:88"},{"expression":{"id":52743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52738,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"4411:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4470:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52739,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4437:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4437:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4411:79:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52744,"nodeType":"ExpressionStatement","src":"4411:79:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52715,"nodeType":"ParameterList","parameters":[],"src":"4115:2:88"},"returnParameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"4118:0:88"},"scope":52747,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52684,"name":"Test","nameLocations":["3700:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3700:4:88"},"id":52685,"nodeType":"InheritanceSpecifier","src":"3700:4:88"},{"baseName":{"id":52686,"name":"TestParams","nameLocations":["3706:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"3706:10:88"},"id":52687,"nodeType":"InheritanceSpecifier","src":"3706:10:88"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3684:12:88","scope":55376,"usedErrors":[]},{"id":52912,"nodeType":"ContractDefinition","src":"4501:2237:88","nodes":[{"id":52754,"nodeType":"VariableDeclaration","src":"4553:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4562:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52752,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4553:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52753,"nodeType":"ArrayTypeName","src":"4553:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52757,"nodeType":"VariableDeclaration","src":"4597:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4606:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52755,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4597:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52756,"nodeType":"ArrayTypeName","src":"4597:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52760,"nodeType":"VariableDeclaration","src":"4641:40:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4650:31:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52758,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4641:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52759,"nodeType":"ArrayTypeName","src":"4641:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52763,"nodeType":"VariableDeclaration","src":"4687:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4696:30:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52761,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4687:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52762,"nodeType":"ArrayTypeName","src":"4687:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52766,"nodeType":"VariableDeclaration","src":"4733:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4742:18:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4733:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4733:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4766:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4775:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4798:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4807:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4798:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4798:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4834:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4843:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4834:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4834:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4866:25:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4875:16:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4866:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4866:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4898:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4913:14:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52780,"nodeType":"UserDefinedTypeName","pathNode":{"id":52779,"name":"GatewayDiamond","nameLocations":["4898:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"4898:14:88"},"referencedDeclaration":36170,"src":"4898:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4933:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4953:9:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52783,"nodeType":"UserDefinedTypeName","pathNode":{"id":52782,"name":"GatewayManagerFacet","nameLocations":["4933:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"4933:19:88"},"referencedDeclaration":38870,"src":"4933:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"4968:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4987:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52786,"nodeType":"UserDefinedTypeName","pathNode":{"id":52785,"name":"GatewayGetterFacet","nameLocations":["4968:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"4968:18:88"},"referencedDeclaration":38317,"src":"4968:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5001:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5020:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52789,"nodeType":"UserDefinedTypeName","pathNode":{"id":52788,"name":"CheckpointingFacet","nameLocations":["5001:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5001:18:88"},"referencedDeclaration":39870,"src":"5001:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5046:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5065:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"XnetMessagingFacet","nameLocations":["5046:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5046:18:88"},"referencedDeclaration":40144,"src":"5046:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5091:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5112:22:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"TopDownFinalityFacet","nameLocations":["5091:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5091:20:88"},"referencedDeclaration":40071,"src":"5091:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5140:41:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5160:21:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"BottomUpRouterFacet","nameLocations":["5140:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5140:19:88"},"referencedDeclaration":39601,"src":"5140:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5187:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5209:11:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"GatewayMessengerFacet","nameLocations":["5187:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5187:21:88"},"referencedDeclaration":39235,"src":"5187:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5226:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5242:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"DiamondCutFacet","nameLocations":["5226:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5226:15:88"},"referencedDeclaration":36918,"src":"5226:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5256:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5274:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"DiamondLoupeFacet","nameLocations":["5256:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5256:17:88"},"referencedDeclaration":37355,"src":"5256:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52875,"nodeType":"FunctionDefinition","src":"5289:835:88","nodes":[],"body":{"id":52874,"nodeType":"Block","src":"5303:821:88","nodes":[],"statements":[{"expression":{"id":52816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52811,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"5313:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52812,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5345:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5345:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5313:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52817,"nodeType":"ExpressionStatement","src":"5313:86:88"},{"expression":{"id":52823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52818,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"5409:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5474:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52819,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5441:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5441:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5409:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52824,"nodeType":"ExpressionStatement","src":"5409:86:88"},{"expression":{"id":52830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52825,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"5505:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5572:22:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52826,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5539:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5555:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5539:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5539:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5505:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52831,"nodeType":"ExpressionStatement","src":"5505:90:88"},{"expression":{"id":52837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52832,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"5605:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5671:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52833,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5638:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5654:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5638:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:88:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52838,"nodeType":"ExpressionStatement","src":"5605:88:88"},{"expression":{"id":52844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52839,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5704:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5757:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52840,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5724:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5740:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5724:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5724:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5704:74:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52845,"nodeType":"ExpressionStatement","src":"5704:74:88"},{"expression":{"id":52851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52846,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5788:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52847,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5809:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5825:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5809:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5788:76:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52852,"nodeType":"ExpressionStatement","src":"5788:76:88"},{"expression":{"id":52858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52853,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5874:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5930:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52854,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5897:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5913:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5897:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:57:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5874:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52859,"nodeType":"ExpressionStatement","src":"5874:80:88"},{"expression":{"id":52865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52860,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5964:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6017:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52861,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5984:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5984:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5984:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5964:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52866,"nodeType":"ExpressionStatement","src":"5964:71:88"},{"expression":{"id":52872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52867,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"6045:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6097:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52868,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"6064:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6080:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"6064:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6064:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6045:72:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52873,"nodeType":"ExpressionStatement","src":"6045:72:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52809,"nodeType":"ParameterList","parameters":[],"src":"5300:2:88"},"returnParameters":{"id":52810,"nodeType":"ParameterList","parameters":[],"src":"5303:0:88"},"scope":52912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52911,"nodeType":"FunctionDefinition","src":"6130:606:88","nodes":[],"body":{"id":52910,"nodeType":"Block","src":"6234:502:88","nodes":[],"statements":[{"assignments":[52885],"declarations":[{"constant":false,"id":52885,"mutability":"mutable","name":"params","nameLocation":"6284:6:88","nodeType":"VariableDeclaration","scope":52910,"src":"6244:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52884,"nodeType":"UserDefinedTypeName","pathNode":{"id":52883,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6244:14:88","6259:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6244:32:88"},"referencedDeclaration":35883,"src":"6244:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52907,"initialValue":{"arguments":[{"arguments":[{"id":52889,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"6369:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6407:1:88","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":52892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6393:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52890,"name":"address","nodeType":"ElementaryTypeName","src":"6397:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52891,"nodeType":"ArrayTypeName","src":"6397:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52888,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"6353:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6363:4:88","6386:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"6353:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52896,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"6446:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52897,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"6493:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52898,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"6548:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6624:1:88","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":52902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6608:15:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52900,"nodeType":"UserDefinedTypeName","pathNode":{"id":52899,"name":"Validator","nameLocations":["6612:9:88"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"6612:9:88"},"referencedDeclaration":50211,"src":"6612:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":52901,"nodeType":"ArrayTypeName","src":"6612:11:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52905,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"6663:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52886,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6293:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6308:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6293:32:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6340:11:88","6425:19:88","6485:6:88","6528:18:88","6589:17:88","6640:21:88"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6293:412:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6244:461:88"},{"expression":{"id":52908,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52885,"src":"6723:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52880,"id":52909,"nodeType":"Return","src":"6716:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6139:20:88","parameters":{"id":52876,"nodeType":"ParameterList","parameters":[],"src":"6159:2:88"},"returnParameters":{"id":52880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52911,"src":"6193:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52878,"nodeType":"UserDefinedTypeName","pathNode":{"id":52877,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6193:14:88","6208:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6193:32:88"},"referencedDeclaration":35883,"src":"6193:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6192:41:88"},"scope":52912,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52748,"name":"Test","nameLocations":["4530:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4530:4:88"},"id":52749,"nodeType":"InheritanceSpecifier","src":"4530:4:88"},{"baseName":{"id":52750,"name":"TestParams","nameLocations":["4536:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"4536:10:88"},"id":52751,"nodeType":"InheritanceSpecifier","src":"4536:10:88"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52912,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4510:16:88","scope":55376,"usedErrors":[]},{"id":53037,"nodeType":"ContractDefinition","src":"6740:1920:88","nodes":[{"id":52919,"nodeType":"VariableDeclaration","src":"6791:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6800:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52917,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6791:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52918,"nodeType":"ArrayTypeName","src":"6791:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6823:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6832:18:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52920,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6823:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52921,"nodeType":"ArrayTypeName","src":"6823:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6856:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6865:24:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52923,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6856:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52924,"nodeType":"ArrayTypeName","src":"6856:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6895:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6904:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52926,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6895:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52927,"nodeType":"ArrayTypeName","src":"6895:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6927:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6936:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52929,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6927:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52930,"nodeType":"ArrayTypeName","src":"6927:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6960:28:88","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6979:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorDiamond","nameLocations":["6960:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6960:18:88"},"referencedDeclaration":36615,"src":"6960:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6994:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7018:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorManagerFacet","nameLocations":["6994:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"6994:23:88"},"referencedDeclaration":52151,"src":"6994:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"7033:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"7061:15:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"SubnetActorManagerFacetMock","nameLocations":["7033:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"7033:27:88"},"referencedDeclaration":57957,"src":"7033:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"7082:31:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7105:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"SubnetActorGetterFacet","nameLocations":["7082:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"7082:22:88"},"referencedDeclaration":50887,"src":"7082:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52946,"nodeType":"VariableDeclaration","src":"7119:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7135:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52945,"nodeType":"UserDefinedTypeName","pathNode":{"id":52944,"name":"DiamondCutFacet","nameLocations":["7119:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7119:15:88"},"referencedDeclaration":36918,"src":"7119:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52949,"nodeType":"VariableDeclaration","src":"7149:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7167:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52948,"nodeType":"UserDefinedTypeName","pathNode":{"id":52947,"name":"DiamondLoupeFacet","nameLocations":["7149:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7149:17:88"},"referencedDeclaration":37355,"src":"7149:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52988,"nodeType":"FunctionDefinition","src":"7182:463:88","nodes":[],"body":{"id":52987,"nodeType":"Block","src":"7196:449:88","nodes":[],"statements":[{"expression":{"id":52957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52952,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"7206:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7259:24:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52953,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7226:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7242:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7226:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7226:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7206:78:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52958,"nodeType":"ExpressionStatement","src":"7206:78:88"},{"expression":{"id":52964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52959,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"7294:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7348:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52960,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7315:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7331:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7315:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7315:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7294:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52965,"nodeType":"ExpressionStatement","src":"7294:80:88"},{"expression":{"id":52971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52966,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"7384:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7444:29:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":52967,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7411:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7427:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7411:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7384:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52972,"nodeType":"ExpressionStatement","src":"7384:90:88"},{"expression":{"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52973,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"7484:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7537:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52974,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7504:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7520:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7504:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7504:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7484:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52979,"nodeType":"ExpressionStatement","src":"7484:71:88"},{"expression":{"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52980,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"7565:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7618:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52981,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7585:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7585:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7565:73:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52986,"nodeType":"ExpressionStatement","src":"7565:73:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52950,"nodeType":"ParameterList","parameters":[],"src":"7193:2:88"},"returnParameters":{"id":52951,"nodeType":"ParameterList","parameters":[],"src":"7196:0:88"},"scope":53037,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53036,"nodeType":"FunctionDefinition","src":"7651:1007:88","nodes":[],"body":{"id":53035,"nodeType":"Block","src":"7798:860:88","nodes":[],"statements":[{"assignments":[52998],"declarations":[{"constant":false,"id":52998,"mutability":"mutable","name":"native","nameLocation":"7828:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7808:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":52997,"nodeType":"UserDefinedTypeName","pathNode":{"id":52996,"name":"SupplySource","nameLocations":["7808:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7808:12:88"},"referencedDeclaration":50226,"src":"7808:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53002,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52999,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"7837:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7856:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"7837:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7808:56:88"},{"assignments":[53007],"declarations":[{"constant":false,"id":53007,"mutability":"mutable","name":"params","nameLocation":"7918:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7874:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53006,"nodeType":"UserDefinedTypeName","pathNode":{"id":53005,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7874:18:88","7893:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7874:36:88"},"referencedDeclaration":36253,"src":"7874:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53032,"initialValue":{"arguments":[{"arguments":[{"id":53011,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"8004:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8042:1:88","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":53014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8028:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53012,"name":"address","nodeType":"ElementaryTypeName","src":"8032:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53013,"nodeType":"ArrayTypeName","src":"8032:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53010,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"7988:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7998:4:88","8021:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"7988:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53018,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52990,"src":"8076:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53019,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8103:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8117:10:88","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8103:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53021,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"8166:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53022,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52611,"src":"8220:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53023,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8277:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53024,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"8336:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53025,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"8400:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53026,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"8457:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53027,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8506:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53028,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"8557:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8572:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"8557:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53030,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52998,"src":"8610:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53008,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7927:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7946:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7927:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7978:8:88","8060:14:88","8092:9:88","8141:23:88","8205:13:88","8256:19:88","8316:18:88","8377:21:88","8445:10:88","8490:14:88","8541:14:88","8596:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7927:700:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7874:753:88"},{"expression":{"id":53033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53007,"src":"8645:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":52995,"id":53034,"nodeType":"Return","src":"8638:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7660:35:88","parameters":{"id":52991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52990,"mutability":"mutable","name":"gw","nameLocation":"7713:2:88","nodeType":"VariableDeclaration","scope":53036,"src":"7705:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52989,"name":"address","nodeType":"ElementaryTypeName","src":"7705:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7695:26:88"},"returnParameters":{"id":52995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53036,"src":"7753:43:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52993,"nodeType":"UserDefinedTypeName","pathNode":{"id":52992,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7753:18:88","7772:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7753:36:88"},"referencedDeclaration":36253,"src":"7753:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7752:45:88"},"scope":53037,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52913,"name":"Test","nameLocations":["6768:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6768:4:88"},"id":52914,"nodeType":"InheritanceSpecifier","src":"6768:4:88"},{"baseName":{"id":52915,"name":"TestParams","nameLocations":["6774:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"6774:10:88"},"id":52916,"nodeType":"InheritanceSpecifier","src":"6774:10:88"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53037,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6749:15:88","scope":55376,"usedErrors":[]},{"id":55375,"nodeType":"ContractDefinition","src":"8662:23266:88","nodes":[{"id":53051,"nodeType":"UsingForDirective","src":"8766:34:88","nodes":[],"global":false,"libraryName":{"id":53048,"name":"SubnetIDHelper","nameLocations":["8772:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"8772:14:88"},"typeName":{"id":53050,"nodeType":"UserDefinedTypeName","pathNode":{"id":53049,"name":"SubnetID","nameLocations":["8791:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"8791:8:88"},"referencedDeclaration":50077,"src":"8791:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":53055,"nodeType":"UsingForDirective","src":"8805:42:88","nodes":[],"global":false,"libraryName":{"id":53052,"name":"SupplySourceHelper","nameLocations":["8811:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"8811:18:88"},"typeName":{"id":53054,"nodeType":"UserDefinedTypeName","pathNode":{"id":53053,"name":"SupplySource","nameLocations":["8834:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"8834:12:88"},"referencedDeclaration":50226,"src":"8834:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":53059,"nodeType":"UsingForDirective","src":"8852:34:88","nodes":[],"global":false,"libraryName":{"id":53056,"name":"CrossMsgHelper","nameLocations":["8858:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"8858:14:88"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"CrossMsg","nameLocations":["8877:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8877:8:88"},"referencedDeclaration":49974,"src":"8877:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53063,"nodeType":"UsingForDirective","src":"8891:40:88","nodes":[],"global":false,"libraryName":{"id":53060,"name":"StorableMsgHelper","nameLocations":["8897:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"8897:17:88"},"typeName":{"id":53062,"nodeType":"UserDefinedTypeName","pathNode":{"id":53061,"name":"StorableMsg","nameLocations":["8919:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"8919:11:88"},"referencedDeclaration":49991,"src":"8919:11:88","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53067,"nodeType":"UsingForDirective","src":"8936:38:88","nodes":[],"global":false,"libraryName":{"id":53064,"name":"FvmAddressHelper","nameLocations":["8942:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"8942:16:88"},"typeName":{"id":53066,"nodeType":"UserDefinedTypeName","pathNode":{"id":53065,"name":"FvmAddress","nameLocations":["8963:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8963:10:88"},"referencedDeclaration":49998,"src":"8963:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53071,"nodeType":"EventDefinition","src":"8980:67:88","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"8986:21:88","parameters":{"id":53070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53069,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9024:21:88","nodeType":"VariableDeclaration","scope":53071,"src":"9008:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53068,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9007:39:88"}},{"id":53075,"nodeType":"FunctionDefinition","src":"9053:16:88","nodes":[],"body":{"id":53074,"nodeType":"Block","src":"9067:2:88","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53072,"nodeType":"ParameterList","parameters":[],"src":"9064:2:88"},"returnParameters":{"id":53073,"nodeType":"ParameterList","parameters":[],"src":"9067:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53250,"nodeType":"FunctionDefinition","src":"9075:1529:88","nodes":[],"body":{"id":53249,"nodeType":"Block","src":"9107:1497:88","nodes":[],"statements":[{"assignments":[53082],"declarations":[{"constant":false,"id":53082,"mutability":"mutable","name":"path","nameLocation":"9134:4:88","nodeType":"VariableDeclaration","scope":53249,"src":"9117:21:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53080,"name":"address","nodeType":"ElementaryTypeName","src":"9117:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53081,"nodeType":"ArrayTypeName","src":"9117:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53088,"initialValue":{"arguments":[{"hexValue":"31","id":53086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9155:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9141:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53084,"nodeType":"ArrayTypeName","src":"9145:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9141:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9117:40:88"},{"expression":{"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53089,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53082,"src":"9167:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53091,"indexExpression":{"hexValue":"30","id":53090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9167:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53092,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"9177:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9167:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53094,"nodeType":"ExpressionStatement","src":"9167:25:88"},{"assignments":[53099],"declarations":[{"constant":false,"id":53099,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9285:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"9245:59:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53098,"nodeType":"UserDefinedTypeName","pathNode":{"id":53097,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9245:14:88","9260:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9245:32:88"},"referencedDeclaration":35883,"src":"9245:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53100,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52911,"src":"9307:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9245:84:88"},{"expression":{"id":53107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53103,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9339:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53105,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53099,"src":"9377:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53104,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"9356:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:41:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9339:58:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53108,"nodeType":"ExpressionStatement","src":"9339:58:88"},{"expression":{"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53109,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"9408:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53113,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9446:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9438:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53111,"name":"address","nodeType":"ElementaryTypeName","src":"9438:7:88","typeDescriptions":{}}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9438:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53110,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9419:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9419:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9408:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53117,"nodeType":"ExpressionStatement","src":"9408:54:88"},{"expression":{"id":53125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"9472:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53122,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9512:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9504:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9504:7:88","typeDescriptions":{}}},"id":53123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9504:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53119,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9484:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9472:56:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53126,"nodeType":"ExpressionStatement","src":"9472:56:88"},{"expression":{"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53127,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"9538:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53131,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9588:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9580:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53129,"name":"address","nodeType":"ElementaryTypeName","src":"9580:7:88","typeDescriptions":{}}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9580:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53128,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9561:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9538:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53135,"nodeType":"ExpressionStatement","src":"9538:66:88"},{"expression":{"id":53143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53136,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9614:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53140,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9664:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9656:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53138,"name":"address","nodeType":"ElementaryTypeName","src":"9656:7:88","typeDescriptions":{}}},"id":53141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53137,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9637:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9637:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9614:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53144,"nodeType":"ExpressionStatement","src":"9614:66:88"},{"expression":{"id":53152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53145,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9690:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53149,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9744:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9736:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53147,"name":"address","nodeType":"ElementaryTypeName","src":"9736:7:88","typeDescriptions":{}}},"id":53150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9736:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53146,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9715:20:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9690:70:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53153,"nodeType":"ExpressionStatement","src":"9690:70:88"},{"expression":{"id":53161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53154,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9770:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53158,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9822:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9814:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53156,"name":"address","nodeType":"ElementaryTypeName","src":"9814:7:88","typeDescriptions":{}}},"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9814:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53155,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9794:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9770:68:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53162,"nodeType":"ExpressionStatement","src":"9770:68:88"},{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53163,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9848:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53167,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9892:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9884:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53165,"name":"address","nodeType":"ElementaryTypeName","src":"9884:7:88","typeDescriptions":{}}},"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9884:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53164,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9862:21:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9848:60:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53171,"nodeType":"ExpressionStatement","src":"9848:60:88"},{"expression":{"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53172,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9918:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53176,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9955:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9947:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"9947:7:88","typeDescriptions":{}}},"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53173,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9929:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9929:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9918:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53180,"nodeType":"ExpressionStatement","src":"9918:53:88"},{"expression":{"id":53188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53181,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9981:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53185,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10016:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53183,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:88","typeDescriptions":{}}},"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53182,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"9992:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9992:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"9981:51:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53189,"nodeType":"ExpressionStatement","src":"9981:51:88"},{"assignments":[53194],"declarations":[{"constant":false,"id":53194,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10141:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"10097:63:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53193,"nodeType":"UserDefinedTypeName","pathNode":{"id":53192,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10097:18:88","10116:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10097:36:88"},"referencedDeclaration":36253,"src":"10097:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53201,"initialValue":{"arguments":[{"arguments":[{"id":53198,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10220:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53196,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:88","typeDescriptions":{}}},"id":53199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53195,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"10163:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10163:82:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10097:148:88"},{"expression":{"id":53206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10256:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53204,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53194,"src":"10286:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53203,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53710,"src":"10268:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10256:50:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53207,"nodeType":"ExpressionStatement","src":"10256:50:88"},{"expression":{"id":53215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53208,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10316:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10360:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10352:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53210,"name":"address","nodeType":"ElementaryTypeName","src":"10352:7:88","typeDescriptions":{}}},"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53209,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"10328:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10328:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"10316:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53216,"nodeType":"ExpressionStatement","src":"10316:55:88"},{"expression":{"id":53224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10381:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10423:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10415:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53219,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:88","typeDescriptions":{}}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53218,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"10392:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10392:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"10381:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53225,"nodeType":"ExpressionStatement","src":"10381:53:88"},{"expression":{"id":53233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53226,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"10444:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53230,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10481:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10473:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53228,"name":"address","nodeType":"ElementaryTypeName","src":"10473:7:88","typeDescriptions":{}}},"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10473:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53227,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10455:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10455:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10444:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53234,"nodeType":"ExpressionStatement","src":"10444:48:88"},{"expression":{"id":53242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53235,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"10502:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53239,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10537:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10529:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53237,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:88","typeDescriptions":{}}},"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10529:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53236,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10513:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10513:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10502:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53243,"nodeType":"ExpressionStatement","src":"10502:46:88"},{"expression":{"arguments":[{"id":53245,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"10572:19:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10593:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53244,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"10559:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53248,"nodeType":"ExpressionStatement","src":"10559:38:88"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9084:5:88","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"9089:2:88"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"9107:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53509,"nodeType":"FunctionDefinition","src":"10610:3185:88","nodes":[],"body":{"id":53508,"nodeType":"Block","src":"10720:3075:88","nodes":[],"statements":[{"assignments":[53261],"declarations":[{"constant":false,"id":53261,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"10749:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10730:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53260,"nodeType":"UserDefinedTypeName","pathNode":{"id":53259,"name":"CheckpointingFacet","nameLocations":["10730:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10730:18:88"},"referencedDeclaration":39870,"src":"10730:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10770:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53263,"nodeType":"UserDefinedTypeName","pathNode":{"id":53262,"name":"CheckpointingFacet","nameLocations":["10774:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10774:18:88"},"referencedDeclaration":39870,"src":"10774:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10770:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10730:64:88"},{"assignments":[53269],"declarations":[{"constant":false,"id":53269,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"10823:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10804:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53268,"nodeType":"UserDefinedTypeName","pathNode":{"id":53267,"name":"XnetMessagingFacet","nameLocations":["10804:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10804:18:88"},"referencedDeclaration":40144,"src":"10804:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10844:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53271,"nodeType":"UserDefinedTypeName","pathNode":{"id":53270,"name":"XnetMessagingFacet","nameLocations":["10848:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10848:18:88"},"referencedDeclaration":40144,"src":"10848:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10844:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10804:64:88"},{"assignments":[53277],"declarations":[{"constant":false,"id":53277,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"10899:20:88","nodeType":"VariableDeclaration","scope":53508,"src":"10878:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53276,"nodeType":"UserDefinedTypeName","pathNode":{"id":53275,"name":"TopDownFinalityFacet","nameLocations":["10878:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10878:20:88"},"referencedDeclaration":40071,"src":"10878:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10922:24:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53279,"nodeType":"UserDefinedTypeName","pathNode":{"id":53278,"name":"TopDownFinalityFacet","nameLocations":["10926:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10926:20:88"},"referencedDeclaration":40071,"src":"10926:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"10878:70:88"},{"assignments":[53285],"declarations":[{"constant":false,"id":53285,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"10978:19:88","nodeType":"VariableDeclaration","scope":53508,"src":"10958:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53284,"nodeType":"UserDefinedTypeName","pathNode":{"id":53283,"name":"BottomUpRouterFacet","nameLocations":["10958:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"10958:19:88"},"referencedDeclaration":39601,"src":"10958:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53290,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11000:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53287,"nodeType":"UserDefinedTypeName","pathNode":{"id":53286,"name":"BottomUpRouterFacet","nameLocations":["11004:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11004:19:88"},"referencedDeclaration":39601,"src":"11004:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"10958:67:88"},{"assignments":[53293],"declarations":[{"constant":false,"id":53293,"mutability":"mutable","name":"manager","nameLocation":"11056:7:88","nodeType":"VariableDeclaration","scope":53508,"src":"11036:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53292,"nodeType":"UserDefinedTypeName","pathNode":{"id":53291,"name":"GatewayManagerFacet","nameLocations":["11036:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11036:19:88"},"referencedDeclaration":38870,"src":"11036:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53298,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11066:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayManagerFacet","nameLocations":["11070:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11070:19:88"},"referencedDeclaration":38870,"src":"11070:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11066:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11036:55:88"},{"assignments":[53301],"declarations":[{"constant":false,"id":53301,"mutability":"mutable","name":"getter","nameLocation":"11120:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11101:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53300,"nodeType":"UserDefinedTypeName","pathNode":{"id":53299,"name":"GatewayGetterFacet","nameLocations":["11101:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11101:18:88"},"referencedDeclaration":38317,"src":"11101:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11129:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53303,"nodeType":"UserDefinedTypeName","pathNode":{"id":53302,"name":"GatewayGetterFacet","nameLocations":["11133:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11133:18:88"},"referencedDeclaration":38317,"src":"11133:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11101:52:88"},{"assignments":[53309],"declarations":[{"constant":false,"id":53309,"mutability":"mutable","name":"messenger","nameLocation":"11185:9:88","nodeType":"VariableDeclaration","scope":53508,"src":"11163:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53308,"nodeType":"UserDefinedTypeName","pathNode":{"id":53307,"name":"GatewayMessengerFacet","nameLocations":["11163:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11163:21:88"},"referencedDeclaration":39235,"src":"11163:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11197:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53311,"nodeType":"UserDefinedTypeName","pathNode":{"id":53310,"name":"GatewayMessengerFacet","nameLocations":["11201:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11201:21:88"},"referencedDeclaration":39235,"src":"11201:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11197:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11163:61:88"},{"assignments":[53317],"declarations":[{"constant":false,"id":53317,"mutability":"mutable","name":"cutter","nameLocation":"11250:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11234:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53316,"nodeType":"UserDefinedTypeName","pathNode":{"id":53315,"name":"DiamondCutFacet","nameLocations":["11234:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11234:15:88"},"referencedDeclaration":36918,"src":"11234:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53322,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11259:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53319,"nodeType":"UserDefinedTypeName","pathNode":{"id":53318,"name":"DiamondCutFacet","nameLocations":["11263:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11263:15:88"},"referencedDeclaration":36918,"src":"11263:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"11234:46:88"},{"assignments":[53325],"declarations":[{"constant":false,"id":53325,"mutability":"mutable","name":"louper","nameLocation":"11308:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11290:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53324,"nodeType":"UserDefinedTypeName","pathNode":{"id":53323,"name":"DiamondLoupeFacet","nameLocations":["11290:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11290:17:88"},"referencedDeclaration":37355,"src":"11290:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11317:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53327,"nodeType":"UserDefinedTypeName","pathNode":{"id":53326,"name":"DiamondLoupeFacet","nameLocations":["11321:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11321:17:88"},"referencedDeclaration":37355,"src":"11321:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11317:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"11290:50:88"},{"assignments":[53336],"declarations":[{"constant":false,"id":53336,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"11378:12:88","nodeType":"VariableDeclaration","scope":53508,"src":"11351:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"IDiamond.FacetCut","nameLocations":["11351:8:88","11360:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11351:17:88"},"referencedDeclaration":40159,"src":"11351:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53335,"nodeType":"ArrayTypeName","src":"11351:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53343,"initialValue":{"arguments":[{"hexValue":"39","id":53341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11417:1:88","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11393:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"IDiamond.FacetCut","nameLocations":["11397:8:88","11406:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11397:17:88"},"referencedDeclaration":40159,"src":"11397:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53339,"nodeType":"ArrayTypeName","src":"11397:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11393:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11351:68:88"},{"expression":{"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53344,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11430:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53346,"indexExpression":{"hexValue":"30","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11443:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11430:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53351,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53261,"src":"11520:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11512:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53349,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:88","typeDescriptions":{}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11512:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53353,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11565:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11574:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11565:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11589:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11565:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53356,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"11629:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53347,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11462:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11471:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11462:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11498:12:88","11557:6:88","11610:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11462:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11448:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11430:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53360,"nodeType":"ExpressionStatement","src":"11430:253:88"},{"expression":{"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53361,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11694:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53363,"indexExpression":{"hexValue":"36","id":53362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:88","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11694:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53368,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53269,"src":"11784:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53366,"name":"address","nodeType":"ElementaryTypeName","src":"11776:7:88","typeDescriptions":{}}},"id":53369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11776:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53370,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11829:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11838:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11829:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11853:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11829:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53373,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"11893:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53364,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11726:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11735:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11726:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11762:12:88","11821:6:88","11874:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11726:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11712:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11694:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53377,"nodeType":"ExpressionStatement","src":"11694:253:88"},{"expression":{"id":53393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53378,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11958:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53380,"indexExpression":{"hexValue":"37","id":53379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:88","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11958:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53385,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53277,"src":"12048:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12040:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53383,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:88","typeDescriptions":{}}},"id":53386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53387,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12095:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12104:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12095:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12119:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12095:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53390,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"12159:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53381,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11990:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11999:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11990:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12026:12:88","12087:6:88","12140:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11990:215:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11976:239:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11958:257:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53394,"nodeType":"ExpressionStatement","src":"11958:257:88"},{"expression":{"id":53410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53395,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12226:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53397,"indexExpression":{"hexValue":"38","id":53396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:88","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12226:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53402,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53285,"src":"12316:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12308:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53400,"name":"address","nodeType":"ElementaryTypeName","src":"12308:7:88","typeDescriptions":{}}},"id":53403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12308:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53404,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12362:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12371:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12362:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12386:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12362:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53407,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"12426:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53398,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12258:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12267:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12258:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12294:12:88","12354:6:88","12407:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12258:213:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53409,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12244:237:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12226:255:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53411,"nodeType":"ExpressionStatement","src":"12226:255:88"},{"expression":{"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53412,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12492:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53414,"indexExpression":{"hexValue":"31","id":53413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12492:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53419,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53293,"src":"12582:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53417,"name":"address","nodeType":"ElementaryTypeName","src":"12574:7:88","typeDescriptions":{}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53421,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12616:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12625:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12616:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12640:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12616:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53424,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12680:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53415,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12524:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12533:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12524:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12560:12:88","12608:6:88","12661:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12524:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12510:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12492:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53428,"nodeType":"ExpressionStatement","src":"12492:231:88"},{"expression":{"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53429,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12734:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53431,"indexExpression":{"hexValue":"32","id":53430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12747:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12734:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53436,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53301,"src":"12824:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53434,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:88","typeDescriptions":{}}},"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53438,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12857:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12866:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12857:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12881:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12857:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53441,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12921:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12766:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12775:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12766:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12802:12:88","12849:6:88","12902:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12766:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12752:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12734:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53445,"nodeType":"ExpressionStatement","src":"12734:229:88"},{"expression":{"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53446,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12974:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53448,"indexExpression":{"hexValue":"33","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12987:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12974:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53453,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53309,"src":"13064:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13056:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53451,"name":"address","nodeType":"ElementaryTypeName","src":"13056:7:88","typeDescriptions":{}}},"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53455,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13100:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13109:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13100:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13124:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13100:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53458,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13164:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13006:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13042:12:88","13092:6:88","13145:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13006:193:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12992:217:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12974:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53462,"nodeType":"ExpressionStatement","src":"12974:235:88"},{"expression":{"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53463,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13220:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53465,"indexExpression":{"hexValue":"34","id":53464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13233:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13220:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53470,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53325,"src":"13310:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13302:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53468,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:88","typeDescriptions":{}}},"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13302:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53472,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13343:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13352:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13343:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13367:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13343:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53475,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13407:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13252:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13261:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13252:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13288:12:88","13335:6:88","13388:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13252:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13238:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13220:228:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53479,"nodeType":"ExpressionStatement","src":"13220:228:88"},{"expression":{"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53480,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13459:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53482,"indexExpression":{"hexValue":"35","id":53481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13472:1:88","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13459:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53487,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53317,"src":"13549:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"13541:7:88","typeDescriptions":{}}},"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13541:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53489,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13582:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13591:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13582:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13606:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13582:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53492,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13646:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13491:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13500:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13491:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13527:12:88","13574:6:88","13627:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13491:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13477:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13459:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53496,"nodeType":"ExpressionStatement","src":"13459:229:88"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53497,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13699:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53501,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13735:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53502,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53253,"src":"13749:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13716:18:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53499,"nodeType":"UserDefinedTypeName","pathNode":{"id":53498,"name":"GatewayDiamond","nameLocations":["13720:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"13720:14:88"},"referencedDeclaration":36170,"src":"13720:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13716:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"13699:57:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53505,"nodeType":"ExpressionStatement","src":"13699:57:88"},{"expression":{"id":53506,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13774:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53258,"id":53507,"nodeType":"Return","src":"13767:21:88"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"10619:20:88","parameters":{"id":53254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53253,"mutability":"mutable","name":"params","nameLocation":"10680:6:88","nodeType":"VariableDeclaration","scope":53509,"src":"10640:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53252,"nodeType":"UserDefinedTypeName","pathNode":{"id":53251,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10640:14:88","10655:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10640:32:88"},"referencedDeclaration":35883,"src":"10640:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10639:48:88"},"returnParameters":{"id":53258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53509,"src":"10704:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53256,"nodeType":"UserDefinedTypeName","pathNode":{"id":53255,"name":"GatewayDiamond","nameLocations":["10704:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"10704:14:88"},"referencedDeclaration":36170,"src":"10704:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"10703:16:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53575,"nodeType":"FunctionDefinition","src":"13801:854:88","nodes":[],"body":{"id":53574,"nodeType":"Block","src":"14009:646:88","nodes":[],"statements":[{"assignments":[53527],"declarations":[{"constant":false,"id":53527,"mutability":"mutable","name":"diamondCut","nameLocation":"14046:10:88","nodeType":"VariableDeclaration","scope":53574,"src":"14019:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53525,"nodeType":"UserDefinedTypeName","pathNode":{"id":53524,"name":"IDiamond.FacetCut","nameLocations":["14019:8:88","14028:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14019:17:88"},"referencedDeclaration":40159,"src":"14019:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53526,"nodeType":"ArrayTypeName","src":"14019:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53534,"initialValue":{"arguments":[{"hexValue":"32","id":53532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14083:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14059:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53529,"nodeType":"UserDefinedTypeName","pathNode":{"id":53528,"name":"IDiamond.FacetCut","nameLocations":["14063:8:88","14072:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14063:17:88"},"referencedDeclaration":40159,"src":"14063:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53530,"nodeType":"ArrayTypeName","src":"14063:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14059:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14019:66:88"},{"expression":{"id":53547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14096:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53537,"indexExpression":{"hexValue":"30","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14096:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53540,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53514,"src":"14176:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53541,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14214:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14223:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14214:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14238:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14214:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53544,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"14278:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53538,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:88","14206:6:88","14259:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:184:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53546,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:208:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14096:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53548,"nodeType":"ExpressionStatement","src":"14096:224:88"},{"expression":{"id":53561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53549,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14331:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53551,"indexExpression":{"hexValue":"31","id":53550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14331:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53554,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"14411:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53555,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14450:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14459:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14450:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14474:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14450:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53558,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"14514:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53552,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14361:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14370:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14361:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14397:12:88","14442:6:88","14495:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14361:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14347:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14331:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53562,"nodeType":"ExpressionStatement","src":"14331:226:88"},{"expression":{"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53563,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14568:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53567,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14603:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53568,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53512,"src":"14615:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14580:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53565,"nodeType":"UserDefinedTypeName","pathNode":{"id":53564,"name":"SubnetActorDiamond","nameLocations":["14584:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14584:18:88"},"referencedDeclaration":36615,"src":"14584:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"14568:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53571,"nodeType":"ExpressionStatement","src":"14568:54:88"},{"expression":{"id":53572,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14639:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53521,"id":53573,"nodeType":"Return","src":"14632:16:88"}]},"functionSelector":"0d8d4acf","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"13810:35:88","parameters":{"id":53517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53512,"mutability":"mutable","name":"params","nameLocation":"13899:6:88","nodeType":"VariableDeclaration","scope":53575,"src":"13855:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53511,"nodeType":"UserDefinedTypeName","pathNode":{"id":53510,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["13855:18:88","13874:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"13855:36:88"},"referencedDeclaration":36253,"src":"13855:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53514,"mutability":"mutable","name":"getterFaucet","nameLocation":"13923:12:88","nodeType":"VariableDeclaration","scope":53575,"src":"13915:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13915:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53516,"mutability":"mutable","name":"managerFaucet","nameLocation":"13953:13:88","nodeType":"VariableDeclaration","scope":53575,"src":"13945:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53515,"name":"address","nodeType":"ElementaryTypeName","src":"13945:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13845:127:88"},"returnParameters":{"id":53521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53575,"src":"13989:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53519,"nodeType":"UserDefinedTypeName","pathNode":{"id":53518,"name":"SubnetActorDiamond","nameLocations":["13989:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"13989:18:88"},"referencedDeclaration":36615,"src":"13989:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"13988:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53710,"nodeType":"FunctionDefinition","src":"14661:1518:88","nodes":[],"body":{"id":53709,"nodeType":"Block","src":"14776:1403:88","nodes":[],"statements":[{"assignments":[53586],"declarations":[{"constant":false,"id":53586,"mutability":"mutable","name":"manager","nameLocation":"14810:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"14786:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53585,"nodeType":"UserDefinedTypeName","pathNode":{"id":53584,"name":"SubnetActorManagerFacet","nameLocations":["14786:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14786:23:88"},"referencedDeclaration":52151,"src":"14786:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53591,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14820:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53588,"nodeType":"UserDefinedTypeName","pathNode":{"id":53587,"name":"SubnetActorManagerFacet","nameLocations":["14824:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14824:23:88"},"referencedDeclaration":52151,"src":"14824:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14820:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"14786:63:88"},{"assignments":[53594],"declarations":[{"constant":false,"id":53594,"mutability":"mutable","name":"getter","nameLocation":"14882:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14859:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53593,"nodeType":"UserDefinedTypeName","pathNode":{"id":53592,"name":"SubnetActorGetterFacet","nameLocations":["14859:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14859:22:88"},"referencedDeclaration":50887,"src":"14859:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53599,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14891:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53596,"nodeType":"UserDefinedTypeName","pathNode":{"id":53595,"name":"SubnetActorGetterFacet","nameLocations":["14895:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14895:22:88"},"referencedDeclaration":50887,"src":"14895:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14891:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"14859:60:88"},{"assignments":[53602],"declarations":[{"constant":false,"id":53602,"mutability":"mutable","name":"louper","nameLocation":"14947:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14929:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53601,"nodeType":"UserDefinedTypeName","pathNode":{"id":53600,"name":"DiamondLoupeFacet","nameLocations":["14929:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14929:17:88"},"referencedDeclaration":37355,"src":"14929:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14956:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"DiamondLoupeFacet","nameLocations":["14960:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14960:17:88"},"referencedDeclaration":37355,"src":"14960:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"14929:50:88"},{"assignments":[53610],"declarations":[{"constant":false,"id":53610,"mutability":"mutable","name":"cutter","nameLocation":"15005:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14989:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"DiamondCutFacet","nameLocations":["14989:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14989:15:88"},"referencedDeclaration":36918,"src":"14989:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15014:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53612,"nodeType":"UserDefinedTypeName","pathNode":{"id":53611,"name":"DiamondCutFacet","nameLocations":["15018:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"15018:15:88"},"referencedDeclaration":36918,"src":"15018:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"14989:46:88"},{"assignments":[53621],"declarations":[{"constant":false,"id":53621,"mutability":"mutable","name":"diamondCut","nameLocation":"15073:10:88","nodeType":"VariableDeclaration","scope":53709,"src":"15046:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53619,"nodeType":"UserDefinedTypeName","pathNode":{"id":53618,"name":"IDiamond.FacetCut","nameLocations":["15046:8:88","15055:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15046:17:88"},"referencedDeclaration":40159,"src":"15046:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53620,"nodeType":"ArrayTypeName","src":"15046:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53628,"initialValue":{"arguments":[{"hexValue":"34","id":53626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15110:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15086:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53623,"nodeType":"UserDefinedTypeName","pathNode":{"id":53622,"name":"IDiamond.FacetCut","nameLocations":["15090:8:88","15099:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15090:17:88"},"referencedDeclaration":40159,"src":"15090:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53624,"nodeType":"ArrayTypeName","src":"15090:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15086:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15046:66:88"},{"expression":{"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53629,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15123:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53631,"indexExpression":{"hexValue":"30","id":53630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15134:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15123:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53636,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53586,"src":"15211:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53634,"name":"address","nodeType":"ElementaryTypeName","src":"15203:7:88","typeDescriptions":{}}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15203:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53638,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15245:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15254:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15245:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15269:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15245:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53641,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"15309:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53632,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15153:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15162:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15153:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15189:12:88","15237:6:88","15290:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15153:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15139:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15123:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53645,"nodeType":"ExpressionStatement","src":"15123:229:88"},{"expression":{"id":53661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53646,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15363:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53648,"indexExpression":{"hexValue":"31","id":53647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15374:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15363:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53653,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15451:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15443:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53651,"name":"address","nodeType":"ElementaryTypeName","src":"15443:7:88","typeDescriptions":{}}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15443:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53655,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15484:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15493:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15484:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15508:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15484:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53658,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"15548:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53649,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15393:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15402:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15393:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15429:12:88","15476:6:88","15529:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15393:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15379:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15363:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53662,"nodeType":"ExpressionStatement","src":"15363:227:88"},{"expression":{"id":53678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53663,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15601:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53665,"indexExpression":{"hexValue":"32","id":53664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15612:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15601:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53670,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53610,"src":"15689:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15681:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53668,"name":"address","nodeType":"ElementaryTypeName","src":"15681:7:88","typeDescriptions":{}}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15681:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53672,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15722:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15722:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15746:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15722:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53675,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"15786:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53666,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15631:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15640:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15631:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15667:12:88","15714:6:88","15767:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15631:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15617:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15601:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53679,"nodeType":"ExpressionStatement","src":"15601:227:88"},{"expression":{"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53680,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15839:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53682,"indexExpression":{"hexValue":"33","id":53681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15850:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15839:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53687,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53602,"src":"15927:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15919:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53685,"name":"address","nodeType":"ElementaryTypeName","src":"15919:7:88","typeDescriptions":{}}},"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15919:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53689,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15960:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15960:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15984:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15960:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53692,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"16024:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53683,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15869:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15878:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15869:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15905:12:88","15952:6:88","16005:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15869:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15855:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15839:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53696,"nodeType":"ExpressionStatement","src":"15839:226:88"},{"assignments":[53699],"declarations":[{"constant":false,"id":53699,"mutability":"mutable","name":"diamond","nameLocation":"16095:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"16076:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53698,"nodeType":"UserDefinedTypeName","pathNode":{"id":53697,"name":"SubnetActorDiamond","nameLocations":["16076:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16076:18:88"},"referencedDeclaration":36615,"src":"16076:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53706,"initialValue":{"arguments":[{"id":53703,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"16128:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53704,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53578,"src":"16140:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16105:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53701,"nodeType":"UserDefinedTypeName","pathNode":{"id":53700,"name":"SubnetActorDiamond","nameLocations":["16109:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16109:18:88"},"referencedDeclaration":36615,"src":"16109:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16105:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"16076:71:88"},{"expression":{"id":53707,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53699,"src":"16165:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53583,"id":53708,"nodeType":"Return","src":"16158:14:88"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14670:17:88","parameters":{"id":53579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53578,"mutability":"mutable","name":"params","nameLocation":"14732:6:88","nodeType":"VariableDeclaration","scope":53710,"src":"14688:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14688:18:88","14707:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14688:36:88"},"referencedDeclaration":36253,"src":"14688:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"14687:52:88"},"returnParameters":{"id":53583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53710,"src":"14756:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53581,"nodeType":"UserDefinedTypeName","pathNode":{"id":53580,"name":"SubnetActorDiamond","nameLocations":["14756:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14756:18:88"},"referencedDeclaration":36615,"src":"14756:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14755:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53739,"nodeType":"FunctionDefinition","src":"16185:522:88","nodes":[],"body":{"id":53738,"nodeType":"Block","src":"16429:278:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":53727,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"16470:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53728,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53715,"src":"16499:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53729,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53717,"src":"16523:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53730,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53719,"src":"16561:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53731,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"16589:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53732,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53723,"src":"16615:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53733,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"16648:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16663:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"16648:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16687:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53726,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53943,"src":"16439:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50165_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:261:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53737,"nodeType":"ExpressionStatement","src":"16439:261:88"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16194:17:88","parameters":{"id":53724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53712,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16229:15:88","nodeType":"VariableDeclaration","scope":53739,"src":"16221:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53711,"name":"address","nodeType":"ElementaryTypeName","src":"16221:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53715,"mutability":"mutable","name":"_consensus","nameLocation":"16268:10:88","nodeType":"VariableDeclaration","scope":53739,"src":"16254:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"ConsensusType","nameLocations":["16254:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16254:13:88"},"referencedDeclaration":37359,"src":"16254:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53717,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16296:24:88","nodeType":"VariableDeclaration","scope":53739,"src":"16288:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53716,"name":"uint256","nodeType":"ElementaryTypeName","src":"16288:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53719,"mutability":"mutable","name":"_minValidators","nameLocation":"16337:14:88","nodeType":"VariableDeclaration","scope":53739,"src":"16330:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53718,"name":"uint64","nodeType":"ElementaryTypeName","src":"16330:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53721,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16368:12:88","nodeType":"VariableDeclaration","scope":53739,"src":"16361:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53720,"name":"uint64","nodeType":"ElementaryTypeName","src":"16361:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53723,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16396:19:88","nodeType":"VariableDeclaration","scope":53739,"src":"16390:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53722,"name":"uint8","nodeType":"ElementaryTypeName","src":"16390:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16211:210:88"},"returnParameters":{"id":53725,"nodeType":"ParameterList","parameters":[],"src":"16429:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53943,"nodeType":"FunctionDefinition","src":"16713:2630:88","nodes":[],"body":{"id":53942,"nodeType":"Block","src":"17036:2307:88","nodes":[],"statements":[{"assignments":[53762],"declarations":[{"constant":false,"id":53762,"mutability":"mutable","name":"_parentId","nameLocation":"17062:9:88","nodeType":"VariableDeclaration","scope":53942,"src":"17046:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53761,"nodeType":"UserDefinedTypeName","pathNode":{"id":53760,"name":"SubnetID","nameLocations":["17046:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"17046:8:88"},"referencedDeclaration":50077,"src":"17046:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53771,"initialValue":{"arguments":[{"id":53764,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17083:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17114:1:88","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":53767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17100:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53766,"nodeType":"ArrayTypeName","src":"17104:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53763,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"17074:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"17046:71:88"},{"expression":{"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53772,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17128:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17140:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"SubnetActorManagerFacet","nameLocations":["17144:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"17144:23:88"},"referencedDeclaration":52151,"src":"17144:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17140:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"17128:41:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53778,"nodeType":"ExpressionStatement","src":"17128:41:88"},{"expression":{"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53779,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17179:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17190:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53781,"nodeType":"UserDefinedTypeName","pathNode":{"id":53780,"name":"SubnetActorGetterFacet","nameLocations":["17194:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"17194:22:88"},"referencedDeclaration":50887,"src":"17194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17190:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"17179:39:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53785,"nodeType":"ExpressionStatement","src":"17179:39:88"},{"expression":{"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53786,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17228:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17239:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53788,"nodeType":"UserDefinedTypeName","pathNode":{"id":53787,"name":"DiamondCutFacet","nameLocations":["17243:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"17243:15:88"},"referencedDeclaration":36918,"src":"17243:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17239:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"17228:32:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53792,"nodeType":"ExpressionStatement","src":"17228:32:88"},{"expression":{"id":53798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53793,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"17270:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17281:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53795,"nodeType":"UserDefinedTypeName","pathNode":{"id":53794,"name":"DiamondLoupeFacet","nameLocations":["17285:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"17285:17:88"},"referencedDeclaration":37355,"src":"17285:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17281:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"17270:34:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53799,"nodeType":"ExpressionStatement","src":"17270:34:88"},{"assignments":[53805],"declarations":[{"constant":false,"id":53805,"mutability":"mutable","name":"diamondCut","nameLocation":"17342:10:88","nodeType":"VariableDeclaration","scope":53942,"src":"17315:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53803,"nodeType":"UserDefinedTypeName","pathNode":{"id":53802,"name":"IDiamond.FacetCut","nameLocations":["17315:8:88","17324:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17315:17:88"},"referencedDeclaration":40159,"src":"17315:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53804,"nodeType":"ArrayTypeName","src":"17315:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53812,"initialValue":{"arguments":[{"hexValue":"34","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17379:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17355:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53807,"nodeType":"UserDefinedTypeName","pathNode":{"id":53806,"name":"IDiamond.FacetCut","nameLocations":["17359:8:88","17368:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17359:17:88"},"referencedDeclaration":40159,"src":"17359:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53808,"nodeType":"ArrayTypeName","src":"17359:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17355:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17315:66:88"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17392:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"30","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17403:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17392:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17480:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17472:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17472:7:88","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17472:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17516:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17516:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17540:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17516:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"17580:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17422:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17431:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17422:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17458:12:88","17508:6:88","17561:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17422:191:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17408:215:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17392:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17392:231:88"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17634:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"31","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17645:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17634:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17722:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17714:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17714:7:88","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17757:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17766:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17757:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17781:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17757:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"17821:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17664:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17673:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17664:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17700:12:88","17749:6:88","17802:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17664:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17650:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17634:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17634:229:88"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17874:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"32","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17885:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17874:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17962:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17954:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"17954:7:88","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17954:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17997:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18006:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17997:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18021:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17997:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"18061:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17904:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17904:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17940:12:88","17989:6:88","18042:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17904:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17890:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17874:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17874:229:88"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18114:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"33","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18125:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18114:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"18202:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18194:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18194:7:88","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18194:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18237:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18246:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18237:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18261:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18237:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"18301:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18144:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18153:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18144:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18180:12:88","18229:6:88","18282:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18144:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18130:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18114:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18114:229:88"},{"expression":{"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53881,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"18354:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53885,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18402:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":53888,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53762,"src":"18491:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53889,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"18534:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53890,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18578:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53891,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"18631:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53892,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53748,"src":"18688:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53893,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53750,"src":"18741:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53894,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18791:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53895,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53757,"src":"18851:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":53896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18903:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":53897,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53755,"src":"18939:15:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53898,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"18988:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"19041:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19060:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"19041:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19041:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53886,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"18426:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18445:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"18426:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18481:8:88","18518:14:88","18567:9:88","18606:23:88","18673:13:88","18720:19:88","18771:18:88","18828:21:88","18891:10:88","18923:14:88","18972:14:88","19027:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"18426:657:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18366:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53883,"nodeType":"UserDefinedTypeName","pathNode":{"id":53882,"name":"SubnetActorDiamond","nameLocations":["18370:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18370:18:88"},"referencedDeclaration":36615,"src":"18370:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18366:727:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"18354:739:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53905,"nodeType":"ExpressionStatement","src":"18354:739:88"},{"expression":{"id":53913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53906,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19104:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53910,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19148:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19140:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53908,"name":"address","nodeType":"ElementaryTypeName","src":"19140:7:88","typeDescriptions":{}}},"id":53911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19140:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53907,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"19116:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19116:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"19104:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53914,"nodeType":"ExpressionStatement","src":"19104:55:88"},{"expression":{"id":53922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53915,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"19169:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53919,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19211:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53917,"name":"address","nodeType":"ElementaryTypeName","src":"19203:7:88","typeDescriptions":{}}},"id":53920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19203:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53916,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"19180:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19180:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"19169:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53923,"nodeType":"ExpressionStatement","src":"19169:53:88"},{"expression":{"id":53931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53924,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"19232:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53928,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19267:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19259:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53926,"name":"address","nodeType":"ElementaryTypeName","src":"19259:7:88","typeDescriptions":{}}},"id":53929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53925,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"19243:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19232:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53932,"nodeType":"ExpressionStatement","src":"19232:46:88"},{"expression":{"id":53940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53933,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"19288:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53937,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19325:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19317:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53935,"name":"address","nodeType":"ElementaryTypeName","src":"19317:7:88","typeDescriptions":{}}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19317:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53934,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"19299:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19299:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"19288:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53941,"nodeType":"ExpressionStatement","src":"19288:48:88"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16722:17:88","parameters":{"id":53758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53741,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16757:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16749:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53740,"name":"address","nodeType":"ElementaryTypeName","src":"16749:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53744,"mutability":"mutable","name":"_consensus","nameLocation":"16796:10:88","nodeType":"VariableDeclaration","scope":53943,"src":"16782:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"ConsensusType","nameLocations":["16782:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16782:13:88"},"referencedDeclaration":37359,"src":"16782:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53746,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16824:24:88","nodeType":"VariableDeclaration","scope":53943,"src":"16816:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"16816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53748,"mutability":"mutable","name":"_minValidators","nameLocation":"16865:14:88","nodeType":"VariableDeclaration","scope":53943,"src":"16858:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53747,"name":"uint64","nodeType":"ElementaryTypeName","src":"16858:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53750,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16896:12:88","nodeType":"VariableDeclaration","scope":53943,"src":"16889:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53749,"name":"uint64","nodeType":"ElementaryTypeName","src":"16889:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53752,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16924:19:88","nodeType":"VariableDeclaration","scope":53943,"src":"16918:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53751,"name":"uint8","nodeType":"ElementaryTypeName","src":"16918:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53755,"mutability":"mutable","name":"_permissionMode","nameLocation":"16968:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16953:30:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"PermissionMode","nameLocations":["16953:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"16953:14:88"},"referencedDeclaration":50165,"src":"16953:14:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53757,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"17000:22:88","nodeType":"VariableDeclaration","scope":53943,"src":"16993:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53756,"name":"uint16","nodeType":"ElementaryTypeName","src":"16993:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16739:289:88"},"returnParameters":{"id":53759,"nodeType":"ParameterList","parameters":[],"src":"17036:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54036,"nodeType":"FunctionDefinition","src":"19349:1021:88","nodes":[],"body":{"id":54035,"nodeType":"Block","src":"19441:929:88","nodes":[],"statements":[{"assignments":[53953],"declarations":[{"constant":false,"id":53953,"mutability":"mutable","name":"mockedManager","nameLocation":"19479:13:88","nodeType":"VariableDeclaration","scope":54035,"src":"19451:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":53952,"nodeType":"UserDefinedTypeName","pathNode":{"id":53951,"name":"SubnetActorManagerFacetMock","nameLocations":["19451:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19451:27:88"},"referencedDeclaration":57957,"src":"19451:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":53958,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19495:31:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"SubnetActorManagerFacetMock","nameLocations":["19499:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19499:27:88"},"referencedDeclaration":57957,"src":"19499:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}},"id":53957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19495:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"19451:77:88"},{"assignments":[53961],"declarations":[{"constant":false,"id":53961,"mutability":"mutable","name":"getter","nameLocation":"19561:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"19538:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53960,"nodeType":"UserDefinedTypeName","pathNode":{"id":53959,"name":"SubnetActorGetterFacet","nameLocations":["19538:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19538:22:88"},"referencedDeclaration":50887,"src":"19538:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19570:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetActorGetterFacet","nameLocations":["19574:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19574:22:88"},"referencedDeclaration":50887,"src":"19574:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19570:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"19538:60:88"},{"assignments":[53972],"declarations":[{"constant":false,"id":53972,"mutability":"mutable","name":"diamondCut","nameLocation":"19636:10:88","nodeType":"VariableDeclaration","scope":54035,"src":"19609:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53970,"nodeType":"UserDefinedTypeName","pathNode":{"id":53969,"name":"IDiamond.FacetCut","nameLocations":["19609:8:88","19618:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19609:17:88"},"referencedDeclaration":40159,"src":"19609:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53971,"nodeType":"ArrayTypeName","src":"19609:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53979,"initialValue":{"arguments":[{"hexValue":"32","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19673:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19649:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53974,"nodeType":"UserDefinedTypeName","pathNode":{"id":53973,"name":"IDiamond.FacetCut","nameLocations":["19653:8:88","19662:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19653:17:88"},"referencedDeclaration":40159,"src":"19653:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53975,"nodeType":"ArrayTypeName","src":"19653:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19649:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19609:66:88"},{"expression":{"id":53995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53980,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19686:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53982,"indexExpression":{"hexValue":"30","id":53981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19686:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53987,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"19774:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}],"id":53986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19766:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53985,"name":"address","nodeType":"ElementaryTypeName","src":"19766:7:88","typeDescriptions":{}}},"id":53988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19766:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53989,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19814:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19823:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"19814:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19838:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"19814:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53992,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"19878:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53983,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19716:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19716:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19752:12:88","19806:6:88","19859:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19716:201:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19702:225:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19686:241:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53996,"nodeType":"ExpressionStatement","src":"19686:241:88"},{"expression":{"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53997,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19938:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53999,"indexExpression":{"hexValue":"31","id":53998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19938:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54004,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53961,"src":"20026:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":54003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20018:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54002,"name":"address","nodeType":"ElementaryTypeName","src":"20018:7:88","typeDescriptions":{}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20018:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54006,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20059:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20068:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20059:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20083:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20059:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54009,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"20123:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54000,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19968:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19977:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19968:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20004:12:88","20051:6:88","20104:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19968:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19954:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19938:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54013,"nodeType":"ExpressionStatement","src":"19938:227:88"},{"assignments":[54018],"declarations":[{"constant":false,"id":54018,"mutability":"mutable","name":"params","nameLocation":"20220:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"20176:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["20176:18:88","20195:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"20176:36:88"},"referencedDeclaration":36253,"src":"20176:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54022,"initialValue":{"arguments":[{"id":54020,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"20265:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54019,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"20229:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20229:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"20176:92:88"},{"assignments":[54025],"declarations":[{"constant":false,"id":54025,"mutability":"mutable","name":"d","nameLocation":"20298:1:88","nodeType":"VariableDeclaration","scope":54035,"src":"20279:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54024,"nodeType":"UserDefinedTypeName","pathNode":{"id":54023,"name":"SubnetActorDiamond","nameLocations":["20279:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20279:18:88"},"referencedDeclaration":36615,"src":"20279:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54032,"initialValue":{"arguments":[{"id":54029,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"20325:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54030,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54018,"src":"20337:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20302:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54027,"nodeType":"UserDefinedTypeName","pathNode":{"id":54026,"name":"SubnetActorDiamond","nameLocations":["20306:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20306:18:88"},"referencedDeclaration":36615,"src":"20306:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"20279:65:88"},{"expression":{"id":54033,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54025,"src":"20362:1:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53950,"id":54034,"nodeType":"Return","src":"20355:8:88"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"19358:34:88","parameters":{"id":53946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53945,"mutability":"mutable","name":"gw","nameLocation":"19401:2:88","nodeType":"VariableDeclaration","scope":54036,"src":"19393:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53944,"name":"address","nodeType":"ElementaryTypeName","src":"19393:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19392:12:88"},"returnParameters":{"id":53950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54036,"src":"19421:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetActorDiamond","nameLocations":["19421:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"19421:18:88"},"referencedDeclaration":36615,"src":"19421:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"19420:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54178,"nodeType":"FunctionDefinition","src":"20422:1703:88","nodes":[],"body":{"id":54177,"nodeType":"Block","src":"20560:1565:88","nodes":[],"statements":[{"assignments":[54050],"declarations":[{"constant":false,"id":54050,"mutability":"mutable","name":"diamondCut","nameLocation":"20597:10:88","nodeType":"VariableDeclaration","scope":54177,"src":"20570:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54048,"nodeType":"UserDefinedTypeName","pathNode":{"id":54047,"name":"IDiamond.FacetCut","nameLocations":["20570:8:88","20579:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20570:17:88"},"referencedDeclaration":40159,"src":"20570:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54049,"nodeType":"ArrayTypeName","src":"20570:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54057,"initialValue":{"arguments":[{"hexValue":"34","id":54055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20610:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54052,"nodeType":"UserDefinedTypeName","pathNode":{"id":54051,"name":"IDiamond.FacetCut","nameLocations":["20614:8:88","20623:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20614:17:88"},"referencedDeclaration":40159,"src":"20614:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54053,"nodeType":"ArrayTypeName","src":"20614:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20610:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20570:66:88"},{"assignments":[54060],"declarations":[{"constant":false,"id":54060,"mutability":"mutable","name":"regCutFacet","nameLocation":"20663:11:88","nodeType":"VariableDeclaration","scope":54177,"src":"20647:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54059,"nodeType":"UserDefinedTypeName","pathNode":{"id":54058,"name":"DiamondCutFacet","nameLocations":["20647:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20647:15:88"},"referencedDeclaration":36918,"src":"20647:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20677:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54062,"nodeType":"UserDefinedTypeName","pathNode":{"id":54061,"name":"DiamondCutFacet","nameLocations":["20681:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20681:15:88"},"referencedDeclaration":36918,"src":"20681:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20677:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"20647:51:88"},{"assignments":[54068],"declarations":[{"constant":false,"id":54068,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"20726:13:88","nodeType":"VariableDeclaration","scope":54177,"src":"20708:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54067,"nodeType":"UserDefinedTypeName","pathNode":{"id":54066,"name":"DiamondLoupeFacet","nameLocations":["20708:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20708:17:88"},"referencedDeclaration":37355,"src":"20708:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54073,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20742:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54070,"nodeType":"UserDefinedTypeName","pathNode":{"id":54069,"name":"DiamondLoupeFacet","nameLocations":["20746:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20746:17:88"},"referencedDeclaration":37355,"src":"20746:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20742:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"20708:57:88"},{"assignments":[54076],"declarations":[{"constant":false,"id":54076,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"20795:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20775:34:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54075,"nodeType":"UserDefinedTypeName","pathNode":{"id":54074,"name":"RegisterSubnetFacet","nameLocations":["20775:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20775:19:88"},"referencedDeclaration":52279,"src":"20775:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20812:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54078,"nodeType":"UserDefinedTypeName","pathNode":{"id":54077,"name":"RegisterSubnetFacet","nameLocations":["20816:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20816:19:88"},"referencedDeclaration":52279,"src":"20816:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"20775:62:88"},{"assignments":[54084],"declarations":[{"constant":false,"id":54084,"mutability":"mutable","name":"regGetterFacet","nameLocation":"20865:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20847:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54083,"nodeType":"UserDefinedTypeName","pathNode":{"id":54082,"name":"SubnetGetterFacet","nameLocations":["20847:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20847:17:88"},"referencedDeclaration":52517,"src":"20847:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20882:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54086,"nodeType":"UserDefinedTypeName","pathNode":{"id":54085,"name":"SubnetGetterFacet","nameLocations":["20886:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20886:17:88"},"referencedDeclaration":52517,"src":"20886:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}},"id":54088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20882:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"20847:58:88"},{"expression":{"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54090,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"20916:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54092,"indexExpression":{"hexValue":"30","id":54091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20927:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20916:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54097,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54068,"src":"21004:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20996:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54095,"name":"address","nodeType":"ElementaryTypeName","src":"20996:7:88","typeDescriptions":{}}},"id":54098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20996:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54099,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21044:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21053:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21044:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21068:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21044:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54102,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"21108:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54093,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20946:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20955:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20946:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20982:12:88","21036:6:88","21089:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20946:200:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20932:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20916:240:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54106,"nodeType":"ExpressionStatement","src":"20916:240:88"},{"expression":{"id":54122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54107,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21166:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54109,"indexExpression":{"hexValue":"31","id":54108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21177:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21166:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54114,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54060,"src":"21254:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21246:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54112,"name":"address","nodeType":"ElementaryTypeName","src":"21246:7:88","typeDescriptions":{}}},"id":54115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21246:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54116,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21292:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21301:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21292:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21316:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21292:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54119,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"21356:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54110,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21196:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21205:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21196:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21232:12:88","21284:6:88","21337:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21196:198:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21182:222:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21166:238:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54123,"nodeType":"ExpressionStatement","src":"21166:238:88"},{"expression":{"id":54139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54124,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21414:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54126,"indexExpression":{"hexValue":"32","id":54125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21425:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21414:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54131,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54076,"src":"21502:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}],"id":54130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21494:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54129,"name":"address","nodeType":"ElementaryTypeName","src":"21494:7:88","typeDescriptions":{}}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54133,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21543:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21552:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21543:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21567:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21543:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54136,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"21607:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54127,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21453:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21444:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21480:12:88","21535:6:88","21588:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21444:206:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21430:230:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21414:246:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54140,"nodeType":"ExpressionStatement","src":"21414:246:88"},{"expression":{"id":54156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54141,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21670:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54143,"indexExpression":{"hexValue":"33","id":54142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21681:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21670:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54148,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54084,"src":"21758:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}],"id":54147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21750:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54146,"name":"address","nodeType":"ElementaryTypeName","src":"21750:7:88","typeDescriptions":{}}},"id":54149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21750:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54150,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21799:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21808:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21799:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21823:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21799:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54153,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"21863:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54144,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21700:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21709:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21700:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21736:12:88","21791:6:88","21844:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21700:212:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21686:236:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21670:252:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54157,"nodeType":"ExpressionStatement","src":"21670:252:88"},{"assignments":[54160],"declarations":[{"constant":false,"id":54160,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"21955:17:88","nodeType":"VariableDeclaration","scope":54177,"src":"21933:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54159,"nodeType":"UserDefinedTypeName","pathNode":{"id":54158,"name":"SubnetRegistryDiamond","nameLocations":["21933:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21933:21:88"},"referencedDeclaration":36853,"src":"21933:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54167,"initialValue":{"arguments":[{"id":54164,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"22001:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54165,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54039,"src":"22013:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21975:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54162,"nodeType":"UserDefinedTypeName","pathNode":{"id":54161,"name":"SubnetRegistryDiamond","nameLocations":["21979:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21979:21:88"},"referencedDeclaration":36853,"src":"21979:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21975:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"21933:87:88"},{"eventCall":{"arguments":[{"arguments":[{"id":54171,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22065:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22057:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54169,"name":"address","nodeType":"ElementaryTypeName","src":"22057:7:88","typeDescriptions":{}}},"id":54172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22057:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54168,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53071,"src":"22035:21:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54174,"nodeType":"EmitStatement","src":"22030:54:88"},{"expression":{"id":54175,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22101:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54044,"id":54176,"nodeType":"Return","src":"22094:24:88"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"20431:20:88","parameters":{"id":54040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54039,"mutability":"mutable","name":"params","nameLocation":"20508:6:88","nodeType":"VariableDeclaration","scope":54178,"src":"20461:53:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54038,"nodeType":"UserDefinedTypeName","pathNode":{"id":54037,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["20461:21:88","20483:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"20461:39:88"},"referencedDeclaration":36652,"src":"20461:39:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"20451:69:88"},"returnParameters":{"id":54044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54178,"src":"20537:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54042,"nodeType":"UserDefinedTypeName","pathNode":{"id":54041,"name":"SubnetRegistryDiamond","nameLocations":["20537:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"20537:21:88"},"referencedDeclaration":36853,"src":"20537:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"20536:23:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54207,"nodeType":"FunctionDefinition","src":"22131:190:88","nodes":[],"body":{"id":54206,"nodeType":"Block","src":"22212:109:88","nodes":[],"statements":[{"body":{"id":54202,"nodeType":"Block","src":"22253:42:88","statements":[{"expression":{"id":54200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54196,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22267:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54197,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54181,"src":"22274:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54199,"indexExpression":{"id":54198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22282:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22274:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22267:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54201,"nodeType":"ExpressionStatement","src":"22267:17:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22241:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"22241:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54203,"initializationExpression":{"assignments":[54187],"declarations":[{"constant":false,"id":54187,"mutability":"mutable","name":"i","nameLocation":"22234:1:88","nodeType":"VariableDeclaration","scope":54203,"src":"22227:8:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54186,"name":"uint64","nodeType":"ElementaryTypeName","src":"22227:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54189,"initialValue":{"hexValue":"30","id":54188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22238:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22227:12:88"},"loopExpression":{"expression":{"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22248:3:88","subExpression":{"id":54193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22248:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54195,"nodeType":"ExpressionStatement","src":"22248:3:88"},"nodeType":"ForStatement","src":"22222:73:88"},{"expression":{"id":54204,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22311:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54185,"id":54205,"nodeType":"Return","src":"22304:10:88"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"22140:11:88","parameters":{"id":54182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54181,"mutability":"mutable","name":"weights","nameLocation":"22169:7:88","nodeType":"VariableDeclaration","scope":54207,"src":"22152:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54179,"name":"uint256","nodeType":"ElementaryTypeName","src":"22152:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54180,"nodeType":"ArrayTypeName","src":"22152:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"22151:26:88"},"returnParameters":{"id":54185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54184,"mutability":"mutable","name":"sum","nameLocation":"22207:3:88","nodeType":"VariableDeclaration","scope":54207,"src":"22199:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54183,"name":"uint256","nodeType":"ElementaryTypeName","src":"22199:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22198:13:88"},"scope":55375,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54382,"nodeType":"FunctionDefinition","src":"22327:933:88","nodes":[],"body":{"id":54381,"nodeType":"Block","src":"22430:830:88","nodes":[],"statements":[{"expression":{"id":54224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54217,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22440:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22470:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22453:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54219,"nodeType":"UserDefinedTypeName","pathNode":{"id":54218,"name":"FvmAddress","nameLocations":["22457:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22457:10:88"},"referencedDeclaration":49998,"src":"22457:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54220,"nodeType":"ArrayTypeName","src":"22457:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"22440:32:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54225,"nodeType":"ExpressionStatement","src":"22440:32:88"},{"expression":{"id":54236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54226,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22482:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54228,"indexExpression":{"hexValue":"30","id":54227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22493:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22482:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22528:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22520:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22523:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22520:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22520:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54229,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22498:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22515:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22498:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22498:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22482:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54237,"nodeType":"ExpressionStatement","src":"22482:51:88"},{"expression":{"id":54248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22543:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54240,"indexExpression":{"hexValue":"31","id":54239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22554:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22543:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54243,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22581:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22584:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22581:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22581:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54241,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22559:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22576:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22559:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22559:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22543:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54249,"nodeType":"ExpressionStatement","src":"22543:51:88"},{"expression":{"id":54260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54250,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22604:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54252,"indexExpression":{"hexValue":"32","id":54251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22615:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22604:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22650:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22642:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22645:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22642:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54253,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22620:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22637:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22620:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22620:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22604:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54261,"nodeType":"ExpressionStatement","src":"22604:51:88"},{"expression":{"id":54268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54262,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22666:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22692:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22678:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54263,"name":"address","nodeType":"ElementaryTypeName","src":"22682:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54264,"nodeType":"ArrayTypeName","src":"22682:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22678:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"22666:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54269,"nodeType":"ExpressionStatement","src":"22666:28:88"},{"expression":{"id":54277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54270,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22704:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54272,"indexExpression":{"hexValue":"30","id":54271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22714:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22704:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22727:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22719:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22722:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22719:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22719:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22704:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54278,"nodeType":"ExpressionStatement","src":"22704:27:88"},{"expression":{"id":54286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54279,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22741:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54281,"indexExpression":{"hexValue":"31","id":54280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22741:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22764:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54282,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22756:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22759:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22756:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22756:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22741:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54287,"nodeType":"ExpressionStatement","src":"22741:27:88"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54288,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22778:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54290,"indexExpression":{"hexValue":"32","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22788:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22778:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22801:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54291,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22793:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22796:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22793:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22793:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22778:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54296,"nodeType":"ExpressionStatement","src":"22778:27:88"},{"assignments":[54301],"declarations":[{"constant":false,"id":54301,"mutability":"mutable","name":"weights","nameLocation":"22833:7:88","nodeType":"VariableDeclaration","scope":54381,"src":"22816:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54299,"name":"uint256","nodeType":"ElementaryTypeName","src":"22816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54300,"nodeType":"ArrayTypeName","src":"22816:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54307,"initialValue":{"arguments":[{"hexValue":"33","id":54305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22857:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22843:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54302,"name":"uint256","nodeType":"ElementaryTypeName","src":"22847:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54303,"nodeType":"ArrayTypeName","src":"22847:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22816:43:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22886:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22878:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22881:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22878:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22878:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22892:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22870:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22873:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22870:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22870:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54317,"nodeType":"ExpressionStatement","src":"22870:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22920:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54321,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22912:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22915:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22912:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54318,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22904:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22907:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22904:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22904:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54327,"nodeType":"ExpressionStatement","src":"22904:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22954:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22946:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22949:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22946:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22946:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22960:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54328,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22938:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22941:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22938:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54337,"nodeType":"ExpressionStatement","src":"22938:24:88"},{"expression":{"id":54342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54338,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22973:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54340,"indexExpression":{"hexValue":"30","id":54339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22981:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22973:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22986:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22973:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54343,"nodeType":"ExpressionStatement","src":"22973:16:88"},{"expression":{"id":54348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54344,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22999:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54346,"indexExpression":{"hexValue":"31","id":54345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23007:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22999:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23012:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22999:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54349,"nodeType":"ExpressionStatement","src":"22999:16:88"},{"expression":{"id":54354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54350,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"23025:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54352,"indexExpression":{"hexValue":"32","id":54351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23033:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23025:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23038:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23025:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54355,"nodeType":"ExpressionStatement","src":"23025:16:88"},{"assignments":[54358],"declarations":[{"constant":false,"id":54358,"mutability":"mutable","name":"finality","nameLocation":"23074:8:88","nodeType":"VariableDeclaration","scope":54381,"src":"23052:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54357,"nodeType":"UserDefinedTypeName","pathNode":{"id":54356,"name":"ParentFinality","nameLocations":["23052:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"23052:14:88"},"referencedDeclaration":49918,"src":"23052:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54367,"initialValue":{"arguments":[{"expression":{"id":54360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23109:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:6:88","memberName":"number","nodeType":"MemberAccess","src":"23109:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23142:1:88","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":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23134:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23134:7:88","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23134:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54359,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"23085:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23101:6:88","23123:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"23085:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"23052:94:88"},{"expression":{"arguments":[{"expression":{"id":54371,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"23166:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23177:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"23166:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54368,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23157:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23160:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23157:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23157:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54374,"nodeType":"ExpressionStatement","src":"23157:33:88"},{"expression":{"arguments":[{"id":54378,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"23244:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54375,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"23200:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23223:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"23200:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54380,"nodeType":"ExpressionStatement","src":"23200:53:88"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"22336:15:88","parameters":{"id":54208,"nodeType":"ParameterList","parameters":[],"src":"22351:2:88"},"returnParameters":{"id":54216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54212,"mutability":"mutable","name":"validators","nameLocation":"22390:10:88","nodeType":"VariableDeclaration","scope":54382,"src":"22370:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54210,"nodeType":"UserDefinedTypeName","pathNode":{"id":54209,"name":"FvmAddress","nameLocations":["22370:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22370:10:88"},"referencedDeclaration":49998,"src":"22370:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54211,"nodeType":"ArrayTypeName","src":"22370:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54215,"mutability":"mutable","name":"addresses","nameLocation":"22419:9:88","nodeType":"VariableDeclaration","scope":54382,"src":"22402:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54213,"name":"address","nodeType":"ElementaryTypeName","src":"22402:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54214,"nodeType":"ArrayTypeName","src":"22402:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"22369:60:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54475,"nodeType":"FunctionDefinition","src":"23266:1297:88","nodes":[],"body":{"id":54474,"nodeType":"Block","src":"23350:1213:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54392,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"23375:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54393,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23402:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54391,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"23360:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23360:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54395,"nodeType":"ExpressionStatement","src":"23360:46:88"},{"assignments":[54398],"declarations":[{"constant":false,"id":54398,"mutability":"mutable","name":"crossMsg","nameLocation":"23433:8:88","nodeType":"VariableDeclaration","scope":54474,"src":"23417:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54397,"nodeType":"UserDefinedTypeName","pathNode":{"id":54396,"name":"CrossMsg","nameLocations":["23417:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"23417:8:88"},"referencedDeclaration":49974,"src":"23417:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54438,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54406,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23596:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54402,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23555:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23564:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23555:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23581:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23555:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54410,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23659:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54408,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23637:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23654:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23637:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23637:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54401,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23512:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23545:8:88","23625:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23512:173:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54418,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23791:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54414,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23750:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23759:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23750:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23750:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54422,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23851:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54420,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23829:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23846:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23829:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23829:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54413,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23707:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23740:8:88","23817:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23707:167:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54425,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"23899:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23899:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54429,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"23976:11:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24023:1:88","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":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24013:9:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54430,"name":"bytes","nodeType":"ElementaryTypeName","src":"24017:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24013:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54434,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"24048:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54400,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"23476:11:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23506:4:88","23703:2:88","23892:5:88","23942:5:88","23968:6:88","24005:6:88","24043:3:88"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"23476:608:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24107:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54399,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"23444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23467:7:88","24098:7:88"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"23444:679:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"23417:706:88"},{"assignments":[54443],"declarations":[{"constant":false,"id":54443,"mutability":"mutable","name":"msgs","nameLocation":"24151:4:88","nodeType":"VariableDeclaration","scope":54474,"src":"24133:22:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54441,"nodeType":"UserDefinedTypeName","pathNode":{"id":54440,"name":"CrossMsg","nameLocations":["24133:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24133:8:88"},"referencedDeclaration":49974,"src":"24133:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54442,"nodeType":"ArrayTypeName","src":"24133:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54450,"initialValue":{"arguments":[{"hexValue":"31","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24173:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24158:14:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54445,"nodeType":"UserDefinedTypeName","pathNode":{"id":54444,"name":"CrossMsg","nameLocations":["24162:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24162:8:88"},"referencedDeclaration":49974,"src":"24162:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54446,"nodeType":"ArrayTypeName","src":"24162:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24158:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24133:42:88"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24185:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54453,"indexExpression":{"hexValue":"30","id":54452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24190:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24185:7:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54454,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24195:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"24185:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54456,"nodeType":"ExpressionStatement","src":"24185:18:88"},{"expression":{"arguments":[{"expression":{"id":54460,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"24442:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24453:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"24442:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24433:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24436:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"24433:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24433:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54463,"nodeType":"ExpressionStatement","src":"24433:33:88"},{"expression":{"arguments":[{"id":54467,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24516:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54464,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"24476:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24497:18:88","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"24476:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24476:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54469,"nodeType":"ExpressionStatement","src":"24476:45:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54470,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24539:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24548:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"24539:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24539:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54390,"id":54473,"nodeType":"Return","src":"24532:24:88"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"23275:20:88","parameters":{"id":54387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54384,"mutability":"mutable","name":"caller","nameLocation":"23304:6:88","nodeType":"VariableDeclaration","scope":54475,"src":"23296:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54383,"name":"address","nodeType":"ElementaryTypeName","src":"23296:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54386,"mutability":"mutable","name":"src","nameLocation":"23320:3:88","nodeType":"VariableDeclaration","scope":54475,"src":"23312:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54385,"name":"address","nodeType":"ElementaryTypeName","src":"23312:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23295:29:88"},"returnParameters":{"id":54390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54475,"src":"23341:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23341:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23340:9:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54486,"nodeType":"FunctionDefinition","src":"24569:93:88","nodes":[],"body":{"id":54485,"nodeType":"Block","src":"24617:45:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54481,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54477,"src":"24640:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24651:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54480,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"24627:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24627:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54484,"nodeType":"ExpressionStatement","src":"24627:28:88"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24578:12:88","parameters":{"id":54478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54477,"mutability":"mutable","name":"validator","nameLocation":"24599:9:88","nodeType":"VariableDeclaration","scope":54486,"src":"24591:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54476,"name":"address","nodeType":"ElementaryTypeName","src":"24591:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24590:19:88"},"returnParameters":{"id":54479,"nodeType":"ParameterList","parameters":[],"src":"24617:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54569,"nodeType":"FunctionDefinition","src":"24668:610:88","nodes":[],"body":{"id":54568,"nodeType":"Block","src":"24732:546:88","nodes":[],"statements":[{"assignments":[54497],"declarations":[{"constant":false,"id":54497,"mutability":"mutable","name":"validators","nameLocation":"24762:10:88","nodeType":"VariableDeclaration","scope":54568,"src":"24742:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54495,"nodeType":"UserDefinedTypeName","pathNode":{"id":54494,"name":"FvmAddress","nameLocations":["24742:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24742:10:88"},"referencedDeclaration":49998,"src":"24742:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54496,"nodeType":"ArrayTypeName","src":"24742:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54504,"initialValue":{"arguments":[{"hexValue":"31","id":54502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24792:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24775:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54499,"nodeType":"UserDefinedTypeName","pathNode":{"id":54498,"name":"FvmAddress","nameLocations":["24779:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24779:10:88"},"referencedDeclaration":49998,"src":"24779:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54500,"nodeType":"ArrayTypeName","src":"24779:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24775:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24742:52:88"},{"expression":{"id":54512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54505,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54497,"src":"24804:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54507,"indexExpression":{"hexValue":"30","id":54506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24815:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24804:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24842:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54508,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"24820:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24837:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"24820:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24820:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"24804:48:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54513,"nodeType":"ExpressionStatement","src":"24804:48:88"},{"assignments":[54518],"declarations":[{"constant":false,"id":54518,"mutability":"mutable","name":"weights","nameLocation":"24879:7:88","nodeType":"VariableDeclaration","scope":54568,"src":"24862:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54516,"name":"uint256","nodeType":"ElementaryTypeName","src":"24862:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54517,"nodeType":"ArrayTypeName","src":"24862:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54524,"initialValue":{"arguments":[{"hexValue":"31","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24903:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24889:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54519,"name":"uint256","nodeType":"ElementaryTypeName","src":"24893:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54520,"nodeType":"ArrayTypeName","src":"24893:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24889:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24862:43:88"},{"expression":{"id":54529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54525,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54518,"src":"24915:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54527,"indexExpression":{"hexValue":"30","id":54526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24915:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54528,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54490,"src":"24928:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24915:19:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54530,"nodeType":"ExpressionStatement","src":"24915:19:88"},{"expression":{"arguments":[{"id":54534,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24953:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24964:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24945:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24948:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"24945:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24945:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54537,"nodeType":"ExpressionStatement","src":"24945:21:88"},{"assignments":[54540],"declarations":[{"constant":false,"id":54540,"mutability":"mutable","name":"finality","nameLocation":"24998:8:88","nodeType":"VariableDeclaration","scope":54568,"src":"24976:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54539,"nodeType":"UserDefinedTypeName","pathNode":{"id":54538,"name":"ParentFinality","nameLocations":["24976:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"24976:14:88"},"referencedDeclaration":49918,"src":"24976:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54549,"initialValue":{"arguments":[{"expression":{"id":54542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25033:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25039:6:88","memberName":"number","nodeType":"MemberAccess","src":"25033:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25066:1:88","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":54545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25058:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25058:7:88","typeDescriptions":{}}},"id":54547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25058:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54541,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"25009:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25025:6:88","25047:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"25009:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"24976:94:88"},{"expression":{"arguments":[{"expression":{"id":54553,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"25160:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25171:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"25160:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54550,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25146:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25149:10:88","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"25146:13:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54556,"nodeType":"ExpressionStatement","src":"25146:38:88"},{"expression":{"arguments":[{"id":54560,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"25238:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54557,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"25194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25217:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"25194:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54562,"nodeType":"ExpressionStatement","src":"25194:53:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25257:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:9:88","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"25257:12:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25257:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54567,"nodeType":"ExpressionStatement","src":"25257:14:88"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24677:12:88","parameters":{"id":54491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54488,"mutability":"mutable","name":"validator","nameLocation":"24698:9:88","nodeType":"VariableDeclaration","scope":54569,"src":"24690:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54487,"name":"address","nodeType":"ElementaryTypeName","src":"24690:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54490,"mutability":"mutable","name":"weight","nameLocation":"24717:6:88","nodeType":"VariableDeclaration","scope":54569,"src":"24709:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54489,"name":"uint256","nodeType":"ElementaryTypeName","src":"24709:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24689:35:88"},"returnParameters":{"id":54492,"nodeType":"ParameterList","parameters":[],"src":"24732:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54582,"nodeType":"FunctionDefinition","src":"25284:112:88","nodes":[],"body":{"id":54581,"nodeType":"Block","src":"25328:68:88","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25350:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54571,"src":"25382:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54574,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"25338:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25346:3:88","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"25338:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25338:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54580,"nodeType":"ExpressionStatement","src":"25338:51:88"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"25293:6:88","parameters":{"id":54572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54571,"mutability":"mutable","name":"amount","nameLocation":"25308:6:88","nodeType":"VariableDeclaration","scope":54582,"src":"25300:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54570,"name":"uint256","nodeType":"ElementaryTypeName","src":"25300:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25299:16:88"},"returnParameters":{"id":54573,"nodeType":"ParameterList","parameters":[],"src":"25328:0:88"},"scope":55375,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54597,"nodeType":"FunctionDefinition","src":"25402:131:88","nodes":[],"body":{"id":54596,"nodeType":"Block","src":"25466:67:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54590,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54584,"src":"25481:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54591,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54586,"src":"25496:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54592,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"25508:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25519:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"25508:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"id":54589,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54597,54722],"referencedDeclaration":54722,"src":"25476:4:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50229_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25476:50:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54595,"nodeType":"ExpressionStatement","src":"25476:50:88"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25411:4:88","parameters":{"id":54587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54584,"mutability":"mutable","name":"funderAddress","nameLocation":"25424:13:88","nodeType":"VariableDeclaration","scope":54597,"src":"25416:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54583,"name":"address","nodeType":"ElementaryTypeName","src":"25416:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54586,"mutability":"mutable","name":"fundAmount","nameLocation":"25447:10:88","nodeType":"VariableDeclaration","scope":54597,"src":"25439:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25439:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25415:43:88"},"returnParameters":{"id":54588,"nodeType":"ParameterList","parameters":[],"src":"25466:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54722,"nodeType":"FunctionDefinition","src":"25539:1180:88","nodes":[],"body":{"id":54721,"nodeType":"Block","src":"25620:1099:88","nodes":[],"statements":[{"assignments":[54609,null,54611,null,54613],"declarations":[{"constant":false,"id":54609,"mutability":"mutable","name":"subnetId","nameLocation":"25712:8:88","nodeType":"VariableDeclaration","scope":54721,"src":"25696:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54608,"nodeType":"UserDefinedTypeName","pathNode":{"id":54607,"name":"SubnetID","nameLocations":["25696:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"25696:8:88"},"referencedDeclaration":50077,"src":"25696:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54611,"mutability":"mutable","name":"nonceBefore","nameLocation":"25732:11:88","nodeType":"VariableDeclaration","scope":54721,"src":"25724:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54610,"name":"uint256","nodeType":"ElementaryTypeName","src":"25724:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54613,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"25755:16:88","nodeType":"VariableDeclaration","scope":54721,"src":"25747:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54612,"name":"uint256","nodeType":"ElementaryTypeName","src":"25747:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54620,"initialValue":{"arguments":[{"arguments":[{"id":54617,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"25793:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25785:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54615,"name":"address","nodeType":"ElementaryTypeName","src":"25785:7:88","typeDescriptions":{}}},"id":54618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25785:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54614,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"25775:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25695:109:88"},{"assignments":[54622],"declarations":[{"constant":false,"id":54622,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"25823:25:88","nodeType":"VariableDeclaration","scope":54721,"src":"25815:33:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54621,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54629,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54625,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"25887:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"25851:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25860:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"25851:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25851:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25899:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25851:49:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25815:85:88"},{"assignments":[54631],"declarations":[{"constant":false,"id":54631,"mutability":"mutable","name":"expectedNonce","nameLocation":"25918:13:88","nodeType":"VariableDeclaration","scope":54721,"src":"25910:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54630,"name":"uint256","nodeType":"ElementaryTypeName","src":"25910:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54635,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54632,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"25934:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25948:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25934:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25910:39:88"},{"assignments":[54637],"declarations":[{"constant":false,"id":54637,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"25967:18:88","nodeType":"VariableDeclaration","scope":54721,"src":"25959:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54636,"name":"uint256","nodeType":"ElementaryTypeName","src":"25959:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54641,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54638,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"25988:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54639,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26007:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25988:29:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25959:58:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54643,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26036:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26045:11:88","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"26036:20:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26061:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26036:26:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26064:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26028:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26028:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54650,"nodeType":"ExpressionStatement","src":"26028:55:88"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54651,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26098:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54652,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26106:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26117:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"26106:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26098:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54668,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26241:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54669,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26249:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26260:5:88","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"26249:16:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26241:24:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54684,"nodeType":"IfStatement","src":"26237:138:88","trueBody":{"id":54683,"nodeType":"Block","src":"26267:108:88","statements":[{"expression":{"arguments":[{"id":54675,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26305:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54678,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26337:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54676,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26315:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26332:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26315:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26315:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54680,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26353:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54672,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26281:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26291:13:88","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"26281:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26281:83:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54682,"nodeType":"ExpressionStatement","src":"26281:83:88"}]}},"id":54685,"nodeType":"IfStatement","src":"26094:281:88","trueBody":{"id":54667,"nodeType":"Block","src":"26125:106:88","statements":[{"expression":{"arguments":[{"id":54660,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26173:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54663,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26205:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54661,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26183:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26200:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26183:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26183:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54655,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26139:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26149:4:88","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"26139:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54658,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26161:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26139:33:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26139:81:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54666,"nodeType":"ExpressionStatement","src":"26139:81:88"}]}},{"assignments":[null,null,54687,null,54689],"declarations":[null,null,{"constant":false,"id":54687,"mutability":"mutable","name":"nonce","nameLocation":"26398:5:88","nodeType":"VariableDeclaration","scope":54721,"src":"26390:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54686,"name":"uint256","nodeType":"ElementaryTypeName","src":"26390:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54689,"mutability":"mutable","name":"circSupply","nameLocation":"26415:10:88","nodeType":"VariableDeclaration","scope":54721,"src":"26407:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54688,"name":"uint256","nodeType":"ElementaryTypeName","src":"26407:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54696,"initialValue":{"arguments":[{"arguments":[{"id":54693,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26447:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26439:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54691,"name":"address","nodeType":"ElementaryTypeName","src":"26439:7:88","typeDescriptions":{}}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26439:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54690,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"26429:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26429:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"26385:73:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54700,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26513:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54698,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26477:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26486:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"26477:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26477:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54702,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54622,"src":"26526:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26477:74:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":54704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26553:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26469:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26469:105:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54706,"nodeType":"ExpressionStatement","src":"26469:105:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54708,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"26593:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54709,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"26602:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26593:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":54711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26617:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":54707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26585:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54713,"nodeType":"ExpressionStatement","src":"26585:51:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54715,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54689,"src":"26654:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54716,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54637,"src":"26668:18:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26654:32:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":54718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26688:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":54714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26646:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:66:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54720,"nodeType":"ExpressionStatement","src":"26646:66:88"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25548:4:88","parameters":{"id":54605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54599,"mutability":"mutable","name":"funderAddress","nameLocation":"25561:13:88","nodeType":"VariableDeclaration","scope":54722,"src":"25553:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54598,"name":"address","nodeType":"ElementaryTypeName","src":"25553:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54601,"mutability":"mutable","name":"fundAmount","nameLocation":"25584:10:88","nodeType":"VariableDeclaration","scope":54722,"src":"25576:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"25576:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54604,"mutability":"mutable","name":"mode","nameLocation":"25607:4:88","nodeType":"VariableDeclaration","scope":54722,"src":"25596:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":54603,"nodeType":"UserDefinedTypeName","pathNode":{"id":54602,"name":"SupplyKind","nameLocations":["25596:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"25596:10:88"},"referencedDeclaration":50229,"src":"25596:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"25552:60:88"},"returnParameters":{"id":54606,"nodeType":"ParameterList","parameters":[],"src":"25620:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54753,"nodeType":"FunctionDefinition","src":"26725:243:88","nodes":[],"body":{"id":54752,"nodeType":"Block","src":"26793:175:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54732,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26812:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26803:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26803:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26803:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54734,"nodeType":"ExpressionStatement","src":"26803:26:88"},{"expression":{"arguments":[{"id":54738,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26847:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54739,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26865:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26865:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":54735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26839:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26842:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26839:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26839:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54743,"nodeType":"ExpressionStatement","src":"26839:56:88"},{"expression":{"arguments":[{"id":54749,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54726,"src":"26954:6:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54744,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26905:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":54746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26915:4:88","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"26905:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":54748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54747,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26927:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"26905:48:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":54750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54751,"nodeType":"ExpressionStatement","src":"26905:56:88"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"26734:4:88","parameters":{"id":54727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54724,"mutability":"mutable","name":"validatorAddress","nameLocation":"26747:16:88","nodeType":"VariableDeclaration","scope":54753,"src":"26739:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54723,"name":"address","nodeType":"ElementaryTypeName","src":"26739:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54726,"mutability":"mutable","name":"pubkey","nameLocation":"26778:6:88","nodeType":"VariableDeclaration","scope":54753,"src":"26765:19:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54725,"name":"bytes","nodeType":"ElementaryTypeName","src":"26765:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26738:47:88"},"returnParameters":{"id":54728,"nodeType":"ParameterList","parameters":[],"src":"26793:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54800,"nodeType":"FunctionDefinition","src":"26974:298:88","nodes":[],"body":{"id":54799,"nodeType":"Block","src":"27042:230:88","nodes":[],"statements":[{"assignments":[54764],"declarations":[{"constant":false,"id":54764,"mutability":"mutable","name":"validators","nameLocation":"27069:10:88","nodeType":"VariableDeclaration","scope":54799,"src":"27052:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54762,"name":"address","nodeType":"ElementaryTypeName","src":"27052:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54763,"nodeType":"ArrayTypeName","src":"27052:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54770,"initialValue":{"arguments":[{"hexValue":"31","id":54768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27096:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27082:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54765,"name":"address","nodeType":"ElementaryTypeName","src":"27086:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54766,"nodeType":"ArrayTypeName","src":"27086:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27082:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27052:46:88"},{"expression":{"id":54775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54771,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27108:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54773,"indexExpression":{"hexValue":"30","id":54772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27119:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27108:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54774,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54755,"src":"27124:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27108:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54776,"nodeType":"ExpressionStatement","src":"27108:25:88"},{"assignments":[54781],"declarations":[{"constant":false,"id":54781,"mutability":"mutable","name":"privKeys","nameLocation":"27161:8:88","nodeType":"VariableDeclaration","scope":54799,"src":"27144:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54779,"name":"uint256","nodeType":"ElementaryTypeName","src":"27144:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54780,"nodeType":"ArrayTypeName","src":"27144:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54787,"initialValue":{"arguments":[{"hexValue":"31","id":54785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27186:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27172:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54782,"name":"uint256","nodeType":"ElementaryTypeName","src":"27176:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54783,"nodeType":"ArrayTypeName","src":"27176:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27172:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27144:44:88"},{"expression":{"id":54792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27198:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54790,"indexExpression":{"hexValue":"30","id":54789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27207:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27198:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54791,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54757,"src":"27212:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27198:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54793,"nodeType":"ExpressionStatement","src":"27198:21:88"},{"expression":{"arguments":[{"id":54795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27244:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54796,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27256:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54794,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27230:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27230:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54798,"nodeType":"ExpressionStatement","src":"27230:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26983:13:88","parameters":{"id":54758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54755,"mutability":"mutable","name":"validator","nameLocation":"27005:9:88","nodeType":"VariableDeclaration","scope":54800,"src":"26997:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54754,"name":"address","nodeType":"ElementaryTypeName","src":"26997:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54757,"mutability":"mutable","name":"privKey","nameLocation":"27024:7:88","nodeType":"VariableDeclaration","scope":54800,"src":"27016:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54756,"name":"uint256","nodeType":"ElementaryTypeName","src":"27016:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26996:36:88"},"returnParameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"27042:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54863,"nodeType":"FunctionDefinition","src":"27278:408:88","nodes":[],"body":{"id":54862,"nodeType":"Block","src":"27386:300:88","nodes":[],"statements":[{"assignments":[54815],"declarations":[{"constant":false,"id":54815,"mutability":"mutable","name":"validators","nameLocation":"27413:10:88","nodeType":"VariableDeclaration","scope":54862,"src":"27396:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54813,"name":"address","nodeType":"ElementaryTypeName","src":"27396:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54814,"nodeType":"ArrayTypeName","src":"27396:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54821,"initialValue":{"arguments":[{"hexValue":"32","id":54819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27440:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27426:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54816,"name":"address","nodeType":"ElementaryTypeName","src":"27430:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54817,"nodeType":"ArrayTypeName","src":"27430:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27426:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27396:46:88"},{"expression":{"id":54826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27452:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54824,"indexExpression":{"hexValue":"30","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27452:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54825,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54802,"src":"27468:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27452:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54827,"nodeType":"ExpressionStatement","src":"27452:26:88"},{"expression":{"id":54832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27488:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54830,"indexExpression":{"hexValue":"31","id":54829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27499:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27488:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54831,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54806,"src":"27504:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27488:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54833,"nodeType":"ExpressionStatement","src":"27488:26:88"},{"assignments":[54838],"declarations":[{"constant":false,"id":54838,"mutability":"mutable","name":"privKeys","nameLocation":"27542:8:88","nodeType":"VariableDeclaration","scope":54862,"src":"27525:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54836,"name":"uint256","nodeType":"ElementaryTypeName","src":"27525:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54837,"nodeType":"ArrayTypeName","src":"27525:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54844,"initialValue":{"arguments":[{"hexValue":"32","id":54842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27567:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27553:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54839,"name":"uint256","nodeType":"ElementaryTypeName","src":"27557:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54840,"nodeType":"ArrayTypeName","src":"27557:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27553:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27525:44:88"},{"expression":{"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54845,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27579:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54847,"indexExpression":{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27588:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27579:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54848,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54804,"src":"27593:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27579:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54850,"nodeType":"ExpressionStatement","src":"27579:22:88"},{"expression":{"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54851,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27611:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54853,"indexExpression":{"hexValue":"31","id":54852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27611:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54854,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54808,"src":"27625:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27611:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54856,"nodeType":"ExpressionStatement","src":"27611:22:88"},{"expression":{"arguments":[{"id":54858,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27658:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54859,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27670:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54857,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27644:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27644:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54861,"nodeType":"ExpressionStatement","src":"27644:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27287:13:88","parameters":{"id":54809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54802,"mutability":"mutable","name":"validator1","nameLocation":"27309:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27301:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54801,"name":"address","nodeType":"ElementaryTypeName","src":"27301:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54804,"mutability":"mutable","name":"privKey1","nameLocation":"27329:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27321:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54803,"name":"uint256","nodeType":"ElementaryTypeName","src":"27321:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54806,"mutability":"mutable","name":"validator2","nameLocation":"27347:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27339:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54805,"name":"address","nodeType":"ElementaryTypeName","src":"27339:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54808,"mutability":"mutable","name":"privKey2","nameLocation":"27367:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27359:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54807,"name":"uint256","nodeType":"ElementaryTypeName","src":"27359:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27300:76:88"},"returnParameters":{"id":54810,"nodeType":"ParameterList","parameters":[],"src":"27386:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54942,"nodeType":"FunctionDefinition","src":"27692:568:88","nodes":[],"body":{"id":54941,"nodeType":"Block","src":"27892:368:88","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"validators","nameLocation":"27919:10:88","nodeType":"VariableDeclaration","scope":54941,"src":"27902:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54880,"name":"address","nodeType":"ElementaryTypeName","src":"27902:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54881,"nodeType":"ArrayTypeName","src":"27902:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54888,"initialValue":{"arguments":[{"hexValue":"33","id":54886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27946:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27932:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"27936:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54884,"nodeType":"ArrayTypeName","src":"27936:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27932:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27902:46:88"},{"expression":{"id":54893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54889,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27958:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54891,"indexExpression":{"hexValue":"30","id":54890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27969:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27958:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54892,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54865,"src":"27974:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27958:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54894,"nodeType":"ExpressionStatement","src":"27958:26:88"},{"expression":{"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54895,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27994:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54897,"indexExpression":{"hexValue":"31","id":54896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28005:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27994:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54898,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54869,"src":"28010:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27994:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54900,"nodeType":"ExpressionStatement","src":"27994:26:88"},{"expression":{"id":54905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54901,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28030:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54903,"indexExpression":{"hexValue":"32","id":54902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28030:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54904,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54873,"src":"28046:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28030:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54906,"nodeType":"ExpressionStatement","src":"28030:26:88"},{"assignments":[54911],"declarations":[{"constant":false,"id":54911,"mutability":"mutable","name":"privKeys","nameLocation":"28084:8:88","nodeType":"VariableDeclaration","scope":54941,"src":"28067:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54909,"name":"uint256","nodeType":"ElementaryTypeName","src":"28067:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54910,"nodeType":"ArrayTypeName","src":"28067:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[{"hexValue":"33","id":54915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28109:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28095:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28099:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54913,"nodeType":"ArrayTypeName","src":"28099:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28095:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28067:44:88"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54918,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28121:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54920,"indexExpression":{"hexValue":"30","id":54919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28130:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28121:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"28135:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28121:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54923,"nodeType":"ExpressionStatement","src":"28121:22:88"},{"expression":{"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54924,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28153:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54926,"indexExpression":{"hexValue":"31","id":54925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28153:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54927,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"28167:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28153:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54929,"nodeType":"ExpressionStatement","src":"28153:22:88"},{"expression":{"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54930,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28185:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54932,"indexExpression":{"hexValue":"32","id":54931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28194:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28185:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54933,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54875,"src":"28199:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28185:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54935,"nodeType":"ExpressionStatement","src":"28185:22:88"},{"expression":{"arguments":[{"id":54937,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28232:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54938,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28244:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54936,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"28218:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28218:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54940,"nodeType":"ExpressionStatement","src":"28218:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27701:13:88","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54865,"mutability":"mutable","name":"validator1","nameLocation":"27732:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27724:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54864,"name":"address","nodeType":"ElementaryTypeName","src":"27724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54867,"mutability":"mutable","name":"privKey1","nameLocation":"27760:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27752:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54866,"name":"uint256","nodeType":"ElementaryTypeName","src":"27752:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54869,"mutability":"mutable","name":"validator2","nameLocation":"27786:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27778:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54868,"name":"address","nodeType":"ElementaryTypeName","src":"27778:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54871,"mutability":"mutable","name":"privKey2","nameLocation":"27814:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27806:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"27806:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54873,"mutability":"mutable","name":"validator3","nameLocation":"27840:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27832:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54872,"name":"address","nodeType":"ElementaryTypeName","src":"27832:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54875,"mutability":"mutable","name":"privKey3","nameLocation":"27868:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27860:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27860:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27714:168:88"},"returnParameters":{"id":54877,"nodeType":"ParameterList","parameters":[],"src":"27892:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55093,"nodeType":"FunctionDefinition","src":"28266:1102:88","nodes":[],"body":{"id":55092,"nodeType":"Block","src":"28354:1014:88","nodes":[],"statements":[{"assignments":[54952],"declarations":[{"constant":false,"id":54952,"mutability":"mutable","name":"n","nameLocation":"28372:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28364:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54951,"name":"uint256","nodeType":"ElementaryTypeName","src":"28364:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54955,"initialValue":{"expression":{"id":54953,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"28376:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28387:6:88","memberName":"length","nodeType":"MemberAccess","src":"28376:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28364:29:88"},{"assignments":[54960],"declarations":[{"constant":false,"id":54960,"mutability":"mutable","name":"signatures","nameLocation":"28419:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28404:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54958,"name":"bytes","nodeType":"ElementaryTypeName","src":"28404:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54959,"nodeType":"ArrayTypeName","src":"28404:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":54966,"initialValue":{"arguments":[{"id":54964,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"28444:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28432:11:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":54961,"name":"bytes","nodeType":"ElementaryTypeName","src":"28436:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54962,"nodeType":"ArrayTypeName","src":"28436:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28432:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28404:42:88"},{"assignments":[54968,null],"declarations":[{"constant":false,"id":54968,"mutability":"mutable","name":"nextConfigNum","nameLocation":"28465:13:88","nodeType":"VariableDeclaration","scope":55092,"src":"28458:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54967,"name":"uint64","nodeType":"ElementaryTypeName","src":"28458:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":54972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54969,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28484:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28493:23:88","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50349,"src":"28484:32:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28484:34:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"28457:61:88"},{"assignments":[54974],"declarations":[{"constant":false,"id":54974,"mutability":"mutable","name":"h","nameLocation":"28537:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28529:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54973,"name":"uint256","nodeType":"ElementaryTypeName","src":"28529:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54982,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54975,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28541:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28550:28:88","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50477,"src":"28541:37:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28541:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54978,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28583:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28592:19:88","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50457,"src":"28583:28:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28583:30:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28541:72:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28529:84:88"},{"assignments":[54985],"declarations":[{"constant":false,"id":54985,"mutability":"mutable","name":"checkpoint","nameLocation":"28650:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28624:36:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":54984,"nodeType":"UserDefinedTypeName","pathNode":{"id":54983,"name":"BottomUpCheckpoint","nameLocations":["28624:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"28624:18:88"},"referencedDeclaration":49932,"src":"28624:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55007,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54993,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28750:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28742:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"28742:7:88","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28742:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54987,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28706:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28715:9:88","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50279,"src":"28706:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28727:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"28706:35:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54996,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28788:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55000,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28835:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28824:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28828:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28824:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28824:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28814:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28814:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55003,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54968,"src":"28877:13:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28877:17:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":54986,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"28663:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:8:88","28775:11:88","28803:9:88","28852:23:88"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"28663:242:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"28624:281:88"},{"expression":{"arguments":[{"arguments":[{"id":55013,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28932:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28924:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55011,"name":"address","nodeType":"ElementaryTypeName","src":"28924:7:88","typeDescriptions":{}}},"id":55014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28924:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28944:9:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55008,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28916:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28919:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28916:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55017,"nodeType":"ExpressionStatement","src":"28916:38:88"},{"assignments":[55019],"declarations":[{"constant":false,"id":55019,"mutability":"mutable","name":"hash","nameLocation":"28973:4:88","nodeType":"VariableDeclaration","scope":55092,"src":"28965:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28965:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55026,"initialValue":{"arguments":[{"arguments":[{"id":55023,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29001:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28990:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28994:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28990:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28990:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55020,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28980:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28980:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28965:48:88"},{"body":{"id":55062,"nodeType":"Block","src":"29056:140:88","statements":[{"assignments":[55038,55040,55042],"declarations":[{"constant":false,"id":55038,"mutability":"mutable","name":"v","nameLocation":"29077:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29071:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55037,"name":"uint8","nodeType":"ElementaryTypeName","src":"29071:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55040,"mutability":"mutable","name":"r","nameLocation":"29088:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29080:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29080:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55042,"mutability":"mutable","name":"s","nameLocation":"29099:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29091:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29091:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55050,"initialValue":{"arguments":[{"baseExpression":{"id":55045,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54948,"src":"29112:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55047,"indexExpression":{"id":55046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29121:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29112:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55048,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55019,"src":"29125:4:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29104:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29107:4:88","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"29104:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29104:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"29070:60:88"},{"expression":{"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55051,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29144:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55053,"indexExpression":{"id":55052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29155:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29144:13:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55056,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55040,"src":"29177:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"29180:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55038,"src":"29183:1:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29160:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29164:12:88","memberName":"encodePacked","nodeType":"MemberAccess","src":"29160:16:88","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29160:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"29144:41:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55061,"nodeType":"ExpressionStatement","src":"29144:41:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29044:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55032,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29048:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29044:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55063,"initializationExpression":{"assignments":[55028],"declarations":[{"constant":false,"id":55028,"mutability":"mutable","name":"i","nameLocation":"29037:1:88","nodeType":"VariableDeclaration","scope":55063,"src":"29029:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55027,"name":"uint256","nodeType":"ElementaryTypeName","src":"29029:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55030,"initialValue":{"hexValue":"30","id":55029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29029:13:88"},"loopExpression":{"expression":{"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29051:3:88","subExpression":{"id":55034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29051:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55036,"nodeType":"ExpressionStatement","src":"29051:3:88"},"nodeType":"ForStatement","src":"29024:172:88"},{"body":{"id":55090,"nodeType":"Block","src":"29238:124:88","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29261:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55079,"indexExpression":{"id":55078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29272:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29261:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29252:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29255:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"29252:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29252:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55081,"nodeType":"ExpressionStatement","src":"29252:23:88"},{"expression":{"arguments":[{"id":55085,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29316:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55086,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29328:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55087,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29340:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55082,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"29289:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":55084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29299:16:88","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":51154,"src":"29289:26:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29289:62:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55089,"nodeType":"ExpressionStatement","src":"29289:62:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29226:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55069,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29230:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29226:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55091,"initializationExpression":{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"i","nameLocation":"29219:1:88","nodeType":"VariableDeclaration","scope":55091,"src":"29211:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55064,"name":"uint256","nodeType":"ElementaryTypeName","src":"29211:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55067,"initialValue":{"hexValue":"30","id":55066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29223:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29211:13:88"},"loopExpression":{"expression":{"id":55072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29233:3:88","subExpression":{"id":55071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29233:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55073,"nodeType":"ExpressionStatement","src":"29233:3:88"},"nodeType":"ForStatement","src":"29206:156:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"28275:13:88","parameters":{"id":54949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54945,"mutability":"mutable","name":"validators","nameLocation":"28306:10:88","nodeType":"VariableDeclaration","scope":55093,"src":"28289:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54943,"name":"address","nodeType":"ElementaryTypeName","src":"28289:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54944,"nodeType":"ArrayTypeName","src":"28289:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54948,"mutability":"mutable","name":"privKeys","nameLocation":"28335:8:88","nodeType":"VariableDeclaration","scope":55093,"src":"28318:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54946,"name":"uint256","nodeType":"ElementaryTypeName","src":"28318:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54947,"nodeType":"ArrayTypeName","src":"28318:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"28288:56:88"},"returnParameters":{"id":54950,"nodeType":"ParameterList","parameters":[],"src":"28354:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55128,"nodeType":"FunctionDefinition","src":"29374:305:88","nodes":[],"body":{"id":55127,"nodeType":"Block","src":"29421:258:88","nodes":[],"statements":[{"assignments":[55099],"declarations":[{"constant":false,"id":55099,"mutability":"mutable","name":"expectedNonce","nameLocation":"29439:13:88","nodeType":"VariableDeclaration","scope":55127,"src":"29431:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55105,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55100,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29455:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29464:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29455:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29455:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29482:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29455:28:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"29431:52:88"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29555:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29559:6:88","memberName":"sender","nodeType":"MemberAccess","src":"29555:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55111,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"29533:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":55112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29550:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"29533:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55106,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29493:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29503:7:88","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"29493:17:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55109,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55095,"src":"29518:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29493:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55117,"nodeType":"ExpressionStatement","src":"29493:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55119,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29585:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29594:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29585:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29585:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55122,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55099,"src":"29613:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29585:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29628:43:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29577:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29577:95:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55126,"nodeType":"ExpressionStatement","src":"29577:95:88"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"29383:7:88","parameters":{"id":55096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55095,"mutability":"mutable","name":"releaseAmount","nameLocation":"29399:13:88","nodeType":"VariableDeclaration","scope":55128,"src":"29391:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55094,"name":"uint256","nodeType":"ElementaryTypeName","src":"29391:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29390:23:88"},"returnParameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"29421:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55183,"nodeType":"FunctionDefinition","src":"29685:536:88","nodes":[],"body":{"id":55182,"nodeType":"Block","src":"29754:467:88","nodes":[],"statements":[{"assignments":[55136],"declarations":[{"constant":false,"id":55136,"mutability":"mutable","name":"balanceBefore","nameLocation":"29772:13:88","nodeType":"VariableDeclaration","scope":55182,"src":"29764:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55135,"name":"uint256","nodeType":"ElementaryTypeName","src":"29764:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55139,"initialValue":{"expression":{"id":55137,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29788:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29802:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29788:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29764:45:88"},{"assignments":[null,55141,null,null,null],"declarations":[null,{"constant":false,"id":55141,"mutability":"mutable","name":"stakedBefore","nameLocation":"29831:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29823:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"29823:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55145,"initialValue":{"arguments":[{"id":55143,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29863:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55142,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"29853:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29853:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29820:57:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55146,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29888:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29898:8:88","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"29888:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55149,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"29914:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29888:38:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29888:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55152,"nodeType":"ExpressionStatement","src":"29888:40:88"},{"assignments":[55154],"declarations":[{"constant":false,"id":55154,"mutability":"mutable","name":"balanceAfter","nameLocation":"29947:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29939:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55153,"name":"uint256","nodeType":"ElementaryTypeName","src":"29939:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55157,"initialValue":{"expression":{"id":55155,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29962:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29976:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29962:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29939:44:88"},{"assignments":[null,55159,null,null,null],"declarations":[null,{"constant":false,"id":55159,"mutability":"mutable","name":"stakedAfter","nameLocation":"30004:11:88","nodeType":"VariableDeclaration","scope":55182,"src":"29996:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29996:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55163,"initialValue":{"arguments":[{"id":55161,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"30035:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55160,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"30025:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30025:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29993:56:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55165,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55154,"src":"30068:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55166,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55136,"src":"30084:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55167,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30100:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30084:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30068:43:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30113:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30060:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30060:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"ExpressionStatement","src":"30060:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55174,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"30152:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55175,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55141,"src":"30167:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55176,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30182:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30167:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30152:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30195:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30144:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30144:70:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"30144:70:88"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"29694:8:88","parameters":{"id":55133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55130,"mutability":"mutable","name":"stakeAmount","nameLocation":"29711:11:88","nodeType":"VariableDeclaration","scope":55183,"src":"29703:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55129,"name":"uint256","nodeType":"ElementaryTypeName","src":"29703:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55132,"mutability":"mutable","name":"subnetAddress","nameLocation":"29732:13:88","nodeType":"VariableDeclaration","scope":55183,"src":"29724:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55131,"name":"address","nodeType":"ElementaryTypeName","src":"29724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29702:44:88"},"returnParameters":{"id":55134,"nodeType":"ParameterList","parameters":[],"src":"29754:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55268,"nodeType":"FunctionDefinition","src":"30227:813:88","nodes":[],"body":{"id":55267,"nodeType":"Block","src":"30322:718:88","nodes":[],"statements":[{"assignments":[55195],"declarations":[{"constant":false,"id":55195,"mutability":"mutable","name":"manager","nameLocation":"30352:7:88","nodeType":"VariableDeclaration","scope":55267,"src":"30332:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55194,"nodeType":"UserDefinedTypeName","pathNode":{"id":55193,"name":"GatewayManagerFacet","nameLocations":["30332:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"30332:19:88"},"referencedDeclaration":38870,"src":"30332:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55202,"initialValue":{"arguments":[{"arguments":[{"id":55199,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30390:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30382:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55197,"name":"address","nodeType":"ElementaryTypeName","src":"30382:7:88","typeDescriptions":{}}},"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30382:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55196,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"30362:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30362:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"30332:62:88"},{"expression":{"arguments":[{"hexValue":"30","id":55208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30441:1:88","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"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55203,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"30405:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30413:8:88","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"30405:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55206,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30429:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30405:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30405:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55210,"nodeType":"ExpressionStatement","src":"30405:38:88"},{"assignments":[55213,55215,55217,null,55219],"declarations":[{"constant":false,"id":55213,"mutability":"mutable","name":"id","nameLocation":"30471:2:88","nodeType":"VariableDeclaration","scope":55267,"src":"30455:18:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55212,"nodeType":"UserDefinedTypeName","pathNode":{"id":55211,"name":"SubnetID","nameLocations":["30455:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30455:8:88"},"referencedDeclaration":50077,"src":"30455:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55215,"mutability":"mutable","name":"stake","nameLocation":"30483:5:88","nodeType":"VariableDeclaration","scope":55267,"src":"30475:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30475:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55217,"mutability":"mutable","name":"topDownNonce","nameLocation":"30498:12:88","nodeType":"VariableDeclaration","scope":55267,"src":"30490:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55216,"name":"uint256","nodeType":"ElementaryTypeName","src":"30490:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55219,"mutability":"mutable","name":"circSupply","nameLocation":"30522:10:88","nodeType":"VariableDeclaration","scope":55267,"src":"30514:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55218,"name":"uint256","nodeType":"ElementaryTypeName","src":"30514:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55224,"initialValue":{"arguments":[{"id":55221,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30561:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55222,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30588:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55220,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"30536:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30536:64:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30454:146:88"},{"assignments":[55227],"declarations":[{"constant":false,"id":55227,"mutability":"mutable","name":"parentNetwork","nameLocation":"30627:13:88","nodeType":"VariableDeclaration","scope":55267,"src":"30611:29:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55226,"nodeType":"UserDefinedTypeName","pathNode":{"id":55225,"name":"SubnetID","nameLocations":["30611:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30611:8:88"},"referencedDeclaration":50077,"src":"30611:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55228,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"30643:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30652:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"30643:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30643:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"30611:57:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55233,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"30700:2:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30700:9:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30700:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55238,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30744:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55236,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55227,"src":"30715:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30729:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"30715:28:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30759:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30715:50:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:52:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"30700:67:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30781:69:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30679:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30679:181:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55245,"nodeType":"ExpressionStatement","src":"30679:181:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55247,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55215,"src":"30878:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55248,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30887:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30878:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30899:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30870:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30870:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55252,"nodeType":"ExpressionStatement","src":"30870:48:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55254,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"30936:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30952:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30936:17:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30955:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30928:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55259,"nodeType":"ExpressionStatement","src":"30928:46:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55261,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"30992:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31006:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30992:15:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31009:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30984:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30984:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55266,"nodeType":"ExpressionStatement","src":"30984:49:88"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"30236:16:88","parameters":{"id":55191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55185,"mutability":"mutable","name":"collateral","nameLocation":"30261:10:88","nodeType":"VariableDeclaration","scope":55268,"src":"30253:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55184,"name":"uint256","nodeType":"ElementaryTypeName","src":"30253:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55187,"mutability":"mutable","name":"subnetAddress","nameLocation":"30281:13:88","nodeType":"VariableDeclaration","scope":55268,"src":"30273:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55186,"name":"address","nodeType":"ElementaryTypeName","src":"30273:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55190,"mutability":"mutable","name":"gw","nameLocation":"30311:2:88","nodeType":"VariableDeclaration","scope":55268,"src":"30296:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55189,"nodeType":"UserDefinedTypeName","pathNode":{"id":55188,"name":"GatewayDiamond","nameLocations":["30296:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"30296:14:88"},"referencedDeclaration":36170,"src":"30296:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"30252:62:88"},"returnParameters":{"id":55192,"nodeType":"ParameterList","parameters":[],"src":"30322:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55282,"nodeType":"FunctionDefinition","src":"31046:150:88","nodes":[],"body":{"id":55281,"nodeType":"Block","src":"31120:76:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55276,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55270,"src":"31147:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55277,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55272,"src":"31159:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55278,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31174:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55275,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"31130:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31130:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55280,"nodeType":"ExpressionStatement","src":"31130:59:88"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"31055:14:88","parameters":{"id":55273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55270,"mutability":"mutable","name":"collateral","nameLocation":"31078:10:88","nodeType":"VariableDeclaration","scope":55282,"src":"31070:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55269,"name":"uint256","nodeType":"ElementaryTypeName","src":"31070:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55272,"mutability":"mutable","name":"subnetAddress","nameLocation":"31098:13:88","nodeType":"VariableDeclaration","scope":55282,"src":"31090:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55271,"name":"address","nodeType":"ElementaryTypeName","src":"31090:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31069:43:88"},"returnParameters":{"id":55274,"nodeType":"ParameterList","parameters":[],"src":"31120:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55352,"nodeType":"FunctionDefinition","src":"31202:541:88","nodes":[],"body":{"id":55351,"nodeType":"Block","src":"31356:387:88","nodes":[],"statements":[{"expression":{"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55301,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"31366:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55305,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31406:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55303,"name":"address","nodeType":"ElementaryTypeName","src":"31398:7:88","typeDescriptions":{}}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55302,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"31378:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"31366:44:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55309,"nodeType":"ExpressionStatement","src":"31366:44:88"},{"expression":{"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55310,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31420:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55314,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31458:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31450:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"31450:7:88","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31450:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55311,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"31431:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31431:31:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"31420:42:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55318,"nodeType":"ExpressionStatement","src":"31420:42:88"},{"assignments":[55321],"declarations":[{"constant":false,"id":55321,"mutability":"mutable","name":"subnetId","nameLocation":"31489:8:88","nodeType":"VariableDeclaration","scope":55351,"src":"31473:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55320,"nodeType":"UserDefinedTypeName","pathNode":{"id":55319,"name":"SubnetID","nameLocations":["31473:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31473:8:88"},"referencedDeclaration":50077,"src":"31473:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55328,"initialValue":{"arguments":[{"id":55326,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"31541:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55322,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31500:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31509:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"31500:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31526:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"31500:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"31473:82:88"},{"assignments":[55331],"declarations":[{"constant":false,"id":55331,"mutability":"mutable","name":"subnet","nameLocation":"31580:6:88","nodeType":"VariableDeclaration","scope":55351,"src":"31566:20:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55330,"nodeType":"UserDefinedTypeName","pathNode":{"id":55329,"name":"Subnet","nameLocations":["31566:6:88"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"31566:6:88"},"referencedDeclaration":50091,"src":"31566:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55338,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55334,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55321,"src":"31606:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31615:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"31606:15:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31606:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55332,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31589:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31598:7:88","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"31589:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50091_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31589:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"31566:58:88"},{"expression":{"components":[{"expression":{"id":55339,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31643:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31650:2:88","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"31643:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55341,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31654:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31661:5:88","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"31654:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55343,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31668:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31675:12:88","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"31668:19:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55345,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31689:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31696:20:88","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"31689:27:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55347,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31718:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31725:10:88","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"31718:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31642:94:88","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55300,"id":55350,"nodeType":"Return","src":"31635:101:88"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"31211:11:88","parameters":{"id":55288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55284,"mutability":"mutable","name":"subnetAddress","nameLocation":"31240:13:88","nodeType":"VariableDeclaration","scope":55352,"src":"31232:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55283,"name":"address","nodeType":"ElementaryTypeName","src":"31232:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55287,"mutability":"mutable","name":"gw","nameLocation":"31278:2:88","nodeType":"VariableDeclaration","scope":55352,"src":"31263:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55286,"nodeType":"UserDefinedTypeName","pathNode":{"id":55285,"name":"GatewayDiamond","nameLocations":["31263:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"31263:14:88"},"referencedDeclaration":36170,"src":"31263:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"31222:64:88"},"returnParameters":{"id":55300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31303:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55290,"nodeType":"UserDefinedTypeName","pathNode":{"id":55289,"name":"SubnetID","nameLocations":["31303:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31303:8:88"},"referencedDeclaration":50077,"src":"31303:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31320:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55292,"name":"uint256","nodeType":"ElementaryTypeName","src":"31320:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31329:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55294,"name":"uint256","nodeType":"ElementaryTypeName","src":"31329:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31338:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55296,"name":"uint256","nodeType":"ElementaryTypeName","src":"31338:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31347:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55298,"name":"uint256","nodeType":"ElementaryTypeName","src":"31347:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31302:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55374,"nodeType":"FunctionDefinition","src":"31749:177:88","nodes":[],"body":{"id":55373,"nodeType":"Block","src":"31860:66:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55369,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55354,"src":"31889:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55370,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31904:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55368,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"31877:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31877:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55367,"id":55372,"nodeType":"Return","src":"31870:49:88"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"31758:9:88","parameters":{"id":55355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55354,"mutability":"mutable","name":"subnetAddress","nameLocation":"31776:13:88","nodeType":"VariableDeclaration","scope":55374,"src":"31768:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55353,"name":"address","nodeType":"ElementaryTypeName","src":"31768:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31767:23:88"},"returnParameters":{"id":55367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31807:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55357,"nodeType":"UserDefinedTypeName","pathNode":{"id":55356,"name":"SubnetID","nameLocations":["31807:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31807:8:88"},"referencedDeclaration":50077,"src":"31807:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31824:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55359,"name":"uint256","nodeType":"ElementaryTypeName","src":"31824:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31833:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55361,"name":"uint256","nodeType":"ElementaryTypeName","src":"31833:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31842:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55363,"name":"uint256","nodeType":"ElementaryTypeName","src":"31842:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31851:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"31851:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31806:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53038,"name":"Test","nameLocations":["8694:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8694:4:88"},"id":53039,"nodeType":"InheritanceSpecifier","src":"8694:4:88"},{"baseName":{"id":53040,"name":"TestParams","nameLocations":["8700:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"8700:10:88"},"id":53041,"nodeType":"InheritanceSpecifier","src":"8700:10:88"},{"baseName":{"id":53042,"name":"TestRegistry","nameLocations":["8712:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":52747,"src":"8712:12:88"},"id":53043,"nodeType":"InheritanceSpecifier","src":"8712:12:88"},{"baseName":{"id":53044,"name":"TestSubnetActor","nameLocations":["8726:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":53037,"src":"8726:15:88"},"id":53045,"nodeType":"InheritanceSpecifier","src":"8726:15:88"},{"baseName":{"id":53046,"name":"TestGatewayActor","nameLocations":["8743:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":52912,"src":"8743:16:88"},"id":53047,"nodeType":"InheritanceSpecifier","src":"8743:16:88"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50887,52151,52279,52517,57957],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55375,52912,53037,52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8671:19:88","scope":55376,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234620012ed57600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601260248201527110da1958dadc1bda5b9d1a5b99d19858d95d60721b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae57600091620012ce575b508051906001600160401b03821162000870576801000000000000000082116200087057601b5482601b558083106200126b575b5060200190601b60005260206000209060005b8160031c81106200121b57506007198116810380620011c3575b505050506040516319b8a26360e21b8152602060048201526012602482015271161b995d13595cdcd859da5b99d19858d95d60721b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae57600091620011a4575b508051906001600160401b03821162000870576801000000000000000082116200087057601c5482601c5580831062001138575b5060200190601c60005260206000209060005b8160031c8110620010e85750600719811681036200108f575b50506040516319b8a26360e21b815260206004820152601460248201527f546f70446f776e46696e616c69747946616365740000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162001070575b508051906001600160401b03821162000870576801000000000000000082116200087057601d5482601d5580831062000fe7575b5060200190601d60005260206000209060005b8160031c811062000f9757506007198116810362000f3e575b50506040516319b8a26360e21b815260206004820152601360248201527f426f74746f6d5570526f757465724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000f1f575b508051906001600160401b03821162000870576801000000000000000082116200087057601e5482601e5580831062000e96575b5060200190601e60005260206000209060005b8160031c811062000e4657506007198116810362000ded575b50506040516319b8a26360e21b815260206004820152601260248201527111d85d195dd85e51d95d1d195c919858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000dce575b508051906001600160401b038211620008705768010000000000000000821162000870576020548260205580831062000d56575b50602060008181529101916000805160206200203b833981519152915b8160031c811062000d0657506007198116810362000cad575b50506040516319b8a26360e21b815260206004820152601360248201527f476174657761794d616e616765724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000c8e575b508051906001600160401b03821162000870576801000000000000000082116200087057601f5482601f5580831062000c05575b5060200190601f60005260206000209060005b8160031c811062000bb557506007198116810362000b5c575b50506040516319b8a26360e21b815260206004820152601560248201527f476174657761794d657373656e676572466163657400000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000b3d575b508051906001600160401b038211620008705768010000000000000000821162000870576021548260215580831062000ab4575b5060200190602160005260206000209060005b8160031c811062000a6457506007198116810362000a0b575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae57600091620009ec575b508051906001600160401b038211620008705768010000000000000000821162000870576022548260225580831062000963575b5060200190602260005260206000209060005b8160031c811062000913575060071981168103620008ba575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000886575b508051906001600160401b03821162000870576801000000000000000082116200087057602354826023558083106200080d575b5060200190602360005260206000208160031c9160005b838110620007bd5750600719811690038062000768575b604051610c8e9081620013ad8239f35b9260009360005b818110620007865750505001553880808062000758565b9091946020620007b2600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200076f565b6000805b60088110620007d857508382015560010162000741565b9590602062000803600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620007c1565b60236000526020600020600780850160031c8201920160031c0190601c8460021b168062000854575b505b8181106200084757506200072a565b6000815560010162000838565b600019908183019182549160200360031b1c1690553862000836565b634e487b7160e01b600052604160045260246000fd5b620008a791503d806000833e6200089e8183620012f2565b81019062001316565b38620006f6565b6040513d6000823e3d90fd5b60009260005b600719831683038110620008de57505060031c01553880806200068f565b9093602062000909600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620008c0565b6000805b600881106200092e57508382015560010162000676565b9490602062000959600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000917565b60226000527f61035b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e510600284901b601c1680620009c8575b506007840160031c81015b6007830160031c82018110620009bb57505062000663565b60008155600101620009a3565b60001990816007870160031c8401019182549160200360031b1c1690553862000998565b62000a0491503d806000833e6200089e8183620012f2565b386200062f565b60009260005b60071983168303811062000a2f57505060031c0155388080620005ca565b9093602062000a5a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000a11565b6000805b6008811062000a7f575083820155600101620005b1565b9490602062000aaa600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000a68565b60216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570600284901b601c168062000b19575b506007840160031c81015b6007830160031c8201811062000b0c5750506200059e565b6000815560010162000af4565b60001990816007870160031c8401019182549160200360031b1c1690553862000ae9565b62000b5591503d806000833e6200089e8183620012f2565b386200056a565b60009260005b60071983168303811062000b8057505060031c0155388080620004f7565b9093602062000bab600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000b62565b6000805b6008811062000bd0575083820155600101620004de565b9490602062000bfb600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000bb9565b601f6000527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807600284901b601c168062000c6a575b506007840160031c81015b6007830160031c8201811062000c5d575050620004cb565b6000815560010162000c45565b60001990816007870160031c8401019182549160200360031b1c1690553862000c3a565b62000ca691503d806000833e6200089e8183620012f2565b3862000497565b60009260005b60071983168303811062000cd157505060031c015538808062000424565b9093602062000cfc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000cb3565b6000805b6008811062000d215750838201556001016200040b565b9490602062000d4c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000d0a565b60206000526000805160206200203b833981519152600284901b601c168062000daa575b506007840160031c81015b6007830160031c8201811062000d9d575050620003ee565b6000815560010162000d85565b60001990816007870160031c8401019182549160200360031b1c1690553862000d7a565b62000de691503d806000833e6200089e8183620012f2565b38620003ba565b60009260005b60071983168303811062000e1157505060031c015538808062000352565b9093602062000e3c600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000df3565b6000805b6008811062000e6157508382015560010162000339565b9490602062000e8c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000e4a565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c168062000efb575b506007840160031c81015b6007830160031c8201811062000eee57505062000326565b6000815560010162000ed6565b60001990816007870160031c8401019182549160200360031b1c1690553862000ecb565b62000f3791503d806000833e6200089e8183620012f2565b38620002f2565b60009260005b60071983168303811062000f6257505060031c01553880806200027f565b9093602062000f8d600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000f44565b6000805b6008811062000fb257508382015560010162000266565b9490602062000fdd600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000f9b565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c16806200104c575b506007840160031c81015b6007830160031c820181106200103f57505062000253565b6000815560010162001027565b60001990816007870160031c8401019182549160200360031b1c169055386200101c565b6200108891503d806000833e6200089e8183620012f2565b386200021f565b60009260005b600719831683038110620010b357505060031c0155388080620001ac565b90936020620010de600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001095565b6000805b600881106200110357508382015560010162000193565b949060206200112e600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620010ec565b601c6000526020600020601c8460021b168062001180575b506007840160031c81015b6007830160031c820181106200117357505062000180565b600081556001016200115b565b60001990816007870160031c8401019182549160200360031b1c1690553862001150565b620011bc91503d806000833e6200089e8183620012f2565b386200014c565b9260009360005b818110620011e45750505060031c015538808080620000e4565b909194602062001210600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620011ca565b6000805b6008811062001236575083820155600101620000ca565b9490602062001261600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200121f565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b1680620012b2575b505b818110620012a55750620000b7565b6000815560010162001296565b600019908183019182549160200360031b1c1690553862001294565b620012e691503d806000833e6200089e8183620012f2565b3862000083565b600080fd5b601f909101601f19168101906001600160401b038211908210176200087057604052565b906020908183820312620012ed5782516001600160401b0393848211620012ed570181601f82011215620012ed57805193841162000870578360051b90604051946200136585840187620012f2565b85528380860192820101928311620012ed578301905b8282106200138a575050505090565b81516001600160e01b031981168103620012ed5781529083019083016200137b56fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220fd7f2c40c408aeb10f6a407f74a62c9fd11c0bdf817f7ab2a54614daf741467264736f6c63430008130033c97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb","sourceMap":"4734:2237:91:-:0;;;;;;;1594:4:2;4734:2237:91;;;;1594:4:2;4734:2237:91;;;1594:4:2;4734:2237:91;3201:4:5;4734:2237:91;;;3201:4:5;4734:2237:91;;;;5578:54;;4734:2237;3201:4:5;5578:54:91;;4734:2237;;;;;;-1:-1:-1;;;4734:2237:91;;;;1594:4:2;5578:15:91;4734:2237;5578:15;;:54;;;;;;;1594:4:2;5578:54:91;;;-1:-1:-1;;4734:2237:91;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;5546:86;4734:2237;;5546:86;4734:2237;;;;;;-1:-1:-1;4734:2237:91;;;;5546:86;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;-1:-1:-1;;;4734:2237:91;;;;;;;;;;;;;;;;;5674:54;;4734:2237;3201:4:5;5674:54:91;;4734:2237;;;;;;-1:-1:-1;;;4734:2237:91;;;;1594:4:2;5578:15:91;4734:2237;5578:15;;5674:54;;;;;;;1594:4:2;5674:54:91;;;4734:2237;-1:-1:-1;4734:2237:91;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;5642:86;4734:2237;;5642:86;4734:2237;;;;;;;;;;;5642:86;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;-1:-1:-1;;;4734:2237:91;;;;;;;-1:-1:-1;;4734:2237:91;;-1:-1:-1;;;5772:56:91;;4734:2237;3201:4:5;5772:56:91;;4734:2237;;;;;;;;;;;;-1:-1:-1;;4734:2237:91;;;5578:15;5772:56;;;;;;;1594:4:2;5772:56:91;;;4734:2237;-1:-1:-1;4734:2237:91;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;5738:90;4734:2237;;5738:90;4734:2237;;;;;;;;;;;5738:90;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;-1:-1:-1;;;4734:2237:91;;;;;;;-1:-1:-1;;4734:2237:91;;-1:-1:-1;;;5871:55:91;;4734:2237;3201:4:5;5871:55:91;;4734:2237;;;;;;;;;;;;-1:-1:-1;;4734:2237:91;;;5578:15;5871:55;;;;;;;1594:4:2;5871:55:91;;;4734:2237;-1:-1:-1;4734:2237:91;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;5838:88;4734:2237;;5838:88;4734:2237;;;;;;;;;;;5838:88;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;-1:-1:-1;;;4734:2237:91;;;;;;;-1:-1:-1;;4734:2237:91;;-1:-1:-1;;;5957:54:91;;4734:2237;3201:4:5;5957:54:91;;4734:2237;;;;;;-1:-1:-1;;;4734:2237:91;;;;;-1:-1:-1;;4734:2237:91;;;5578:15;5957:54;;;;;;;1594:4:2;5957:54:91;;;4734:2237;-1:-1:-1;4734:2237:91;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4734:2237:91;1594:4:2;4734:2237:91;;;;;;-1:-1:-1;;;;;;;;;;;4734:2237:91;;;;;;;;;-1:-1:-1;;;4734:2237:91;;;;;;;-1:-1:-1;;4734:2237:91;;-1:-1:-1;;;6042:55:91;;4734:2237;3201:4:5;6042:55:91;;4734:2237;;;;;;;;;;;;-1:-1:-1;;4734:2237:91;;;5578:15;6042:55;;;;;;;1594:4:2;6042:55:91;;;4734:2237;-1:-1:-1;4734:2237:91;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;6021:76;4734:2237;;6021:76;4734:2237;;;;;;;;;;;6021:76;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;-1:-1:-1;;;4734:2237:91;;;;;;;-1:-1:-1;;4734:2237:91;;-1:-1:-1;;;6130:57:91;;4734:2237;3201:4:5;6130:57:91;;4734:2237;;;;;;;;;;;;-1:-1:-1;;4734:2237:91;;;5578:15;6130:57;;;;;;;1594:4:2;6130:57:91;;;4734:2237;-1:-1:-1;4734:2237:91;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;6107:80;4734:2237;;6107:80;4734:2237;;;;;;;;;;;6107:80;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;-1:-1:-1;;;4734:2237:91;;;;;;;-1:-1:-1;;4734:2237:91;;-1:-1:-1;;;6217:51:91;;4734:2237;3201:4:5;6217:51:91;;4734:2237;;;;;;-1:-1:-1;;;4734:2237:91;;;;;-1:-1:-1;;4734:2237:91;;;5578:15;6217:51;;;;;;;1594:4:2;6217:51:91;;;4734:2237;-1:-1:-1;4734:2237:91;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;6197:71;4734:2237;;6197:71;4734:2237;;;;;;;;;;;6197:71;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;-1:-1:-1;;;4734:2237:91;;;;;;;-1:-1:-1;;4734:2237:91;;-1:-1:-1;;;6297:53:91;;4734:2237;3201:4:5;6297:53:91;;4734:2237;;;;;;-1:-1:-1;;;4734:2237:91;;;;;-1:-1:-1;;4734:2237:91;;;5578:15;6297:53;;;;;;;1594:4:2;6297:53:91;;;4734:2237;-1:-1:-1;4734:2237:91;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;6278:72;4734:2237;;6278:72;4734:2237;;;;;;;;;;;6278:72;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;1594:4:2;4734:2237:91;;;;;;-1:-1:-1;;;4734:2237:91;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4734:2237:91;;;;;;-1:-1:-1;4734:2237:91;;;;1594:4:2;4734:2237:91;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6278:72;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;5642:86;4734:2237;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;3201:4:5;4734:2237:91;;1594:4:2;4734:2237:91;6297:53;;;;;;1594:4:2;6297:53:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;4734:2237;;;1594:4:2;4734:2237:91;;;;;;1594:4:2;4734:2237:91;1594:4:2;4734:2237:91;-1:-1:-1;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4734:2237:91;;;;;;-1:-1:-1;4734:2237:91;;;;1594:4:2;4734:2237:91;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6197:71;1594:4:2;4734:2237:91;;;;;;5642:86;4734:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6217:51;;;;;;1594:4:2;6217:51:91;;;;;;:::i;:::-;;;;4734:2237;1594:4:2;4734:2237:91;1594:4:2;4734:2237:91;-1:-1:-1;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4734:2237:91;;;;;;-1:-1:-1;4734:2237:91;;;;1594:4:2;4734:2237:91;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6107:80;1594:4:2;4734:2237:91;;;;;;5642:86;4734:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6130:57;;;;;;1594:4:2;6130:57:91;;;;;;:::i;:::-;;;;4734:2237;1594:4:2;4734:2237:91;1594:4:2;4734:2237:91;-1:-1:-1;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4734:2237:91;;;;;;-1:-1:-1;4734:2237:91;;;;1594:4:2;4734:2237:91;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6021:76;1594:4:2;4734:2237:91;;;;;;5642:86;4734:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6042:55;;;;;;1594:4:2;6042:55:91;;;;;;:::i;:::-;;;;4734:2237;1594:4:2;4734:2237:91;1594:4:2;4734:2237:91;-1:-1:-1;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4734:2237:91;;;;;;-1:-1:-1;4734:2237:91;;;;1594:4:2;4734:2237:91;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;-1:-1:-1;;;;;;;;;;;4734:2237:91;;;;5642:86;4734:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5957:54;;;;;;1594:4:2;5957:54:91;;;;;;:::i;:::-;;;;4734:2237;1594:4:2;4734:2237:91;1594:4:2;4734:2237:91;-1:-1:-1;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4734:2237:91;;;;;;-1:-1:-1;4734:2237:91;;;;1594:4:2;4734:2237:91;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5838:88;1594:4:2;4734:2237:91;;;;;;5642:86;4734:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5871:55;;;;;;1594:4:2;5871:55:91;;;;;;:::i;:::-;;;;4734:2237;1594:4:2;4734:2237:91;1594:4:2;4734:2237:91;-1:-1:-1;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4734:2237:91;;;;;;-1:-1:-1;4734:2237:91;;;;1594:4:2;4734:2237:91;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5738:90;1594:4:2;4734:2237:91;;;;;;5642:86;4734:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5772:56;;;;;;1594:4:2;5772:56:91;;;;;;:::i;:::-;;;;4734:2237;1594:4:2;4734:2237:91;1594:4:2;4734:2237:91;-1:-1:-1;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4734:2237:91;;;;;;-1:-1:-1;4734:2237:91;;;;1594:4:2;4734:2237:91;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5642:86;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;5642:86;4734:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5674:54;;;;;;1594:4:2;5674:54:91;;;;;;:::i;:::-;;;;4734:2237;;1594:4:2;4734:2237:91;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4734:2237:91;;;;;;-1:-1:-1;4734:2237:91;;;;1594:4:2;4734:2237:91;;;;;;;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5546:86;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4734:2237:91;;1594:4:2;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;5578:54;;;;;;1594:4:2;5578:54:91;;;;;;:::i;:::-;;;;4734:2237;;;;;;;;;-1:-1:-1;;4734:2237:91;;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;4734:2237:91;;;;;;;;;;;;;;;","linkReferences":{"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":93,"length":20},{"start":294,"length":20},{"start":505,"length":20},{"start":716,"length":20},{"start":916,"length":20},{"start":1137,"length":20},{"start":1348,"length":20},{"start":1545,"length":20},{"start":1744,"length":20}]}}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220fd7f2c40c408aeb10f6a407f74a62c9fd11c0bdf817f7ab2a54614daf741467264736f6c63430008130033","sourceMap":"4734:2237:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;4734:2237:91;;;;:::i;:::-;;1671:64:2;4734:2237:91;;1671:64:2;;;:::i;:::-;4734:2237:91;;;1982:18:8;4734:2237:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4734:2237:91;;;;;;;;-1:-1:-1;4734:2237:91;;;;;-1:-1:-1;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4734:2237:91;;;;;-1:-1:-1;4734:2237:91;;;;;;;;;-1:-1:-1;4734:2237:91;;;;-1:-1:-1;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;4734:2237:91;;;;:::i;:::-;;1671:64:2;4734:2237:91;;1671:64:2;;;:::i;:::-;4734:2237:91;;;2899:18:8;4734:2237:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;4734:2237:91;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4734:2237:91;;;;;;;;;;;;-1:-1:-1;;;;;;4734:2237:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4734:2237:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4734:2237:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4734:2237:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4734:2237:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4734:2237:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;4734:2237:91;;;;:::i;:::-;;1671:64:2;4734:2237:91;;1671:64:2;;;:::i;:::-;4734:2237:91;;;2416:18:8;4734:2237:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4734:2237:91;;;;;;;;-1:-1:-1;4734:2237:91;;;;;-1:-1:-1;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4734:2237:91;;;;;-1:-1:-1;4734:2237:91;;;;;;;;;-1:-1:-1;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;4734:2237:91;;;;:::i;:::-;;1671:64:2;4734:2237:91;;1671:64:2;;;:::i;:::-;4734:2237:91;;;2592:26:8;4734:2237:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;4734:2237:91;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4734:2237:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4734:2237:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4734:2237:91;;;;;;;;;;;;;;;;;1671:64:2;4734:2237:91;1671:64:2;;;;;;;;;;;4734:2237:91;1671:64:2;:::o;:::-;4734:2237:91;;;1671:64:2;;;;;;;;;;4734:2237:91;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;4734:2237:91;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;4734:2237:91;;;2196:43:2;;;4734:2237:91;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;4734:2237:91;;-1:-1:-1;1671:64:2;;4734:2237:91;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;4734:2237:91;1671:64:2;2086:175;;;4734:2237:91;;;;;;1671:64:2;4734:2237:91;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;4734:2237:91;;;1671:64:2;4734:2237:91;;;-1:-1:-1;;4734:2237:91;2196:43:2;1671:64;4734:2237:91;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;4734:2237:91;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;4734:2237:91;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;4734:2237:91;1671:64:2;;;4734:2237:91;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;4734:2237:91;1671:64:2;4734:2237:91;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"TestGatewayActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402\",\"dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd\",\"dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3\",\"dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorCheckpointingFacet.sol\":{\"keccak256\":\"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a\",\"dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8\",\"dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm\"]},\"src/subnet/SubnetActorPauseFacet.sol\":{\"keccak256\":\"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14\",\"dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb\"]},\"src/subnet/SubnetActorRewardFacet.sol\":{\"keccak256\":\"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088\",\"dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0x67f2f3bb9cc8e8b503a8399df4c5c5cd86388257fc90451e5e352382fed9eaa6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be78f3e3535929f0b5955f2053bf409dd593d20b561a7f19efa917cdbef4bc28\",\"dweb:/ipfs/QmcwrfvXweJEEK8h2mdt9UtCpGg2WCWN8kRjc8M54sRyiv\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f\",\"dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorMock.sol\":{\"keccak256\":\"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43\",\"dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestGatewayActor"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa","urls":["bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402","dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6","urls":["bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd","dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451","urls":["bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3","dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorCheckpointingFacet.sol":{"keccak256":"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96","urls":["bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a","dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c","urls":["bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8","dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorPauseFacet.sol":{"keccak256":"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49","urls":["bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14","dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorRewardFacet.sol":{"keccak256":"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435","urls":["bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088","dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0x67f2f3bb9cc8e8b503a8399df4c5c5cd86388257fc90451e5e352382fed9eaa6","urls":["bzz-raw://be78f3e3535929f0b5955f2053bf409dd593d20b561a7f19efa917cdbef4bc28","dweb:/ipfs/QmcwrfvXweJEEK8h2mdt9UtCpGg2WCWN8kRjc8M54sRyiv"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d","urls":["bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f","dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorMock.sol":{"keccak256":"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a","urls":["bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43","dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55677,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49885],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49927],"CrossMsgHelper":[40725],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49951],"FvmAddressHelper":[40906],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50157],"IntegrationTestBase":[55676],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49871],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50118],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52286],"SelectorLibrary":[56636],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49944],"StorableMsgHelper":[47414],"Subnet":[50044],"SubnetActorCheckpointingFacet":[50577],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[51235],"SubnetActorManagerFacet":[51946],"SubnetActorMock":[58342],"SubnetActorPauseFacet":[51991],"SubnetActorRewardFacet":[52158],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52524],"SubnetID":[50030],"SubnetIDHelper":[48025],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50182],"SupplySource":[50179],"SupplySourceHelper":[48351],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52925],"TestParams":[52696],"TestRegistry":[52760],"TestSubnetActor":[53089],"TestUtils":[57424],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50164],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:35596:91","nodes":[{"id":52526,"nodeType":"PragmaDirective","src":"46:23:91","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52527,"nodeType":"ImportDirective","src":"71:28:91","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52528,"nodeType":"ImportDirective","src":"100:36:91","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"137:37:91","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52532,"nodeType":"ImportDirective","src":"176:72:91","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52530,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"249:61:91","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52533,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"311:56:91","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52535,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52541,"nodeType":"ImportDirective","src":"368:102:91","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":52537,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"376:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"386:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"406:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"419:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52543,"nodeType":"ImportDirective","src":"471:57:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":52542,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"479:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52552,"nodeType":"ImportDirective","src":"529:140:91","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":52544,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"537:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52545,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"547:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52546,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"559:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52547,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"575:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52548,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"591:6:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52549,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"599:12:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52550,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"613:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52551,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"625:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52554,"nodeType":"ImportDirective","src":"670:61:91","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":52553,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"678:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52556,"nodeType":"ImportDirective","src":"732:65:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40907,"symbolAliases":[{"foreign":{"id":52555,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"740:16:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52558,"nodeType":"ImportDirective","src":"798:61:91","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":52557,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"806:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52560,"nodeType":"ImportDirective","src":"860:67:91","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":52559,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"868:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52562,"nodeType":"ImportDirective","src":"928:56:91","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52561,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52564,"nodeType":"ImportDirective","src":"985:57:91","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52563,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52566,"nodeType":"ImportDirective","src":"1043:65:91","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52565,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52568,"nodeType":"ImportDirective","src":"1109:73:91","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52567,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52570,"nodeType":"ImportDirective","src":"1183:79:91","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52569,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52572,"nodeType":"ImportDirective","src":"1263:75:91","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52571,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52574,"nodeType":"ImportDirective","src":"1340:80:91","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52573,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52576,"nodeType":"ImportDirective","src":"1421:80:91","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52575,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52578,"nodeType":"ImportDirective","src":"1502:84:91","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52577,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52580,"nodeType":"ImportDirective","src":"1587:82:91","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52579,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52582,"nodeType":"ImportDirective","src":"1671:60:91","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"./mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":58343,"symbolAliases":[{"foreign":{"id":52581,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58342,"src":"1679:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52584,"nodeType":"ImportDirective","src":"1732:82:91","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":52583,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"1740:23:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52586,"nodeType":"ImportDirective","src":"1815:78:91","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":52585,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"1823:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52588,"nodeType":"ImportDirective","src":"1894:94:91","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":52587,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"1902:29:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52590,"nodeType":"ImportDirective","src":"1989:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":52589,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"1997:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52592,"nodeType":"ImportDirective","src":"2070:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":52591,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"2078:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52594,"nodeType":"ImportDirective","src":"2152:71:91","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52593,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"2160:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52596,"nodeType":"ImportDirective","src":"2224:82:91","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":52595,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"2232:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52598,"nodeType":"ImportDirective","src":"2307:78:91","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":52597,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"2315:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52600,"nodeType":"ImportDirective","src":"2387:71:91","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52599,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2395:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52602,"nodeType":"ImportDirective","src":"2459:67:91","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52601,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2467:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52604,"nodeType":"ImportDirective","src":"2527:69:91","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":52603,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"2535:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52606,"nodeType":"ImportDirective","src":"2597:50:91","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":57425,"symbolAliases":[{"foreign":{"id":52605,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57424,"src":"2605:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52608,"nodeType":"ImportDirective","src":"2648:62:91","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":56637,"symbolAliases":[{"foreign":{"id":52607,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"2656:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52696,"nodeType":"ContractDefinition","src":"2712:1194:91","nodes":[{"id":52615,"nodeType":"VariableDeclaration","src":"2738:44:91","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2754:9:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2738:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2771:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52611,"name":"uint64","nodeType":"ElementaryTypeName","src":"2771:6:91","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52610,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2766:4:91","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2766:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2779:3:91","memberName":"max","nodeType":"MemberAccess","src":"2766:16:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52621,"nodeType":"VariableDeclaration","src":"2788:91:91","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2805:20:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52616,"name":"address","nodeType":"ElementaryTypeName","src":"2788:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2836:42:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2828:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52617,"name":"address","nodeType":"ElementaryTypeName","src":"2828:7:91","typeDescriptions":{}}},"id":52620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2828:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52624,"nodeType":"VariableDeclaration","src":"2885:42:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2901:22:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52622,"name":"uint64","nodeType":"ElementaryTypeName","src":"2885:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2926:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52627,"nodeType":"VariableDeclaration","src":"2933:54:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2950:27:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52625,"name":"uint256","nodeType":"ElementaryTypeName","src":"2933:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2980:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52630,"nodeType":"VariableDeclaration","src":"2993:47:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"3008:27:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52628,"name":"uint8","nodeType":"ElementaryTypeName","src":"2993:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:2:91","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52633,"nodeType":"VariableDeclaration","src":"3046:51:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"3062:25:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52631,"name":"uint64","nodeType":"ElementaryTypeName","src":"3046:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3090:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52636,"nodeType":"VariableDeclaration","src":"3103:46:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"3119:25:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52634,"name":"uint64","nodeType":"ElementaryTypeName","src":"3103:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52639,"nodeType":"VariableDeclaration","src":"3155:44:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"3171:16:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52637,"name":"string","nodeType":"ElementaryTypeName","src":"3155:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3190:9:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52642,"nodeType":"VariableDeclaration","src":"3205:36:91","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"3220:7:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52640,"name":"bytes","nodeType":"ElementaryTypeName","src":"3205:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52641,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3230:11:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52645,"nodeType":"VariableDeclaration","src":"3247:48:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3264:21:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52643,"name":"uint256","nodeType":"ElementaryTypeName","src":"3247:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52648,"nodeType":"VariableDeclaration","src":"3301:49:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3318:22:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52646,"name":"uint256","nodeType":"ElementaryTypeName","src":"3301:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3343:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52654,"nodeType":"VariableDeclaration","src":"3356:52:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3373:21:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52649,"name":"address","nodeType":"ElementaryTypeName","src":"3356:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3405:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3397:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52650,"name":"address","nodeType":"ElementaryTypeName","src":"3397:7:91","typeDescriptions":{}}},"id":52653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3397:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52660,"nodeType":"VariableDeclaration","src":"3414:54:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3431:23:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52655,"name":"address","nodeType":"ElementaryTypeName","src":"3414:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3465:2:91","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3457:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52656,"name":"address","nodeType":"ElementaryTypeName","src":"3457:7:91","typeDescriptions":{}}},"id":52659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3457:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52665,"nodeType":"VariableDeclaration","src":"3474:57:91","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3490:9:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52661,"name":"uint64","nodeType":"ElementaryTypeName","src":"3474:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3502:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52663,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"3506:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3502:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52668,"nodeType":"VariableDeclaration","src":"3537:50:91","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3554:23:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3537:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3580:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52671,"nodeType":"VariableDeclaration","src":"3593:53:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3609:31:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52669,"name":"uint16","nodeType":"ElementaryTypeName","src":"3593:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3643:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52674,"nodeType":"VariableDeclaration","src":"3652:38:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3666:19:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52672,"name":"int8","nodeType":"ElementaryTypeName","src":"3652:4:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3688:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52677,"nodeType":"VariableDeclaration","src":"3696:37:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3712:15:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52675,"name":"uint64","nodeType":"ElementaryTypeName","src":"3696:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3730:3:91","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52683,"nodeType":"VariableDeclaration","src":"3739:45:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3756:15:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3782:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3774:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52679,"name":"address","nodeType":"ElementaryTypeName","src":"3774:7:91","typeDescriptions":{}}},"id":52682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52689,"nodeType":"VariableDeclaration","src":"3790:57:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3807:24:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52684,"name":"address","nodeType":"ElementaryTypeName","src":"3790:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3842:4:91","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3834:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52685,"name":"address","nodeType":"ElementaryTypeName","src":"3834:7:91","typeDescriptions":{}}},"id":52688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52695,"nodeType":"VariableDeclaration","src":"3853:50:91","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3870:19:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52690,"name":"address","nodeType":"ElementaryTypeName","src":"3853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3900:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3892:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52691,"name":"address","nodeType":"ElementaryTypeName","src":"3892:7:91","typeDescriptions":{}}},"id":52694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3892:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52696],"name":"TestParams","nameLocation":"2721:10:91","scope":55677,"usedErrors":[]},{"id":52760,"nodeType":"ContractDefinition","src":"3908:824:91","nodes":[{"id":52703,"nodeType":"VariableDeclaration","src":"3956:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3965:28:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52701,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3956:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52702,"nodeType":"ArrayTypeName","src":"3956:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52706,"nodeType":"VariableDeclaration","src":"3999:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"4008:34:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52704,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3999:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52705,"nodeType":"ArrayTypeName","src":"3999:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52709,"nodeType":"VariableDeclaration","src":"4048:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"4057:23:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52707,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4048:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52708,"nodeType":"ArrayTypeName","src":"4048:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52712,"nodeType":"VariableDeclaration","src":"4086:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"4095:23:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52710,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4086:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52711,"nodeType":"ArrayTypeName","src":"4086:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52715,"nodeType":"VariableDeclaration","src":"4125:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"4147:15:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52714,"nodeType":"UserDefinedTypeName","pathNode":{"id":52713,"name":"SubnetRegistryDiamond","nameLocations":["4125:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"4125:21:91"},"referencedDeclaration":36853,"src":"4125:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52718,"nodeType":"VariableDeclaration","src":"4168:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"4186:14:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52717,"nodeType":"UserDefinedTypeName","pathNode":{"id":52716,"name":"DiamondLoupeFacet","nameLocations":["4168:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"4168:17:91"},"referencedDeclaration":37355,"src":"4168:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52721,"nodeType":"VariableDeclaration","src":"4206:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"4222:14:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52720,"nodeType":"UserDefinedTypeName","pathNode":{"id":52719,"name":"DiamondCutFacet","nameLocations":["4206:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"4206:15:91"},"referencedDeclaration":36918,"src":"4206:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52724,"nodeType":"VariableDeclaration","src":"4242:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4262:19:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52723,"nodeType":"UserDefinedTypeName","pathNode":{"id":52722,"name":"RegisterSubnetFacet","nameLocations":["4242:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"4242:19:91"},"referencedDeclaration":52286,"src":"4242:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52727,"nodeType":"VariableDeclaration","src":"4287:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4305:25:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52726,"nodeType":"UserDefinedTypeName","pathNode":{"id":52725,"name":"SubnetGetterFacet","nameLocations":["4287:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"4287:17:91"},"referencedDeclaration":52524,"src":"4287:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52759,"nodeType":"FunctionDefinition","src":"4337:393:91","nodes":[],"body":{"id":52758,"nodeType":"Block","src":"4351:379:91","nodes":[],"statements":[{"expression":{"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52730,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52703,"src":"4361:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4425:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52731,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4392:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4408:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4392:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4392:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4361:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52736,"nodeType":"ExpressionStatement","src":"4361:86:91"},{"expression":{"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52737,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"4457:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4527:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52738,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4494:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4510:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4494:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4494:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4457:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52743,"nodeType":"ExpressionStatement","src":"4457:90:91"},{"expression":{"id":52749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52744,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"4557:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4616:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52745,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4583:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4599:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4583:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4583:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4557:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52750,"nodeType":"ExpressionStatement","src":"4557:77:91"},{"expression":{"id":52756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52751,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"4644:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4703:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52752,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4670:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4686:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4670:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4670:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4644:79:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52757,"nodeType":"ExpressionStatement","src":"4644:79:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52728,"nodeType":"ParameterList","parameters":[],"src":"4348:2:91"},"returnParameters":{"id":52729,"nodeType":"ParameterList","parameters":[],"src":"4351:0:91"},"scope":52760,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52697,"name":"Test","nameLocations":["3933:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3933:4:91"},"id":52698,"nodeType":"InheritanceSpecifier","src":"3933:4:91"},{"baseName":{"id":52699,"name":"TestParams","nameLocations":["3939:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"3939:10:91"},"id":52700,"nodeType":"InheritanceSpecifier","src":"3939:10:91"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52760,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3917:12:91","scope":55677,"usedErrors":[]},{"id":52925,"nodeType":"ContractDefinition","src":"4734:2237:91","nodes":[{"id":52767,"nodeType":"VariableDeclaration","src":"4786:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4795:29:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52765,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4786:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52766,"nodeType":"ArrayTypeName","src":"4786:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52770,"nodeType":"VariableDeclaration","src":"4830:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4839:29:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52768,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4830:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52769,"nodeType":"ArrayTypeName","src":"4830:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52773,"nodeType":"VariableDeclaration","src":"4874:40:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4883:31:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52771,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4874:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52772,"nodeType":"ArrayTypeName","src":"4874:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52776,"nodeType":"VariableDeclaration","src":"4920:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4929:30:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52774,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4920:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52775,"nodeType":"ArrayTypeName","src":"4920:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52779,"nodeType":"VariableDeclaration","src":"4966:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4975:18:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52777,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4966:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52778,"nodeType":"ArrayTypeName","src":"4966:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52782,"nodeType":"VariableDeclaration","src":"4999:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"5008:17:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52780,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4999:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52781,"nodeType":"ArrayTypeName","src":"4999:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52785,"nodeType":"VariableDeclaration","src":"5031:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"5040:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52783,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5031:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52784,"nodeType":"ArrayTypeName","src":"5031:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52788,"nodeType":"VariableDeclaration","src":"5067:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"5076:17:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52786,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5067:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52787,"nodeType":"ArrayTypeName","src":"5067:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52791,"nodeType":"VariableDeclaration","src":"5099:25:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"5108:16:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52789,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5099:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52790,"nodeType":"ArrayTypeName","src":"5099:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52794,"nodeType":"VariableDeclaration","src":"5131:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"5146:14:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52793,"nodeType":"UserDefinedTypeName","pathNode":{"id":52792,"name":"GatewayDiamond","nameLocations":["5131:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"5131:14:91"},"referencedDeclaration":36170,"src":"5131:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52797,"nodeType":"VariableDeclaration","src":"5166:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"5186:9:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52796,"nodeType":"UserDefinedTypeName","pathNode":{"id":52795,"name":"GatewayManagerFacet","nameLocations":["5166:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"5166:19:91"},"referencedDeclaration":38870,"src":"5166:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52800,"nodeType":"VariableDeclaration","src":"5201:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"5220:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52799,"nodeType":"UserDefinedTypeName","pathNode":{"id":52798,"name":"GatewayGetterFacet","nameLocations":["5201:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"5201:18:91"},"referencedDeclaration":38317,"src":"5201:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52803,"nodeType":"VariableDeclaration","src":"5234:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5253:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52802,"nodeType":"UserDefinedTypeName","pathNode":{"id":52801,"name":"CheckpointingFacet","nameLocations":["5234:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5234:18:91"},"referencedDeclaration":39870,"src":"5234:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52806,"nodeType":"VariableDeclaration","src":"5279:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5298:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52805,"nodeType":"UserDefinedTypeName","pathNode":{"id":52804,"name":"XnetMessagingFacet","nameLocations":["5279:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5279:18:91"},"referencedDeclaration":40144,"src":"5279:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52809,"nodeType":"VariableDeclaration","src":"5324:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5345:22:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52808,"nodeType":"UserDefinedTypeName","pathNode":{"id":52807,"name":"TopDownFinalityFacet","nameLocations":["5324:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5324:20:91"},"referencedDeclaration":40071,"src":"5324:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52812,"nodeType":"VariableDeclaration","src":"5373:41:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5393:21:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52811,"nodeType":"UserDefinedTypeName","pathNode":{"id":52810,"name":"BottomUpRouterFacet","nameLocations":["5373:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5373:19:91"},"referencedDeclaration":39601,"src":"5373:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52815,"nodeType":"VariableDeclaration","src":"5420:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5442:11:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52814,"nodeType":"UserDefinedTypeName","pathNode":{"id":52813,"name":"GatewayMessengerFacet","nameLocations":["5420:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5420:21:91"},"referencedDeclaration":39235,"src":"5420:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52818,"nodeType":"VariableDeclaration","src":"5459:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5475:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52817,"nodeType":"UserDefinedTypeName","pathNode":{"id":52816,"name":"DiamondCutFacet","nameLocations":["5459:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5459:15:91"},"referencedDeclaration":36918,"src":"5459:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52821,"nodeType":"VariableDeclaration","src":"5489:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5507:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52820,"nodeType":"UserDefinedTypeName","pathNode":{"id":52819,"name":"DiamondLoupeFacet","nameLocations":["5489:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5489:17:91"},"referencedDeclaration":37355,"src":"5489:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52888,"nodeType":"FunctionDefinition","src":"5522:835:91","nodes":[],"body":{"id":52887,"nodeType":"Block","src":"5536:821:91","nodes":[],"statements":[{"expression":{"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52824,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52767,"src":"5546:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5611:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52825,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5578:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5594:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5578:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5546:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52830,"nodeType":"ExpressionStatement","src":"5546:86:91"},{"expression":{"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52831,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52770,"src":"5642:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5707:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52832,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5674:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5690:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5674:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5674:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5642:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52837,"nodeType":"ExpressionStatement","src":"5642:86:91"},{"expression":{"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52838,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52773,"src":"5738:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5805:22:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52839,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5772:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5788:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5772:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5772:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5738:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52844,"nodeType":"ExpressionStatement","src":"5738:90:91"},{"expression":{"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52845,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"5838:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5904:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52846,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5871:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5887:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5871:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5871:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5838:88:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52851,"nodeType":"ExpressionStatement","src":"5838:88:91"},{"expression":{"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52852,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52782,"src":"5937:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5990:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52853,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5957:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5973:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5957:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5957:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5937:74:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52858,"nodeType":"ExpressionStatement","src":"5937:74:91"},{"expression":{"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52859,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52779,"src":"6021:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6075:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52860,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6042:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6058:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6042:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6042:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6021:76:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52865,"nodeType":"ExpressionStatement","src":"6021:76:91"},{"expression":{"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52866,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52785,"src":"6107:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6163:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52867,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6130:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6146:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6130:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6130:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6107:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52872,"nodeType":"ExpressionStatement","src":"6107:80:91"},{"expression":{"id":52878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52873,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52788,"src":"6197:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6250:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52874,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6217:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6233:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6217:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6217:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6197:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52879,"nodeType":"ExpressionStatement","src":"6197:71:91"},{"expression":{"id":52885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52880,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52791,"src":"6278:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6330:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52881,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6297:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6313:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6297:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6297:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6278:72:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52886,"nodeType":"ExpressionStatement","src":"6278:72:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52822,"nodeType":"ParameterList","parameters":[],"src":"5533:2:91"},"returnParameters":{"id":52823,"nodeType":"ParameterList","parameters":[],"src":"5536:0:91"},"scope":52925,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52924,"nodeType":"FunctionDefinition","src":"6363:606:91","nodes":[],"body":{"id":52923,"nodeType":"Block","src":"6467:502:91","nodes":[],"statements":[{"assignments":[52898],"declarations":[{"constant":false,"id":52898,"mutability":"mutable","name":"params","nameLocation":"6517:6:91","nodeType":"VariableDeclaration","scope":52923,"src":"6477:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52897,"nodeType":"UserDefinedTypeName","pathNode":{"id":52896,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6477:14:91","6492:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6477:32:91"},"referencedDeclaration":35883,"src":"6477:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52920,"initialValue":{"arguments":[{"arguments":[{"id":52902,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"6602:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6640:1:91","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":52905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6626:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52903,"name":"address","nodeType":"ElementaryTypeName","src":"6630:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52904,"nodeType":"ArrayTypeName","src":"6630:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6626:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52901,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"6586:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6596:4:91","6619:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"6586:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52909,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"6679:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52910,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"6726:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52911,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52630,"src":"6781:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6857:1:91","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":52915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6841:15:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52913,"nodeType":"UserDefinedTypeName","pathNode":{"id":52912,"name":"Validator","nameLocations":["6845:9:91"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"6845:9:91"},"referencedDeclaration":50164,"src":"6845:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":52914,"nodeType":"ArrayTypeName","src":"6845:11:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6841:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52918,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"6896:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52899,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6526:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6541:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6526:32:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6573:11:91","6658:19:91","6718:6:91","6761:18:91","6822:17:91","6873:21:91"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6526:412:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6477:461:91"},{"expression":{"id":52921,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"6956:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52893,"id":52922,"nodeType":"Return","src":"6949:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6372:20:91","parameters":{"id":52889,"nodeType":"ParameterList","parameters":[],"src":"6392:2:91"},"returnParameters":{"id":52893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52924,"src":"6426:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52891,"nodeType":"UserDefinedTypeName","pathNode":{"id":52890,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6426:14:91","6441:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6426:32:91"},"referencedDeclaration":35883,"src":"6426:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6425:41:91"},"scope":52925,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52761,"name":"Test","nameLocations":["4763:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4763:4:91"},"id":52762,"nodeType":"InheritanceSpecifier","src":"4763:4:91"},{"baseName":{"id":52763,"name":"TestParams","nameLocations":["4769:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"4769:10:91"},"id":52764,"nodeType":"InheritanceSpecifier","src":"4769:10:91"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52925,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4743:16:91","scope":55677,"usedErrors":[]},{"id":53089,"nodeType":"ContractDefinition","src":"6973:2395:91","nodes":[{"id":52932,"nodeType":"VariableDeclaration","src":"7024:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"7033:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52930,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7024:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52931,"nodeType":"ArrayTypeName","src":"7024:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52935,"nodeType":"VariableDeclaration","src":"7056:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"7065:18:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52933,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7056:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52934,"nodeType":"ArrayTypeName","src":"7056:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52938,"nodeType":"VariableDeclaration","src":"7089:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauserSelectors","nameLocation":"7098:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52936,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7089:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52937,"nodeType":"ArrayTypeName","src":"7089:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52941,"nodeType":"VariableDeclaration","src":"7121:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarderSelectors","nameLocation":"7130:19:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52939,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7121:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52940,"nodeType":"ArrayTypeName","src":"7121:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52944,"nodeType":"VariableDeclaration","src":"7155:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointerSelectors","nameLocation":"7164:23:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52942,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7155:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52943,"nodeType":"ArrayTypeName","src":"7155:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52947,"nodeType":"VariableDeclaration","src":"7193:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"7202:24:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52945,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7193:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52946,"nodeType":"ArrayTypeName","src":"7193:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52950,"nodeType":"VariableDeclaration","src":"7232:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"7241:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52948,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7232:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52949,"nodeType":"ArrayTypeName","src":"7232:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52953,"nodeType":"VariableDeclaration","src":"7264:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"7273:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52951,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7264:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52952,"nodeType":"ArrayTypeName","src":"7264:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52956,"nodeType":"VariableDeclaration","src":"7297:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"7316:9:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52955,"nodeType":"UserDefinedTypeName","pathNode":{"id":52954,"name":"SubnetActorDiamond","nameLocations":["7297:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"7297:18:91"},"referencedDeclaration":36615,"src":"7297:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52959,"nodeType":"VariableDeclaration","src":"7331:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7355:9:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52958,"nodeType":"UserDefinedTypeName","pathNode":{"id":52957,"name":"SubnetActorManagerFacet","nameLocations":["7331:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"7331:23:91"},"referencedDeclaration":51946,"src":"7331:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52962,"nodeType":"VariableDeclaration","src":"7370:22:91","nodes":[],"constant":false,"mutability":"mutable","name":"saMock","nameLocation":"7386:6:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"},"typeName":{"id":52961,"nodeType":"UserDefinedTypeName","pathNode":{"id":52960,"name":"SubnetActorMock","nameLocations":["7370:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"7370:15:91"},"referencedDeclaration":58342,"src":"7370:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"visibility":"internal"},{"id":52965,"nodeType":"VariableDeclaration","src":"7398:31:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7421:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52964,"nodeType":"UserDefinedTypeName","pathNode":{"id":52963,"name":"SubnetActorGetterFacet","nameLocations":["7398:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"7398:22:91"},"referencedDeclaration":51235,"src":"7398:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52968,"nodeType":"VariableDeclaration","src":"7435:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarder","nameLocation":"7458:10:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":52967,"nodeType":"UserDefinedTypeName","pathNode":{"id":52966,"name":"SubnetActorRewardFacet","nameLocations":["7435:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"7435:22:91"},"referencedDeclaration":52158,"src":"7435:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"},{"id":52971,"nodeType":"VariableDeclaration","src":"7474:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauser","nameLocation":"7496:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":52970,"nodeType":"UserDefinedTypeName","pathNode":{"id":52969,"name":"SubnetActorPauseFacet","nameLocations":["7474:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"7474:21:91"},"referencedDeclaration":51991,"src":"7474:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"},{"id":52974,"nodeType":"VariableDeclaration","src":"7510:44:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointer","nameLocation":"7540:14:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":52973,"nodeType":"UserDefinedTypeName","pathNode":{"id":52972,"name":"SubnetActorCheckpointingFacet","nameLocations":["7510:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"7510:29:91"},"referencedDeclaration":50577,"src":"7510:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"},{"id":52977,"nodeType":"VariableDeclaration","src":"7561:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7577:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52976,"nodeType":"UserDefinedTypeName","pathNode":{"id":52975,"name":"DiamondCutFacet","nameLocations":["7561:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7561:15:91"},"referencedDeclaration":36918,"src":"7561:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52980,"nodeType":"VariableDeclaration","src":"7591:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7609:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52979,"nodeType":"UserDefinedTypeName","pathNode":{"id":52978,"name":"DiamondLoupeFacet","nameLocations":["7591:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7591:17:91"},"referencedDeclaration":37355,"src":"7591:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":53040,"nodeType":"FunctionDefinition","src":"7624:729:91","nodes":[],"body":{"id":53039,"nodeType":"Block","src":"7638:715:91","nodes":[],"statements":[{"expression":{"id":52988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52983,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"7648:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7701:24:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52984,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7668:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7684:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7668:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7668:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7648:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52989,"nodeType":"ExpressionStatement","src":"7648:78:91"},{"expression":{"id":52995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52990,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"7736:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7790:25:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52991,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7757:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7773:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7757:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7757:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7736:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52996,"nodeType":"ExpressionStatement","src":"7736:80:91"},{"expression":{"id":53002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52997,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"7826:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":53000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7879:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""},"value":"SubnetActorPauseFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""}],"expression":{"id":52998,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7846:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7862:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7846:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7846:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7826:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53003,"nodeType":"ExpressionStatement","src":"7826:77:91"},{"expression":{"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53004,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"7913:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":53007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7968:24:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""},"value":"SubnetActorRewardFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""}],"expression":{"id":53005,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7935:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7951:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7935:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7935:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7913:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53010,"nodeType":"ExpressionStatement","src":"7913:80:91"},{"expression":{"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53011,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"8003:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":53014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8062:31:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""},"value":"SubnetActorCheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""}],"expression":{"id":53012,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8029:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8045:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8029:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8029:65:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8003:91:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53017,"nodeType":"ExpressionStatement","src":"8003:91:91"},{"expression":{"id":53023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53018,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"8104:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":53021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8164:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""},"value":"SubnetActorMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""}],"expression":{"id":53019,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8131:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8131:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8131:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8104:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53024,"nodeType":"ExpressionStatement","src":"8104:78:91"},{"expression":{"id":53030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53025,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"8192:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":53028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8245:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":53026,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8212:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8228:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8212:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8212:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8192:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53031,"nodeType":"ExpressionStatement","src":"8192:71:91"},{"expression":{"id":53037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53032,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"8273:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":53035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8326:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":53033,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8293:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8309:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8293:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8293:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8273:73:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53038,"nodeType":"ExpressionStatement","src":"8273:73:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52981,"nodeType":"ParameterList","parameters":[],"src":"7635:2:91"},"returnParameters":{"id":52982,"nodeType":"ParameterList","parameters":[],"src":"7638:0:91"},"scope":53089,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53088,"nodeType":"FunctionDefinition","src":"8359:1007:91","nodes":[],"body":{"id":53087,"nodeType":"Block","src":"8506:860:91","nodes":[],"statements":[{"assignments":[53050],"declarations":[{"constant":false,"id":53050,"mutability":"mutable","name":"native","nameLocation":"8536:6:91","nodeType":"VariableDeclaration","scope":53087,"src":"8516:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":53049,"nodeType":"UserDefinedTypeName","pathNode":{"id":53048,"name":"SupplySource","nameLocations":["8516:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"8516:12:91"},"referencedDeclaration":50179,"src":"8516:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53054,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53051,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"8545:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":53052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8564:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"8545:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8545:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"8516:56:91"},{"assignments":[53059],"declarations":[{"constant":false,"id":53059,"mutability":"mutable","name":"params","nameLocation":"8626:6:91","nodeType":"VariableDeclaration","scope":53087,"src":"8582:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8582:18:91","8601:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"8582:36:91"},"referencedDeclaration":36253,"src":"8582:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53084,"initialValue":{"arguments":[{"arguments":[{"id":53063,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"8712:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8750:1:91","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":53066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8736:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53064,"name":"address","nodeType":"ElementaryTypeName","src":"8740:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53065,"nodeType":"ArrayTypeName","src":"8740:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8736:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53062,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"8696:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8706:4:91","8729:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"8696:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53070,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53042,"src":"8784:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53071,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8811:13:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8825:10:91","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8811:24:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53073,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"8874:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53074,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52624,"src":"8928:22:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53075,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"8985:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53076,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52630,"src":"9044:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53077,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"9108:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53078,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52674,"src":"9165:19:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53079,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"9214:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53080,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"9265:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9280:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"9265:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":53082,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53050,"src":"9318:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53060,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"8635:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8654:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"8635:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8686:8:91","8768:14:91","8800:9:91","8849:23:91","8913:13:91","8964:19:91","9024:18:91","9085:21:91","9153:10:91","9198:14:91","9249:14:91","9304:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"8635:700:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8582:753:91"},{"expression":{"id":53085,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53059,"src":"9353:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":53047,"id":53086,"nodeType":"Return","src":"9346:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"8368:35:91","parameters":{"id":53043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53042,"mutability":"mutable","name":"gw","nameLocation":"8421:2:91","nodeType":"VariableDeclaration","scope":53088,"src":"8413:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53041,"name":"address","nodeType":"ElementaryTypeName","src":"8413:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8403:26:91"},"returnParameters":{"id":53047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53088,"src":"8461:43:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53045,"nodeType":"UserDefinedTypeName","pathNode":{"id":53044,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8461:18:91","8480:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"8461:36:91"},"referencedDeclaration":36253,"src":"8461:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"8460:45:91"},"scope":53089,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52926,"name":"Test","nameLocations":["7001:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"7001:4:91"},"id":52927,"nodeType":"InheritanceSpecifier","src":"7001:4:91"},{"baseName":{"id":52928,"name":"TestParams","nameLocations":["7007:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"7007:10:91"},"id":52929,"nodeType":"InheritanceSpecifier","src":"7007:10:91"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53089,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6982:15:91","scope":55677,"usedErrors":[]},{"id":55676,"nodeType":"ContractDefinition","src":"9370:26271:91","nodes":[{"id":53103,"nodeType":"UsingForDirective","src":"9474:34:91","nodes":[],"global":false,"libraryName":{"id":53100,"name":"SubnetIDHelper","nameLocations":["9480:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"9480:14:91"},"typeName":{"id":53102,"nodeType":"UserDefinedTypeName","pathNode":{"id":53101,"name":"SubnetID","nameLocations":["9499:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"9499:8:91"},"referencedDeclaration":50030,"src":"9499:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":53107,"nodeType":"UsingForDirective","src":"9513:42:91","nodes":[],"global":false,"libraryName":{"id":53104,"name":"SupplySourceHelper","nameLocations":["9519:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"9519:18:91"},"typeName":{"id":53106,"nodeType":"UserDefinedTypeName","pathNode":{"id":53105,"name":"SupplySource","nameLocations":["9542:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"9542:12:91"},"referencedDeclaration":50179,"src":"9542:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":53111,"nodeType":"UsingForDirective","src":"9560:34:91","nodes":[],"global":false,"libraryName":{"id":53108,"name":"CrossMsgHelper","nameLocations":["9566:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"9566:14:91"},"typeName":{"id":53110,"nodeType":"UserDefinedTypeName","pathNode":{"id":53109,"name":"CrossMsg","nameLocations":["9585:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"9585:8:91"},"referencedDeclaration":49927,"src":"9585:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53115,"nodeType":"UsingForDirective","src":"9599:40:91","nodes":[],"global":false,"libraryName":{"id":53112,"name":"StorableMsgHelper","nameLocations":["9605:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"9605:17:91"},"typeName":{"id":53114,"nodeType":"UserDefinedTypeName","pathNode":{"id":53113,"name":"StorableMsg","nameLocations":["9627:11:91"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"9627:11:91"},"referencedDeclaration":49944,"src":"9627:11:91","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53119,"nodeType":"UsingForDirective","src":"9644:38:91","nodes":[],"global":false,"libraryName":{"id":53116,"name":"FvmAddressHelper","nameLocations":["9650:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"9650:16:91"},"typeName":{"id":53118,"nodeType":"UserDefinedTypeName","pathNode":{"id":53117,"name":"FvmAddress","nameLocations":["9671:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"9671:10:91"},"referencedDeclaration":49951,"src":"9671:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53123,"nodeType":"EventDefinition","src":"9688:67:91","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"9694:21:91","parameters":{"id":53122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53121,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9732:21:91","nodeType":"VariableDeclaration","scope":53123,"src":"9716:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9716:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9715:39:91"}},{"id":53127,"nodeType":"FunctionDefinition","src":"9761:16:91","nodes":[],"body":{"id":53126,"nodeType":"Block","src":"9775:2:91","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53124,"nodeType":"ParameterList","parameters":[],"src":"9772:2:91"},"returnParameters":{"id":53125,"nodeType":"ParameterList","parameters":[],"src":"9775:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53329,"nodeType":"FunctionDefinition","src":"9783:1732:91","nodes":[],"body":{"id":53328,"nodeType":"Block","src":"9815:1700:91","nodes":[],"statements":[{"assignments":[53134],"declarations":[{"constant":false,"id":53134,"mutability":"mutable","name":"path","nameLocation":"9842:4:91","nodeType":"VariableDeclaration","scope":53328,"src":"9825:21:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53132,"name":"address","nodeType":"ElementaryTypeName","src":"9825:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53133,"nodeType":"ArrayTypeName","src":"9825:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53140,"initialValue":{"arguments":[{"hexValue":"31","id":53138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9863:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9849:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53135,"name":"address","nodeType":"ElementaryTypeName","src":"9853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53136,"nodeType":"ArrayTypeName","src":"9853:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9849:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9825:40:91"},{"expression":{"id":53145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53141,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"9875:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53143,"indexExpression":{"hexValue":"30","id":53142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9880:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9875:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53144,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52683,"src":"9885:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9875:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53146,"nodeType":"ExpressionStatement","src":"9875:25:91"},{"assignments":[53151],"declarations":[{"constant":false,"id":53151,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9993:19:91","nodeType":"VariableDeclaration","scope":53328,"src":"9953:59:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53150,"nodeType":"UserDefinedTypeName","pathNode":{"id":53149,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9953:14:91","9968:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9953:32:91"},"referencedDeclaration":35883,"src":"9953:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53154,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53152,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52924,"src":"10015:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10015:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9953:84:91"},{"expression":{"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10047:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53157,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53151,"src":"10085:19:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53156,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53588,"src":"10064:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10064:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"10047:58:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53160,"nodeType":"ExpressionStatement","src":"10047:58:91"},{"expression":{"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53161,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"10116:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53165,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10154:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10146:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53163,"name":"address","nodeType":"ElementaryTypeName","src":"10146:7:91","typeDescriptions":{}}},"id":53166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10146:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53162,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"10127:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10127:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"10116:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53169,"nodeType":"ExpressionStatement","src":"10116:54:91"},{"expression":{"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53170,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"10180:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53174,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10220:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53172,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:91","typeDescriptions":{}}},"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53171,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"10192:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10192:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"10180:56:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53178,"nodeType":"ExpressionStatement","src":"10180:56:91"},{"expression":{"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53179,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52803,"src":"10246:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53183,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10296:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10288:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53181,"name":"address","nodeType":"ElementaryTypeName","src":"10288:7:91","typeDescriptions":{}}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10288:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53180,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"10269:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10269:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"10246:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53187,"nodeType":"ExpressionStatement","src":"10246:66:91"},{"expression":{"id":53195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53188,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"10322:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53192,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10372:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10364:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53190,"name":"address","nodeType":"ElementaryTypeName","src":"10364:7:91","typeDescriptions":{}}},"id":53193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10364:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53189,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"10345:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10345:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"10322:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53196,"nodeType":"ExpressionStatement","src":"10322:66:91"},{"expression":{"id":53204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53197,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"10398:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53201,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10452:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10444:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53199,"name":"address","nodeType":"ElementaryTypeName","src":"10444:7:91","typeDescriptions":{}}},"id":53202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10444:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53198,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"10423:20:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10423:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"10398:70:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53205,"nodeType":"ExpressionStatement","src":"10398:70:91"},{"expression":{"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53206,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52812,"src":"10478:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53210,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10530:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10522:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53208,"name":"address","nodeType":"ElementaryTypeName","src":"10522:7:91","typeDescriptions":{}}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10522:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53207,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"10502:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10502:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"10478:68:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53214,"nodeType":"ExpressionStatement","src":"10478:68:91"},{"expression":{"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53215,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52815,"src":"10556:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53219,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10600:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10592:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53217,"name":"address","nodeType":"ElementaryTypeName","src":"10592:7:91","typeDescriptions":{}}},"id":53220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10592:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53216,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"10570:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10570:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"10556:60:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53223,"nodeType":"ExpressionStatement","src":"10556:60:91"},{"expression":{"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53224,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52821,"src":"10626:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53228,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10663:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10655:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53226,"name":"address","nodeType":"ElementaryTypeName","src":"10655:7:91","typeDescriptions":{}}},"id":53229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10655:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53225,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10637:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10637:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10626:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53232,"nodeType":"ExpressionStatement","src":"10626:53:91"},{"expression":{"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53233,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52818,"src":"10689:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53237,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10724:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10716:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53235,"name":"address","nodeType":"ElementaryTypeName","src":"10716:7:91","typeDescriptions":{}}},"id":53238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10716:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53234,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10700:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10700:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10689:51:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53241,"nodeType":"ExpressionStatement","src":"10689:51:91"},{"assignments":[53246],"declarations":[{"constant":false,"id":53246,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10849:19:91","nodeType":"VariableDeclaration","scope":53328,"src":"10805:63:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53245,"nodeType":"UserDefinedTypeName","pathNode":{"id":53244,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10805:18:91","10824:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10805:36:91"},"referencedDeclaration":36253,"src":"10805:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53253,"initialValue":{"arguments":[{"arguments":[{"id":53250,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10928:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10920:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53248,"name":"address","nodeType":"ElementaryTypeName","src":"10920:7:91","typeDescriptions":{}}},"id":53251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10920:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53247,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53088,"src":"10871:35:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10871:82:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10805:148:91"},{"expression":{"id":53258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53254,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"10964:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53256,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53246,"src":"10994:19:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53255,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53912,53941,54244],"referencedDeclaration":53912,"src":"10976:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10976:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10964:50:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53259,"nodeType":"ExpressionStatement","src":"10964:50:91"},{"expression":{"id":53267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53260,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"11024:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53264,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11068:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11060:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53262,"name":"address","nodeType":"ElementaryTypeName","src":"11060:7:91","typeDescriptions":{}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11060:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53261,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"11036:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11036:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"11024:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53268,"nodeType":"ExpressionStatement","src":"11024:55:91"},{"expression":{"id":53276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53269,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"11089:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53273,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11131:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11123:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53271,"name":"address","nodeType":"ElementaryTypeName","src":"11123:7:91","typeDescriptions":{}}},"id":53274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11123:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53270,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"11100:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11100:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"11089:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53277,"nodeType":"ExpressionStatement","src":"11089:53:91"},{"expression":{"id":53285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53278,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"11152:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53282,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11193:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11185:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53280,"name":"address","nodeType":"ElementaryTypeName","src":"11185:7:91","typeDescriptions":{}}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11185:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53279,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"11163:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":53284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11163:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"11152:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53286,"nodeType":"ExpressionStatement","src":"11152:52:91"},{"expression":{"id":53294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53287,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"11214:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53291,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11258:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11250:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53289,"name":"address","nodeType":"ElementaryTypeName","src":"11250:7:91","typeDescriptions":{}}},"id":53292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11250:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53288,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"11227:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":53293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"11214:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":53295,"nodeType":"ExpressionStatement","src":"11214:55:91"},{"expression":{"id":53303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53296,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"11279:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53300,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11334:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11326:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53298,"name":"address","nodeType":"ElementaryTypeName","src":"11326:7:91","typeDescriptions":{}}},"id":53301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11326:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53297,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"11296:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":53302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11296:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"11279:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":53304,"nodeType":"ExpressionStatement","src":"11279:66:91"},{"expression":{"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53305,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"11355:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53309,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11392:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11384:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53307,"name":"address","nodeType":"ElementaryTypeName","src":"11384:7:91","typeDescriptions":{}}},"id":53310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11384:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53306,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"11366:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11366:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"11355:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53313,"nodeType":"ExpressionStatement","src":"11355:48:91"},{"expression":{"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53314,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"11413:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53318,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11448:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11440:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53316,"name":"address","nodeType":"ElementaryTypeName","src":"11440:7:91","typeDescriptions":{}}},"id":53319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11440:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53315,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"11424:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11424:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"11413:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53322,"nodeType":"ExpressionStatement","src":"11413:46:91"},{"expression":{"arguments":[{"id":53324,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52695,"src":"11483:19:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11504:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53323,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54787,54870],"referencedDeclaration":54870,"src":"11470:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11470:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53327,"nodeType":"ExpressionStatement","src":"11470:38:91"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9792:5:91","parameters":{"id":53128,"nodeType":"ParameterList","parameters":[],"src":"9797:2:91"},"returnParameters":{"id":53129,"nodeType":"ParameterList","parameters":[],"src":"9815:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53588,"nodeType":"FunctionDefinition","src":"11521:3185:91","nodes":[],"body":{"id":53587,"nodeType":"Block","src":"11631:3075:91","nodes":[],"statements":[{"assignments":[53340],"declarations":[{"constant":false,"id":53340,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"11660:18:91","nodeType":"VariableDeclaration","scope":53587,"src":"11641:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53339,"nodeType":"UserDefinedTypeName","pathNode":{"id":53338,"name":"CheckpointingFacet","nameLocations":["11641:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11641:18:91"},"referencedDeclaration":39870,"src":"11641:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53345,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11681:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53342,"nodeType":"UserDefinedTypeName","pathNode":{"id":53341,"name":"CheckpointingFacet","nameLocations":["11685:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11685:18:91"},"referencedDeclaration":39870,"src":"11685:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11681:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11641:64:91"},{"assignments":[53348],"declarations":[{"constant":false,"id":53348,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"11734:18:91","nodeType":"VariableDeclaration","scope":53587,"src":"11715:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53347,"nodeType":"UserDefinedTypeName","pathNode":{"id":53346,"name":"XnetMessagingFacet","nameLocations":["11715:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11715:18:91"},"referencedDeclaration":40144,"src":"11715:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53353,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11755:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53350,"nodeType":"UserDefinedTypeName","pathNode":{"id":53349,"name":"XnetMessagingFacet","nameLocations":["11759:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11759:18:91"},"referencedDeclaration":40144,"src":"11759:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11755:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11715:64:91"},{"assignments":[53356],"declarations":[{"constant":false,"id":53356,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"11810:20:91","nodeType":"VariableDeclaration","scope":53587,"src":"11789:41:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53355,"nodeType":"UserDefinedTypeName","pathNode":{"id":53354,"name":"TopDownFinalityFacet","nameLocations":["11789:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11789:20:91"},"referencedDeclaration":40071,"src":"11789:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53361,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11833:24:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53358,"nodeType":"UserDefinedTypeName","pathNode":{"id":53357,"name":"TopDownFinalityFacet","nameLocations":["11837:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11837:20:91"},"referencedDeclaration":40071,"src":"11837:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11833:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"11789:70:91"},{"assignments":[53364],"declarations":[{"constant":false,"id":53364,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"11889:19:91","nodeType":"VariableDeclaration","scope":53587,"src":"11869:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53363,"nodeType":"UserDefinedTypeName","pathNode":{"id":53362,"name":"BottomUpRouterFacet","nameLocations":["11869:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11869:19:91"},"referencedDeclaration":39601,"src":"11869:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53369,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11911:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53366,"nodeType":"UserDefinedTypeName","pathNode":{"id":53365,"name":"BottomUpRouterFacet","nameLocations":["11915:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11915:19:91"},"referencedDeclaration":39601,"src":"11915:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11911:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11869:67:91"},{"assignments":[53372],"declarations":[{"constant":false,"id":53372,"mutability":"mutable","name":"manager","nameLocation":"11967:7:91","nodeType":"VariableDeclaration","scope":53587,"src":"11947:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53371,"nodeType":"UserDefinedTypeName","pathNode":{"id":53370,"name":"GatewayManagerFacet","nameLocations":["11947:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11947:19:91"},"referencedDeclaration":38870,"src":"11947:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53377,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11977:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53374,"nodeType":"UserDefinedTypeName","pathNode":{"id":53373,"name":"GatewayManagerFacet","nameLocations":["11981:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11981:19:91"},"referencedDeclaration":38870,"src":"11981:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11947:55:91"},{"assignments":[53380],"declarations":[{"constant":false,"id":53380,"mutability":"mutable","name":"getter","nameLocation":"12031:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12012:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53379,"nodeType":"UserDefinedTypeName","pathNode":{"id":53378,"name":"GatewayGetterFacet","nameLocations":["12012:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12012:18:91"},"referencedDeclaration":38317,"src":"12012:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53385,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12040:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53382,"nodeType":"UserDefinedTypeName","pathNode":{"id":53381,"name":"GatewayGetterFacet","nameLocations":["12044:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12044:18:91"},"referencedDeclaration":38317,"src":"12044:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"12012:52:91"},{"assignments":[53388],"declarations":[{"constant":false,"id":53388,"mutability":"mutable","name":"messenger","nameLocation":"12096:9:91","nodeType":"VariableDeclaration","scope":53587,"src":"12074:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53387,"nodeType":"UserDefinedTypeName","pathNode":{"id":53386,"name":"GatewayMessengerFacet","nameLocations":["12074:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12074:21:91"},"referencedDeclaration":39235,"src":"12074:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53393,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12108:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53390,"nodeType":"UserDefinedTypeName","pathNode":{"id":53389,"name":"GatewayMessengerFacet","nameLocations":["12112:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12112:21:91"},"referencedDeclaration":39235,"src":"12112:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12108:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12074:61:91"},{"assignments":[53396],"declarations":[{"constant":false,"id":53396,"mutability":"mutable","name":"cutter","nameLocation":"12161:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12145:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53395,"nodeType":"UserDefinedTypeName","pathNode":{"id":53394,"name":"DiamondCutFacet","nameLocations":["12145:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12145:15:91"},"referencedDeclaration":36918,"src":"12145:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53401,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12170:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53398,"nodeType":"UserDefinedTypeName","pathNode":{"id":53397,"name":"DiamondCutFacet","nameLocations":["12174:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12174:15:91"},"referencedDeclaration":36918,"src":"12174:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12170:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12145:46:91"},{"assignments":[53404],"declarations":[{"constant":false,"id":53404,"mutability":"mutable","name":"louper","nameLocation":"12219:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12201:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53403,"nodeType":"UserDefinedTypeName","pathNode":{"id":53402,"name":"DiamondLoupeFacet","nameLocations":["12201:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12201:17:91"},"referencedDeclaration":37355,"src":"12201:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53409,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12228:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53406,"nodeType":"UserDefinedTypeName","pathNode":{"id":53405,"name":"DiamondLoupeFacet","nameLocations":["12232:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12232:17:91"},"referencedDeclaration":37355,"src":"12232:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12228:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12201:50:91"},{"assignments":[53415],"declarations":[{"constant":false,"id":53415,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"12289:12:91","nodeType":"VariableDeclaration","scope":53587,"src":"12262:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53413,"nodeType":"UserDefinedTypeName","pathNode":{"id":53412,"name":"IDiamond.FacetCut","nameLocations":["12262:8:91","12271:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12262:17:91"},"referencedDeclaration":40159,"src":"12262:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53414,"nodeType":"ArrayTypeName","src":"12262:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53422,"initialValue":{"arguments":[{"hexValue":"39","id":53420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12328:1:91","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12304:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53417,"nodeType":"UserDefinedTypeName","pathNode":{"id":53416,"name":"IDiamond.FacetCut","nameLocations":["12308:8:91","12317:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12308:17:91"},"referencedDeclaration":40159,"src":"12308:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53418,"nodeType":"ArrayTypeName","src":"12308:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12304:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12262:68:91"},{"expression":{"id":53438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53423,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12341:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53425,"indexExpression":{"hexValue":"30","id":53424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12354:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12341:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53430,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53340,"src":"12431:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12423:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53428,"name":"address","nodeType":"ElementaryTypeName","src":"12423:7:91","typeDescriptions":{}}},"id":53431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12423:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12476:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12485:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12476:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12500:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12476:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53435,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52767,"src":"12540:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53426,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12373:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12382:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12373:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12409:12:91","12468:6:91","12521:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12373:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53437,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12359:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12341:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53439,"nodeType":"ExpressionStatement","src":"12341:253:91"},{"expression":{"id":53455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53440,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12605:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53442,"indexExpression":{"hexValue":"36","id":53441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12618:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12605:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53447,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53348,"src":"12695:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12687:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53445,"name":"address","nodeType":"ElementaryTypeName","src":"12687:7:91","typeDescriptions":{}}},"id":53448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12687:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12740:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12749:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12740:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12764:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12740:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53452,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52770,"src":"12804:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53443,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12637:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12646:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12637:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12673:12:91","12732:6:91","12785:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12637:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53454,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12623:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12605:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53456,"nodeType":"ExpressionStatement","src":"12605:253:91"},{"expression":{"id":53472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53457,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12869:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53459,"indexExpression":{"hexValue":"37","id":53458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12882:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12869:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53464,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53356,"src":"12959:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12951:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53462,"name":"address","nodeType":"ElementaryTypeName","src":"12951:7:91","typeDescriptions":{}}},"id":53465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12951:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13006:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13030:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13006:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53469,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52773,"src":"13070:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53460,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12901:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12910:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12901:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12937:12:91","12998:6:91","13051:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12901:215:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12887:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12869:257:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53473,"nodeType":"ExpressionStatement","src":"12869:257:91"},{"expression":{"id":53489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53474,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13137:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53476,"indexExpression":{"hexValue":"38","id":53475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13150:1:91","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13137:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53481,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53364,"src":"13227:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13219:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53479,"name":"address","nodeType":"ElementaryTypeName","src":"13219:7:91","typeDescriptions":{}}},"id":53482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13219:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13273:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13282:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13273:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13297:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13273:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53486,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"13337:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53477,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13169:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13178:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13169:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13205:12:91","13265:6:91","13318:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13169:213:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53488,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13155:237:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13137:255:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53490,"nodeType":"ExpressionStatement","src":"13137:255:91"},{"expression":{"id":53506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53491,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13403:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53493,"indexExpression":{"hexValue":"31","id":53492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13416:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13403:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53498,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53372,"src":"13493:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13485:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53496,"name":"address","nodeType":"ElementaryTypeName","src":"13485:7:91","typeDescriptions":{}}},"id":53499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13485:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53500,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13527:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13536:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13527:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13551:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13527:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53503,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52779,"src":"13591:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53494,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13435:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13444:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13435:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13471:12:91","13519:6:91","13572:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13435:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53505,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13421:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13403:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53507,"nodeType":"ExpressionStatement","src":"13403:231:91"},{"expression":{"id":53523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53508,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13645:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53510,"indexExpression":{"hexValue":"32","id":53509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13658:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13645:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53515,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53380,"src":"13735:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13727:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13727:7:91","typeDescriptions":{}}},"id":53516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13727:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53517,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13768:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13777:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13768:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13792:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13768:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53520,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52782,"src":"13832:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53511,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13677:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13686:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13677:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13713:12:91","13760:6:91","13813:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13677:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53522,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13663:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13645:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53524,"nodeType":"ExpressionStatement","src":"13645:229:91"},{"expression":{"id":53540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53525,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13885:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53527,"indexExpression":{"hexValue":"33","id":53526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13898:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13885:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53532,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53388,"src":"13975:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13967:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53530,"name":"address","nodeType":"ElementaryTypeName","src":"13967:7:91","typeDescriptions":{}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53534,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14011:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14020:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14011:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14035:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14011:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53537,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52785,"src":"14075:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13917:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13926:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13917:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13953:12:91","14003:6:91","14056:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13917:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53539,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13903:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13885:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53541,"nodeType":"ExpressionStatement","src":"13885:235:91"},{"expression":{"id":53557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53542,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14131:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53544,"indexExpression":{"hexValue":"34","id":53543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14144:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14131:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53549,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53404,"src":"14221:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14213:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53547,"name":"address","nodeType":"ElementaryTypeName","src":"14213:7:91","typeDescriptions":{}}},"id":53550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14213:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53551,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14254:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14263:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14254:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14278:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14254:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53554,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52791,"src":"14318:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53545,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14163:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14172:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14163:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14199:12:91","14246:6:91","14299:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14163:186:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53556,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14149:210:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14131:228:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53558,"nodeType":"ExpressionStatement","src":"14131:228:91"},{"expression":{"id":53574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53559,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14370:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53561,"indexExpression":{"hexValue":"35","id":53560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14383:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14370:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53566,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53396,"src":"14460:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14452:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53564,"name":"address","nodeType":"ElementaryTypeName","src":"14452:7:91","typeDescriptions":{}}},"id":53567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14452:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53568,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14493:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14502:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14493:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14517:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14493:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53571,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52788,"src":"14557:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53562,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14402:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14411:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14402:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14438:12:91","14485:6:91","14538:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14402:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14388:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14370:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53575,"nodeType":"ExpressionStatement","src":"14370:229:91"},{"expression":{"id":53583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53576,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"14610:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53580,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14646:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53581,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53332,"src":"14660:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14627:18:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53578,"nodeType":"UserDefinedTypeName","pathNode":{"id":53577,"name":"GatewayDiamond","nameLocations":["14631:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"14631:14:91"},"referencedDeclaration":36170,"src":"14631:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14627:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"14610:57:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53584,"nodeType":"ExpressionStatement","src":"14610:57:91"},{"expression":{"id":53585,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"14685:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53337,"id":53586,"nodeType":"Return","src":"14678:21:91"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"11530:20:91","parameters":{"id":53333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53332,"mutability":"mutable","name":"params","nameLocation":"11591:6:91","nodeType":"VariableDeclaration","scope":53588,"src":"11551:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53331,"nodeType":"UserDefinedTypeName","pathNode":{"id":53330,"name":"GatewayDiamond.ConstructorParams","nameLocations":["11551:14:91","11566:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"11551:32:91"},"referencedDeclaration":35883,"src":"11551:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"11550:48:91"},"returnParameters":{"id":53337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53588,"src":"11615:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53335,"nodeType":"UserDefinedTypeName","pathNode":{"id":53334,"name":"GatewayDiamond","nameLocations":["11615:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"11615:14:91"},"referencedDeclaration":36170,"src":"11615:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"11614:16:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53702,"nodeType":"FunctionDefinition","src":"14712:1613:91","nodes":[],"body":{"id":53701,"nodeType":"Block","src":"14988:1337:91","nodes":[],"statements":[{"assignments":[53612],"declarations":[{"constant":false,"id":53612,"mutability":"mutable","name":"diamondCut","nameLocation":"15025:10:91","nodeType":"VariableDeclaration","scope":53701,"src":"14998:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53610,"nodeType":"UserDefinedTypeName","pathNode":{"id":53609,"name":"IDiamond.FacetCut","nameLocations":["14998:8:91","15007:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14998:17:91"},"referencedDeclaration":40159,"src":"14998:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53611,"nodeType":"ArrayTypeName","src":"14998:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53619,"initialValue":{"arguments":[{"hexValue":"35","id":53617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15062:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":53616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15038:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53614,"nodeType":"UserDefinedTypeName","pathNode":{"id":53613,"name":"IDiamond.FacetCut","nameLocations":["15042:8:91","15051:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15042:17:91"},"referencedDeclaration":40159,"src":"15042:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53615,"nodeType":"ArrayTypeName","src":"15042:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15038:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14998:66:91"},{"expression":{"id":53632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53620,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15075:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53622,"indexExpression":{"hexValue":"30","id":53621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15086:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15075:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53625,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53593,"src":"15155:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53626,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15187:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15196:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15187:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15211:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15187:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53629,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"15251:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53623,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15105:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15114:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15105:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15141:12:91","15179:6:91","15232:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15105:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53631,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15091:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15075:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53633,"nodeType":"ExpressionStatement","src":"15075:218:91"},{"expression":{"id":53646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53634,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15304:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53636,"indexExpression":{"hexValue":"31","id":53635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15315:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15304:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53639,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53595,"src":"15384:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53640,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15417:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15426:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15417:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15441:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15417:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53643,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"15481:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53637,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15334:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15343:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15334:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15370:12:91","15409:6:91","15462:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15334:180:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53645,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15320:204:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15304:220:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53647,"nodeType":"ExpressionStatement","src":"15304:220:91"},{"expression":{"id":53660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53648,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15535:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53650,"indexExpression":{"hexValue":"32","id":53649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15546:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15535:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53653,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53597,"src":"15615:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53654,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15647:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15656:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15647:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15671:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15647:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53657,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"15711:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53651,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15565:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15574:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15565:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15601:12:91","15639:6:91","15692:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15565:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53659,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15551:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15535:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53661,"nodeType":"ExpressionStatement","src":"15535:218:91"},{"expression":{"id":53674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53662,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15764:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53664,"indexExpression":{"hexValue":"33","id":53663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15775:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15764:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53667,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53599,"src":"15844:8:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53668,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15878:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15887:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15878:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15902:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15878:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53671,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"15942:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53665,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15794:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15803:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15794:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15830:12:91","15870:6:91","15923:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15794:182:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53673,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15780:206:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15764:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53675,"nodeType":"ExpressionStatement","src":"15764:222:91"},{"expression":{"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53676,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15997:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53678,"indexExpression":{"hexValue":"34","id":53677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16008:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15997:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53681,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53601,"src":"16077:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53682,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16124:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"16115:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16139:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"16115:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53685,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"16179:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53679,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16027:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16036:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"16027:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16063:12:91","16107:6:91","16160:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"16027:190:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53687,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16013:214:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15997:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53689,"nodeType":"ExpressionStatement","src":"15997:230:91"},{"expression":{"id":53697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53690,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"16238:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53694,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"16273:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53695,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53591,"src":"16285:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16250:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53692,"nodeType":"UserDefinedTypeName","pathNode":{"id":53691,"name":"SubnetActorDiamond","nameLocations":["16254:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16254:18:91"},"referencedDeclaration":36615,"src":"16254:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16250:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"16238:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53698,"nodeType":"ExpressionStatement","src":"16238:54:91"},{"expression":{"id":53699,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"16309:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53606,"id":53700,"nodeType":"Return","src":"16302:16:91"}]},"functionSelector":"ea1c89ed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"14721:35:91","parameters":{"id":53602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53591,"mutability":"mutable","name":"params","nameLocation":"14810:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14766:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53590,"nodeType":"UserDefinedTypeName","pathNode":{"id":53589,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14766:18:91","14785:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14766:36:91"},"referencedDeclaration":36253,"src":"14766:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53593,"mutability":"mutable","name":"getter","nameLocation":"14834:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14826:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53592,"name":"address","nodeType":"ElementaryTypeName","src":"14826:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53595,"mutability":"mutable","name":"manager","nameLocation":"14858:7:91","nodeType":"VariableDeclaration","scope":53702,"src":"14850:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53594,"name":"address","nodeType":"ElementaryTypeName","src":"14850:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53597,"mutability":"mutable","name":"pauser","nameLocation":"14883:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14875:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53596,"name":"address","nodeType":"ElementaryTypeName","src":"14875:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53599,"mutability":"mutable","name":"rewarder","nameLocation":"14907:8:91","nodeType":"VariableDeclaration","scope":53702,"src":"14899:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53598,"name":"address","nodeType":"ElementaryTypeName","src":"14899:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53601,"mutability":"mutable","name":"checkpointer","nameLocation":"14933:12:91","nodeType":"VariableDeclaration","scope":53702,"src":"14925:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53600,"name":"address","nodeType":"ElementaryTypeName","src":"14925:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14756:195:91"},"returnParameters":{"id":53606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53702,"src":"14968:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"SubnetActorDiamond","nameLocations":["14968:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14968:18:91"},"referencedDeclaration":36615,"src":"14968:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14967:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53912,"nodeType":"FunctionDefinition","src":"16331:2480:91","nodes":[],"body":{"id":53911,"nodeType":"Block","src":"16446:2365:91","nodes":[],"statements":[{"assignments":[53713],"declarations":[{"constant":false,"id":53713,"mutability":"mutable","name":"manager","nameLocation":"16480:7:91","nodeType":"VariableDeclaration","scope":53911,"src":"16456:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53712,"nodeType":"UserDefinedTypeName","pathNode":{"id":53711,"name":"SubnetActorManagerFacet","nameLocations":["16456:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16456:23:91"},"referencedDeclaration":51946,"src":"16456:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53718,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16490:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53715,"nodeType":"UserDefinedTypeName","pathNode":{"id":53714,"name":"SubnetActorManagerFacet","nameLocations":["16494:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16494:23:91"},"referencedDeclaration":51946,"src":"16494:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16490:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"16456:63:91"},{"assignments":[53721],"declarations":[{"constant":false,"id":53721,"mutability":"mutable","name":"getter","nameLocation":"16552:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16529:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53720,"nodeType":"UserDefinedTypeName","pathNode":{"id":53719,"name":"SubnetActorGetterFacet","nameLocations":["16529:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16529:22:91"},"referencedDeclaration":51235,"src":"16529:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53726,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16561:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53723,"nodeType":"UserDefinedTypeName","pathNode":{"id":53722,"name":"SubnetActorGetterFacet","nameLocations":["16565:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16565:22:91"},"referencedDeclaration":51235,"src":"16565:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16561:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"16529:60:91"},{"assignments":[53729],"declarations":[{"constant":false,"id":53729,"mutability":"mutable","name":"pauser","nameLocation":"16621:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16599:28:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":53728,"nodeType":"UserDefinedTypeName","pathNode":{"id":53727,"name":"SubnetActorPauseFacet","nameLocations":["16599:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16599:21:91"},"referencedDeclaration":51991,"src":"16599:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"}],"id":53734,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16630:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53731,"nodeType":"UserDefinedTypeName","pathNode":{"id":53730,"name":"SubnetActorPauseFacet","nameLocations":["16634:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16634:21:91"},"referencedDeclaration":51991,"src":"16634:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16630:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"VariableDeclarationStatement","src":"16599:58:91"},{"assignments":[53737],"declarations":[{"constant":false,"id":53737,"mutability":"mutable","name":"rewarder","nameLocation":"16690:8:91","nodeType":"VariableDeclaration","scope":53911,"src":"16667:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":53736,"nodeType":"UserDefinedTypeName","pathNode":{"id":53735,"name":"SubnetActorRewardFacet","nameLocations":["16667:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16667:22:91"},"referencedDeclaration":52158,"src":"16667:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"}],"id":53742,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16701:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":53739,"nodeType":"UserDefinedTypeName","pathNode":{"id":53738,"name":"SubnetActorRewardFacet","nameLocations":["16705:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16705:22:91"},"referencedDeclaration":52158,"src":"16705:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":53741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16701:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"VariableDeclarationStatement","src":"16667:62:91"},{"assignments":[53745],"declarations":[{"constant":false,"id":53745,"mutability":"mutable","name":"checkpointer","nameLocation":"16769:12:91","nodeType":"VariableDeclaration","scope":53911,"src":"16739:42:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":53744,"nodeType":"UserDefinedTypeName","pathNode":{"id":53743,"name":"SubnetActorCheckpointingFacet","nameLocations":["16739:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16739:29:91"},"referencedDeclaration":50577,"src":"16739:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"}],"id":53750,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16784:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53747,"nodeType":"UserDefinedTypeName","pathNode":{"id":53746,"name":"SubnetActorCheckpointingFacet","nameLocations":["16788:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16788:29:91"},"referencedDeclaration":50577,"src":"16788:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16784:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"16739:80:91"},{"assignments":[53753],"declarations":[{"constant":false,"id":53753,"mutability":"mutable","name":"louper","nameLocation":"16848:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16830:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53752,"nodeType":"UserDefinedTypeName","pathNode":{"id":53751,"name":"DiamondLoupeFacet","nameLocations":["16830:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16830:17:91"},"referencedDeclaration":37355,"src":"16830:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53758,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16857:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53755,"nodeType":"UserDefinedTypeName","pathNode":{"id":53754,"name":"DiamondLoupeFacet","nameLocations":["16861:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16861:17:91"},"referencedDeclaration":37355,"src":"16861:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16857:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"16830:50:91"},{"assignments":[53761],"declarations":[{"constant":false,"id":53761,"mutability":"mutable","name":"cutter","nameLocation":"16906:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16890:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53760,"nodeType":"UserDefinedTypeName","pathNode":{"id":53759,"name":"DiamondCutFacet","nameLocations":["16890:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16890:15:91"},"referencedDeclaration":36918,"src":"16890:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53766,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16915:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53763,"nodeType":"UserDefinedTypeName","pathNode":{"id":53762,"name":"DiamondCutFacet","nameLocations":["16919:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16919:15:91"},"referencedDeclaration":36918,"src":"16919:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16915:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"16890:46:91"},{"assignments":[53772],"declarations":[{"constant":false,"id":53772,"mutability":"mutable","name":"diamondCut","nameLocation":"16974:10:91","nodeType":"VariableDeclaration","scope":53911,"src":"16947:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53770,"nodeType":"UserDefinedTypeName","pathNode":{"id":53769,"name":"IDiamond.FacetCut","nameLocations":["16947:8:91","16956:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16947:17:91"},"referencedDeclaration":40159,"src":"16947:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53771,"nodeType":"ArrayTypeName","src":"16947:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53779,"initialValue":{"arguments":[{"hexValue":"37","id":53777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17011:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"id":53776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16987:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"IDiamond.FacetCut","nameLocations":["16991:8:91","17000:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16991:17:91"},"referencedDeclaration":40159,"src":"16991:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53775,"nodeType":"ArrayTypeName","src":"16991:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16987:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"16947:66:91"},{"expression":{"id":53795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53780,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17024:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53782,"indexExpression":{"hexValue":"30","id":53781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17035:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17024:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53787,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53713,"src":"17112:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":53786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17104:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53785,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:91","typeDescriptions":{}}},"id":53788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17104:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53789,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17146:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17155:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17146:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17170:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17146:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53792,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"17210:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53783,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17054:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17063:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17054:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17090:12:91","17138:6:91","17191:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17054:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17040:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17024:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53796,"nodeType":"ExpressionStatement","src":"17024:229:91"},{"expression":{"id":53812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53797,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17264:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53799,"indexExpression":{"hexValue":"31","id":53798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17275:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17264:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53804,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"17352:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":53803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17344:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53802,"name":"address","nodeType":"ElementaryTypeName","src":"17344:7:91","typeDescriptions":{}}},"id":53805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17344:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53806,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17385:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17394:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17385:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17409:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17385:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53809,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"17449:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53800,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17294:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17303:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17294:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17330:12:91","17377:6:91","17430:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17294:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53811,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17280:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17264:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53813,"nodeType":"ExpressionStatement","src":"17264:227:91"},{"expression":{"id":53829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53814,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17502:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53816,"indexExpression":{"hexValue":"32","id":53815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17513:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17502:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53821,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53729,"src":"17590:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":53820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17582:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53819,"name":"address","nodeType":"ElementaryTypeName","src":"17582:7:91","typeDescriptions":{}}},"id":53822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17582:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53823,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17623:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17632:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17623:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17647:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17623:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53826,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"17687:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53817,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17532:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17541:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17532:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17568:12:91","17615:6:91","17668:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17532:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53828,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17518:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17502:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53830,"nodeType":"ExpressionStatement","src":"17502:227:91"},{"expression":{"id":53846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53831,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17740:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53833,"indexExpression":{"hexValue":"33","id":53832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17751:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17740:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53838,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"17828:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":53837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17820:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53836,"name":"address","nodeType":"ElementaryTypeName","src":"17820:7:91","typeDescriptions":{}}},"id":53839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17820:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53840,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17863:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17872:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17863:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17887:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17863:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53843,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"17927:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53834,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17770:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17779:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17770:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17806:12:91","17855:6:91","17908:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17770:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53845,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17756:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17740:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53847,"nodeType":"ExpressionStatement","src":"17740:231:91"},{"expression":{"id":53863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53848,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17982:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53850,"indexExpression":{"hexValue":"34","id":53849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17993:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17982:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53855,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53745,"src":"18070:12:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":53854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18062:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53853,"name":"address","nodeType":"ElementaryTypeName","src":"18062:7:91","typeDescriptions":{}}},"id":53856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18062:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53857,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18109:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18118:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18109:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18133:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18109:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53860,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"18173:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53851,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18012:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18021:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18012:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18048:12:91","18101:6:91","18154:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18012:199:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53862,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17998:223:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17982:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53864,"nodeType":"ExpressionStatement","src":"17982:239:91"},{"expression":{"id":53880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53865,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18232:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53867,"indexExpression":{"hexValue":"35","id":53866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18243:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18232:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53872,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53761,"src":"18320:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18312:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53870,"name":"address","nodeType":"ElementaryTypeName","src":"18312:7:91","typeDescriptions":{}}},"id":53873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18312:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53874,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18353:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18362:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18353:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18377:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18353:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53877,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"18417:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53868,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18262:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18271:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18262:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18298:12:91","18345:6:91","18398:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18262:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53879,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18248:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18232:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53881,"nodeType":"ExpressionStatement","src":"18232:227:91"},{"expression":{"id":53897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53882,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18470:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53884,"indexExpression":{"hexValue":"36","id":53883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18481:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18470:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53889,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53753,"src":"18558:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18550:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53887,"name":"address","nodeType":"ElementaryTypeName","src":"18550:7:91","typeDescriptions":{}}},"id":53890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18550:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53891,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18591:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18600:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18591:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18615:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18591:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53894,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"18655:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53885,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18500:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18509:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18500:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18536:12:91","18583:6:91","18636:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18500:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53896,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18486:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18470:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53898,"nodeType":"ExpressionStatement","src":"18470:227:91"},{"assignments":[53901],"declarations":[{"constant":false,"id":53901,"mutability":"mutable","name":"diamond","nameLocation":"18727:7:91","nodeType":"VariableDeclaration","scope":53911,"src":"18708:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53900,"nodeType":"UserDefinedTypeName","pathNode":{"id":53899,"name":"SubnetActorDiamond","nameLocations":["18708:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18708:18:91"},"referencedDeclaration":36615,"src":"18708:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53908,"initialValue":{"arguments":[{"id":53905,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18760:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53906,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53705,"src":"18772:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18737:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53903,"nodeType":"UserDefinedTypeName","pathNode":{"id":53902,"name":"SubnetActorDiamond","nameLocations":["18741:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18741:18:91"},"referencedDeclaration":36615,"src":"18741:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18737:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"18708:71:91"},{"expression":{"id":53909,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53901,"src":"18797:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53710,"id":53910,"nodeType":"Return","src":"18790:14:91"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16340:17:91","parameters":{"id":53706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53705,"mutability":"mutable","name":"params","nameLocation":"16402:6:91","nodeType":"VariableDeclaration","scope":53912,"src":"16358:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53704,"nodeType":"UserDefinedTypeName","pathNode":{"id":53703,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["16358:18:91","16377:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"16358:36:91"},"referencedDeclaration":36253,"src":"16358:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"16357:52:91"},"returnParameters":{"id":53710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53912,"src":"16426:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53708,"nodeType":"UserDefinedTypeName","pathNode":{"id":53707,"name":"SubnetActorDiamond","nameLocations":["16426:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16426:18:91"},"referencedDeclaration":36615,"src":"16426:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16425:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53941,"nodeType":"FunctionDefinition","src":"18817:522:91","nodes":[],"body":{"id":53940,"nodeType":"Block","src":"19061:278:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":53929,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53914,"src":"19102:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53930,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53917,"src":"19131:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53931,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53919,"src":"19155:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53932,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53921,"src":"19193:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53933,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53923,"src":"19221:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53934,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53925,"src":"19247:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53935,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"19280:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19295:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"19280:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19319:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53928,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53912,53941,54244],"referencedDeclaration":54244,"src":"19071:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50118_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19071:261:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53939,"nodeType":"ExpressionStatement","src":"19071:261:91"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"18826:17:91","parameters":{"id":53926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53914,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"18861:15:91","nodeType":"VariableDeclaration","scope":53941,"src":"18853:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53913,"name":"address","nodeType":"ElementaryTypeName","src":"18853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53917,"mutability":"mutable","name":"_consensus","nameLocation":"18900:10:91","nodeType":"VariableDeclaration","scope":53941,"src":"18886:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53916,"nodeType":"UserDefinedTypeName","pathNode":{"id":53915,"name":"ConsensusType","nameLocations":["18886:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"18886:13:91"},"referencedDeclaration":37359,"src":"18886:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53919,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"18928:24:91","nodeType":"VariableDeclaration","scope":53941,"src":"18920:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53918,"name":"uint256","nodeType":"ElementaryTypeName","src":"18920:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53921,"mutability":"mutable","name":"_minValidators","nameLocation":"18969:14:91","nodeType":"VariableDeclaration","scope":53941,"src":"18962:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53920,"name":"uint64","nodeType":"ElementaryTypeName","src":"18962:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53923,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19000:12:91","nodeType":"VariableDeclaration","scope":53941,"src":"18993:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53922,"name":"uint64","nodeType":"ElementaryTypeName","src":"18993:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53925,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19028:19:91","nodeType":"VariableDeclaration","scope":53941,"src":"19022:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53924,"name":"uint8","nodeType":"ElementaryTypeName","src":"19022:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18843:210:91"},"returnParameters":{"id":53927,"nodeType":"ParameterList","parameters":[],"src":"19061:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54244,"nodeType":"FunctionDefinition","src":"19345:3730:91","nodes":[],"body":{"id":54243,"nodeType":"Block","src":"19668:3407:91","nodes":[],"statements":[{"assignments":[53964],"declarations":[{"constant":false,"id":53964,"mutability":"mutable","name":"_parentId","nameLocation":"19694:9:91","nodeType":"VariableDeclaration","scope":54243,"src":"19678:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetID","nameLocations":["19678:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"19678:8:91"},"referencedDeclaration":50030,"src":"19678:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53973,"initialValue":{"arguments":[{"id":53966,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"19715:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19746:1:91","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":53969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19732:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53967,"name":"address","nodeType":"ElementaryTypeName","src":"19736:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53968,"nodeType":"ArrayTypeName","src":"19736:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19732:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53965,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"19706:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19706:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"19678:71:91"},{"expression":{"id":53979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53974,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"19760:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19772:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53976,"nodeType":"UserDefinedTypeName","pathNode":{"id":53975,"name":"SubnetActorManagerFacet","nameLocations":["19776:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"19776:23:91"},"referencedDeclaration":51946,"src":"19776:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19772:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"19760:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53980,"nodeType":"ExpressionStatement","src":"19760:41:91"},{"expression":{"id":53986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53981,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"19811:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19822:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53983,"nodeType":"UserDefinedTypeName","pathNode":{"id":53982,"name":"SubnetActorGetterFacet","nameLocations":["19826:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"19826:22:91"},"referencedDeclaration":51235,"src":"19826:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19822:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"19811:39:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53987,"nodeType":"ExpressionStatement","src":"19811:39:91"},{"expression":{"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53988,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"19860:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19871:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53990,"nodeType":"UserDefinedTypeName","pathNode":{"id":53989,"name":"SubnetActorPauseFacet","nameLocations":["19875:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"19875:21:91"},"referencedDeclaration":51991,"src":"19875:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19871:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"19860:38:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53994,"nodeType":"ExpressionStatement","src":"19860:38:91"},{"expression":{"id":54000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53995,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"19908:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19925:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53997,"nodeType":"UserDefinedTypeName","pathNode":{"id":53996,"name":"SubnetActorCheckpointingFacet","nameLocations":["19929:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"19929:29:91"},"referencedDeclaration":50577,"src":"19929:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19925:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"19908:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54001,"nodeType":"ExpressionStatement","src":"19908:52:91"},{"expression":{"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54002,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"19970:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19983:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":54004,"nodeType":"UserDefinedTypeName","pathNode":{"id":54003,"name":"SubnetActorRewardFacet","nameLocations":["19987:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"19987:22:91"},"referencedDeclaration":52158,"src":"19987:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":54006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19983:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"19970:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54008,"nodeType":"ExpressionStatement","src":"19970:41:91"},{"expression":{"id":54014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54009,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"20021:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20032:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54011,"nodeType":"UserDefinedTypeName","pathNode":{"id":54010,"name":"DiamondCutFacet","nameLocations":["20036:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20036:15:91"},"referencedDeclaration":36918,"src":"20036:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20032:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"20021:32:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54015,"nodeType":"ExpressionStatement","src":"20021:32:91"},{"expression":{"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54016,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"20063:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20074:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54018,"nodeType":"UserDefinedTypeName","pathNode":{"id":54017,"name":"DiamondLoupeFacet","nameLocations":["20078:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20078:17:91"},"referencedDeclaration":37355,"src":"20078:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20074:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"20063:34:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54022,"nodeType":"ExpressionStatement","src":"20063:34:91"},{"assignments":[54028],"declarations":[{"constant":false,"id":54028,"mutability":"mutable","name":"diamondCut","nameLocation":"20135:10:91","nodeType":"VariableDeclaration","scope":54243,"src":"20108:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54026,"nodeType":"UserDefinedTypeName","pathNode":{"id":54025,"name":"IDiamond.FacetCut","nameLocations":["20108:8:91","20117:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20108:17:91"},"referencedDeclaration":40159,"src":"20108:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54027,"nodeType":"ArrayTypeName","src":"20108:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54035,"initialValue":{"arguments":[{"hexValue":"37","id":54033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20172:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"id":54032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20148:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54030,"nodeType":"UserDefinedTypeName","pathNode":{"id":54029,"name":"IDiamond.FacetCut","nameLocations":["20152:8:91","20161:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20152:17:91"},"referencedDeclaration":40159,"src":"20152:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54031,"nodeType":"ArrayTypeName","src":"20152:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20148:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20108:66:91"},{"expression":{"id":54051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54036,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20185:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54038,"indexExpression":{"hexValue":"30","id":54037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20196:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20185:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54043,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"20273:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20265:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54041,"name":"address","nodeType":"ElementaryTypeName","src":"20265:7:91","typeDescriptions":{}}},"id":54044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20265:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54045,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20309:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20318:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20309:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20333:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20309:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54048,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"20373:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54039,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20215:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20224:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20215:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20251:12:91","20301:6:91","20354:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20215:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54050,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20201:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20185:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54052,"nodeType":"ExpressionStatement","src":"20185:231:91"},{"expression":{"id":54068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54053,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20427:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54055,"indexExpression":{"hexValue":"31","id":54054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20438:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20427:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54060,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"20515:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20507:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54058,"name":"address","nodeType":"ElementaryTypeName","src":"20507:7:91","typeDescriptions":{}}},"id":54061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20507:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54062,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20550:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20559:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20550:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20574:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20550:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54065,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"20614:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54056,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20457:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20466:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20457:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20493:12:91","20542:6:91","20595:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20457:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54067,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20443:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20427:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54069,"nodeType":"ExpressionStatement","src":"20427:229:91"},{"expression":{"id":54085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54070,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20667:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54072,"indexExpression":{"hexValue":"32","id":54071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20678:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20667:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54077,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"20755:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":54076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20747:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54075,"name":"address","nodeType":"ElementaryTypeName","src":"20747:7:91","typeDescriptions":{}}},"id":54078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20747:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54079,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20790:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20799:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20790:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20814:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20790:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54082,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"20854:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54073,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20697:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20706:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20697:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20733:12:91","20782:6:91","20835:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20697:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54084,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20683:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20667:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54086,"nodeType":"ExpressionStatement","src":"20667:229:91"},{"expression":{"id":54102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54087,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20907:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54089,"indexExpression":{"hexValue":"33","id":54088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20918:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20907:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54094,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"20995:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":54093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20987:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54092,"name":"address","nodeType":"ElementaryTypeName","src":"20987:7:91","typeDescriptions":{}}},"id":54095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20987:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54096,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21032:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21041:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21032:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21056:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21032:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54099,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"21096:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54090,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20937:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20946:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20937:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20973:12:91","21024:6:91","21077:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20937:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54101,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20923:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20907:233:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54103,"nodeType":"ExpressionStatement","src":"20907:233:91"},{"expression":{"id":54119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54104,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21151:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54106,"indexExpression":{"hexValue":"34","id":54105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21162:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21151:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54111,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"21239:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":54110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21231:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54109,"name":"address","nodeType":"ElementaryTypeName","src":"21231:7:91","typeDescriptions":{}}},"id":54112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21231:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54113,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21280:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21289:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21280:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21304:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21280:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54116,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"21344:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54107,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21181:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21190:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21181:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21217:12:91","21272:6:91","21325:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21181:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54118,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21167:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21151:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54120,"nodeType":"ExpressionStatement","src":"21151:241:91"},{"expression":{"id":54136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54121,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21403:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54123,"indexExpression":{"hexValue":"35","id":54122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21414:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21403:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54128,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"21491:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21483:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54126,"name":"address","nodeType":"ElementaryTypeName","src":"21483:7:91","typeDescriptions":{}}},"id":54129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21483:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54130,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21526:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21535:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21526:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21550:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21526:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54133,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"21590:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54124,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21433:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21442:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21433:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21469:12:91","21518:6:91","21571:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21433:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21419:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21403:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54137,"nodeType":"ExpressionStatement","src":"21403:229:91"},{"expression":{"id":54153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54138,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21643:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54140,"indexExpression":{"hexValue":"36","id":54139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21654:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21643:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54145,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"21731:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21723:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54143,"name":"address","nodeType":"ElementaryTypeName","src":"21723:7:91","typeDescriptions":{}}},"id":54146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21723:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54147,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21766:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21775:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21766:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21790:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21766:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54150,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"21830:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54141,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21673:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21682:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21673:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21709:12:91","21758:6:91","21811:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21673:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54152,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21659:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21643:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54154,"nodeType":"ExpressionStatement","src":"21643:229:91"},{"expression":{"id":54178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54155,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"21883:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54159,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21931:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":54162,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53964,"src":"22020:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54163,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53943,"src":"22063:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54164,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53946,"src":"22107:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":54165,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53948,"src":"22160:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54166,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53950,"src":"22217:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54167,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53952,"src":"22270:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54168,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53954,"src":"22320:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54169,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"22380:22:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":54170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22432:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":54171,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53957,"src":"22468:15:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":54172,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"22517:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54173,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"22570:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":54174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22589:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"22570:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":54175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22570:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":54160,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"21955:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":54161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21974:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"21955:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":54176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["22010:8:91","22047:14:91","22096:9:91","22135:23:91","22202:13:91","22249:19:91","22300:18:91","22357:21:91","22420:10:91","22452:14:91","22501:14:91","22556:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"21955:657:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21895:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54157,"nodeType":"UserDefinedTypeName","pathNode":{"id":54156,"name":"SubnetActorDiamond","nameLocations":["21899:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"21899:18:91"},"referencedDeclaration":36615,"src":"21899:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21895:727:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"21883:739:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":54179,"nodeType":"ExpressionStatement","src":"21883:739:91"},{"expression":{"id":54187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54180,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"22633:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54184,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22677:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22669:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54182,"name":"address","nodeType":"ElementaryTypeName","src":"22669:7:91","typeDescriptions":{}}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22669:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54181,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"22645:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":54186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22645:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"22633:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":54188,"nodeType":"ExpressionStatement","src":"22633:55:91"},{"expression":{"id":54196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54189,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"22698:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54193,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22739:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22731:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54191,"name":"address","nodeType":"ElementaryTypeName","src":"22731:7:91","typeDescriptions":{}}},"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22731:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54190,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"22709:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":54195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22709:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"22698:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":54197,"nodeType":"ExpressionStatement","src":"22698:52:91"},{"expression":{"id":54205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54198,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"22760:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22804:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22796:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54200,"name":"address","nodeType":"ElementaryTypeName","src":"22796:7:91","typeDescriptions":{}}},"id":54203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22796:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54199,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"22773:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":54204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22773:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"22760:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54206,"nodeType":"ExpressionStatement","src":"22760:55:91"},{"expression":{"id":54214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54207,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"22825:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54211,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22880:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22872:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54209,"name":"address","nodeType":"ElementaryTypeName","src":"22872:7:91","typeDescriptions":{}}},"id":54212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22872:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54208,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"22842:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":54213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22842:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"22825:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54215,"nodeType":"ExpressionStatement","src":"22825:66:91"},{"expression":{"id":54223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54216,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"22901:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54220,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22943:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22935:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54218,"name":"address","nodeType":"ElementaryTypeName","src":"22935:7:91","typeDescriptions":{}}},"id":54221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22935:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54217,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"22912:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":54222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"22901:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":54224,"nodeType":"ExpressionStatement","src":"22901:53:91"},{"expression":{"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54225,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"22964:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54229,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22999:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22991:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54227,"name":"address","nodeType":"ElementaryTypeName","src":"22991:7:91","typeDescriptions":{}}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22991:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54226,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"22975:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22975:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"22964:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54233,"nodeType":"ExpressionStatement","src":"22964:46:91"},{"expression":{"id":54241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54234,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"23020:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54238,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"23057:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23049:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54236,"name":"address","nodeType":"ElementaryTypeName","src":"23049:7:91","typeDescriptions":{}}},"id":54239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23049:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54235,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"23031:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":54240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23031:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"23020:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54242,"nodeType":"ExpressionStatement","src":"23020:48:91"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"19354:17:91","parameters":{"id":53960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53943,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"19389:15:91","nodeType":"VariableDeclaration","scope":54244,"src":"19381:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53942,"name":"address","nodeType":"ElementaryTypeName","src":"19381:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53946,"mutability":"mutable","name":"_consensus","nameLocation":"19428:10:91","nodeType":"VariableDeclaration","scope":54244,"src":"19414:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53945,"nodeType":"UserDefinedTypeName","pathNode":{"id":53944,"name":"ConsensusType","nameLocations":["19414:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"19414:13:91"},"referencedDeclaration":37359,"src":"19414:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53948,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"19456:24:91","nodeType":"VariableDeclaration","scope":54244,"src":"19448:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53947,"name":"uint256","nodeType":"ElementaryTypeName","src":"19448:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53950,"mutability":"mutable","name":"_minValidators","nameLocation":"19497:14:91","nodeType":"VariableDeclaration","scope":54244,"src":"19490:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53949,"name":"uint64","nodeType":"ElementaryTypeName","src":"19490:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53952,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19528:12:91","nodeType":"VariableDeclaration","scope":54244,"src":"19521:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53951,"name":"uint64","nodeType":"ElementaryTypeName","src":"19521:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53954,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19556:19:91","nodeType":"VariableDeclaration","scope":54244,"src":"19550:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53953,"name":"uint8","nodeType":"ElementaryTypeName","src":"19550:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53957,"mutability":"mutable","name":"_permissionMode","nameLocation":"19600:15:91","nodeType":"VariableDeclaration","scope":54244,"src":"19585:30:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":53956,"nodeType":"UserDefinedTypeName","pathNode":{"id":53955,"name":"PermissionMode","nameLocations":["19585:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"19585:14:91"},"referencedDeclaration":50118,"src":"19585:14:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53959,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"19632:22:91","nodeType":"VariableDeclaration","scope":54244,"src":"19625:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53958,"name":"uint16","nodeType":"ElementaryTypeName","src":"19625:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19371:289:91"},"returnParameters":{"id":53961,"nodeType":"ParameterList","parameters":[],"src":"19668:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54337,"nodeType":"FunctionDefinition","src":"23081:997:91","nodes":[],"body":{"id":54336,"nodeType":"Block","src":"23173:905:91","nodes":[],"statements":[{"assignments":[54254],"declarations":[{"constant":false,"id":54254,"mutability":"mutable","name":"mockedManager","nameLocation":"23199:13:91","nodeType":"VariableDeclaration","scope":54336,"src":"23183:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"},"typeName":{"id":54253,"nodeType":"UserDefinedTypeName","pathNode":{"id":54252,"name":"SubnetActorMock","nameLocations":["23183:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"23183:15:91"},"referencedDeclaration":58342,"src":"23183:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"visibility":"internal"}],"id":54259,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23215:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorMock_$58342_$","typeString":"function () returns (contract SubnetActorMock)"},"typeName":{"id":54256,"nodeType":"UserDefinedTypeName","pathNode":{"id":54255,"name":"SubnetActorMock","nameLocations":["23219:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"23219:15:91"},"referencedDeclaration":58342,"src":"23219:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23215:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"nodeType":"VariableDeclarationStatement","src":"23183:53:91"},{"assignments":[54262],"declarations":[{"constant":false,"id":54262,"mutability":"mutable","name":"getter","nameLocation":"23269:6:91","nodeType":"VariableDeclaration","scope":54336,"src":"23246:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":54261,"nodeType":"UserDefinedTypeName","pathNode":{"id":54260,"name":"SubnetActorGetterFacet","nameLocations":["23246:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23246:22:91"},"referencedDeclaration":51235,"src":"23246:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":54267,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23278:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":54264,"nodeType":"UserDefinedTypeName","pathNode":{"id":54263,"name":"SubnetActorGetterFacet","nameLocations":["23282:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23282:22:91"},"referencedDeclaration":51235,"src":"23282:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":54266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23278:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"23246:60:91"},{"assignments":[54273],"declarations":[{"constant":false,"id":54273,"mutability":"mutable","name":"diamondCut","nameLocation":"23344:10:91","nodeType":"VariableDeclaration","scope":54336,"src":"23317:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54271,"nodeType":"UserDefinedTypeName","pathNode":{"id":54270,"name":"IDiamond.FacetCut","nameLocations":["23317:8:91","23326:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23317:17:91"},"referencedDeclaration":40159,"src":"23317:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54272,"nodeType":"ArrayTypeName","src":"23317:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54280,"initialValue":{"arguments":[{"hexValue":"32","id":54278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23381:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23357:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54275,"nodeType":"UserDefinedTypeName","pathNode":{"id":54274,"name":"IDiamond.FacetCut","nameLocations":["23361:8:91","23370:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23361:17:91"},"referencedDeclaration":40159,"src":"23361:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54276,"nodeType":"ArrayTypeName","src":"23361:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23357:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"23317:66:91"},{"expression":{"id":54296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54281,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"23394:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54283,"indexExpression":{"hexValue":"30","id":54282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23405:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23394:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54288,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54254,"src":"23482:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}],"id":54287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23474:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54286,"name":"address","nodeType":"ElementaryTypeName","src":"23474:7:91","typeDescriptions":{}}},"id":54289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23474:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54290,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23522:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23531:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23522:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23546:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23522:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54293,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"23586:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54284,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23424:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23433:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23424:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23460:12:91","23514:6:91","23567:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23424:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54295,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23410:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23394:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54297,"nodeType":"ExpressionStatement","src":"23394:241:91"},{"expression":{"id":54313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54298,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"23646:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54300,"indexExpression":{"hexValue":"31","id":54299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23657:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23646:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54305,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54262,"src":"23734:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23726:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54303,"name":"address","nodeType":"ElementaryTypeName","src":"23726:7:91","typeDescriptions":{}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23726:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54307,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23767:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23767:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23791:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23767:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54310,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"23831:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54301,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23676:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23685:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23676:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23712:12:91","23759:6:91","23812:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23676:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23662:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23646:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54314,"nodeType":"ExpressionStatement","src":"23646:227:91"},{"assignments":[54319],"declarations":[{"constant":false,"id":54319,"mutability":"mutable","name":"params","nameLocation":"23928:6:91","nodeType":"VariableDeclaration","scope":54336,"src":"23884:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54318,"nodeType":"UserDefinedTypeName","pathNode":{"id":54317,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["23884:18:91","23903:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"23884:36:91"},"referencedDeclaration":36253,"src":"23884:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54323,"initialValue":{"arguments":[{"id":54321,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54246,"src":"23973:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54320,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53088,"src":"23937:35:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23937:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"23884:92:91"},{"assignments":[54326],"declarations":[{"constant":false,"id":54326,"mutability":"mutable","name":"d","nameLocation":"24006:1:91","nodeType":"VariableDeclaration","scope":54336,"src":"23987:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54325,"nodeType":"UserDefinedTypeName","pathNode":{"id":54324,"name":"SubnetActorDiamond","nameLocations":["23987:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23987:18:91"},"referencedDeclaration":36615,"src":"23987:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54333,"initialValue":{"arguments":[{"id":54330,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"24033:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54331,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54319,"src":"24045:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24010:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54328,"nodeType":"UserDefinedTypeName","pathNode":{"id":54327,"name":"SubnetActorDiamond","nameLocations":["24014:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"24014:18:91"},"referencedDeclaration":36615,"src":"24014:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24010:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"23987:65:91"},{"expression":{"id":54334,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54326,"src":"24070:1:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":54251,"id":54335,"nodeType":"Return","src":"24063:8:91"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"23090:34:91","parameters":{"id":54247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54246,"mutability":"mutable","name":"gw","nameLocation":"23133:2:91","nodeType":"VariableDeclaration","scope":54337,"src":"23125:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54245,"name":"address","nodeType":"ElementaryTypeName","src":"23125:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23124:12:91"},"returnParameters":{"id":54251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54337,"src":"23153:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54249,"nodeType":"UserDefinedTypeName","pathNode":{"id":54248,"name":"SubnetActorDiamond","nameLocations":["23153:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23153:18:91"},"referencedDeclaration":36615,"src":"23153:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"23152:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54479,"nodeType":"FunctionDefinition","src":"24130:1703:91","nodes":[],"body":{"id":54478,"nodeType":"Block","src":"24268:1565:91","nodes":[],"statements":[{"assignments":[54351],"declarations":[{"constant":false,"id":54351,"mutability":"mutable","name":"diamondCut","nameLocation":"24305:10:91","nodeType":"VariableDeclaration","scope":54478,"src":"24278:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54349,"nodeType":"UserDefinedTypeName","pathNode":{"id":54348,"name":"IDiamond.FacetCut","nameLocations":["24278:8:91","24287:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24278:17:91"},"referencedDeclaration":40159,"src":"24278:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54350,"nodeType":"ArrayTypeName","src":"24278:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54358,"initialValue":{"arguments":[{"hexValue":"34","id":54356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24342:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24318:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54353,"nodeType":"UserDefinedTypeName","pathNode":{"id":54352,"name":"IDiamond.FacetCut","nameLocations":["24322:8:91","24331:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24322:17:91"},"referencedDeclaration":40159,"src":"24322:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54354,"nodeType":"ArrayTypeName","src":"24322:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24318:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24278:66:91"},{"assignments":[54361],"declarations":[{"constant":false,"id":54361,"mutability":"mutable","name":"regCutFacet","nameLocation":"24371:11:91","nodeType":"VariableDeclaration","scope":54478,"src":"24355:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54360,"nodeType":"UserDefinedTypeName","pathNode":{"id":54359,"name":"DiamondCutFacet","nameLocations":["24355:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24355:15:91"},"referencedDeclaration":36918,"src":"24355:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54366,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24385:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54363,"nodeType":"UserDefinedTypeName","pathNode":{"id":54362,"name":"DiamondCutFacet","nameLocations":["24389:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24389:15:91"},"referencedDeclaration":36918,"src":"24389:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24385:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"24355:51:91"},{"assignments":[54369],"declarations":[{"constant":false,"id":54369,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"24434:13:91","nodeType":"VariableDeclaration","scope":54478,"src":"24416:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54368,"nodeType":"UserDefinedTypeName","pathNode":{"id":54367,"name":"DiamondLoupeFacet","nameLocations":["24416:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24416:17:91"},"referencedDeclaration":37355,"src":"24416:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54374,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24450:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54371,"nodeType":"UserDefinedTypeName","pathNode":{"id":54370,"name":"DiamondLoupeFacet","nameLocations":["24454:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24454:17:91"},"referencedDeclaration":37355,"src":"24454:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24450:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"24416:57:91"},{"assignments":[54377],"declarations":[{"constant":false,"id":54377,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"24503:14:91","nodeType":"VariableDeclaration","scope":54478,"src":"24483:34:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54376,"nodeType":"UserDefinedTypeName","pathNode":{"id":54375,"name":"RegisterSubnetFacet","nameLocations":["24483:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24483:19:91"},"referencedDeclaration":52286,"src":"24483:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54382,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24520:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54379,"nodeType":"UserDefinedTypeName","pathNode":{"id":54378,"name":"RegisterSubnetFacet","nameLocations":["24524:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24524:19:91"},"referencedDeclaration":52286,"src":"24524:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}},"id":54381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24520:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"24483:62:91"},{"assignments":[54385],"declarations":[{"constant":false,"id":54385,"mutability":"mutable","name":"regGetterFacet","nameLocation":"24573:14:91","nodeType":"VariableDeclaration","scope":54478,"src":"24555:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54384,"nodeType":"UserDefinedTypeName","pathNode":{"id":54383,"name":"SubnetGetterFacet","nameLocations":["24555:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24555:17:91"},"referencedDeclaration":52524,"src":"24555:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54390,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24590:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54387,"nodeType":"UserDefinedTypeName","pathNode":{"id":54386,"name":"SubnetGetterFacet","nameLocations":["24594:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24594:17:91"},"referencedDeclaration":52524,"src":"24594:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}},"id":54389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24590:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"24555:58:91"},{"expression":{"id":54406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54391,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"24624:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54393,"indexExpression":{"hexValue":"30","id":54392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24635:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24624:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54398,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54369,"src":"24712:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24704:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54396,"name":"address","nodeType":"ElementaryTypeName","src":"24704:7:91","typeDescriptions":{}}},"id":54399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24704:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54400,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24752:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24761:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24752:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24776:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24752:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54403,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"24816:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54394,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24654:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24663:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24654:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24690:12:91","24744:6:91","24797:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24654:200:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24640:224:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24624:240:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54407,"nodeType":"ExpressionStatement","src":"24624:240:91"},{"expression":{"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54408,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"24874:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54410,"indexExpression":{"hexValue":"31","id":54409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24885:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24874:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54415,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54361,"src":"24962:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24954:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54413,"name":"address","nodeType":"ElementaryTypeName","src":"24954:7:91","typeDescriptions":{}}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24954:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54417,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25000:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25009:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25000:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25024:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25000:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54420,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"25064:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54411,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24904:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24913:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24904:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24940:12:91","24992:6:91","25045:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24904:198:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54422,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24890:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24874:238:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54424,"nodeType":"ExpressionStatement","src":"24874:238:91"},{"expression":{"id":54440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54425,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25122:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54427,"indexExpression":{"hexValue":"32","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25133:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25122:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54432,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54377,"src":"25210:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}],"id":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25202:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54430,"name":"address","nodeType":"ElementaryTypeName","src":"25202:7:91","typeDescriptions":{}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25202:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54434,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25251:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25251:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25275:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25251:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54437,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52703,"src":"25315:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54428,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25152:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25161:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25152:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25188:12:91","25243:6:91","25296:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25152:206:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25138:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25122:246:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54441,"nodeType":"ExpressionStatement","src":"25122:246:91"},{"expression":{"id":54457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54442,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25378:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54444,"indexExpression":{"hexValue":"33","id":54443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25389:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25378:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54449,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54385,"src":"25466:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}],"id":54448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25458:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54447,"name":"address","nodeType":"ElementaryTypeName","src":"25458:7:91","typeDescriptions":{}}},"id":54450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25458:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54451,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25507:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25516:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25507:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25531:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25507:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54454,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"25571:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54445,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25408:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25417:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25408:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25444:12:91","25499:6:91","25552:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25408:212:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54456,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25394:236:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25378:252:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54458,"nodeType":"ExpressionStatement","src":"25378:252:91"},{"assignments":[54461],"declarations":[{"constant":false,"id":54461,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"25663:17:91","nodeType":"VariableDeclaration","scope":54478,"src":"25641:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54460,"nodeType":"UserDefinedTypeName","pathNode":{"id":54459,"name":"SubnetRegistryDiamond","nameLocations":["25641:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25641:21:91"},"referencedDeclaration":36853,"src":"25641:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54468,"initialValue":{"arguments":[{"id":54465,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25709:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54466,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54340,"src":"25721:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"25683:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54463,"nodeType":"UserDefinedTypeName","pathNode":{"id":54462,"name":"SubnetRegistryDiamond","nameLocations":["25687:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25687:21:91"},"referencedDeclaration":36853,"src":"25687:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25683:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"25641:87:91"},{"eventCall":{"arguments":[{"arguments":[{"id":54472,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"25773:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25765:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54470,"name":"address","nodeType":"ElementaryTypeName","src":"25765:7:91","typeDescriptions":{}}},"id":54473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25765:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54469,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53123,"src":"25743:21:91","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25743:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54475,"nodeType":"EmitStatement","src":"25738:54:91"},{"expression":{"id":54476,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"25809:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54345,"id":54477,"nodeType":"Return","src":"25802:24:91"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"24139:20:91","parameters":{"id":54341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54340,"mutability":"mutable","name":"params","nameLocation":"24216:6:91","nodeType":"VariableDeclaration","scope":54479,"src":"24169:53:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54339,"nodeType":"UserDefinedTypeName","pathNode":{"id":54338,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["24169:21:91","24191:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"24169:39:91"},"referencedDeclaration":36652,"src":"24169:39:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"24159:69:91"},"returnParameters":{"id":54345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54479,"src":"24245:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54343,"nodeType":"UserDefinedTypeName","pathNode":{"id":54342,"name":"SubnetRegistryDiamond","nameLocations":["24245:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"24245:21:91"},"referencedDeclaration":36853,"src":"24245:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"24244:23:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54508,"nodeType":"FunctionDefinition","src":"25839:190:91","nodes":[],"body":{"id":54507,"nodeType":"Block","src":"25920:109:91","nodes":[],"statements":[{"body":{"id":54503,"nodeType":"Block","src":"25961:42:91","statements":[{"expression":{"id":54501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54497,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"25975:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54498,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54482,"src":"25982:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54500,"indexExpression":{"id":54499,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25990:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25982:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25975:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54502,"nodeType":"ExpressionStatement","src":"25975:17:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54491,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25949:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25953:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"25949:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54504,"initializationExpression":{"assignments":[54488],"declarations":[{"constant":false,"id":54488,"mutability":"mutable","name":"i","nameLocation":"25942:1:91","nodeType":"VariableDeclaration","scope":54504,"src":"25935:8:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54487,"name":"uint64","nodeType":"ElementaryTypeName","src":"25935:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54490,"initialValue":{"hexValue":"30","id":54489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25946:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25935:12:91"},"loopExpression":{"expression":{"id":54495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25956:3:91","subExpression":{"id":54494,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25956:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54496,"nodeType":"ExpressionStatement","src":"25956:3:91"},"nodeType":"ForStatement","src":"25930:73:91"},{"expression":{"id":54505,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"26019:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54486,"id":54506,"nodeType":"Return","src":"26012:10:91"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"25848:11:91","parameters":{"id":54483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54482,"mutability":"mutable","name":"weights","nameLocation":"25877:7:91","nodeType":"VariableDeclaration","scope":54508,"src":"25860:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54480,"name":"uint256","nodeType":"ElementaryTypeName","src":"25860:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54481,"nodeType":"ArrayTypeName","src":"25860:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25859:26:91"},"returnParameters":{"id":54486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54485,"mutability":"mutable","name":"sum","nameLocation":"25915:3:91","nodeType":"VariableDeclaration","scope":54508,"src":"25907:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54484,"name":"uint256","nodeType":"ElementaryTypeName","src":"25907:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25906:13:91"},"scope":55676,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54683,"nodeType":"FunctionDefinition","src":"26035:933:91","nodes":[],"body":{"id":54682,"nodeType":"Block","src":"26138:830:91","nodes":[],"statements":[{"expression":{"id":54525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54518,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26148:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26178:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26161:16:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54520,"nodeType":"UserDefinedTypeName","pathNode":{"id":54519,"name":"FvmAddress","nameLocations":["26165:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26165:10:91"},"referencedDeclaration":49951,"src":"26165:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54521,"nodeType":"ArrayTypeName","src":"26165:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26161:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"26148:32:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54526,"nodeType":"ExpressionStatement","src":"26148:32:91"},{"expression":{"id":54537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54527,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26190:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54529,"indexExpression":{"hexValue":"30","id":54528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26201:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26190:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26236:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54532,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26228:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26231:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26228:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26228:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54530,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26206:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26223:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26206:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26206:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26190:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54538,"nodeType":"ExpressionStatement","src":"26190:51:91"},{"expression":{"id":54549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54539,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26251:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54541,"indexExpression":{"hexValue":"31","id":54540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26262:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26251:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26297:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54544,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26289:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26292:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26289:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26289:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54542,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26267:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26284:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26267:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26267:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26251:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54550,"nodeType":"ExpressionStatement","src":"26251:51:91"},{"expression":{"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54551,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26312:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54553,"indexExpression":{"hexValue":"32","id":54552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26323:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26312:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26358:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54556,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26350:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26353:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26350:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26350:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54554,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26328:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26345:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26328:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26328:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26312:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54562,"nodeType":"ExpressionStatement","src":"26312:51:91"},{"expression":{"id":54569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54563,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26374:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26400:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26386:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54564,"name":"address","nodeType":"ElementaryTypeName","src":"26390:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54565,"nodeType":"ArrayTypeName","src":"26390:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26386:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"26374:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54570,"nodeType":"ExpressionStatement","src":"26374:28:91"},{"expression":{"id":54578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54571,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26412:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54573,"indexExpression":{"hexValue":"30","id":54572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26422:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26412:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26435:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54574,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26427:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26430:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26427:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26427:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26412:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54579,"nodeType":"ExpressionStatement","src":"26412:27:91"},{"expression":{"id":54587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54580,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26449:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54582,"indexExpression":{"hexValue":"31","id":54581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26459:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26449:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26472:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54583,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26464:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26467:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26464:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26464:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26449:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54588,"nodeType":"ExpressionStatement","src":"26449:27:91"},{"expression":{"id":54596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54589,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26486:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54591,"indexExpression":{"hexValue":"32","id":54590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26496:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26486:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26509:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54592,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26501:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26504:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26501:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26501:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26486:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54597,"nodeType":"ExpressionStatement","src":"26486:27:91"},{"assignments":[54602],"declarations":[{"constant":false,"id":54602,"mutability":"mutable","name":"weights","nameLocation":"26541:7:91","nodeType":"VariableDeclaration","scope":54682,"src":"26524:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"26524:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54601,"nodeType":"ArrayTypeName","src":"26524:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54608,"initialValue":{"arguments":[{"hexValue":"33","id":54606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26565:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26551:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54603,"name":"uint256","nodeType":"ElementaryTypeName","src":"26555:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54604,"nodeType":"ArrayTypeName","src":"26555:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26551:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"26524:43:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26594:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54612,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26586:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26589:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26586:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26586:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26600:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54609,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26578:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26581:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26578:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26578:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54618,"nodeType":"ExpressionStatement","src":"26578:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26628:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54622,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26620:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26623:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26620:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26620:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26634:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54619,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26612:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26615:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26612:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26612:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54628,"nodeType":"ExpressionStatement","src":"26612:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26662:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54632,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26654:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26657:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26654:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26654:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26668:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54629,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26646:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26649:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26646:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54638,"nodeType":"ExpressionStatement","src":"26646:24:91"},{"expression":{"id":54643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54639,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26681:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54641,"indexExpression":{"hexValue":"30","id":54640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26689:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26681:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26694:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26681:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54644,"nodeType":"ExpressionStatement","src":"26681:16:91"},{"expression":{"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54645,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26707:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54647,"indexExpression":{"hexValue":"31","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26715:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26707:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26720:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26707:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54650,"nodeType":"ExpressionStatement","src":"26707:16:91"},{"expression":{"id":54655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54651,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26733:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54653,"indexExpression":{"hexValue":"32","id":54652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26741:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26733:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26746:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26733:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54656,"nodeType":"ExpressionStatement","src":"26733:16:91"},{"assignments":[54659],"declarations":[{"constant":false,"id":54659,"mutability":"mutable","name":"finality","nameLocation":"26782:8:91","nodeType":"VariableDeclaration","scope":54682,"src":"26760:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54658,"nodeType":"UserDefinedTypeName","pathNode":{"id":54657,"name":"ParentFinality","nameLocations":["26760:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"26760:14:91"},"referencedDeclaration":49871,"src":"26760:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54668,"initialValue":{"arguments":[{"expression":{"id":54661,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26817:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26823:6:91","memberName":"number","nodeType":"MemberAccess","src":"26817:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26850:1:91","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":54664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26842:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26842:7:91","typeDescriptions":{}}},"id":54666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54660,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"26793:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["26809:6:91","26831:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"26793:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"26760:94:91"},{"expression":{"arguments":[{"expression":{"id":54672,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"26874:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26885:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"26874:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54669,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26865:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26868:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26865:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26865:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54675,"nodeType":"ExpressionStatement","src":"26865:33:91"},{"expression":{"arguments":[{"id":54679,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54659,"src":"26952:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54676,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"26908:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26931:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"26908:43:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49871_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26908:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54681,"nodeType":"ExpressionStatement","src":"26908:53:91"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"26044:15:91","parameters":{"id":54509,"nodeType":"ParameterList","parameters":[],"src":"26059:2:91"},"returnParameters":{"id":54517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54513,"mutability":"mutable","name":"validators","nameLocation":"26098:10:91","nodeType":"VariableDeclaration","scope":54683,"src":"26078:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54511,"nodeType":"UserDefinedTypeName","pathNode":{"id":54510,"name":"FvmAddress","nameLocations":["26078:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26078:10:91"},"referencedDeclaration":49951,"src":"26078:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54512,"nodeType":"ArrayTypeName","src":"26078:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54516,"mutability":"mutable","name":"addresses","nameLocation":"26127:9:91","nodeType":"VariableDeclaration","scope":54683,"src":"26110:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54514,"name":"address","nodeType":"ElementaryTypeName","src":"26110:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54515,"nodeType":"ArrayTypeName","src":"26110:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26077:60:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54776,"nodeType":"FunctionDefinition","src":"26974:1297:91","nodes":[],"body":{"id":54775,"nodeType":"Block","src":"27058:1213:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54693,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"27083:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54694,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27110:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54692,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55583,"src":"27068:14:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27068:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54696,"nodeType":"ExpressionStatement","src":"27068:46:91"},{"assignments":[54699],"declarations":[{"constant":false,"id":54699,"mutability":"mutable","name":"crossMsg","nameLocation":"27141:8:91","nodeType":"VariableDeclaration","scope":54775,"src":"27125:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54698,"nodeType":"UserDefinedTypeName","pathNode":{"id":54697,"name":"CrossMsg","nameLocations":["27125:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27125:8:91"},"referencedDeclaration":49927,"src":"27125:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54739,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54707,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54685,"src":"27304:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54703,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"27263:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27272:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27263:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27263:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27289:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27263:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27263:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54711,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54685,"src":"27367:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54709,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27345:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27362:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27345:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27345:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54702,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27220:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27253:8:91","27333:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27220:173:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54719,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27499:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54715,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"27458:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27467:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27458:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27458:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27484:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27458:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27458:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54723,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27559:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54721,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27537:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27554:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27537:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27537:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54714,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27415:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27448:8:91","27525:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27415:167:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54726,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"27607:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27631:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27607:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27657:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54730,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"27684:11:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27731:1:91","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":54732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27721:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54731,"name":"bytes","nodeType":"ElementaryTypeName","src":"27725:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27721:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54735,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"27756:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54701,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"27184:11:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27214:4:91","27411:2:91","27600:5:91","27650:5:91","27676:6:91","27713:6:91","27751:3:91"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"27184:608:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27815:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54700,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"27152:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27175:7:91","27806:7:91"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"27152:679:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"27125:706:91"},{"assignments":[54744],"declarations":[{"constant":false,"id":54744,"mutability":"mutable","name":"msgs","nameLocation":"27859:4:91","nodeType":"VariableDeclaration","scope":54775,"src":"27841:22:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54742,"nodeType":"UserDefinedTypeName","pathNode":{"id":54741,"name":"CrossMsg","nameLocations":["27841:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27841:8:91"},"referencedDeclaration":49927,"src":"27841:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54743,"nodeType":"ArrayTypeName","src":"27841:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54751,"initialValue":{"arguments":[{"hexValue":"31","id":54749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27881:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27866:14:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54746,"nodeType":"UserDefinedTypeName","pathNode":{"id":54745,"name":"CrossMsg","nameLocations":["27870:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27870:8:91"},"referencedDeclaration":49927,"src":"27870:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54747,"nodeType":"ArrayTypeName","src":"27870:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27866:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27841:42:91"},{"expression":{"id":54756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54752,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"27893:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54754,"indexExpression":{"hexValue":"30","id":54753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27898:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27893:7:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54755,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"27903:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"27893:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54757,"nodeType":"ExpressionStatement","src":"27893:18:91"},{"expression":{"arguments":[{"expression":{"id":54761,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28150:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28161:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28150:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54758,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28141:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28144:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"28141:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28141:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54764,"nodeType":"ExpressionStatement","src":"28141:33:91"},{"expression":{"arguments":[{"id":54768,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"28224:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54765,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"28184:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28205:18:91","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"28184:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28184:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54770,"nodeType":"ExpressionStatement","src":"28184:45:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54771,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"28247:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28256:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40534,"src":"28247:15:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49927_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28247:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54691,"id":54774,"nodeType":"Return","src":"28240:24:91"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"26983:20:91","parameters":{"id":54688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54685,"mutability":"mutable","name":"caller","nameLocation":"27012:6:91","nodeType":"VariableDeclaration","scope":54776,"src":"27004:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54684,"name":"address","nodeType":"ElementaryTypeName","src":"27004:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54687,"mutability":"mutable","name":"src","nameLocation":"27028:3:91","nodeType":"VariableDeclaration","scope":54776,"src":"27020:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54686,"name":"address","nodeType":"ElementaryTypeName","src":"27020:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27003:29:91"},"returnParameters":{"id":54691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54776,"src":"27049:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27049:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27048:9:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54787,"nodeType":"FunctionDefinition","src":"28277:93:91","nodes":[],"body":{"id":54786,"nodeType":"Block","src":"28325:45:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54782,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54778,"src":"28348:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28359:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54781,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54787,54870],"referencedDeclaration":54870,"src":"28335:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28335:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54785,"nodeType":"ExpressionStatement","src":"28335:28:91"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28286:12:91","parameters":{"id":54779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54778,"mutability":"mutable","name":"validator","nameLocation":"28307:9:91","nodeType":"VariableDeclaration","scope":54787,"src":"28299:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54777,"name":"address","nodeType":"ElementaryTypeName","src":"28299:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28298:19:91"},"returnParameters":{"id":54780,"nodeType":"ParameterList","parameters":[],"src":"28325:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54870,"nodeType":"FunctionDefinition","src":"28376:610:91","nodes":[],"body":{"id":54869,"nodeType":"Block","src":"28440:546:91","nodes":[],"statements":[{"assignments":[54798],"declarations":[{"constant":false,"id":54798,"mutability":"mutable","name":"validators","nameLocation":"28470:10:91","nodeType":"VariableDeclaration","scope":54869,"src":"28450:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54796,"nodeType":"UserDefinedTypeName","pathNode":{"id":54795,"name":"FvmAddress","nameLocations":["28450:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28450:10:91"},"referencedDeclaration":49951,"src":"28450:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54797,"nodeType":"ArrayTypeName","src":"28450:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54805,"initialValue":{"arguments":[{"hexValue":"31","id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28500:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28483:16:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54800,"nodeType":"UserDefinedTypeName","pathNode":{"id":54799,"name":"FvmAddress","nameLocations":["28487:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28487:10:91"},"referencedDeclaration":49951,"src":"28487:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54801,"nodeType":"ArrayTypeName","src":"28487:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28483:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28450:52:91"},{"expression":{"id":54813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54806,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54798,"src":"28512:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54808,"indexExpression":{"hexValue":"30","id":54807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28523:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28512:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54789,"src":"28550:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54809,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"28528:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28545:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"28528:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28528:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"28512:48:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54814,"nodeType":"ExpressionStatement","src":"28512:48:91"},{"assignments":[54819],"declarations":[{"constant":false,"id":54819,"mutability":"mutable","name":"weights","nameLocation":"28587:7:91","nodeType":"VariableDeclaration","scope":54869,"src":"28570:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54817,"name":"uint256","nodeType":"ElementaryTypeName","src":"28570:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54818,"nodeType":"ArrayTypeName","src":"28570:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54825,"initialValue":{"arguments":[{"hexValue":"31","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28611:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28597:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54820,"name":"uint256","nodeType":"ElementaryTypeName","src":"28601:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54821,"nodeType":"ArrayTypeName","src":"28601:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28597:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28570:43:91"},{"expression":{"id":54830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54826,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54819,"src":"28623:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54828,"indexExpression":{"hexValue":"30","id":54827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28631:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28623:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54829,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54791,"src":"28636:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28623:19:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54831,"nodeType":"ExpressionStatement","src":"28623:19:91"},{"expression":{"arguments":[{"id":54835,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54789,"src":"28661:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28672:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54832,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28653:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28656:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28653:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28653:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54838,"nodeType":"ExpressionStatement","src":"28653:21:91"},{"assignments":[54841],"declarations":[{"constant":false,"id":54841,"mutability":"mutable","name":"finality","nameLocation":"28706:8:91","nodeType":"VariableDeclaration","scope":54869,"src":"28684:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54840,"nodeType":"UserDefinedTypeName","pathNode":{"id":54839,"name":"ParentFinality","nameLocations":["28684:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"28684:14:91"},"referencedDeclaration":49871,"src":"28684:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54850,"initialValue":{"arguments":[{"expression":{"id":54843,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28741:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28747:6:91","memberName":"number","nodeType":"MemberAccess","src":"28741:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28774:1:91","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":54846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28766:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28766:7:91","typeDescriptions":{}}},"id":54848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28766:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54842,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"28717:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28733:6:91","28755:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"28717:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"28684:94:91"},{"expression":{"arguments":[{"expression":{"id":54854,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28868:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28879:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28868:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54851,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28854:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28857:10:91","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"28854:13:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28854:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54857,"nodeType":"ExpressionStatement","src":"28854:38:91"},{"expression":{"arguments":[{"id":54861,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54841,"src":"28946:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54858,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"28902:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28925:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"28902:43:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49871_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28902:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54863,"nodeType":"ExpressionStatement","src":"28902:53:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54864,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28965:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28968:9:91","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"28965:12:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28965:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54868,"nodeType":"ExpressionStatement","src":"28965:14:91"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28385:12:91","parameters":{"id":54792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54789,"mutability":"mutable","name":"validator","nameLocation":"28406:9:91","nodeType":"VariableDeclaration","scope":54870,"src":"28398:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54788,"name":"address","nodeType":"ElementaryTypeName","src":"28398:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54791,"mutability":"mutable","name":"weight","nameLocation":"28425:6:91","nodeType":"VariableDeclaration","scope":54870,"src":"28417:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54790,"name":"uint256","nodeType":"ElementaryTypeName","src":"28417:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28397:35:91"},"returnParameters":{"id":54793,"nodeType":"ParameterList","parameters":[],"src":"28440:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54883,"nodeType":"FunctionDefinition","src":"28992:112:91","nodes":[],"body":{"id":54882,"nodeType":"Block","src":"29036:68:91","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29058:30:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54879,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54872,"src":"29090:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54875,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"29046:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29054:3:91","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"29046:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29046:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54881,"nodeType":"ExpressionStatement","src":"29046:51:91"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"29001:6:91","parameters":{"id":54873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54872,"mutability":"mutable","name":"amount","nameLocation":"29016:6:91","nodeType":"VariableDeclaration","scope":54883,"src":"29008:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54871,"name":"uint256","nodeType":"ElementaryTypeName","src":"29008:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29007:16:91"},"returnParameters":{"id":54874,"nodeType":"ParameterList","parameters":[],"src":"29036:0:91"},"scope":55676,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54898,"nodeType":"FunctionDefinition","src":"29110:131:91","nodes":[],"body":{"id":54897,"nodeType":"Block","src":"29174:67:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54891,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54885,"src":"29189:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54892,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54887,"src":"29204:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54893,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29216:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29227:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29216:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}],"id":54890,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54898,55023],"referencedDeclaration":55023,"src":"29184:4:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50182_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29184:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54896,"nodeType":"ExpressionStatement","src":"29184:50:91"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29119:4:91","parameters":{"id":54888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54885,"mutability":"mutable","name":"funderAddress","nameLocation":"29132:13:91","nodeType":"VariableDeclaration","scope":54898,"src":"29124:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54884,"name":"address","nodeType":"ElementaryTypeName","src":"29124:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54887,"mutability":"mutable","name":"fundAmount","nameLocation":"29155:10:91","nodeType":"VariableDeclaration","scope":54898,"src":"29147:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54886,"name":"uint256","nodeType":"ElementaryTypeName","src":"29147:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29123:43:91"},"returnParameters":{"id":54889,"nodeType":"ParameterList","parameters":[],"src":"29174:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55023,"nodeType":"FunctionDefinition","src":"29247:1180:91","nodes":[],"body":{"id":55022,"nodeType":"Block","src":"29328:1099:91","nodes":[],"statements":[{"assignments":[54910,null,54912,null,54914],"declarations":[{"constant":false,"id":54910,"mutability":"mutable","name":"subnetId","nameLocation":"29420:8:91","nodeType":"VariableDeclaration","scope":55022,"src":"29404:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54909,"nodeType":"UserDefinedTypeName","pathNode":{"id":54908,"name":"SubnetID","nameLocations":["29404:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"29404:8:91"},"referencedDeclaration":50030,"src":"29404:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54912,"mutability":"mutable","name":"nonceBefore","nameLocation":"29440:11:91","nodeType":"VariableDeclaration","scope":55022,"src":"29432:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54911,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54914,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"29463:16:91","nodeType":"VariableDeclaration","scope":55022,"src":"29455:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54913,"name":"uint256","nodeType":"ElementaryTypeName","src":"29455:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54921,"initialValue":{"arguments":[{"arguments":[{"id":54918,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"29501:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29493:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54916,"name":"address","nodeType":"ElementaryTypeName","src":"29493:7:91","typeDescriptions":{}}},"id":54919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54915,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"29483:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29483:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29403:109:91"},{"assignments":[54923],"declarations":[{"constant":false,"id":54923,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"29531:25:91","nodeType":"VariableDeclaration","scope":55022,"src":"29523:33:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54922,"name":"uint256","nodeType":"ElementaryTypeName","src":"29523:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54930,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54926,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"29595:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54924,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"29559:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29568:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"29559:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29559:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29607:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29559:49:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29523:85:91"},{"assignments":[54932],"declarations":[{"constant":false,"id":54932,"mutability":"mutable","name":"expectedNonce","nameLocation":"29626:13:91","nodeType":"VariableDeclaration","scope":55022,"src":"29618:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54931,"name":"uint256","nodeType":"ElementaryTypeName","src":"29618:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54936,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54933,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54912,"src":"29642:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29656:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29642:15:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29618:39:91"},{"assignments":[54938],"declarations":[{"constant":false,"id":54938,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"29675:18:91","nodeType":"VariableDeclaration","scope":55022,"src":"29667:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54937,"name":"uint256","nodeType":"ElementaryTypeName","src":"29667:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54942,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54939,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54914,"src":"29696:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54940,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"29715:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29696:29:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29667:58:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54944,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"29744:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29753:11:91","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"29744:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29744:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29769:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29744:26:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29772:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29736:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29736:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54951,"nodeType":"ExpressionStatement","src":"29736:55:91"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54952,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54905,"src":"29806:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54953,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29814:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29825:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29814:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29806:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54969,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54905,"src":"29949:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54970,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29957:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29968:5:91","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"29957:16:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29949:24:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54985,"nodeType":"IfStatement","src":"29945:138:91","trueBody":{"id":54984,"nodeType":"Block","src":"29975:108:91","statements":[{"expression":{"arguments":[{"id":54976,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"30013:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54979,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54900,"src":"30045:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54977,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"30023:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30040:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"30023:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30023:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54981,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"30061:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54973,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"29989:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29999:13:91","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"29989:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29989:83:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54983,"nodeType":"ExpressionStatement","src":"29989:83:91"}]}},"id":54986,"nodeType":"IfStatement","src":"29802:281:91","trueBody":{"id":54968,"nodeType":"Block","src":"29833:106:91","statements":[{"expression":{"arguments":[{"id":54961,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"29881:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54964,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54900,"src":"29913:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54962,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29891:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29908:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29891:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29891:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54956,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"29847:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29857:4:91","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"29847:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54959,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"29869:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29847:33:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29847:81:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54967,"nodeType":"ExpressionStatement","src":"29847:81:91"}]}},{"assignments":[null,null,54988,null,54990],"declarations":[null,null,{"constant":false,"id":54988,"mutability":"mutable","name":"nonce","nameLocation":"30106:5:91","nodeType":"VariableDeclaration","scope":55022,"src":"30098:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54987,"name":"uint256","nodeType":"ElementaryTypeName","src":"30098:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54990,"mutability":"mutable","name":"circSupply","nameLocation":"30123:10:91","nodeType":"VariableDeclaration","scope":55022,"src":"30115:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54989,"name":"uint256","nodeType":"ElementaryTypeName","src":"30115:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54997,"initialValue":{"arguments":[{"arguments":[{"id":54994,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"30155:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30147:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54992,"name":"address","nodeType":"ElementaryTypeName","src":"30147:7:91","typeDescriptions":{}}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30147:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54991,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"30137:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30137:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30093:73:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55001,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"30221:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54999,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"30185:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30194:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"30185:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30185:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55003,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54923,"src":"30234:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30185:74:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":55005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30261:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54998,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30177:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30177:105:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55007,"nodeType":"ExpressionStatement","src":"30177:105:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55009,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54988,"src":"30301:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55010,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54932,"src":"30310:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30301:22:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30325:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55008,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30293:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30293:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55014,"nodeType":"ExpressionStatement","src":"30293:51:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55016,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54990,"src":"30362:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55017,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54938,"src":"30376:18:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30362:32:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30396:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55015,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30354:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30354:66:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55021,"nodeType":"ExpressionStatement","src":"30354:66:91"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29256:4:91","parameters":{"id":54906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54900,"mutability":"mutable","name":"funderAddress","nameLocation":"29269:13:91","nodeType":"VariableDeclaration","scope":55023,"src":"29261:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54899,"name":"address","nodeType":"ElementaryTypeName","src":"29261:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54902,"mutability":"mutable","name":"fundAmount","nameLocation":"29292:10:91","nodeType":"VariableDeclaration","scope":55023,"src":"29284:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54901,"name":"uint256","nodeType":"ElementaryTypeName","src":"29284:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54905,"mutability":"mutable","name":"mode","nameLocation":"29315:4:91","nodeType":"VariableDeclaration","scope":55023,"src":"29304:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":54904,"nodeType":"UserDefinedTypeName","pathNode":{"id":54903,"name":"SupplyKind","nameLocations":["29304:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"29304:10:91"},"referencedDeclaration":50182,"src":"29304:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"29260:60:91"},"returnParameters":{"id":54907,"nodeType":"ParameterList","parameters":[],"src":"29328:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55054,"nodeType":"FunctionDefinition","src":"30433:243:91","nodes":[],"body":{"id":55053,"nodeType":"Block","src":"30501:175:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55033,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55025,"src":"30520:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55030,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30511:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30514:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"30511:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30511:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55035,"nodeType":"ExpressionStatement","src":"30511:26:91"},{"expression":{"arguments":[{"id":55039,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55025,"src":"30555:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":55040,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"30573:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30601:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30573:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":55036,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30547:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30550:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"30547:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30547:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55044,"nodeType":"ExpressionStatement","src":"30547:56:91"},{"expression":{"arguments":[{"id":55050,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55027,"src":"30662:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":55045,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"30613:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":55047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30623:4:91","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"30613:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55048,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"30635:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"30613:48:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":55051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30613:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55052,"nodeType":"ExpressionStatement","src":"30613:56:91"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"30442:4:91","parameters":{"id":55028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55025,"mutability":"mutable","name":"validatorAddress","nameLocation":"30455:16:91","nodeType":"VariableDeclaration","scope":55054,"src":"30447:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55024,"name":"address","nodeType":"ElementaryTypeName","src":"30447:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55027,"mutability":"mutable","name":"pubkey","nameLocation":"30486:6:91","nodeType":"VariableDeclaration","scope":55054,"src":"30473:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55026,"name":"bytes","nodeType":"ElementaryTypeName","src":"30473:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30446:47:91"},"returnParameters":{"id":55029,"nodeType":"ParameterList","parameters":[],"src":"30501:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55101,"nodeType":"FunctionDefinition","src":"30682:298:91","nodes":[],"body":{"id":55100,"nodeType":"Block","src":"30750:230:91","nodes":[],"statements":[{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"validators","nameLocation":"30777:10:91","nodeType":"VariableDeclaration","scope":55100,"src":"30760:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55063,"name":"address","nodeType":"ElementaryTypeName","src":"30760:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55064,"nodeType":"ArrayTypeName","src":"30760:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55071,"initialValue":{"arguments":[{"hexValue":"31","id":55069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30804:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":55068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30790:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55066,"name":"address","nodeType":"ElementaryTypeName","src":"30794:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55067,"nodeType":"ArrayTypeName","src":"30794:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30790:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30760:46:91"},{"expression":{"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55072,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"30816:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55074,"indexExpression":{"hexValue":"30","id":55073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30827:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30816:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55075,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55056,"src":"30832:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30816:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55077,"nodeType":"ExpressionStatement","src":"30816:25:91"},{"assignments":[55082],"declarations":[{"constant":false,"id":55082,"mutability":"mutable","name":"privKeys","nameLocation":"30869:8:91","nodeType":"VariableDeclaration","scope":55100,"src":"30852:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55080,"name":"uint256","nodeType":"ElementaryTypeName","src":"30852:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55081,"nodeType":"ArrayTypeName","src":"30852:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55088,"initialValue":{"arguments":[{"hexValue":"31","id":55086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30894:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":55085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30880:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55083,"name":"uint256","nodeType":"ElementaryTypeName","src":"30884:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55084,"nodeType":"ArrayTypeName","src":"30884:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30880:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30852:44:91"},{"expression":{"id":55093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55089,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55082,"src":"30906:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55091,"indexExpression":{"hexValue":"30","id":55090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30915:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30906:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55092,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55058,"src":"30920:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30906:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55094,"nodeType":"ExpressionStatement","src":"30906:21:91"},{"expression":{"arguments":[{"id":55096,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"30952:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55097,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55082,"src":"30964:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55095,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"30938:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30938:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55099,"nodeType":"ExpressionStatement","src":"30938:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30691:13:91","parameters":{"id":55059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55056,"mutability":"mutable","name":"validator","nameLocation":"30713:9:91","nodeType":"VariableDeclaration","scope":55101,"src":"30705:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55055,"name":"address","nodeType":"ElementaryTypeName","src":"30705:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55058,"mutability":"mutable","name":"privKey","nameLocation":"30732:7:91","nodeType":"VariableDeclaration","scope":55101,"src":"30724:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55057,"name":"uint256","nodeType":"ElementaryTypeName","src":"30724:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30704:36:91"},"returnParameters":{"id":55060,"nodeType":"ParameterList","parameters":[],"src":"30750:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55164,"nodeType":"FunctionDefinition","src":"30986:408:91","nodes":[],"body":{"id":55163,"nodeType":"Block","src":"31094:300:91","nodes":[],"statements":[{"assignments":[55116],"declarations":[{"constant":false,"id":55116,"mutability":"mutable","name":"validators","nameLocation":"31121:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"31104:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55114,"name":"address","nodeType":"ElementaryTypeName","src":"31104:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55115,"nodeType":"ArrayTypeName","src":"31104:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55122,"initialValue":{"arguments":[{"hexValue":"32","id":55120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31148:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":55119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31134:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55117,"name":"address","nodeType":"ElementaryTypeName","src":"31138:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55118,"nodeType":"ArrayTypeName","src":"31138:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31134:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31104:46:91"},{"expression":{"id":55127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55123,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31160:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55125,"indexExpression":{"hexValue":"30","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31171:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31160:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55126,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55103,"src":"31176:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31160:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55128,"nodeType":"ExpressionStatement","src":"31160:26:91"},{"expression":{"id":55133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55129,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31196:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55131,"indexExpression":{"hexValue":"31","id":55130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31207:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31196:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55132,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55107,"src":"31212:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31196:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55134,"nodeType":"ExpressionStatement","src":"31196:26:91"},{"assignments":[55139],"declarations":[{"constant":false,"id":55139,"mutability":"mutable","name":"privKeys","nameLocation":"31250:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"31233:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55137,"name":"uint256","nodeType":"ElementaryTypeName","src":"31233:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55138,"nodeType":"ArrayTypeName","src":"31233:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55145,"initialValue":{"arguments":[{"hexValue":"32","id":55143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31275:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":55142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31261:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"31265:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55141,"nodeType":"ArrayTypeName","src":"31265:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31261:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31233:44:91"},{"expression":{"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55146,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31287:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55148,"indexExpression":{"hexValue":"30","id":55147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31296:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31287:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55149,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55105,"src":"31301:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31287:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55151,"nodeType":"ExpressionStatement","src":"31287:22:91"},{"expression":{"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55152,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31319:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55154,"indexExpression":{"hexValue":"31","id":55153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31328:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31319:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55155,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55109,"src":"31333:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31319:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55157,"nodeType":"ExpressionStatement","src":"31319:22:91"},{"expression":{"arguments":[{"id":55159,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31366:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55160,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31378:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55158,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"31352:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31352:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55162,"nodeType":"ExpressionStatement","src":"31352:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30995:13:91","parameters":{"id":55110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55103,"mutability":"mutable","name":"validator1","nameLocation":"31017:10:91","nodeType":"VariableDeclaration","scope":55164,"src":"31009:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55102,"name":"address","nodeType":"ElementaryTypeName","src":"31009:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55105,"mutability":"mutable","name":"privKey1","nameLocation":"31037:8:91","nodeType":"VariableDeclaration","scope":55164,"src":"31029:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55104,"name":"uint256","nodeType":"ElementaryTypeName","src":"31029:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55107,"mutability":"mutable","name":"validator2","nameLocation":"31055:10:91","nodeType":"VariableDeclaration","scope":55164,"src":"31047:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55106,"name":"address","nodeType":"ElementaryTypeName","src":"31047:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55109,"mutability":"mutable","name":"privKey2","nameLocation":"31075:8:91","nodeType":"VariableDeclaration","scope":55164,"src":"31067:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55108,"name":"uint256","nodeType":"ElementaryTypeName","src":"31067:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31008:76:91"},"returnParameters":{"id":55111,"nodeType":"ParameterList","parameters":[],"src":"31094:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55243,"nodeType":"FunctionDefinition","src":"31400:568:91","nodes":[],"body":{"id":55242,"nodeType":"Block","src":"31600:368:91","nodes":[],"statements":[{"assignments":[55183],"declarations":[{"constant":false,"id":55183,"mutability":"mutable","name":"validators","nameLocation":"31627:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31610:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55181,"name":"address","nodeType":"ElementaryTypeName","src":"31610:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55182,"nodeType":"ArrayTypeName","src":"31610:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55189,"initialValue":{"arguments":[{"hexValue":"33","id":55187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31654:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":55186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31640:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55184,"name":"address","nodeType":"ElementaryTypeName","src":"31644:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55185,"nodeType":"ArrayTypeName","src":"31644:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31640:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31610:46:91"},{"expression":{"id":55194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55190,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31666:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55192,"indexExpression":{"hexValue":"30","id":55191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31677:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31666:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55193,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55166,"src":"31682:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31666:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55195,"nodeType":"ExpressionStatement","src":"31666:26:91"},{"expression":{"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55196,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31702:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55198,"indexExpression":{"hexValue":"31","id":55197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31713:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31702:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55199,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55170,"src":"31718:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31702:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55201,"nodeType":"ExpressionStatement","src":"31702:26:91"},{"expression":{"id":55206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55202,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31738:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55204,"indexExpression":{"hexValue":"32","id":55203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31749:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31738:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55205,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55174,"src":"31754:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31738:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55207,"nodeType":"ExpressionStatement","src":"31738:26:91"},{"assignments":[55212],"declarations":[{"constant":false,"id":55212,"mutability":"mutable","name":"privKeys","nameLocation":"31792:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31775:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55210,"name":"uint256","nodeType":"ElementaryTypeName","src":"31775:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55211,"nodeType":"ArrayTypeName","src":"31775:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55218,"initialValue":{"arguments":[{"hexValue":"33","id":55216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31817:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":55215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31803:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55213,"name":"uint256","nodeType":"ElementaryTypeName","src":"31807:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55214,"nodeType":"ArrayTypeName","src":"31807:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31803:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31775:44:91"},{"expression":{"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55219,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31829:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55221,"indexExpression":{"hexValue":"30","id":55220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31838:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31829:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55222,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"31843:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31829:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55224,"nodeType":"ExpressionStatement","src":"31829:22:91"},{"expression":{"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55225,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31861:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55227,"indexExpression":{"hexValue":"31","id":55226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31870:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31861:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55228,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55172,"src":"31875:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31861:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55230,"nodeType":"ExpressionStatement","src":"31861:22:91"},{"expression":{"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55231,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31893:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55233,"indexExpression":{"hexValue":"32","id":55232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31902:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31893:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55234,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55176,"src":"31907:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31893:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55236,"nodeType":"ExpressionStatement","src":"31893:22:91"},{"expression":{"arguments":[{"id":55238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31940:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55239,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31952:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55237,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"31926:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31926:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55241,"nodeType":"ExpressionStatement","src":"31926:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31409:13:91","parameters":{"id":55177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55166,"mutability":"mutable","name":"validator1","nameLocation":"31440:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31432:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55165,"name":"address","nodeType":"ElementaryTypeName","src":"31432:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55168,"mutability":"mutable","name":"privKey1","nameLocation":"31468:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31460:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55167,"name":"uint256","nodeType":"ElementaryTypeName","src":"31460:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55170,"mutability":"mutable","name":"validator2","nameLocation":"31494:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31486:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55169,"name":"address","nodeType":"ElementaryTypeName","src":"31486:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55172,"mutability":"mutable","name":"privKey2","nameLocation":"31522:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31514:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55171,"name":"uint256","nodeType":"ElementaryTypeName","src":"31514:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55174,"mutability":"mutable","name":"validator3","nameLocation":"31548:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31540:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55173,"name":"address","nodeType":"ElementaryTypeName","src":"31540:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55176,"mutability":"mutable","name":"privKey3","nameLocation":"31576:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31568:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55175,"name":"uint256","nodeType":"ElementaryTypeName","src":"31568:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31422:168:91"},"returnParameters":{"id":55178,"nodeType":"ParameterList","parameters":[],"src":"31600:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55394,"nodeType":"FunctionDefinition","src":"31974:1107:91","nodes":[],"body":{"id":55393,"nodeType":"Block","src":"32062:1019:91","nodes":[],"statements":[{"assignments":[55253],"declarations":[{"constant":false,"id":55253,"mutability":"mutable","name":"n","nameLocation":"32080:1:91","nodeType":"VariableDeclaration","scope":55393,"src":"32072:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55252,"name":"uint256","nodeType":"ElementaryTypeName","src":"32072:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55256,"initialValue":{"expression":{"id":55254,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"32084:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32095:6:91","memberName":"length","nodeType":"MemberAccess","src":"32084:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32072:29:91"},{"assignments":[55261],"declarations":[{"constant":false,"id":55261,"mutability":"mutable","name":"signatures","nameLocation":"32127:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"32112:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55259,"name":"bytes","nodeType":"ElementaryTypeName","src":"32112:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55260,"nodeType":"ArrayTypeName","src":"32112:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":55267,"initialValue":{"arguments":[{"id":55265,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32152:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"32140:11:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":55262,"name":"bytes","nodeType":"ElementaryTypeName","src":"32144:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55263,"nodeType":"ArrayTypeName","src":"32144:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":55266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32140:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"32112:42:91"},{"assignments":[55269,null],"declarations":[{"constant":false,"id":55269,"mutability":"mutable","name":"nextConfigNum","nameLocation":"32173:13:91","nodeType":"VariableDeclaration","scope":55393,"src":"32166:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55268,"name":"uint64","nodeType":"ElementaryTypeName","src":"32166:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":55273,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55270,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32192:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32201:23:91","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50697,"src":"32192:32:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":55272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32192:34:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"32165:61:91"},{"assignments":[55275],"declarations":[{"constant":false,"id":55275,"mutability":"mutable","name":"h","nameLocation":"32245:1:91","nodeType":"VariableDeclaration","scope":55393,"src":"32237:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55274,"name":"uint256","nodeType":"ElementaryTypeName","src":"32237:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55283,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55276,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32249:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32258:28:91","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50825,"src":"32249:37:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32249:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55279,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32291:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32300:19:91","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50805,"src":"32291:28:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32291:30:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32249:72:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32237:84:91"},{"assignments":[55286],"declarations":[{"constant":false,"id":55286,"mutability":"mutable","name":"checkpoint","nameLocation":"32358:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"32332:36:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":55285,"nodeType":"UserDefinedTypeName","pathNode":{"id":55284,"name":"BottomUpCheckpoint","nameLocations":["32332:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"32332:18:91"},"referencedDeclaration":49885,"src":"32332:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55308,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":55294,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"32458:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32450:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55292,"name":"address","nodeType":"ElementaryTypeName","src":"32450:7:91","typeDescriptions":{}}},"id":55295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32450:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55288,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32414:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32423:9:91","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50627,"src":"32414:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32414:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32435:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"32414:35:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32414:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55297,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"32496:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55301,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"32543:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32532:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32536:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32532:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32532:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55298,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32522:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32522:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55304,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55269,"src":"32585:13:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32601:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32585:17:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55287,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"32371:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32404:8:91","32483:11:91","32511:9:91","32560:23:91"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"32371:242:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"32332:281:91"},{"expression":{"arguments":[{"arguments":[{"id":55314,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"32640:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32632:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"32632:7:91","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32632:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32652:9:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55309,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32624:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32627:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"32624:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32624:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55318,"nodeType":"ExpressionStatement","src":"32624:38:91"},{"assignments":[55320],"declarations":[{"constant":false,"id":55320,"mutability":"mutable","name":"hash","nameLocation":"32681:4:91","nodeType":"VariableDeclaration","scope":55393,"src":"32673:12:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32673:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55327,"initialValue":{"arguments":[{"arguments":[{"id":55324,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"32709:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55322,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32698:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32702:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32698:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32698:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55321,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32688:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32688:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32673:48:91"},{"body":{"id":55363,"nodeType":"Block","src":"32764:140:91","statements":[{"assignments":[55339,55341,55343],"declarations":[{"constant":false,"id":55339,"mutability":"mutable","name":"v","nameLocation":"32785:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32779:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55338,"name":"uint8","nodeType":"ElementaryTypeName","src":"32779:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55341,"mutability":"mutable","name":"r","nameLocation":"32796:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32788:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32788:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55343,"mutability":"mutable","name":"s","nameLocation":"32807:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32799:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32799:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55351,"initialValue":{"arguments":[{"baseExpression":{"id":55346,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"32820:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55348,"indexExpression":{"id":55347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32829:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32820:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55349,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55320,"src":"32833:4:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55344,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32812:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32815:4:91","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"32812:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32812:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"32778:60:91"},{"expression":{"id":55361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55352,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55261,"src":"32852:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55354,"indexExpression":{"id":55353,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32863:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32852:13:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55357,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55341,"src":"32885:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55358,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55343,"src":"32888:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55359,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55339,"src":"32891:1:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32868:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32872:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"32868:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32868:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"32852:41:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55362,"nodeType":"ExpressionStatement","src":"32852:41:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55332,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32752:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55333,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32756:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32752:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55364,"initializationExpression":{"assignments":[55329],"declarations":[{"constant":false,"id":55329,"mutability":"mutable","name":"i","nameLocation":"32745:1:91","nodeType":"VariableDeclaration","scope":55364,"src":"32737:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55328,"name":"uint256","nodeType":"ElementaryTypeName","src":"32737:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55331,"initialValue":{"hexValue":"30","id":55330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32749:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32737:13:91"},"loopExpression":{"expression":{"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32759:3:91","subExpression":{"id":55335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32759:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55337,"nodeType":"ExpressionStatement","src":"32759:3:91"},"nodeType":"ForStatement","src":"32732:172:91"},{"body":{"id":55391,"nodeType":"Block","src":"32946:129:91","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55378,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"32969:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55380,"indexExpression":{"id":55379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32980:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32969:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55375,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32960:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32963:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"32960:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32960:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55382,"nodeType":"ExpressionStatement","src":"32960:23:91"},{"expression":{"arguments":[{"id":55386,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"33029:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55387,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"33041:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55388,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55261,"src":"33053:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55383,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"32997:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":55385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33012:16:91","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":50370,"src":"32997:31:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32997:67:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55390,"nodeType":"ExpressionStatement","src":"32997:67:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32934:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55370,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32938:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32934:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55392,"initializationExpression":{"assignments":[55366],"declarations":[{"constant":false,"id":55366,"mutability":"mutable","name":"i","nameLocation":"32927:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32919:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"32919:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55368,"initialValue":{"hexValue":"30","id":55367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32931:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32919:13:91"},"loopExpression":{"expression":{"id":55373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32941:3:91","subExpression":{"id":55372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32941:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55374,"nodeType":"ExpressionStatement","src":"32941:3:91"},"nodeType":"ForStatement","src":"32914:161:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31983:13:91","parameters":{"id":55250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55246,"mutability":"mutable","name":"validators","nameLocation":"32014:10:91","nodeType":"VariableDeclaration","scope":55394,"src":"31997:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55244,"name":"address","nodeType":"ElementaryTypeName","src":"31997:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55245,"nodeType":"ArrayTypeName","src":"31997:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55249,"mutability":"mutable","name":"privKeys","nameLocation":"32043:8:91","nodeType":"VariableDeclaration","scope":55394,"src":"32026:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55247,"name":"uint256","nodeType":"ElementaryTypeName","src":"32026:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55248,"nodeType":"ArrayTypeName","src":"32026:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"31996:56:91"},"returnParameters":{"id":55251,"nodeType":"ParameterList","parameters":[],"src":"32062:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55429,"nodeType":"FunctionDefinition","src":"33087:305:91","nodes":[],"body":{"id":55428,"nodeType":"Block","src":"33134:258:91","nodes":[],"statements":[{"assignments":[55400],"declarations":[{"constant":false,"id":55400,"mutability":"mutable","name":"expectedNonce","nameLocation":"33152:13:91","nodeType":"VariableDeclaration","scope":55428,"src":"33144:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55399,"name":"uint256","nodeType":"ElementaryTypeName","src":"33144:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55406,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55401,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"33168:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33177:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33168:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33168:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33195:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33168:28:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"33144:52:91"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55414,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33268:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33272:6:91","memberName":"sender","nodeType":"MemberAccess","src":"33268:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55412,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"33246:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":55413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33263:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"33246:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33246:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55407,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"33206:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33216:7:91","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"33206:17:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55410,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55396,"src":"33231:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33206:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33206:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55418,"nodeType":"ExpressionStatement","src":"33206:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55420,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"33298:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33307:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33298:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33298:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55423,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55400,"src":"33326:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33298:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33341:43:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55419,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33290:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33290:95:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55427,"nodeType":"ExpressionStatement","src":"33290:95:91"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"33096:7:91","parameters":{"id":55397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55396,"mutability":"mutable","name":"releaseAmount","nameLocation":"33112:13:91","nodeType":"VariableDeclaration","scope":55429,"src":"33104:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55395,"name":"uint256","nodeType":"ElementaryTypeName","src":"33104:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33103:23:91"},"returnParameters":{"id":55398,"nodeType":"ParameterList","parameters":[],"src":"33134:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55484,"nodeType":"FunctionDefinition","src":"33398:536:91","nodes":[],"body":{"id":55483,"nodeType":"Block","src":"33467:467:91","nodes":[],"statements":[{"assignments":[55437],"declarations":[{"constant":false,"id":55437,"mutability":"mutable","name":"balanceBefore","nameLocation":"33485:13:91","nodeType":"VariableDeclaration","scope":55483,"src":"33477:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55436,"name":"uint256","nodeType":"ElementaryTypeName","src":"33477:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55440,"initialValue":{"expression":{"id":55438,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33501:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33515:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33501:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33477:45:91"},{"assignments":[null,55442,null,null,null],"declarations":[null,{"constant":false,"id":55442,"mutability":"mutable","name":"stakedBefore","nameLocation":"33544:12:91","nodeType":"VariableDeclaration","scope":55483,"src":"33536:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55441,"name":"uint256","nodeType":"ElementaryTypeName","src":"33536:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55446,"initialValue":{"arguments":[{"id":55444,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33576:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55443,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"33566:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33566:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"33533:57:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55447,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"33601:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33611:8:91","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"33601:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55450,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33627:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33601:38:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33601:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55453,"nodeType":"ExpressionStatement","src":"33601:40:91"},{"assignments":[55455],"declarations":[{"constant":false,"id":55455,"mutability":"mutable","name":"balanceAfter","nameLocation":"33660:12:91","nodeType":"VariableDeclaration","scope":55483,"src":"33652:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55454,"name":"uint256","nodeType":"ElementaryTypeName","src":"33652:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55458,"initialValue":{"expression":{"id":55456,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33675:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33689:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33675:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33652:44:91"},{"assignments":[null,55460,null,null,null],"declarations":[null,{"constant":false,"id":55460,"mutability":"mutable","name":"stakedAfter","nameLocation":"33717:11:91","nodeType":"VariableDeclaration","scope":55483,"src":"33709:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55459,"name":"uint256","nodeType":"ElementaryTypeName","src":"33709:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55464,"initialValue":{"arguments":[{"id":55462,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33748:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55461,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"33738:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33738:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"33706:56:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55466,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55455,"src":"33781:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55467,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55437,"src":"33797:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55468,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33813:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:27:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33781:43:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33826:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33773:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33773:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55473,"nodeType":"ExpressionStatement","src":"33773:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55475,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55460,"src":"33865:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55476,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55442,"src":"33880:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55477,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33895:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33880:26:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33865:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33908:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55474,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33857:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33857:70:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55482,"nodeType":"ExpressionStatement","src":"33857:70:91"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"33407:8:91","parameters":{"id":55434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55431,"mutability":"mutable","name":"stakeAmount","nameLocation":"33424:11:91","nodeType":"VariableDeclaration","scope":55484,"src":"33416:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55430,"name":"uint256","nodeType":"ElementaryTypeName","src":"33416:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55433,"mutability":"mutable","name":"subnetAddress","nameLocation":"33445:13:91","nodeType":"VariableDeclaration","scope":55484,"src":"33437:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55432,"name":"address","nodeType":"ElementaryTypeName","src":"33437:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33415:44:91"},"returnParameters":{"id":55435,"nodeType":"ParameterList","parameters":[],"src":"33467:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55569,"nodeType":"FunctionDefinition","src":"33940:813:91","nodes":[],"body":{"id":55568,"nodeType":"Block","src":"34035:718:91","nodes":[],"statements":[{"assignments":[55496],"declarations":[{"constant":false,"id":55496,"mutability":"mutable","name":"manager","nameLocation":"34065:7:91","nodeType":"VariableDeclaration","scope":55568,"src":"34045:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55495,"nodeType":"UserDefinedTypeName","pathNode":{"id":55494,"name":"GatewayManagerFacet","nameLocations":["34045:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"34045:19:91"},"referencedDeclaration":38870,"src":"34045:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55503,"initialValue":{"arguments":[{"arguments":[{"id":55500,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55491,"src":"34103:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34095:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55498,"name":"address","nodeType":"ElementaryTypeName","src":"34095:7:91","typeDescriptions":{}}},"id":55501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34095:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55497,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"34075:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34075:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"34045:62:91"},{"expression":{"arguments":[{"hexValue":"30","id":55509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34154:1:91","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"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55504,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55496,"src":"34118:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34126:8:91","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"34118:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55507,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"34142:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"34118:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34118:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55511,"nodeType":"ExpressionStatement","src":"34118:38:91"},{"assignments":[55514,55516,55518,null,55520],"declarations":[{"constant":false,"id":55514,"mutability":"mutable","name":"id","nameLocation":"34184:2:91","nodeType":"VariableDeclaration","scope":55568,"src":"34168:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55513,"nodeType":"UserDefinedTypeName","pathNode":{"id":55512,"name":"SubnetID","nameLocations":["34168:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34168:8:91"},"referencedDeclaration":50030,"src":"34168:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55516,"mutability":"mutable","name":"stake","nameLocation":"34196:5:91","nodeType":"VariableDeclaration","scope":55568,"src":"34188:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55515,"name":"uint256","nodeType":"ElementaryTypeName","src":"34188:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55518,"mutability":"mutable","name":"topDownNonce","nameLocation":"34211:12:91","nodeType":"VariableDeclaration","scope":55568,"src":"34203:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55517,"name":"uint256","nodeType":"ElementaryTypeName","src":"34203:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55520,"mutability":"mutable","name":"circSupply","nameLocation":"34235:10:91","nodeType":"VariableDeclaration","scope":55568,"src":"34227:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55519,"name":"uint256","nodeType":"ElementaryTypeName","src":"34227:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55525,"initialValue":{"arguments":[{"id":55522,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55488,"src":"34274:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55523,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55491,"src":"34301:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55521,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55653,"src":"34249:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34249:64:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"34167:146:91"},{"assignments":[55528],"declarations":[{"constant":false,"id":55528,"mutability":"mutable","name":"parentNetwork","nameLocation":"34340:13:91","nodeType":"VariableDeclaration","scope":55568,"src":"34324:29:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55527,"nodeType":"UserDefinedTypeName","pathNode":{"id":55526,"name":"SubnetID","nameLocations":["34324:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34324:8:91"},"referencedDeclaration":50030,"src":"34324:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55532,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55529,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"34356:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34365:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"34356:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34356:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"34324:57:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55534,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55514,"src":"34413:2:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34416:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34413:9:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34413:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55539,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55488,"src":"34457:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55537,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55528,"src":"34428:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34442:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"34428:28:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34428:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34472:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34428:50:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34428:52:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"34413:67:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34494:69:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55533,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34392:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34392:181:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55546,"nodeType":"ExpressionStatement","src":"34392:181:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55548,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55516,"src":"34591:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55549,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"34600:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34591:19:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34612:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34583:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34583:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55553,"nodeType":"ExpressionStatement","src":"34583:48:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55555,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55518,"src":"34649:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34665:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34649:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34668:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55554,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34641:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34641:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55560,"nodeType":"ExpressionStatement","src":"34641:46:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55562,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55520,"src":"34705:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34719:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34705:15:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34722:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55561,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34697:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34697:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55567,"nodeType":"ExpressionStatement","src":"34697:49:91"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"33949:16:91","parameters":{"id":55492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55486,"mutability":"mutable","name":"collateral","nameLocation":"33974:10:91","nodeType":"VariableDeclaration","scope":55569,"src":"33966:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55485,"name":"uint256","nodeType":"ElementaryTypeName","src":"33966:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55488,"mutability":"mutable","name":"subnetAddress","nameLocation":"33994:13:91","nodeType":"VariableDeclaration","scope":55569,"src":"33986:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55487,"name":"address","nodeType":"ElementaryTypeName","src":"33986:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55491,"mutability":"mutable","name":"gw","nameLocation":"34024:2:91","nodeType":"VariableDeclaration","scope":55569,"src":"34009:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55490,"nodeType":"UserDefinedTypeName","pathNode":{"id":55489,"name":"GatewayDiamond","nameLocations":["34009:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34009:14:91"},"referencedDeclaration":36170,"src":"34009:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"33965:62:91"},"returnParameters":{"id":55493,"nodeType":"ParameterList","parameters":[],"src":"34035:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55583,"nodeType":"FunctionDefinition","src":"34759:150:91","nodes":[],"body":{"id":55582,"nodeType":"Block","src":"34833:76:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55577,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55571,"src":"34860:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55578,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55573,"src":"34872:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55579,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"34887:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55576,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55569,"src":"34843:16:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34843:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55581,"nodeType":"ExpressionStatement","src":"34843:59:91"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"34768:14:91","parameters":{"id":55574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55571,"mutability":"mutable","name":"collateral","nameLocation":"34791:10:91","nodeType":"VariableDeclaration","scope":55583,"src":"34783:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55570,"name":"uint256","nodeType":"ElementaryTypeName","src":"34783:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55573,"mutability":"mutable","name":"subnetAddress","nameLocation":"34811:13:91","nodeType":"VariableDeclaration","scope":55583,"src":"34803:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55572,"name":"address","nodeType":"ElementaryTypeName","src":"34803:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34782:43:91"},"returnParameters":{"id":55575,"nodeType":"ParameterList","parameters":[],"src":"34833:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55653,"nodeType":"FunctionDefinition","src":"34915:541:91","nodes":[],"body":{"id":55652,"nodeType":"Block","src":"35069:387:91","nodes":[],"statements":[{"expression":{"id":55609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55602,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"35079:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55606,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55588,"src":"35119:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35111:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55604,"name":"address","nodeType":"ElementaryTypeName","src":"35111:7:91","typeDescriptions":{}}},"id":55607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35111:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55603,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"35091:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35091:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"35079:44:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55610,"nodeType":"ExpressionStatement","src":"35079:44:91"},{"expression":{"id":55618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55611,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35133:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55615,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55588,"src":"35171:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35163:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55613,"name":"address","nodeType":"ElementaryTypeName","src":"35163:7:91","typeDescriptions":{}}},"id":55616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35163:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55612,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"35144:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35144:31:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"35133:42:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55619,"nodeType":"ExpressionStatement","src":"35133:42:91"},{"assignments":[55622],"declarations":[{"constant":false,"id":55622,"mutability":"mutable","name":"subnetId","nameLocation":"35202:8:91","nodeType":"VariableDeclaration","scope":55652,"src":"35186:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55621,"nodeType":"UserDefinedTypeName","pathNode":{"id":55620,"name":"SubnetID","nameLocations":["35186:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35186:8:91"},"referencedDeclaration":50030,"src":"35186:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55629,"initialValue":{"arguments":[{"id":55627,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55585,"src":"35254:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35213:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35222:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"35213:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35213:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35239:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"35213:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35213:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"35186:82:91"},{"assignments":[55632],"declarations":[{"constant":false,"id":55632,"mutability":"mutable","name":"subnet","nameLocation":"35293:6:91","nodeType":"VariableDeclaration","scope":55652,"src":"35279:20:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55631,"nodeType":"UserDefinedTypeName","pathNode":{"id":55630,"name":"Subnet","nameLocations":["35279:6:91"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"35279:6:91"},"referencedDeclaration":50044,"src":"35279:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55639,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55635,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"35319:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35328:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"35319:15:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35319:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55633,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35302:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35311:7:91","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"35302:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50044_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35302:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"35279:58:91"},{"expression":{"components":[{"expression":{"id":55640,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35356:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35363:2:91","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"35356:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55642,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35367:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35374:5:91","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"35367:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55644,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35381:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35388:12:91","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"35381:19:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55646,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35402:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35409:20:91","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"35402:27:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55648,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35431:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35438:10:91","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"35431:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55650,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35355:94:91","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55601,"id":55651,"nodeType":"Return","src":"35348:101:91"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"34924:11:91","parameters":{"id":55589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55585,"mutability":"mutable","name":"subnetAddress","nameLocation":"34953:13:91","nodeType":"VariableDeclaration","scope":55653,"src":"34945:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55584,"name":"address","nodeType":"ElementaryTypeName","src":"34945:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55588,"mutability":"mutable","name":"gw","nameLocation":"34991:2:91","nodeType":"VariableDeclaration","scope":55653,"src":"34976:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55587,"nodeType":"UserDefinedTypeName","pathNode":{"id":55586,"name":"GatewayDiamond","nameLocations":["34976:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34976:14:91"},"referencedDeclaration":36170,"src":"34976:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"34935:64:91"},"returnParameters":{"id":55601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35016:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55591,"nodeType":"UserDefinedTypeName","pathNode":{"id":55590,"name":"SubnetID","nameLocations":["35016:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35016:8:91"},"referencedDeclaration":50030,"src":"35016:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35033:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55593,"name":"uint256","nodeType":"ElementaryTypeName","src":"35033:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35042:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55595,"name":"uint256","nodeType":"ElementaryTypeName","src":"35042:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35051:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55597,"name":"uint256","nodeType":"ElementaryTypeName","src":"35051:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35060:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55599,"name":"uint256","nodeType":"ElementaryTypeName","src":"35060:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35015:53:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55675,"nodeType":"FunctionDefinition","src":"35462:177:91","nodes":[],"body":{"id":55674,"nodeType":"Block","src":"35573:66:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55670,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55655,"src":"35602:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55671,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"35617:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55669,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55653,"src":"35590:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35590:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55668,"id":55673,"nodeType":"Return","src":"35583:49:91"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"35471:9:91","parameters":{"id":55656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55655,"mutability":"mutable","name":"subnetAddress","nameLocation":"35489:13:91","nodeType":"VariableDeclaration","scope":55675,"src":"35481:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55654,"name":"address","nodeType":"ElementaryTypeName","src":"35481:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35480:23:91"},"returnParameters":{"id":55668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35520:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55658,"nodeType":"UserDefinedTypeName","pathNode":{"id":55657,"name":"SubnetID","nameLocations":["35520:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35520:8:91"},"referencedDeclaration":50030,"src":"35520:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35537:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55660,"name":"uint256","nodeType":"ElementaryTypeName","src":"35537:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35546:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55662,"name":"uint256","nodeType":"ElementaryTypeName","src":"35546:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35555:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55664,"name":"uint256","nodeType":"ElementaryTypeName","src":"35555:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55667,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35564:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55666,"name":"uint256","nodeType":"ElementaryTypeName","src":"35564:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35519:53:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53090,"name":"Test","nameLocations":["9402:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"9402:4:91"},"id":53091,"nodeType":"InheritanceSpecifier","src":"9402:4:91"},{"baseName":{"id":53092,"name":"TestParams","nameLocations":["9408:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"9408:10:91"},"id":53093,"nodeType":"InheritanceSpecifier","src":"9408:10:91"},{"baseName":{"id":53094,"name":"TestRegistry","nameLocations":["9420:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":52760,"src":"9420:12:91"},"id":53095,"nodeType":"InheritanceSpecifier","src":"9420:12:91"},{"baseName":{"id":53096,"name":"TestSubnetActor","nameLocations":["9434:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":53089,"src":"9434:15:91"},"id":53097,"nodeType":"InheritanceSpecifier","src":"9434:15:91"},{"baseName":{"id":53098,"name":"TestGatewayActor","nameLocations":["9451:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":52925,"src":"9451:16:91"},"id":53099,"nodeType":"InheritanceSpecifier","src":"9451:16:91"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58342],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55676,52925,53089,52760,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"9379:19:91","scope":55677,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file diff --git a/.out/IntegrationTestBase.sol/TestParams.json b/.out/IntegrationTestBase.sol/TestParams.json index 745d680d7..25f0591fe 100644 --- a/.out/IntegrationTestBase.sol/TestParams.json +++ b/.out/IntegrationTestBase.sol/TestParams.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea26469706673582212206e5aa7f8a333e2e9cb8449189dbf72469c3bf796a5e7685e92c7a1658f71e0c664736f6c63430008130033","sourceMap":"2479:1194:88:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212206e5aa7f8a333e2e9cb8449189dbf72469c3bf796a5e7685e92c7a1658f71e0c664736f6c63430008130033","sourceMap":"2479:1194:88:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"TestParams\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496\",\"dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestParams"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692","urls":["bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496","dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55376,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49974],"CrossMsgHelper":[40781],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50204],"IntegrationTestBase":[55375],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50165],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52279],"SelectorLibrary":[56263],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52912],"TestParams":[52683],"TestRegistry":[52747],"TestSubnetActor":[53037],"TestUtils":[57051],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50211],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:31883:88","nodes":[{"id":52519,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52520,"nodeType":"ImportDirective","src":"71:28:88","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52521,"nodeType":"ImportDirective","src":"100:36:88","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52522,"nodeType":"ImportDirective","src":"137:37:88","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52525,"nodeType":"ImportDirective","src":"176:72:88","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52523,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52524,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52527,"nodeType":"ImportDirective","src":"249:61:88","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52526,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"311:56:88","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"368:102:88","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":52530,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"376:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"386:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52532,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"406:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52533,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"419:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"471:57:88","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":52535,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"479:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52545,"nodeType":"ImportDirective","src":"529:140:88","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":52537,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"537:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"547:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"559:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"575:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52541,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"591:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52542,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"599:12:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52543,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"613:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"625:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52547,"nodeType":"ImportDirective","src":"670:61:88","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":52546,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"678:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52549,"nodeType":"ImportDirective","src":"732:65:88","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":52548,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"740:16:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"798:61:88","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":52550,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"806:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"860:67:88","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":52552,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"868:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"928:56:88","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52554,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"985:57:88","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52556,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"1043:65:88","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52558,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"1109:73:88","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52560,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"1183:79:88","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1263:75:88","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52564,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1340:80:88","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52566,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1421:80:88","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52568,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1502:84:88","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52570,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1587:82:88","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52572,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1671:84:88","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"./mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":52574,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1679:27:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1756:82:88","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":52576,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"1764:23:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1839:80:88","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":52578,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1847:22:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1920:71:88","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"1928:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1992:82:88","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":52582,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"2000:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"2075:78:88","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"2083:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"2154:71:88","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52586,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2162:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"2226:67:88","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52588,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2234:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2294:69:88","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":52590,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"2302:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2364:50:88","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":52592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2372:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2415:62:88","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":56264,"symbolAliases":[{"foreign":{"id":52594,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2423:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52683,"nodeType":"ContractDefinition","src":"2479:1194:88","nodes":[{"id":52602,"nodeType":"VariableDeclaration","src":"2505:44:88","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2521:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52596,"name":"uint64","nodeType":"ElementaryTypeName","src":"2505:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2538:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52598,"name":"uint64","nodeType":"ElementaryTypeName","src":"2538:6:88","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52597,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2533:4:88","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2546:3:88","memberName":"max","nodeType":"MemberAccess","src":"2533:16:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52608,"nodeType":"VariableDeclaration","src":"2555:91:88","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2572:20:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52603,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2603:42:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2595:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52604,"name":"address","nodeType":"ElementaryTypeName","src":"2595:7:88","typeDescriptions":{}}},"id":52607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2595:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52611,"nodeType":"VariableDeclaration","src":"2652:42:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2668:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2652:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2693:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52614,"nodeType":"VariableDeclaration","src":"2700:54:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2717:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2700:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52617,"nodeType":"VariableDeclaration","src":"2760:47:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2775:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52615,"name":"uint8","nodeType":"ElementaryTypeName","src":"2760:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2805:2:88","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2813:51:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2829:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52618,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2857:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2870:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2886:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2870:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2922:44:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2938:16:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52624,"name":"string","nodeType":"ElementaryTypeName","src":"2922:6:88","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2957:9:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2972:36:88","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2987:7:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52627,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52628,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2997:11:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3014:48:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3031:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52630,"name":"uint256","nodeType":"ElementaryTypeName","src":"3014:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3068:49:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3085:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52633,"name":"uint256","nodeType":"ElementaryTypeName","src":"3068:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3123:52:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3140:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52636,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3172:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3164:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52637,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:88","typeDescriptions":{}}},"id":52640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3181:54:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3198:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52642,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3232:2:88","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52643,"name":"address","nodeType":"ElementaryTypeName","src":"3224:7:88","typeDescriptions":{}}},"id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52652,"nodeType":"VariableDeclaration","src":"3241:57:88","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3257:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52648,"name":"uint64","nodeType":"ElementaryTypeName","src":"3241:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3269:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52650,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"3273:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3269:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52655,"nodeType":"VariableDeclaration","src":"3304:50:88","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3321:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3304:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3347:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52658,"nodeType":"VariableDeclaration","src":"3360:53:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3376:31:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52656,"name":"uint16","nodeType":"ElementaryTypeName","src":"3360:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52661,"nodeType":"VariableDeclaration","src":"3419:38:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3433:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52659,"name":"int8","nodeType":"ElementaryTypeName","src":"3419:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3463:37:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3479:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52662,"name":"uint64","nodeType":"ElementaryTypeName","src":"3463:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3497:3:88","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3506:45:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3523:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3549:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52666,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:88","typeDescriptions":{}}},"id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3557:57:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3574:24:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"3557:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3609:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3601:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52672,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:88","typeDescriptions":{}}},"id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3620:50:88","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3637:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3620:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3667:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3659:7:88","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52683],"name":"TestParams","nameLocation":"2488:10:88","scope":55376,"usedErrors":[]},{"id":52747,"nodeType":"ContractDefinition","src":"3675:824:88","nodes":[{"id":52690,"nodeType":"VariableDeclaration","src":"3723:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3732:28:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52688,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3723:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52689,"nodeType":"ArrayTypeName","src":"3723:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52693,"nodeType":"VariableDeclaration","src":"3766:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3775:34:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52691,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52692,"nodeType":"ArrayTypeName","src":"3766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52696,"nodeType":"VariableDeclaration","src":"3815:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3824:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52694,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3815:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52695,"nodeType":"ArrayTypeName","src":"3815:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52699,"nodeType":"VariableDeclaration","src":"3853:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3862:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52697,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3853:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52698,"nodeType":"ArrayTypeName","src":"3853:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52702,"nodeType":"VariableDeclaration","src":"3892:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3914:15:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52701,"nodeType":"UserDefinedTypeName","pathNode":{"id":52700,"name":"SubnetRegistryDiamond","nameLocations":["3892:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"3892:21:88"},"referencedDeclaration":36853,"src":"3892:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3935:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3953:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52704,"nodeType":"UserDefinedTypeName","pathNode":{"id":52703,"name":"DiamondLoupeFacet","nameLocations":["3935:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"3935:17:88"},"referencedDeclaration":37355,"src":"3935:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"3973:30:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3989:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52707,"nodeType":"UserDefinedTypeName","pathNode":{"id":52706,"name":"DiamondCutFacet","nameLocations":["3973:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"3973:15:88"},"referencedDeclaration":36918,"src":"3973:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4009:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4029:19:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52710,"nodeType":"UserDefinedTypeName","pathNode":{"id":52709,"name":"RegisterSubnetFacet","nameLocations":["4009:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"4009:19:88"},"referencedDeclaration":52279,"src":"4009:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4054:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4072:25:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetGetterFacet","nameLocations":["4054:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"4054:17:88"},"referencedDeclaration":52517,"src":"4054:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52746,"nodeType":"FunctionDefinition","src":"4104:393:88","nodes":[],"body":{"id":52745,"nodeType":"Block","src":"4118:379:88","nodes":[],"statements":[{"expression":{"id":52722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52717,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"4128:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4192:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52718,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4159:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4175:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4159:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4128:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52723,"nodeType":"ExpressionStatement","src":"4128:86:88"},{"expression":{"id":52729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52724,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"4224:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4294:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52725,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4261:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4277:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4261:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4224:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52730,"nodeType":"ExpressionStatement","src":"4224:90:88"},{"expression":{"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52731,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"4324:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4383:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52732,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4350:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4350:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:77:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52737,"nodeType":"ExpressionStatement","src":"4324:77:88"},{"expression":{"id":52743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52738,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"4411:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4470:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52739,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4437:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4437:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4411:79:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52744,"nodeType":"ExpressionStatement","src":"4411:79:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52715,"nodeType":"ParameterList","parameters":[],"src":"4115:2:88"},"returnParameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"4118:0:88"},"scope":52747,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52684,"name":"Test","nameLocations":["3700:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3700:4:88"},"id":52685,"nodeType":"InheritanceSpecifier","src":"3700:4:88"},{"baseName":{"id":52686,"name":"TestParams","nameLocations":["3706:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"3706:10:88"},"id":52687,"nodeType":"InheritanceSpecifier","src":"3706:10:88"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3684:12:88","scope":55376,"usedErrors":[]},{"id":52912,"nodeType":"ContractDefinition","src":"4501:2237:88","nodes":[{"id":52754,"nodeType":"VariableDeclaration","src":"4553:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4562:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52752,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4553:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52753,"nodeType":"ArrayTypeName","src":"4553:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52757,"nodeType":"VariableDeclaration","src":"4597:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4606:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52755,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4597:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52756,"nodeType":"ArrayTypeName","src":"4597:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52760,"nodeType":"VariableDeclaration","src":"4641:40:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4650:31:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52758,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4641:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52759,"nodeType":"ArrayTypeName","src":"4641:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52763,"nodeType":"VariableDeclaration","src":"4687:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4696:30:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52761,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4687:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52762,"nodeType":"ArrayTypeName","src":"4687:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52766,"nodeType":"VariableDeclaration","src":"4733:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4742:18:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4733:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4733:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4766:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4775:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4798:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4807:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4798:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4798:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4834:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4843:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4834:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4834:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4866:25:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4875:16:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4866:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4866:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4898:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4913:14:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52780,"nodeType":"UserDefinedTypeName","pathNode":{"id":52779,"name":"GatewayDiamond","nameLocations":["4898:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"4898:14:88"},"referencedDeclaration":36170,"src":"4898:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4933:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4953:9:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52783,"nodeType":"UserDefinedTypeName","pathNode":{"id":52782,"name":"GatewayManagerFacet","nameLocations":["4933:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"4933:19:88"},"referencedDeclaration":38870,"src":"4933:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"4968:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4987:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52786,"nodeType":"UserDefinedTypeName","pathNode":{"id":52785,"name":"GatewayGetterFacet","nameLocations":["4968:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"4968:18:88"},"referencedDeclaration":38317,"src":"4968:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5001:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5020:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52789,"nodeType":"UserDefinedTypeName","pathNode":{"id":52788,"name":"CheckpointingFacet","nameLocations":["5001:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5001:18:88"},"referencedDeclaration":39870,"src":"5001:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5046:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5065:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"XnetMessagingFacet","nameLocations":["5046:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5046:18:88"},"referencedDeclaration":40144,"src":"5046:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5091:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5112:22:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"TopDownFinalityFacet","nameLocations":["5091:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5091:20:88"},"referencedDeclaration":40071,"src":"5091:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5140:41:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5160:21:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"BottomUpRouterFacet","nameLocations":["5140:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5140:19:88"},"referencedDeclaration":39601,"src":"5140:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5187:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5209:11:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"GatewayMessengerFacet","nameLocations":["5187:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5187:21:88"},"referencedDeclaration":39235,"src":"5187:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5226:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5242:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"DiamondCutFacet","nameLocations":["5226:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5226:15:88"},"referencedDeclaration":36918,"src":"5226:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5256:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5274:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"DiamondLoupeFacet","nameLocations":["5256:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5256:17:88"},"referencedDeclaration":37355,"src":"5256:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52875,"nodeType":"FunctionDefinition","src":"5289:835:88","nodes":[],"body":{"id":52874,"nodeType":"Block","src":"5303:821:88","nodes":[],"statements":[{"expression":{"id":52816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52811,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"5313:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52812,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5345:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5345:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5313:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52817,"nodeType":"ExpressionStatement","src":"5313:86:88"},{"expression":{"id":52823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52818,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"5409:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5474:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52819,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5441:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5441:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5409:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52824,"nodeType":"ExpressionStatement","src":"5409:86:88"},{"expression":{"id":52830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52825,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"5505:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5572:22:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52826,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5539:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5555:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5539:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5539:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5505:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52831,"nodeType":"ExpressionStatement","src":"5505:90:88"},{"expression":{"id":52837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52832,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"5605:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5671:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52833,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5638:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5654:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5638:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:88:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52838,"nodeType":"ExpressionStatement","src":"5605:88:88"},{"expression":{"id":52844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52839,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5704:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5757:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52840,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5724:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5740:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5724:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5724:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5704:74:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52845,"nodeType":"ExpressionStatement","src":"5704:74:88"},{"expression":{"id":52851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52846,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5788:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52847,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5809:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5825:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5809:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5788:76:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52852,"nodeType":"ExpressionStatement","src":"5788:76:88"},{"expression":{"id":52858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52853,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5874:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5930:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52854,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5897:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5913:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5897:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:57:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5874:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52859,"nodeType":"ExpressionStatement","src":"5874:80:88"},{"expression":{"id":52865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52860,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5964:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6017:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52861,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5984:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5984:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5984:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5964:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52866,"nodeType":"ExpressionStatement","src":"5964:71:88"},{"expression":{"id":52872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52867,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"6045:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6097:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52868,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"6064:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6080:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"6064:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6064:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6045:72:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52873,"nodeType":"ExpressionStatement","src":"6045:72:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52809,"nodeType":"ParameterList","parameters":[],"src":"5300:2:88"},"returnParameters":{"id":52810,"nodeType":"ParameterList","parameters":[],"src":"5303:0:88"},"scope":52912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52911,"nodeType":"FunctionDefinition","src":"6130:606:88","nodes":[],"body":{"id":52910,"nodeType":"Block","src":"6234:502:88","nodes":[],"statements":[{"assignments":[52885],"declarations":[{"constant":false,"id":52885,"mutability":"mutable","name":"params","nameLocation":"6284:6:88","nodeType":"VariableDeclaration","scope":52910,"src":"6244:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52884,"nodeType":"UserDefinedTypeName","pathNode":{"id":52883,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6244:14:88","6259:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6244:32:88"},"referencedDeclaration":35883,"src":"6244:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52907,"initialValue":{"arguments":[{"arguments":[{"id":52889,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"6369:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6407:1:88","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":52892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6393:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52890,"name":"address","nodeType":"ElementaryTypeName","src":"6397:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52891,"nodeType":"ArrayTypeName","src":"6397:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52888,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"6353:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6363:4:88","6386:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"6353:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52896,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"6446:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52897,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"6493:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52898,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"6548:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6624:1:88","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":52902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6608:15:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52900,"nodeType":"UserDefinedTypeName","pathNode":{"id":52899,"name":"Validator","nameLocations":["6612:9:88"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"6612:9:88"},"referencedDeclaration":50211,"src":"6612:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":52901,"nodeType":"ArrayTypeName","src":"6612:11:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52905,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"6663:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52886,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6293:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6308:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6293:32:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6340:11:88","6425:19:88","6485:6:88","6528:18:88","6589:17:88","6640:21:88"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6293:412:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6244:461:88"},{"expression":{"id":52908,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52885,"src":"6723:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52880,"id":52909,"nodeType":"Return","src":"6716:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6139:20:88","parameters":{"id":52876,"nodeType":"ParameterList","parameters":[],"src":"6159:2:88"},"returnParameters":{"id":52880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52911,"src":"6193:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52878,"nodeType":"UserDefinedTypeName","pathNode":{"id":52877,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6193:14:88","6208:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6193:32:88"},"referencedDeclaration":35883,"src":"6193:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6192:41:88"},"scope":52912,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52748,"name":"Test","nameLocations":["4530:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4530:4:88"},"id":52749,"nodeType":"InheritanceSpecifier","src":"4530:4:88"},{"baseName":{"id":52750,"name":"TestParams","nameLocations":["4536:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"4536:10:88"},"id":52751,"nodeType":"InheritanceSpecifier","src":"4536:10:88"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52912,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4510:16:88","scope":55376,"usedErrors":[]},{"id":53037,"nodeType":"ContractDefinition","src":"6740:1920:88","nodes":[{"id":52919,"nodeType":"VariableDeclaration","src":"6791:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6800:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52917,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6791:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52918,"nodeType":"ArrayTypeName","src":"6791:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6823:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6832:18:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52920,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6823:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52921,"nodeType":"ArrayTypeName","src":"6823:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6856:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6865:24:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52923,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6856:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52924,"nodeType":"ArrayTypeName","src":"6856:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6895:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6904:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52926,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6895:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52927,"nodeType":"ArrayTypeName","src":"6895:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6927:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6936:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52929,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6927:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52930,"nodeType":"ArrayTypeName","src":"6927:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6960:28:88","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6979:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorDiamond","nameLocations":["6960:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6960:18:88"},"referencedDeclaration":36615,"src":"6960:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6994:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7018:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorManagerFacet","nameLocations":["6994:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"6994:23:88"},"referencedDeclaration":52151,"src":"6994:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"7033:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"7061:15:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"SubnetActorManagerFacetMock","nameLocations":["7033:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"7033:27:88"},"referencedDeclaration":57957,"src":"7033:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"7082:31:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7105:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"SubnetActorGetterFacet","nameLocations":["7082:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"7082:22:88"},"referencedDeclaration":50887,"src":"7082:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52946,"nodeType":"VariableDeclaration","src":"7119:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7135:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52945,"nodeType":"UserDefinedTypeName","pathNode":{"id":52944,"name":"DiamondCutFacet","nameLocations":["7119:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7119:15:88"},"referencedDeclaration":36918,"src":"7119:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52949,"nodeType":"VariableDeclaration","src":"7149:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7167:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52948,"nodeType":"UserDefinedTypeName","pathNode":{"id":52947,"name":"DiamondLoupeFacet","nameLocations":["7149:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7149:17:88"},"referencedDeclaration":37355,"src":"7149:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52988,"nodeType":"FunctionDefinition","src":"7182:463:88","nodes":[],"body":{"id":52987,"nodeType":"Block","src":"7196:449:88","nodes":[],"statements":[{"expression":{"id":52957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52952,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"7206:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7259:24:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52953,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7226:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7242:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7226:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7226:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7206:78:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52958,"nodeType":"ExpressionStatement","src":"7206:78:88"},{"expression":{"id":52964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52959,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"7294:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7348:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52960,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7315:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7331:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7315:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7315:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7294:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52965,"nodeType":"ExpressionStatement","src":"7294:80:88"},{"expression":{"id":52971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52966,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"7384:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7444:29:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":52967,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7411:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7427:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7411:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7384:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52972,"nodeType":"ExpressionStatement","src":"7384:90:88"},{"expression":{"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52973,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"7484:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7537:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52974,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7504:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7520:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7504:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7504:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7484:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52979,"nodeType":"ExpressionStatement","src":"7484:71:88"},{"expression":{"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52980,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"7565:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7618:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52981,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7585:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7585:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7565:73:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52986,"nodeType":"ExpressionStatement","src":"7565:73:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52950,"nodeType":"ParameterList","parameters":[],"src":"7193:2:88"},"returnParameters":{"id":52951,"nodeType":"ParameterList","parameters":[],"src":"7196:0:88"},"scope":53037,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53036,"nodeType":"FunctionDefinition","src":"7651:1007:88","nodes":[],"body":{"id":53035,"nodeType":"Block","src":"7798:860:88","nodes":[],"statements":[{"assignments":[52998],"declarations":[{"constant":false,"id":52998,"mutability":"mutable","name":"native","nameLocation":"7828:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7808:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":52997,"nodeType":"UserDefinedTypeName","pathNode":{"id":52996,"name":"SupplySource","nameLocations":["7808:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7808:12:88"},"referencedDeclaration":50226,"src":"7808:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53002,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52999,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"7837:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7856:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"7837:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7808:56:88"},{"assignments":[53007],"declarations":[{"constant":false,"id":53007,"mutability":"mutable","name":"params","nameLocation":"7918:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7874:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53006,"nodeType":"UserDefinedTypeName","pathNode":{"id":53005,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7874:18:88","7893:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7874:36:88"},"referencedDeclaration":36253,"src":"7874:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53032,"initialValue":{"arguments":[{"arguments":[{"id":53011,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"8004:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8042:1:88","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":53014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8028:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53012,"name":"address","nodeType":"ElementaryTypeName","src":"8032:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53013,"nodeType":"ArrayTypeName","src":"8032:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53010,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"7988:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7998:4:88","8021:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"7988:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53018,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52990,"src":"8076:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53019,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8103:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8117:10:88","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8103:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53021,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"8166:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53022,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52611,"src":"8220:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53023,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8277:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53024,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"8336:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53025,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"8400:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53026,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"8457:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53027,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8506:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53028,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"8557:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8572:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"8557:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53030,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52998,"src":"8610:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53008,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7927:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7946:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7927:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7978:8:88","8060:14:88","8092:9:88","8141:23:88","8205:13:88","8256:19:88","8316:18:88","8377:21:88","8445:10:88","8490:14:88","8541:14:88","8596:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7927:700:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7874:753:88"},{"expression":{"id":53033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53007,"src":"8645:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":52995,"id":53034,"nodeType":"Return","src":"8638:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7660:35:88","parameters":{"id":52991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52990,"mutability":"mutable","name":"gw","nameLocation":"7713:2:88","nodeType":"VariableDeclaration","scope":53036,"src":"7705:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52989,"name":"address","nodeType":"ElementaryTypeName","src":"7705:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7695:26:88"},"returnParameters":{"id":52995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53036,"src":"7753:43:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52993,"nodeType":"UserDefinedTypeName","pathNode":{"id":52992,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7753:18:88","7772:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7753:36:88"},"referencedDeclaration":36253,"src":"7753:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7752:45:88"},"scope":53037,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52913,"name":"Test","nameLocations":["6768:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6768:4:88"},"id":52914,"nodeType":"InheritanceSpecifier","src":"6768:4:88"},{"baseName":{"id":52915,"name":"TestParams","nameLocations":["6774:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"6774:10:88"},"id":52916,"nodeType":"InheritanceSpecifier","src":"6774:10:88"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53037,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6749:15:88","scope":55376,"usedErrors":[]},{"id":55375,"nodeType":"ContractDefinition","src":"8662:23266:88","nodes":[{"id":53051,"nodeType":"UsingForDirective","src":"8766:34:88","nodes":[],"global":false,"libraryName":{"id":53048,"name":"SubnetIDHelper","nameLocations":["8772:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"8772:14:88"},"typeName":{"id":53050,"nodeType":"UserDefinedTypeName","pathNode":{"id":53049,"name":"SubnetID","nameLocations":["8791:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"8791:8:88"},"referencedDeclaration":50077,"src":"8791:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":53055,"nodeType":"UsingForDirective","src":"8805:42:88","nodes":[],"global":false,"libraryName":{"id":53052,"name":"SupplySourceHelper","nameLocations":["8811:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"8811:18:88"},"typeName":{"id":53054,"nodeType":"UserDefinedTypeName","pathNode":{"id":53053,"name":"SupplySource","nameLocations":["8834:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"8834:12:88"},"referencedDeclaration":50226,"src":"8834:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":53059,"nodeType":"UsingForDirective","src":"8852:34:88","nodes":[],"global":false,"libraryName":{"id":53056,"name":"CrossMsgHelper","nameLocations":["8858:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"8858:14:88"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"CrossMsg","nameLocations":["8877:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8877:8:88"},"referencedDeclaration":49974,"src":"8877:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53063,"nodeType":"UsingForDirective","src":"8891:40:88","nodes":[],"global":false,"libraryName":{"id":53060,"name":"StorableMsgHelper","nameLocations":["8897:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"8897:17:88"},"typeName":{"id":53062,"nodeType":"UserDefinedTypeName","pathNode":{"id":53061,"name":"StorableMsg","nameLocations":["8919:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"8919:11:88"},"referencedDeclaration":49991,"src":"8919:11:88","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53067,"nodeType":"UsingForDirective","src":"8936:38:88","nodes":[],"global":false,"libraryName":{"id":53064,"name":"FvmAddressHelper","nameLocations":["8942:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"8942:16:88"},"typeName":{"id":53066,"nodeType":"UserDefinedTypeName","pathNode":{"id":53065,"name":"FvmAddress","nameLocations":["8963:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8963:10:88"},"referencedDeclaration":49998,"src":"8963:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53071,"nodeType":"EventDefinition","src":"8980:67:88","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"8986:21:88","parameters":{"id":53070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53069,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9024:21:88","nodeType":"VariableDeclaration","scope":53071,"src":"9008:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53068,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9007:39:88"}},{"id":53075,"nodeType":"FunctionDefinition","src":"9053:16:88","nodes":[],"body":{"id":53074,"nodeType":"Block","src":"9067:2:88","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53072,"nodeType":"ParameterList","parameters":[],"src":"9064:2:88"},"returnParameters":{"id":53073,"nodeType":"ParameterList","parameters":[],"src":"9067:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53250,"nodeType":"FunctionDefinition","src":"9075:1529:88","nodes":[],"body":{"id":53249,"nodeType":"Block","src":"9107:1497:88","nodes":[],"statements":[{"assignments":[53082],"declarations":[{"constant":false,"id":53082,"mutability":"mutable","name":"path","nameLocation":"9134:4:88","nodeType":"VariableDeclaration","scope":53249,"src":"9117:21:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53080,"name":"address","nodeType":"ElementaryTypeName","src":"9117:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53081,"nodeType":"ArrayTypeName","src":"9117:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53088,"initialValue":{"arguments":[{"hexValue":"31","id":53086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9155:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9141:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53084,"nodeType":"ArrayTypeName","src":"9145:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9141:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9117:40:88"},{"expression":{"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53089,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53082,"src":"9167:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53091,"indexExpression":{"hexValue":"30","id":53090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9167:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53092,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"9177:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9167:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53094,"nodeType":"ExpressionStatement","src":"9167:25:88"},{"assignments":[53099],"declarations":[{"constant":false,"id":53099,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9285:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"9245:59:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53098,"nodeType":"UserDefinedTypeName","pathNode":{"id":53097,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9245:14:88","9260:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9245:32:88"},"referencedDeclaration":35883,"src":"9245:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53100,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52911,"src":"9307:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9245:84:88"},{"expression":{"id":53107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53103,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9339:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53105,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53099,"src":"9377:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53104,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"9356:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:41:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9339:58:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53108,"nodeType":"ExpressionStatement","src":"9339:58:88"},{"expression":{"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53109,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"9408:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53113,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9446:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9438:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53111,"name":"address","nodeType":"ElementaryTypeName","src":"9438:7:88","typeDescriptions":{}}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9438:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53110,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9419:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9419:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9408:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53117,"nodeType":"ExpressionStatement","src":"9408:54:88"},{"expression":{"id":53125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"9472:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53122,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9512:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9504:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9504:7:88","typeDescriptions":{}}},"id":53123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9504:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53119,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9484:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9472:56:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53126,"nodeType":"ExpressionStatement","src":"9472:56:88"},{"expression":{"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53127,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"9538:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53131,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9588:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9580:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53129,"name":"address","nodeType":"ElementaryTypeName","src":"9580:7:88","typeDescriptions":{}}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9580:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53128,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9561:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9538:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53135,"nodeType":"ExpressionStatement","src":"9538:66:88"},{"expression":{"id":53143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53136,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9614:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53140,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9664:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9656:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53138,"name":"address","nodeType":"ElementaryTypeName","src":"9656:7:88","typeDescriptions":{}}},"id":53141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53137,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9637:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9637:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9614:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53144,"nodeType":"ExpressionStatement","src":"9614:66:88"},{"expression":{"id":53152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53145,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9690:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53149,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9744:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9736:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53147,"name":"address","nodeType":"ElementaryTypeName","src":"9736:7:88","typeDescriptions":{}}},"id":53150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9736:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53146,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9715:20:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9690:70:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53153,"nodeType":"ExpressionStatement","src":"9690:70:88"},{"expression":{"id":53161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53154,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9770:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53158,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9822:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9814:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53156,"name":"address","nodeType":"ElementaryTypeName","src":"9814:7:88","typeDescriptions":{}}},"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9814:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53155,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9794:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9770:68:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53162,"nodeType":"ExpressionStatement","src":"9770:68:88"},{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53163,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9848:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53167,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9892:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9884:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53165,"name":"address","nodeType":"ElementaryTypeName","src":"9884:7:88","typeDescriptions":{}}},"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9884:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53164,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9862:21:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9848:60:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53171,"nodeType":"ExpressionStatement","src":"9848:60:88"},{"expression":{"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53172,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9918:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53176,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9955:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9947:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"9947:7:88","typeDescriptions":{}}},"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53173,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9929:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9929:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9918:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53180,"nodeType":"ExpressionStatement","src":"9918:53:88"},{"expression":{"id":53188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53181,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9981:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53185,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10016:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53183,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:88","typeDescriptions":{}}},"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53182,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"9992:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9992:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"9981:51:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53189,"nodeType":"ExpressionStatement","src":"9981:51:88"},{"assignments":[53194],"declarations":[{"constant":false,"id":53194,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10141:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"10097:63:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53193,"nodeType":"UserDefinedTypeName","pathNode":{"id":53192,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10097:18:88","10116:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10097:36:88"},"referencedDeclaration":36253,"src":"10097:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53201,"initialValue":{"arguments":[{"arguments":[{"id":53198,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10220:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53196,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:88","typeDescriptions":{}}},"id":53199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53195,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"10163:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10163:82:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10097:148:88"},{"expression":{"id":53206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10256:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53204,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53194,"src":"10286:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53203,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53710,"src":"10268:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10256:50:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53207,"nodeType":"ExpressionStatement","src":"10256:50:88"},{"expression":{"id":53215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53208,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10316:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10360:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10352:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53210,"name":"address","nodeType":"ElementaryTypeName","src":"10352:7:88","typeDescriptions":{}}},"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53209,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"10328:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10328:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"10316:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53216,"nodeType":"ExpressionStatement","src":"10316:55:88"},{"expression":{"id":53224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10381:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10423:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10415:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53219,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:88","typeDescriptions":{}}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53218,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"10392:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10392:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"10381:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53225,"nodeType":"ExpressionStatement","src":"10381:53:88"},{"expression":{"id":53233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53226,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"10444:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53230,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10481:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10473:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53228,"name":"address","nodeType":"ElementaryTypeName","src":"10473:7:88","typeDescriptions":{}}},"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10473:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53227,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10455:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10455:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10444:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53234,"nodeType":"ExpressionStatement","src":"10444:48:88"},{"expression":{"id":53242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53235,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"10502:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53239,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10537:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10529:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53237,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:88","typeDescriptions":{}}},"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10529:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53236,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10513:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10513:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10502:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53243,"nodeType":"ExpressionStatement","src":"10502:46:88"},{"expression":{"arguments":[{"id":53245,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"10572:19:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10593:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53244,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"10559:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53248,"nodeType":"ExpressionStatement","src":"10559:38:88"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9084:5:88","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"9089:2:88"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"9107:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53509,"nodeType":"FunctionDefinition","src":"10610:3185:88","nodes":[],"body":{"id":53508,"nodeType":"Block","src":"10720:3075:88","nodes":[],"statements":[{"assignments":[53261],"declarations":[{"constant":false,"id":53261,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"10749:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10730:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53260,"nodeType":"UserDefinedTypeName","pathNode":{"id":53259,"name":"CheckpointingFacet","nameLocations":["10730:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10730:18:88"},"referencedDeclaration":39870,"src":"10730:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10770:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53263,"nodeType":"UserDefinedTypeName","pathNode":{"id":53262,"name":"CheckpointingFacet","nameLocations":["10774:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10774:18:88"},"referencedDeclaration":39870,"src":"10774:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10770:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10730:64:88"},{"assignments":[53269],"declarations":[{"constant":false,"id":53269,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"10823:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10804:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53268,"nodeType":"UserDefinedTypeName","pathNode":{"id":53267,"name":"XnetMessagingFacet","nameLocations":["10804:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10804:18:88"},"referencedDeclaration":40144,"src":"10804:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10844:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53271,"nodeType":"UserDefinedTypeName","pathNode":{"id":53270,"name":"XnetMessagingFacet","nameLocations":["10848:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10848:18:88"},"referencedDeclaration":40144,"src":"10848:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10844:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10804:64:88"},{"assignments":[53277],"declarations":[{"constant":false,"id":53277,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"10899:20:88","nodeType":"VariableDeclaration","scope":53508,"src":"10878:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53276,"nodeType":"UserDefinedTypeName","pathNode":{"id":53275,"name":"TopDownFinalityFacet","nameLocations":["10878:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10878:20:88"},"referencedDeclaration":40071,"src":"10878:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10922:24:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53279,"nodeType":"UserDefinedTypeName","pathNode":{"id":53278,"name":"TopDownFinalityFacet","nameLocations":["10926:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10926:20:88"},"referencedDeclaration":40071,"src":"10926:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"10878:70:88"},{"assignments":[53285],"declarations":[{"constant":false,"id":53285,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"10978:19:88","nodeType":"VariableDeclaration","scope":53508,"src":"10958:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53284,"nodeType":"UserDefinedTypeName","pathNode":{"id":53283,"name":"BottomUpRouterFacet","nameLocations":["10958:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"10958:19:88"},"referencedDeclaration":39601,"src":"10958:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53290,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11000:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53287,"nodeType":"UserDefinedTypeName","pathNode":{"id":53286,"name":"BottomUpRouterFacet","nameLocations":["11004:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11004:19:88"},"referencedDeclaration":39601,"src":"11004:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"10958:67:88"},{"assignments":[53293],"declarations":[{"constant":false,"id":53293,"mutability":"mutable","name":"manager","nameLocation":"11056:7:88","nodeType":"VariableDeclaration","scope":53508,"src":"11036:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53292,"nodeType":"UserDefinedTypeName","pathNode":{"id":53291,"name":"GatewayManagerFacet","nameLocations":["11036:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11036:19:88"},"referencedDeclaration":38870,"src":"11036:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53298,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11066:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayManagerFacet","nameLocations":["11070:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11070:19:88"},"referencedDeclaration":38870,"src":"11070:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11066:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11036:55:88"},{"assignments":[53301],"declarations":[{"constant":false,"id":53301,"mutability":"mutable","name":"getter","nameLocation":"11120:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11101:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53300,"nodeType":"UserDefinedTypeName","pathNode":{"id":53299,"name":"GatewayGetterFacet","nameLocations":["11101:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11101:18:88"},"referencedDeclaration":38317,"src":"11101:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11129:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53303,"nodeType":"UserDefinedTypeName","pathNode":{"id":53302,"name":"GatewayGetterFacet","nameLocations":["11133:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11133:18:88"},"referencedDeclaration":38317,"src":"11133:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11101:52:88"},{"assignments":[53309],"declarations":[{"constant":false,"id":53309,"mutability":"mutable","name":"messenger","nameLocation":"11185:9:88","nodeType":"VariableDeclaration","scope":53508,"src":"11163:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53308,"nodeType":"UserDefinedTypeName","pathNode":{"id":53307,"name":"GatewayMessengerFacet","nameLocations":["11163:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11163:21:88"},"referencedDeclaration":39235,"src":"11163:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11197:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53311,"nodeType":"UserDefinedTypeName","pathNode":{"id":53310,"name":"GatewayMessengerFacet","nameLocations":["11201:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11201:21:88"},"referencedDeclaration":39235,"src":"11201:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11197:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11163:61:88"},{"assignments":[53317],"declarations":[{"constant":false,"id":53317,"mutability":"mutable","name":"cutter","nameLocation":"11250:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11234:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53316,"nodeType":"UserDefinedTypeName","pathNode":{"id":53315,"name":"DiamondCutFacet","nameLocations":["11234:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11234:15:88"},"referencedDeclaration":36918,"src":"11234:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53322,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11259:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53319,"nodeType":"UserDefinedTypeName","pathNode":{"id":53318,"name":"DiamondCutFacet","nameLocations":["11263:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11263:15:88"},"referencedDeclaration":36918,"src":"11263:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"11234:46:88"},{"assignments":[53325],"declarations":[{"constant":false,"id":53325,"mutability":"mutable","name":"louper","nameLocation":"11308:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11290:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53324,"nodeType":"UserDefinedTypeName","pathNode":{"id":53323,"name":"DiamondLoupeFacet","nameLocations":["11290:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11290:17:88"},"referencedDeclaration":37355,"src":"11290:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11317:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53327,"nodeType":"UserDefinedTypeName","pathNode":{"id":53326,"name":"DiamondLoupeFacet","nameLocations":["11321:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11321:17:88"},"referencedDeclaration":37355,"src":"11321:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11317:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"11290:50:88"},{"assignments":[53336],"declarations":[{"constant":false,"id":53336,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"11378:12:88","nodeType":"VariableDeclaration","scope":53508,"src":"11351:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"IDiamond.FacetCut","nameLocations":["11351:8:88","11360:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11351:17:88"},"referencedDeclaration":40159,"src":"11351:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53335,"nodeType":"ArrayTypeName","src":"11351:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53343,"initialValue":{"arguments":[{"hexValue":"39","id":53341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11417:1:88","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11393:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"IDiamond.FacetCut","nameLocations":["11397:8:88","11406:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11397:17:88"},"referencedDeclaration":40159,"src":"11397:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53339,"nodeType":"ArrayTypeName","src":"11397:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11393:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11351:68:88"},{"expression":{"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53344,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11430:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53346,"indexExpression":{"hexValue":"30","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11443:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11430:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53351,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53261,"src":"11520:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11512:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53349,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:88","typeDescriptions":{}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11512:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53353,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11565:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11574:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11565:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11589:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11565:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53356,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"11629:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53347,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11462:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11471:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11462:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11498:12:88","11557:6:88","11610:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11462:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11448:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11430:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53360,"nodeType":"ExpressionStatement","src":"11430:253:88"},{"expression":{"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53361,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11694:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53363,"indexExpression":{"hexValue":"36","id":53362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:88","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11694:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53368,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53269,"src":"11784:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53366,"name":"address","nodeType":"ElementaryTypeName","src":"11776:7:88","typeDescriptions":{}}},"id":53369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11776:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53370,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11829:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11838:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11829:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11853:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11829:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53373,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"11893:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53364,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11726:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11735:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11726:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11762:12:88","11821:6:88","11874:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11726:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11712:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11694:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53377,"nodeType":"ExpressionStatement","src":"11694:253:88"},{"expression":{"id":53393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53378,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11958:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53380,"indexExpression":{"hexValue":"37","id":53379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:88","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11958:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53385,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53277,"src":"12048:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12040:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53383,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:88","typeDescriptions":{}}},"id":53386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53387,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12095:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12104:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12095:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12119:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12095:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53390,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"12159:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53381,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11990:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11999:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11990:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12026:12:88","12087:6:88","12140:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11990:215:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11976:239:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11958:257:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53394,"nodeType":"ExpressionStatement","src":"11958:257:88"},{"expression":{"id":53410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53395,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12226:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53397,"indexExpression":{"hexValue":"38","id":53396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:88","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12226:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53402,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53285,"src":"12316:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12308:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53400,"name":"address","nodeType":"ElementaryTypeName","src":"12308:7:88","typeDescriptions":{}}},"id":53403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12308:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53404,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12362:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12371:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12362:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12386:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12362:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53407,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"12426:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53398,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12258:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12267:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12258:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12294:12:88","12354:6:88","12407:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12258:213:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53409,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12244:237:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12226:255:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53411,"nodeType":"ExpressionStatement","src":"12226:255:88"},{"expression":{"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53412,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12492:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53414,"indexExpression":{"hexValue":"31","id":53413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12492:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53419,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53293,"src":"12582:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53417,"name":"address","nodeType":"ElementaryTypeName","src":"12574:7:88","typeDescriptions":{}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53421,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12616:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12625:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12616:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12640:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12616:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53424,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12680:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53415,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12524:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12533:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12524:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12560:12:88","12608:6:88","12661:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12524:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12510:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12492:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53428,"nodeType":"ExpressionStatement","src":"12492:231:88"},{"expression":{"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53429,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12734:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53431,"indexExpression":{"hexValue":"32","id":53430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12747:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12734:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53436,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53301,"src":"12824:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53434,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:88","typeDescriptions":{}}},"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53438,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12857:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12866:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12857:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12881:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12857:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53441,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12921:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12766:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12775:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12766:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12802:12:88","12849:6:88","12902:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12766:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12752:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12734:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53445,"nodeType":"ExpressionStatement","src":"12734:229:88"},{"expression":{"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53446,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12974:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53448,"indexExpression":{"hexValue":"33","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12987:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12974:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53453,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53309,"src":"13064:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13056:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53451,"name":"address","nodeType":"ElementaryTypeName","src":"13056:7:88","typeDescriptions":{}}},"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53455,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13100:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13109:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13100:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13124:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13100:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53458,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13164:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13006:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13042:12:88","13092:6:88","13145:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13006:193:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12992:217:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12974:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53462,"nodeType":"ExpressionStatement","src":"12974:235:88"},{"expression":{"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53463,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13220:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53465,"indexExpression":{"hexValue":"34","id":53464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13233:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13220:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53470,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53325,"src":"13310:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13302:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53468,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:88","typeDescriptions":{}}},"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13302:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53472,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13343:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13352:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13343:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13367:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13343:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53475,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13407:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13252:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13261:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13252:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13288:12:88","13335:6:88","13388:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13252:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13238:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13220:228:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53479,"nodeType":"ExpressionStatement","src":"13220:228:88"},{"expression":{"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53480,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13459:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53482,"indexExpression":{"hexValue":"35","id":53481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13472:1:88","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13459:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53487,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53317,"src":"13549:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"13541:7:88","typeDescriptions":{}}},"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13541:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53489,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13582:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13591:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13582:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13606:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13582:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53492,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13646:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13491:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13500:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13491:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13527:12:88","13574:6:88","13627:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13491:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13477:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13459:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53496,"nodeType":"ExpressionStatement","src":"13459:229:88"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53497,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13699:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53501,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13735:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53502,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53253,"src":"13749:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13716:18:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53499,"nodeType":"UserDefinedTypeName","pathNode":{"id":53498,"name":"GatewayDiamond","nameLocations":["13720:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"13720:14:88"},"referencedDeclaration":36170,"src":"13720:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13716:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"13699:57:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53505,"nodeType":"ExpressionStatement","src":"13699:57:88"},{"expression":{"id":53506,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13774:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53258,"id":53507,"nodeType":"Return","src":"13767:21:88"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"10619:20:88","parameters":{"id":53254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53253,"mutability":"mutable","name":"params","nameLocation":"10680:6:88","nodeType":"VariableDeclaration","scope":53509,"src":"10640:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53252,"nodeType":"UserDefinedTypeName","pathNode":{"id":53251,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10640:14:88","10655:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10640:32:88"},"referencedDeclaration":35883,"src":"10640:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10639:48:88"},"returnParameters":{"id":53258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53509,"src":"10704:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53256,"nodeType":"UserDefinedTypeName","pathNode":{"id":53255,"name":"GatewayDiamond","nameLocations":["10704:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"10704:14:88"},"referencedDeclaration":36170,"src":"10704:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"10703:16:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53575,"nodeType":"FunctionDefinition","src":"13801:854:88","nodes":[],"body":{"id":53574,"nodeType":"Block","src":"14009:646:88","nodes":[],"statements":[{"assignments":[53527],"declarations":[{"constant":false,"id":53527,"mutability":"mutable","name":"diamondCut","nameLocation":"14046:10:88","nodeType":"VariableDeclaration","scope":53574,"src":"14019:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53525,"nodeType":"UserDefinedTypeName","pathNode":{"id":53524,"name":"IDiamond.FacetCut","nameLocations":["14019:8:88","14028:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14019:17:88"},"referencedDeclaration":40159,"src":"14019:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53526,"nodeType":"ArrayTypeName","src":"14019:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53534,"initialValue":{"arguments":[{"hexValue":"32","id":53532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14083:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14059:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53529,"nodeType":"UserDefinedTypeName","pathNode":{"id":53528,"name":"IDiamond.FacetCut","nameLocations":["14063:8:88","14072:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14063:17:88"},"referencedDeclaration":40159,"src":"14063:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53530,"nodeType":"ArrayTypeName","src":"14063:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14059:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14019:66:88"},{"expression":{"id":53547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14096:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53537,"indexExpression":{"hexValue":"30","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14096:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53540,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53514,"src":"14176:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53541,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14214:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14223:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14214:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14238:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14214:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53544,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"14278:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53538,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:88","14206:6:88","14259:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:184:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53546,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:208:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14096:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53548,"nodeType":"ExpressionStatement","src":"14096:224:88"},{"expression":{"id":53561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53549,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14331:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53551,"indexExpression":{"hexValue":"31","id":53550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14331:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53554,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"14411:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53555,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14450:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14459:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14450:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14474:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14450:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53558,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"14514:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53552,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14361:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14370:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14361:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14397:12:88","14442:6:88","14495:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14361:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14347:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14331:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53562,"nodeType":"ExpressionStatement","src":"14331:226:88"},{"expression":{"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53563,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14568:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53567,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14603:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53568,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53512,"src":"14615:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14580:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53565,"nodeType":"UserDefinedTypeName","pathNode":{"id":53564,"name":"SubnetActorDiamond","nameLocations":["14584:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14584:18:88"},"referencedDeclaration":36615,"src":"14584:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"14568:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53571,"nodeType":"ExpressionStatement","src":"14568:54:88"},{"expression":{"id":53572,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14639:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53521,"id":53573,"nodeType":"Return","src":"14632:16:88"}]},"functionSelector":"0d8d4acf","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"13810:35:88","parameters":{"id":53517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53512,"mutability":"mutable","name":"params","nameLocation":"13899:6:88","nodeType":"VariableDeclaration","scope":53575,"src":"13855:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53511,"nodeType":"UserDefinedTypeName","pathNode":{"id":53510,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["13855:18:88","13874:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"13855:36:88"},"referencedDeclaration":36253,"src":"13855:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53514,"mutability":"mutable","name":"getterFaucet","nameLocation":"13923:12:88","nodeType":"VariableDeclaration","scope":53575,"src":"13915:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13915:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53516,"mutability":"mutable","name":"managerFaucet","nameLocation":"13953:13:88","nodeType":"VariableDeclaration","scope":53575,"src":"13945:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53515,"name":"address","nodeType":"ElementaryTypeName","src":"13945:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13845:127:88"},"returnParameters":{"id":53521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53575,"src":"13989:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53519,"nodeType":"UserDefinedTypeName","pathNode":{"id":53518,"name":"SubnetActorDiamond","nameLocations":["13989:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"13989:18:88"},"referencedDeclaration":36615,"src":"13989:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"13988:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53710,"nodeType":"FunctionDefinition","src":"14661:1518:88","nodes":[],"body":{"id":53709,"nodeType":"Block","src":"14776:1403:88","nodes":[],"statements":[{"assignments":[53586],"declarations":[{"constant":false,"id":53586,"mutability":"mutable","name":"manager","nameLocation":"14810:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"14786:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53585,"nodeType":"UserDefinedTypeName","pathNode":{"id":53584,"name":"SubnetActorManagerFacet","nameLocations":["14786:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14786:23:88"},"referencedDeclaration":52151,"src":"14786:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53591,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14820:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53588,"nodeType":"UserDefinedTypeName","pathNode":{"id":53587,"name":"SubnetActorManagerFacet","nameLocations":["14824:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14824:23:88"},"referencedDeclaration":52151,"src":"14824:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14820:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"14786:63:88"},{"assignments":[53594],"declarations":[{"constant":false,"id":53594,"mutability":"mutable","name":"getter","nameLocation":"14882:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14859:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53593,"nodeType":"UserDefinedTypeName","pathNode":{"id":53592,"name":"SubnetActorGetterFacet","nameLocations":["14859:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14859:22:88"},"referencedDeclaration":50887,"src":"14859:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53599,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14891:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53596,"nodeType":"UserDefinedTypeName","pathNode":{"id":53595,"name":"SubnetActorGetterFacet","nameLocations":["14895:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14895:22:88"},"referencedDeclaration":50887,"src":"14895:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14891:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"14859:60:88"},{"assignments":[53602],"declarations":[{"constant":false,"id":53602,"mutability":"mutable","name":"louper","nameLocation":"14947:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14929:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53601,"nodeType":"UserDefinedTypeName","pathNode":{"id":53600,"name":"DiamondLoupeFacet","nameLocations":["14929:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14929:17:88"},"referencedDeclaration":37355,"src":"14929:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14956:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"DiamondLoupeFacet","nameLocations":["14960:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14960:17:88"},"referencedDeclaration":37355,"src":"14960:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"14929:50:88"},{"assignments":[53610],"declarations":[{"constant":false,"id":53610,"mutability":"mutable","name":"cutter","nameLocation":"15005:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14989:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"DiamondCutFacet","nameLocations":["14989:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14989:15:88"},"referencedDeclaration":36918,"src":"14989:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15014:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53612,"nodeType":"UserDefinedTypeName","pathNode":{"id":53611,"name":"DiamondCutFacet","nameLocations":["15018:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"15018:15:88"},"referencedDeclaration":36918,"src":"15018:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"14989:46:88"},{"assignments":[53621],"declarations":[{"constant":false,"id":53621,"mutability":"mutable","name":"diamondCut","nameLocation":"15073:10:88","nodeType":"VariableDeclaration","scope":53709,"src":"15046:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53619,"nodeType":"UserDefinedTypeName","pathNode":{"id":53618,"name":"IDiamond.FacetCut","nameLocations":["15046:8:88","15055:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15046:17:88"},"referencedDeclaration":40159,"src":"15046:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53620,"nodeType":"ArrayTypeName","src":"15046:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53628,"initialValue":{"arguments":[{"hexValue":"34","id":53626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15110:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15086:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53623,"nodeType":"UserDefinedTypeName","pathNode":{"id":53622,"name":"IDiamond.FacetCut","nameLocations":["15090:8:88","15099:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15090:17:88"},"referencedDeclaration":40159,"src":"15090:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53624,"nodeType":"ArrayTypeName","src":"15090:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15086:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15046:66:88"},{"expression":{"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53629,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15123:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53631,"indexExpression":{"hexValue":"30","id":53630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15134:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15123:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53636,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53586,"src":"15211:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53634,"name":"address","nodeType":"ElementaryTypeName","src":"15203:7:88","typeDescriptions":{}}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15203:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53638,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15245:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15254:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15245:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15269:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15245:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53641,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"15309:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53632,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15153:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15162:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15153:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15189:12:88","15237:6:88","15290:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15153:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15139:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15123:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53645,"nodeType":"ExpressionStatement","src":"15123:229:88"},{"expression":{"id":53661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53646,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15363:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53648,"indexExpression":{"hexValue":"31","id":53647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15374:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15363:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53653,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15451:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15443:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53651,"name":"address","nodeType":"ElementaryTypeName","src":"15443:7:88","typeDescriptions":{}}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15443:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53655,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15484:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15493:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15484:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15508:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15484:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53658,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"15548:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53649,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15393:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15402:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15393:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15429:12:88","15476:6:88","15529:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15393:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15379:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15363:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53662,"nodeType":"ExpressionStatement","src":"15363:227:88"},{"expression":{"id":53678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53663,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15601:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53665,"indexExpression":{"hexValue":"32","id":53664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15612:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15601:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53670,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53610,"src":"15689:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15681:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53668,"name":"address","nodeType":"ElementaryTypeName","src":"15681:7:88","typeDescriptions":{}}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15681:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53672,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15722:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15722:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15746:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15722:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53675,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"15786:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53666,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15631:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15640:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15631:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15667:12:88","15714:6:88","15767:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15631:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15617:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15601:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53679,"nodeType":"ExpressionStatement","src":"15601:227:88"},{"expression":{"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53680,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15839:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53682,"indexExpression":{"hexValue":"33","id":53681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15850:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15839:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53687,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53602,"src":"15927:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15919:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53685,"name":"address","nodeType":"ElementaryTypeName","src":"15919:7:88","typeDescriptions":{}}},"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15919:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53689,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15960:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15960:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15984:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15960:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53692,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"16024:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53683,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15869:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15878:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15869:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15905:12:88","15952:6:88","16005:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15869:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15855:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15839:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53696,"nodeType":"ExpressionStatement","src":"15839:226:88"},{"assignments":[53699],"declarations":[{"constant":false,"id":53699,"mutability":"mutable","name":"diamond","nameLocation":"16095:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"16076:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53698,"nodeType":"UserDefinedTypeName","pathNode":{"id":53697,"name":"SubnetActorDiamond","nameLocations":["16076:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16076:18:88"},"referencedDeclaration":36615,"src":"16076:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53706,"initialValue":{"arguments":[{"id":53703,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"16128:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53704,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53578,"src":"16140:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16105:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53701,"nodeType":"UserDefinedTypeName","pathNode":{"id":53700,"name":"SubnetActorDiamond","nameLocations":["16109:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16109:18:88"},"referencedDeclaration":36615,"src":"16109:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16105:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"16076:71:88"},{"expression":{"id":53707,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53699,"src":"16165:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53583,"id":53708,"nodeType":"Return","src":"16158:14:88"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14670:17:88","parameters":{"id":53579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53578,"mutability":"mutable","name":"params","nameLocation":"14732:6:88","nodeType":"VariableDeclaration","scope":53710,"src":"14688:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14688:18:88","14707:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14688:36:88"},"referencedDeclaration":36253,"src":"14688:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"14687:52:88"},"returnParameters":{"id":53583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53710,"src":"14756:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53581,"nodeType":"UserDefinedTypeName","pathNode":{"id":53580,"name":"SubnetActorDiamond","nameLocations":["14756:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14756:18:88"},"referencedDeclaration":36615,"src":"14756:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14755:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53739,"nodeType":"FunctionDefinition","src":"16185:522:88","nodes":[],"body":{"id":53738,"nodeType":"Block","src":"16429:278:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":53727,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"16470:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53728,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53715,"src":"16499:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53729,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53717,"src":"16523:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53730,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53719,"src":"16561:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53731,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"16589:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53732,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53723,"src":"16615:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53733,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"16648:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16663:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"16648:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16687:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53726,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53943,"src":"16439:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50165_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:261:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53737,"nodeType":"ExpressionStatement","src":"16439:261:88"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16194:17:88","parameters":{"id":53724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53712,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16229:15:88","nodeType":"VariableDeclaration","scope":53739,"src":"16221:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53711,"name":"address","nodeType":"ElementaryTypeName","src":"16221:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53715,"mutability":"mutable","name":"_consensus","nameLocation":"16268:10:88","nodeType":"VariableDeclaration","scope":53739,"src":"16254:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"ConsensusType","nameLocations":["16254:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16254:13:88"},"referencedDeclaration":37359,"src":"16254:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53717,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16296:24:88","nodeType":"VariableDeclaration","scope":53739,"src":"16288:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53716,"name":"uint256","nodeType":"ElementaryTypeName","src":"16288:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53719,"mutability":"mutable","name":"_minValidators","nameLocation":"16337:14:88","nodeType":"VariableDeclaration","scope":53739,"src":"16330:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53718,"name":"uint64","nodeType":"ElementaryTypeName","src":"16330:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53721,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16368:12:88","nodeType":"VariableDeclaration","scope":53739,"src":"16361:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53720,"name":"uint64","nodeType":"ElementaryTypeName","src":"16361:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53723,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16396:19:88","nodeType":"VariableDeclaration","scope":53739,"src":"16390:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53722,"name":"uint8","nodeType":"ElementaryTypeName","src":"16390:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16211:210:88"},"returnParameters":{"id":53725,"nodeType":"ParameterList","parameters":[],"src":"16429:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53943,"nodeType":"FunctionDefinition","src":"16713:2630:88","nodes":[],"body":{"id":53942,"nodeType":"Block","src":"17036:2307:88","nodes":[],"statements":[{"assignments":[53762],"declarations":[{"constant":false,"id":53762,"mutability":"mutable","name":"_parentId","nameLocation":"17062:9:88","nodeType":"VariableDeclaration","scope":53942,"src":"17046:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53761,"nodeType":"UserDefinedTypeName","pathNode":{"id":53760,"name":"SubnetID","nameLocations":["17046:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"17046:8:88"},"referencedDeclaration":50077,"src":"17046:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53771,"initialValue":{"arguments":[{"id":53764,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17083:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17114:1:88","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":53767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17100:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53766,"nodeType":"ArrayTypeName","src":"17104:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53763,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"17074:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"17046:71:88"},{"expression":{"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53772,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17128:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17140:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"SubnetActorManagerFacet","nameLocations":["17144:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"17144:23:88"},"referencedDeclaration":52151,"src":"17144:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17140:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"17128:41:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53778,"nodeType":"ExpressionStatement","src":"17128:41:88"},{"expression":{"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53779,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17179:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17190:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53781,"nodeType":"UserDefinedTypeName","pathNode":{"id":53780,"name":"SubnetActorGetterFacet","nameLocations":["17194:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"17194:22:88"},"referencedDeclaration":50887,"src":"17194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17190:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"17179:39:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53785,"nodeType":"ExpressionStatement","src":"17179:39:88"},{"expression":{"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53786,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17228:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17239:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53788,"nodeType":"UserDefinedTypeName","pathNode":{"id":53787,"name":"DiamondCutFacet","nameLocations":["17243:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"17243:15:88"},"referencedDeclaration":36918,"src":"17243:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17239:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"17228:32:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53792,"nodeType":"ExpressionStatement","src":"17228:32:88"},{"expression":{"id":53798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53793,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"17270:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17281:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53795,"nodeType":"UserDefinedTypeName","pathNode":{"id":53794,"name":"DiamondLoupeFacet","nameLocations":["17285:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"17285:17:88"},"referencedDeclaration":37355,"src":"17285:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17281:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"17270:34:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53799,"nodeType":"ExpressionStatement","src":"17270:34:88"},{"assignments":[53805],"declarations":[{"constant":false,"id":53805,"mutability":"mutable","name":"diamondCut","nameLocation":"17342:10:88","nodeType":"VariableDeclaration","scope":53942,"src":"17315:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53803,"nodeType":"UserDefinedTypeName","pathNode":{"id":53802,"name":"IDiamond.FacetCut","nameLocations":["17315:8:88","17324:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17315:17:88"},"referencedDeclaration":40159,"src":"17315:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53804,"nodeType":"ArrayTypeName","src":"17315:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53812,"initialValue":{"arguments":[{"hexValue":"34","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17379:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17355:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53807,"nodeType":"UserDefinedTypeName","pathNode":{"id":53806,"name":"IDiamond.FacetCut","nameLocations":["17359:8:88","17368:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17359:17:88"},"referencedDeclaration":40159,"src":"17359:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53808,"nodeType":"ArrayTypeName","src":"17359:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17355:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17315:66:88"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17392:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"30","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17403:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17392:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17480:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17472:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17472:7:88","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17472:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17516:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17516:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17540:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17516:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"17580:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17422:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17431:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17422:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17458:12:88","17508:6:88","17561:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17422:191:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17408:215:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17392:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17392:231:88"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17634:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"31","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17645:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17634:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17722:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17714:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17714:7:88","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17757:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17766:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17757:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17781:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17757:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"17821:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17664:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17673:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17664:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17700:12:88","17749:6:88","17802:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17664:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17650:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17634:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17634:229:88"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17874:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"32","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17885:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17874:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17962:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17954:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"17954:7:88","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17954:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17997:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18006:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17997:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18021:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17997:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"18061:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17904:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17904:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17940:12:88","17989:6:88","18042:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17904:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17890:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17874:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17874:229:88"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18114:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"33","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18125:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18114:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"18202:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18194:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18194:7:88","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18194:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18237:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18246:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18237:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18261:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18237:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"18301:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18144:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18153:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18144:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18180:12:88","18229:6:88","18282:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18144:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18130:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18114:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18114:229:88"},{"expression":{"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53881,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"18354:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53885,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18402:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":53888,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53762,"src":"18491:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53889,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"18534:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53890,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18578:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53891,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"18631:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53892,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53748,"src":"18688:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53893,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53750,"src":"18741:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53894,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18791:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53895,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53757,"src":"18851:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":53896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18903:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":53897,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53755,"src":"18939:15:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53898,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"18988:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"19041:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19060:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"19041:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19041:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53886,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"18426:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18445:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"18426:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18481:8:88","18518:14:88","18567:9:88","18606:23:88","18673:13:88","18720:19:88","18771:18:88","18828:21:88","18891:10:88","18923:14:88","18972:14:88","19027:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"18426:657:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18366:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53883,"nodeType":"UserDefinedTypeName","pathNode":{"id":53882,"name":"SubnetActorDiamond","nameLocations":["18370:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18370:18:88"},"referencedDeclaration":36615,"src":"18370:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18366:727:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"18354:739:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53905,"nodeType":"ExpressionStatement","src":"18354:739:88"},{"expression":{"id":53913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53906,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19104:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53910,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19148:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19140:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53908,"name":"address","nodeType":"ElementaryTypeName","src":"19140:7:88","typeDescriptions":{}}},"id":53911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19140:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53907,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"19116:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19116:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"19104:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53914,"nodeType":"ExpressionStatement","src":"19104:55:88"},{"expression":{"id":53922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53915,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"19169:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53919,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19211:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53917,"name":"address","nodeType":"ElementaryTypeName","src":"19203:7:88","typeDescriptions":{}}},"id":53920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19203:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53916,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"19180:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19180:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"19169:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53923,"nodeType":"ExpressionStatement","src":"19169:53:88"},{"expression":{"id":53931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53924,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"19232:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53928,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19267:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19259:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53926,"name":"address","nodeType":"ElementaryTypeName","src":"19259:7:88","typeDescriptions":{}}},"id":53929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53925,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"19243:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19232:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53932,"nodeType":"ExpressionStatement","src":"19232:46:88"},{"expression":{"id":53940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53933,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"19288:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53937,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19325:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19317:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53935,"name":"address","nodeType":"ElementaryTypeName","src":"19317:7:88","typeDescriptions":{}}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19317:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53934,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"19299:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19299:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"19288:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53941,"nodeType":"ExpressionStatement","src":"19288:48:88"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16722:17:88","parameters":{"id":53758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53741,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16757:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16749:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53740,"name":"address","nodeType":"ElementaryTypeName","src":"16749:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53744,"mutability":"mutable","name":"_consensus","nameLocation":"16796:10:88","nodeType":"VariableDeclaration","scope":53943,"src":"16782:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"ConsensusType","nameLocations":["16782:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16782:13:88"},"referencedDeclaration":37359,"src":"16782:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53746,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16824:24:88","nodeType":"VariableDeclaration","scope":53943,"src":"16816:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"16816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53748,"mutability":"mutable","name":"_minValidators","nameLocation":"16865:14:88","nodeType":"VariableDeclaration","scope":53943,"src":"16858:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53747,"name":"uint64","nodeType":"ElementaryTypeName","src":"16858:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53750,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16896:12:88","nodeType":"VariableDeclaration","scope":53943,"src":"16889:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53749,"name":"uint64","nodeType":"ElementaryTypeName","src":"16889:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53752,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16924:19:88","nodeType":"VariableDeclaration","scope":53943,"src":"16918:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53751,"name":"uint8","nodeType":"ElementaryTypeName","src":"16918:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53755,"mutability":"mutable","name":"_permissionMode","nameLocation":"16968:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16953:30:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"PermissionMode","nameLocations":["16953:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"16953:14:88"},"referencedDeclaration":50165,"src":"16953:14:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53757,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"17000:22:88","nodeType":"VariableDeclaration","scope":53943,"src":"16993:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53756,"name":"uint16","nodeType":"ElementaryTypeName","src":"16993:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16739:289:88"},"returnParameters":{"id":53759,"nodeType":"ParameterList","parameters":[],"src":"17036:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54036,"nodeType":"FunctionDefinition","src":"19349:1021:88","nodes":[],"body":{"id":54035,"nodeType":"Block","src":"19441:929:88","nodes":[],"statements":[{"assignments":[53953],"declarations":[{"constant":false,"id":53953,"mutability":"mutable","name":"mockedManager","nameLocation":"19479:13:88","nodeType":"VariableDeclaration","scope":54035,"src":"19451:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":53952,"nodeType":"UserDefinedTypeName","pathNode":{"id":53951,"name":"SubnetActorManagerFacetMock","nameLocations":["19451:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19451:27:88"},"referencedDeclaration":57957,"src":"19451:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":53958,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19495:31:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"SubnetActorManagerFacetMock","nameLocations":["19499:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19499:27:88"},"referencedDeclaration":57957,"src":"19499:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}},"id":53957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19495:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"19451:77:88"},{"assignments":[53961],"declarations":[{"constant":false,"id":53961,"mutability":"mutable","name":"getter","nameLocation":"19561:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"19538:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53960,"nodeType":"UserDefinedTypeName","pathNode":{"id":53959,"name":"SubnetActorGetterFacet","nameLocations":["19538:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19538:22:88"},"referencedDeclaration":50887,"src":"19538:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19570:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetActorGetterFacet","nameLocations":["19574:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19574:22:88"},"referencedDeclaration":50887,"src":"19574:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19570:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"19538:60:88"},{"assignments":[53972],"declarations":[{"constant":false,"id":53972,"mutability":"mutable","name":"diamondCut","nameLocation":"19636:10:88","nodeType":"VariableDeclaration","scope":54035,"src":"19609:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53970,"nodeType":"UserDefinedTypeName","pathNode":{"id":53969,"name":"IDiamond.FacetCut","nameLocations":["19609:8:88","19618:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19609:17:88"},"referencedDeclaration":40159,"src":"19609:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53971,"nodeType":"ArrayTypeName","src":"19609:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53979,"initialValue":{"arguments":[{"hexValue":"32","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19673:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19649:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53974,"nodeType":"UserDefinedTypeName","pathNode":{"id":53973,"name":"IDiamond.FacetCut","nameLocations":["19653:8:88","19662:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19653:17:88"},"referencedDeclaration":40159,"src":"19653:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53975,"nodeType":"ArrayTypeName","src":"19653:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19649:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19609:66:88"},{"expression":{"id":53995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53980,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19686:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53982,"indexExpression":{"hexValue":"30","id":53981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19686:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53987,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"19774:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}],"id":53986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19766:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53985,"name":"address","nodeType":"ElementaryTypeName","src":"19766:7:88","typeDescriptions":{}}},"id":53988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19766:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53989,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19814:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19823:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"19814:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19838:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"19814:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53992,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"19878:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53983,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19716:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19716:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19752:12:88","19806:6:88","19859:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19716:201:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19702:225:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19686:241:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53996,"nodeType":"ExpressionStatement","src":"19686:241:88"},{"expression":{"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53997,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19938:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53999,"indexExpression":{"hexValue":"31","id":53998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19938:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54004,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53961,"src":"20026:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":54003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20018:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54002,"name":"address","nodeType":"ElementaryTypeName","src":"20018:7:88","typeDescriptions":{}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20018:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54006,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20059:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20068:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20059:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20083:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20059:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54009,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"20123:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54000,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19968:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19977:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19968:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20004:12:88","20051:6:88","20104:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19968:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19954:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19938:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54013,"nodeType":"ExpressionStatement","src":"19938:227:88"},{"assignments":[54018],"declarations":[{"constant":false,"id":54018,"mutability":"mutable","name":"params","nameLocation":"20220:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"20176:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["20176:18:88","20195:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"20176:36:88"},"referencedDeclaration":36253,"src":"20176:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54022,"initialValue":{"arguments":[{"id":54020,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"20265:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54019,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"20229:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20229:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"20176:92:88"},{"assignments":[54025],"declarations":[{"constant":false,"id":54025,"mutability":"mutable","name":"d","nameLocation":"20298:1:88","nodeType":"VariableDeclaration","scope":54035,"src":"20279:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54024,"nodeType":"UserDefinedTypeName","pathNode":{"id":54023,"name":"SubnetActorDiamond","nameLocations":["20279:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20279:18:88"},"referencedDeclaration":36615,"src":"20279:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54032,"initialValue":{"arguments":[{"id":54029,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"20325:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54030,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54018,"src":"20337:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20302:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54027,"nodeType":"UserDefinedTypeName","pathNode":{"id":54026,"name":"SubnetActorDiamond","nameLocations":["20306:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20306:18:88"},"referencedDeclaration":36615,"src":"20306:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"20279:65:88"},{"expression":{"id":54033,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54025,"src":"20362:1:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53950,"id":54034,"nodeType":"Return","src":"20355:8:88"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"19358:34:88","parameters":{"id":53946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53945,"mutability":"mutable","name":"gw","nameLocation":"19401:2:88","nodeType":"VariableDeclaration","scope":54036,"src":"19393:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53944,"name":"address","nodeType":"ElementaryTypeName","src":"19393:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19392:12:88"},"returnParameters":{"id":53950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54036,"src":"19421:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetActorDiamond","nameLocations":["19421:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"19421:18:88"},"referencedDeclaration":36615,"src":"19421:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"19420:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54178,"nodeType":"FunctionDefinition","src":"20422:1703:88","nodes":[],"body":{"id":54177,"nodeType":"Block","src":"20560:1565:88","nodes":[],"statements":[{"assignments":[54050],"declarations":[{"constant":false,"id":54050,"mutability":"mutable","name":"diamondCut","nameLocation":"20597:10:88","nodeType":"VariableDeclaration","scope":54177,"src":"20570:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54048,"nodeType":"UserDefinedTypeName","pathNode":{"id":54047,"name":"IDiamond.FacetCut","nameLocations":["20570:8:88","20579:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20570:17:88"},"referencedDeclaration":40159,"src":"20570:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54049,"nodeType":"ArrayTypeName","src":"20570:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54057,"initialValue":{"arguments":[{"hexValue":"34","id":54055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20610:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54052,"nodeType":"UserDefinedTypeName","pathNode":{"id":54051,"name":"IDiamond.FacetCut","nameLocations":["20614:8:88","20623:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20614:17:88"},"referencedDeclaration":40159,"src":"20614:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54053,"nodeType":"ArrayTypeName","src":"20614:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20610:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20570:66:88"},{"assignments":[54060],"declarations":[{"constant":false,"id":54060,"mutability":"mutable","name":"regCutFacet","nameLocation":"20663:11:88","nodeType":"VariableDeclaration","scope":54177,"src":"20647:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54059,"nodeType":"UserDefinedTypeName","pathNode":{"id":54058,"name":"DiamondCutFacet","nameLocations":["20647:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20647:15:88"},"referencedDeclaration":36918,"src":"20647:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20677:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54062,"nodeType":"UserDefinedTypeName","pathNode":{"id":54061,"name":"DiamondCutFacet","nameLocations":["20681:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20681:15:88"},"referencedDeclaration":36918,"src":"20681:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20677:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"20647:51:88"},{"assignments":[54068],"declarations":[{"constant":false,"id":54068,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"20726:13:88","nodeType":"VariableDeclaration","scope":54177,"src":"20708:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54067,"nodeType":"UserDefinedTypeName","pathNode":{"id":54066,"name":"DiamondLoupeFacet","nameLocations":["20708:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20708:17:88"},"referencedDeclaration":37355,"src":"20708:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54073,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20742:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54070,"nodeType":"UserDefinedTypeName","pathNode":{"id":54069,"name":"DiamondLoupeFacet","nameLocations":["20746:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20746:17:88"},"referencedDeclaration":37355,"src":"20746:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20742:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"20708:57:88"},{"assignments":[54076],"declarations":[{"constant":false,"id":54076,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"20795:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20775:34:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54075,"nodeType":"UserDefinedTypeName","pathNode":{"id":54074,"name":"RegisterSubnetFacet","nameLocations":["20775:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20775:19:88"},"referencedDeclaration":52279,"src":"20775:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20812:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54078,"nodeType":"UserDefinedTypeName","pathNode":{"id":54077,"name":"RegisterSubnetFacet","nameLocations":["20816:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20816:19:88"},"referencedDeclaration":52279,"src":"20816:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"20775:62:88"},{"assignments":[54084],"declarations":[{"constant":false,"id":54084,"mutability":"mutable","name":"regGetterFacet","nameLocation":"20865:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20847:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54083,"nodeType":"UserDefinedTypeName","pathNode":{"id":54082,"name":"SubnetGetterFacet","nameLocations":["20847:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20847:17:88"},"referencedDeclaration":52517,"src":"20847:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20882:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54086,"nodeType":"UserDefinedTypeName","pathNode":{"id":54085,"name":"SubnetGetterFacet","nameLocations":["20886:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20886:17:88"},"referencedDeclaration":52517,"src":"20886:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}},"id":54088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20882:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"20847:58:88"},{"expression":{"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54090,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"20916:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54092,"indexExpression":{"hexValue":"30","id":54091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20927:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20916:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54097,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54068,"src":"21004:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20996:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54095,"name":"address","nodeType":"ElementaryTypeName","src":"20996:7:88","typeDescriptions":{}}},"id":54098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20996:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54099,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21044:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21053:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21044:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21068:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21044:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54102,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"21108:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54093,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20946:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20955:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20946:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20982:12:88","21036:6:88","21089:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20946:200:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20932:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20916:240:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54106,"nodeType":"ExpressionStatement","src":"20916:240:88"},{"expression":{"id":54122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54107,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21166:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54109,"indexExpression":{"hexValue":"31","id":54108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21177:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21166:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54114,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54060,"src":"21254:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21246:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54112,"name":"address","nodeType":"ElementaryTypeName","src":"21246:7:88","typeDescriptions":{}}},"id":54115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21246:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54116,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21292:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21301:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21292:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21316:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21292:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54119,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"21356:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54110,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21196:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21205:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21196:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21232:12:88","21284:6:88","21337:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21196:198:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21182:222:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21166:238:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54123,"nodeType":"ExpressionStatement","src":"21166:238:88"},{"expression":{"id":54139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54124,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21414:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54126,"indexExpression":{"hexValue":"32","id":54125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21425:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21414:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54131,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54076,"src":"21502:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}],"id":54130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21494:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54129,"name":"address","nodeType":"ElementaryTypeName","src":"21494:7:88","typeDescriptions":{}}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54133,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21543:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21552:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21543:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21567:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21543:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54136,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"21607:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54127,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21453:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21444:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21480:12:88","21535:6:88","21588:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21444:206:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21430:230:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21414:246:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54140,"nodeType":"ExpressionStatement","src":"21414:246:88"},{"expression":{"id":54156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54141,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21670:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54143,"indexExpression":{"hexValue":"33","id":54142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21681:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21670:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54148,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54084,"src":"21758:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}],"id":54147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21750:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54146,"name":"address","nodeType":"ElementaryTypeName","src":"21750:7:88","typeDescriptions":{}}},"id":54149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21750:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54150,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21799:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21808:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21799:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21823:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21799:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54153,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"21863:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54144,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21700:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21709:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21700:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21736:12:88","21791:6:88","21844:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21700:212:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21686:236:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21670:252:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54157,"nodeType":"ExpressionStatement","src":"21670:252:88"},{"assignments":[54160],"declarations":[{"constant":false,"id":54160,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"21955:17:88","nodeType":"VariableDeclaration","scope":54177,"src":"21933:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54159,"nodeType":"UserDefinedTypeName","pathNode":{"id":54158,"name":"SubnetRegistryDiamond","nameLocations":["21933:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21933:21:88"},"referencedDeclaration":36853,"src":"21933:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54167,"initialValue":{"arguments":[{"id":54164,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"22001:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54165,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54039,"src":"22013:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21975:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54162,"nodeType":"UserDefinedTypeName","pathNode":{"id":54161,"name":"SubnetRegistryDiamond","nameLocations":["21979:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21979:21:88"},"referencedDeclaration":36853,"src":"21979:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21975:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"21933:87:88"},{"eventCall":{"arguments":[{"arguments":[{"id":54171,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22065:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22057:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54169,"name":"address","nodeType":"ElementaryTypeName","src":"22057:7:88","typeDescriptions":{}}},"id":54172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22057:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54168,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53071,"src":"22035:21:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54174,"nodeType":"EmitStatement","src":"22030:54:88"},{"expression":{"id":54175,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22101:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54044,"id":54176,"nodeType":"Return","src":"22094:24:88"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"20431:20:88","parameters":{"id":54040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54039,"mutability":"mutable","name":"params","nameLocation":"20508:6:88","nodeType":"VariableDeclaration","scope":54178,"src":"20461:53:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54038,"nodeType":"UserDefinedTypeName","pathNode":{"id":54037,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["20461:21:88","20483:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"20461:39:88"},"referencedDeclaration":36652,"src":"20461:39:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"20451:69:88"},"returnParameters":{"id":54044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54178,"src":"20537:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54042,"nodeType":"UserDefinedTypeName","pathNode":{"id":54041,"name":"SubnetRegistryDiamond","nameLocations":["20537:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"20537:21:88"},"referencedDeclaration":36853,"src":"20537:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"20536:23:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54207,"nodeType":"FunctionDefinition","src":"22131:190:88","nodes":[],"body":{"id":54206,"nodeType":"Block","src":"22212:109:88","nodes":[],"statements":[{"body":{"id":54202,"nodeType":"Block","src":"22253:42:88","statements":[{"expression":{"id":54200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54196,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22267:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54197,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54181,"src":"22274:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54199,"indexExpression":{"id":54198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22282:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22274:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22267:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54201,"nodeType":"ExpressionStatement","src":"22267:17:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22241:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"22241:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54203,"initializationExpression":{"assignments":[54187],"declarations":[{"constant":false,"id":54187,"mutability":"mutable","name":"i","nameLocation":"22234:1:88","nodeType":"VariableDeclaration","scope":54203,"src":"22227:8:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54186,"name":"uint64","nodeType":"ElementaryTypeName","src":"22227:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54189,"initialValue":{"hexValue":"30","id":54188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22238:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22227:12:88"},"loopExpression":{"expression":{"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22248:3:88","subExpression":{"id":54193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22248:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54195,"nodeType":"ExpressionStatement","src":"22248:3:88"},"nodeType":"ForStatement","src":"22222:73:88"},{"expression":{"id":54204,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22311:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54185,"id":54205,"nodeType":"Return","src":"22304:10:88"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"22140:11:88","parameters":{"id":54182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54181,"mutability":"mutable","name":"weights","nameLocation":"22169:7:88","nodeType":"VariableDeclaration","scope":54207,"src":"22152:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54179,"name":"uint256","nodeType":"ElementaryTypeName","src":"22152:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54180,"nodeType":"ArrayTypeName","src":"22152:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"22151:26:88"},"returnParameters":{"id":54185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54184,"mutability":"mutable","name":"sum","nameLocation":"22207:3:88","nodeType":"VariableDeclaration","scope":54207,"src":"22199:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54183,"name":"uint256","nodeType":"ElementaryTypeName","src":"22199:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22198:13:88"},"scope":55375,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54382,"nodeType":"FunctionDefinition","src":"22327:933:88","nodes":[],"body":{"id":54381,"nodeType":"Block","src":"22430:830:88","nodes":[],"statements":[{"expression":{"id":54224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54217,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22440:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22470:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22453:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54219,"nodeType":"UserDefinedTypeName","pathNode":{"id":54218,"name":"FvmAddress","nameLocations":["22457:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22457:10:88"},"referencedDeclaration":49998,"src":"22457:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54220,"nodeType":"ArrayTypeName","src":"22457:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"22440:32:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54225,"nodeType":"ExpressionStatement","src":"22440:32:88"},{"expression":{"id":54236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54226,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22482:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54228,"indexExpression":{"hexValue":"30","id":54227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22493:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22482:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22528:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22520:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22523:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22520:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22520:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54229,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22498:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22515:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22498:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22498:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22482:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54237,"nodeType":"ExpressionStatement","src":"22482:51:88"},{"expression":{"id":54248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22543:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54240,"indexExpression":{"hexValue":"31","id":54239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22554:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22543:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54243,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22581:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22584:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22581:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22581:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54241,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22559:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22576:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22559:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22559:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22543:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54249,"nodeType":"ExpressionStatement","src":"22543:51:88"},{"expression":{"id":54260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54250,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22604:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54252,"indexExpression":{"hexValue":"32","id":54251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22615:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22604:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22650:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22642:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22645:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22642:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54253,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22620:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22637:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22620:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22620:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22604:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54261,"nodeType":"ExpressionStatement","src":"22604:51:88"},{"expression":{"id":54268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54262,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22666:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22692:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22678:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54263,"name":"address","nodeType":"ElementaryTypeName","src":"22682:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54264,"nodeType":"ArrayTypeName","src":"22682:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22678:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"22666:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54269,"nodeType":"ExpressionStatement","src":"22666:28:88"},{"expression":{"id":54277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54270,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22704:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54272,"indexExpression":{"hexValue":"30","id":54271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22714:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22704:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22727:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22719:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22722:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22719:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22719:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22704:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54278,"nodeType":"ExpressionStatement","src":"22704:27:88"},{"expression":{"id":54286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54279,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22741:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54281,"indexExpression":{"hexValue":"31","id":54280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22741:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22764:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54282,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22756:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22759:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22756:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22756:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22741:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54287,"nodeType":"ExpressionStatement","src":"22741:27:88"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54288,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22778:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54290,"indexExpression":{"hexValue":"32","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22788:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22778:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22801:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54291,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22793:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22796:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22793:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22793:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22778:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54296,"nodeType":"ExpressionStatement","src":"22778:27:88"},{"assignments":[54301],"declarations":[{"constant":false,"id":54301,"mutability":"mutable","name":"weights","nameLocation":"22833:7:88","nodeType":"VariableDeclaration","scope":54381,"src":"22816:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54299,"name":"uint256","nodeType":"ElementaryTypeName","src":"22816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54300,"nodeType":"ArrayTypeName","src":"22816:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54307,"initialValue":{"arguments":[{"hexValue":"33","id":54305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22857:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22843:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54302,"name":"uint256","nodeType":"ElementaryTypeName","src":"22847:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54303,"nodeType":"ArrayTypeName","src":"22847:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22816:43:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22886:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22878:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22881:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22878:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22878:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22892:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22870:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22873:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22870:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22870:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54317,"nodeType":"ExpressionStatement","src":"22870:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22920:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54321,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22912:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22915:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22912:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54318,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22904:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22907:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22904:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22904:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54327,"nodeType":"ExpressionStatement","src":"22904:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22954:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22946:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22949:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22946:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22946:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22960:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54328,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22938:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22941:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22938:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54337,"nodeType":"ExpressionStatement","src":"22938:24:88"},{"expression":{"id":54342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54338,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22973:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54340,"indexExpression":{"hexValue":"30","id":54339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22981:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22973:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22986:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22973:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54343,"nodeType":"ExpressionStatement","src":"22973:16:88"},{"expression":{"id":54348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54344,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22999:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54346,"indexExpression":{"hexValue":"31","id":54345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23007:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22999:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23012:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22999:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54349,"nodeType":"ExpressionStatement","src":"22999:16:88"},{"expression":{"id":54354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54350,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"23025:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54352,"indexExpression":{"hexValue":"32","id":54351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23033:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23025:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23038:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23025:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54355,"nodeType":"ExpressionStatement","src":"23025:16:88"},{"assignments":[54358],"declarations":[{"constant":false,"id":54358,"mutability":"mutable","name":"finality","nameLocation":"23074:8:88","nodeType":"VariableDeclaration","scope":54381,"src":"23052:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54357,"nodeType":"UserDefinedTypeName","pathNode":{"id":54356,"name":"ParentFinality","nameLocations":["23052:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"23052:14:88"},"referencedDeclaration":49918,"src":"23052:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54367,"initialValue":{"arguments":[{"expression":{"id":54360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23109:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:6:88","memberName":"number","nodeType":"MemberAccess","src":"23109:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23142:1:88","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":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23134:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23134:7:88","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23134:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54359,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"23085:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23101:6:88","23123:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"23085:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"23052:94:88"},{"expression":{"arguments":[{"expression":{"id":54371,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"23166:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23177:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"23166:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54368,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23157:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23160:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23157:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23157:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54374,"nodeType":"ExpressionStatement","src":"23157:33:88"},{"expression":{"arguments":[{"id":54378,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"23244:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54375,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"23200:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23223:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"23200:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54380,"nodeType":"ExpressionStatement","src":"23200:53:88"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"22336:15:88","parameters":{"id":54208,"nodeType":"ParameterList","parameters":[],"src":"22351:2:88"},"returnParameters":{"id":54216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54212,"mutability":"mutable","name":"validators","nameLocation":"22390:10:88","nodeType":"VariableDeclaration","scope":54382,"src":"22370:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54210,"nodeType":"UserDefinedTypeName","pathNode":{"id":54209,"name":"FvmAddress","nameLocations":["22370:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22370:10:88"},"referencedDeclaration":49998,"src":"22370:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54211,"nodeType":"ArrayTypeName","src":"22370:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54215,"mutability":"mutable","name":"addresses","nameLocation":"22419:9:88","nodeType":"VariableDeclaration","scope":54382,"src":"22402:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54213,"name":"address","nodeType":"ElementaryTypeName","src":"22402:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54214,"nodeType":"ArrayTypeName","src":"22402:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"22369:60:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54475,"nodeType":"FunctionDefinition","src":"23266:1297:88","nodes":[],"body":{"id":54474,"nodeType":"Block","src":"23350:1213:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54392,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"23375:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54393,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23402:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54391,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"23360:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23360:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54395,"nodeType":"ExpressionStatement","src":"23360:46:88"},{"assignments":[54398],"declarations":[{"constant":false,"id":54398,"mutability":"mutable","name":"crossMsg","nameLocation":"23433:8:88","nodeType":"VariableDeclaration","scope":54474,"src":"23417:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54397,"nodeType":"UserDefinedTypeName","pathNode":{"id":54396,"name":"CrossMsg","nameLocations":["23417:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"23417:8:88"},"referencedDeclaration":49974,"src":"23417:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54438,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54406,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23596:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54402,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23555:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23564:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23555:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23581:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23555:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54410,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23659:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54408,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23637:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23654:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23637:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23637:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54401,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23512:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23545:8:88","23625:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23512:173:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54418,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23791:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54414,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23750:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23759:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23750:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23750:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54422,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23851:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54420,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23829:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23846:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23829:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23829:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54413,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23707:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23740:8:88","23817:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23707:167:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54425,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"23899:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23899:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54429,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"23976:11:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24023:1:88","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":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24013:9:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54430,"name":"bytes","nodeType":"ElementaryTypeName","src":"24017:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24013:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54434,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"24048:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54400,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"23476:11:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23506:4:88","23703:2:88","23892:5:88","23942:5:88","23968:6:88","24005:6:88","24043:3:88"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"23476:608:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24107:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54399,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"23444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23467:7:88","24098:7:88"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"23444:679:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"23417:706:88"},{"assignments":[54443],"declarations":[{"constant":false,"id":54443,"mutability":"mutable","name":"msgs","nameLocation":"24151:4:88","nodeType":"VariableDeclaration","scope":54474,"src":"24133:22:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54441,"nodeType":"UserDefinedTypeName","pathNode":{"id":54440,"name":"CrossMsg","nameLocations":["24133:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24133:8:88"},"referencedDeclaration":49974,"src":"24133:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54442,"nodeType":"ArrayTypeName","src":"24133:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54450,"initialValue":{"arguments":[{"hexValue":"31","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24173:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24158:14:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54445,"nodeType":"UserDefinedTypeName","pathNode":{"id":54444,"name":"CrossMsg","nameLocations":["24162:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24162:8:88"},"referencedDeclaration":49974,"src":"24162:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54446,"nodeType":"ArrayTypeName","src":"24162:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24158:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24133:42:88"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24185:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54453,"indexExpression":{"hexValue":"30","id":54452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24190:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24185:7:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54454,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24195:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"24185:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54456,"nodeType":"ExpressionStatement","src":"24185:18:88"},{"expression":{"arguments":[{"expression":{"id":54460,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"24442:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24453:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"24442:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24433:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24436:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"24433:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24433:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54463,"nodeType":"ExpressionStatement","src":"24433:33:88"},{"expression":{"arguments":[{"id":54467,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24516:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54464,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"24476:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24497:18:88","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"24476:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24476:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54469,"nodeType":"ExpressionStatement","src":"24476:45:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54470,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24539:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24548:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"24539:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24539:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54390,"id":54473,"nodeType":"Return","src":"24532:24:88"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"23275:20:88","parameters":{"id":54387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54384,"mutability":"mutable","name":"caller","nameLocation":"23304:6:88","nodeType":"VariableDeclaration","scope":54475,"src":"23296:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54383,"name":"address","nodeType":"ElementaryTypeName","src":"23296:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54386,"mutability":"mutable","name":"src","nameLocation":"23320:3:88","nodeType":"VariableDeclaration","scope":54475,"src":"23312:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54385,"name":"address","nodeType":"ElementaryTypeName","src":"23312:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23295:29:88"},"returnParameters":{"id":54390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54475,"src":"23341:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23341:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23340:9:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54486,"nodeType":"FunctionDefinition","src":"24569:93:88","nodes":[],"body":{"id":54485,"nodeType":"Block","src":"24617:45:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54481,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54477,"src":"24640:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24651:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54480,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"24627:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24627:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54484,"nodeType":"ExpressionStatement","src":"24627:28:88"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24578:12:88","parameters":{"id":54478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54477,"mutability":"mutable","name":"validator","nameLocation":"24599:9:88","nodeType":"VariableDeclaration","scope":54486,"src":"24591:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54476,"name":"address","nodeType":"ElementaryTypeName","src":"24591:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24590:19:88"},"returnParameters":{"id":54479,"nodeType":"ParameterList","parameters":[],"src":"24617:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54569,"nodeType":"FunctionDefinition","src":"24668:610:88","nodes":[],"body":{"id":54568,"nodeType":"Block","src":"24732:546:88","nodes":[],"statements":[{"assignments":[54497],"declarations":[{"constant":false,"id":54497,"mutability":"mutable","name":"validators","nameLocation":"24762:10:88","nodeType":"VariableDeclaration","scope":54568,"src":"24742:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54495,"nodeType":"UserDefinedTypeName","pathNode":{"id":54494,"name":"FvmAddress","nameLocations":["24742:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24742:10:88"},"referencedDeclaration":49998,"src":"24742:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54496,"nodeType":"ArrayTypeName","src":"24742:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54504,"initialValue":{"arguments":[{"hexValue":"31","id":54502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24792:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24775:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54499,"nodeType":"UserDefinedTypeName","pathNode":{"id":54498,"name":"FvmAddress","nameLocations":["24779:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24779:10:88"},"referencedDeclaration":49998,"src":"24779:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54500,"nodeType":"ArrayTypeName","src":"24779:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24775:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24742:52:88"},{"expression":{"id":54512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54505,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54497,"src":"24804:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54507,"indexExpression":{"hexValue":"30","id":54506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24815:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24804:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24842:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54508,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"24820:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24837:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"24820:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24820:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"24804:48:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54513,"nodeType":"ExpressionStatement","src":"24804:48:88"},{"assignments":[54518],"declarations":[{"constant":false,"id":54518,"mutability":"mutable","name":"weights","nameLocation":"24879:7:88","nodeType":"VariableDeclaration","scope":54568,"src":"24862:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54516,"name":"uint256","nodeType":"ElementaryTypeName","src":"24862:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54517,"nodeType":"ArrayTypeName","src":"24862:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54524,"initialValue":{"arguments":[{"hexValue":"31","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24903:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24889:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54519,"name":"uint256","nodeType":"ElementaryTypeName","src":"24893:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54520,"nodeType":"ArrayTypeName","src":"24893:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24889:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24862:43:88"},{"expression":{"id":54529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54525,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54518,"src":"24915:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54527,"indexExpression":{"hexValue":"30","id":54526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24915:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54528,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54490,"src":"24928:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24915:19:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54530,"nodeType":"ExpressionStatement","src":"24915:19:88"},{"expression":{"arguments":[{"id":54534,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24953:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24964:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24945:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24948:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"24945:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24945:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54537,"nodeType":"ExpressionStatement","src":"24945:21:88"},{"assignments":[54540],"declarations":[{"constant":false,"id":54540,"mutability":"mutable","name":"finality","nameLocation":"24998:8:88","nodeType":"VariableDeclaration","scope":54568,"src":"24976:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54539,"nodeType":"UserDefinedTypeName","pathNode":{"id":54538,"name":"ParentFinality","nameLocations":["24976:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"24976:14:88"},"referencedDeclaration":49918,"src":"24976:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54549,"initialValue":{"arguments":[{"expression":{"id":54542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25033:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25039:6:88","memberName":"number","nodeType":"MemberAccess","src":"25033:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25066:1:88","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":54545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25058:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25058:7:88","typeDescriptions":{}}},"id":54547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25058:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54541,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"25009:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25025:6:88","25047:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"25009:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"24976:94:88"},{"expression":{"arguments":[{"expression":{"id":54553,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"25160:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25171:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"25160:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54550,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25146:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25149:10:88","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"25146:13:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54556,"nodeType":"ExpressionStatement","src":"25146:38:88"},{"expression":{"arguments":[{"id":54560,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"25238:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54557,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"25194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25217:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"25194:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54562,"nodeType":"ExpressionStatement","src":"25194:53:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25257:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:9:88","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"25257:12:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25257:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54567,"nodeType":"ExpressionStatement","src":"25257:14:88"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24677:12:88","parameters":{"id":54491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54488,"mutability":"mutable","name":"validator","nameLocation":"24698:9:88","nodeType":"VariableDeclaration","scope":54569,"src":"24690:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54487,"name":"address","nodeType":"ElementaryTypeName","src":"24690:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54490,"mutability":"mutable","name":"weight","nameLocation":"24717:6:88","nodeType":"VariableDeclaration","scope":54569,"src":"24709:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54489,"name":"uint256","nodeType":"ElementaryTypeName","src":"24709:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24689:35:88"},"returnParameters":{"id":54492,"nodeType":"ParameterList","parameters":[],"src":"24732:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54582,"nodeType":"FunctionDefinition","src":"25284:112:88","nodes":[],"body":{"id":54581,"nodeType":"Block","src":"25328:68:88","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25350:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54571,"src":"25382:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54574,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"25338:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25346:3:88","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"25338:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25338:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54580,"nodeType":"ExpressionStatement","src":"25338:51:88"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"25293:6:88","parameters":{"id":54572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54571,"mutability":"mutable","name":"amount","nameLocation":"25308:6:88","nodeType":"VariableDeclaration","scope":54582,"src":"25300:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54570,"name":"uint256","nodeType":"ElementaryTypeName","src":"25300:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25299:16:88"},"returnParameters":{"id":54573,"nodeType":"ParameterList","parameters":[],"src":"25328:0:88"},"scope":55375,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54597,"nodeType":"FunctionDefinition","src":"25402:131:88","nodes":[],"body":{"id":54596,"nodeType":"Block","src":"25466:67:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54590,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54584,"src":"25481:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54591,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54586,"src":"25496:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54592,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"25508:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25519:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"25508:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"id":54589,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54597,54722],"referencedDeclaration":54722,"src":"25476:4:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50229_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25476:50:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54595,"nodeType":"ExpressionStatement","src":"25476:50:88"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25411:4:88","parameters":{"id":54587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54584,"mutability":"mutable","name":"funderAddress","nameLocation":"25424:13:88","nodeType":"VariableDeclaration","scope":54597,"src":"25416:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54583,"name":"address","nodeType":"ElementaryTypeName","src":"25416:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54586,"mutability":"mutable","name":"fundAmount","nameLocation":"25447:10:88","nodeType":"VariableDeclaration","scope":54597,"src":"25439:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25439:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25415:43:88"},"returnParameters":{"id":54588,"nodeType":"ParameterList","parameters":[],"src":"25466:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54722,"nodeType":"FunctionDefinition","src":"25539:1180:88","nodes":[],"body":{"id":54721,"nodeType":"Block","src":"25620:1099:88","nodes":[],"statements":[{"assignments":[54609,null,54611,null,54613],"declarations":[{"constant":false,"id":54609,"mutability":"mutable","name":"subnetId","nameLocation":"25712:8:88","nodeType":"VariableDeclaration","scope":54721,"src":"25696:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54608,"nodeType":"UserDefinedTypeName","pathNode":{"id":54607,"name":"SubnetID","nameLocations":["25696:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"25696:8:88"},"referencedDeclaration":50077,"src":"25696:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54611,"mutability":"mutable","name":"nonceBefore","nameLocation":"25732:11:88","nodeType":"VariableDeclaration","scope":54721,"src":"25724:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54610,"name":"uint256","nodeType":"ElementaryTypeName","src":"25724:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54613,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"25755:16:88","nodeType":"VariableDeclaration","scope":54721,"src":"25747:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54612,"name":"uint256","nodeType":"ElementaryTypeName","src":"25747:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54620,"initialValue":{"arguments":[{"arguments":[{"id":54617,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"25793:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25785:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54615,"name":"address","nodeType":"ElementaryTypeName","src":"25785:7:88","typeDescriptions":{}}},"id":54618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25785:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54614,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"25775:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25695:109:88"},{"assignments":[54622],"declarations":[{"constant":false,"id":54622,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"25823:25:88","nodeType":"VariableDeclaration","scope":54721,"src":"25815:33:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54621,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54629,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54625,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"25887:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"25851:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25860:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"25851:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25851:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25899:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25851:49:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25815:85:88"},{"assignments":[54631],"declarations":[{"constant":false,"id":54631,"mutability":"mutable","name":"expectedNonce","nameLocation":"25918:13:88","nodeType":"VariableDeclaration","scope":54721,"src":"25910:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54630,"name":"uint256","nodeType":"ElementaryTypeName","src":"25910:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54635,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54632,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"25934:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25948:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25934:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25910:39:88"},{"assignments":[54637],"declarations":[{"constant":false,"id":54637,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"25967:18:88","nodeType":"VariableDeclaration","scope":54721,"src":"25959:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54636,"name":"uint256","nodeType":"ElementaryTypeName","src":"25959:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54641,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54638,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"25988:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54639,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26007:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25988:29:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25959:58:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54643,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26036:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26045:11:88","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"26036:20:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26061:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26036:26:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26064:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26028:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26028:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54650,"nodeType":"ExpressionStatement","src":"26028:55:88"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54651,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26098:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54652,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26106:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26117:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"26106:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26098:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54668,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26241:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54669,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26249:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26260:5:88","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"26249:16:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26241:24:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54684,"nodeType":"IfStatement","src":"26237:138:88","trueBody":{"id":54683,"nodeType":"Block","src":"26267:108:88","statements":[{"expression":{"arguments":[{"id":54675,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26305:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54678,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26337:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54676,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26315:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26332:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26315:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26315:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54680,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26353:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54672,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26281:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26291:13:88","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"26281:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26281:83:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54682,"nodeType":"ExpressionStatement","src":"26281:83:88"}]}},"id":54685,"nodeType":"IfStatement","src":"26094:281:88","trueBody":{"id":54667,"nodeType":"Block","src":"26125:106:88","statements":[{"expression":{"arguments":[{"id":54660,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26173:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54663,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26205:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54661,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26183:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26200:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26183:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26183:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54655,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26139:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26149:4:88","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"26139:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54658,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26161:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26139:33:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26139:81:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54666,"nodeType":"ExpressionStatement","src":"26139:81:88"}]}},{"assignments":[null,null,54687,null,54689],"declarations":[null,null,{"constant":false,"id":54687,"mutability":"mutable","name":"nonce","nameLocation":"26398:5:88","nodeType":"VariableDeclaration","scope":54721,"src":"26390:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54686,"name":"uint256","nodeType":"ElementaryTypeName","src":"26390:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54689,"mutability":"mutable","name":"circSupply","nameLocation":"26415:10:88","nodeType":"VariableDeclaration","scope":54721,"src":"26407:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54688,"name":"uint256","nodeType":"ElementaryTypeName","src":"26407:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54696,"initialValue":{"arguments":[{"arguments":[{"id":54693,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26447:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26439:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54691,"name":"address","nodeType":"ElementaryTypeName","src":"26439:7:88","typeDescriptions":{}}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26439:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54690,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"26429:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26429:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"26385:73:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54700,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26513:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54698,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26477:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26486:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"26477:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26477:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54702,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54622,"src":"26526:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26477:74:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":54704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26553:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26469:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26469:105:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54706,"nodeType":"ExpressionStatement","src":"26469:105:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54708,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"26593:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54709,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"26602:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26593:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":54711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26617:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":54707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26585:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54713,"nodeType":"ExpressionStatement","src":"26585:51:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54715,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54689,"src":"26654:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54716,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54637,"src":"26668:18:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26654:32:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":54718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26688:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":54714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26646:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:66:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54720,"nodeType":"ExpressionStatement","src":"26646:66:88"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25548:4:88","parameters":{"id":54605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54599,"mutability":"mutable","name":"funderAddress","nameLocation":"25561:13:88","nodeType":"VariableDeclaration","scope":54722,"src":"25553:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54598,"name":"address","nodeType":"ElementaryTypeName","src":"25553:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54601,"mutability":"mutable","name":"fundAmount","nameLocation":"25584:10:88","nodeType":"VariableDeclaration","scope":54722,"src":"25576:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"25576:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54604,"mutability":"mutable","name":"mode","nameLocation":"25607:4:88","nodeType":"VariableDeclaration","scope":54722,"src":"25596:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":54603,"nodeType":"UserDefinedTypeName","pathNode":{"id":54602,"name":"SupplyKind","nameLocations":["25596:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"25596:10:88"},"referencedDeclaration":50229,"src":"25596:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"25552:60:88"},"returnParameters":{"id":54606,"nodeType":"ParameterList","parameters":[],"src":"25620:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54753,"nodeType":"FunctionDefinition","src":"26725:243:88","nodes":[],"body":{"id":54752,"nodeType":"Block","src":"26793:175:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54732,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26812:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26803:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26803:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26803:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54734,"nodeType":"ExpressionStatement","src":"26803:26:88"},{"expression":{"arguments":[{"id":54738,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26847:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54739,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26865:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26865:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":54735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26839:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26842:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26839:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26839:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54743,"nodeType":"ExpressionStatement","src":"26839:56:88"},{"expression":{"arguments":[{"id":54749,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54726,"src":"26954:6:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54744,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26905:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":54746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26915:4:88","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"26905:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":54748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54747,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26927:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"26905:48:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":54750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54751,"nodeType":"ExpressionStatement","src":"26905:56:88"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"26734:4:88","parameters":{"id":54727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54724,"mutability":"mutable","name":"validatorAddress","nameLocation":"26747:16:88","nodeType":"VariableDeclaration","scope":54753,"src":"26739:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54723,"name":"address","nodeType":"ElementaryTypeName","src":"26739:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54726,"mutability":"mutable","name":"pubkey","nameLocation":"26778:6:88","nodeType":"VariableDeclaration","scope":54753,"src":"26765:19:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54725,"name":"bytes","nodeType":"ElementaryTypeName","src":"26765:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26738:47:88"},"returnParameters":{"id":54728,"nodeType":"ParameterList","parameters":[],"src":"26793:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54800,"nodeType":"FunctionDefinition","src":"26974:298:88","nodes":[],"body":{"id":54799,"nodeType":"Block","src":"27042:230:88","nodes":[],"statements":[{"assignments":[54764],"declarations":[{"constant":false,"id":54764,"mutability":"mutable","name":"validators","nameLocation":"27069:10:88","nodeType":"VariableDeclaration","scope":54799,"src":"27052:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54762,"name":"address","nodeType":"ElementaryTypeName","src":"27052:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54763,"nodeType":"ArrayTypeName","src":"27052:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54770,"initialValue":{"arguments":[{"hexValue":"31","id":54768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27096:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27082:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54765,"name":"address","nodeType":"ElementaryTypeName","src":"27086:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54766,"nodeType":"ArrayTypeName","src":"27086:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27082:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27052:46:88"},{"expression":{"id":54775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54771,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27108:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54773,"indexExpression":{"hexValue":"30","id":54772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27119:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27108:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54774,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54755,"src":"27124:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27108:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54776,"nodeType":"ExpressionStatement","src":"27108:25:88"},{"assignments":[54781],"declarations":[{"constant":false,"id":54781,"mutability":"mutable","name":"privKeys","nameLocation":"27161:8:88","nodeType":"VariableDeclaration","scope":54799,"src":"27144:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54779,"name":"uint256","nodeType":"ElementaryTypeName","src":"27144:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54780,"nodeType":"ArrayTypeName","src":"27144:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54787,"initialValue":{"arguments":[{"hexValue":"31","id":54785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27186:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27172:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54782,"name":"uint256","nodeType":"ElementaryTypeName","src":"27176:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54783,"nodeType":"ArrayTypeName","src":"27176:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27172:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27144:44:88"},{"expression":{"id":54792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27198:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54790,"indexExpression":{"hexValue":"30","id":54789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27207:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27198:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54791,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54757,"src":"27212:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27198:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54793,"nodeType":"ExpressionStatement","src":"27198:21:88"},{"expression":{"arguments":[{"id":54795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27244:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54796,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27256:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54794,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27230:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27230:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54798,"nodeType":"ExpressionStatement","src":"27230:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26983:13:88","parameters":{"id":54758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54755,"mutability":"mutable","name":"validator","nameLocation":"27005:9:88","nodeType":"VariableDeclaration","scope":54800,"src":"26997:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54754,"name":"address","nodeType":"ElementaryTypeName","src":"26997:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54757,"mutability":"mutable","name":"privKey","nameLocation":"27024:7:88","nodeType":"VariableDeclaration","scope":54800,"src":"27016:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54756,"name":"uint256","nodeType":"ElementaryTypeName","src":"27016:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26996:36:88"},"returnParameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"27042:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54863,"nodeType":"FunctionDefinition","src":"27278:408:88","nodes":[],"body":{"id":54862,"nodeType":"Block","src":"27386:300:88","nodes":[],"statements":[{"assignments":[54815],"declarations":[{"constant":false,"id":54815,"mutability":"mutable","name":"validators","nameLocation":"27413:10:88","nodeType":"VariableDeclaration","scope":54862,"src":"27396:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54813,"name":"address","nodeType":"ElementaryTypeName","src":"27396:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54814,"nodeType":"ArrayTypeName","src":"27396:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54821,"initialValue":{"arguments":[{"hexValue":"32","id":54819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27440:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27426:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54816,"name":"address","nodeType":"ElementaryTypeName","src":"27430:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54817,"nodeType":"ArrayTypeName","src":"27430:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27426:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27396:46:88"},{"expression":{"id":54826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27452:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54824,"indexExpression":{"hexValue":"30","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27452:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54825,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54802,"src":"27468:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27452:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54827,"nodeType":"ExpressionStatement","src":"27452:26:88"},{"expression":{"id":54832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27488:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54830,"indexExpression":{"hexValue":"31","id":54829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27499:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27488:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54831,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54806,"src":"27504:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27488:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54833,"nodeType":"ExpressionStatement","src":"27488:26:88"},{"assignments":[54838],"declarations":[{"constant":false,"id":54838,"mutability":"mutable","name":"privKeys","nameLocation":"27542:8:88","nodeType":"VariableDeclaration","scope":54862,"src":"27525:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54836,"name":"uint256","nodeType":"ElementaryTypeName","src":"27525:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54837,"nodeType":"ArrayTypeName","src":"27525:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54844,"initialValue":{"arguments":[{"hexValue":"32","id":54842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27567:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27553:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54839,"name":"uint256","nodeType":"ElementaryTypeName","src":"27557:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54840,"nodeType":"ArrayTypeName","src":"27557:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27553:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27525:44:88"},{"expression":{"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54845,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27579:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54847,"indexExpression":{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27588:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27579:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54848,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54804,"src":"27593:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27579:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54850,"nodeType":"ExpressionStatement","src":"27579:22:88"},{"expression":{"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54851,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27611:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54853,"indexExpression":{"hexValue":"31","id":54852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27611:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54854,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54808,"src":"27625:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27611:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54856,"nodeType":"ExpressionStatement","src":"27611:22:88"},{"expression":{"arguments":[{"id":54858,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27658:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54859,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27670:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54857,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27644:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27644:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54861,"nodeType":"ExpressionStatement","src":"27644:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27287:13:88","parameters":{"id":54809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54802,"mutability":"mutable","name":"validator1","nameLocation":"27309:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27301:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54801,"name":"address","nodeType":"ElementaryTypeName","src":"27301:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54804,"mutability":"mutable","name":"privKey1","nameLocation":"27329:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27321:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54803,"name":"uint256","nodeType":"ElementaryTypeName","src":"27321:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54806,"mutability":"mutable","name":"validator2","nameLocation":"27347:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27339:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54805,"name":"address","nodeType":"ElementaryTypeName","src":"27339:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54808,"mutability":"mutable","name":"privKey2","nameLocation":"27367:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27359:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54807,"name":"uint256","nodeType":"ElementaryTypeName","src":"27359:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27300:76:88"},"returnParameters":{"id":54810,"nodeType":"ParameterList","parameters":[],"src":"27386:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54942,"nodeType":"FunctionDefinition","src":"27692:568:88","nodes":[],"body":{"id":54941,"nodeType":"Block","src":"27892:368:88","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"validators","nameLocation":"27919:10:88","nodeType":"VariableDeclaration","scope":54941,"src":"27902:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54880,"name":"address","nodeType":"ElementaryTypeName","src":"27902:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54881,"nodeType":"ArrayTypeName","src":"27902:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54888,"initialValue":{"arguments":[{"hexValue":"33","id":54886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27946:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27932:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"27936:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54884,"nodeType":"ArrayTypeName","src":"27936:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27932:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27902:46:88"},{"expression":{"id":54893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54889,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27958:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54891,"indexExpression":{"hexValue":"30","id":54890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27969:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27958:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54892,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54865,"src":"27974:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27958:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54894,"nodeType":"ExpressionStatement","src":"27958:26:88"},{"expression":{"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54895,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27994:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54897,"indexExpression":{"hexValue":"31","id":54896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28005:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27994:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54898,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54869,"src":"28010:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27994:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54900,"nodeType":"ExpressionStatement","src":"27994:26:88"},{"expression":{"id":54905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54901,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28030:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54903,"indexExpression":{"hexValue":"32","id":54902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28030:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54904,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54873,"src":"28046:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28030:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54906,"nodeType":"ExpressionStatement","src":"28030:26:88"},{"assignments":[54911],"declarations":[{"constant":false,"id":54911,"mutability":"mutable","name":"privKeys","nameLocation":"28084:8:88","nodeType":"VariableDeclaration","scope":54941,"src":"28067:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54909,"name":"uint256","nodeType":"ElementaryTypeName","src":"28067:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54910,"nodeType":"ArrayTypeName","src":"28067:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[{"hexValue":"33","id":54915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28109:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28095:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28099:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54913,"nodeType":"ArrayTypeName","src":"28099:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28095:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28067:44:88"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54918,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28121:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54920,"indexExpression":{"hexValue":"30","id":54919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28130:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28121:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"28135:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28121:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54923,"nodeType":"ExpressionStatement","src":"28121:22:88"},{"expression":{"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54924,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28153:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54926,"indexExpression":{"hexValue":"31","id":54925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28153:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54927,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"28167:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28153:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54929,"nodeType":"ExpressionStatement","src":"28153:22:88"},{"expression":{"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54930,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28185:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54932,"indexExpression":{"hexValue":"32","id":54931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28194:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28185:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54933,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54875,"src":"28199:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28185:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54935,"nodeType":"ExpressionStatement","src":"28185:22:88"},{"expression":{"arguments":[{"id":54937,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28232:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54938,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28244:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54936,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"28218:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28218:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54940,"nodeType":"ExpressionStatement","src":"28218:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27701:13:88","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54865,"mutability":"mutable","name":"validator1","nameLocation":"27732:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27724:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54864,"name":"address","nodeType":"ElementaryTypeName","src":"27724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54867,"mutability":"mutable","name":"privKey1","nameLocation":"27760:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27752:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54866,"name":"uint256","nodeType":"ElementaryTypeName","src":"27752:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54869,"mutability":"mutable","name":"validator2","nameLocation":"27786:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27778:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54868,"name":"address","nodeType":"ElementaryTypeName","src":"27778:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54871,"mutability":"mutable","name":"privKey2","nameLocation":"27814:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27806:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"27806:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54873,"mutability":"mutable","name":"validator3","nameLocation":"27840:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27832:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54872,"name":"address","nodeType":"ElementaryTypeName","src":"27832:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54875,"mutability":"mutable","name":"privKey3","nameLocation":"27868:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27860:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27860:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27714:168:88"},"returnParameters":{"id":54877,"nodeType":"ParameterList","parameters":[],"src":"27892:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55093,"nodeType":"FunctionDefinition","src":"28266:1102:88","nodes":[],"body":{"id":55092,"nodeType":"Block","src":"28354:1014:88","nodes":[],"statements":[{"assignments":[54952],"declarations":[{"constant":false,"id":54952,"mutability":"mutable","name":"n","nameLocation":"28372:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28364:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54951,"name":"uint256","nodeType":"ElementaryTypeName","src":"28364:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54955,"initialValue":{"expression":{"id":54953,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"28376:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28387:6:88","memberName":"length","nodeType":"MemberAccess","src":"28376:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28364:29:88"},{"assignments":[54960],"declarations":[{"constant":false,"id":54960,"mutability":"mutable","name":"signatures","nameLocation":"28419:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28404:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54958,"name":"bytes","nodeType":"ElementaryTypeName","src":"28404:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54959,"nodeType":"ArrayTypeName","src":"28404:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":54966,"initialValue":{"arguments":[{"id":54964,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"28444:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28432:11:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":54961,"name":"bytes","nodeType":"ElementaryTypeName","src":"28436:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54962,"nodeType":"ArrayTypeName","src":"28436:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28432:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28404:42:88"},{"assignments":[54968,null],"declarations":[{"constant":false,"id":54968,"mutability":"mutable","name":"nextConfigNum","nameLocation":"28465:13:88","nodeType":"VariableDeclaration","scope":55092,"src":"28458:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54967,"name":"uint64","nodeType":"ElementaryTypeName","src":"28458:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":54972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54969,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28484:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28493:23:88","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50349,"src":"28484:32:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28484:34:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"28457:61:88"},{"assignments":[54974],"declarations":[{"constant":false,"id":54974,"mutability":"mutable","name":"h","nameLocation":"28537:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28529:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54973,"name":"uint256","nodeType":"ElementaryTypeName","src":"28529:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54982,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54975,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28541:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28550:28:88","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50477,"src":"28541:37:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28541:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54978,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28583:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28592:19:88","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50457,"src":"28583:28:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28583:30:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28541:72:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28529:84:88"},{"assignments":[54985],"declarations":[{"constant":false,"id":54985,"mutability":"mutable","name":"checkpoint","nameLocation":"28650:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28624:36:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":54984,"nodeType":"UserDefinedTypeName","pathNode":{"id":54983,"name":"BottomUpCheckpoint","nameLocations":["28624:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"28624:18:88"},"referencedDeclaration":49932,"src":"28624:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55007,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54993,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28750:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28742:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"28742:7:88","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28742:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54987,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28706:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28715:9:88","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50279,"src":"28706:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28727:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"28706:35:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54996,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28788:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55000,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28835:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28824:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28828:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28824:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28824:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28814:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28814:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55003,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54968,"src":"28877:13:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28877:17:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":54986,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"28663:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:8:88","28775:11:88","28803:9:88","28852:23:88"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"28663:242:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"28624:281:88"},{"expression":{"arguments":[{"arguments":[{"id":55013,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28932:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28924:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55011,"name":"address","nodeType":"ElementaryTypeName","src":"28924:7:88","typeDescriptions":{}}},"id":55014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28924:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28944:9:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55008,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28916:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28919:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28916:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55017,"nodeType":"ExpressionStatement","src":"28916:38:88"},{"assignments":[55019],"declarations":[{"constant":false,"id":55019,"mutability":"mutable","name":"hash","nameLocation":"28973:4:88","nodeType":"VariableDeclaration","scope":55092,"src":"28965:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28965:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55026,"initialValue":{"arguments":[{"arguments":[{"id":55023,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29001:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28990:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28994:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28990:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28990:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55020,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28980:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28980:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28965:48:88"},{"body":{"id":55062,"nodeType":"Block","src":"29056:140:88","statements":[{"assignments":[55038,55040,55042],"declarations":[{"constant":false,"id":55038,"mutability":"mutable","name":"v","nameLocation":"29077:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29071:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55037,"name":"uint8","nodeType":"ElementaryTypeName","src":"29071:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55040,"mutability":"mutable","name":"r","nameLocation":"29088:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29080:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29080:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55042,"mutability":"mutable","name":"s","nameLocation":"29099:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29091:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29091:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55050,"initialValue":{"arguments":[{"baseExpression":{"id":55045,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54948,"src":"29112:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55047,"indexExpression":{"id":55046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29121:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29112:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55048,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55019,"src":"29125:4:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29104:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29107:4:88","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"29104:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29104:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"29070:60:88"},{"expression":{"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55051,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29144:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55053,"indexExpression":{"id":55052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29155:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29144:13:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55056,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55040,"src":"29177:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"29180:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55038,"src":"29183:1:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29160:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29164:12:88","memberName":"encodePacked","nodeType":"MemberAccess","src":"29160:16:88","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29160:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"29144:41:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55061,"nodeType":"ExpressionStatement","src":"29144:41:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29044:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55032,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29048:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29044:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55063,"initializationExpression":{"assignments":[55028],"declarations":[{"constant":false,"id":55028,"mutability":"mutable","name":"i","nameLocation":"29037:1:88","nodeType":"VariableDeclaration","scope":55063,"src":"29029:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55027,"name":"uint256","nodeType":"ElementaryTypeName","src":"29029:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55030,"initialValue":{"hexValue":"30","id":55029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29029:13:88"},"loopExpression":{"expression":{"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29051:3:88","subExpression":{"id":55034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29051:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55036,"nodeType":"ExpressionStatement","src":"29051:3:88"},"nodeType":"ForStatement","src":"29024:172:88"},{"body":{"id":55090,"nodeType":"Block","src":"29238:124:88","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29261:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55079,"indexExpression":{"id":55078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29272:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29261:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29252:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29255:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"29252:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29252:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55081,"nodeType":"ExpressionStatement","src":"29252:23:88"},{"expression":{"arguments":[{"id":55085,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29316:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55086,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29328:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55087,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29340:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55082,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"29289:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":55084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29299:16:88","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":51154,"src":"29289:26:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29289:62:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55089,"nodeType":"ExpressionStatement","src":"29289:62:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29226:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55069,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29230:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29226:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55091,"initializationExpression":{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"i","nameLocation":"29219:1:88","nodeType":"VariableDeclaration","scope":55091,"src":"29211:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55064,"name":"uint256","nodeType":"ElementaryTypeName","src":"29211:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55067,"initialValue":{"hexValue":"30","id":55066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29223:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29211:13:88"},"loopExpression":{"expression":{"id":55072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29233:3:88","subExpression":{"id":55071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29233:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55073,"nodeType":"ExpressionStatement","src":"29233:3:88"},"nodeType":"ForStatement","src":"29206:156:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"28275:13:88","parameters":{"id":54949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54945,"mutability":"mutable","name":"validators","nameLocation":"28306:10:88","nodeType":"VariableDeclaration","scope":55093,"src":"28289:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54943,"name":"address","nodeType":"ElementaryTypeName","src":"28289:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54944,"nodeType":"ArrayTypeName","src":"28289:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54948,"mutability":"mutable","name":"privKeys","nameLocation":"28335:8:88","nodeType":"VariableDeclaration","scope":55093,"src":"28318:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54946,"name":"uint256","nodeType":"ElementaryTypeName","src":"28318:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54947,"nodeType":"ArrayTypeName","src":"28318:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"28288:56:88"},"returnParameters":{"id":54950,"nodeType":"ParameterList","parameters":[],"src":"28354:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55128,"nodeType":"FunctionDefinition","src":"29374:305:88","nodes":[],"body":{"id":55127,"nodeType":"Block","src":"29421:258:88","nodes":[],"statements":[{"assignments":[55099],"declarations":[{"constant":false,"id":55099,"mutability":"mutable","name":"expectedNonce","nameLocation":"29439:13:88","nodeType":"VariableDeclaration","scope":55127,"src":"29431:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55105,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55100,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29455:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29464:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29455:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29455:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29482:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29455:28:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"29431:52:88"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29555:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29559:6:88","memberName":"sender","nodeType":"MemberAccess","src":"29555:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55111,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"29533:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":55112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29550:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"29533:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55106,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29493:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29503:7:88","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"29493:17:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55109,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55095,"src":"29518:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29493:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55117,"nodeType":"ExpressionStatement","src":"29493:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55119,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29585:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29594:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29585:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29585:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55122,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55099,"src":"29613:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29585:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29628:43:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29577:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29577:95:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55126,"nodeType":"ExpressionStatement","src":"29577:95:88"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"29383:7:88","parameters":{"id":55096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55095,"mutability":"mutable","name":"releaseAmount","nameLocation":"29399:13:88","nodeType":"VariableDeclaration","scope":55128,"src":"29391:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55094,"name":"uint256","nodeType":"ElementaryTypeName","src":"29391:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29390:23:88"},"returnParameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"29421:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55183,"nodeType":"FunctionDefinition","src":"29685:536:88","nodes":[],"body":{"id":55182,"nodeType":"Block","src":"29754:467:88","nodes":[],"statements":[{"assignments":[55136],"declarations":[{"constant":false,"id":55136,"mutability":"mutable","name":"balanceBefore","nameLocation":"29772:13:88","nodeType":"VariableDeclaration","scope":55182,"src":"29764:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55135,"name":"uint256","nodeType":"ElementaryTypeName","src":"29764:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55139,"initialValue":{"expression":{"id":55137,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29788:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29802:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29788:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29764:45:88"},{"assignments":[null,55141,null,null,null],"declarations":[null,{"constant":false,"id":55141,"mutability":"mutable","name":"stakedBefore","nameLocation":"29831:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29823:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"29823:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55145,"initialValue":{"arguments":[{"id":55143,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29863:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55142,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"29853:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29853:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29820:57:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55146,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29888:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29898:8:88","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"29888:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55149,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"29914:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29888:38:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29888:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55152,"nodeType":"ExpressionStatement","src":"29888:40:88"},{"assignments":[55154],"declarations":[{"constant":false,"id":55154,"mutability":"mutable","name":"balanceAfter","nameLocation":"29947:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29939:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55153,"name":"uint256","nodeType":"ElementaryTypeName","src":"29939:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55157,"initialValue":{"expression":{"id":55155,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29962:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29976:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29962:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29939:44:88"},{"assignments":[null,55159,null,null,null],"declarations":[null,{"constant":false,"id":55159,"mutability":"mutable","name":"stakedAfter","nameLocation":"30004:11:88","nodeType":"VariableDeclaration","scope":55182,"src":"29996:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29996:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55163,"initialValue":{"arguments":[{"id":55161,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"30035:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55160,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"30025:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30025:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29993:56:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55165,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55154,"src":"30068:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55166,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55136,"src":"30084:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55167,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30100:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30084:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30068:43:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30113:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30060:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30060:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"ExpressionStatement","src":"30060:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55174,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"30152:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55175,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55141,"src":"30167:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55176,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30182:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30167:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30152:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30195:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30144:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30144:70:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"30144:70:88"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"29694:8:88","parameters":{"id":55133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55130,"mutability":"mutable","name":"stakeAmount","nameLocation":"29711:11:88","nodeType":"VariableDeclaration","scope":55183,"src":"29703:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55129,"name":"uint256","nodeType":"ElementaryTypeName","src":"29703:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55132,"mutability":"mutable","name":"subnetAddress","nameLocation":"29732:13:88","nodeType":"VariableDeclaration","scope":55183,"src":"29724:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55131,"name":"address","nodeType":"ElementaryTypeName","src":"29724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29702:44:88"},"returnParameters":{"id":55134,"nodeType":"ParameterList","parameters":[],"src":"29754:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55268,"nodeType":"FunctionDefinition","src":"30227:813:88","nodes":[],"body":{"id":55267,"nodeType":"Block","src":"30322:718:88","nodes":[],"statements":[{"assignments":[55195],"declarations":[{"constant":false,"id":55195,"mutability":"mutable","name":"manager","nameLocation":"30352:7:88","nodeType":"VariableDeclaration","scope":55267,"src":"30332:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55194,"nodeType":"UserDefinedTypeName","pathNode":{"id":55193,"name":"GatewayManagerFacet","nameLocations":["30332:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"30332:19:88"},"referencedDeclaration":38870,"src":"30332:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55202,"initialValue":{"arguments":[{"arguments":[{"id":55199,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30390:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30382:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55197,"name":"address","nodeType":"ElementaryTypeName","src":"30382:7:88","typeDescriptions":{}}},"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30382:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55196,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"30362:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30362:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"30332:62:88"},{"expression":{"arguments":[{"hexValue":"30","id":55208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30441:1:88","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"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55203,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"30405:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30413:8:88","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"30405:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55206,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30429:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30405:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30405:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55210,"nodeType":"ExpressionStatement","src":"30405:38:88"},{"assignments":[55213,55215,55217,null,55219],"declarations":[{"constant":false,"id":55213,"mutability":"mutable","name":"id","nameLocation":"30471:2:88","nodeType":"VariableDeclaration","scope":55267,"src":"30455:18:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55212,"nodeType":"UserDefinedTypeName","pathNode":{"id":55211,"name":"SubnetID","nameLocations":["30455:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30455:8:88"},"referencedDeclaration":50077,"src":"30455:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55215,"mutability":"mutable","name":"stake","nameLocation":"30483:5:88","nodeType":"VariableDeclaration","scope":55267,"src":"30475:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30475:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55217,"mutability":"mutable","name":"topDownNonce","nameLocation":"30498:12:88","nodeType":"VariableDeclaration","scope":55267,"src":"30490:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55216,"name":"uint256","nodeType":"ElementaryTypeName","src":"30490:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55219,"mutability":"mutable","name":"circSupply","nameLocation":"30522:10:88","nodeType":"VariableDeclaration","scope":55267,"src":"30514:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55218,"name":"uint256","nodeType":"ElementaryTypeName","src":"30514:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55224,"initialValue":{"arguments":[{"id":55221,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30561:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55222,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30588:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55220,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"30536:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30536:64:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30454:146:88"},{"assignments":[55227],"declarations":[{"constant":false,"id":55227,"mutability":"mutable","name":"parentNetwork","nameLocation":"30627:13:88","nodeType":"VariableDeclaration","scope":55267,"src":"30611:29:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55226,"nodeType":"UserDefinedTypeName","pathNode":{"id":55225,"name":"SubnetID","nameLocations":["30611:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30611:8:88"},"referencedDeclaration":50077,"src":"30611:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55228,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"30643:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30652:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"30643:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30643:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"30611:57:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55233,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"30700:2:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30700:9:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30700:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55238,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30744:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55236,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55227,"src":"30715:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30729:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"30715:28:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30759:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30715:50:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:52:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"30700:67:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30781:69:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30679:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30679:181:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55245,"nodeType":"ExpressionStatement","src":"30679:181:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55247,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55215,"src":"30878:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55248,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30887:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30878:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30899:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30870:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30870:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55252,"nodeType":"ExpressionStatement","src":"30870:48:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55254,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"30936:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30952:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30936:17:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30955:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30928:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55259,"nodeType":"ExpressionStatement","src":"30928:46:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55261,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"30992:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31006:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30992:15:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31009:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30984:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30984:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55266,"nodeType":"ExpressionStatement","src":"30984:49:88"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"30236:16:88","parameters":{"id":55191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55185,"mutability":"mutable","name":"collateral","nameLocation":"30261:10:88","nodeType":"VariableDeclaration","scope":55268,"src":"30253:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55184,"name":"uint256","nodeType":"ElementaryTypeName","src":"30253:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55187,"mutability":"mutable","name":"subnetAddress","nameLocation":"30281:13:88","nodeType":"VariableDeclaration","scope":55268,"src":"30273:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55186,"name":"address","nodeType":"ElementaryTypeName","src":"30273:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55190,"mutability":"mutable","name":"gw","nameLocation":"30311:2:88","nodeType":"VariableDeclaration","scope":55268,"src":"30296:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55189,"nodeType":"UserDefinedTypeName","pathNode":{"id":55188,"name":"GatewayDiamond","nameLocations":["30296:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"30296:14:88"},"referencedDeclaration":36170,"src":"30296:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"30252:62:88"},"returnParameters":{"id":55192,"nodeType":"ParameterList","parameters":[],"src":"30322:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55282,"nodeType":"FunctionDefinition","src":"31046:150:88","nodes":[],"body":{"id":55281,"nodeType":"Block","src":"31120:76:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55276,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55270,"src":"31147:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55277,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55272,"src":"31159:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55278,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31174:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55275,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"31130:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31130:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55280,"nodeType":"ExpressionStatement","src":"31130:59:88"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"31055:14:88","parameters":{"id":55273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55270,"mutability":"mutable","name":"collateral","nameLocation":"31078:10:88","nodeType":"VariableDeclaration","scope":55282,"src":"31070:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55269,"name":"uint256","nodeType":"ElementaryTypeName","src":"31070:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55272,"mutability":"mutable","name":"subnetAddress","nameLocation":"31098:13:88","nodeType":"VariableDeclaration","scope":55282,"src":"31090:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55271,"name":"address","nodeType":"ElementaryTypeName","src":"31090:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31069:43:88"},"returnParameters":{"id":55274,"nodeType":"ParameterList","parameters":[],"src":"31120:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55352,"nodeType":"FunctionDefinition","src":"31202:541:88","nodes":[],"body":{"id":55351,"nodeType":"Block","src":"31356:387:88","nodes":[],"statements":[{"expression":{"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55301,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"31366:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55305,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31406:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55303,"name":"address","nodeType":"ElementaryTypeName","src":"31398:7:88","typeDescriptions":{}}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55302,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"31378:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"31366:44:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55309,"nodeType":"ExpressionStatement","src":"31366:44:88"},{"expression":{"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55310,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31420:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55314,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31458:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31450:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"31450:7:88","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31450:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55311,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"31431:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31431:31:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"31420:42:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55318,"nodeType":"ExpressionStatement","src":"31420:42:88"},{"assignments":[55321],"declarations":[{"constant":false,"id":55321,"mutability":"mutable","name":"subnetId","nameLocation":"31489:8:88","nodeType":"VariableDeclaration","scope":55351,"src":"31473:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55320,"nodeType":"UserDefinedTypeName","pathNode":{"id":55319,"name":"SubnetID","nameLocations":["31473:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31473:8:88"},"referencedDeclaration":50077,"src":"31473:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55328,"initialValue":{"arguments":[{"id":55326,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"31541:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55322,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31500:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31509:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"31500:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31526:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"31500:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"31473:82:88"},{"assignments":[55331],"declarations":[{"constant":false,"id":55331,"mutability":"mutable","name":"subnet","nameLocation":"31580:6:88","nodeType":"VariableDeclaration","scope":55351,"src":"31566:20:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55330,"nodeType":"UserDefinedTypeName","pathNode":{"id":55329,"name":"Subnet","nameLocations":["31566:6:88"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"31566:6:88"},"referencedDeclaration":50091,"src":"31566:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55338,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55334,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55321,"src":"31606:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31615:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"31606:15:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31606:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55332,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31589:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31598:7:88","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"31589:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50091_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31589:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"31566:58:88"},{"expression":{"components":[{"expression":{"id":55339,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31643:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31650:2:88","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"31643:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55341,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31654:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31661:5:88","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"31654:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55343,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31668:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31675:12:88","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"31668:19:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55345,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31689:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31696:20:88","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"31689:27:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55347,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31718:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31725:10:88","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"31718:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31642:94:88","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55300,"id":55350,"nodeType":"Return","src":"31635:101:88"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"31211:11:88","parameters":{"id":55288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55284,"mutability":"mutable","name":"subnetAddress","nameLocation":"31240:13:88","nodeType":"VariableDeclaration","scope":55352,"src":"31232:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55283,"name":"address","nodeType":"ElementaryTypeName","src":"31232:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55287,"mutability":"mutable","name":"gw","nameLocation":"31278:2:88","nodeType":"VariableDeclaration","scope":55352,"src":"31263:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55286,"nodeType":"UserDefinedTypeName","pathNode":{"id":55285,"name":"GatewayDiamond","nameLocations":["31263:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"31263:14:88"},"referencedDeclaration":36170,"src":"31263:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"31222:64:88"},"returnParameters":{"id":55300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31303:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55290,"nodeType":"UserDefinedTypeName","pathNode":{"id":55289,"name":"SubnetID","nameLocations":["31303:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31303:8:88"},"referencedDeclaration":50077,"src":"31303:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31320:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55292,"name":"uint256","nodeType":"ElementaryTypeName","src":"31320:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31329:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55294,"name":"uint256","nodeType":"ElementaryTypeName","src":"31329:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31338:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55296,"name":"uint256","nodeType":"ElementaryTypeName","src":"31338:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31347:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55298,"name":"uint256","nodeType":"ElementaryTypeName","src":"31347:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31302:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55374,"nodeType":"FunctionDefinition","src":"31749:177:88","nodes":[],"body":{"id":55373,"nodeType":"Block","src":"31860:66:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55369,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55354,"src":"31889:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55370,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31904:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55368,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"31877:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31877:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55367,"id":55372,"nodeType":"Return","src":"31870:49:88"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"31758:9:88","parameters":{"id":55355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55354,"mutability":"mutable","name":"subnetAddress","nameLocation":"31776:13:88","nodeType":"VariableDeclaration","scope":55374,"src":"31768:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55353,"name":"address","nodeType":"ElementaryTypeName","src":"31768:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31767:23:88"},"returnParameters":{"id":55367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31807:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55357,"nodeType":"UserDefinedTypeName","pathNode":{"id":55356,"name":"SubnetID","nameLocations":["31807:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31807:8:88"},"referencedDeclaration":50077,"src":"31807:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31824:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55359,"name":"uint256","nodeType":"ElementaryTypeName","src":"31824:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31833:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55361,"name":"uint256","nodeType":"ElementaryTypeName","src":"31833:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31842:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55363,"name":"uint256","nodeType":"ElementaryTypeName","src":"31842:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31851:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"31851:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31806:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53038,"name":"Test","nameLocations":["8694:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8694:4:88"},"id":53039,"nodeType":"InheritanceSpecifier","src":"8694:4:88"},{"baseName":{"id":53040,"name":"TestParams","nameLocations":["8700:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"8700:10:88"},"id":53041,"nodeType":"InheritanceSpecifier","src":"8700:10:88"},{"baseName":{"id":53042,"name":"TestRegistry","nameLocations":["8712:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":52747,"src":"8712:12:88"},"id":53043,"nodeType":"InheritanceSpecifier","src":"8712:12:88"},{"baseName":{"id":53044,"name":"TestSubnetActor","nameLocations":["8726:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":53037,"src":"8726:15:88"},"id":53045,"nodeType":"InheritanceSpecifier","src":"8726:15:88"},{"baseName":{"id":53046,"name":"TestGatewayActor","nameLocations":["8743:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":52912,"src":"8743:16:88"},"id":53047,"nodeType":"InheritanceSpecifier","src":"8743:16:88"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50887,52151,52279,52517,57957],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55375,52912,53037,52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8671:19:88","scope":55376,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea26469706673582212206c345abaed83b949383e3271cfaf857aa9cc7e1bb56e38ece95b7d5356ab0c5f64736f6c63430008130033","sourceMap":"2712:1194:91:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212206c345abaed83b949383e3271cfaf857aa9cc7e1bb56e38ece95b7d5356ab0c5f64736f6c63430008130033","sourceMap":"2712:1194:91:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"TestParams\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402\",\"dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd\",\"dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3\",\"dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorCheckpointingFacet.sol\":{\"keccak256\":\"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a\",\"dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8\",\"dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm\"]},\"src/subnet/SubnetActorPauseFacet.sol\":{\"keccak256\":\"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14\",\"dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb\"]},\"src/subnet/SubnetActorRewardFacet.sol\":{\"keccak256\":\"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088\",\"dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0x67f2f3bb9cc8e8b503a8399df4c5c5cd86388257fc90451e5e352382fed9eaa6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be78f3e3535929f0b5955f2053bf409dd593d20b561a7f19efa917cdbef4bc28\",\"dweb:/ipfs/QmcwrfvXweJEEK8h2mdt9UtCpGg2WCWN8kRjc8M54sRyiv\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f\",\"dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorMock.sol\":{\"keccak256\":\"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43\",\"dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestParams"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa","urls":["bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402","dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6","urls":["bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd","dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451","urls":["bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3","dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorCheckpointingFacet.sol":{"keccak256":"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96","urls":["bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a","dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c","urls":["bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8","dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorPauseFacet.sol":{"keccak256":"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49","urls":["bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14","dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorRewardFacet.sol":{"keccak256":"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435","urls":["bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088","dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0x67f2f3bb9cc8e8b503a8399df4c5c5cd86388257fc90451e5e352382fed9eaa6","urls":["bzz-raw://be78f3e3535929f0b5955f2053bf409dd593d20b561a7f19efa917cdbef4bc28","dweb:/ipfs/QmcwrfvXweJEEK8h2mdt9UtCpGg2WCWN8kRjc8M54sRyiv"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d","urls":["bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f","dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorMock.sol":{"keccak256":"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a","urls":["bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43","dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55677,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49885],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49927],"CrossMsgHelper":[40725],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49951],"FvmAddressHelper":[40906],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50157],"IntegrationTestBase":[55676],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49871],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50118],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52286],"SelectorLibrary":[56636],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49944],"StorableMsgHelper":[47414],"Subnet":[50044],"SubnetActorCheckpointingFacet":[50577],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[51235],"SubnetActorManagerFacet":[51946],"SubnetActorMock":[58342],"SubnetActorPauseFacet":[51991],"SubnetActorRewardFacet":[52158],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52524],"SubnetID":[50030],"SubnetIDHelper":[48025],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50182],"SupplySource":[50179],"SupplySourceHelper":[48351],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52925],"TestParams":[52696],"TestRegistry":[52760],"TestSubnetActor":[53089],"TestUtils":[57424],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50164],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:35596:91","nodes":[{"id":52526,"nodeType":"PragmaDirective","src":"46:23:91","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52527,"nodeType":"ImportDirective","src":"71:28:91","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52528,"nodeType":"ImportDirective","src":"100:36:91","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"137:37:91","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52532,"nodeType":"ImportDirective","src":"176:72:91","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52530,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"249:61:91","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52533,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"311:56:91","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52535,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52541,"nodeType":"ImportDirective","src":"368:102:91","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":52537,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"376:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"386:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"406:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"419:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52543,"nodeType":"ImportDirective","src":"471:57:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":52542,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"479:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52552,"nodeType":"ImportDirective","src":"529:140:91","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":52544,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"537:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52545,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"547:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52546,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"559:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52547,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"575:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52548,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"591:6:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52549,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"599:12:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52550,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"613:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52551,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"625:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52554,"nodeType":"ImportDirective","src":"670:61:91","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":52553,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"678:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52556,"nodeType":"ImportDirective","src":"732:65:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40907,"symbolAliases":[{"foreign":{"id":52555,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"740:16:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52558,"nodeType":"ImportDirective","src":"798:61:91","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":52557,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"806:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52560,"nodeType":"ImportDirective","src":"860:67:91","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":52559,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"868:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52562,"nodeType":"ImportDirective","src":"928:56:91","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52561,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52564,"nodeType":"ImportDirective","src":"985:57:91","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52563,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52566,"nodeType":"ImportDirective","src":"1043:65:91","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52565,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52568,"nodeType":"ImportDirective","src":"1109:73:91","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52567,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52570,"nodeType":"ImportDirective","src":"1183:79:91","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52569,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52572,"nodeType":"ImportDirective","src":"1263:75:91","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52571,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52574,"nodeType":"ImportDirective","src":"1340:80:91","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52573,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52576,"nodeType":"ImportDirective","src":"1421:80:91","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52575,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52578,"nodeType":"ImportDirective","src":"1502:84:91","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52577,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52580,"nodeType":"ImportDirective","src":"1587:82:91","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52579,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52582,"nodeType":"ImportDirective","src":"1671:60:91","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"./mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":58343,"symbolAliases":[{"foreign":{"id":52581,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58342,"src":"1679:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52584,"nodeType":"ImportDirective","src":"1732:82:91","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":52583,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"1740:23:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52586,"nodeType":"ImportDirective","src":"1815:78:91","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":52585,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"1823:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52588,"nodeType":"ImportDirective","src":"1894:94:91","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":52587,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"1902:29:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52590,"nodeType":"ImportDirective","src":"1989:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":52589,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"1997:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52592,"nodeType":"ImportDirective","src":"2070:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":52591,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"2078:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52594,"nodeType":"ImportDirective","src":"2152:71:91","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52593,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"2160:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52596,"nodeType":"ImportDirective","src":"2224:82:91","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":52595,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"2232:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52598,"nodeType":"ImportDirective","src":"2307:78:91","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":52597,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"2315:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52600,"nodeType":"ImportDirective","src":"2387:71:91","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52599,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2395:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52602,"nodeType":"ImportDirective","src":"2459:67:91","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52601,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2467:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52604,"nodeType":"ImportDirective","src":"2527:69:91","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":52603,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"2535:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52606,"nodeType":"ImportDirective","src":"2597:50:91","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":57425,"symbolAliases":[{"foreign":{"id":52605,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57424,"src":"2605:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52608,"nodeType":"ImportDirective","src":"2648:62:91","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":56637,"symbolAliases":[{"foreign":{"id":52607,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"2656:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52696,"nodeType":"ContractDefinition","src":"2712:1194:91","nodes":[{"id":52615,"nodeType":"VariableDeclaration","src":"2738:44:91","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2754:9:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2738:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2771:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52611,"name":"uint64","nodeType":"ElementaryTypeName","src":"2771:6:91","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52610,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2766:4:91","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2766:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2779:3:91","memberName":"max","nodeType":"MemberAccess","src":"2766:16:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52621,"nodeType":"VariableDeclaration","src":"2788:91:91","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2805:20:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52616,"name":"address","nodeType":"ElementaryTypeName","src":"2788:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2836:42:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2828:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52617,"name":"address","nodeType":"ElementaryTypeName","src":"2828:7:91","typeDescriptions":{}}},"id":52620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2828:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52624,"nodeType":"VariableDeclaration","src":"2885:42:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2901:22:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52622,"name":"uint64","nodeType":"ElementaryTypeName","src":"2885:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2926:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52627,"nodeType":"VariableDeclaration","src":"2933:54:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2950:27:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52625,"name":"uint256","nodeType":"ElementaryTypeName","src":"2933:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2980:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52630,"nodeType":"VariableDeclaration","src":"2993:47:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"3008:27:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52628,"name":"uint8","nodeType":"ElementaryTypeName","src":"2993:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:2:91","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52633,"nodeType":"VariableDeclaration","src":"3046:51:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"3062:25:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52631,"name":"uint64","nodeType":"ElementaryTypeName","src":"3046:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3090:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52636,"nodeType":"VariableDeclaration","src":"3103:46:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"3119:25:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52634,"name":"uint64","nodeType":"ElementaryTypeName","src":"3103:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52639,"nodeType":"VariableDeclaration","src":"3155:44:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"3171:16:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52637,"name":"string","nodeType":"ElementaryTypeName","src":"3155:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3190:9:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52642,"nodeType":"VariableDeclaration","src":"3205:36:91","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"3220:7:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52640,"name":"bytes","nodeType":"ElementaryTypeName","src":"3205:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52641,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3230:11:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52645,"nodeType":"VariableDeclaration","src":"3247:48:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3264:21:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52643,"name":"uint256","nodeType":"ElementaryTypeName","src":"3247:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52648,"nodeType":"VariableDeclaration","src":"3301:49:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3318:22:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52646,"name":"uint256","nodeType":"ElementaryTypeName","src":"3301:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3343:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52654,"nodeType":"VariableDeclaration","src":"3356:52:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3373:21:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52649,"name":"address","nodeType":"ElementaryTypeName","src":"3356:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3405:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3397:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52650,"name":"address","nodeType":"ElementaryTypeName","src":"3397:7:91","typeDescriptions":{}}},"id":52653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3397:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52660,"nodeType":"VariableDeclaration","src":"3414:54:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3431:23:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52655,"name":"address","nodeType":"ElementaryTypeName","src":"3414:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3465:2:91","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3457:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52656,"name":"address","nodeType":"ElementaryTypeName","src":"3457:7:91","typeDescriptions":{}}},"id":52659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3457:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52665,"nodeType":"VariableDeclaration","src":"3474:57:91","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3490:9:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52661,"name":"uint64","nodeType":"ElementaryTypeName","src":"3474:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3502:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52663,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"3506:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3502:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52668,"nodeType":"VariableDeclaration","src":"3537:50:91","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3554:23:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3537:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3580:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52671,"nodeType":"VariableDeclaration","src":"3593:53:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3609:31:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52669,"name":"uint16","nodeType":"ElementaryTypeName","src":"3593:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3643:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52674,"nodeType":"VariableDeclaration","src":"3652:38:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3666:19:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52672,"name":"int8","nodeType":"ElementaryTypeName","src":"3652:4:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3688:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52677,"nodeType":"VariableDeclaration","src":"3696:37:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3712:15:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52675,"name":"uint64","nodeType":"ElementaryTypeName","src":"3696:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3730:3:91","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52683,"nodeType":"VariableDeclaration","src":"3739:45:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3756:15:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3782:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3774:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52679,"name":"address","nodeType":"ElementaryTypeName","src":"3774:7:91","typeDescriptions":{}}},"id":52682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52689,"nodeType":"VariableDeclaration","src":"3790:57:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3807:24:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52684,"name":"address","nodeType":"ElementaryTypeName","src":"3790:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3842:4:91","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3834:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52685,"name":"address","nodeType":"ElementaryTypeName","src":"3834:7:91","typeDescriptions":{}}},"id":52688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52695,"nodeType":"VariableDeclaration","src":"3853:50:91","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3870:19:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52690,"name":"address","nodeType":"ElementaryTypeName","src":"3853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3900:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3892:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52691,"name":"address","nodeType":"ElementaryTypeName","src":"3892:7:91","typeDescriptions":{}}},"id":52694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3892:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52696],"name":"TestParams","nameLocation":"2721:10:91","scope":55677,"usedErrors":[]},{"id":52760,"nodeType":"ContractDefinition","src":"3908:824:91","nodes":[{"id":52703,"nodeType":"VariableDeclaration","src":"3956:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3965:28:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52701,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3956:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52702,"nodeType":"ArrayTypeName","src":"3956:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52706,"nodeType":"VariableDeclaration","src":"3999:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"4008:34:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52704,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3999:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52705,"nodeType":"ArrayTypeName","src":"3999:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52709,"nodeType":"VariableDeclaration","src":"4048:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"4057:23:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52707,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4048:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52708,"nodeType":"ArrayTypeName","src":"4048:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52712,"nodeType":"VariableDeclaration","src":"4086:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"4095:23:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52710,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4086:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52711,"nodeType":"ArrayTypeName","src":"4086:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52715,"nodeType":"VariableDeclaration","src":"4125:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"4147:15:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52714,"nodeType":"UserDefinedTypeName","pathNode":{"id":52713,"name":"SubnetRegistryDiamond","nameLocations":["4125:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"4125:21:91"},"referencedDeclaration":36853,"src":"4125:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52718,"nodeType":"VariableDeclaration","src":"4168:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"4186:14:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52717,"nodeType":"UserDefinedTypeName","pathNode":{"id":52716,"name":"DiamondLoupeFacet","nameLocations":["4168:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"4168:17:91"},"referencedDeclaration":37355,"src":"4168:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52721,"nodeType":"VariableDeclaration","src":"4206:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"4222:14:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52720,"nodeType":"UserDefinedTypeName","pathNode":{"id":52719,"name":"DiamondCutFacet","nameLocations":["4206:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"4206:15:91"},"referencedDeclaration":36918,"src":"4206:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52724,"nodeType":"VariableDeclaration","src":"4242:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4262:19:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52723,"nodeType":"UserDefinedTypeName","pathNode":{"id":52722,"name":"RegisterSubnetFacet","nameLocations":["4242:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"4242:19:91"},"referencedDeclaration":52286,"src":"4242:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52727,"nodeType":"VariableDeclaration","src":"4287:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4305:25:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52726,"nodeType":"UserDefinedTypeName","pathNode":{"id":52725,"name":"SubnetGetterFacet","nameLocations":["4287:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"4287:17:91"},"referencedDeclaration":52524,"src":"4287:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52759,"nodeType":"FunctionDefinition","src":"4337:393:91","nodes":[],"body":{"id":52758,"nodeType":"Block","src":"4351:379:91","nodes":[],"statements":[{"expression":{"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52730,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52703,"src":"4361:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4425:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52731,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4392:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4408:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4392:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4392:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4361:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52736,"nodeType":"ExpressionStatement","src":"4361:86:91"},{"expression":{"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52737,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"4457:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4527:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52738,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4494:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4510:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4494:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4494:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4457:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52743,"nodeType":"ExpressionStatement","src":"4457:90:91"},{"expression":{"id":52749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52744,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"4557:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4616:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52745,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4583:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4599:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4583:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4583:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4557:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52750,"nodeType":"ExpressionStatement","src":"4557:77:91"},{"expression":{"id":52756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52751,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"4644:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4703:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52752,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4670:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4686:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4670:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4670:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4644:79:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52757,"nodeType":"ExpressionStatement","src":"4644:79:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52728,"nodeType":"ParameterList","parameters":[],"src":"4348:2:91"},"returnParameters":{"id":52729,"nodeType":"ParameterList","parameters":[],"src":"4351:0:91"},"scope":52760,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52697,"name":"Test","nameLocations":["3933:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3933:4:91"},"id":52698,"nodeType":"InheritanceSpecifier","src":"3933:4:91"},{"baseName":{"id":52699,"name":"TestParams","nameLocations":["3939:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"3939:10:91"},"id":52700,"nodeType":"InheritanceSpecifier","src":"3939:10:91"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52760,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3917:12:91","scope":55677,"usedErrors":[]},{"id":52925,"nodeType":"ContractDefinition","src":"4734:2237:91","nodes":[{"id":52767,"nodeType":"VariableDeclaration","src":"4786:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4795:29:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52765,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4786:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52766,"nodeType":"ArrayTypeName","src":"4786:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52770,"nodeType":"VariableDeclaration","src":"4830:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4839:29:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52768,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4830:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52769,"nodeType":"ArrayTypeName","src":"4830:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52773,"nodeType":"VariableDeclaration","src":"4874:40:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4883:31:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52771,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4874:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52772,"nodeType":"ArrayTypeName","src":"4874:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52776,"nodeType":"VariableDeclaration","src":"4920:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4929:30:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52774,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4920:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52775,"nodeType":"ArrayTypeName","src":"4920:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52779,"nodeType":"VariableDeclaration","src":"4966:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4975:18:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52777,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4966:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52778,"nodeType":"ArrayTypeName","src":"4966:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52782,"nodeType":"VariableDeclaration","src":"4999:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"5008:17:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52780,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4999:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52781,"nodeType":"ArrayTypeName","src":"4999:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52785,"nodeType":"VariableDeclaration","src":"5031:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"5040:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52783,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5031:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52784,"nodeType":"ArrayTypeName","src":"5031:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52788,"nodeType":"VariableDeclaration","src":"5067:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"5076:17:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52786,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5067:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52787,"nodeType":"ArrayTypeName","src":"5067:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52791,"nodeType":"VariableDeclaration","src":"5099:25:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"5108:16:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52789,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5099:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52790,"nodeType":"ArrayTypeName","src":"5099:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52794,"nodeType":"VariableDeclaration","src":"5131:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"5146:14:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52793,"nodeType":"UserDefinedTypeName","pathNode":{"id":52792,"name":"GatewayDiamond","nameLocations":["5131:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"5131:14:91"},"referencedDeclaration":36170,"src":"5131:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52797,"nodeType":"VariableDeclaration","src":"5166:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"5186:9:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52796,"nodeType":"UserDefinedTypeName","pathNode":{"id":52795,"name":"GatewayManagerFacet","nameLocations":["5166:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"5166:19:91"},"referencedDeclaration":38870,"src":"5166:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52800,"nodeType":"VariableDeclaration","src":"5201:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"5220:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52799,"nodeType":"UserDefinedTypeName","pathNode":{"id":52798,"name":"GatewayGetterFacet","nameLocations":["5201:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"5201:18:91"},"referencedDeclaration":38317,"src":"5201:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52803,"nodeType":"VariableDeclaration","src":"5234:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5253:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52802,"nodeType":"UserDefinedTypeName","pathNode":{"id":52801,"name":"CheckpointingFacet","nameLocations":["5234:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5234:18:91"},"referencedDeclaration":39870,"src":"5234:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52806,"nodeType":"VariableDeclaration","src":"5279:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5298:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52805,"nodeType":"UserDefinedTypeName","pathNode":{"id":52804,"name":"XnetMessagingFacet","nameLocations":["5279:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5279:18:91"},"referencedDeclaration":40144,"src":"5279:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52809,"nodeType":"VariableDeclaration","src":"5324:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5345:22:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52808,"nodeType":"UserDefinedTypeName","pathNode":{"id":52807,"name":"TopDownFinalityFacet","nameLocations":["5324:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5324:20:91"},"referencedDeclaration":40071,"src":"5324:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52812,"nodeType":"VariableDeclaration","src":"5373:41:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5393:21:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52811,"nodeType":"UserDefinedTypeName","pathNode":{"id":52810,"name":"BottomUpRouterFacet","nameLocations":["5373:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5373:19:91"},"referencedDeclaration":39601,"src":"5373:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52815,"nodeType":"VariableDeclaration","src":"5420:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5442:11:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52814,"nodeType":"UserDefinedTypeName","pathNode":{"id":52813,"name":"GatewayMessengerFacet","nameLocations":["5420:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5420:21:91"},"referencedDeclaration":39235,"src":"5420:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52818,"nodeType":"VariableDeclaration","src":"5459:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5475:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52817,"nodeType":"UserDefinedTypeName","pathNode":{"id":52816,"name":"DiamondCutFacet","nameLocations":["5459:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5459:15:91"},"referencedDeclaration":36918,"src":"5459:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52821,"nodeType":"VariableDeclaration","src":"5489:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5507:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52820,"nodeType":"UserDefinedTypeName","pathNode":{"id":52819,"name":"DiamondLoupeFacet","nameLocations":["5489:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5489:17:91"},"referencedDeclaration":37355,"src":"5489:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52888,"nodeType":"FunctionDefinition","src":"5522:835:91","nodes":[],"body":{"id":52887,"nodeType":"Block","src":"5536:821:91","nodes":[],"statements":[{"expression":{"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52824,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52767,"src":"5546:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5611:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52825,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5578:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5594:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5578:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5546:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52830,"nodeType":"ExpressionStatement","src":"5546:86:91"},{"expression":{"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52831,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52770,"src":"5642:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5707:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52832,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5674:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5690:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5674:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5674:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5642:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52837,"nodeType":"ExpressionStatement","src":"5642:86:91"},{"expression":{"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52838,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52773,"src":"5738:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5805:22:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52839,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5772:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5788:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5772:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5772:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5738:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52844,"nodeType":"ExpressionStatement","src":"5738:90:91"},{"expression":{"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52845,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"5838:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5904:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52846,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5871:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5887:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5871:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5871:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5838:88:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52851,"nodeType":"ExpressionStatement","src":"5838:88:91"},{"expression":{"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52852,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52782,"src":"5937:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5990:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52853,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5957:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5973:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5957:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5957:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5937:74:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52858,"nodeType":"ExpressionStatement","src":"5937:74:91"},{"expression":{"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52859,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52779,"src":"6021:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6075:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52860,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6042:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6058:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6042:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6042:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6021:76:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52865,"nodeType":"ExpressionStatement","src":"6021:76:91"},{"expression":{"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52866,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52785,"src":"6107:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6163:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52867,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6130:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6146:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6130:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6130:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6107:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52872,"nodeType":"ExpressionStatement","src":"6107:80:91"},{"expression":{"id":52878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52873,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52788,"src":"6197:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6250:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52874,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6217:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6233:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6217:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6217:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6197:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52879,"nodeType":"ExpressionStatement","src":"6197:71:91"},{"expression":{"id":52885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52880,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52791,"src":"6278:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6330:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52881,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6297:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6313:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6297:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6297:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6278:72:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52886,"nodeType":"ExpressionStatement","src":"6278:72:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52822,"nodeType":"ParameterList","parameters":[],"src":"5533:2:91"},"returnParameters":{"id":52823,"nodeType":"ParameterList","parameters":[],"src":"5536:0:91"},"scope":52925,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52924,"nodeType":"FunctionDefinition","src":"6363:606:91","nodes":[],"body":{"id":52923,"nodeType":"Block","src":"6467:502:91","nodes":[],"statements":[{"assignments":[52898],"declarations":[{"constant":false,"id":52898,"mutability":"mutable","name":"params","nameLocation":"6517:6:91","nodeType":"VariableDeclaration","scope":52923,"src":"6477:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52897,"nodeType":"UserDefinedTypeName","pathNode":{"id":52896,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6477:14:91","6492:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6477:32:91"},"referencedDeclaration":35883,"src":"6477:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52920,"initialValue":{"arguments":[{"arguments":[{"id":52902,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"6602:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6640:1:91","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":52905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6626:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52903,"name":"address","nodeType":"ElementaryTypeName","src":"6630:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52904,"nodeType":"ArrayTypeName","src":"6630:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6626:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52901,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"6586:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6596:4:91","6619:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"6586:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52909,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"6679:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52910,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"6726:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52911,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52630,"src":"6781:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6857:1:91","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":52915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6841:15:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52913,"nodeType":"UserDefinedTypeName","pathNode":{"id":52912,"name":"Validator","nameLocations":["6845:9:91"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"6845:9:91"},"referencedDeclaration":50164,"src":"6845:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":52914,"nodeType":"ArrayTypeName","src":"6845:11:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6841:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52918,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"6896:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52899,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6526:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6541:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6526:32:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6573:11:91","6658:19:91","6718:6:91","6761:18:91","6822:17:91","6873:21:91"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6526:412:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6477:461:91"},{"expression":{"id":52921,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"6956:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52893,"id":52922,"nodeType":"Return","src":"6949:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6372:20:91","parameters":{"id":52889,"nodeType":"ParameterList","parameters":[],"src":"6392:2:91"},"returnParameters":{"id":52893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52924,"src":"6426:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52891,"nodeType":"UserDefinedTypeName","pathNode":{"id":52890,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6426:14:91","6441:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6426:32:91"},"referencedDeclaration":35883,"src":"6426:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6425:41:91"},"scope":52925,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52761,"name":"Test","nameLocations":["4763:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4763:4:91"},"id":52762,"nodeType":"InheritanceSpecifier","src":"4763:4:91"},{"baseName":{"id":52763,"name":"TestParams","nameLocations":["4769:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"4769:10:91"},"id":52764,"nodeType":"InheritanceSpecifier","src":"4769:10:91"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52925,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4743:16:91","scope":55677,"usedErrors":[]},{"id":53089,"nodeType":"ContractDefinition","src":"6973:2395:91","nodes":[{"id":52932,"nodeType":"VariableDeclaration","src":"7024:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"7033:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52930,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7024:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52931,"nodeType":"ArrayTypeName","src":"7024:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52935,"nodeType":"VariableDeclaration","src":"7056:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"7065:18:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52933,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7056:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52934,"nodeType":"ArrayTypeName","src":"7056:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52938,"nodeType":"VariableDeclaration","src":"7089:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauserSelectors","nameLocation":"7098:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52936,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7089:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52937,"nodeType":"ArrayTypeName","src":"7089:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52941,"nodeType":"VariableDeclaration","src":"7121:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarderSelectors","nameLocation":"7130:19:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52939,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7121:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52940,"nodeType":"ArrayTypeName","src":"7121:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52944,"nodeType":"VariableDeclaration","src":"7155:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointerSelectors","nameLocation":"7164:23:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52942,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7155:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52943,"nodeType":"ArrayTypeName","src":"7155:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52947,"nodeType":"VariableDeclaration","src":"7193:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"7202:24:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52945,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7193:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52946,"nodeType":"ArrayTypeName","src":"7193:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52950,"nodeType":"VariableDeclaration","src":"7232:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"7241:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52948,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7232:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52949,"nodeType":"ArrayTypeName","src":"7232:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52953,"nodeType":"VariableDeclaration","src":"7264:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"7273:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52951,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7264:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52952,"nodeType":"ArrayTypeName","src":"7264:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52956,"nodeType":"VariableDeclaration","src":"7297:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"7316:9:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52955,"nodeType":"UserDefinedTypeName","pathNode":{"id":52954,"name":"SubnetActorDiamond","nameLocations":["7297:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"7297:18:91"},"referencedDeclaration":36615,"src":"7297:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52959,"nodeType":"VariableDeclaration","src":"7331:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7355:9:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52958,"nodeType":"UserDefinedTypeName","pathNode":{"id":52957,"name":"SubnetActorManagerFacet","nameLocations":["7331:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"7331:23:91"},"referencedDeclaration":51946,"src":"7331:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52962,"nodeType":"VariableDeclaration","src":"7370:22:91","nodes":[],"constant":false,"mutability":"mutable","name":"saMock","nameLocation":"7386:6:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"},"typeName":{"id":52961,"nodeType":"UserDefinedTypeName","pathNode":{"id":52960,"name":"SubnetActorMock","nameLocations":["7370:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"7370:15:91"},"referencedDeclaration":58342,"src":"7370:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"visibility":"internal"},{"id":52965,"nodeType":"VariableDeclaration","src":"7398:31:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7421:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52964,"nodeType":"UserDefinedTypeName","pathNode":{"id":52963,"name":"SubnetActorGetterFacet","nameLocations":["7398:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"7398:22:91"},"referencedDeclaration":51235,"src":"7398:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52968,"nodeType":"VariableDeclaration","src":"7435:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarder","nameLocation":"7458:10:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":52967,"nodeType":"UserDefinedTypeName","pathNode":{"id":52966,"name":"SubnetActorRewardFacet","nameLocations":["7435:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"7435:22:91"},"referencedDeclaration":52158,"src":"7435:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"},{"id":52971,"nodeType":"VariableDeclaration","src":"7474:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauser","nameLocation":"7496:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":52970,"nodeType":"UserDefinedTypeName","pathNode":{"id":52969,"name":"SubnetActorPauseFacet","nameLocations":["7474:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"7474:21:91"},"referencedDeclaration":51991,"src":"7474:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"},{"id":52974,"nodeType":"VariableDeclaration","src":"7510:44:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointer","nameLocation":"7540:14:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":52973,"nodeType":"UserDefinedTypeName","pathNode":{"id":52972,"name":"SubnetActorCheckpointingFacet","nameLocations":["7510:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"7510:29:91"},"referencedDeclaration":50577,"src":"7510:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"},{"id":52977,"nodeType":"VariableDeclaration","src":"7561:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7577:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52976,"nodeType":"UserDefinedTypeName","pathNode":{"id":52975,"name":"DiamondCutFacet","nameLocations":["7561:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7561:15:91"},"referencedDeclaration":36918,"src":"7561:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52980,"nodeType":"VariableDeclaration","src":"7591:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7609:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52979,"nodeType":"UserDefinedTypeName","pathNode":{"id":52978,"name":"DiamondLoupeFacet","nameLocations":["7591:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7591:17:91"},"referencedDeclaration":37355,"src":"7591:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":53040,"nodeType":"FunctionDefinition","src":"7624:729:91","nodes":[],"body":{"id":53039,"nodeType":"Block","src":"7638:715:91","nodes":[],"statements":[{"expression":{"id":52988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52983,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"7648:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7701:24:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52984,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7668:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7684:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7668:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7668:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7648:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52989,"nodeType":"ExpressionStatement","src":"7648:78:91"},{"expression":{"id":52995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52990,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"7736:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7790:25:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52991,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7757:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7773:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7757:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7757:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7736:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52996,"nodeType":"ExpressionStatement","src":"7736:80:91"},{"expression":{"id":53002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52997,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"7826:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":53000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7879:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""},"value":"SubnetActorPauseFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""}],"expression":{"id":52998,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7846:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7862:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7846:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7846:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7826:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53003,"nodeType":"ExpressionStatement","src":"7826:77:91"},{"expression":{"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53004,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"7913:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":53007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7968:24:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""},"value":"SubnetActorRewardFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""}],"expression":{"id":53005,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7935:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7951:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7935:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7935:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7913:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53010,"nodeType":"ExpressionStatement","src":"7913:80:91"},{"expression":{"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53011,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"8003:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":53014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8062:31:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""},"value":"SubnetActorCheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""}],"expression":{"id":53012,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8029:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8045:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8029:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8029:65:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8003:91:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53017,"nodeType":"ExpressionStatement","src":"8003:91:91"},{"expression":{"id":53023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53018,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"8104:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":53021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8164:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""},"value":"SubnetActorMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""}],"expression":{"id":53019,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8131:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8131:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8131:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8104:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53024,"nodeType":"ExpressionStatement","src":"8104:78:91"},{"expression":{"id":53030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53025,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"8192:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":53028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8245:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":53026,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8212:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8228:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8212:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8212:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8192:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53031,"nodeType":"ExpressionStatement","src":"8192:71:91"},{"expression":{"id":53037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53032,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"8273:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":53035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8326:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":53033,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8293:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8309:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8293:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8293:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8273:73:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53038,"nodeType":"ExpressionStatement","src":"8273:73:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52981,"nodeType":"ParameterList","parameters":[],"src":"7635:2:91"},"returnParameters":{"id":52982,"nodeType":"ParameterList","parameters":[],"src":"7638:0:91"},"scope":53089,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53088,"nodeType":"FunctionDefinition","src":"8359:1007:91","nodes":[],"body":{"id":53087,"nodeType":"Block","src":"8506:860:91","nodes":[],"statements":[{"assignments":[53050],"declarations":[{"constant":false,"id":53050,"mutability":"mutable","name":"native","nameLocation":"8536:6:91","nodeType":"VariableDeclaration","scope":53087,"src":"8516:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":53049,"nodeType":"UserDefinedTypeName","pathNode":{"id":53048,"name":"SupplySource","nameLocations":["8516:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"8516:12:91"},"referencedDeclaration":50179,"src":"8516:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53054,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53051,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"8545:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":53052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8564:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"8545:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8545:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"8516:56:91"},{"assignments":[53059],"declarations":[{"constant":false,"id":53059,"mutability":"mutable","name":"params","nameLocation":"8626:6:91","nodeType":"VariableDeclaration","scope":53087,"src":"8582:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8582:18:91","8601:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"8582:36:91"},"referencedDeclaration":36253,"src":"8582:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53084,"initialValue":{"arguments":[{"arguments":[{"id":53063,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"8712:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8750:1:91","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":53066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8736:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53064,"name":"address","nodeType":"ElementaryTypeName","src":"8740:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53065,"nodeType":"ArrayTypeName","src":"8740:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8736:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53062,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"8696:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8706:4:91","8729:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"8696:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53070,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53042,"src":"8784:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53071,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8811:13:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8825:10:91","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8811:24:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53073,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"8874:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53074,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52624,"src":"8928:22:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53075,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"8985:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53076,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52630,"src":"9044:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53077,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"9108:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53078,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52674,"src":"9165:19:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53079,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"9214:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53080,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"9265:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9280:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"9265:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":53082,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53050,"src":"9318:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53060,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"8635:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8654:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"8635:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8686:8:91","8768:14:91","8800:9:91","8849:23:91","8913:13:91","8964:19:91","9024:18:91","9085:21:91","9153:10:91","9198:14:91","9249:14:91","9304:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"8635:700:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8582:753:91"},{"expression":{"id":53085,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53059,"src":"9353:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":53047,"id":53086,"nodeType":"Return","src":"9346:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"8368:35:91","parameters":{"id":53043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53042,"mutability":"mutable","name":"gw","nameLocation":"8421:2:91","nodeType":"VariableDeclaration","scope":53088,"src":"8413:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53041,"name":"address","nodeType":"ElementaryTypeName","src":"8413:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8403:26:91"},"returnParameters":{"id":53047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53088,"src":"8461:43:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53045,"nodeType":"UserDefinedTypeName","pathNode":{"id":53044,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8461:18:91","8480:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"8461:36:91"},"referencedDeclaration":36253,"src":"8461:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"8460:45:91"},"scope":53089,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52926,"name":"Test","nameLocations":["7001:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"7001:4:91"},"id":52927,"nodeType":"InheritanceSpecifier","src":"7001:4:91"},{"baseName":{"id":52928,"name":"TestParams","nameLocations":["7007:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"7007:10:91"},"id":52929,"nodeType":"InheritanceSpecifier","src":"7007:10:91"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53089,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6982:15:91","scope":55677,"usedErrors":[]},{"id":55676,"nodeType":"ContractDefinition","src":"9370:26271:91","nodes":[{"id":53103,"nodeType":"UsingForDirective","src":"9474:34:91","nodes":[],"global":false,"libraryName":{"id":53100,"name":"SubnetIDHelper","nameLocations":["9480:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"9480:14:91"},"typeName":{"id":53102,"nodeType":"UserDefinedTypeName","pathNode":{"id":53101,"name":"SubnetID","nameLocations":["9499:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"9499:8:91"},"referencedDeclaration":50030,"src":"9499:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":53107,"nodeType":"UsingForDirective","src":"9513:42:91","nodes":[],"global":false,"libraryName":{"id":53104,"name":"SupplySourceHelper","nameLocations":["9519:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"9519:18:91"},"typeName":{"id":53106,"nodeType":"UserDefinedTypeName","pathNode":{"id":53105,"name":"SupplySource","nameLocations":["9542:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"9542:12:91"},"referencedDeclaration":50179,"src":"9542:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":53111,"nodeType":"UsingForDirective","src":"9560:34:91","nodes":[],"global":false,"libraryName":{"id":53108,"name":"CrossMsgHelper","nameLocations":["9566:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"9566:14:91"},"typeName":{"id":53110,"nodeType":"UserDefinedTypeName","pathNode":{"id":53109,"name":"CrossMsg","nameLocations":["9585:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"9585:8:91"},"referencedDeclaration":49927,"src":"9585:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53115,"nodeType":"UsingForDirective","src":"9599:40:91","nodes":[],"global":false,"libraryName":{"id":53112,"name":"StorableMsgHelper","nameLocations":["9605:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"9605:17:91"},"typeName":{"id":53114,"nodeType":"UserDefinedTypeName","pathNode":{"id":53113,"name":"StorableMsg","nameLocations":["9627:11:91"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"9627:11:91"},"referencedDeclaration":49944,"src":"9627:11:91","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53119,"nodeType":"UsingForDirective","src":"9644:38:91","nodes":[],"global":false,"libraryName":{"id":53116,"name":"FvmAddressHelper","nameLocations":["9650:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"9650:16:91"},"typeName":{"id":53118,"nodeType":"UserDefinedTypeName","pathNode":{"id":53117,"name":"FvmAddress","nameLocations":["9671:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"9671:10:91"},"referencedDeclaration":49951,"src":"9671:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53123,"nodeType":"EventDefinition","src":"9688:67:91","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"9694:21:91","parameters":{"id":53122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53121,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9732:21:91","nodeType":"VariableDeclaration","scope":53123,"src":"9716:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9716:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9715:39:91"}},{"id":53127,"nodeType":"FunctionDefinition","src":"9761:16:91","nodes":[],"body":{"id":53126,"nodeType":"Block","src":"9775:2:91","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53124,"nodeType":"ParameterList","parameters":[],"src":"9772:2:91"},"returnParameters":{"id":53125,"nodeType":"ParameterList","parameters":[],"src":"9775:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53329,"nodeType":"FunctionDefinition","src":"9783:1732:91","nodes":[],"body":{"id":53328,"nodeType":"Block","src":"9815:1700:91","nodes":[],"statements":[{"assignments":[53134],"declarations":[{"constant":false,"id":53134,"mutability":"mutable","name":"path","nameLocation":"9842:4:91","nodeType":"VariableDeclaration","scope":53328,"src":"9825:21:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53132,"name":"address","nodeType":"ElementaryTypeName","src":"9825:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53133,"nodeType":"ArrayTypeName","src":"9825:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53140,"initialValue":{"arguments":[{"hexValue":"31","id":53138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9863:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9849:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53135,"name":"address","nodeType":"ElementaryTypeName","src":"9853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53136,"nodeType":"ArrayTypeName","src":"9853:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9849:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9825:40:91"},{"expression":{"id":53145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53141,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"9875:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53143,"indexExpression":{"hexValue":"30","id":53142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9880:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9875:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53144,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52683,"src":"9885:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9875:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53146,"nodeType":"ExpressionStatement","src":"9875:25:91"},{"assignments":[53151],"declarations":[{"constant":false,"id":53151,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9993:19:91","nodeType":"VariableDeclaration","scope":53328,"src":"9953:59:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53150,"nodeType":"UserDefinedTypeName","pathNode":{"id":53149,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9953:14:91","9968:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9953:32:91"},"referencedDeclaration":35883,"src":"9953:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53154,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53152,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52924,"src":"10015:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10015:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9953:84:91"},{"expression":{"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10047:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53157,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53151,"src":"10085:19:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53156,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53588,"src":"10064:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10064:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"10047:58:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53160,"nodeType":"ExpressionStatement","src":"10047:58:91"},{"expression":{"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53161,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"10116:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53165,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10154:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10146:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53163,"name":"address","nodeType":"ElementaryTypeName","src":"10146:7:91","typeDescriptions":{}}},"id":53166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10146:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53162,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"10127:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10127:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"10116:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53169,"nodeType":"ExpressionStatement","src":"10116:54:91"},{"expression":{"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53170,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"10180:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53174,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10220:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53172,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:91","typeDescriptions":{}}},"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53171,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"10192:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10192:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"10180:56:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53178,"nodeType":"ExpressionStatement","src":"10180:56:91"},{"expression":{"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53179,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52803,"src":"10246:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53183,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10296:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10288:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53181,"name":"address","nodeType":"ElementaryTypeName","src":"10288:7:91","typeDescriptions":{}}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10288:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53180,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"10269:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10269:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"10246:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53187,"nodeType":"ExpressionStatement","src":"10246:66:91"},{"expression":{"id":53195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53188,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"10322:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53192,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10372:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10364:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53190,"name":"address","nodeType":"ElementaryTypeName","src":"10364:7:91","typeDescriptions":{}}},"id":53193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10364:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53189,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"10345:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10345:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"10322:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53196,"nodeType":"ExpressionStatement","src":"10322:66:91"},{"expression":{"id":53204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53197,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"10398:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53201,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10452:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10444:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53199,"name":"address","nodeType":"ElementaryTypeName","src":"10444:7:91","typeDescriptions":{}}},"id":53202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10444:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53198,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"10423:20:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10423:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"10398:70:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53205,"nodeType":"ExpressionStatement","src":"10398:70:91"},{"expression":{"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53206,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52812,"src":"10478:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53210,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10530:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10522:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53208,"name":"address","nodeType":"ElementaryTypeName","src":"10522:7:91","typeDescriptions":{}}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10522:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53207,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"10502:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10502:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"10478:68:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53214,"nodeType":"ExpressionStatement","src":"10478:68:91"},{"expression":{"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53215,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52815,"src":"10556:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53219,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10600:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10592:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53217,"name":"address","nodeType":"ElementaryTypeName","src":"10592:7:91","typeDescriptions":{}}},"id":53220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10592:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53216,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"10570:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10570:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"10556:60:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53223,"nodeType":"ExpressionStatement","src":"10556:60:91"},{"expression":{"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53224,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52821,"src":"10626:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53228,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10663:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10655:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53226,"name":"address","nodeType":"ElementaryTypeName","src":"10655:7:91","typeDescriptions":{}}},"id":53229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10655:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53225,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10637:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10637:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10626:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53232,"nodeType":"ExpressionStatement","src":"10626:53:91"},{"expression":{"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53233,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52818,"src":"10689:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53237,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10724:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10716:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53235,"name":"address","nodeType":"ElementaryTypeName","src":"10716:7:91","typeDescriptions":{}}},"id":53238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10716:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53234,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10700:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10700:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10689:51:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53241,"nodeType":"ExpressionStatement","src":"10689:51:91"},{"assignments":[53246],"declarations":[{"constant":false,"id":53246,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10849:19:91","nodeType":"VariableDeclaration","scope":53328,"src":"10805:63:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53245,"nodeType":"UserDefinedTypeName","pathNode":{"id":53244,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10805:18:91","10824:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10805:36:91"},"referencedDeclaration":36253,"src":"10805:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53253,"initialValue":{"arguments":[{"arguments":[{"id":53250,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10928:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10920:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53248,"name":"address","nodeType":"ElementaryTypeName","src":"10920:7:91","typeDescriptions":{}}},"id":53251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10920:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53247,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53088,"src":"10871:35:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10871:82:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10805:148:91"},{"expression":{"id":53258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53254,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"10964:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53256,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53246,"src":"10994:19:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53255,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53912,53941,54244],"referencedDeclaration":53912,"src":"10976:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10976:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10964:50:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53259,"nodeType":"ExpressionStatement","src":"10964:50:91"},{"expression":{"id":53267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53260,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"11024:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53264,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11068:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11060:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53262,"name":"address","nodeType":"ElementaryTypeName","src":"11060:7:91","typeDescriptions":{}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11060:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53261,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"11036:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11036:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"11024:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53268,"nodeType":"ExpressionStatement","src":"11024:55:91"},{"expression":{"id":53276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53269,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"11089:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53273,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11131:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11123:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53271,"name":"address","nodeType":"ElementaryTypeName","src":"11123:7:91","typeDescriptions":{}}},"id":53274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11123:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53270,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"11100:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11100:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"11089:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53277,"nodeType":"ExpressionStatement","src":"11089:53:91"},{"expression":{"id":53285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53278,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"11152:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53282,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11193:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11185:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53280,"name":"address","nodeType":"ElementaryTypeName","src":"11185:7:91","typeDescriptions":{}}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11185:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53279,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"11163:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":53284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11163:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"11152:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53286,"nodeType":"ExpressionStatement","src":"11152:52:91"},{"expression":{"id":53294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53287,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"11214:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53291,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11258:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11250:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53289,"name":"address","nodeType":"ElementaryTypeName","src":"11250:7:91","typeDescriptions":{}}},"id":53292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11250:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53288,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"11227:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":53293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"11214:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":53295,"nodeType":"ExpressionStatement","src":"11214:55:91"},{"expression":{"id":53303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53296,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"11279:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53300,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11334:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11326:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53298,"name":"address","nodeType":"ElementaryTypeName","src":"11326:7:91","typeDescriptions":{}}},"id":53301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11326:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53297,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"11296:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":53302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11296:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"11279:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":53304,"nodeType":"ExpressionStatement","src":"11279:66:91"},{"expression":{"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53305,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"11355:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53309,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11392:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11384:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53307,"name":"address","nodeType":"ElementaryTypeName","src":"11384:7:91","typeDescriptions":{}}},"id":53310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11384:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53306,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"11366:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11366:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"11355:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53313,"nodeType":"ExpressionStatement","src":"11355:48:91"},{"expression":{"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53314,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"11413:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53318,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11448:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11440:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53316,"name":"address","nodeType":"ElementaryTypeName","src":"11440:7:91","typeDescriptions":{}}},"id":53319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11440:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53315,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"11424:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11424:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"11413:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53322,"nodeType":"ExpressionStatement","src":"11413:46:91"},{"expression":{"arguments":[{"id":53324,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52695,"src":"11483:19:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11504:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53323,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54787,54870],"referencedDeclaration":54870,"src":"11470:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11470:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53327,"nodeType":"ExpressionStatement","src":"11470:38:91"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9792:5:91","parameters":{"id":53128,"nodeType":"ParameterList","parameters":[],"src":"9797:2:91"},"returnParameters":{"id":53129,"nodeType":"ParameterList","parameters":[],"src":"9815:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53588,"nodeType":"FunctionDefinition","src":"11521:3185:91","nodes":[],"body":{"id":53587,"nodeType":"Block","src":"11631:3075:91","nodes":[],"statements":[{"assignments":[53340],"declarations":[{"constant":false,"id":53340,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"11660:18:91","nodeType":"VariableDeclaration","scope":53587,"src":"11641:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53339,"nodeType":"UserDefinedTypeName","pathNode":{"id":53338,"name":"CheckpointingFacet","nameLocations":["11641:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11641:18:91"},"referencedDeclaration":39870,"src":"11641:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53345,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11681:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53342,"nodeType":"UserDefinedTypeName","pathNode":{"id":53341,"name":"CheckpointingFacet","nameLocations":["11685:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11685:18:91"},"referencedDeclaration":39870,"src":"11685:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11681:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11641:64:91"},{"assignments":[53348],"declarations":[{"constant":false,"id":53348,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"11734:18:91","nodeType":"VariableDeclaration","scope":53587,"src":"11715:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53347,"nodeType":"UserDefinedTypeName","pathNode":{"id":53346,"name":"XnetMessagingFacet","nameLocations":["11715:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11715:18:91"},"referencedDeclaration":40144,"src":"11715:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53353,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11755:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53350,"nodeType":"UserDefinedTypeName","pathNode":{"id":53349,"name":"XnetMessagingFacet","nameLocations":["11759:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11759:18:91"},"referencedDeclaration":40144,"src":"11759:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11755:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11715:64:91"},{"assignments":[53356],"declarations":[{"constant":false,"id":53356,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"11810:20:91","nodeType":"VariableDeclaration","scope":53587,"src":"11789:41:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53355,"nodeType":"UserDefinedTypeName","pathNode":{"id":53354,"name":"TopDownFinalityFacet","nameLocations":["11789:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11789:20:91"},"referencedDeclaration":40071,"src":"11789:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53361,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11833:24:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53358,"nodeType":"UserDefinedTypeName","pathNode":{"id":53357,"name":"TopDownFinalityFacet","nameLocations":["11837:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11837:20:91"},"referencedDeclaration":40071,"src":"11837:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11833:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"11789:70:91"},{"assignments":[53364],"declarations":[{"constant":false,"id":53364,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"11889:19:91","nodeType":"VariableDeclaration","scope":53587,"src":"11869:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53363,"nodeType":"UserDefinedTypeName","pathNode":{"id":53362,"name":"BottomUpRouterFacet","nameLocations":["11869:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11869:19:91"},"referencedDeclaration":39601,"src":"11869:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53369,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11911:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53366,"nodeType":"UserDefinedTypeName","pathNode":{"id":53365,"name":"BottomUpRouterFacet","nameLocations":["11915:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11915:19:91"},"referencedDeclaration":39601,"src":"11915:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11911:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11869:67:91"},{"assignments":[53372],"declarations":[{"constant":false,"id":53372,"mutability":"mutable","name":"manager","nameLocation":"11967:7:91","nodeType":"VariableDeclaration","scope":53587,"src":"11947:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53371,"nodeType":"UserDefinedTypeName","pathNode":{"id":53370,"name":"GatewayManagerFacet","nameLocations":["11947:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11947:19:91"},"referencedDeclaration":38870,"src":"11947:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53377,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11977:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53374,"nodeType":"UserDefinedTypeName","pathNode":{"id":53373,"name":"GatewayManagerFacet","nameLocations":["11981:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11981:19:91"},"referencedDeclaration":38870,"src":"11981:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11947:55:91"},{"assignments":[53380],"declarations":[{"constant":false,"id":53380,"mutability":"mutable","name":"getter","nameLocation":"12031:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12012:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53379,"nodeType":"UserDefinedTypeName","pathNode":{"id":53378,"name":"GatewayGetterFacet","nameLocations":["12012:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12012:18:91"},"referencedDeclaration":38317,"src":"12012:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53385,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12040:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53382,"nodeType":"UserDefinedTypeName","pathNode":{"id":53381,"name":"GatewayGetterFacet","nameLocations":["12044:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12044:18:91"},"referencedDeclaration":38317,"src":"12044:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"12012:52:91"},{"assignments":[53388],"declarations":[{"constant":false,"id":53388,"mutability":"mutable","name":"messenger","nameLocation":"12096:9:91","nodeType":"VariableDeclaration","scope":53587,"src":"12074:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53387,"nodeType":"UserDefinedTypeName","pathNode":{"id":53386,"name":"GatewayMessengerFacet","nameLocations":["12074:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12074:21:91"},"referencedDeclaration":39235,"src":"12074:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53393,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12108:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53390,"nodeType":"UserDefinedTypeName","pathNode":{"id":53389,"name":"GatewayMessengerFacet","nameLocations":["12112:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12112:21:91"},"referencedDeclaration":39235,"src":"12112:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12108:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12074:61:91"},{"assignments":[53396],"declarations":[{"constant":false,"id":53396,"mutability":"mutable","name":"cutter","nameLocation":"12161:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12145:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53395,"nodeType":"UserDefinedTypeName","pathNode":{"id":53394,"name":"DiamondCutFacet","nameLocations":["12145:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12145:15:91"},"referencedDeclaration":36918,"src":"12145:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53401,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12170:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53398,"nodeType":"UserDefinedTypeName","pathNode":{"id":53397,"name":"DiamondCutFacet","nameLocations":["12174:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12174:15:91"},"referencedDeclaration":36918,"src":"12174:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12170:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12145:46:91"},{"assignments":[53404],"declarations":[{"constant":false,"id":53404,"mutability":"mutable","name":"louper","nameLocation":"12219:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12201:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53403,"nodeType":"UserDefinedTypeName","pathNode":{"id":53402,"name":"DiamondLoupeFacet","nameLocations":["12201:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12201:17:91"},"referencedDeclaration":37355,"src":"12201:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53409,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12228:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53406,"nodeType":"UserDefinedTypeName","pathNode":{"id":53405,"name":"DiamondLoupeFacet","nameLocations":["12232:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12232:17:91"},"referencedDeclaration":37355,"src":"12232:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12228:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12201:50:91"},{"assignments":[53415],"declarations":[{"constant":false,"id":53415,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"12289:12:91","nodeType":"VariableDeclaration","scope":53587,"src":"12262:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53413,"nodeType":"UserDefinedTypeName","pathNode":{"id":53412,"name":"IDiamond.FacetCut","nameLocations":["12262:8:91","12271:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12262:17:91"},"referencedDeclaration":40159,"src":"12262:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53414,"nodeType":"ArrayTypeName","src":"12262:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53422,"initialValue":{"arguments":[{"hexValue":"39","id":53420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12328:1:91","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12304:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53417,"nodeType":"UserDefinedTypeName","pathNode":{"id":53416,"name":"IDiamond.FacetCut","nameLocations":["12308:8:91","12317:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12308:17:91"},"referencedDeclaration":40159,"src":"12308:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53418,"nodeType":"ArrayTypeName","src":"12308:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12304:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12262:68:91"},{"expression":{"id":53438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53423,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12341:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53425,"indexExpression":{"hexValue":"30","id":53424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12354:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12341:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53430,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53340,"src":"12431:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12423:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53428,"name":"address","nodeType":"ElementaryTypeName","src":"12423:7:91","typeDescriptions":{}}},"id":53431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12423:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12476:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12485:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12476:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12500:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12476:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53435,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52767,"src":"12540:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53426,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12373:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12382:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12373:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12409:12:91","12468:6:91","12521:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12373:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53437,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12359:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12341:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53439,"nodeType":"ExpressionStatement","src":"12341:253:91"},{"expression":{"id":53455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53440,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12605:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53442,"indexExpression":{"hexValue":"36","id":53441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12618:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12605:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53447,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53348,"src":"12695:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12687:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53445,"name":"address","nodeType":"ElementaryTypeName","src":"12687:7:91","typeDescriptions":{}}},"id":53448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12687:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12740:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12749:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12740:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12764:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12740:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53452,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52770,"src":"12804:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53443,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12637:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12646:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12637:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12673:12:91","12732:6:91","12785:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12637:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53454,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12623:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12605:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53456,"nodeType":"ExpressionStatement","src":"12605:253:91"},{"expression":{"id":53472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53457,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12869:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53459,"indexExpression":{"hexValue":"37","id":53458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12882:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12869:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53464,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53356,"src":"12959:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12951:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53462,"name":"address","nodeType":"ElementaryTypeName","src":"12951:7:91","typeDescriptions":{}}},"id":53465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12951:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13006:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13030:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13006:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53469,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52773,"src":"13070:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53460,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12901:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12910:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12901:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12937:12:91","12998:6:91","13051:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12901:215:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12887:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12869:257:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53473,"nodeType":"ExpressionStatement","src":"12869:257:91"},{"expression":{"id":53489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53474,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13137:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53476,"indexExpression":{"hexValue":"38","id":53475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13150:1:91","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13137:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53481,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53364,"src":"13227:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13219:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53479,"name":"address","nodeType":"ElementaryTypeName","src":"13219:7:91","typeDescriptions":{}}},"id":53482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13219:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13273:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13282:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13273:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13297:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13273:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53486,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"13337:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53477,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13169:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13178:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13169:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13205:12:91","13265:6:91","13318:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13169:213:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53488,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13155:237:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13137:255:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53490,"nodeType":"ExpressionStatement","src":"13137:255:91"},{"expression":{"id":53506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53491,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13403:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53493,"indexExpression":{"hexValue":"31","id":53492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13416:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13403:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53498,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53372,"src":"13493:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13485:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53496,"name":"address","nodeType":"ElementaryTypeName","src":"13485:7:91","typeDescriptions":{}}},"id":53499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13485:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53500,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13527:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13536:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13527:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13551:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13527:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53503,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52779,"src":"13591:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53494,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13435:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13444:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13435:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13471:12:91","13519:6:91","13572:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13435:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53505,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13421:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13403:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53507,"nodeType":"ExpressionStatement","src":"13403:231:91"},{"expression":{"id":53523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53508,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13645:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53510,"indexExpression":{"hexValue":"32","id":53509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13658:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13645:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53515,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53380,"src":"13735:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13727:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13727:7:91","typeDescriptions":{}}},"id":53516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13727:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53517,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13768:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13777:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13768:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13792:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13768:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53520,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52782,"src":"13832:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53511,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13677:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13686:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13677:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13713:12:91","13760:6:91","13813:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13677:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53522,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13663:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13645:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53524,"nodeType":"ExpressionStatement","src":"13645:229:91"},{"expression":{"id":53540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53525,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13885:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53527,"indexExpression":{"hexValue":"33","id":53526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13898:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13885:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53532,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53388,"src":"13975:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13967:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53530,"name":"address","nodeType":"ElementaryTypeName","src":"13967:7:91","typeDescriptions":{}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53534,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14011:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14020:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14011:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14035:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14011:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53537,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52785,"src":"14075:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13917:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13926:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13917:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13953:12:91","14003:6:91","14056:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13917:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53539,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13903:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13885:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53541,"nodeType":"ExpressionStatement","src":"13885:235:91"},{"expression":{"id":53557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53542,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14131:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53544,"indexExpression":{"hexValue":"34","id":53543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14144:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14131:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53549,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53404,"src":"14221:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14213:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53547,"name":"address","nodeType":"ElementaryTypeName","src":"14213:7:91","typeDescriptions":{}}},"id":53550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14213:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53551,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14254:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14263:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14254:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14278:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14254:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53554,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52791,"src":"14318:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53545,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14163:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14172:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14163:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14199:12:91","14246:6:91","14299:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14163:186:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53556,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14149:210:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14131:228:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53558,"nodeType":"ExpressionStatement","src":"14131:228:91"},{"expression":{"id":53574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53559,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14370:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53561,"indexExpression":{"hexValue":"35","id":53560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14383:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14370:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53566,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53396,"src":"14460:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14452:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53564,"name":"address","nodeType":"ElementaryTypeName","src":"14452:7:91","typeDescriptions":{}}},"id":53567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14452:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53568,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14493:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14502:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14493:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14517:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14493:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53571,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52788,"src":"14557:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53562,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14402:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14411:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14402:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14438:12:91","14485:6:91","14538:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14402:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14388:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14370:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53575,"nodeType":"ExpressionStatement","src":"14370:229:91"},{"expression":{"id":53583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53576,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"14610:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53580,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14646:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53581,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53332,"src":"14660:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14627:18:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53578,"nodeType":"UserDefinedTypeName","pathNode":{"id":53577,"name":"GatewayDiamond","nameLocations":["14631:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"14631:14:91"},"referencedDeclaration":36170,"src":"14631:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14627:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"14610:57:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53584,"nodeType":"ExpressionStatement","src":"14610:57:91"},{"expression":{"id":53585,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"14685:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53337,"id":53586,"nodeType":"Return","src":"14678:21:91"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"11530:20:91","parameters":{"id":53333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53332,"mutability":"mutable","name":"params","nameLocation":"11591:6:91","nodeType":"VariableDeclaration","scope":53588,"src":"11551:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53331,"nodeType":"UserDefinedTypeName","pathNode":{"id":53330,"name":"GatewayDiamond.ConstructorParams","nameLocations":["11551:14:91","11566:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"11551:32:91"},"referencedDeclaration":35883,"src":"11551:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"11550:48:91"},"returnParameters":{"id":53337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53588,"src":"11615:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53335,"nodeType":"UserDefinedTypeName","pathNode":{"id":53334,"name":"GatewayDiamond","nameLocations":["11615:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"11615:14:91"},"referencedDeclaration":36170,"src":"11615:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"11614:16:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53702,"nodeType":"FunctionDefinition","src":"14712:1613:91","nodes":[],"body":{"id":53701,"nodeType":"Block","src":"14988:1337:91","nodes":[],"statements":[{"assignments":[53612],"declarations":[{"constant":false,"id":53612,"mutability":"mutable","name":"diamondCut","nameLocation":"15025:10:91","nodeType":"VariableDeclaration","scope":53701,"src":"14998:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53610,"nodeType":"UserDefinedTypeName","pathNode":{"id":53609,"name":"IDiamond.FacetCut","nameLocations":["14998:8:91","15007:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14998:17:91"},"referencedDeclaration":40159,"src":"14998:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53611,"nodeType":"ArrayTypeName","src":"14998:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53619,"initialValue":{"arguments":[{"hexValue":"35","id":53617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15062:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":53616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15038:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53614,"nodeType":"UserDefinedTypeName","pathNode":{"id":53613,"name":"IDiamond.FacetCut","nameLocations":["15042:8:91","15051:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15042:17:91"},"referencedDeclaration":40159,"src":"15042:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53615,"nodeType":"ArrayTypeName","src":"15042:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15038:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14998:66:91"},{"expression":{"id":53632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53620,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15075:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53622,"indexExpression":{"hexValue":"30","id":53621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15086:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15075:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53625,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53593,"src":"15155:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53626,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15187:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15196:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15187:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15211:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15187:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53629,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"15251:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53623,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15105:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15114:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15105:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15141:12:91","15179:6:91","15232:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15105:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53631,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15091:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15075:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53633,"nodeType":"ExpressionStatement","src":"15075:218:91"},{"expression":{"id":53646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53634,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15304:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53636,"indexExpression":{"hexValue":"31","id":53635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15315:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15304:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53639,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53595,"src":"15384:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53640,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15417:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15426:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15417:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15441:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15417:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53643,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"15481:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53637,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15334:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15343:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15334:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15370:12:91","15409:6:91","15462:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15334:180:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53645,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15320:204:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15304:220:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53647,"nodeType":"ExpressionStatement","src":"15304:220:91"},{"expression":{"id":53660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53648,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15535:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53650,"indexExpression":{"hexValue":"32","id":53649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15546:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15535:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53653,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53597,"src":"15615:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53654,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15647:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15656:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15647:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15671:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15647:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53657,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"15711:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53651,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15565:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15574:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15565:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15601:12:91","15639:6:91","15692:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15565:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53659,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15551:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15535:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53661,"nodeType":"ExpressionStatement","src":"15535:218:91"},{"expression":{"id":53674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53662,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15764:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53664,"indexExpression":{"hexValue":"33","id":53663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15775:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15764:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53667,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53599,"src":"15844:8:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53668,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15878:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15887:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15878:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15902:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15878:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53671,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"15942:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53665,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15794:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15803:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15794:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15830:12:91","15870:6:91","15923:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15794:182:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53673,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15780:206:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15764:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53675,"nodeType":"ExpressionStatement","src":"15764:222:91"},{"expression":{"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53676,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15997:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53678,"indexExpression":{"hexValue":"34","id":53677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16008:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15997:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53681,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53601,"src":"16077:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53682,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16124:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"16115:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16139:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"16115:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53685,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"16179:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53679,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16027:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16036:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"16027:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16063:12:91","16107:6:91","16160:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"16027:190:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53687,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16013:214:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15997:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53689,"nodeType":"ExpressionStatement","src":"15997:230:91"},{"expression":{"id":53697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53690,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"16238:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53694,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"16273:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53695,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53591,"src":"16285:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16250:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53692,"nodeType":"UserDefinedTypeName","pathNode":{"id":53691,"name":"SubnetActorDiamond","nameLocations":["16254:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16254:18:91"},"referencedDeclaration":36615,"src":"16254:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16250:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"16238:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53698,"nodeType":"ExpressionStatement","src":"16238:54:91"},{"expression":{"id":53699,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"16309:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53606,"id":53700,"nodeType":"Return","src":"16302:16:91"}]},"functionSelector":"ea1c89ed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"14721:35:91","parameters":{"id":53602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53591,"mutability":"mutable","name":"params","nameLocation":"14810:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14766:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53590,"nodeType":"UserDefinedTypeName","pathNode":{"id":53589,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14766:18:91","14785:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14766:36:91"},"referencedDeclaration":36253,"src":"14766:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53593,"mutability":"mutable","name":"getter","nameLocation":"14834:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14826:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53592,"name":"address","nodeType":"ElementaryTypeName","src":"14826:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53595,"mutability":"mutable","name":"manager","nameLocation":"14858:7:91","nodeType":"VariableDeclaration","scope":53702,"src":"14850:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53594,"name":"address","nodeType":"ElementaryTypeName","src":"14850:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53597,"mutability":"mutable","name":"pauser","nameLocation":"14883:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14875:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53596,"name":"address","nodeType":"ElementaryTypeName","src":"14875:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53599,"mutability":"mutable","name":"rewarder","nameLocation":"14907:8:91","nodeType":"VariableDeclaration","scope":53702,"src":"14899:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53598,"name":"address","nodeType":"ElementaryTypeName","src":"14899:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53601,"mutability":"mutable","name":"checkpointer","nameLocation":"14933:12:91","nodeType":"VariableDeclaration","scope":53702,"src":"14925:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53600,"name":"address","nodeType":"ElementaryTypeName","src":"14925:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14756:195:91"},"returnParameters":{"id":53606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53702,"src":"14968:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"SubnetActorDiamond","nameLocations":["14968:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14968:18:91"},"referencedDeclaration":36615,"src":"14968:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14967:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53912,"nodeType":"FunctionDefinition","src":"16331:2480:91","nodes":[],"body":{"id":53911,"nodeType":"Block","src":"16446:2365:91","nodes":[],"statements":[{"assignments":[53713],"declarations":[{"constant":false,"id":53713,"mutability":"mutable","name":"manager","nameLocation":"16480:7:91","nodeType":"VariableDeclaration","scope":53911,"src":"16456:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53712,"nodeType":"UserDefinedTypeName","pathNode":{"id":53711,"name":"SubnetActorManagerFacet","nameLocations":["16456:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16456:23:91"},"referencedDeclaration":51946,"src":"16456:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53718,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16490:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53715,"nodeType":"UserDefinedTypeName","pathNode":{"id":53714,"name":"SubnetActorManagerFacet","nameLocations":["16494:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16494:23:91"},"referencedDeclaration":51946,"src":"16494:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16490:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"16456:63:91"},{"assignments":[53721],"declarations":[{"constant":false,"id":53721,"mutability":"mutable","name":"getter","nameLocation":"16552:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16529:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53720,"nodeType":"UserDefinedTypeName","pathNode":{"id":53719,"name":"SubnetActorGetterFacet","nameLocations":["16529:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16529:22:91"},"referencedDeclaration":51235,"src":"16529:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53726,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16561:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53723,"nodeType":"UserDefinedTypeName","pathNode":{"id":53722,"name":"SubnetActorGetterFacet","nameLocations":["16565:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16565:22:91"},"referencedDeclaration":51235,"src":"16565:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16561:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"16529:60:91"},{"assignments":[53729],"declarations":[{"constant":false,"id":53729,"mutability":"mutable","name":"pauser","nameLocation":"16621:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16599:28:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":53728,"nodeType":"UserDefinedTypeName","pathNode":{"id":53727,"name":"SubnetActorPauseFacet","nameLocations":["16599:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16599:21:91"},"referencedDeclaration":51991,"src":"16599:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"}],"id":53734,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16630:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53731,"nodeType":"UserDefinedTypeName","pathNode":{"id":53730,"name":"SubnetActorPauseFacet","nameLocations":["16634:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16634:21:91"},"referencedDeclaration":51991,"src":"16634:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16630:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"VariableDeclarationStatement","src":"16599:58:91"},{"assignments":[53737],"declarations":[{"constant":false,"id":53737,"mutability":"mutable","name":"rewarder","nameLocation":"16690:8:91","nodeType":"VariableDeclaration","scope":53911,"src":"16667:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":53736,"nodeType":"UserDefinedTypeName","pathNode":{"id":53735,"name":"SubnetActorRewardFacet","nameLocations":["16667:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16667:22:91"},"referencedDeclaration":52158,"src":"16667:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"}],"id":53742,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16701:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":53739,"nodeType":"UserDefinedTypeName","pathNode":{"id":53738,"name":"SubnetActorRewardFacet","nameLocations":["16705:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16705:22:91"},"referencedDeclaration":52158,"src":"16705:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":53741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16701:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"VariableDeclarationStatement","src":"16667:62:91"},{"assignments":[53745],"declarations":[{"constant":false,"id":53745,"mutability":"mutable","name":"checkpointer","nameLocation":"16769:12:91","nodeType":"VariableDeclaration","scope":53911,"src":"16739:42:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":53744,"nodeType":"UserDefinedTypeName","pathNode":{"id":53743,"name":"SubnetActorCheckpointingFacet","nameLocations":["16739:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16739:29:91"},"referencedDeclaration":50577,"src":"16739:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"}],"id":53750,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16784:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53747,"nodeType":"UserDefinedTypeName","pathNode":{"id":53746,"name":"SubnetActorCheckpointingFacet","nameLocations":["16788:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16788:29:91"},"referencedDeclaration":50577,"src":"16788:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16784:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"16739:80:91"},{"assignments":[53753],"declarations":[{"constant":false,"id":53753,"mutability":"mutable","name":"louper","nameLocation":"16848:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16830:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53752,"nodeType":"UserDefinedTypeName","pathNode":{"id":53751,"name":"DiamondLoupeFacet","nameLocations":["16830:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16830:17:91"},"referencedDeclaration":37355,"src":"16830:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53758,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16857:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53755,"nodeType":"UserDefinedTypeName","pathNode":{"id":53754,"name":"DiamondLoupeFacet","nameLocations":["16861:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16861:17:91"},"referencedDeclaration":37355,"src":"16861:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16857:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"16830:50:91"},{"assignments":[53761],"declarations":[{"constant":false,"id":53761,"mutability":"mutable","name":"cutter","nameLocation":"16906:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16890:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53760,"nodeType":"UserDefinedTypeName","pathNode":{"id":53759,"name":"DiamondCutFacet","nameLocations":["16890:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16890:15:91"},"referencedDeclaration":36918,"src":"16890:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53766,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16915:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53763,"nodeType":"UserDefinedTypeName","pathNode":{"id":53762,"name":"DiamondCutFacet","nameLocations":["16919:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16919:15:91"},"referencedDeclaration":36918,"src":"16919:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16915:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"16890:46:91"},{"assignments":[53772],"declarations":[{"constant":false,"id":53772,"mutability":"mutable","name":"diamondCut","nameLocation":"16974:10:91","nodeType":"VariableDeclaration","scope":53911,"src":"16947:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53770,"nodeType":"UserDefinedTypeName","pathNode":{"id":53769,"name":"IDiamond.FacetCut","nameLocations":["16947:8:91","16956:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16947:17:91"},"referencedDeclaration":40159,"src":"16947:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53771,"nodeType":"ArrayTypeName","src":"16947:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53779,"initialValue":{"arguments":[{"hexValue":"37","id":53777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17011:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"id":53776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16987:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"IDiamond.FacetCut","nameLocations":["16991:8:91","17000:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16991:17:91"},"referencedDeclaration":40159,"src":"16991:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53775,"nodeType":"ArrayTypeName","src":"16991:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16987:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"16947:66:91"},{"expression":{"id":53795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53780,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17024:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53782,"indexExpression":{"hexValue":"30","id":53781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17035:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17024:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53787,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53713,"src":"17112:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":53786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17104:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53785,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:91","typeDescriptions":{}}},"id":53788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17104:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53789,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17146:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17155:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17146:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17170:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17146:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53792,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"17210:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53783,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17054:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17063:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17054:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17090:12:91","17138:6:91","17191:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17054:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17040:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17024:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53796,"nodeType":"ExpressionStatement","src":"17024:229:91"},{"expression":{"id":53812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53797,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17264:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53799,"indexExpression":{"hexValue":"31","id":53798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17275:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17264:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53804,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"17352:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":53803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17344:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53802,"name":"address","nodeType":"ElementaryTypeName","src":"17344:7:91","typeDescriptions":{}}},"id":53805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17344:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53806,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17385:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17394:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17385:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17409:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17385:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53809,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"17449:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53800,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17294:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17303:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17294:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17330:12:91","17377:6:91","17430:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17294:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53811,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17280:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17264:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53813,"nodeType":"ExpressionStatement","src":"17264:227:91"},{"expression":{"id":53829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53814,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17502:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53816,"indexExpression":{"hexValue":"32","id":53815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17513:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17502:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53821,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53729,"src":"17590:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":53820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17582:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53819,"name":"address","nodeType":"ElementaryTypeName","src":"17582:7:91","typeDescriptions":{}}},"id":53822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17582:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53823,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17623:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17632:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17623:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17647:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17623:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53826,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"17687:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53817,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17532:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17541:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17532:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17568:12:91","17615:6:91","17668:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17532:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53828,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17518:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17502:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53830,"nodeType":"ExpressionStatement","src":"17502:227:91"},{"expression":{"id":53846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53831,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17740:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53833,"indexExpression":{"hexValue":"33","id":53832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17751:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17740:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53838,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"17828:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":53837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17820:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53836,"name":"address","nodeType":"ElementaryTypeName","src":"17820:7:91","typeDescriptions":{}}},"id":53839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17820:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53840,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17863:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17872:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17863:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17887:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17863:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53843,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"17927:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53834,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17770:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17779:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17770:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17806:12:91","17855:6:91","17908:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17770:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53845,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17756:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17740:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53847,"nodeType":"ExpressionStatement","src":"17740:231:91"},{"expression":{"id":53863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53848,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17982:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53850,"indexExpression":{"hexValue":"34","id":53849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17993:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17982:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53855,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53745,"src":"18070:12:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":53854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18062:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53853,"name":"address","nodeType":"ElementaryTypeName","src":"18062:7:91","typeDescriptions":{}}},"id":53856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18062:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53857,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18109:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18118:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18109:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18133:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18109:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53860,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"18173:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53851,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18012:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18021:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18012:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18048:12:91","18101:6:91","18154:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18012:199:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53862,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17998:223:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17982:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53864,"nodeType":"ExpressionStatement","src":"17982:239:91"},{"expression":{"id":53880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53865,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18232:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53867,"indexExpression":{"hexValue":"35","id":53866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18243:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18232:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53872,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53761,"src":"18320:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18312:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53870,"name":"address","nodeType":"ElementaryTypeName","src":"18312:7:91","typeDescriptions":{}}},"id":53873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18312:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53874,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18353:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18362:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18353:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18377:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18353:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53877,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"18417:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53868,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18262:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18271:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18262:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18298:12:91","18345:6:91","18398:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18262:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53879,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18248:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18232:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53881,"nodeType":"ExpressionStatement","src":"18232:227:91"},{"expression":{"id":53897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53882,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18470:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53884,"indexExpression":{"hexValue":"36","id":53883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18481:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18470:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53889,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53753,"src":"18558:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18550:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53887,"name":"address","nodeType":"ElementaryTypeName","src":"18550:7:91","typeDescriptions":{}}},"id":53890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18550:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53891,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18591:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18600:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18591:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18615:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18591:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53894,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"18655:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53885,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18500:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18509:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18500:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18536:12:91","18583:6:91","18636:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18500:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53896,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18486:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18470:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53898,"nodeType":"ExpressionStatement","src":"18470:227:91"},{"assignments":[53901],"declarations":[{"constant":false,"id":53901,"mutability":"mutable","name":"diamond","nameLocation":"18727:7:91","nodeType":"VariableDeclaration","scope":53911,"src":"18708:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53900,"nodeType":"UserDefinedTypeName","pathNode":{"id":53899,"name":"SubnetActorDiamond","nameLocations":["18708:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18708:18:91"},"referencedDeclaration":36615,"src":"18708:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53908,"initialValue":{"arguments":[{"id":53905,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18760:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53906,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53705,"src":"18772:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18737:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53903,"nodeType":"UserDefinedTypeName","pathNode":{"id":53902,"name":"SubnetActorDiamond","nameLocations":["18741:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18741:18:91"},"referencedDeclaration":36615,"src":"18741:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18737:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"18708:71:91"},{"expression":{"id":53909,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53901,"src":"18797:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53710,"id":53910,"nodeType":"Return","src":"18790:14:91"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16340:17:91","parameters":{"id":53706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53705,"mutability":"mutable","name":"params","nameLocation":"16402:6:91","nodeType":"VariableDeclaration","scope":53912,"src":"16358:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53704,"nodeType":"UserDefinedTypeName","pathNode":{"id":53703,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["16358:18:91","16377:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"16358:36:91"},"referencedDeclaration":36253,"src":"16358:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"16357:52:91"},"returnParameters":{"id":53710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53912,"src":"16426:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53708,"nodeType":"UserDefinedTypeName","pathNode":{"id":53707,"name":"SubnetActorDiamond","nameLocations":["16426:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16426:18:91"},"referencedDeclaration":36615,"src":"16426:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16425:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53941,"nodeType":"FunctionDefinition","src":"18817:522:91","nodes":[],"body":{"id":53940,"nodeType":"Block","src":"19061:278:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":53929,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53914,"src":"19102:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53930,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53917,"src":"19131:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53931,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53919,"src":"19155:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53932,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53921,"src":"19193:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53933,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53923,"src":"19221:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53934,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53925,"src":"19247:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53935,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"19280:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19295:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"19280:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19319:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53928,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53912,53941,54244],"referencedDeclaration":54244,"src":"19071:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50118_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19071:261:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53939,"nodeType":"ExpressionStatement","src":"19071:261:91"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"18826:17:91","parameters":{"id":53926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53914,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"18861:15:91","nodeType":"VariableDeclaration","scope":53941,"src":"18853:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53913,"name":"address","nodeType":"ElementaryTypeName","src":"18853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53917,"mutability":"mutable","name":"_consensus","nameLocation":"18900:10:91","nodeType":"VariableDeclaration","scope":53941,"src":"18886:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53916,"nodeType":"UserDefinedTypeName","pathNode":{"id":53915,"name":"ConsensusType","nameLocations":["18886:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"18886:13:91"},"referencedDeclaration":37359,"src":"18886:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53919,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"18928:24:91","nodeType":"VariableDeclaration","scope":53941,"src":"18920:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53918,"name":"uint256","nodeType":"ElementaryTypeName","src":"18920:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53921,"mutability":"mutable","name":"_minValidators","nameLocation":"18969:14:91","nodeType":"VariableDeclaration","scope":53941,"src":"18962:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53920,"name":"uint64","nodeType":"ElementaryTypeName","src":"18962:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53923,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19000:12:91","nodeType":"VariableDeclaration","scope":53941,"src":"18993:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53922,"name":"uint64","nodeType":"ElementaryTypeName","src":"18993:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53925,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19028:19:91","nodeType":"VariableDeclaration","scope":53941,"src":"19022:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53924,"name":"uint8","nodeType":"ElementaryTypeName","src":"19022:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18843:210:91"},"returnParameters":{"id":53927,"nodeType":"ParameterList","parameters":[],"src":"19061:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54244,"nodeType":"FunctionDefinition","src":"19345:3730:91","nodes":[],"body":{"id":54243,"nodeType":"Block","src":"19668:3407:91","nodes":[],"statements":[{"assignments":[53964],"declarations":[{"constant":false,"id":53964,"mutability":"mutable","name":"_parentId","nameLocation":"19694:9:91","nodeType":"VariableDeclaration","scope":54243,"src":"19678:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetID","nameLocations":["19678:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"19678:8:91"},"referencedDeclaration":50030,"src":"19678:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53973,"initialValue":{"arguments":[{"id":53966,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"19715:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19746:1:91","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":53969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19732:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53967,"name":"address","nodeType":"ElementaryTypeName","src":"19736:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53968,"nodeType":"ArrayTypeName","src":"19736:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19732:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53965,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"19706:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19706:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"19678:71:91"},{"expression":{"id":53979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53974,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"19760:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19772:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53976,"nodeType":"UserDefinedTypeName","pathNode":{"id":53975,"name":"SubnetActorManagerFacet","nameLocations":["19776:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"19776:23:91"},"referencedDeclaration":51946,"src":"19776:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19772:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"19760:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53980,"nodeType":"ExpressionStatement","src":"19760:41:91"},{"expression":{"id":53986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53981,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"19811:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19822:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53983,"nodeType":"UserDefinedTypeName","pathNode":{"id":53982,"name":"SubnetActorGetterFacet","nameLocations":["19826:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"19826:22:91"},"referencedDeclaration":51235,"src":"19826:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19822:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"19811:39:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53987,"nodeType":"ExpressionStatement","src":"19811:39:91"},{"expression":{"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53988,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"19860:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19871:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53990,"nodeType":"UserDefinedTypeName","pathNode":{"id":53989,"name":"SubnetActorPauseFacet","nameLocations":["19875:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"19875:21:91"},"referencedDeclaration":51991,"src":"19875:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19871:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"19860:38:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53994,"nodeType":"ExpressionStatement","src":"19860:38:91"},{"expression":{"id":54000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53995,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"19908:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19925:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53997,"nodeType":"UserDefinedTypeName","pathNode":{"id":53996,"name":"SubnetActorCheckpointingFacet","nameLocations":["19929:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"19929:29:91"},"referencedDeclaration":50577,"src":"19929:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19925:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"19908:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54001,"nodeType":"ExpressionStatement","src":"19908:52:91"},{"expression":{"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54002,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"19970:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19983:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":54004,"nodeType":"UserDefinedTypeName","pathNode":{"id":54003,"name":"SubnetActorRewardFacet","nameLocations":["19987:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"19987:22:91"},"referencedDeclaration":52158,"src":"19987:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":54006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19983:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"19970:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54008,"nodeType":"ExpressionStatement","src":"19970:41:91"},{"expression":{"id":54014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54009,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"20021:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20032:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54011,"nodeType":"UserDefinedTypeName","pathNode":{"id":54010,"name":"DiamondCutFacet","nameLocations":["20036:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20036:15:91"},"referencedDeclaration":36918,"src":"20036:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20032:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"20021:32:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54015,"nodeType":"ExpressionStatement","src":"20021:32:91"},{"expression":{"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54016,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"20063:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20074:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54018,"nodeType":"UserDefinedTypeName","pathNode":{"id":54017,"name":"DiamondLoupeFacet","nameLocations":["20078:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20078:17:91"},"referencedDeclaration":37355,"src":"20078:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20074:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"20063:34:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54022,"nodeType":"ExpressionStatement","src":"20063:34:91"},{"assignments":[54028],"declarations":[{"constant":false,"id":54028,"mutability":"mutable","name":"diamondCut","nameLocation":"20135:10:91","nodeType":"VariableDeclaration","scope":54243,"src":"20108:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54026,"nodeType":"UserDefinedTypeName","pathNode":{"id":54025,"name":"IDiamond.FacetCut","nameLocations":["20108:8:91","20117:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20108:17:91"},"referencedDeclaration":40159,"src":"20108:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54027,"nodeType":"ArrayTypeName","src":"20108:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54035,"initialValue":{"arguments":[{"hexValue":"37","id":54033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20172:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"id":54032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20148:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54030,"nodeType":"UserDefinedTypeName","pathNode":{"id":54029,"name":"IDiamond.FacetCut","nameLocations":["20152:8:91","20161:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20152:17:91"},"referencedDeclaration":40159,"src":"20152:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54031,"nodeType":"ArrayTypeName","src":"20152:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20148:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20108:66:91"},{"expression":{"id":54051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54036,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20185:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54038,"indexExpression":{"hexValue":"30","id":54037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20196:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20185:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54043,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"20273:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20265:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54041,"name":"address","nodeType":"ElementaryTypeName","src":"20265:7:91","typeDescriptions":{}}},"id":54044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20265:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54045,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20309:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20318:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20309:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20333:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20309:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54048,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"20373:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54039,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20215:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20224:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20215:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20251:12:91","20301:6:91","20354:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20215:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54050,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20201:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20185:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54052,"nodeType":"ExpressionStatement","src":"20185:231:91"},{"expression":{"id":54068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54053,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20427:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54055,"indexExpression":{"hexValue":"31","id":54054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20438:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20427:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54060,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"20515:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20507:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54058,"name":"address","nodeType":"ElementaryTypeName","src":"20507:7:91","typeDescriptions":{}}},"id":54061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20507:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54062,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20550:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20559:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20550:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20574:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20550:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54065,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"20614:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54056,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20457:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20466:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20457:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20493:12:91","20542:6:91","20595:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20457:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54067,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20443:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20427:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54069,"nodeType":"ExpressionStatement","src":"20427:229:91"},{"expression":{"id":54085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54070,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20667:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54072,"indexExpression":{"hexValue":"32","id":54071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20678:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20667:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54077,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"20755:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":54076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20747:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54075,"name":"address","nodeType":"ElementaryTypeName","src":"20747:7:91","typeDescriptions":{}}},"id":54078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20747:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54079,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20790:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20799:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20790:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20814:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20790:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54082,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"20854:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54073,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20697:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20706:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20697:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20733:12:91","20782:6:91","20835:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20697:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54084,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20683:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20667:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54086,"nodeType":"ExpressionStatement","src":"20667:229:91"},{"expression":{"id":54102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54087,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20907:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54089,"indexExpression":{"hexValue":"33","id":54088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20918:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20907:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54094,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"20995:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":54093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20987:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54092,"name":"address","nodeType":"ElementaryTypeName","src":"20987:7:91","typeDescriptions":{}}},"id":54095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20987:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54096,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21032:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21041:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21032:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21056:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21032:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54099,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"21096:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54090,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20937:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20946:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20937:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20973:12:91","21024:6:91","21077:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20937:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54101,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20923:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20907:233:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54103,"nodeType":"ExpressionStatement","src":"20907:233:91"},{"expression":{"id":54119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54104,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21151:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54106,"indexExpression":{"hexValue":"34","id":54105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21162:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21151:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54111,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"21239:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":54110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21231:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54109,"name":"address","nodeType":"ElementaryTypeName","src":"21231:7:91","typeDescriptions":{}}},"id":54112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21231:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54113,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21280:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21289:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21280:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21304:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21280:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54116,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"21344:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54107,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21181:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21190:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21181:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21217:12:91","21272:6:91","21325:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21181:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54118,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21167:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21151:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54120,"nodeType":"ExpressionStatement","src":"21151:241:91"},{"expression":{"id":54136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54121,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21403:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54123,"indexExpression":{"hexValue":"35","id":54122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21414:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21403:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54128,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"21491:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21483:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54126,"name":"address","nodeType":"ElementaryTypeName","src":"21483:7:91","typeDescriptions":{}}},"id":54129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21483:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54130,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21526:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21535:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21526:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21550:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21526:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54133,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"21590:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54124,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21433:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21442:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21433:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21469:12:91","21518:6:91","21571:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21433:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21419:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21403:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54137,"nodeType":"ExpressionStatement","src":"21403:229:91"},{"expression":{"id":54153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54138,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21643:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54140,"indexExpression":{"hexValue":"36","id":54139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21654:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21643:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54145,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"21731:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21723:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54143,"name":"address","nodeType":"ElementaryTypeName","src":"21723:7:91","typeDescriptions":{}}},"id":54146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21723:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54147,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21766:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21775:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21766:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21790:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21766:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54150,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"21830:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54141,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21673:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21682:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21673:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21709:12:91","21758:6:91","21811:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21673:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54152,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21659:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21643:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54154,"nodeType":"ExpressionStatement","src":"21643:229:91"},{"expression":{"id":54178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54155,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"21883:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54159,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21931:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":54162,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53964,"src":"22020:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54163,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53943,"src":"22063:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54164,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53946,"src":"22107:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":54165,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53948,"src":"22160:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54166,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53950,"src":"22217:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54167,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53952,"src":"22270:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54168,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53954,"src":"22320:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54169,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"22380:22:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":54170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22432:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":54171,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53957,"src":"22468:15:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":54172,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"22517:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54173,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"22570:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":54174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22589:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"22570:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":54175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22570:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":54160,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"21955:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":54161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21974:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"21955:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":54176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["22010:8:91","22047:14:91","22096:9:91","22135:23:91","22202:13:91","22249:19:91","22300:18:91","22357:21:91","22420:10:91","22452:14:91","22501:14:91","22556:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"21955:657:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21895:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54157,"nodeType":"UserDefinedTypeName","pathNode":{"id":54156,"name":"SubnetActorDiamond","nameLocations":["21899:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"21899:18:91"},"referencedDeclaration":36615,"src":"21899:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21895:727:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"21883:739:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":54179,"nodeType":"ExpressionStatement","src":"21883:739:91"},{"expression":{"id":54187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54180,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"22633:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54184,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22677:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22669:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54182,"name":"address","nodeType":"ElementaryTypeName","src":"22669:7:91","typeDescriptions":{}}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22669:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54181,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"22645:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":54186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22645:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"22633:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":54188,"nodeType":"ExpressionStatement","src":"22633:55:91"},{"expression":{"id":54196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54189,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"22698:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54193,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22739:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22731:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54191,"name":"address","nodeType":"ElementaryTypeName","src":"22731:7:91","typeDescriptions":{}}},"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22731:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54190,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"22709:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":54195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22709:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"22698:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":54197,"nodeType":"ExpressionStatement","src":"22698:52:91"},{"expression":{"id":54205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54198,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"22760:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22804:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22796:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54200,"name":"address","nodeType":"ElementaryTypeName","src":"22796:7:91","typeDescriptions":{}}},"id":54203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22796:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54199,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"22773:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":54204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22773:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"22760:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54206,"nodeType":"ExpressionStatement","src":"22760:55:91"},{"expression":{"id":54214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54207,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"22825:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54211,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22880:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22872:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54209,"name":"address","nodeType":"ElementaryTypeName","src":"22872:7:91","typeDescriptions":{}}},"id":54212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22872:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54208,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"22842:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":54213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22842:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"22825:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54215,"nodeType":"ExpressionStatement","src":"22825:66:91"},{"expression":{"id":54223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54216,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"22901:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54220,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22943:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22935:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54218,"name":"address","nodeType":"ElementaryTypeName","src":"22935:7:91","typeDescriptions":{}}},"id":54221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22935:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54217,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"22912:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":54222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"22901:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":54224,"nodeType":"ExpressionStatement","src":"22901:53:91"},{"expression":{"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54225,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"22964:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54229,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22999:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22991:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54227,"name":"address","nodeType":"ElementaryTypeName","src":"22991:7:91","typeDescriptions":{}}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22991:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54226,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"22975:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22975:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"22964:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54233,"nodeType":"ExpressionStatement","src":"22964:46:91"},{"expression":{"id":54241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54234,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"23020:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54238,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"23057:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23049:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54236,"name":"address","nodeType":"ElementaryTypeName","src":"23049:7:91","typeDescriptions":{}}},"id":54239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23049:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54235,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"23031:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":54240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23031:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"23020:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54242,"nodeType":"ExpressionStatement","src":"23020:48:91"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"19354:17:91","parameters":{"id":53960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53943,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"19389:15:91","nodeType":"VariableDeclaration","scope":54244,"src":"19381:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53942,"name":"address","nodeType":"ElementaryTypeName","src":"19381:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53946,"mutability":"mutable","name":"_consensus","nameLocation":"19428:10:91","nodeType":"VariableDeclaration","scope":54244,"src":"19414:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53945,"nodeType":"UserDefinedTypeName","pathNode":{"id":53944,"name":"ConsensusType","nameLocations":["19414:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"19414:13:91"},"referencedDeclaration":37359,"src":"19414:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53948,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"19456:24:91","nodeType":"VariableDeclaration","scope":54244,"src":"19448:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53947,"name":"uint256","nodeType":"ElementaryTypeName","src":"19448:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53950,"mutability":"mutable","name":"_minValidators","nameLocation":"19497:14:91","nodeType":"VariableDeclaration","scope":54244,"src":"19490:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53949,"name":"uint64","nodeType":"ElementaryTypeName","src":"19490:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53952,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19528:12:91","nodeType":"VariableDeclaration","scope":54244,"src":"19521:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53951,"name":"uint64","nodeType":"ElementaryTypeName","src":"19521:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53954,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19556:19:91","nodeType":"VariableDeclaration","scope":54244,"src":"19550:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53953,"name":"uint8","nodeType":"ElementaryTypeName","src":"19550:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53957,"mutability":"mutable","name":"_permissionMode","nameLocation":"19600:15:91","nodeType":"VariableDeclaration","scope":54244,"src":"19585:30:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":53956,"nodeType":"UserDefinedTypeName","pathNode":{"id":53955,"name":"PermissionMode","nameLocations":["19585:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"19585:14:91"},"referencedDeclaration":50118,"src":"19585:14:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53959,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"19632:22:91","nodeType":"VariableDeclaration","scope":54244,"src":"19625:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53958,"name":"uint16","nodeType":"ElementaryTypeName","src":"19625:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19371:289:91"},"returnParameters":{"id":53961,"nodeType":"ParameterList","parameters":[],"src":"19668:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54337,"nodeType":"FunctionDefinition","src":"23081:997:91","nodes":[],"body":{"id":54336,"nodeType":"Block","src":"23173:905:91","nodes":[],"statements":[{"assignments":[54254],"declarations":[{"constant":false,"id":54254,"mutability":"mutable","name":"mockedManager","nameLocation":"23199:13:91","nodeType":"VariableDeclaration","scope":54336,"src":"23183:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"},"typeName":{"id":54253,"nodeType":"UserDefinedTypeName","pathNode":{"id":54252,"name":"SubnetActorMock","nameLocations":["23183:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"23183:15:91"},"referencedDeclaration":58342,"src":"23183:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"visibility":"internal"}],"id":54259,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23215:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorMock_$58342_$","typeString":"function () returns (contract SubnetActorMock)"},"typeName":{"id":54256,"nodeType":"UserDefinedTypeName","pathNode":{"id":54255,"name":"SubnetActorMock","nameLocations":["23219:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"23219:15:91"},"referencedDeclaration":58342,"src":"23219:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23215:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"nodeType":"VariableDeclarationStatement","src":"23183:53:91"},{"assignments":[54262],"declarations":[{"constant":false,"id":54262,"mutability":"mutable","name":"getter","nameLocation":"23269:6:91","nodeType":"VariableDeclaration","scope":54336,"src":"23246:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":54261,"nodeType":"UserDefinedTypeName","pathNode":{"id":54260,"name":"SubnetActorGetterFacet","nameLocations":["23246:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23246:22:91"},"referencedDeclaration":51235,"src":"23246:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":54267,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23278:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":54264,"nodeType":"UserDefinedTypeName","pathNode":{"id":54263,"name":"SubnetActorGetterFacet","nameLocations":["23282:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23282:22:91"},"referencedDeclaration":51235,"src":"23282:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":54266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23278:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"23246:60:91"},{"assignments":[54273],"declarations":[{"constant":false,"id":54273,"mutability":"mutable","name":"diamondCut","nameLocation":"23344:10:91","nodeType":"VariableDeclaration","scope":54336,"src":"23317:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54271,"nodeType":"UserDefinedTypeName","pathNode":{"id":54270,"name":"IDiamond.FacetCut","nameLocations":["23317:8:91","23326:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23317:17:91"},"referencedDeclaration":40159,"src":"23317:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54272,"nodeType":"ArrayTypeName","src":"23317:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54280,"initialValue":{"arguments":[{"hexValue":"32","id":54278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23381:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23357:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54275,"nodeType":"UserDefinedTypeName","pathNode":{"id":54274,"name":"IDiamond.FacetCut","nameLocations":["23361:8:91","23370:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23361:17:91"},"referencedDeclaration":40159,"src":"23361:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54276,"nodeType":"ArrayTypeName","src":"23361:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23357:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"23317:66:91"},{"expression":{"id":54296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54281,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"23394:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54283,"indexExpression":{"hexValue":"30","id":54282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23405:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23394:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54288,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54254,"src":"23482:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}],"id":54287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23474:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54286,"name":"address","nodeType":"ElementaryTypeName","src":"23474:7:91","typeDescriptions":{}}},"id":54289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23474:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54290,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23522:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23531:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23522:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23546:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23522:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54293,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"23586:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54284,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23424:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23433:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23424:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23460:12:91","23514:6:91","23567:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23424:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54295,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23410:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23394:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54297,"nodeType":"ExpressionStatement","src":"23394:241:91"},{"expression":{"id":54313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54298,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"23646:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54300,"indexExpression":{"hexValue":"31","id":54299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23657:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23646:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54305,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54262,"src":"23734:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23726:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54303,"name":"address","nodeType":"ElementaryTypeName","src":"23726:7:91","typeDescriptions":{}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23726:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54307,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23767:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23767:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23791:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23767:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54310,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"23831:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54301,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23676:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23685:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23676:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23712:12:91","23759:6:91","23812:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23676:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23662:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23646:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54314,"nodeType":"ExpressionStatement","src":"23646:227:91"},{"assignments":[54319],"declarations":[{"constant":false,"id":54319,"mutability":"mutable","name":"params","nameLocation":"23928:6:91","nodeType":"VariableDeclaration","scope":54336,"src":"23884:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54318,"nodeType":"UserDefinedTypeName","pathNode":{"id":54317,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["23884:18:91","23903:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"23884:36:91"},"referencedDeclaration":36253,"src":"23884:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54323,"initialValue":{"arguments":[{"id":54321,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54246,"src":"23973:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54320,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53088,"src":"23937:35:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23937:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"23884:92:91"},{"assignments":[54326],"declarations":[{"constant":false,"id":54326,"mutability":"mutable","name":"d","nameLocation":"24006:1:91","nodeType":"VariableDeclaration","scope":54336,"src":"23987:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54325,"nodeType":"UserDefinedTypeName","pathNode":{"id":54324,"name":"SubnetActorDiamond","nameLocations":["23987:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23987:18:91"},"referencedDeclaration":36615,"src":"23987:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54333,"initialValue":{"arguments":[{"id":54330,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"24033:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54331,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54319,"src":"24045:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24010:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54328,"nodeType":"UserDefinedTypeName","pathNode":{"id":54327,"name":"SubnetActorDiamond","nameLocations":["24014:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"24014:18:91"},"referencedDeclaration":36615,"src":"24014:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24010:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"23987:65:91"},{"expression":{"id":54334,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54326,"src":"24070:1:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":54251,"id":54335,"nodeType":"Return","src":"24063:8:91"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"23090:34:91","parameters":{"id":54247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54246,"mutability":"mutable","name":"gw","nameLocation":"23133:2:91","nodeType":"VariableDeclaration","scope":54337,"src":"23125:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54245,"name":"address","nodeType":"ElementaryTypeName","src":"23125:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23124:12:91"},"returnParameters":{"id":54251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54337,"src":"23153:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54249,"nodeType":"UserDefinedTypeName","pathNode":{"id":54248,"name":"SubnetActorDiamond","nameLocations":["23153:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23153:18:91"},"referencedDeclaration":36615,"src":"23153:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"23152:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54479,"nodeType":"FunctionDefinition","src":"24130:1703:91","nodes":[],"body":{"id":54478,"nodeType":"Block","src":"24268:1565:91","nodes":[],"statements":[{"assignments":[54351],"declarations":[{"constant":false,"id":54351,"mutability":"mutable","name":"diamondCut","nameLocation":"24305:10:91","nodeType":"VariableDeclaration","scope":54478,"src":"24278:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54349,"nodeType":"UserDefinedTypeName","pathNode":{"id":54348,"name":"IDiamond.FacetCut","nameLocations":["24278:8:91","24287:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24278:17:91"},"referencedDeclaration":40159,"src":"24278:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54350,"nodeType":"ArrayTypeName","src":"24278:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54358,"initialValue":{"arguments":[{"hexValue":"34","id":54356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24342:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24318:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54353,"nodeType":"UserDefinedTypeName","pathNode":{"id":54352,"name":"IDiamond.FacetCut","nameLocations":["24322:8:91","24331:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24322:17:91"},"referencedDeclaration":40159,"src":"24322:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54354,"nodeType":"ArrayTypeName","src":"24322:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24318:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24278:66:91"},{"assignments":[54361],"declarations":[{"constant":false,"id":54361,"mutability":"mutable","name":"regCutFacet","nameLocation":"24371:11:91","nodeType":"VariableDeclaration","scope":54478,"src":"24355:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54360,"nodeType":"UserDefinedTypeName","pathNode":{"id":54359,"name":"DiamondCutFacet","nameLocations":["24355:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24355:15:91"},"referencedDeclaration":36918,"src":"24355:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54366,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24385:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54363,"nodeType":"UserDefinedTypeName","pathNode":{"id":54362,"name":"DiamondCutFacet","nameLocations":["24389:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24389:15:91"},"referencedDeclaration":36918,"src":"24389:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24385:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"24355:51:91"},{"assignments":[54369],"declarations":[{"constant":false,"id":54369,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"24434:13:91","nodeType":"VariableDeclaration","scope":54478,"src":"24416:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54368,"nodeType":"UserDefinedTypeName","pathNode":{"id":54367,"name":"DiamondLoupeFacet","nameLocations":["24416:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24416:17:91"},"referencedDeclaration":37355,"src":"24416:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54374,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24450:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54371,"nodeType":"UserDefinedTypeName","pathNode":{"id":54370,"name":"DiamondLoupeFacet","nameLocations":["24454:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24454:17:91"},"referencedDeclaration":37355,"src":"24454:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24450:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"24416:57:91"},{"assignments":[54377],"declarations":[{"constant":false,"id":54377,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"24503:14:91","nodeType":"VariableDeclaration","scope":54478,"src":"24483:34:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54376,"nodeType":"UserDefinedTypeName","pathNode":{"id":54375,"name":"RegisterSubnetFacet","nameLocations":["24483:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24483:19:91"},"referencedDeclaration":52286,"src":"24483:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54382,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24520:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54379,"nodeType":"UserDefinedTypeName","pathNode":{"id":54378,"name":"RegisterSubnetFacet","nameLocations":["24524:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24524:19:91"},"referencedDeclaration":52286,"src":"24524:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}},"id":54381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24520:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"24483:62:91"},{"assignments":[54385],"declarations":[{"constant":false,"id":54385,"mutability":"mutable","name":"regGetterFacet","nameLocation":"24573:14:91","nodeType":"VariableDeclaration","scope":54478,"src":"24555:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54384,"nodeType":"UserDefinedTypeName","pathNode":{"id":54383,"name":"SubnetGetterFacet","nameLocations":["24555:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24555:17:91"},"referencedDeclaration":52524,"src":"24555:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54390,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24590:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54387,"nodeType":"UserDefinedTypeName","pathNode":{"id":54386,"name":"SubnetGetterFacet","nameLocations":["24594:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24594:17:91"},"referencedDeclaration":52524,"src":"24594:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}},"id":54389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24590:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"24555:58:91"},{"expression":{"id":54406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54391,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"24624:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54393,"indexExpression":{"hexValue":"30","id":54392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24635:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24624:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54398,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54369,"src":"24712:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24704:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54396,"name":"address","nodeType":"ElementaryTypeName","src":"24704:7:91","typeDescriptions":{}}},"id":54399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24704:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54400,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24752:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24761:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24752:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24776:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24752:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54403,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"24816:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54394,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24654:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24663:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24654:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24690:12:91","24744:6:91","24797:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24654:200:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24640:224:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24624:240:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54407,"nodeType":"ExpressionStatement","src":"24624:240:91"},{"expression":{"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54408,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"24874:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54410,"indexExpression":{"hexValue":"31","id":54409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24885:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24874:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54415,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54361,"src":"24962:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24954:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54413,"name":"address","nodeType":"ElementaryTypeName","src":"24954:7:91","typeDescriptions":{}}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24954:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54417,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25000:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25009:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25000:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25024:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25000:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54420,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"25064:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54411,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24904:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24913:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24904:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24940:12:91","24992:6:91","25045:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24904:198:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54422,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24890:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24874:238:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54424,"nodeType":"ExpressionStatement","src":"24874:238:91"},{"expression":{"id":54440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54425,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25122:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54427,"indexExpression":{"hexValue":"32","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25133:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25122:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54432,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54377,"src":"25210:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}],"id":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25202:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54430,"name":"address","nodeType":"ElementaryTypeName","src":"25202:7:91","typeDescriptions":{}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25202:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54434,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25251:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25251:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25275:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25251:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54437,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52703,"src":"25315:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54428,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25152:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25161:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25152:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25188:12:91","25243:6:91","25296:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25152:206:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25138:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25122:246:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54441,"nodeType":"ExpressionStatement","src":"25122:246:91"},{"expression":{"id":54457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54442,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25378:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54444,"indexExpression":{"hexValue":"33","id":54443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25389:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25378:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54449,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54385,"src":"25466:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}],"id":54448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25458:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54447,"name":"address","nodeType":"ElementaryTypeName","src":"25458:7:91","typeDescriptions":{}}},"id":54450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25458:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54451,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25507:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25516:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25507:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25531:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25507:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54454,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"25571:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54445,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25408:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25417:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25408:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25444:12:91","25499:6:91","25552:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25408:212:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54456,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25394:236:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25378:252:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54458,"nodeType":"ExpressionStatement","src":"25378:252:91"},{"assignments":[54461],"declarations":[{"constant":false,"id":54461,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"25663:17:91","nodeType":"VariableDeclaration","scope":54478,"src":"25641:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54460,"nodeType":"UserDefinedTypeName","pathNode":{"id":54459,"name":"SubnetRegistryDiamond","nameLocations":["25641:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25641:21:91"},"referencedDeclaration":36853,"src":"25641:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54468,"initialValue":{"arguments":[{"id":54465,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25709:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54466,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54340,"src":"25721:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"25683:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54463,"nodeType":"UserDefinedTypeName","pathNode":{"id":54462,"name":"SubnetRegistryDiamond","nameLocations":["25687:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25687:21:91"},"referencedDeclaration":36853,"src":"25687:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25683:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"25641:87:91"},{"eventCall":{"arguments":[{"arguments":[{"id":54472,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"25773:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25765:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54470,"name":"address","nodeType":"ElementaryTypeName","src":"25765:7:91","typeDescriptions":{}}},"id":54473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25765:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54469,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53123,"src":"25743:21:91","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25743:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54475,"nodeType":"EmitStatement","src":"25738:54:91"},{"expression":{"id":54476,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"25809:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54345,"id":54477,"nodeType":"Return","src":"25802:24:91"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"24139:20:91","parameters":{"id":54341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54340,"mutability":"mutable","name":"params","nameLocation":"24216:6:91","nodeType":"VariableDeclaration","scope":54479,"src":"24169:53:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54339,"nodeType":"UserDefinedTypeName","pathNode":{"id":54338,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["24169:21:91","24191:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"24169:39:91"},"referencedDeclaration":36652,"src":"24169:39:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"24159:69:91"},"returnParameters":{"id":54345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54479,"src":"24245:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54343,"nodeType":"UserDefinedTypeName","pathNode":{"id":54342,"name":"SubnetRegistryDiamond","nameLocations":["24245:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"24245:21:91"},"referencedDeclaration":36853,"src":"24245:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"24244:23:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54508,"nodeType":"FunctionDefinition","src":"25839:190:91","nodes":[],"body":{"id":54507,"nodeType":"Block","src":"25920:109:91","nodes":[],"statements":[{"body":{"id":54503,"nodeType":"Block","src":"25961:42:91","statements":[{"expression":{"id":54501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54497,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"25975:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54498,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54482,"src":"25982:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54500,"indexExpression":{"id":54499,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25990:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25982:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25975:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54502,"nodeType":"ExpressionStatement","src":"25975:17:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54491,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25949:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25953:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"25949:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54504,"initializationExpression":{"assignments":[54488],"declarations":[{"constant":false,"id":54488,"mutability":"mutable","name":"i","nameLocation":"25942:1:91","nodeType":"VariableDeclaration","scope":54504,"src":"25935:8:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54487,"name":"uint64","nodeType":"ElementaryTypeName","src":"25935:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54490,"initialValue":{"hexValue":"30","id":54489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25946:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25935:12:91"},"loopExpression":{"expression":{"id":54495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25956:3:91","subExpression":{"id":54494,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25956:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54496,"nodeType":"ExpressionStatement","src":"25956:3:91"},"nodeType":"ForStatement","src":"25930:73:91"},{"expression":{"id":54505,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"26019:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54486,"id":54506,"nodeType":"Return","src":"26012:10:91"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"25848:11:91","parameters":{"id":54483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54482,"mutability":"mutable","name":"weights","nameLocation":"25877:7:91","nodeType":"VariableDeclaration","scope":54508,"src":"25860:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54480,"name":"uint256","nodeType":"ElementaryTypeName","src":"25860:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54481,"nodeType":"ArrayTypeName","src":"25860:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25859:26:91"},"returnParameters":{"id":54486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54485,"mutability":"mutable","name":"sum","nameLocation":"25915:3:91","nodeType":"VariableDeclaration","scope":54508,"src":"25907:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54484,"name":"uint256","nodeType":"ElementaryTypeName","src":"25907:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25906:13:91"},"scope":55676,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54683,"nodeType":"FunctionDefinition","src":"26035:933:91","nodes":[],"body":{"id":54682,"nodeType":"Block","src":"26138:830:91","nodes":[],"statements":[{"expression":{"id":54525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54518,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26148:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26178:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26161:16:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54520,"nodeType":"UserDefinedTypeName","pathNode":{"id":54519,"name":"FvmAddress","nameLocations":["26165:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26165:10:91"},"referencedDeclaration":49951,"src":"26165:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54521,"nodeType":"ArrayTypeName","src":"26165:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26161:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"26148:32:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54526,"nodeType":"ExpressionStatement","src":"26148:32:91"},{"expression":{"id":54537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54527,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26190:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54529,"indexExpression":{"hexValue":"30","id":54528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26201:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26190:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26236:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54532,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26228:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26231:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26228:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26228:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54530,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26206:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26223:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26206:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26206:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26190:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54538,"nodeType":"ExpressionStatement","src":"26190:51:91"},{"expression":{"id":54549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54539,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26251:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54541,"indexExpression":{"hexValue":"31","id":54540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26262:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26251:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26297:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54544,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26289:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26292:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26289:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26289:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54542,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26267:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26284:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26267:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26267:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26251:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54550,"nodeType":"ExpressionStatement","src":"26251:51:91"},{"expression":{"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54551,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26312:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54553,"indexExpression":{"hexValue":"32","id":54552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26323:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26312:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26358:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54556,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26350:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26353:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26350:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26350:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54554,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26328:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26345:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26328:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26328:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26312:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54562,"nodeType":"ExpressionStatement","src":"26312:51:91"},{"expression":{"id":54569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54563,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26374:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26400:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26386:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54564,"name":"address","nodeType":"ElementaryTypeName","src":"26390:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54565,"nodeType":"ArrayTypeName","src":"26390:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26386:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"26374:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54570,"nodeType":"ExpressionStatement","src":"26374:28:91"},{"expression":{"id":54578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54571,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26412:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54573,"indexExpression":{"hexValue":"30","id":54572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26422:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26412:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26435:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54574,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26427:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26430:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26427:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26427:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26412:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54579,"nodeType":"ExpressionStatement","src":"26412:27:91"},{"expression":{"id":54587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54580,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26449:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54582,"indexExpression":{"hexValue":"31","id":54581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26459:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26449:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26472:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54583,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26464:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26467:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26464:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26464:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26449:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54588,"nodeType":"ExpressionStatement","src":"26449:27:91"},{"expression":{"id":54596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54589,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26486:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54591,"indexExpression":{"hexValue":"32","id":54590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26496:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26486:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26509:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54592,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26501:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26504:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26501:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26501:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26486:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54597,"nodeType":"ExpressionStatement","src":"26486:27:91"},{"assignments":[54602],"declarations":[{"constant":false,"id":54602,"mutability":"mutable","name":"weights","nameLocation":"26541:7:91","nodeType":"VariableDeclaration","scope":54682,"src":"26524:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"26524:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54601,"nodeType":"ArrayTypeName","src":"26524:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54608,"initialValue":{"arguments":[{"hexValue":"33","id":54606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26565:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26551:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54603,"name":"uint256","nodeType":"ElementaryTypeName","src":"26555:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54604,"nodeType":"ArrayTypeName","src":"26555:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26551:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"26524:43:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26594:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54612,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26586:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26589:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26586:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26586:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26600:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54609,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26578:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26581:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26578:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26578:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54618,"nodeType":"ExpressionStatement","src":"26578:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26628:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54622,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26620:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26623:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26620:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26620:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26634:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54619,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26612:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26615:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26612:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26612:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54628,"nodeType":"ExpressionStatement","src":"26612:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26662:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54632,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26654:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26657:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26654:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26654:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26668:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54629,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26646:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26649:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26646:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54638,"nodeType":"ExpressionStatement","src":"26646:24:91"},{"expression":{"id":54643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54639,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26681:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54641,"indexExpression":{"hexValue":"30","id":54640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26689:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26681:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26694:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26681:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54644,"nodeType":"ExpressionStatement","src":"26681:16:91"},{"expression":{"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54645,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26707:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54647,"indexExpression":{"hexValue":"31","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26715:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26707:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26720:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26707:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54650,"nodeType":"ExpressionStatement","src":"26707:16:91"},{"expression":{"id":54655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54651,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26733:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54653,"indexExpression":{"hexValue":"32","id":54652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26741:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26733:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26746:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26733:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54656,"nodeType":"ExpressionStatement","src":"26733:16:91"},{"assignments":[54659],"declarations":[{"constant":false,"id":54659,"mutability":"mutable","name":"finality","nameLocation":"26782:8:91","nodeType":"VariableDeclaration","scope":54682,"src":"26760:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54658,"nodeType":"UserDefinedTypeName","pathNode":{"id":54657,"name":"ParentFinality","nameLocations":["26760:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"26760:14:91"},"referencedDeclaration":49871,"src":"26760:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54668,"initialValue":{"arguments":[{"expression":{"id":54661,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26817:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26823:6:91","memberName":"number","nodeType":"MemberAccess","src":"26817:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26850:1:91","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":54664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26842:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26842:7:91","typeDescriptions":{}}},"id":54666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54660,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"26793:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["26809:6:91","26831:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"26793:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"26760:94:91"},{"expression":{"arguments":[{"expression":{"id":54672,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"26874:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26885:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"26874:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54669,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26865:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26868:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26865:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26865:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54675,"nodeType":"ExpressionStatement","src":"26865:33:91"},{"expression":{"arguments":[{"id":54679,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54659,"src":"26952:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54676,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"26908:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26931:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"26908:43:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49871_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26908:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54681,"nodeType":"ExpressionStatement","src":"26908:53:91"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"26044:15:91","parameters":{"id":54509,"nodeType":"ParameterList","parameters":[],"src":"26059:2:91"},"returnParameters":{"id":54517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54513,"mutability":"mutable","name":"validators","nameLocation":"26098:10:91","nodeType":"VariableDeclaration","scope":54683,"src":"26078:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54511,"nodeType":"UserDefinedTypeName","pathNode":{"id":54510,"name":"FvmAddress","nameLocations":["26078:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26078:10:91"},"referencedDeclaration":49951,"src":"26078:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54512,"nodeType":"ArrayTypeName","src":"26078:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54516,"mutability":"mutable","name":"addresses","nameLocation":"26127:9:91","nodeType":"VariableDeclaration","scope":54683,"src":"26110:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54514,"name":"address","nodeType":"ElementaryTypeName","src":"26110:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54515,"nodeType":"ArrayTypeName","src":"26110:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26077:60:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54776,"nodeType":"FunctionDefinition","src":"26974:1297:91","nodes":[],"body":{"id":54775,"nodeType":"Block","src":"27058:1213:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54693,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"27083:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54694,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27110:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54692,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55583,"src":"27068:14:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27068:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54696,"nodeType":"ExpressionStatement","src":"27068:46:91"},{"assignments":[54699],"declarations":[{"constant":false,"id":54699,"mutability":"mutable","name":"crossMsg","nameLocation":"27141:8:91","nodeType":"VariableDeclaration","scope":54775,"src":"27125:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54698,"nodeType":"UserDefinedTypeName","pathNode":{"id":54697,"name":"CrossMsg","nameLocations":["27125:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27125:8:91"},"referencedDeclaration":49927,"src":"27125:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54739,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54707,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54685,"src":"27304:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54703,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"27263:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27272:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27263:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27263:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27289:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27263:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27263:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54711,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54685,"src":"27367:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54709,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27345:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27362:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27345:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27345:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54702,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27220:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27253:8:91","27333:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27220:173:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54719,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27499:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54715,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"27458:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27467:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27458:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27458:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27484:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27458:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27458:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54723,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27559:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54721,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27537:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27554:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27537:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27537:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54714,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27415:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27448:8:91","27525:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27415:167:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54726,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"27607:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27631:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27607:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27657:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54730,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"27684:11:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27731:1:91","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":54732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27721:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54731,"name":"bytes","nodeType":"ElementaryTypeName","src":"27725:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27721:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54735,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"27756:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54701,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"27184:11:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27214:4:91","27411:2:91","27600:5:91","27650:5:91","27676:6:91","27713:6:91","27751:3:91"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"27184:608:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27815:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54700,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"27152:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27175:7:91","27806:7:91"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"27152:679:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"27125:706:91"},{"assignments":[54744],"declarations":[{"constant":false,"id":54744,"mutability":"mutable","name":"msgs","nameLocation":"27859:4:91","nodeType":"VariableDeclaration","scope":54775,"src":"27841:22:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54742,"nodeType":"UserDefinedTypeName","pathNode":{"id":54741,"name":"CrossMsg","nameLocations":["27841:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27841:8:91"},"referencedDeclaration":49927,"src":"27841:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54743,"nodeType":"ArrayTypeName","src":"27841:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54751,"initialValue":{"arguments":[{"hexValue":"31","id":54749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27881:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27866:14:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54746,"nodeType":"UserDefinedTypeName","pathNode":{"id":54745,"name":"CrossMsg","nameLocations":["27870:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27870:8:91"},"referencedDeclaration":49927,"src":"27870:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54747,"nodeType":"ArrayTypeName","src":"27870:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27866:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27841:42:91"},{"expression":{"id":54756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54752,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"27893:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54754,"indexExpression":{"hexValue":"30","id":54753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27898:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27893:7:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54755,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"27903:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"27893:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54757,"nodeType":"ExpressionStatement","src":"27893:18:91"},{"expression":{"arguments":[{"expression":{"id":54761,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28150:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28161:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28150:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54758,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28141:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28144:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"28141:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28141:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54764,"nodeType":"ExpressionStatement","src":"28141:33:91"},{"expression":{"arguments":[{"id":54768,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"28224:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54765,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"28184:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28205:18:91","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"28184:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28184:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54770,"nodeType":"ExpressionStatement","src":"28184:45:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54771,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"28247:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28256:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40534,"src":"28247:15:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49927_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28247:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54691,"id":54774,"nodeType":"Return","src":"28240:24:91"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"26983:20:91","parameters":{"id":54688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54685,"mutability":"mutable","name":"caller","nameLocation":"27012:6:91","nodeType":"VariableDeclaration","scope":54776,"src":"27004:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54684,"name":"address","nodeType":"ElementaryTypeName","src":"27004:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54687,"mutability":"mutable","name":"src","nameLocation":"27028:3:91","nodeType":"VariableDeclaration","scope":54776,"src":"27020:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54686,"name":"address","nodeType":"ElementaryTypeName","src":"27020:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27003:29:91"},"returnParameters":{"id":54691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54776,"src":"27049:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27049:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27048:9:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54787,"nodeType":"FunctionDefinition","src":"28277:93:91","nodes":[],"body":{"id":54786,"nodeType":"Block","src":"28325:45:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54782,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54778,"src":"28348:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28359:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54781,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54787,54870],"referencedDeclaration":54870,"src":"28335:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28335:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54785,"nodeType":"ExpressionStatement","src":"28335:28:91"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28286:12:91","parameters":{"id":54779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54778,"mutability":"mutable","name":"validator","nameLocation":"28307:9:91","nodeType":"VariableDeclaration","scope":54787,"src":"28299:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54777,"name":"address","nodeType":"ElementaryTypeName","src":"28299:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28298:19:91"},"returnParameters":{"id":54780,"nodeType":"ParameterList","parameters":[],"src":"28325:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54870,"nodeType":"FunctionDefinition","src":"28376:610:91","nodes":[],"body":{"id":54869,"nodeType":"Block","src":"28440:546:91","nodes":[],"statements":[{"assignments":[54798],"declarations":[{"constant":false,"id":54798,"mutability":"mutable","name":"validators","nameLocation":"28470:10:91","nodeType":"VariableDeclaration","scope":54869,"src":"28450:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54796,"nodeType":"UserDefinedTypeName","pathNode":{"id":54795,"name":"FvmAddress","nameLocations":["28450:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28450:10:91"},"referencedDeclaration":49951,"src":"28450:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54797,"nodeType":"ArrayTypeName","src":"28450:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54805,"initialValue":{"arguments":[{"hexValue":"31","id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28500:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28483:16:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54800,"nodeType":"UserDefinedTypeName","pathNode":{"id":54799,"name":"FvmAddress","nameLocations":["28487:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28487:10:91"},"referencedDeclaration":49951,"src":"28487:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54801,"nodeType":"ArrayTypeName","src":"28487:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28483:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28450:52:91"},{"expression":{"id":54813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54806,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54798,"src":"28512:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54808,"indexExpression":{"hexValue":"30","id":54807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28523:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28512:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54789,"src":"28550:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54809,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"28528:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28545:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"28528:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28528:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"28512:48:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54814,"nodeType":"ExpressionStatement","src":"28512:48:91"},{"assignments":[54819],"declarations":[{"constant":false,"id":54819,"mutability":"mutable","name":"weights","nameLocation":"28587:7:91","nodeType":"VariableDeclaration","scope":54869,"src":"28570:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54817,"name":"uint256","nodeType":"ElementaryTypeName","src":"28570:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54818,"nodeType":"ArrayTypeName","src":"28570:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54825,"initialValue":{"arguments":[{"hexValue":"31","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28611:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28597:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54820,"name":"uint256","nodeType":"ElementaryTypeName","src":"28601:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54821,"nodeType":"ArrayTypeName","src":"28601:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28597:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28570:43:91"},{"expression":{"id":54830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54826,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54819,"src":"28623:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54828,"indexExpression":{"hexValue":"30","id":54827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28631:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28623:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54829,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54791,"src":"28636:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28623:19:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54831,"nodeType":"ExpressionStatement","src":"28623:19:91"},{"expression":{"arguments":[{"id":54835,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54789,"src":"28661:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28672:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54832,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28653:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28656:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28653:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28653:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54838,"nodeType":"ExpressionStatement","src":"28653:21:91"},{"assignments":[54841],"declarations":[{"constant":false,"id":54841,"mutability":"mutable","name":"finality","nameLocation":"28706:8:91","nodeType":"VariableDeclaration","scope":54869,"src":"28684:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54840,"nodeType":"UserDefinedTypeName","pathNode":{"id":54839,"name":"ParentFinality","nameLocations":["28684:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"28684:14:91"},"referencedDeclaration":49871,"src":"28684:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54850,"initialValue":{"arguments":[{"expression":{"id":54843,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28741:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28747:6:91","memberName":"number","nodeType":"MemberAccess","src":"28741:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28774:1:91","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":54846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28766:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28766:7:91","typeDescriptions":{}}},"id":54848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28766:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54842,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"28717:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28733:6:91","28755:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"28717:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"28684:94:91"},{"expression":{"arguments":[{"expression":{"id":54854,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28868:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28879:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28868:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54851,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28854:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28857:10:91","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"28854:13:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28854:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54857,"nodeType":"ExpressionStatement","src":"28854:38:91"},{"expression":{"arguments":[{"id":54861,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54841,"src":"28946:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54858,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"28902:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28925:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"28902:43:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49871_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28902:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54863,"nodeType":"ExpressionStatement","src":"28902:53:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54864,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28965:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28968:9:91","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"28965:12:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28965:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54868,"nodeType":"ExpressionStatement","src":"28965:14:91"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28385:12:91","parameters":{"id":54792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54789,"mutability":"mutable","name":"validator","nameLocation":"28406:9:91","nodeType":"VariableDeclaration","scope":54870,"src":"28398:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54788,"name":"address","nodeType":"ElementaryTypeName","src":"28398:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54791,"mutability":"mutable","name":"weight","nameLocation":"28425:6:91","nodeType":"VariableDeclaration","scope":54870,"src":"28417:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54790,"name":"uint256","nodeType":"ElementaryTypeName","src":"28417:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28397:35:91"},"returnParameters":{"id":54793,"nodeType":"ParameterList","parameters":[],"src":"28440:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54883,"nodeType":"FunctionDefinition","src":"28992:112:91","nodes":[],"body":{"id":54882,"nodeType":"Block","src":"29036:68:91","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29058:30:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54879,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54872,"src":"29090:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54875,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"29046:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29054:3:91","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"29046:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29046:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54881,"nodeType":"ExpressionStatement","src":"29046:51:91"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"29001:6:91","parameters":{"id":54873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54872,"mutability":"mutable","name":"amount","nameLocation":"29016:6:91","nodeType":"VariableDeclaration","scope":54883,"src":"29008:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54871,"name":"uint256","nodeType":"ElementaryTypeName","src":"29008:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29007:16:91"},"returnParameters":{"id":54874,"nodeType":"ParameterList","parameters":[],"src":"29036:0:91"},"scope":55676,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54898,"nodeType":"FunctionDefinition","src":"29110:131:91","nodes":[],"body":{"id":54897,"nodeType":"Block","src":"29174:67:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54891,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54885,"src":"29189:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54892,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54887,"src":"29204:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54893,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29216:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29227:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29216:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}],"id":54890,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54898,55023],"referencedDeclaration":55023,"src":"29184:4:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50182_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29184:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54896,"nodeType":"ExpressionStatement","src":"29184:50:91"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29119:4:91","parameters":{"id":54888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54885,"mutability":"mutable","name":"funderAddress","nameLocation":"29132:13:91","nodeType":"VariableDeclaration","scope":54898,"src":"29124:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54884,"name":"address","nodeType":"ElementaryTypeName","src":"29124:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54887,"mutability":"mutable","name":"fundAmount","nameLocation":"29155:10:91","nodeType":"VariableDeclaration","scope":54898,"src":"29147:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54886,"name":"uint256","nodeType":"ElementaryTypeName","src":"29147:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29123:43:91"},"returnParameters":{"id":54889,"nodeType":"ParameterList","parameters":[],"src":"29174:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55023,"nodeType":"FunctionDefinition","src":"29247:1180:91","nodes":[],"body":{"id":55022,"nodeType":"Block","src":"29328:1099:91","nodes":[],"statements":[{"assignments":[54910,null,54912,null,54914],"declarations":[{"constant":false,"id":54910,"mutability":"mutable","name":"subnetId","nameLocation":"29420:8:91","nodeType":"VariableDeclaration","scope":55022,"src":"29404:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54909,"nodeType":"UserDefinedTypeName","pathNode":{"id":54908,"name":"SubnetID","nameLocations":["29404:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"29404:8:91"},"referencedDeclaration":50030,"src":"29404:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54912,"mutability":"mutable","name":"nonceBefore","nameLocation":"29440:11:91","nodeType":"VariableDeclaration","scope":55022,"src":"29432:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54911,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54914,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"29463:16:91","nodeType":"VariableDeclaration","scope":55022,"src":"29455:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54913,"name":"uint256","nodeType":"ElementaryTypeName","src":"29455:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54921,"initialValue":{"arguments":[{"arguments":[{"id":54918,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"29501:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29493:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54916,"name":"address","nodeType":"ElementaryTypeName","src":"29493:7:91","typeDescriptions":{}}},"id":54919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54915,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"29483:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29483:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29403:109:91"},{"assignments":[54923],"declarations":[{"constant":false,"id":54923,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"29531:25:91","nodeType":"VariableDeclaration","scope":55022,"src":"29523:33:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54922,"name":"uint256","nodeType":"ElementaryTypeName","src":"29523:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54930,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54926,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"29595:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54924,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"29559:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29568:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"29559:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29559:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29607:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29559:49:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29523:85:91"},{"assignments":[54932],"declarations":[{"constant":false,"id":54932,"mutability":"mutable","name":"expectedNonce","nameLocation":"29626:13:91","nodeType":"VariableDeclaration","scope":55022,"src":"29618:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54931,"name":"uint256","nodeType":"ElementaryTypeName","src":"29618:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54936,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54933,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54912,"src":"29642:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29656:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29642:15:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29618:39:91"},{"assignments":[54938],"declarations":[{"constant":false,"id":54938,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"29675:18:91","nodeType":"VariableDeclaration","scope":55022,"src":"29667:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54937,"name":"uint256","nodeType":"ElementaryTypeName","src":"29667:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54942,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54939,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54914,"src":"29696:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54940,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"29715:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29696:29:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29667:58:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54944,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"29744:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29753:11:91","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"29744:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29744:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29769:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29744:26:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29772:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29736:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29736:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54951,"nodeType":"ExpressionStatement","src":"29736:55:91"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54952,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54905,"src":"29806:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54953,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29814:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29825:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29814:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29806:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54969,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54905,"src":"29949:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54970,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29957:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29968:5:91","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"29957:16:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29949:24:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54985,"nodeType":"IfStatement","src":"29945:138:91","trueBody":{"id":54984,"nodeType":"Block","src":"29975:108:91","statements":[{"expression":{"arguments":[{"id":54976,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"30013:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54979,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54900,"src":"30045:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54977,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"30023:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30040:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"30023:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30023:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54981,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"30061:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54973,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"29989:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29999:13:91","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"29989:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29989:83:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54983,"nodeType":"ExpressionStatement","src":"29989:83:91"}]}},"id":54986,"nodeType":"IfStatement","src":"29802:281:91","trueBody":{"id":54968,"nodeType":"Block","src":"29833:106:91","statements":[{"expression":{"arguments":[{"id":54961,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"29881:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54964,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54900,"src":"29913:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54962,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29891:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29908:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29891:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29891:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54956,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"29847:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29857:4:91","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"29847:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54959,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"29869:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29847:33:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29847:81:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54967,"nodeType":"ExpressionStatement","src":"29847:81:91"}]}},{"assignments":[null,null,54988,null,54990],"declarations":[null,null,{"constant":false,"id":54988,"mutability":"mutable","name":"nonce","nameLocation":"30106:5:91","nodeType":"VariableDeclaration","scope":55022,"src":"30098:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54987,"name":"uint256","nodeType":"ElementaryTypeName","src":"30098:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54990,"mutability":"mutable","name":"circSupply","nameLocation":"30123:10:91","nodeType":"VariableDeclaration","scope":55022,"src":"30115:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54989,"name":"uint256","nodeType":"ElementaryTypeName","src":"30115:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54997,"initialValue":{"arguments":[{"arguments":[{"id":54994,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"30155:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30147:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54992,"name":"address","nodeType":"ElementaryTypeName","src":"30147:7:91","typeDescriptions":{}}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30147:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54991,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"30137:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30137:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30093:73:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55001,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"30221:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54999,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"30185:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30194:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"30185:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30185:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55003,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54923,"src":"30234:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30185:74:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":55005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30261:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54998,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30177:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30177:105:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55007,"nodeType":"ExpressionStatement","src":"30177:105:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55009,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54988,"src":"30301:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55010,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54932,"src":"30310:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30301:22:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30325:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55008,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30293:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30293:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55014,"nodeType":"ExpressionStatement","src":"30293:51:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55016,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54990,"src":"30362:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55017,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54938,"src":"30376:18:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30362:32:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30396:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55015,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30354:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30354:66:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55021,"nodeType":"ExpressionStatement","src":"30354:66:91"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29256:4:91","parameters":{"id":54906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54900,"mutability":"mutable","name":"funderAddress","nameLocation":"29269:13:91","nodeType":"VariableDeclaration","scope":55023,"src":"29261:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54899,"name":"address","nodeType":"ElementaryTypeName","src":"29261:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54902,"mutability":"mutable","name":"fundAmount","nameLocation":"29292:10:91","nodeType":"VariableDeclaration","scope":55023,"src":"29284:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54901,"name":"uint256","nodeType":"ElementaryTypeName","src":"29284:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54905,"mutability":"mutable","name":"mode","nameLocation":"29315:4:91","nodeType":"VariableDeclaration","scope":55023,"src":"29304:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":54904,"nodeType":"UserDefinedTypeName","pathNode":{"id":54903,"name":"SupplyKind","nameLocations":["29304:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"29304:10:91"},"referencedDeclaration":50182,"src":"29304:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"29260:60:91"},"returnParameters":{"id":54907,"nodeType":"ParameterList","parameters":[],"src":"29328:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55054,"nodeType":"FunctionDefinition","src":"30433:243:91","nodes":[],"body":{"id":55053,"nodeType":"Block","src":"30501:175:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55033,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55025,"src":"30520:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55030,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30511:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30514:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"30511:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30511:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55035,"nodeType":"ExpressionStatement","src":"30511:26:91"},{"expression":{"arguments":[{"id":55039,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55025,"src":"30555:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":55040,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"30573:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30601:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30573:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":55036,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30547:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30550:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"30547:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30547:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55044,"nodeType":"ExpressionStatement","src":"30547:56:91"},{"expression":{"arguments":[{"id":55050,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55027,"src":"30662:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":55045,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"30613:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":55047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30623:4:91","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"30613:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55048,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"30635:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"30613:48:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":55051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30613:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55052,"nodeType":"ExpressionStatement","src":"30613:56:91"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"30442:4:91","parameters":{"id":55028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55025,"mutability":"mutable","name":"validatorAddress","nameLocation":"30455:16:91","nodeType":"VariableDeclaration","scope":55054,"src":"30447:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55024,"name":"address","nodeType":"ElementaryTypeName","src":"30447:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55027,"mutability":"mutable","name":"pubkey","nameLocation":"30486:6:91","nodeType":"VariableDeclaration","scope":55054,"src":"30473:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55026,"name":"bytes","nodeType":"ElementaryTypeName","src":"30473:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30446:47:91"},"returnParameters":{"id":55029,"nodeType":"ParameterList","parameters":[],"src":"30501:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55101,"nodeType":"FunctionDefinition","src":"30682:298:91","nodes":[],"body":{"id":55100,"nodeType":"Block","src":"30750:230:91","nodes":[],"statements":[{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"validators","nameLocation":"30777:10:91","nodeType":"VariableDeclaration","scope":55100,"src":"30760:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55063,"name":"address","nodeType":"ElementaryTypeName","src":"30760:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55064,"nodeType":"ArrayTypeName","src":"30760:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55071,"initialValue":{"arguments":[{"hexValue":"31","id":55069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30804:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":55068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30790:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55066,"name":"address","nodeType":"ElementaryTypeName","src":"30794:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55067,"nodeType":"ArrayTypeName","src":"30794:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30790:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30760:46:91"},{"expression":{"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55072,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"30816:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55074,"indexExpression":{"hexValue":"30","id":55073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30827:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30816:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55075,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55056,"src":"30832:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30816:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55077,"nodeType":"ExpressionStatement","src":"30816:25:91"},{"assignments":[55082],"declarations":[{"constant":false,"id":55082,"mutability":"mutable","name":"privKeys","nameLocation":"30869:8:91","nodeType":"VariableDeclaration","scope":55100,"src":"30852:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55080,"name":"uint256","nodeType":"ElementaryTypeName","src":"30852:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55081,"nodeType":"ArrayTypeName","src":"30852:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55088,"initialValue":{"arguments":[{"hexValue":"31","id":55086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30894:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":55085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30880:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55083,"name":"uint256","nodeType":"ElementaryTypeName","src":"30884:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55084,"nodeType":"ArrayTypeName","src":"30884:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30880:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30852:44:91"},{"expression":{"id":55093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55089,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55082,"src":"30906:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55091,"indexExpression":{"hexValue":"30","id":55090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30915:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30906:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55092,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55058,"src":"30920:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30906:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55094,"nodeType":"ExpressionStatement","src":"30906:21:91"},{"expression":{"arguments":[{"id":55096,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"30952:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55097,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55082,"src":"30964:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55095,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"30938:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30938:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55099,"nodeType":"ExpressionStatement","src":"30938:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30691:13:91","parameters":{"id":55059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55056,"mutability":"mutable","name":"validator","nameLocation":"30713:9:91","nodeType":"VariableDeclaration","scope":55101,"src":"30705:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55055,"name":"address","nodeType":"ElementaryTypeName","src":"30705:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55058,"mutability":"mutable","name":"privKey","nameLocation":"30732:7:91","nodeType":"VariableDeclaration","scope":55101,"src":"30724:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55057,"name":"uint256","nodeType":"ElementaryTypeName","src":"30724:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30704:36:91"},"returnParameters":{"id":55060,"nodeType":"ParameterList","parameters":[],"src":"30750:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55164,"nodeType":"FunctionDefinition","src":"30986:408:91","nodes":[],"body":{"id":55163,"nodeType":"Block","src":"31094:300:91","nodes":[],"statements":[{"assignments":[55116],"declarations":[{"constant":false,"id":55116,"mutability":"mutable","name":"validators","nameLocation":"31121:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"31104:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55114,"name":"address","nodeType":"ElementaryTypeName","src":"31104:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55115,"nodeType":"ArrayTypeName","src":"31104:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55122,"initialValue":{"arguments":[{"hexValue":"32","id":55120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31148:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":55119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31134:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55117,"name":"address","nodeType":"ElementaryTypeName","src":"31138:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55118,"nodeType":"ArrayTypeName","src":"31138:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31134:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31104:46:91"},{"expression":{"id":55127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55123,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31160:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55125,"indexExpression":{"hexValue":"30","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31171:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31160:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55126,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55103,"src":"31176:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31160:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55128,"nodeType":"ExpressionStatement","src":"31160:26:91"},{"expression":{"id":55133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55129,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31196:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55131,"indexExpression":{"hexValue":"31","id":55130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31207:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31196:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55132,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55107,"src":"31212:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31196:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55134,"nodeType":"ExpressionStatement","src":"31196:26:91"},{"assignments":[55139],"declarations":[{"constant":false,"id":55139,"mutability":"mutable","name":"privKeys","nameLocation":"31250:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"31233:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55137,"name":"uint256","nodeType":"ElementaryTypeName","src":"31233:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55138,"nodeType":"ArrayTypeName","src":"31233:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55145,"initialValue":{"arguments":[{"hexValue":"32","id":55143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31275:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":55142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31261:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"31265:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55141,"nodeType":"ArrayTypeName","src":"31265:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31261:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31233:44:91"},{"expression":{"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55146,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31287:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55148,"indexExpression":{"hexValue":"30","id":55147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31296:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31287:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55149,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55105,"src":"31301:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31287:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55151,"nodeType":"ExpressionStatement","src":"31287:22:91"},{"expression":{"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55152,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31319:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55154,"indexExpression":{"hexValue":"31","id":55153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31328:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31319:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55155,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55109,"src":"31333:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31319:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55157,"nodeType":"ExpressionStatement","src":"31319:22:91"},{"expression":{"arguments":[{"id":55159,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31366:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55160,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31378:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55158,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"31352:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31352:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55162,"nodeType":"ExpressionStatement","src":"31352:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30995:13:91","parameters":{"id":55110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55103,"mutability":"mutable","name":"validator1","nameLocation":"31017:10:91","nodeType":"VariableDeclaration","scope":55164,"src":"31009:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55102,"name":"address","nodeType":"ElementaryTypeName","src":"31009:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55105,"mutability":"mutable","name":"privKey1","nameLocation":"31037:8:91","nodeType":"VariableDeclaration","scope":55164,"src":"31029:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55104,"name":"uint256","nodeType":"ElementaryTypeName","src":"31029:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55107,"mutability":"mutable","name":"validator2","nameLocation":"31055:10:91","nodeType":"VariableDeclaration","scope":55164,"src":"31047:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55106,"name":"address","nodeType":"ElementaryTypeName","src":"31047:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55109,"mutability":"mutable","name":"privKey2","nameLocation":"31075:8:91","nodeType":"VariableDeclaration","scope":55164,"src":"31067:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55108,"name":"uint256","nodeType":"ElementaryTypeName","src":"31067:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31008:76:91"},"returnParameters":{"id":55111,"nodeType":"ParameterList","parameters":[],"src":"31094:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55243,"nodeType":"FunctionDefinition","src":"31400:568:91","nodes":[],"body":{"id":55242,"nodeType":"Block","src":"31600:368:91","nodes":[],"statements":[{"assignments":[55183],"declarations":[{"constant":false,"id":55183,"mutability":"mutable","name":"validators","nameLocation":"31627:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31610:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55181,"name":"address","nodeType":"ElementaryTypeName","src":"31610:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55182,"nodeType":"ArrayTypeName","src":"31610:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55189,"initialValue":{"arguments":[{"hexValue":"33","id":55187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31654:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":55186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31640:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55184,"name":"address","nodeType":"ElementaryTypeName","src":"31644:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55185,"nodeType":"ArrayTypeName","src":"31644:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31640:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31610:46:91"},{"expression":{"id":55194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55190,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31666:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55192,"indexExpression":{"hexValue":"30","id":55191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31677:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31666:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55193,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55166,"src":"31682:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31666:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55195,"nodeType":"ExpressionStatement","src":"31666:26:91"},{"expression":{"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55196,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31702:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55198,"indexExpression":{"hexValue":"31","id":55197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31713:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31702:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55199,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55170,"src":"31718:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31702:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55201,"nodeType":"ExpressionStatement","src":"31702:26:91"},{"expression":{"id":55206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55202,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31738:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55204,"indexExpression":{"hexValue":"32","id":55203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31749:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31738:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55205,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55174,"src":"31754:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31738:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55207,"nodeType":"ExpressionStatement","src":"31738:26:91"},{"assignments":[55212],"declarations":[{"constant":false,"id":55212,"mutability":"mutable","name":"privKeys","nameLocation":"31792:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31775:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55210,"name":"uint256","nodeType":"ElementaryTypeName","src":"31775:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55211,"nodeType":"ArrayTypeName","src":"31775:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55218,"initialValue":{"arguments":[{"hexValue":"33","id":55216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31817:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":55215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31803:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55213,"name":"uint256","nodeType":"ElementaryTypeName","src":"31807:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55214,"nodeType":"ArrayTypeName","src":"31807:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31803:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31775:44:91"},{"expression":{"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55219,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31829:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55221,"indexExpression":{"hexValue":"30","id":55220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31838:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31829:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55222,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"31843:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31829:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55224,"nodeType":"ExpressionStatement","src":"31829:22:91"},{"expression":{"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55225,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31861:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55227,"indexExpression":{"hexValue":"31","id":55226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31870:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31861:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55228,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55172,"src":"31875:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31861:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55230,"nodeType":"ExpressionStatement","src":"31861:22:91"},{"expression":{"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55231,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31893:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55233,"indexExpression":{"hexValue":"32","id":55232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31902:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31893:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55234,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55176,"src":"31907:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31893:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55236,"nodeType":"ExpressionStatement","src":"31893:22:91"},{"expression":{"arguments":[{"id":55238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31940:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55239,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31952:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55237,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"31926:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31926:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55241,"nodeType":"ExpressionStatement","src":"31926:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31409:13:91","parameters":{"id":55177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55166,"mutability":"mutable","name":"validator1","nameLocation":"31440:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31432:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55165,"name":"address","nodeType":"ElementaryTypeName","src":"31432:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55168,"mutability":"mutable","name":"privKey1","nameLocation":"31468:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31460:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55167,"name":"uint256","nodeType":"ElementaryTypeName","src":"31460:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55170,"mutability":"mutable","name":"validator2","nameLocation":"31494:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31486:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55169,"name":"address","nodeType":"ElementaryTypeName","src":"31486:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55172,"mutability":"mutable","name":"privKey2","nameLocation":"31522:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31514:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55171,"name":"uint256","nodeType":"ElementaryTypeName","src":"31514:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55174,"mutability":"mutable","name":"validator3","nameLocation":"31548:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31540:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55173,"name":"address","nodeType":"ElementaryTypeName","src":"31540:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55176,"mutability":"mutable","name":"privKey3","nameLocation":"31576:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31568:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55175,"name":"uint256","nodeType":"ElementaryTypeName","src":"31568:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31422:168:91"},"returnParameters":{"id":55178,"nodeType":"ParameterList","parameters":[],"src":"31600:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55394,"nodeType":"FunctionDefinition","src":"31974:1107:91","nodes":[],"body":{"id":55393,"nodeType":"Block","src":"32062:1019:91","nodes":[],"statements":[{"assignments":[55253],"declarations":[{"constant":false,"id":55253,"mutability":"mutable","name":"n","nameLocation":"32080:1:91","nodeType":"VariableDeclaration","scope":55393,"src":"32072:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55252,"name":"uint256","nodeType":"ElementaryTypeName","src":"32072:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55256,"initialValue":{"expression":{"id":55254,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"32084:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32095:6:91","memberName":"length","nodeType":"MemberAccess","src":"32084:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32072:29:91"},{"assignments":[55261],"declarations":[{"constant":false,"id":55261,"mutability":"mutable","name":"signatures","nameLocation":"32127:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"32112:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55259,"name":"bytes","nodeType":"ElementaryTypeName","src":"32112:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55260,"nodeType":"ArrayTypeName","src":"32112:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":55267,"initialValue":{"arguments":[{"id":55265,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32152:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"32140:11:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":55262,"name":"bytes","nodeType":"ElementaryTypeName","src":"32144:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55263,"nodeType":"ArrayTypeName","src":"32144:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":55266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32140:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"32112:42:91"},{"assignments":[55269,null],"declarations":[{"constant":false,"id":55269,"mutability":"mutable","name":"nextConfigNum","nameLocation":"32173:13:91","nodeType":"VariableDeclaration","scope":55393,"src":"32166:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55268,"name":"uint64","nodeType":"ElementaryTypeName","src":"32166:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":55273,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55270,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32192:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32201:23:91","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50697,"src":"32192:32:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":55272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32192:34:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"32165:61:91"},{"assignments":[55275],"declarations":[{"constant":false,"id":55275,"mutability":"mutable","name":"h","nameLocation":"32245:1:91","nodeType":"VariableDeclaration","scope":55393,"src":"32237:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55274,"name":"uint256","nodeType":"ElementaryTypeName","src":"32237:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55283,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55276,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32249:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32258:28:91","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50825,"src":"32249:37:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32249:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55279,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32291:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32300:19:91","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50805,"src":"32291:28:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32291:30:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32249:72:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32237:84:91"},{"assignments":[55286],"declarations":[{"constant":false,"id":55286,"mutability":"mutable","name":"checkpoint","nameLocation":"32358:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"32332:36:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":55285,"nodeType":"UserDefinedTypeName","pathNode":{"id":55284,"name":"BottomUpCheckpoint","nameLocations":["32332:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"32332:18:91"},"referencedDeclaration":49885,"src":"32332:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55308,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":55294,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"32458:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32450:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55292,"name":"address","nodeType":"ElementaryTypeName","src":"32450:7:91","typeDescriptions":{}}},"id":55295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32450:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55288,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32414:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32423:9:91","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50627,"src":"32414:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32414:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32435:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"32414:35:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32414:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55297,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"32496:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55301,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"32543:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32532:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32536:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32532:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32532:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55298,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32522:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32522:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55304,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55269,"src":"32585:13:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32601:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32585:17:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55287,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"32371:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32404:8:91","32483:11:91","32511:9:91","32560:23:91"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"32371:242:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"32332:281:91"},{"expression":{"arguments":[{"arguments":[{"id":55314,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"32640:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32632:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"32632:7:91","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32632:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32652:9:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55309,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32624:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32627:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"32624:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32624:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55318,"nodeType":"ExpressionStatement","src":"32624:38:91"},{"assignments":[55320],"declarations":[{"constant":false,"id":55320,"mutability":"mutable","name":"hash","nameLocation":"32681:4:91","nodeType":"VariableDeclaration","scope":55393,"src":"32673:12:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32673:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55327,"initialValue":{"arguments":[{"arguments":[{"id":55324,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"32709:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55322,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32698:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32702:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32698:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32698:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55321,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32688:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32688:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32673:48:91"},{"body":{"id":55363,"nodeType":"Block","src":"32764:140:91","statements":[{"assignments":[55339,55341,55343],"declarations":[{"constant":false,"id":55339,"mutability":"mutable","name":"v","nameLocation":"32785:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32779:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55338,"name":"uint8","nodeType":"ElementaryTypeName","src":"32779:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55341,"mutability":"mutable","name":"r","nameLocation":"32796:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32788:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32788:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55343,"mutability":"mutable","name":"s","nameLocation":"32807:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32799:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32799:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55351,"initialValue":{"arguments":[{"baseExpression":{"id":55346,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"32820:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55348,"indexExpression":{"id":55347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32829:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32820:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55349,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55320,"src":"32833:4:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55344,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32812:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32815:4:91","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"32812:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32812:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"32778:60:91"},{"expression":{"id":55361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55352,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55261,"src":"32852:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55354,"indexExpression":{"id":55353,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32863:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32852:13:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55357,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55341,"src":"32885:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55358,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55343,"src":"32888:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55359,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55339,"src":"32891:1:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32868:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32872:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"32868:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32868:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"32852:41:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55362,"nodeType":"ExpressionStatement","src":"32852:41:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55332,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32752:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55333,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32756:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32752:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55364,"initializationExpression":{"assignments":[55329],"declarations":[{"constant":false,"id":55329,"mutability":"mutable","name":"i","nameLocation":"32745:1:91","nodeType":"VariableDeclaration","scope":55364,"src":"32737:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55328,"name":"uint256","nodeType":"ElementaryTypeName","src":"32737:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55331,"initialValue":{"hexValue":"30","id":55330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32749:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32737:13:91"},"loopExpression":{"expression":{"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32759:3:91","subExpression":{"id":55335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32759:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55337,"nodeType":"ExpressionStatement","src":"32759:3:91"},"nodeType":"ForStatement","src":"32732:172:91"},{"body":{"id":55391,"nodeType":"Block","src":"32946:129:91","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55378,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"32969:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55380,"indexExpression":{"id":55379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32980:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32969:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55375,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32960:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32963:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"32960:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32960:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55382,"nodeType":"ExpressionStatement","src":"32960:23:91"},{"expression":{"arguments":[{"id":55386,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"33029:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55387,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"33041:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55388,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55261,"src":"33053:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55383,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"32997:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":55385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33012:16:91","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":50370,"src":"32997:31:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32997:67:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55390,"nodeType":"ExpressionStatement","src":"32997:67:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32934:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55370,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32938:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32934:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55392,"initializationExpression":{"assignments":[55366],"declarations":[{"constant":false,"id":55366,"mutability":"mutable","name":"i","nameLocation":"32927:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32919:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"32919:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55368,"initialValue":{"hexValue":"30","id":55367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32931:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32919:13:91"},"loopExpression":{"expression":{"id":55373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32941:3:91","subExpression":{"id":55372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32941:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55374,"nodeType":"ExpressionStatement","src":"32941:3:91"},"nodeType":"ForStatement","src":"32914:161:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31983:13:91","parameters":{"id":55250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55246,"mutability":"mutable","name":"validators","nameLocation":"32014:10:91","nodeType":"VariableDeclaration","scope":55394,"src":"31997:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55244,"name":"address","nodeType":"ElementaryTypeName","src":"31997:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55245,"nodeType":"ArrayTypeName","src":"31997:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55249,"mutability":"mutable","name":"privKeys","nameLocation":"32043:8:91","nodeType":"VariableDeclaration","scope":55394,"src":"32026:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55247,"name":"uint256","nodeType":"ElementaryTypeName","src":"32026:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55248,"nodeType":"ArrayTypeName","src":"32026:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"31996:56:91"},"returnParameters":{"id":55251,"nodeType":"ParameterList","parameters":[],"src":"32062:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55429,"nodeType":"FunctionDefinition","src":"33087:305:91","nodes":[],"body":{"id":55428,"nodeType":"Block","src":"33134:258:91","nodes":[],"statements":[{"assignments":[55400],"declarations":[{"constant":false,"id":55400,"mutability":"mutable","name":"expectedNonce","nameLocation":"33152:13:91","nodeType":"VariableDeclaration","scope":55428,"src":"33144:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55399,"name":"uint256","nodeType":"ElementaryTypeName","src":"33144:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55406,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55401,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"33168:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33177:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33168:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33168:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33195:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33168:28:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"33144:52:91"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55414,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33268:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33272:6:91","memberName":"sender","nodeType":"MemberAccess","src":"33268:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55412,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"33246:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":55413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33263:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"33246:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33246:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55407,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"33206:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33216:7:91","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"33206:17:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55410,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55396,"src":"33231:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33206:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33206:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55418,"nodeType":"ExpressionStatement","src":"33206:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55420,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"33298:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33307:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33298:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33298:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55423,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55400,"src":"33326:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33298:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33341:43:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55419,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33290:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33290:95:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55427,"nodeType":"ExpressionStatement","src":"33290:95:91"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"33096:7:91","parameters":{"id":55397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55396,"mutability":"mutable","name":"releaseAmount","nameLocation":"33112:13:91","nodeType":"VariableDeclaration","scope":55429,"src":"33104:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55395,"name":"uint256","nodeType":"ElementaryTypeName","src":"33104:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33103:23:91"},"returnParameters":{"id":55398,"nodeType":"ParameterList","parameters":[],"src":"33134:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55484,"nodeType":"FunctionDefinition","src":"33398:536:91","nodes":[],"body":{"id":55483,"nodeType":"Block","src":"33467:467:91","nodes":[],"statements":[{"assignments":[55437],"declarations":[{"constant":false,"id":55437,"mutability":"mutable","name":"balanceBefore","nameLocation":"33485:13:91","nodeType":"VariableDeclaration","scope":55483,"src":"33477:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55436,"name":"uint256","nodeType":"ElementaryTypeName","src":"33477:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55440,"initialValue":{"expression":{"id":55438,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33501:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33515:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33501:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33477:45:91"},{"assignments":[null,55442,null,null,null],"declarations":[null,{"constant":false,"id":55442,"mutability":"mutable","name":"stakedBefore","nameLocation":"33544:12:91","nodeType":"VariableDeclaration","scope":55483,"src":"33536:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55441,"name":"uint256","nodeType":"ElementaryTypeName","src":"33536:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55446,"initialValue":{"arguments":[{"id":55444,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33576:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55443,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"33566:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33566:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"33533:57:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55447,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"33601:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33611:8:91","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"33601:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55450,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33627:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33601:38:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33601:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55453,"nodeType":"ExpressionStatement","src":"33601:40:91"},{"assignments":[55455],"declarations":[{"constant":false,"id":55455,"mutability":"mutable","name":"balanceAfter","nameLocation":"33660:12:91","nodeType":"VariableDeclaration","scope":55483,"src":"33652:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55454,"name":"uint256","nodeType":"ElementaryTypeName","src":"33652:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55458,"initialValue":{"expression":{"id":55456,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33675:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33689:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33675:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33652:44:91"},{"assignments":[null,55460,null,null,null],"declarations":[null,{"constant":false,"id":55460,"mutability":"mutable","name":"stakedAfter","nameLocation":"33717:11:91","nodeType":"VariableDeclaration","scope":55483,"src":"33709:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55459,"name":"uint256","nodeType":"ElementaryTypeName","src":"33709:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55464,"initialValue":{"arguments":[{"id":55462,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33748:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55461,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"33738:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33738:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"33706:56:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55466,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55455,"src":"33781:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55467,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55437,"src":"33797:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55468,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33813:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:27:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33781:43:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33826:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33773:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33773:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55473,"nodeType":"ExpressionStatement","src":"33773:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55475,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55460,"src":"33865:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55476,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55442,"src":"33880:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55477,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33895:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33880:26:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33865:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33908:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55474,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33857:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33857:70:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55482,"nodeType":"ExpressionStatement","src":"33857:70:91"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"33407:8:91","parameters":{"id":55434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55431,"mutability":"mutable","name":"stakeAmount","nameLocation":"33424:11:91","nodeType":"VariableDeclaration","scope":55484,"src":"33416:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55430,"name":"uint256","nodeType":"ElementaryTypeName","src":"33416:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55433,"mutability":"mutable","name":"subnetAddress","nameLocation":"33445:13:91","nodeType":"VariableDeclaration","scope":55484,"src":"33437:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55432,"name":"address","nodeType":"ElementaryTypeName","src":"33437:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33415:44:91"},"returnParameters":{"id":55435,"nodeType":"ParameterList","parameters":[],"src":"33467:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55569,"nodeType":"FunctionDefinition","src":"33940:813:91","nodes":[],"body":{"id":55568,"nodeType":"Block","src":"34035:718:91","nodes":[],"statements":[{"assignments":[55496],"declarations":[{"constant":false,"id":55496,"mutability":"mutable","name":"manager","nameLocation":"34065:7:91","nodeType":"VariableDeclaration","scope":55568,"src":"34045:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55495,"nodeType":"UserDefinedTypeName","pathNode":{"id":55494,"name":"GatewayManagerFacet","nameLocations":["34045:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"34045:19:91"},"referencedDeclaration":38870,"src":"34045:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55503,"initialValue":{"arguments":[{"arguments":[{"id":55500,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55491,"src":"34103:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34095:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55498,"name":"address","nodeType":"ElementaryTypeName","src":"34095:7:91","typeDescriptions":{}}},"id":55501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34095:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55497,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"34075:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34075:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"34045:62:91"},{"expression":{"arguments":[{"hexValue":"30","id":55509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34154:1:91","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"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55504,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55496,"src":"34118:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34126:8:91","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"34118:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55507,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"34142:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"34118:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34118:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55511,"nodeType":"ExpressionStatement","src":"34118:38:91"},{"assignments":[55514,55516,55518,null,55520],"declarations":[{"constant":false,"id":55514,"mutability":"mutable","name":"id","nameLocation":"34184:2:91","nodeType":"VariableDeclaration","scope":55568,"src":"34168:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55513,"nodeType":"UserDefinedTypeName","pathNode":{"id":55512,"name":"SubnetID","nameLocations":["34168:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34168:8:91"},"referencedDeclaration":50030,"src":"34168:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55516,"mutability":"mutable","name":"stake","nameLocation":"34196:5:91","nodeType":"VariableDeclaration","scope":55568,"src":"34188:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55515,"name":"uint256","nodeType":"ElementaryTypeName","src":"34188:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55518,"mutability":"mutable","name":"topDownNonce","nameLocation":"34211:12:91","nodeType":"VariableDeclaration","scope":55568,"src":"34203:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55517,"name":"uint256","nodeType":"ElementaryTypeName","src":"34203:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55520,"mutability":"mutable","name":"circSupply","nameLocation":"34235:10:91","nodeType":"VariableDeclaration","scope":55568,"src":"34227:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55519,"name":"uint256","nodeType":"ElementaryTypeName","src":"34227:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55525,"initialValue":{"arguments":[{"id":55522,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55488,"src":"34274:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55523,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55491,"src":"34301:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55521,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55653,"src":"34249:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34249:64:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"34167:146:91"},{"assignments":[55528],"declarations":[{"constant":false,"id":55528,"mutability":"mutable","name":"parentNetwork","nameLocation":"34340:13:91","nodeType":"VariableDeclaration","scope":55568,"src":"34324:29:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55527,"nodeType":"UserDefinedTypeName","pathNode":{"id":55526,"name":"SubnetID","nameLocations":["34324:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34324:8:91"},"referencedDeclaration":50030,"src":"34324:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55532,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55529,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"34356:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34365:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"34356:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34356:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"34324:57:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55534,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55514,"src":"34413:2:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34416:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34413:9:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34413:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55539,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55488,"src":"34457:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55537,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55528,"src":"34428:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34442:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"34428:28:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34428:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34472:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34428:50:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34428:52:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"34413:67:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34494:69:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55533,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34392:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34392:181:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55546,"nodeType":"ExpressionStatement","src":"34392:181:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55548,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55516,"src":"34591:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55549,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"34600:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34591:19:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34612:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34583:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34583:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55553,"nodeType":"ExpressionStatement","src":"34583:48:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55555,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55518,"src":"34649:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34665:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34649:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34668:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55554,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34641:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34641:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55560,"nodeType":"ExpressionStatement","src":"34641:46:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55562,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55520,"src":"34705:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34719:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34705:15:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34722:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55561,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34697:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34697:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55567,"nodeType":"ExpressionStatement","src":"34697:49:91"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"33949:16:91","parameters":{"id":55492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55486,"mutability":"mutable","name":"collateral","nameLocation":"33974:10:91","nodeType":"VariableDeclaration","scope":55569,"src":"33966:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55485,"name":"uint256","nodeType":"ElementaryTypeName","src":"33966:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55488,"mutability":"mutable","name":"subnetAddress","nameLocation":"33994:13:91","nodeType":"VariableDeclaration","scope":55569,"src":"33986:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55487,"name":"address","nodeType":"ElementaryTypeName","src":"33986:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55491,"mutability":"mutable","name":"gw","nameLocation":"34024:2:91","nodeType":"VariableDeclaration","scope":55569,"src":"34009:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55490,"nodeType":"UserDefinedTypeName","pathNode":{"id":55489,"name":"GatewayDiamond","nameLocations":["34009:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34009:14:91"},"referencedDeclaration":36170,"src":"34009:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"33965:62:91"},"returnParameters":{"id":55493,"nodeType":"ParameterList","parameters":[],"src":"34035:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55583,"nodeType":"FunctionDefinition","src":"34759:150:91","nodes":[],"body":{"id":55582,"nodeType":"Block","src":"34833:76:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55577,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55571,"src":"34860:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55578,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55573,"src":"34872:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55579,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"34887:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55576,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55569,"src":"34843:16:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34843:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55581,"nodeType":"ExpressionStatement","src":"34843:59:91"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"34768:14:91","parameters":{"id":55574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55571,"mutability":"mutable","name":"collateral","nameLocation":"34791:10:91","nodeType":"VariableDeclaration","scope":55583,"src":"34783:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55570,"name":"uint256","nodeType":"ElementaryTypeName","src":"34783:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55573,"mutability":"mutable","name":"subnetAddress","nameLocation":"34811:13:91","nodeType":"VariableDeclaration","scope":55583,"src":"34803:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55572,"name":"address","nodeType":"ElementaryTypeName","src":"34803:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34782:43:91"},"returnParameters":{"id":55575,"nodeType":"ParameterList","parameters":[],"src":"34833:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55653,"nodeType":"FunctionDefinition","src":"34915:541:91","nodes":[],"body":{"id":55652,"nodeType":"Block","src":"35069:387:91","nodes":[],"statements":[{"expression":{"id":55609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55602,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"35079:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55606,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55588,"src":"35119:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35111:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55604,"name":"address","nodeType":"ElementaryTypeName","src":"35111:7:91","typeDescriptions":{}}},"id":55607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35111:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55603,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"35091:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35091:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"35079:44:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55610,"nodeType":"ExpressionStatement","src":"35079:44:91"},{"expression":{"id":55618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55611,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35133:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55615,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55588,"src":"35171:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35163:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55613,"name":"address","nodeType":"ElementaryTypeName","src":"35163:7:91","typeDescriptions":{}}},"id":55616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35163:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55612,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"35144:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35144:31:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"35133:42:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55619,"nodeType":"ExpressionStatement","src":"35133:42:91"},{"assignments":[55622],"declarations":[{"constant":false,"id":55622,"mutability":"mutable","name":"subnetId","nameLocation":"35202:8:91","nodeType":"VariableDeclaration","scope":55652,"src":"35186:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55621,"nodeType":"UserDefinedTypeName","pathNode":{"id":55620,"name":"SubnetID","nameLocations":["35186:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35186:8:91"},"referencedDeclaration":50030,"src":"35186:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55629,"initialValue":{"arguments":[{"id":55627,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55585,"src":"35254:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35213:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35222:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"35213:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35213:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35239:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"35213:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35213:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"35186:82:91"},{"assignments":[55632],"declarations":[{"constant":false,"id":55632,"mutability":"mutable","name":"subnet","nameLocation":"35293:6:91","nodeType":"VariableDeclaration","scope":55652,"src":"35279:20:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55631,"nodeType":"UserDefinedTypeName","pathNode":{"id":55630,"name":"Subnet","nameLocations":["35279:6:91"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"35279:6:91"},"referencedDeclaration":50044,"src":"35279:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55639,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55635,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"35319:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35328:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"35319:15:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35319:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55633,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35302:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35311:7:91","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"35302:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50044_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35302:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"35279:58:91"},{"expression":{"components":[{"expression":{"id":55640,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35356:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35363:2:91","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"35356:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55642,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35367:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35374:5:91","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"35367:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55644,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35381:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35388:12:91","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"35381:19:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55646,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35402:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35409:20:91","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"35402:27:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55648,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35431:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35438:10:91","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"35431:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55650,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35355:94:91","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55601,"id":55651,"nodeType":"Return","src":"35348:101:91"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"34924:11:91","parameters":{"id":55589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55585,"mutability":"mutable","name":"subnetAddress","nameLocation":"34953:13:91","nodeType":"VariableDeclaration","scope":55653,"src":"34945:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55584,"name":"address","nodeType":"ElementaryTypeName","src":"34945:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55588,"mutability":"mutable","name":"gw","nameLocation":"34991:2:91","nodeType":"VariableDeclaration","scope":55653,"src":"34976:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55587,"nodeType":"UserDefinedTypeName","pathNode":{"id":55586,"name":"GatewayDiamond","nameLocations":["34976:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34976:14:91"},"referencedDeclaration":36170,"src":"34976:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"34935:64:91"},"returnParameters":{"id":55601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35016:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55591,"nodeType":"UserDefinedTypeName","pathNode":{"id":55590,"name":"SubnetID","nameLocations":["35016:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35016:8:91"},"referencedDeclaration":50030,"src":"35016:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35033:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55593,"name":"uint256","nodeType":"ElementaryTypeName","src":"35033:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35042:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55595,"name":"uint256","nodeType":"ElementaryTypeName","src":"35042:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35051:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55597,"name":"uint256","nodeType":"ElementaryTypeName","src":"35051:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35060:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55599,"name":"uint256","nodeType":"ElementaryTypeName","src":"35060:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35015:53:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55675,"nodeType":"FunctionDefinition","src":"35462:177:91","nodes":[],"body":{"id":55674,"nodeType":"Block","src":"35573:66:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55670,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55655,"src":"35602:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55671,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"35617:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55669,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55653,"src":"35590:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35590:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55668,"id":55673,"nodeType":"Return","src":"35583:49:91"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"35471:9:91","parameters":{"id":55656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55655,"mutability":"mutable","name":"subnetAddress","nameLocation":"35489:13:91","nodeType":"VariableDeclaration","scope":55675,"src":"35481:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55654,"name":"address","nodeType":"ElementaryTypeName","src":"35481:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35480:23:91"},"returnParameters":{"id":55668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35520:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55658,"nodeType":"UserDefinedTypeName","pathNode":{"id":55657,"name":"SubnetID","nameLocations":["35520:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35520:8:91"},"referencedDeclaration":50030,"src":"35520:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35537:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55660,"name":"uint256","nodeType":"ElementaryTypeName","src":"35537:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35546:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55662,"name":"uint256","nodeType":"ElementaryTypeName","src":"35546:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35555:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55664,"name":"uint256","nodeType":"ElementaryTypeName","src":"35555:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55667,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35564:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55666,"name":"uint256","nodeType":"ElementaryTypeName","src":"35564:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35519:53:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53090,"name":"Test","nameLocations":["9402:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"9402:4:91"},"id":53091,"nodeType":"InheritanceSpecifier","src":"9402:4:91"},{"baseName":{"id":53092,"name":"TestParams","nameLocations":["9408:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"9408:10:91"},"id":53093,"nodeType":"InheritanceSpecifier","src":"9408:10:91"},{"baseName":{"id":53094,"name":"TestRegistry","nameLocations":["9420:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":52760,"src":"9420:12:91"},"id":53095,"nodeType":"InheritanceSpecifier","src":"9420:12:91"},{"baseName":{"id":53096,"name":"TestSubnetActor","nameLocations":["9434:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":53089,"src":"9434:15:91"},"id":53097,"nodeType":"InheritanceSpecifier","src":"9434:15:91"},{"baseName":{"id":53098,"name":"TestGatewayActor","nameLocations":["9451:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":52925,"src":"9451:16:91"},"id":53099,"nodeType":"InheritanceSpecifier","src":"9451:16:91"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58342],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55676,52925,53089,52760,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"9379:19:91","scope":55677,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file diff --git a/.out/IntegrationTestBase.sol/TestRegistry.json b/.out/IntegrationTestBase.sol/TestRegistry.json index 28d98f3e4..39b050674 100644 --- a/.out/IntegrationTestBase.sol/TestRegistry.json +++ b/.out/IntegrationTestBase.sol/TestRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608080604052346200085357600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601360248201527f52656769737465725375626e6574466163657400000000000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d5760009162000834575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601b5482601b55808310620007d1575b5060200190601b60005260206000208160031c9160005b83811062000781575060071981169003806200072c575b505050506040516319b8a26360e21b815260206004820152601160248201527014dd589b995d11d95d1d195c919858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d576000916200070d575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601c5482601c55808310620006a2575b5060200190601c60005260206000209060005b8160031c81106200065257506007198116810380620005fa575b505050506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d57600091620005db575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601d5482601d5580831062000553575b5060200190601d60005260206000209060005b8160031c81106200050357506007198116808203620004a9575b505050506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d5760009162000475575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601e5482601e55808310620003fc575b5060200190601e60005260206000208160031c9160005b838110620003ac5750600719811690038062000357575b604051610c8e9081620009138239f35b9260009360005b818110620003755750505001553880808062000347565b9091946020620003a1600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200035e565b6000805b60088110620003c757508382015560010162000330565b95906020620003f2600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620003b0565b601e6000526020600020600780850160031c8201920160031c0190601c8460021b168062000443575b505b81811062000436575062000319565b6000815560010162000427565b600019908183019182549160200360031b1c1690553862000425565b634e487b7160e01b600052604160045260246000fd5b6200049691503d806000833e6200048d818362000858565b8101906200087c565b38620002e5565b6040513d6000823e3d90fd5b9260009360005b8184038110620004cc5750505060031c0155388080806200027e565b9091946020620004f8600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620004b0565b6000805b600881106200051e57508382015560010162000264565b9490602062000549600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000507565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c1680620005b7575b50600780850160031c8201920160031c01905b818110620005aa575062000251565b600081556001016200059b565b60001990816007870160031c8401019182549160200360031b1c1690553862000588565b620005f391503d806000833e6200048d818362000858565b386200021d565b9260009360005b8181106200061b5750505060031c015538808080620001b8565b909194602062000647600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000601565b6000805b600881106200066d5750838201556001016200019e565b9490602062000698600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000656565b601c6000526020600020601c8460021b1680620006e9575b50600780850160031c8201920160031c01905b818110620006dc57506200018b565b60008155600101620006cd565b60001990816007870160031c8401019182549160200360031b1c16905538620006ba565b6200072591503d806000833e6200048d818362000858565b3862000157565b9260009360005b8181106200074a57505050015538808080620000f0565b909194602062000776600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000733565b6000805b600881106200079c575083820155600101620000d9565b95906020620007c7600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000785565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b168062000818575b505b8181106200080b5750620000c2565b60008155600101620007fc565b600019908183019182549160200360031b1c16905538620007fa565b6200084c91503d806000833e6200048d818362000858565b386200008e565b600080fd5b601f909101601f19168101906001600160401b038211908210176200045f57604052565b906020908183820312620008535782516001600160401b039384821162000853570181601f82011215620008535780519384116200045f578360051b9060405194620008cb8584018762000858565b8552838086019282010192831162000853578301905b828210620008f0575050505090565b81516001600160e01b03198116810362000853578152908301908301620008e156fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea264697066735822122072ae30f0c2fb4a3823b766f42305e533547a7358be009d59c8760ab4c293f9cf64736f6c63430008130033","sourceMap":"3675:824:88:-:0;;;;;;;1594:4:2;3675:824:88;;;;1594:4:2;3675:824:88;;;1594:4:2;3675:824:88;3201:4:5;3675:824:88;;;3201:4:5;3675:824:88;;;;4159:55;;3675:824;3201:4:5;4159:55:88;;3675:824;;;;;;;;;;;1594:4:2;4159:15:88;3675:824;4159:15;;:55;;;;;;;1594:4:2;4159:55:88;;;-1:-1:-1;;3675:824:88;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;4128:86;3675:824;;4128:86;3675:824;;;;;;-1:-1:-1;3675:824:88;;;;4128:86;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;1594:4:2;3675:824:88;;;;;;-1:-1:-1;;;3675:824:88;;;;;;;;;;;;;;;;;4261:53;;3675:824;3201:4:5;4261:53:88;;3675:824;;;;;;-1:-1:-1;;;3675:824:88;;;;1594:4:2;4159:15:88;3675:824;4159:15;;4261:53;;;;;;;1594:4:2;4261:53:88;;;3675:824;-1:-1:-1;3675:824:88;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;4224:90;3675:824;;4224:90;3675:824;;;;;;;;;;;4224:90;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;-1:-1:-1;;;3675:824:88;;;;;;;;;;;;;;;;;4350:51;;3675:824;3201:4:5;4350:51:88;;3675:824;;;;;;-1:-1:-1;;;3675:824:88;;;;1594:4:2;4159:15:88;3675:824;4159:15;;4350:51;;;;;;;1594:4:2;4350:51:88;;;3675:824;-1:-1:-1;3675:824:88;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;4324:77;3675:824;;4324:77;3675:824;;;;;;;;;;;4324:77;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;-1:-1:-1;;;3675:824:88;;;;;;;;;;;;;;;;;4437:53;;3675:824;3201:4:5;4437:53:88;;3675:824;;;;;;-1:-1:-1;;;3675:824:88;;;;1594:4:2;4159:15:88;3675:824;4159:15;;4437:53;;;;;;;1594:4:2;4437:53:88;;;3675:824;-1:-1:-1;3675:824:88;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;4411:79;3675:824;;4411:79;3675:824;;;;;;;;;;;4411:79;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;1594:4:2;3675:824:88;;;;;;-1:-1:-1;;;3675:824:88;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3675:824:88;;;;;;-1:-1:-1;3675:824:88;;;;1594:4:2;3675:824:88;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4411:79;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;4224:90;3675:824;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;3201:4:5;3675:824:88;;1594:4:2;3675:824:88;4437:53;;;;;;1594:4:2;4437:53:88;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;3675:824;;;1594:4:2;3675:824:88;;;;;;;1594:4:2;3675:824:88;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3675:824:88;;;;;;-1:-1:-1;3675:824:88;;;;1594:4:2;3675:824:88;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:77;1594:4:2;3675:824:88;;;;;;4224:90;3675:824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4350:51;;;;;;1594:4:2;4350:51:88;;;;;;:::i;:::-;;;;3675:824;;1594:4:2;3675:824:88;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3675:824:88;;;;;;-1:-1:-1;3675:824:88;;;;1594:4:2;3675:824:88;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4224:90;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;4224:90;3675:824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4261:53;;;;;;1594:4:2;4261:53:88;;;;;;:::i;:::-;;;;3675:824;;1594:4:2;3675:824:88;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3675:824:88;;;;;;-1:-1:-1;3675:824:88;;;;1594:4:2;3675:824:88;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4128:86;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;4159:55;;;;;;1594:4:2;4159:55:88;;;;;;:::i;:::-;;;;3675:824;;;;;;;;;-1:-1:-1;;3675:824:88;;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;","linkReferences":{"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":104,"length":20},{"start":305,"length":20},{"start":503,"length":20},{"start":703,"length":20}]}}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea264697066735822122072ae30f0c2fb4a3823b766f42305e533547a7358be009d59c8760ab4c293f9cf64736f6c63430008130033","sourceMap":"3675:824:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;3675:824:88;;;;:::i;:::-;;1671:64:2;3675:824:88;;1671:64:2;;;:::i;:::-;3675:824:88;;;1982:18:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3675:824:88;;;;;;;;-1:-1:-1;3675:824:88;;;;;-1:-1:-1;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3675:824:88;;;;;-1:-1:-1;3675:824:88;;;;;;;;;-1:-1:-1;3675:824:88;;;;-1:-1:-1;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;3675:824:88;;;;:::i;:::-;;1671:64:2;3675:824:88;;1671:64:2;;;:::i;:::-;3675:824:88;;;2899:18:8;3675:824:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;3675:824:88;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;3675:824:88;;;;:::i;:::-;;1671:64:2;3675:824:88;;1671:64:2;;;:::i;:::-;3675:824:88;;;2416:18:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3675:824:88;;;;;;;;-1:-1:-1;3675:824:88;;;;;-1:-1:-1;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3675:824:88;;;;;-1:-1:-1;3675:824:88;;;;;;;;;-1:-1:-1;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;3675:824:88;;;;:::i;:::-;;1671:64:2;3675:824:88;;1671:64:2;;;:::i;:::-;3675:824:88;;;2592:26:8;3675:824:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;3675:824:88;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3675:824:88;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;3675:824:88;;;;;;;;;;;;;;;;;1671:64:2;3675:824:88;1671:64:2;;;;;;;;;;;3675:824:88;1671:64:2;:::o;:::-;3675:824:88;;;1671:64:2;;;;;;;;;;3675:824:88;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;3675:824:88;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;3675:824:88;;;2196:43:2;;;3675:824:88;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;3675:824:88;;-1:-1:-1;1671:64:2;;3675:824:88;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;3675:824:88;1671:64:2;2086:175;;;3675:824:88;;;;;;1671:64:2;3675:824:88;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;3675:824:88;;;1671:64:2;3675:824:88;;;-1:-1:-1;;3675:824:88;2196:43:2;1671:64;3675:824:88;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;3675:824:88;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;3675:824:88;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;3675:824:88;1671:64:2;;;3675:824:88;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;3675:824:88;1671:64:2;3675:824:88;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"TestRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496\",\"dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestRegistry"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692","urls":["bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496","dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55376,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49974],"CrossMsgHelper":[40781],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50204],"IntegrationTestBase":[55375],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50165],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52279],"SelectorLibrary":[56263],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52912],"TestParams":[52683],"TestRegistry":[52747],"TestSubnetActor":[53037],"TestUtils":[57051],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50211],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:31883:88","nodes":[{"id":52519,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52520,"nodeType":"ImportDirective","src":"71:28:88","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52521,"nodeType":"ImportDirective","src":"100:36:88","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52522,"nodeType":"ImportDirective","src":"137:37:88","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52525,"nodeType":"ImportDirective","src":"176:72:88","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52523,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52524,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52527,"nodeType":"ImportDirective","src":"249:61:88","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52526,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"311:56:88","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"368:102:88","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":52530,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"376:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"386:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52532,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"406:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52533,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"419:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"471:57:88","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":52535,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"479:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52545,"nodeType":"ImportDirective","src":"529:140:88","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":52537,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"537:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"547:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"559:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"575:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52541,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"591:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52542,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"599:12:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52543,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"613:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"625:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52547,"nodeType":"ImportDirective","src":"670:61:88","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":52546,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"678:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52549,"nodeType":"ImportDirective","src":"732:65:88","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":52548,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"740:16:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"798:61:88","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":52550,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"806:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"860:67:88","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":52552,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"868:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"928:56:88","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52554,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"985:57:88","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52556,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"1043:65:88","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52558,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"1109:73:88","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52560,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"1183:79:88","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1263:75:88","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52564,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1340:80:88","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52566,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1421:80:88","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52568,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1502:84:88","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52570,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1587:82:88","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52572,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1671:84:88","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"./mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":52574,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1679:27:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1756:82:88","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":52576,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"1764:23:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1839:80:88","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":52578,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1847:22:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1920:71:88","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"1928:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1992:82:88","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":52582,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"2000:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"2075:78:88","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"2083:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"2154:71:88","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52586,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2162:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"2226:67:88","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52588,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2234:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2294:69:88","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":52590,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"2302:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2364:50:88","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":52592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2372:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2415:62:88","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":56264,"symbolAliases":[{"foreign":{"id":52594,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2423:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52683,"nodeType":"ContractDefinition","src":"2479:1194:88","nodes":[{"id":52602,"nodeType":"VariableDeclaration","src":"2505:44:88","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2521:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52596,"name":"uint64","nodeType":"ElementaryTypeName","src":"2505:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2538:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52598,"name":"uint64","nodeType":"ElementaryTypeName","src":"2538:6:88","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52597,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2533:4:88","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2546:3:88","memberName":"max","nodeType":"MemberAccess","src":"2533:16:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52608,"nodeType":"VariableDeclaration","src":"2555:91:88","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2572:20:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52603,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2603:42:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2595:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52604,"name":"address","nodeType":"ElementaryTypeName","src":"2595:7:88","typeDescriptions":{}}},"id":52607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2595:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52611,"nodeType":"VariableDeclaration","src":"2652:42:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2668:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2652:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2693:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52614,"nodeType":"VariableDeclaration","src":"2700:54:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2717:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2700:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52617,"nodeType":"VariableDeclaration","src":"2760:47:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2775:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52615,"name":"uint8","nodeType":"ElementaryTypeName","src":"2760:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2805:2:88","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2813:51:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2829:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52618,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2857:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2870:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2886:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2870:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2922:44:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2938:16:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52624,"name":"string","nodeType":"ElementaryTypeName","src":"2922:6:88","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2957:9:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2972:36:88","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2987:7:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52627,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52628,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2997:11:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3014:48:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3031:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52630,"name":"uint256","nodeType":"ElementaryTypeName","src":"3014:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3068:49:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3085:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52633,"name":"uint256","nodeType":"ElementaryTypeName","src":"3068:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3123:52:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3140:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52636,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3172:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3164:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52637,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:88","typeDescriptions":{}}},"id":52640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3181:54:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3198:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52642,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3232:2:88","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52643,"name":"address","nodeType":"ElementaryTypeName","src":"3224:7:88","typeDescriptions":{}}},"id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52652,"nodeType":"VariableDeclaration","src":"3241:57:88","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3257:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52648,"name":"uint64","nodeType":"ElementaryTypeName","src":"3241:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3269:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52650,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"3273:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3269:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52655,"nodeType":"VariableDeclaration","src":"3304:50:88","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3321:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3304:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3347:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52658,"nodeType":"VariableDeclaration","src":"3360:53:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3376:31:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52656,"name":"uint16","nodeType":"ElementaryTypeName","src":"3360:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52661,"nodeType":"VariableDeclaration","src":"3419:38:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3433:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52659,"name":"int8","nodeType":"ElementaryTypeName","src":"3419:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3463:37:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3479:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52662,"name":"uint64","nodeType":"ElementaryTypeName","src":"3463:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3497:3:88","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3506:45:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3523:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3549:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52666,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:88","typeDescriptions":{}}},"id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3557:57:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3574:24:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"3557:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3609:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3601:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52672,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:88","typeDescriptions":{}}},"id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3620:50:88","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3637:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3620:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3667:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3659:7:88","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52683],"name":"TestParams","nameLocation":"2488:10:88","scope":55376,"usedErrors":[]},{"id":52747,"nodeType":"ContractDefinition","src":"3675:824:88","nodes":[{"id":52690,"nodeType":"VariableDeclaration","src":"3723:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3732:28:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52688,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3723:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52689,"nodeType":"ArrayTypeName","src":"3723:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52693,"nodeType":"VariableDeclaration","src":"3766:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3775:34:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52691,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52692,"nodeType":"ArrayTypeName","src":"3766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52696,"nodeType":"VariableDeclaration","src":"3815:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3824:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52694,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3815:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52695,"nodeType":"ArrayTypeName","src":"3815:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52699,"nodeType":"VariableDeclaration","src":"3853:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3862:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52697,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3853:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52698,"nodeType":"ArrayTypeName","src":"3853:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52702,"nodeType":"VariableDeclaration","src":"3892:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3914:15:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52701,"nodeType":"UserDefinedTypeName","pathNode":{"id":52700,"name":"SubnetRegistryDiamond","nameLocations":["3892:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"3892:21:88"},"referencedDeclaration":36853,"src":"3892:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3935:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3953:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52704,"nodeType":"UserDefinedTypeName","pathNode":{"id":52703,"name":"DiamondLoupeFacet","nameLocations":["3935:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"3935:17:88"},"referencedDeclaration":37355,"src":"3935:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"3973:30:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3989:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52707,"nodeType":"UserDefinedTypeName","pathNode":{"id":52706,"name":"DiamondCutFacet","nameLocations":["3973:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"3973:15:88"},"referencedDeclaration":36918,"src":"3973:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4009:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4029:19:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52710,"nodeType":"UserDefinedTypeName","pathNode":{"id":52709,"name":"RegisterSubnetFacet","nameLocations":["4009:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"4009:19:88"},"referencedDeclaration":52279,"src":"4009:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4054:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4072:25:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetGetterFacet","nameLocations":["4054:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"4054:17:88"},"referencedDeclaration":52517,"src":"4054:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52746,"nodeType":"FunctionDefinition","src":"4104:393:88","nodes":[],"body":{"id":52745,"nodeType":"Block","src":"4118:379:88","nodes":[],"statements":[{"expression":{"id":52722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52717,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"4128:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4192:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52718,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4159:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4175:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4159:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4128:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52723,"nodeType":"ExpressionStatement","src":"4128:86:88"},{"expression":{"id":52729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52724,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"4224:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4294:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52725,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4261:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4277:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4261:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4224:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52730,"nodeType":"ExpressionStatement","src":"4224:90:88"},{"expression":{"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52731,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"4324:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4383:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52732,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4350:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4350:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:77:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52737,"nodeType":"ExpressionStatement","src":"4324:77:88"},{"expression":{"id":52743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52738,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"4411:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4470:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52739,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4437:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4437:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4411:79:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52744,"nodeType":"ExpressionStatement","src":"4411:79:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52715,"nodeType":"ParameterList","parameters":[],"src":"4115:2:88"},"returnParameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"4118:0:88"},"scope":52747,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52684,"name":"Test","nameLocations":["3700:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3700:4:88"},"id":52685,"nodeType":"InheritanceSpecifier","src":"3700:4:88"},{"baseName":{"id":52686,"name":"TestParams","nameLocations":["3706:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"3706:10:88"},"id":52687,"nodeType":"InheritanceSpecifier","src":"3706:10:88"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3684:12:88","scope":55376,"usedErrors":[]},{"id":52912,"nodeType":"ContractDefinition","src":"4501:2237:88","nodes":[{"id":52754,"nodeType":"VariableDeclaration","src":"4553:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4562:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52752,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4553:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52753,"nodeType":"ArrayTypeName","src":"4553:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52757,"nodeType":"VariableDeclaration","src":"4597:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4606:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52755,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4597:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52756,"nodeType":"ArrayTypeName","src":"4597:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52760,"nodeType":"VariableDeclaration","src":"4641:40:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4650:31:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52758,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4641:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52759,"nodeType":"ArrayTypeName","src":"4641:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52763,"nodeType":"VariableDeclaration","src":"4687:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4696:30:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52761,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4687:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52762,"nodeType":"ArrayTypeName","src":"4687:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52766,"nodeType":"VariableDeclaration","src":"4733:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4742:18:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4733:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4733:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4766:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4775:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4798:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4807:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4798:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4798:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4834:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4843:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4834:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4834:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4866:25:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4875:16:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4866:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4866:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4898:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4913:14:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52780,"nodeType":"UserDefinedTypeName","pathNode":{"id":52779,"name":"GatewayDiamond","nameLocations":["4898:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"4898:14:88"},"referencedDeclaration":36170,"src":"4898:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4933:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4953:9:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52783,"nodeType":"UserDefinedTypeName","pathNode":{"id":52782,"name":"GatewayManagerFacet","nameLocations":["4933:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"4933:19:88"},"referencedDeclaration":38870,"src":"4933:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"4968:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4987:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52786,"nodeType":"UserDefinedTypeName","pathNode":{"id":52785,"name":"GatewayGetterFacet","nameLocations":["4968:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"4968:18:88"},"referencedDeclaration":38317,"src":"4968:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5001:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5020:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52789,"nodeType":"UserDefinedTypeName","pathNode":{"id":52788,"name":"CheckpointingFacet","nameLocations":["5001:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5001:18:88"},"referencedDeclaration":39870,"src":"5001:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5046:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5065:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"XnetMessagingFacet","nameLocations":["5046:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5046:18:88"},"referencedDeclaration":40144,"src":"5046:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5091:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5112:22:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"TopDownFinalityFacet","nameLocations":["5091:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5091:20:88"},"referencedDeclaration":40071,"src":"5091:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5140:41:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5160:21:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"BottomUpRouterFacet","nameLocations":["5140:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5140:19:88"},"referencedDeclaration":39601,"src":"5140:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5187:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5209:11:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"GatewayMessengerFacet","nameLocations":["5187:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5187:21:88"},"referencedDeclaration":39235,"src":"5187:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5226:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5242:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"DiamondCutFacet","nameLocations":["5226:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5226:15:88"},"referencedDeclaration":36918,"src":"5226:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5256:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5274:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"DiamondLoupeFacet","nameLocations":["5256:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5256:17:88"},"referencedDeclaration":37355,"src":"5256:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52875,"nodeType":"FunctionDefinition","src":"5289:835:88","nodes":[],"body":{"id":52874,"nodeType":"Block","src":"5303:821:88","nodes":[],"statements":[{"expression":{"id":52816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52811,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"5313:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52812,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5345:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5345:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5313:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52817,"nodeType":"ExpressionStatement","src":"5313:86:88"},{"expression":{"id":52823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52818,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"5409:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5474:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52819,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5441:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5441:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5409:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52824,"nodeType":"ExpressionStatement","src":"5409:86:88"},{"expression":{"id":52830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52825,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"5505:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5572:22:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52826,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5539:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5555:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5539:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5539:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5505:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52831,"nodeType":"ExpressionStatement","src":"5505:90:88"},{"expression":{"id":52837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52832,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"5605:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5671:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52833,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5638:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5654:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5638:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:88:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52838,"nodeType":"ExpressionStatement","src":"5605:88:88"},{"expression":{"id":52844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52839,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5704:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5757:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52840,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5724:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5740:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5724:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5724:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5704:74:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52845,"nodeType":"ExpressionStatement","src":"5704:74:88"},{"expression":{"id":52851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52846,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5788:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52847,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5809:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5825:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5809:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5788:76:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52852,"nodeType":"ExpressionStatement","src":"5788:76:88"},{"expression":{"id":52858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52853,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5874:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5930:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52854,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5897:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5913:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5897:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:57:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5874:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52859,"nodeType":"ExpressionStatement","src":"5874:80:88"},{"expression":{"id":52865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52860,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5964:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6017:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52861,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5984:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5984:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5984:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5964:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52866,"nodeType":"ExpressionStatement","src":"5964:71:88"},{"expression":{"id":52872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52867,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"6045:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6097:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52868,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"6064:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6080:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"6064:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6064:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6045:72:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52873,"nodeType":"ExpressionStatement","src":"6045:72:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52809,"nodeType":"ParameterList","parameters":[],"src":"5300:2:88"},"returnParameters":{"id":52810,"nodeType":"ParameterList","parameters":[],"src":"5303:0:88"},"scope":52912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52911,"nodeType":"FunctionDefinition","src":"6130:606:88","nodes":[],"body":{"id":52910,"nodeType":"Block","src":"6234:502:88","nodes":[],"statements":[{"assignments":[52885],"declarations":[{"constant":false,"id":52885,"mutability":"mutable","name":"params","nameLocation":"6284:6:88","nodeType":"VariableDeclaration","scope":52910,"src":"6244:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52884,"nodeType":"UserDefinedTypeName","pathNode":{"id":52883,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6244:14:88","6259:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6244:32:88"},"referencedDeclaration":35883,"src":"6244:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52907,"initialValue":{"arguments":[{"arguments":[{"id":52889,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"6369:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6407:1:88","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":52892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6393:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52890,"name":"address","nodeType":"ElementaryTypeName","src":"6397:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52891,"nodeType":"ArrayTypeName","src":"6397:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52888,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"6353:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6363:4:88","6386:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"6353:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52896,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"6446:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52897,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"6493:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52898,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"6548:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6624:1:88","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":52902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6608:15:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52900,"nodeType":"UserDefinedTypeName","pathNode":{"id":52899,"name":"Validator","nameLocations":["6612:9:88"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"6612:9:88"},"referencedDeclaration":50211,"src":"6612:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":52901,"nodeType":"ArrayTypeName","src":"6612:11:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52905,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"6663:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52886,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6293:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6308:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6293:32:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6340:11:88","6425:19:88","6485:6:88","6528:18:88","6589:17:88","6640:21:88"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6293:412:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6244:461:88"},{"expression":{"id":52908,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52885,"src":"6723:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52880,"id":52909,"nodeType":"Return","src":"6716:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6139:20:88","parameters":{"id":52876,"nodeType":"ParameterList","parameters":[],"src":"6159:2:88"},"returnParameters":{"id":52880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52911,"src":"6193:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52878,"nodeType":"UserDefinedTypeName","pathNode":{"id":52877,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6193:14:88","6208:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6193:32:88"},"referencedDeclaration":35883,"src":"6193:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6192:41:88"},"scope":52912,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52748,"name":"Test","nameLocations":["4530:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4530:4:88"},"id":52749,"nodeType":"InheritanceSpecifier","src":"4530:4:88"},{"baseName":{"id":52750,"name":"TestParams","nameLocations":["4536:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"4536:10:88"},"id":52751,"nodeType":"InheritanceSpecifier","src":"4536:10:88"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52912,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4510:16:88","scope":55376,"usedErrors":[]},{"id":53037,"nodeType":"ContractDefinition","src":"6740:1920:88","nodes":[{"id":52919,"nodeType":"VariableDeclaration","src":"6791:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6800:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52917,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6791:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52918,"nodeType":"ArrayTypeName","src":"6791:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6823:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6832:18:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52920,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6823:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52921,"nodeType":"ArrayTypeName","src":"6823:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6856:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6865:24:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52923,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6856:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52924,"nodeType":"ArrayTypeName","src":"6856:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6895:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6904:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52926,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6895:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52927,"nodeType":"ArrayTypeName","src":"6895:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6927:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6936:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52929,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6927:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52930,"nodeType":"ArrayTypeName","src":"6927:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6960:28:88","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6979:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorDiamond","nameLocations":["6960:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6960:18:88"},"referencedDeclaration":36615,"src":"6960:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6994:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7018:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorManagerFacet","nameLocations":["6994:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"6994:23:88"},"referencedDeclaration":52151,"src":"6994:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"7033:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"7061:15:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"SubnetActorManagerFacetMock","nameLocations":["7033:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"7033:27:88"},"referencedDeclaration":57957,"src":"7033:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"7082:31:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7105:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"SubnetActorGetterFacet","nameLocations":["7082:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"7082:22:88"},"referencedDeclaration":50887,"src":"7082:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52946,"nodeType":"VariableDeclaration","src":"7119:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7135:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52945,"nodeType":"UserDefinedTypeName","pathNode":{"id":52944,"name":"DiamondCutFacet","nameLocations":["7119:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7119:15:88"},"referencedDeclaration":36918,"src":"7119:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52949,"nodeType":"VariableDeclaration","src":"7149:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7167:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52948,"nodeType":"UserDefinedTypeName","pathNode":{"id":52947,"name":"DiamondLoupeFacet","nameLocations":["7149:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7149:17:88"},"referencedDeclaration":37355,"src":"7149:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52988,"nodeType":"FunctionDefinition","src":"7182:463:88","nodes":[],"body":{"id":52987,"nodeType":"Block","src":"7196:449:88","nodes":[],"statements":[{"expression":{"id":52957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52952,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"7206:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7259:24:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52953,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7226:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7242:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7226:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7226:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7206:78:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52958,"nodeType":"ExpressionStatement","src":"7206:78:88"},{"expression":{"id":52964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52959,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"7294:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7348:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52960,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7315:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7331:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7315:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7315:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7294:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52965,"nodeType":"ExpressionStatement","src":"7294:80:88"},{"expression":{"id":52971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52966,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"7384:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7444:29:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":52967,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7411:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7427:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7411:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7384:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52972,"nodeType":"ExpressionStatement","src":"7384:90:88"},{"expression":{"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52973,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"7484:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7537:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52974,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7504:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7520:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7504:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7504:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7484:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52979,"nodeType":"ExpressionStatement","src":"7484:71:88"},{"expression":{"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52980,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"7565:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7618:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52981,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7585:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7585:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7565:73:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52986,"nodeType":"ExpressionStatement","src":"7565:73:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52950,"nodeType":"ParameterList","parameters":[],"src":"7193:2:88"},"returnParameters":{"id":52951,"nodeType":"ParameterList","parameters":[],"src":"7196:0:88"},"scope":53037,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53036,"nodeType":"FunctionDefinition","src":"7651:1007:88","nodes":[],"body":{"id":53035,"nodeType":"Block","src":"7798:860:88","nodes":[],"statements":[{"assignments":[52998],"declarations":[{"constant":false,"id":52998,"mutability":"mutable","name":"native","nameLocation":"7828:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7808:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":52997,"nodeType":"UserDefinedTypeName","pathNode":{"id":52996,"name":"SupplySource","nameLocations":["7808:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7808:12:88"},"referencedDeclaration":50226,"src":"7808:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53002,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52999,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"7837:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7856:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"7837:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7808:56:88"},{"assignments":[53007],"declarations":[{"constant":false,"id":53007,"mutability":"mutable","name":"params","nameLocation":"7918:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7874:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53006,"nodeType":"UserDefinedTypeName","pathNode":{"id":53005,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7874:18:88","7893:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7874:36:88"},"referencedDeclaration":36253,"src":"7874:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53032,"initialValue":{"arguments":[{"arguments":[{"id":53011,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"8004:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8042:1:88","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":53014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8028:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53012,"name":"address","nodeType":"ElementaryTypeName","src":"8032:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53013,"nodeType":"ArrayTypeName","src":"8032:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53010,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"7988:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7998:4:88","8021:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"7988:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53018,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52990,"src":"8076:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53019,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8103:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8117:10:88","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8103:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53021,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"8166:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53022,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52611,"src":"8220:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53023,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8277:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53024,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"8336:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53025,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"8400:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53026,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"8457:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53027,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8506:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53028,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"8557:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8572:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"8557:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53030,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52998,"src":"8610:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53008,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7927:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7946:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7927:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7978:8:88","8060:14:88","8092:9:88","8141:23:88","8205:13:88","8256:19:88","8316:18:88","8377:21:88","8445:10:88","8490:14:88","8541:14:88","8596:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7927:700:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7874:753:88"},{"expression":{"id":53033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53007,"src":"8645:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":52995,"id":53034,"nodeType":"Return","src":"8638:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7660:35:88","parameters":{"id":52991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52990,"mutability":"mutable","name":"gw","nameLocation":"7713:2:88","nodeType":"VariableDeclaration","scope":53036,"src":"7705:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52989,"name":"address","nodeType":"ElementaryTypeName","src":"7705:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7695:26:88"},"returnParameters":{"id":52995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53036,"src":"7753:43:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52993,"nodeType":"UserDefinedTypeName","pathNode":{"id":52992,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7753:18:88","7772:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7753:36:88"},"referencedDeclaration":36253,"src":"7753:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7752:45:88"},"scope":53037,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52913,"name":"Test","nameLocations":["6768:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6768:4:88"},"id":52914,"nodeType":"InheritanceSpecifier","src":"6768:4:88"},{"baseName":{"id":52915,"name":"TestParams","nameLocations":["6774:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"6774:10:88"},"id":52916,"nodeType":"InheritanceSpecifier","src":"6774:10:88"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53037,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6749:15:88","scope":55376,"usedErrors":[]},{"id":55375,"nodeType":"ContractDefinition","src":"8662:23266:88","nodes":[{"id":53051,"nodeType":"UsingForDirective","src":"8766:34:88","nodes":[],"global":false,"libraryName":{"id":53048,"name":"SubnetIDHelper","nameLocations":["8772:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"8772:14:88"},"typeName":{"id":53050,"nodeType":"UserDefinedTypeName","pathNode":{"id":53049,"name":"SubnetID","nameLocations":["8791:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"8791:8:88"},"referencedDeclaration":50077,"src":"8791:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":53055,"nodeType":"UsingForDirective","src":"8805:42:88","nodes":[],"global":false,"libraryName":{"id":53052,"name":"SupplySourceHelper","nameLocations":["8811:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"8811:18:88"},"typeName":{"id":53054,"nodeType":"UserDefinedTypeName","pathNode":{"id":53053,"name":"SupplySource","nameLocations":["8834:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"8834:12:88"},"referencedDeclaration":50226,"src":"8834:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":53059,"nodeType":"UsingForDirective","src":"8852:34:88","nodes":[],"global":false,"libraryName":{"id":53056,"name":"CrossMsgHelper","nameLocations":["8858:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"8858:14:88"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"CrossMsg","nameLocations":["8877:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8877:8:88"},"referencedDeclaration":49974,"src":"8877:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53063,"nodeType":"UsingForDirective","src":"8891:40:88","nodes":[],"global":false,"libraryName":{"id":53060,"name":"StorableMsgHelper","nameLocations":["8897:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"8897:17:88"},"typeName":{"id":53062,"nodeType":"UserDefinedTypeName","pathNode":{"id":53061,"name":"StorableMsg","nameLocations":["8919:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"8919:11:88"},"referencedDeclaration":49991,"src":"8919:11:88","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53067,"nodeType":"UsingForDirective","src":"8936:38:88","nodes":[],"global":false,"libraryName":{"id":53064,"name":"FvmAddressHelper","nameLocations":["8942:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"8942:16:88"},"typeName":{"id":53066,"nodeType":"UserDefinedTypeName","pathNode":{"id":53065,"name":"FvmAddress","nameLocations":["8963:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8963:10:88"},"referencedDeclaration":49998,"src":"8963:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53071,"nodeType":"EventDefinition","src":"8980:67:88","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"8986:21:88","parameters":{"id":53070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53069,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9024:21:88","nodeType":"VariableDeclaration","scope":53071,"src":"9008:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53068,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9007:39:88"}},{"id":53075,"nodeType":"FunctionDefinition","src":"9053:16:88","nodes":[],"body":{"id":53074,"nodeType":"Block","src":"9067:2:88","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53072,"nodeType":"ParameterList","parameters":[],"src":"9064:2:88"},"returnParameters":{"id":53073,"nodeType":"ParameterList","parameters":[],"src":"9067:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53250,"nodeType":"FunctionDefinition","src":"9075:1529:88","nodes":[],"body":{"id":53249,"nodeType":"Block","src":"9107:1497:88","nodes":[],"statements":[{"assignments":[53082],"declarations":[{"constant":false,"id":53082,"mutability":"mutable","name":"path","nameLocation":"9134:4:88","nodeType":"VariableDeclaration","scope":53249,"src":"9117:21:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53080,"name":"address","nodeType":"ElementaryTypeName","src":"9117:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53081,"nodeType":"ArrayTypeName","src":"9117:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53088,"initialValue":{"arguments":[{"hexValue":"31","id":53086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9155:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9141:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53084,"nodeType":"ArrayTypeName","src":"9145:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9141:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9117:40:88"},{"expression":{"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53089,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53082,"src":"9167:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53091,"indexExpression":{"hexValue":"30","id":53090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9167:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53092,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"9177:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9167:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53094,"nodeType":"ExpressionStatement","src":"9167:25:88"},{"assignments":[53099],"declarations":[{"constant":false,"id":53099,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9285:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"9245:59:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53098,"nodeType":"UserDefinedTypeName","pathNode":{"id":53097,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9245:14:88","9260:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9245:32:88"},"referencedDeclaration":35883,"src":"9245:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53100,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52911,"src":"9307:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9245:84:88"},{"expression":{"id":53107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53103,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9339:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53105,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53099,"src":"9377:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53104,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"9356:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:41:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9339:58:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53108,"nodeType":"ExpressionStatement","src":"9339:58:88"},{"expression":{"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53109,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"9408:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53113,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9446:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9438:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53111,"name":"address","nodeType":"ElementaryTypeName","src":"9438:7:88","typeDescriptions":{}}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9438:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53110,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9419:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9419:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9408:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53117,"nodeType":"ExpressionStatement","src":"9408:54:88"},{"expression":{"id":53125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"9472:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53122,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9512:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9504:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9504:7:88","typeDescriptions":{}}},"id":53123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9504:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53119,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9484:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9472:56:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53126,"nodeType":"ExpressionStatement","src":"9472:56:88"},{"expression":{"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53127,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"9538:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53131,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9588:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9580:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53129,"name":"address","nodeType":"ElementaryTypeName","src":"9580:7:88","typeDescriptions":{}}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9580:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53128,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9561:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9538:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53135,"nodeType":"ExpressionStatement","src":"9538:66:88"},{"expression":{"id":53143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53136,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9614:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53140,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9664:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9656:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53138,"name":"address","nodeType":"ElementaryTypeName","src":"9656:7:88","typeDescriptions":{}}},"id":53141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53137,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9637:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9637:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9614:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53144,"nodeType":"ExpressionStatement","src":"9614:66:88"},{"expression":{"id":53152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53145,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9690:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53149,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9744:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9736:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53147,"name":"address","nodeType":"ElementaryTypeName","src":"9736:7:88","typeDescriptions":{}}},"id":53150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9736:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53146,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9715:20:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9690:70:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53153,"nodeType":"ExpressionStatement","src":"9690:70:88"},{"expression":{"id":53161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53154,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9770:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53158,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9822:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9814:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53156,"name":"address","nodeType":"ElementaryTypeName","src":"9814:7:88","typeDescriptions":{}}},"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9814:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53155,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9794:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9770:68:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53162,"nodeType":"ExpressionStatement","src":"9770:68:88"},{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53163,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9848:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53167,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9892:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9884:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53165,"name":"address","nodeType":"ElementaryTypeName","src":"9884:7:88","typeDescriptions":{}}},"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9884:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53164,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9862:21:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9848:60:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53171,"nodeType":"ExpressionStatement","src":"9848:60:88"},{"expression":{"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53172,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9918:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53176,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9955:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9947:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"9947:7:88","typeDescriptions":{}}},"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53173,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9929:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9929:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9918:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53180,"nodeType":"ExpressionStatement","src":"9918:53:88"},{"expression":{"id":53188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53181,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9981:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53185,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10016:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53183,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:88","typeDescriptions":{}}},"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53182,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"9992:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9992:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"9981:51:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53189,"nodeType":"ExpressionStatement","src":"9981:51:88"},{"assignments":[53194],"declarations":[{"constant":false,"id":53194,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10141:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"10097:63:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53193,"nodeType":"UserDefinedTypeName","pathNode":{"id":53192,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10097:18:88","10116:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10097:36:88"},"referencedDeclaration":36253,"src":"10097:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53201,"initialValue":{"arguments":[{"arguments":[{"id":53198,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10220:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53196,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:88","typeDescriptions":{}}},"id":53199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53195,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"10163:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10163:82:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10097:148:88"},{"expression":{"id":53206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10256:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53204,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53194,"src":"10286:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53203,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53710,"src":"10268:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10256:50:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53207,"nodeType":"ExpressionStatement","src":"10256:50:88"},{"expression":{"id":53215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53208,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10316:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10360:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10352:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53210,"name":"address","nodeType":"ElementaryTypeName","src":"10352:7:88","typeDescriptions":{}}},"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53209,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"10328:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10328:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"10316:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53216,"nodeType":"ExpressionStatement","src":"10316:55:88"},{"expression":{"id":53224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10381:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10423:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10415:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53219,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:88","typeDescriptions":{}}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53218,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"10392:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10392:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"10381:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53225,"nodeType":"ExpressionStatement","src":"10381:53:88"},{"expression":{"id":53233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53226,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"10444:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53230,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10481:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10473:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53228,"name":"address","nodeType":"ElementaryTypeName","src":"10473:7:88","typeDescriptions":{}}},"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10473:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53227,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10455:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10455:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10444:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53234,"nodeType":"ExpressionStatement","src":"10444:48:88"},{"expression":{"id":53242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53235,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"10502:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53239,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10537:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10529:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53237,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:88","typeDescriptions":{}}},"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10529:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53236,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10513:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10513:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10502:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53243,"nodeType":"ExpressionStatement","src":"10502:46:88"},{"expression":{"arguments":[{"id":53245,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"10572:19:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10593:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53244,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"10559:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53248,"nodeType":"ExpressionStatement","src":"10559:38:88"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9084:5:88","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"9089:2:88"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"9107:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53509,"nodeType":"FunctionDefinition","src":"10610:3185:88","nodes":[],"body":{"id":53508,"nodeType":"Block","src":"10720:3075:88","nodes":[],"statements":[{"assignments":[53261],"declarations":[{"constant":false,"id":53261,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"10749:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10730:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53260,"nodeType":"UserDefinedTypeName","pathNode":{"id":53259,"name":"CheckpointingFacet","nameLocations":["10730:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10730:18:88"},"referencedDeclaration":39870,"src":"10730:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10770:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53263,"nodeType":"UserDefinedTypeName","pathNode":{"id":53262,"name":"CheckpointingFacet","nameLocations":["10774:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10774:18:88"},"referencedDeclaration":39870,"src":"10774:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10770:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10730:64:88"},{"assignments":[53269],"declarations":[{"constant":false,"id":53269,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"10823:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10804:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53268,"nodeType":"UserDefinedTypeName","pathNode":{"id":53267,"name":"XnetMessagingFacet","nameLocations":["10804:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10804:18:88"},"referencedDeclaration":40144,"src":"10804:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10844:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53271,"nodeType":"UserDefinedTypeName","pathNode":{"id":53270,"name":"XnetMessagingFacet","nameLocations":["10848:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10848:18:88"},"referencedDeclaration":40144,"src":"10848:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10844:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10804:64:88"},{"assignments":[53277],"declarations":[{"constant":false,"id":53277,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"10899:20:88","nodeType":"VariableDeclaration","scope":53508,"src":"10878:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53276,"nodeType":"UserDefinedTypeName","pathNode":{"id":53275,"name":"TopDownFinalityFacet","nameLocations":["10878:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10878:20:88"},"referencedDeclaration":40071,"src":"10878:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10922:24:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53279,"nodeType":"UserDefinedTypeName","pathNode":{"id":53278,"name":"TopDownFinalityFacet","nameLocations":["10926:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10926:20:88"},"referencedDeclaration":40071,"src":"10926:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"10878:70:88"},{"assignments":[53285],"declarations":[{"constant":false,"id":53285,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"10978:19:88","nodeType":"VariableDeclaration","scope":53508,"src":"10958:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53284,"nodeType":"UserDefinedTypeName","pathNode":{"id":53283,"name":"BottomUpRouterFacet","nameLocations":["10958:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"10958:19:88"},"referencedDeclaration":39601,"src":"10958:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53290,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11000:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53287,"nodeType":"UserDefinedTypeName","pathNode":{"id":53286,"name":"BottomUpRouterFacet","nameLocations":["11004:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11004:19:88"},"referencedDeclaration":39601,"src":"11004:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"10958:67:88"},{"assignments":[53293],"declarations":[{"constant":false,"id":53293,"mutability":"mutable","name":"manager","nameLocation":"11056:7:88","nodeType":"VariableDeclaration","scope":53508,"src":"11036:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53292,"nodeType":"UserDefinedTypeName","pathNode":{"id":53291,"name":"GatewayManagerFacet","nameLocations":["11036:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11036:19:88"},"referencedDeclaration":38870,"src":"11036:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53298,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11066:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayManagerFacet","nameLocations":["11070:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11070:19:88"},"referencedDeclaration":38870,"src":"11070:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11066:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11036:55:88"},{"assignments":[53301],"declarations":[{"constant":false,"id":53301,"mutability":"mutable","name":"getter","nameLocation":"11120:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11101:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53300,"nodeType":"UserDefinedTypeName","pathNode":{"id":53299,"name":"GatewayGetterFacet","nameLocations":["11101:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11101:18:88"},"referencedDeclaration":38317,"src":"11101:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11129:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53303,"nodeType":"UserDefinedTypeName","pathNode":{"id":53302,"name":"GatewayGetterFacet","nameLocations":["11133:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11133:18:88"},"referencedDeclaration":38317,"src":"11133:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11101:52:88"},{"assignments":[53309],"declarations":[{"constant":false,"id":53309,"mutability":"mutable","name":"messenger","nameLocation":"11185:9:88","nodeType":"VariableDeclaration","scope":53508,"src":"11163:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53308,"nodeType":"UserDefinedTypeName","pathNode":{"id":53307,"name":"GatewayMessengerFacet","nameLocations":["11163:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11163:21:88"},"referencedDeclaration":39235,"src":"11163:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11197:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53311,"nodeType":"UserDefinedTypeName","pathNode":{"id":53310,"name":"GatewayMessengerFacet","nameLocations":["11201:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11201:21:88"},"referencedDeclaration":39235,"src":"11201:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11197:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11163:61:88"},{"assignments":[53317],"declarations":[{"constant":false,"id":53317,"mutability":"mutable","name":"cutter","nameLocation":"11250:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11234:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53316,"nodeType":"UserDefinedTypeName","pathNode":{"id":53315,"name":"DiamondCutFacet","nameLocations":["11234:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11234:15:88"},"referencedDeclaration":36918,"src":"11234:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53322,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11259:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53319,"nodeType":"UserDefinedTypeName","pathNode":{"id":53318,"name":"DiamondCutFacet","nameLocations":["11263:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11263:15:88"},"referencedDeclaration":36918,"src":"11263:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"11234:46:88"},{"assignments":[53325],"declarations":[{"constant":false,"id":53325,"mutability":"mutable","name":"louper","nameLocation":"11308:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11290:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53324,"nodeType":"UserDefinedTypeName","pathNode":{"id":53323,"name":"DiamondLoupeFacet","nameLocations":["11290:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11290:17:88"},"referencedDeclaration":37355,"src":"11290:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11317:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53327,"nodeType":"UserDefinedTypeName","pathNode":{"id":53326,"name":"DiamondLoupeFacet","nameLocations":["11321:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11321:17:88"},"referencedDeclaration":37355,"src":"11321:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11317:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"11290:50:88"},{"assignments":[53336],"declarations":[{"constant":false,"id":53336,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"11378:12:88","nodeType":"VariableDeclaration","scope":53508,"src":"11351:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"IDiamond.FacetCut","nameLocations":["11351:8:88","11360:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11351:17:88"},"referencedDeclaration":40159,"src":"11351:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53335,"nodeType":"ArrayTypeName","src":"11351:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53343,"initialValue":{"arguments":[{"hexValue":"39","id":53341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11417:1:88","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11393:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"IDiamond.FacetCut","nameLocations":["11397:8:88","11406:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11397:17:88"},"referencedDeclaration":40159,"src":"11397:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53339,"nodeType":"ArrayTypeName","src":"11397:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11393:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11351:68:88"},{"expression":{"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53344,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11430:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53346,"indexExpression":{"hexValue":"30","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11443:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11430:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53351,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53261,"src":"11520:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11512:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53349,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:88","typeDescriptions":{}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11512:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53353,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11565:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11574:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11565:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11589:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11565:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53356,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"11629:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53347,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11462:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11471:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11462:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11498:12:88","11557:6:88","11610:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11462:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11448:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11430:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53360,"nodeType":"ExpressionStatement","src":"11430:253:88"},{"expression":{"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53361,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11694:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53363,"indexExpression":{"hexValue":"36","id":53362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:88","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11694:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53368,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53269,"src":"11784:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53366,"name":"address","nodeType":"ElementaryTypeName","src":"11776:7:88","typeDescriptions":{}}},"id":53369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11776:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53370,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11829:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11838:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11829:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11853:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11829:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53373,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"11893:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53364,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11726:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11735:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11726:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11762:12:88","11821:6:88","11874:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11726:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11712:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11694:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53377,"nodeType":"ExpressionStatement","src":"11694:253:88"},{"expression":{"id":53393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53378,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11958:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53380,"indexExpression":{"hexValue":"37","id":53379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:88","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11958:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53385,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53277,"src":"12048:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12040:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53383,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:88","typeDescriptions":{}}},"id":53386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53387,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12095:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12104:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12095:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12119:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12095:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53390,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"12159:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53381,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11990:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11999:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11990:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12026:12:88","12087:6:88","12140:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11990:215:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11976:239:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11958:257:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53394,"nodeType":"ExpressionStatement","src":"11958:257:88"},{"expression":{"id":53410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53395,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12226:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53397,"indexExpression":{"hexValue":"38","id":53396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:88","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12226:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53402,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53285,"src":"12316:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12308:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53400,"name":"address","nodeType":"ElementaryTypeName","src":"12308:7:88","typeDescriptions":{}}},"id":53403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12308:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53404,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12362:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12371:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12362:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12386:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12362:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53407,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"12426:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53398,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12258:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12267:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12258:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12294:12:88","12354:6:88","12407:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12258:213:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53409,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12244:237:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12226:255:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53411,"nodeType":"ExpressionStatement","src":"12226:255:88"},{"expression":{"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53412,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12492:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53414,"indexExpression":{"hexValue":"31","id":53413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12492:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53419,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53293,"src":"12582:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53417,"name":"address","nodeType":"ElementaryTypeName","src":"12574:7:88","typeDescriptions":{}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53421,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12616:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12625:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12616:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12640:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12616:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53424,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12680:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53415,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12524:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12533:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12524:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12560:12:88","12608:6:88","12661:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12524:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12510:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12492:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53428,"nodeType":"ExpressionStatement","src":"12492:231:88"},{"expression":{"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53429,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12734:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53431,"indexExpression":{"hexValue":"32","id":53430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12747:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12734:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53436,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53301,"src":"12824:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53434,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:88","typeDescriptions":{}}},"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53438,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12857:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12866:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12857:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12881:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12857:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53441,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12921:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12766:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12775:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12766:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12802:12:88","12849:6:88","12902:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12766:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12752:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12734:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53445,"nodeType":"ExpressionStatement","src":"12734:229:88"},{"expression":{"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53446,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12974:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53448,"indexExpression":{"hexValue":"33","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12987:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12974:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53453,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53309,"src":"13064:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13056:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53451,"name":"address","nodeType":"ElementaryTypeName","src":"13056:7:88","typeDescriptions":{}}},"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53455,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13100:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13109:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13100:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13124:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13100:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53458,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13164:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13006:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13042:12:88","13092:6:88","13145:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13006:193:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12992:217:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12974:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53462,"nodeType":"ExpressionStatement","src":"12974:235:88"},{"expression":{"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53463,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13220:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53465,"indexExpression":{"hexValue":"34","id":53464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13233:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13220:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53470,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53325,"src":"13310:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13302:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53468,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:88","typeDescriptions":{}}},"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13302:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53472,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13343:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13352:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13343:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13367:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13343:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53475,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13407:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13252:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13261:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13252:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13288:12:88","13335:6:88","13388:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13252:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13238:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13220:228:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53479,"nodeType":"ExpressionStatement","src":"13220:228:88"},{"expression":{"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53480,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13459:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53482,"indexExpression":{"hexValue":"35","id":53481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13472:1:88","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13459:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53487,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53317,"src":"13549:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"13541:7:88","typeDescriptions":{}}},"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13541:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53489,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13582:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13591:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13582:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13606:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13582:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53492,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13646:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13491:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13500:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13491:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13527:12:88","13574:6:88","13627:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13491:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13477:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13459:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53496,"nodeType":"ExpressionStatement","src":"13459:229:88"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53497,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13699:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53501,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13735:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53502,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53253,"src":"13749:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13716:18:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53499,"nodeType":"UserDefinedTypeName","pathNode":{"id":53498,"name":"GatewayDiamond","nameLocations":["13720:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"13720:14:88"},"referencedDeclaration":36170,"src":"13720:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13716:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"13699:57:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53505,"nodeType":"ExpressionStatement","src":"13699:57:88"},{"expression":{"id":53506,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13774:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53258,"id":53507,"nodeType":"Return","src":"13767:21:88"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"10619:20:88","parameters":{"id":53254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53253,"mutability":"mutable","name":"params","nameLocation":"10680:6:88","nodeType":"VariableDeclaration","scope":53509,"src":"10640:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53252,"nodeType":"UserDefinedTypeName","pathNode":{"id":53251,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10640:14:88","10655:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10640:32:88"},"referencedDeclaration":35883,"src":"10640:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10639:48:88"},"returnParameters":{"id":53258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53509,"src":"10704:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53256,"nodeType":"UserDefinedTypeName","pathNode":{"id":53255,"name":"GatewayDiamond","nameLocations":["10704:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"10704:14:88"},"referencedDeclaration":36170,"src":"10704:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"10703:16:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53575,"nodeType":"FunctionDefinition","src":"13801:854:88","nodes":[],"body":{"id":53574,"nodeType":"Block","src":"14009:646:88","nodes":[],"statements":[{"assignments":[53527],"declarations":[{"constant":false,"id":53527,"mutability":"mutable","name":"diamondCut","nameLocation":"14046:10:88","nodeType":"VariableDeclaration","scope":53574,"src":"14019:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53525,"nodeType":"UserDefinedTypeName","pathNode":{"id":53524,"name":"IDiamond.FacetCut","nameLocations":["14019:8:88","14028:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14019:17:88"},"referencedDeclaration":40159,"src":"14019:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53526,"nodeType":"ArrayTypeName","src":"14019:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53534,"initialValue":{"arguments":[{"hexValue":"32","id":53532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14083:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14059:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53529,"nodeType":"UserDefinedTypeName","pathNode":{"id":53528,"name":"IDiamond.FacetCut","nameLocations":["14063:8:88","14072:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14063:17:88"},"referencedDeclaration":40159,"src":"14063:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53530,"nodeType":"ArrayTypeName","src":"14063:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14059:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14019:66:88"},{"expression":{"id":53547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14096:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53537,"indexExpression":{"hexValue":"30","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14096:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53540,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53514,"src":"14176:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53541,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14214:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14223:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14214:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14238:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14214:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53544,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"14278:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53538,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:88","14206:6:88","14259:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:184:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53546,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:208:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14096:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53548,"nodeType":"ExpressionStatement","src":"14096:224:88"},{"expression":{"id":53561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53549,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14331:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53551,"indexExpression":{"hexValue":"31","id":53550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14331:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53554,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"14411:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53555,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14450:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14459:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14450:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14474:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14450:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53558,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"14514:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53552,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14361:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14370:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14361:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14397:12:88","14442:6:88","14495:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14361:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14347:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14331:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53562,"nodeType":"ExpressionStatement","src":"14331:226:88"},{"expression":{"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53563,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14568:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53567,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14603:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53568,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53512,"src":"14615:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14580:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53565,"nodeType":"UserDefinedTypeName","pathNode":{"id":53564,"name":"SubnetActorDiamond","nameLocations":["14584:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14584:18:88"},"referencedDeclaration":36615,"src":"14584:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"14568:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53571,"nodeType":"ExpressionStatement","src":"14568:54:88"},{"expression":{"id":53572,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14639:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53521,"id":53573,"nodeType":"Return","src":"14632:16:88"}]},"functionSelector":"0d8d4acf","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"13810:35:88","parameters":{"id":53517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53512,"mutability":"mutable","name":"params","nameLocation":"13899:6:88","nodeType":"VariableDeclaration","scope":53575,"src":"13855:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53511,"nodeType":"UserDefinedTypeName","pathNode":{"id":53510,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["13855:18:88","13874:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"13855:36:88"},"referencedDeclaration":36253,"src":"13855:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53514,"mutability":"mutable","name":"getterFaucet","nameLocation":"13923:12:88","nodeType":"VariableDeclaration","scope":53575,"src":"13915:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13915:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53516,"mutability":"mutable","name":"managerFaucet","nameLocation":"13953:13:88","nodeType":"VariableDeclaration","scope":53575,"src":"13945:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53515,"name":"address","nodeType":"ElementaryTypeName","src":"13945:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13845:127:88"},"returnParameters":{"id":53521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53575,"src":"13989:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53519,"nodeType":"UserDefinedTypeName","pathNode":{"id":53518,"name":"SubnetActorDiamond","nameLocations":["13989:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"13989:18:88"},"referencedDeclaration":36615,"src":"13989:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"13988:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53710,"nodeType":"FunctionDefinition","src":"14661:1518:88","nodes":[],"body":{"id":53709,"nodeType":"Block","src":"14776:1403:88","nodes":[],"statements":[{"assignments":[53586],"declarations":[{"constant":false,"id":53586,"mutability":"mutable","name":"manager","nameLocation":"14810:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"14786:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53585,"nodeType":"UserDefinedTypeName","pathNode":{"id":53584,"name":"SubnetActorManagerFacet","nameLocations":["14786:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14786:23:88"},"referencedDeclaration":52151,"src":"14786:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53591,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14820:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53588,"nodeType":"UserDefinedTypeName","pathNode":{"id":53587,"name":"SubnetActorManagerFacet","nameLocations":["14824:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14824:23:88"},"referencedDeclaration":52151,"src":"14824:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14820:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"14786:63:88"},{"assignments":[53594],"declarations":[{"constant":false,"id":53594,"mutability":"mutable","name":"getter","nameLocation":"14882:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14859:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53593,"nodeType":"UserDefinedTypeName","pathNode":{"id":53592,"name":"SubnetActorGetterFacet","nameLocations":["14859:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14859:22:88"},"referencedDeclaration":50887,"src":"14859:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53599,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14891:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53596,"nodeType":"UserDefinedTypeName","pathNode":{"id":53595,"name":"SubnetActorGetterFacet","nameLocations":["14895:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14895:22:88"},"referencedDeclaration":50887,"src":"14895:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14891:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"14859:60:88"},{"assignments":[53602],"declarations":[{"constant":false,"id":53602,"mutability":"mutable","name":"louper","nameLocation":"14947:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14929:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53601,"nodeType":"UserDefinedTypeName","pathNode":{"id":53600,"name":"DiamondLoupeFacet","nameLocations":["14929:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14929:17:88"},"referencedDeclaration":37355,"src":"14929:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14956:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"DiamondLoupeFacet","nameLocations":["14960:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14960:17:88"},"referencedDeclaration":37355,"src":"14960:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"14929:50:88"},{"assignments":[53610],"declarations":[{"constant":false,"id":53610,"mutability":"mutable","name":"cutter","nameLocation":"15005:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14989:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"DiamondCutFacet","nameLocations":["14989:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14989:15:88"},"referencedDeclaration":36918,"src":"14989:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15014:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53612,"nodeType":"UserDefinedTypeName","pathNode":{"id":53611,"name":"DiamondCutFacet","nameLocations":["15018:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"15018:15:88"},"referencedDeclaration":36918,"src":"15018:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"14989:46:88"},{"assignments":[53621],"declarations":[{"constant":false,"id":53621,"mutability":"mutable","name":"diamondCut","nameLocation":"15073:10:88","nodeType":"VariableDeclaration","scope":53709,"src":"15046:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53619,"nodeType":"UserDefinedTypeName","pathNode":{"id":53618,"name":"IDiamond.FacetCut","nameLocations":["15046:8:88","15055:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15046:17:88"},"referencedDeclaration":40159,"src":"15046:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53620,"nodeType":"ArrayTypeName","src":"15046:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53628,"initialValue":{"arguments":[{"hexValue":"34","id":53626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15110:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15086:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53623,"nodeType":"UserDefinedTypeName","pathNode":{"id":53622,"name":"IDiamond.FacetCut","nameLocations":["15090:8:88","15099:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15090:17:88"},"referencedDeclaration":40159,"src":"15090:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53624,"nodeType":"ArrayTypeName","src":"15090:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15086:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15046:66:88"},{"expression":{"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53629,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15123:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53631,"indexExpression":{"hexValue":"30","id":53630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15134:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15123:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53636,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53586,"src":"15211:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53634,"name":"address","nodeType":"ElementaryTypeName","src":"15203:7:88","typeDescriptions":{}}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15203:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53638,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15245:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15254:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15245:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15269:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15245:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53641,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"15309:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53632,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15153:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15162:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15153:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15189:12:88","15237:6:88","15290:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15153:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15139:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15123:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53645,"nodeType":"ExpressionStatement","src":"15123:229:88"},{"expression":{"id":53661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53646,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15363:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53648,"indexExpression":{"hexValue":"31","id":53647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15374:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15363:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53653,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15451:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15443:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53651,"name":"address","nodeType":"ElementaryTypeName","src":"15443:7:88","typeDescriptions":{}}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15443:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53655,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15484:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15493:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15484:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15508:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15484:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53658,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"15548:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53649,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15393:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15402:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15393:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15429:12:88","15476:6:88","15529:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15393:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15379:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15363:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53662,"nodeType":"ExpressionStatement","src":"15363:227:88"},{"expression":{"id":53678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53663,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15601:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53665,"indexExpression":{"hexValue":"32","id":53664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15612:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15601:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53670,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53610,"src":"15689:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15681:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53668,"name":"address","nodeType":"ElementaryTypeName","src":"15681:7:88","typeDescriptions":{}}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15681:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53672,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15722:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15722:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15746:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15722:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53675,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"15786:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53666,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15631:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15640:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15631:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15667:12:88","15714:6:88","15767:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15631:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15617:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15601:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53679,"nodeType":"ExpressionStatement","src":"15601:227:88"},{"expression":{"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53680,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15839:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53682,"indexExpression":{"hexValue":"33","id":53681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15850:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15839:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53687,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53602,"src":"15927:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15919:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53685,"name":"address","nodeType":"ElementaryTypeName","src":"15919:7:88","typeDescriptions":{}}},"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15919:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53689,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15960:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15960:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15984:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15960:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53692,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"16024:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53683,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15869:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15878:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15869:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15905:12:88","15952:6:88","16005:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15869:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15855:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15839:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53696,"nodeType":"ExpressionStatement","src":"15839:226:88"},{"assignments":[53699],"declarations":[{"constant":false,"id":53699,"mutability":"mutable","name":"diamond","nameLocation":"16095:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"16076:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53698,"nodeType":"UserDefinedTypeName","pathNode":{"id":53697,"name":"SubnetActorDiamond","nameLocations":["16076:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16076:18:88"},"referencedDeclaration":36615,"src":"16076:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53706,"initialValue":{"arguments":[{"id":53703,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"16128:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53704,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53578,"src":"16140:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16105:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53701,"nodeType":"UserDefinedTypeName","pathNode":{"id":53700,"name":"SubnetActorDiamond","nameLocations":["16109:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16109:18:88"},"referencedDeclaration":36615,"src":"16109:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16105:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"16076:71:88"},{"expression":{"id":53707,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53699,"src":"16165:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53583,"id":53708,"nodeType":"Return","src":"16158:14:88"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14670:17:88","parameters":{"id":53579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53578,"mutability":"mutable","name":"params","nameLocation":"14732:6:88","nodeType":"VariableDeclaration","scope":53710,"src":"14688:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14688:18:88","14707:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14688:36:88"},"referencedDeclaration":36253,"src":"14688:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"14687:52:88"},"returnParameters":{"id":53583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53710,"src":"14756:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53581,"nodeType":"UserDefinedTypeName","pathNode":{"id":53580,"name":"SubnetActorDiamond","nameLocations":["14756:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14756:18:88"},"referencedDeclaration":36615,"src":"14756:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14755:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53739,"nodeType":"FunctionDefinition","src":"16185:522:88","nodes":[],"body":{"id":53738,"nodeType":"Block","src":"16429:278:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":53727,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"16470:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53728,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53715,"src":"16499:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53729,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53717,"src":"16523:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53730,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53719,"src":"16561:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53731,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"16589:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53732,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53723,"src":"16615:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53733,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"16648:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16663:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"16648:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16687:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53726,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53943,"src":"16439:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50165_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:261:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53737,"nodeType":"ExpressionStatement","src":"16439:261:88"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16194:17:88","parameters":{"id":53724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53712,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16229:15:88","nodeType":"VariableDeclaration","scope":53739,"src":"16221:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53711,"name":"address","nodeType":"ElementaryTypeName","src":"16221:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53715,"mutability":"mutable","name":"_consensus","nameLocation":"16268:10:88","nodeType":"VariableDeclaration","scope":53739,"src":"16254:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"ConsensusType","nameLocations":["16254:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16254:13:88"},"referencedDeclaration":37359,"src":"16254:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53717,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16296:24:88","nodeType":"VariableDeclaration","scope":53739,"src":"16288:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53716,"name":"uint256","nodeType":"ElementaryTypeName","src":"16288:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53719,"mutability":"mutable","name":"_minValidators","nameLocation":"16337:14:88","nodeType":"VariableDeclaration","scope":53739,"src":"16330:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53718,"name":"uint64","nodeType":"ElementaryTypeName","src":"16330:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53721,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16368:12:88","nodeType":"VariableDeclaration","scope":53739,"src":"16361:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53720,"name":"uint64","nodeType":"ElementaryTypeName","src":"16361:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53723,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16396:19:88","nodeType":"VariableDeclaration","scope":53739,"src":"16390:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53722,"name":"uint8","nodeType":"ElementaryTypeName","src":"16390:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16211:210:88"},"returnParameters":{"id":53725,"nodeType":"ParameterList","parameters":[],"src":"16429:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53943,"nodeType":"FunctionDefinition","src":"16713:2630:88","nodes":[],"body":{"id":53942,"nodeType":"Block","src":"17036:2307:88","nodes":[],"statements":[{"assignments":[53762],"declarations":[{"constant":false,"id":53762,"mutability":"mutable","name":"_parentId","nameLocation":"17062:9:88","nodeType":"VariableDeclaration","scope":53942,"src":"17046:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53761,"nodeType":"UserDefinedTypeName","pathNode":{"id":53760,"name":"SubnetID","nameLocations":["17046:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"17046:8:88"},"referencedDeclaration":50077,"src":"17046:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53771,"initialValue":{"arguments":[{"id":53764,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17083:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17114:1:88","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":53767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17100:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53766,"nodeType":"ArrayTypeName","src":"17104:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53763,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"17074:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"17046:71:88"},{"expression":{"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53772,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17128:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17140:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"SubnetActorManagerFacet","nameLocations":["17144:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"17144:23:88"},"referencedDeclaration":52151,"src":"17144:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17140:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"17128:41:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53778,"nodeType":"ExpressionStatement","src":"17128:41:88"},{"expression":{"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53779,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17179:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17190:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53781,"nodeType":"UserDefinedTypeName","pathNode":{"id":53780,"name":"SubnetActorGetterFacet","nameLocations":["17194:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"17194:22:88"},"referencedDeclaration":50887,"src":"17194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17190:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"17179:39:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53785,"nodeType":"ExpressionStatement","src":"17179:39:88"},{"expression":{"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53786,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17228:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17239:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53788,"nodeType":"UserDefinedTypeName","pathNode":{"id":53787,"name":"DiamondCutFacet","nameLocations":["17243:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"17243:15:88"},"referencedDeclaration":36918,"src":"17243:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17239:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"17228:32:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53792,"nodeType":"ExpressionStatement","src":"17228:32:88"},{"expression":{"id":53798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53793,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"17270:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17281:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53795,"nodeType":"UserDefinedTypeName","pathNode":{"id":53794,"name":"DiamondLoupeFacet","nameLocations":["17285:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"17285:17:88"},"referencedDeclaration":37355,"src":"17285:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17281:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"17270:34:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53799,"nodeType":"ExpressionStatement","src":"17270:34:88"},{"assignments":[53805],"declarations":[{"constant":false,"id":53805,"mutability":"mutable","name":"diamondCut","nameLocation":"17342:10:88","nodeType":"VariableDeclaration","scope":53942,"src":"17315:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53803,"nodeType":"UserDefinedTypeName","pathNode":{"id":53802,"name":"IDiamond.FacetCut","nameLocations":["17315:8:88","17324:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17315:17:88"},"referencedDeclaration":40159,"src":"17315:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53804,"nodeType":"ArrayTypeName","src":"17315:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53812,"initialValue":{"arguments":[{"hexValue":"34","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17379:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17355:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53807,"nodeType":"UserDefinedTypeName","pathNode":{"id":53806,"name":"IDiamond.FacetCut","nameLocations":["17359:8:88","17368:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17359:17:88"},"referencedDeclaration":40159,"src":"17359:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53808,"nodeType":"ArrayTypeName","src":"17359:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17355:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17315:66:88"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17392:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"30","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17403:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17392:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17480:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17472:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17472:7:88","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17472:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17516:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17516:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17540:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17516:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"17580:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17422:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17431:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17422:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17458:12:88","17508:6:88","17561:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17422:191:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17408:215:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17392:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17392:231:88"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17634:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"31","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17645:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17634:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17722:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17714:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17714:7:88","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17757:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17766:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17757:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17781:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17757:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"17821:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17664:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17673:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17664:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17700:12:88","17749:6:88","17802:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17664:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17650:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17634:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17634:229:88"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17874:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"32","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17885:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17874:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17962:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17954:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"17954:7:88","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17954:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17997:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18006:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17997:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18021:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17997:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"18061:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17904:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17904:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17940:12:88","17989:6:88","18042:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17904:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17890:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17874:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17874:229:88"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18114:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"33","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18125:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18114:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"18202:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18194:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18194:7:88","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18194:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18237:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18246:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18237:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18261:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18237:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"18301:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18144:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18153:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18144:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18180:12:88","18229:6:88","18282:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18144:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18130:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18114:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18114:229:88"},{"expression":{"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53881,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"18354:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53885,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18402:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":53888,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53762,"src":"18491:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53889,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"18534:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53890,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18578:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53891,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"18631:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53892,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53748,"src":"18688:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53893,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53750,"src":"18741:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53894,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18791:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53895,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53757,"src":"18851:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":53896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18903:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":53897,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53755,"src":"18939:15:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53898,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"18988:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"19041:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19060:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"19041:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19041:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53886,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"18426:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18445:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"18426:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18481:8:88","18518:14:88","18567:9:88","18606:23:88","18673:13:88","18720:19:88","18771:18:88","18828:21:88","18891:10:88","18923:14:88","18972:14:88","19027:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"18426:657:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18366:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53883,"nodeType":"UserDefinedTypeName","pathNode":{"id":53882,"name":"SubnetActorDiamond","nameLocations":["18370:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18370:18:88"},"referencedDeclaration":36615,"src":"18370:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18366:727:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"18354:739:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53905,"nodeType":"ExpressionStatement","src":"18354:739:88"},{"expression":{"id":53913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53906,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19104:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53910,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19148:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19140:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53908,"name":"address","nodeType":"ElementaryTypeName","src":"19140:7:88","typeDescriptions":{}}},"id":53911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19140:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53907,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"19116:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19116:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"19104:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53914,"nodeType":"ExpressionStatement","src":"19104:55:88"},{"expression":{"id":53922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53915,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"19169:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53919,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19211:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53917,"name":"address","nodeType":"ElementaryTypeName","src":"19203:7:88","typeDescriptions":{}}},"id":53920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19203:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53916,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"19180:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19180:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"19169:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53923,"nodeType":"ExpressionStatement","src":"19169:53:88"},{"expression":{"id":53931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53924,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"19232:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53928,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19267:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19259:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53926,"name":"address","nodeType":"ElementaryTypeName","src":"19259:7:88","typeDescriptions":{}}},"id":53929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53925,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"19243:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19232:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53932,"nodeType":"ExpressionStatement","src":"19232:46:88"},{"expression":{"id":53940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53933,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"19288:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53937,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19325:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19317:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53935,"name":"address","nodeType":"ElementaryTypeName","src":"19317:7:88","typeDescriptions":{}}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19317:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53934,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"19299:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19299:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"19288:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53941,"nodeType":"ExpressionStatement","src":"19288:48:88"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16722:17:88","parameters":{"id":53758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53741,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16757:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16749:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53740,"name":"address","nodeType":"ElementaryTypeName","src":"16749:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53744,"mutability":"mutable","name":"_consensus","nameLocation":"16796:10:88","nodeType":"VariableDeclaration","scope":53943,"src":"16782:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"ConsensusType","nameLocations":["16782:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16782:13:88"},"referencedDeclaration":37359,"src":"16782:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53746,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16824:24:88","nodeType":"VariableDeclaration","scope":53943,"src":"16816:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"16816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53748,"mutability":"mutable","name":"_minValidators","nameLocation":"16865:14:88","nodeType":"VariableDeclaration","scope":53943,"src":"16858:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53747,"name":"uint64","nodeType":"ElementaryTypeName","src":"16858:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53750,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16896:12:88","nodeType":"VariableDeclaration","scope":53943,"src":"16889:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53749,"name":"uint64","nodeType":"ElementaryTypeName","src":"16889:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53752,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16924:19:88","nodeType":"VariableDeclaration","scope":53943,"src":"16918:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53751,"name":"uint8","nodeType":"ElementaryTypeName","src":"16918:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53755,"mutability":"mutable","name":"_permissionMode","nameLocation":"16968:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16953:30:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"PermissionMode","nameLocations":["16953:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"16953:14:88"},"referencedDeclaration":50165,"src":"16953:14:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53757,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"17000:22:88","nodeType":"VariableDeclaration","scope":53943,"src":"16993:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53756,"name":"uint16","nodeType":"ElementaryTypeName","src":"16993:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16739:289:88"},"returnParameters":{"id":53759,"nodeType":"ParameterList","parameters":[],"src":"17036:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54036,"nodeType":"FunctionDefinition","src":"19349:1021:88","nodes":[],"body":{"id":54035,"nodeType":"Block","src":"19441:929:88","nodes":[],"statements":[{"assignments":[53953],"declarations":[{"constant":false,"id":53953,"mutability":"mutable","name":"mockedManager","nameLocation":"19479:13:88","nodeType":"VariableDeclaration","scope":54035,"src":"19451:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":53952,"nodeType":"UserDefinedTypeName","pathNode":{"id":53951,"name":"SubnetActorManagerFacetMock","nameLocations":["19451:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19451:27:88"},"referencedDeclaration":57957,"src":"19451:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":53958,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19495:31:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"SubnetActorManagerFacetMock","nameLocations":["19499:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19499:27:88"},"referencedDeclaration":57957,"src":"19499:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}},"id":53957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19495:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"19451:77:88"},{"assignments":[53961],"declarations":[{"constant":false,"id":53961,"mutability":"mutable","name":"getter","nameLocation":"19561:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"19538:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53960,"nodeType":"UserDefinedTypeName","pathNode":{"id":53959,"name":"SubnetActorGetterFacet","nameLocations":["19538:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19538:22:88"},"referencedDeclaration":50887,"src":"19538:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19570:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetActorGetterFacet","nameLocations":["19574:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19574:22:88"},"referencedDeclaration":50887,"src":"19574:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19570:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"19538:60:88"},{"assignments":[53972],"declarations":[{"constant":false,"id":53972,"mutability":"mutable","name":"diamondCut","nameLocation":"19636:10:88","nodeType":"VariableDeclaration","scope":54035,"src":"19609:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53970,"nodeType":"UserDefinedTypeName","pathNode":{"id":53969,"name":"IDiamond.FacetCut","nameLocations":["19609:8:88","19618:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19609:17:88"},"referencedDeclaration":40159,"src":"19609:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53971,"nodeType":"ArrayTypeName","src":"19609:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53979,"initialValue":{"arguments":[{"hexValue":"32","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19673:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19649:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53974,"nodeType":"UserDefinedTypeName","pathNode":{"id":53973,"name":"IDiamond.FacetCut","nameLocations":["19653:8:88","19662:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19653:17:88"},"referencedDeclaration":40159,"src":"19653:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53975,"nodeType":"ArrayTypeName","src":"19653:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19649:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19609:66:88"},{"expression":{"id":53995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53980,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19686:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53982,"indexExpression":{"hexValue":"30","id":53981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19686:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53987,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"19774:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}],"id":53986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19766:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53985,"name":"address","nodeType":"ElementaryTypeName","src":"19766:7:88","typeDescriptions":{}}},"id":53988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19766:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53989,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19814:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19823:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"19814:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19838:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"19814:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53992,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"19878:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53983,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19716:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19716:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19752:12:88","19806:6:88","19859:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19716:201:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19702:225:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19686:241:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53996,"nodeType":"ExpressionStatement","src":"19686:241:88"},{"expression":{"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53997,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19938:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53999,"indexExpression":{"hexValue":"31","id":53998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19938:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54004,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53961,"src":"20026:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":54003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20018:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54002,"name":"address","nodeType":"ElementaryTypeName","src":"20018:7:88","typeDescriptions":{}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20018:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54006,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20059:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20068:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20059:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20083:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20059:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54009,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"20123:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54000,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19968:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19977:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19968:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20004:12:88","20051:6:88","20104:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19968:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19954:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19938:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54013,"nodeType":"ExpressionStatement","src":"19938:227:88"},{"assignments":[54018],"declarations":[{"constant":false,"id":54018,"mutability":"mutable","name":"params","nameLocation":"20220:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"20176:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["20176:18:88","20195:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"20176:36:88"},"referencedDeclaration":36253,"src":"20176:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54022,"initialValue":{"arguments":[{"id":54020,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"20265:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54019,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"20229:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20229:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"20176:92:88"},{"assignments":[54025],"declarations":[{"constant":false,"id":54025,"mutability":"mutable","name":"d","nameLocation":"20298:1:88","nodeType":"VariableDeclaration","scope":54035,"src":"20279:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54024,"nodeType":"UserDefinedTypeName","pathNode":{"id":54023,"name":"SubnetActorDiamond","nameLocations":["20279:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20279:18:88"},"referencedDeclaration":36615,"src":"20279:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54032,"initialValue":{"arguments":[{"id":54029,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"20325:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54030,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54018,"src":"20337:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20302:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54027,"nodeType":"UserDefinedTypeName","pathNode":{"id":54026,"name":"SubnetActorDiamond","nameLocations":["20306:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20306:18:88"},"referencedDeclaration":36615,"src":"20306:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"20279:65:88"},{"expression":{"id":54033,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54025,"src":"20362:1:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53950,"id":54034,"nodeType":"Return","src":"20355:8:88"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"19358:34:88","parameters":{"id":53946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53945,"mutability":"mutable","name":"gw","nameLocation":"19401:2:88","nodeType":"VariableDeclaration","scope":54036,"src":"19393:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53944,"name":"address","nodeType":"ElementaryTypeName","src":"19393:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19392:12:88"},"returnParameters":{"id":53950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54036,"src":"19421:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetActorDiamond","nameLocations":["19421:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"19421:18:88"},"referencedDeclaration":36615,"src":"19421:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"19420:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54178,"nodeType":"FunctionDefinition","src":"20422:1703:88","nodes":[],"body":{"id":54177,"nodeType":"Block","src":"20560:1565:88","nodes":[],"statements":[{"assignments":[54050],"declarations":[{"constant":false,"id":54050,"mutability":"mutable","name":"diamondCut","nameLocation":"20597:10:88","nodeType":"VariableDeclaration","scope":54177,"src":"20570:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54048,"nodeType":"UserDefinedTypeName","pathNode":{"id":54047,"name":"IDiamond.FacetCut","nameLocations":["20570:8:88","20579:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20570:17:88"},"referencedDeclaration":40159,"src":"20570:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54049,"nodeType":"ArrayTypeName","src":"20570:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54057,"initialValue":{"arguments":[{"hexValue":"34","id":54055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20610:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54052,"nodeType":"UserDefinedTypeName","pathNode":{"id":54051,"name":"IDiamond.FacetCut","nameLocations":["20614:8:88","20623:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20614:17:88"},"referencedDeclaration":40159,"src":"20614:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54053,"nodeType":"ArrayTypeName","src":"20614:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20610:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20570:66:88"},{"assignments":[54060],"declarations":[{"constant":false,"id":54060,"mutability":"mutable","name":"regCutFacet","nameLocation":"20663:11:88","nodeType":"VariableDeclaration","scope":54177,"src":"20647:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54059,"nodeType":"UserDefinedTypeName","pathNode":{"id":54058,"name":"DiamondCutFacet","nameLocations":["20647:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20647:15:88"},"referencedDeclaration":36918,"src":"20647:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20677:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54062,"nodeType":"UserDefinedTypeName","pathNode":{"id":54061,"name":"DiamondCutFacet","nameLocations":["20681:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20681:15:88"},"referencedDeclaration":36918,"src":"20681:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20677:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"20647:51:88"},{"assignments":[54068],"declarations":[{"constant":false,"id":54068,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"20726:13:88","nodeType":"VariableDeclaration","scope":54177,"src":"20708:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54067,"nodeType":"UserDefinedTypeName","pathNode":{"id":54066,"name":"DiamondLoupeFacet","nameLocations":["20708:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20708:17:88"},"referencedDeclaration":37355,"src":"20708:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54073,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20742:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54070,"nodeType":"UserDefinedTypeName","pathNode":{"id":54069,"name":"DiamondLoupeFacet","nameLocations":["20746:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20746:17:88"},"referencedDeclaration":37355,"src":"20746:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20742:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"20708:57:88"},{"assignments":[54076],"declarations":[{"constant":false,"id":54076,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"20795:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20775:34:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54075,"nodeType":"UserDefinedTypeName","pathNode":{"id":54074,"name":"RegisterSubnetFacet","nameLocations":["20775:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20775:19:88"},"referencedDeclaration":52279,"src":"20775:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20812:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54078,"nodeType":"UserDefinedTypeName","pathNode":{"id":54077,"name":"RegisterSubnetFacet","nameLocations":["20816:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20816:19:88"},"referencedDeclaration":52279,"src":"20816:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"20775:62:88"},{"assignments":[54084],"declarations":[{"constant":false,"id":54084,"mutability":"mutable","name":"regGetterFacet","nameLocation":"20865:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20847:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54083,"nodeType":"UserDefinedTypeName","pathNode":{"id":54082,"name":"SubnetGetterFacet","nameLocations":["20847:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20847:17:88"},"referencedDeclaration":52517,"src":"20847:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20882:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54086,"nodeType":"UserDefinedTypeName","pathNode":{"id":54085,"name":"SubnetGetterFacet","nameLocations":["20886:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20886:17:88"},"referencedDeclaration":52517,"src":"20886:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}},"id":54088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20882:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"20847:58:88"},{"expression":{"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54090,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"20916:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54092,"indexExpression":{"hexValue":"30","id":54091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20927:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20916:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54097,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54068,"src":"21004:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20996:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54095,"name":"address","nodeType":"ElementaryTypeName","src":"20996:7:88","typeDescriptions":{}}},"id":54098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20996:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54099,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21044:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21053:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21044:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21068:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21044:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54102,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"21108:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54093,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20946:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20955:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20946:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20982:12:88","21036:6:88","21089:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20946:200:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20932:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20916:240:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54106,"nodeType":"ExpressionStatement","src":"20916:240:88"},{"expression":{"id":54122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54107,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21166:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54109,"indexExpression":{"hexValue":"31","id":54108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21177:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21166:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54114,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54060,"src":"21254:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21246:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54112,"name":"address","nodeType":"ElementaryTypeName","src":"21246:7:88","typeDescriptions":{}}},"id":54115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21246:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54116,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21292:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21301:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21292:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21316:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21292:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54119,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"21356:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54110,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21196:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21205:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21196:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21232:12:88","21284:6:88","21337:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21196:198:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21182:222:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21166:238:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54123,"nodeType":"ExpressionStatement","src":"21166:238:88"},{"expression":{"id":54139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54124,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21414:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54126,"indexExpression":{"hexValue":"32","id":54125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21425:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21414:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54131,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54076,"src":"21502:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}],"id":54130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21494:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54129,"name":"address","nodeType":"ElementaryTypeName","src":"21494:7:88","typeDescriptions":{}}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54133,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21543:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21552:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21543:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21567:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21543:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54136,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"21607:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54127,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21453:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21444:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21480:12:88","21535:6:88","21588:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21444:206:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21430:230:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21414:246:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54140,"nodeType":"ExpressionStatement","src":"21414:246:88"},{"expression":{"id":54156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54141,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21670:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54143,"indexExpression":{"hexValue":"33","id":54142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21681:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21670:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54148,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54084,"src":"21758:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}],"id":54147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21750:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54146,"name":"address","nodeType":"ElementaryTypeName","src":"21750:7:88","typeDescriptions":{}}},"id":54149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21750:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54150,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21799:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21808:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21799:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21823:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21799:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54153,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"21863:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54144,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21700:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21709:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21700:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21736:12:88","21791:6:88","21844:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21700:212:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21686:236:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21670:252:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54157,"nodeType":"ExpressionStatement","src":"21670:252:88"},{"assignments":[54160],"declarations":[{"constant":false,"id":54160,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"21955:17:88","nodeType":"VariableDeclaration","scope":54177,"src":"21933:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54159,"nodeType":"UserDefinedTypeName","pathNode":{"id":54158,"name":"SubnetRegistryDiamond","nameLocations":["21933:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21933:21:88"},"referencedDeclaration":36853,"src":"21933:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54167,"initialValue":{"arguments":[{"id":54164,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"22001:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54165,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54039,"src":"22013:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21975:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54162,"nodeType":"UserDefinedTypeName","pathNode":{"id":54161,"name":"SubnetRegistryDiamond","nameLocations":["21979:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21979:21:88"},"referencedDeclaration":36853,"src":"21979:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21975:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"21933:87:88"},{"eventCall":{"arguments":[{"arguments":[{"id":54171,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22065:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22057:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54169,"name":"address","nodeType":"ElementaryTypeName","src":"22057:7:88","typeDescriptions":{}}},"id":54172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22057:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54168,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53071,"src":"22035:21:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54174,"nodeType":"EmitStatement","src":"22030:54:88"},{"expression":{"id":54175,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22101:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54044,"id":54176,"nodeType":"Return","src":"22094:24:88"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"20431:20:88","parameters":{"id":54040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54039,"mutability":"mutable","name":"params","nameLocation":"20508:6:88","nodeType":"VariableDeclaration","scope":54178,"src":"20461:53:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54038,"nodeType":"UserDefinedTypeName","pathNode":{"id":54037,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["20461:21:88","20483:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"20461:39:88"},"referencedDeclaration":36652,"src":"20461:39:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"20451:69:88"},"returnParameters":{"id":54044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54178,"src":"20537:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54042,"nodeType":"UserDefinedTypeName","pathNode":{"id":54041,"name":"SubnetRegistryDiamond","nameLocations":["20537:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"20537:21:88"},"referencedDeclaration":36853,"src":"20537:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"20536:23:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54207,"nodeType":"FunctionDefinition","src":"22131:190:88","nodes":[],"body":{"id":54206,"nodeType":"Block","src":"22212:109:88","nodes":[],"statements":[{"body":{"id":54202,"nodeType":"Block","src":"22253:42:88","statements":[{"expression":{"id":54200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54196,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22267:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54197,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54181,"src":"22274:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54199,"indexExpression":{"id":54198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22282:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22274:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22267:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54201,"nodeType":"ExpressionStatement","src":"22267:17:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22241:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"22241:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54203,"initializationExpression":{"assignments":[54187],"declarations":[{"constant":false,"id":54187,"mutability":"mutable","name":"i","nameLocation":"22234:1:88","nodeType":"VariableDeclaration","scope":54203,"src":"22227:8:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54186,"name":"uint64","nodeType":"ElementaryTypeName","src":"22227:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54189,"initialValue":{"hexValue":"30","id":54188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22238:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22227:12:88"},"loopExpression":{"expression":{"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22248:3:88","subExpression":{"id":54193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22248:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54195,"nodeType":"ExpressionStatement","src":"22248:3:88"},"nodeType":"ForStatement","src":"22222:73:88"},{"expression":{"id":54204,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22311:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54185,"id":54205,"nodeType":"Return","src":"22304:10:88"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"22140:11:88","parameters":{"id":54182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54181,"mutability":"mutable","name":"weights","nameLocation":"22169:7:88","nodeType":"VariableDeclaration","scope":54207,"src":"22152:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54179,"name":"uint256","nodeType":"ElementaryTypeName","src":"22152:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54180,"nodeType":"ArrayTypeName","src":"22152:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"22151:26:88"},"returnParameters":{"id":54185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54184,"mutability":"mutable","name":"sum","nameLocation":"22207:3:88","nodeType":"VariableDeclaration","scope":54207,"src":"22199:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54183,"name":"uint256","nodeType":"ElementaryTypeName","src":"22199:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22198:13:88"},"scope":55375,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54382,"nodeType":"FunctionDefinition","src":"22327:933:88","nodes":[],"body":{"id":54381,"nodeType":"Block","src":"22430:830:88","nodes":[],"statements":[{"expression":{"id":54224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54217,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22440:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22470:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22453:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54219,"nodeType":"UserDefinedTypeName","pathNode":{"id":54218,"name":"FvmAddress","nameLocations":["22457:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22457:10:88"},"referencedDeclaration":49998,"src":"22457:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54220,"nodeType":"ArrayTypeName","src":"22457:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"22440:32:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54225,"nodeType":"ExpressionStatement","src":"22440:32:88"},{"expression":{"id":54236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54226,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22482:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54228,"indexExpression":{"hexValue":"30","id":54227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22493:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22482:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22528:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22520:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22523:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22520:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22520:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54229,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22498:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22515:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22498:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22498:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22482:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54237,"nodeType":"ExpressionStatement","src":"22482:51:88"},{"expression":{"id":54248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22543:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54240,"indexExpression":{"hexValue":"31","id":54239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22554:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22543:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54243,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22581:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22584:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22581:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22581:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54241,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22559:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22576:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22559:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22559:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22543:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54249,"nodeType":"ExpressionStatement","src":"22543:51:88"},{"expression":{"id":54260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54250,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22604:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54252,"indexExpression":{"hexValue":"32","id":54251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22615:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22604:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22650:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22642:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22645:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22642:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54253,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22620:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22637:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22620:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22620:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22604:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54261,"nodeType":"ExpressionStatement","src":"22604:51:88"},{"expression":{"id":54268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54262,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22666:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22692:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22678:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54263,"name":"address","nodeType":"ElementaryTypeName","src":"22682:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54264,"nodeType":"ArrayTypeName","src":"22682:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22678:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"22666:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54269,"nodeType":"ExpressionStatement","src":"22666:28:88"},{"expression":{"id":54277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54270,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22704:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54272,"indexExpression":{"hexValue":"30","id":54271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22714:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22704:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22727:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22719:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22722:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22719:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22719:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22704:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54278,"nodeType":"ExpressionStatement","src":"22704:27:88"},{"expression":{"id":54286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54279,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22741:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54281,"indexExpression":{"hexValue":"31","id":54280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22741:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22764:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54282,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22756:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22759:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22756:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22756:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22741:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54287,"nodeType":"ExpressionStatement","src":"22741:27:88"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54288,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22778:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54290,"indexExpression":{"hexValue":"32","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22788:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22778:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22801:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54291,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22793:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22796:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22793:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22793:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22778:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54296,"nodeType":"ExpressionStatement","src":"22778:27:88"},{"assignments":[54301],"declarations":[{"constant":false,"id":54301,"mutability":"mutable","name":"weights","nameLocation":"22833:7:88","nodeType":"VariableDeclaration","scope":54381,"src":"22816:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54299,"name":"uint256","nodeType":"ElementaryTypeName","src":"22816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54300,"nodeType":"ArrayTypeName","src":"22816:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54307,"initialValue":{"arguments":[{"hexValue":"33","id":54305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22857:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22843:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54302,"name":"uint256","nodeType":"ElementaryTypeName","src":"22847:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54303,"nodeType":"ArrayTypeName","src":"22847:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22816:43:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22886:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22878:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22881:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22878:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22878:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22892:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22870:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22873:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22870:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22870:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54317,"nodeType":"ExpressionStatement","src":"22870:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22920:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54321,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22912:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22915:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22912:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54318,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22904:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22907:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22904:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22904:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54327,"nodeType":"ExpressionStatement","src":"22904:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22954:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22946:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22949:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22946:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22946:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22960:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54328,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22938:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22941:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22938:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54337,"nodeType":"ExpressionStatement","src":"22938:24:88"},{"expression":{"id":54342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54338,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22973:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54340,"indexExpression":{"hexValue":"30","id":54339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22981:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22973:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22986:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22973:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54343,"nodeType":"ExpressionStatement","src":"22973:16:88"},{"expression":{"id":54348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54344,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22999:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54346,"indexExpression":{"hexValue":"31","id":54345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23007:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22999:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23012:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22999:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54349,"nodeType":"ExpressionStatement","src":"22999:16:88"},{"expression":{"id":54354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54350,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"23025:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54352,"indexExpression":{"hexValue":"32","id":54351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23033:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23025:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23038:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23025:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54355,"nodeType":"ExpressionStatement","src":"23025:16:88"},{"assignments":[54358],"declarations":[{"constant":false,"id":54358,"mutability":"mutable","name":"finality","nameLocation":"23074:8:88","nodeType":"VariableDeclaration","scope":54381,"src":"23052:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54357,"nodeType":"UserDefinedTypeName","pathNode":{"id":54356,"name":"ParentFinality","nameLocations":["23052:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"23052:14:88"},"referencedDeclaration":49918,"src":"23052:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54367,"initialValue":{"arguments":[{"expression":{"id":54360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23109:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:6:88","memberName":"number","nodeType":"MemberAccess","src":"23109:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23142:1:88","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":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23134:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23134:7:88","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23134:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54359,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"23085:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23101:6:88","23123:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"23085:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"23052:94:88"},{"expression":{"arguments":[{"expression":{"id":54371,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"23166:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23177:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"23166:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54368,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23157:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23160:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23157:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23157:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54374,"nodeType":"ExpressionStatement","src":"23157:33:88"},{"expression":{"arguments":[{"id":54378,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"23244:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54375,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"23200:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23223:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"23200:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54380,"nodeType":"ExpressionStatement","src":"23200:53:88"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"22336:15:88","parameters":{"id":54208,"nodeType":"ParameterList","parameters":[],"src":"22351:2:88"},"returnParameters":{"id":54216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54212,"mutability":"mutable","name":"validators","nameLocation":"22390:10:88","nodeType":"VariableDeclaration","scope":54382,"src":"22370:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54210,"nodeType":"UserDefinedTypeName","pathNode":{"id":54209,"name":"FvmAddress","nameLocations":["22370:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22370:10:88"},"referencedDeclaration":49998,"src":"22370:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54211,"nodeType":"ArrayTypeName","src":"22370:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54215,"mutability":"mutable","name":"addresses","nameLocation":"22419:9:88","nodeType":"VariableDeclaration","scope":54382,"src":"22402:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54213,"name":"address","nodeType":"ElementaryTypeName","src":"22402:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54214,"nodeType":"ArrayTypeName","src":"22402:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"22369:60:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54475,"nodeType":"FunctionDefinition","src":"23266:1297:88","nodes":[],"body":{"id":54474,"nodeType":"Block","src":"23350:1213:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54392,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"23375:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54393,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23402:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54391,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"23360:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23360:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54395,"nodeType":"ExpressionStatement","src":"23360:46:88"},{"assignments":[54398],"declarations":[{"constant":false,"id":54398,"mutability":"mutable","name":"crossMsg","nameLocation":"23433:8:88","nodeType":"VariableDeclaration","scope":54474,"src":"23417:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54397,"nodeType":"UserDefinedTypeName","pathNode":{"id":54396,"name":"CrossMsg","nameLocations":["23417:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"23417:8:88"},"referencedDeclaration":49974,"src":"23417:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54438,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54406,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23596:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54402,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23555:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23564:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23555:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23581:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23555:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54410,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23659:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54408,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23637:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23654:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23637:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23637:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54401,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23512:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23545:8:88","23625:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23512:173:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54418,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23791:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54414,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23750:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23759:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23750:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23750:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54422,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23851:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54420,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23829:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23846:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23829:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23829:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54413,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23707:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23740:8:88","23817:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23707:167:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54425,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"23899:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23899:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54429,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"23976:11:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24023:1:88","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":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24013:9:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54430,"name":"bytes","nodeType":"ElementaryTypeName","src":"24017:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24013:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54434,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"24048:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54400,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"23476:11:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23506:4:88","23703:2:88","23892:5:88","23942:5:88","23968:6:88","24005:6:88","24043:3:88"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"23476:608:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24107:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54399,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"23444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23467:7:88","24098:7:88"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"23444:679:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"23417:706:88"},{"assignments":[54443],"declarations":[{"constant":false,"id":54443,"mutability":"mutable","name":"msgs","nameLocation":"24151:4:88","nodeType":"VariableDeclaration","scope":54474,"src":"24133:22:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54441,"nodeType":"UserDefinedTypeName","pathNode":{"id":54440,"name":"CrossMsg","nameLocations":["24133:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24133:8:88"},"referencedDeclaration":49974,"src":"24133:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54442,"nodeType":"ArrayTypeName","src":"24133:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54450,"initialValue":{"arguments":[{"hexValue":"31","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24173:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24158:14:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54445,"nodeType":"UserDefinedTypeName","pathNode":{"id":54444,"name":"CrossMsg","nameLocations":["24162:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24162:8:88"},"referencedDeclaration":49974,"src":"24162:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54446,"nodeType":"ArrayTypeName","src":"24162:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24158:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24133:42:88"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24185:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54453,"indexExpression":{"hexValue":"30","id":54452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24190:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24185:7:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54454,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24195:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"24185:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54456,"nodeType":"ExpressionStatement","src":"24185:18:88"},{"expression":{"arguments":[{"expression":{"id":54460,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"24442:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24453:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"24442:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24433:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24436:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"24433:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24433:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54463,"nodeType":"ExpressionStatement","src":"24433:33:88"},{"expression":{"arguments":[{"id":54467,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24516:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54464,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"24476:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24497:18:88","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"24476:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24476:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54469,"nodeType":"ExpressionStatement","src":"24476:45:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54470,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24539:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24548:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"24539:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24539:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54390,"id":54473,"nodeType":"Return","src":"24532:24:88"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"23275:20:88","parameters":{"id":54387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54384,"mutability":"mutable","name":"caller","nameLocation":"23304:6:88","nodeType":"VariableDeclaration","scope":54475,"src":"23296:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54383,"name":"address","nodeType":"ElementaryTypeName","src":"23296:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54386,"mutability":"mutable","name":"src","nameLocation":"23320:3:88","nodeType":"VariableDeclaration","scope":54475,"src":"23312:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54385,"name":"address","nodeType":"ElementaryTypeName","src":"23312:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23295:29:88"},"returnParameters":{"id":54390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54475,"src":"23341:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23341:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23340:9:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54486,"nodeType":"FunctionDefinition","src":"24569:93:88","nodes":[],"body":{"id":54485,"nodeType":"Block","src":"24617:45:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54481,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54477,"src":"24640:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24651:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54480,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"24627:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24627:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54484,"nodeType":"ExpressionStatement","src":"24627:28:88"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24578:12:88","parameters":{"id":54478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54477,"mutability":"mutable","name":"validator","nameLocation":"24599:9:88","nodeType":"VariableDeclaration","scope":54486,"src":"24591:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54476,"name":"address","nodeType":"ElementaryTypeName","src":"24591:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24590:19:88"},"returnParameters":{"id":54479,"nodeType":"ParameterList","parameters":[],"src":"24617:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54569,"nodeType":"FunctionDefinition","src":"24668:610:88","nodes":[],"body":{"id":54568,"nodeType":"Block","src":"24732:546:88","nodes":[],"statements":[{"assignments":[54497],"declarations":[{"constant":false,"id":54497,"mutability":"mutable","name":"validators","nameLocation":"24762:10:88","nodeType":"VariableDeclaration","scope":54568,"src":"24742:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54495,"nodeType":"UserDefinedTypeName","pathNode":{"id":54494,"name":"FvmAddress","nameLocations":["24742:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24742:10:88"},"referencedDeclaration":49998,"src":"24742:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54496,"nodeType":"ArrayTypeName","src":"24742:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54504,"initialValue":{"arguments":[{"hexValue":"31","id":54502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24792:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24775:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54499,"nodeType":"UserDefinedTypeName","pathNode":{"id":54498,"name":"FvmAddress","nameLocations":["24779:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24779:10:88"},"referencedDeclaration":49998,"src":"24779:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54500,"nodeType":"ArrayTypeName","src":"24779:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24775:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24742:52:88"},{"expression":{"id":54512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54505,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54497,"src":"24804:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54507,"indexExpression":{"hexValue":"30","id":54506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24815:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24804:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24842:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54508,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"24820:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24837:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"24820:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24820:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"24804:48:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54513,"nodeType":"ExpressionStatement","src":"24804:48:88"},{"assignments":[54518],"declarations":[{"constant":false,"id":54518,"mutability":"mutable","name":"weights","nameLocation":"24879:7:88","nodeType":"VariableDeclaration","scope":54568,"src":"24862:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54516,"name":"uint256","nodeType":"ElementaryTypeName","src":"24862:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54517,"nodeType":"ArrayTypeName","src":"24862:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54524,"initialValue":{"arguments":[{"hexValue":"31","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24903:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24889:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54519,"name":"uint256","nodeType":"ElementaryTypeName","src":"24893:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54520,"nodeType":"ArrayTypeName","src":"24893:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24889:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24862:43:88"},{"expression":{"id":54529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54525,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54518,"src":"24915:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54527,"indexExpression":{"hexValue":"30","id":54526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24915:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54528,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54490,"src":"24928:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24915:19:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54530,"nodeType":"ExpressionStatement","src":"24915:19:88"},{"expression":{"arguments":[{"id":54534,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24953:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24964:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24945:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24948:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"24945:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24945:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54537,"nodeType":"ExpressionStatement","src":"24945:21:88"},{"assignments":[54540],"declarations":[{"constant":false,"id":54540,"mutability":"mutable","name":"finality","nameLocation":"24998:8:88","nodeType":"VariableDeclaration","scope":54568,"src":"24976:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54539,"nodeType":"UserDefinedTypeName","pathNode":{"id":54538,"name":"ParentFinality","nameLocations":["24976:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"24976:14:88"},"referencedDeclaration":49918,"src":"24976:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54549,"initialValue":{"arguments":[{"expression":{"id":54542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25033:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25039:6:88","memberName":"number","nodeType":"MemberAccess","src":"25033:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25066:1:88","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":54545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25058:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25058:7:88","typeDescriptions":{}}},"id":54547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25058:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54541,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"25009:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25025:6:88","25047:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"25009:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"24976:94:88"},{"expression":{"arguments":[{"expression":{"id":54553,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"25160:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25171:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"25160:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54550,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25146:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25149:10:88","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"25146:13:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54556,"nodeType":"ExpressionStatement","src":"25146:38:88"},{"expression":{"arguments":[{"id":54560,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"25238:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54557,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"25194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25217:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"25194:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54562,"nodeType":"ExpressionStatement","src":"25194:53:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25257:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:9:88","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"25257:12:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25257:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54567,"nodeType":"ExpressionStatement","src":"25257:14:88"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24677:12:88","parameters":{"id":54491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54488,"mutability":"mutable","name":"validator","nameLocation":"24698:9:88","nodeType":"VariableDeclaration","scope":54569,"src":"24690:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54487,"name":"address","nodeType":"ElementaryTypeName","src":"24690:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54490,"mutability":"mutable","name":"weight","nameLocation":"24717:6:88","nodeType":"VariableDeclaration","scope":54569,"src":"24709:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54489,"name":"uint256","nodeType":"ElementaryTypeName","src":"24709:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24689:35:88"},"returnParameters":{"id":54492,"nodeType":"ParameterList","parameters":[],"src":"24732:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54582,"nodeType":"FunctionDefinition","src":"25284:112:88","nodes":[],"body":{"id":54581,"nodeType":"Block","src":"25328:68:88","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25350:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54571,"src":"25382:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54574,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"25338:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25346:3:88","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"25338:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25338:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54580,"nodeType":"ExpressionStatement","src":"25338:51:88"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"25293:6:88","parameters":{"id":54572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54571,"mutability":"mutable","name":"amount","nameLocation":"25308:6:88","nodeType":"VariableDeclaration","scope":54582,"src":"25300:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54570,"name":"uint256","nodeType":"ElementaryTypeName","src":"25300:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25299:16:88"},"returnParameters":{"id":54573,"nodeType":"ParameterList","parameters":[],"src":"25328:0:88"},"scope":55375,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54597,"nodeType":"FunctionDefinition","src":"25402:131:88","nodes":[],"body":{"id":54596,"nodeType":"Block","src":"25466:67:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54590,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54584,"src":"25481:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54591,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54586,"src":"25496:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54592,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"25508:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25519:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"25508:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"id":54589,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54597,54722],"referencedDeclaration":54722,"src":"25476:4:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50229_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25476:50:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54595,"nodeType":"ExpressionStatement","src":"25476:50:88"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25411:4:88","parameters":{"id":54587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54584,"mutability":"mutable","name":"funderAddress","nameLocation":"25424:13:88","nodeType":"VariableDeclaration","scope":54597,"src":"25416:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54583,"name":"address","nodeType":"ElementaryTypeName","src":"25416:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54586,"mutability":"mutable","name":"fundAmount","nameLocation":"25447:10:88","nodeType":"VariableDeclaration","scope":54597,"src":"25439:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25439:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25415:43:88"},"returnParameters":{"id":54588,"nodeType":"ParameterList","parameters":[],"src":"25466:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54722,"nodeType":"FunctionDefinition","src":"25539:1180:88","nodes":[],"body":{"id":54721,"nodeType":"Block","src":"25620:1099:88","nodes":[],"statements":[{"assignments":[54609,null,54611,null,54613],"declarations":[{"constant":false,"id":54609,"mutability":"mutable","name":"subnetId","nameLocation":"25712:8:88","nodeType":"VariableDeclaration","scope":54721,"src":"25696:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54608,"nodeType":"UserDefinedTypeName","pathNode":{"id":54607,"name":"SubnetID","nameLocations":["25696:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"25696:8:88"},"referencedDeclaration":50077,"src":"25696:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54611,"mutability":"mutable","name":"nonceBefore","nameLocation":"25732:11:88","nodeType":"VariableDeclaration","scope":54721,"src":"25724:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54610,"name":"uint256","nodeType":"ElementaryTypeName","src":"25724:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54613,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"25755:16:88","nodeType":"VariableDeclaration","scope":54721,"src":"25747:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54612,"name":"uint256","nodeType":"ElementaryTypeName","src":"25747:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54620,"initialValue":{"arguments":[{"arguments":[{"id":54617,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"25793:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25785:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54615,"name":"address","nodeType":"ElementaryTypeName","src":"25785:7:88","typeDescriptions":{}}},"id":54618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25785:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54614,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"25775:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25695:109:88"},{"assignments":[54622],"declarations":[{"constant":false,"id":54622,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"25823:25:88","nodeType":"VariableDeclaration","scope":54721,"src":"25815:33:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54621,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54629,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54625,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"25887:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"25851:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25860:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"25851:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25851:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25899:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25851:49:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25815:85:88"},{"assignments":[54631],"declarations":[{"constant":false,"id":54631,"mutability":"mutable","name":"expectedNonce","nameLocation":"25918:13:88","nodeType":"VariableDeclaration","scope":54721,"src":"25910:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54630,"name":"uint256","nodeType":"ElementaryTypeName","src":"25910:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54635,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54632,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"25934:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25948:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25934:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25910:39:88"},{"assignments":[54637],"declarations":[{"constant":false,"id":54637,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"25967:18:88","nodeType":"VariableDeclaration","scope":54721,"src":"25959:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54636,"name":"uint256","nodeType":"ElementaryTypeName","src":"25959:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54641,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54638,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"25988:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54639,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26007:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25988:29:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25959:58:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54643,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26036:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26045:11:88","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"26036:20:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26061:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26036:26:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26064:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26028:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26028:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54650,"nodeType":"ExpressionStatement","src":"26028:55:88"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54651,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26098:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54652,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26106:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26117:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"26106:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26098:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54668,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26241:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54669,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26249:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26260:5:88","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"26249:16:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26241:24:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54684,"nodeType":"IfStatement","src":"26237:138:88","trueBody":{"id":54683,"nodeType":"Block","src":"26267:108:88","statements":[{"expression":{"arguments":[{"id":54675,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26305:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54678,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26337:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54676,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26315:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26332:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26315:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26315:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54680,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26353:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54672,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26281:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26291:13:88","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"26281:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26281:83:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54682,"nodeType":"ExpressionStatement","src":"26281:83:88"}]}},"id":54685,"nodeType":"IfStatement","src":"26094:281:88","trueBody":{"id":54667,"nodeType":"Block","src":"26125:106:88","statements":[{"expression":{"arguments":[{"id":54660,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26173:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54663,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26205:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54661,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26183:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26200:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26183:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26183:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54655,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26139:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26149:4:88","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"26139:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54658,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26161:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26139:33:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26139:81:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54666,"nodeType":"ExpressionStatement","src":"26139:81:88"}]}},{"assignments":[null,null,54687,null,54689],"declarations":[null,null,{"constant":false,"id":54687,"mutability":"mutable","name":"nonce","nameLocation":"26398:5:88","nodeType":"VariableDeclaration","scope":54721,"src":"26390:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54686,"name":"uint256","nodeType":"ElementaryTypeName","src":"26390:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54689,"mutability":"mutable","name":"circSupply","nameLocation":"26415:10:88","nodeType":"VariableDeclaration","scope":54721,"src":"26407:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54688,"name":"uint256","nodeType":"ElementaryTypeName","src":"26407:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54696,"initialValue":{"arguments":[{"arguments":[{"id":54693,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26447:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26439:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54691,"name":"address","nodeType":"ElementaryTypeName","src":"26439:7:88","typeDescriptions":{}}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26439:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54690,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"26429:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26429:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"26385:73:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54700,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26513:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54698,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26477:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26486:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"26477:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26477:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54702,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54622,"src":"26526:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26477:74:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":54704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26553:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26469:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26469:105:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54706,"nodeType":"ExpressionStatement","src":"26469:105:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54708,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"26593:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54709,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"26602:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26593:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":54711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26617:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":54707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26585:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54713,"nodeType":"ExpressionStatement","src":"26585:51:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54715,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54689,"src":"26654:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54716,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54637,"src":"26668:18:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26654:32:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":54718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26688:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":54714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26646:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:66:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54720,"nodeType":"ExpressionStatement","src":"26646:66:88"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25548:4:88","parameters":{"id":54605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54599,"mutability":"mutable","name":"funderAddress","nameLocation":"25561:13:88","nodeType":"VariableDeclaration","scope":54722,"src":"25553:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54598,"name":"address","nodeType":"ElementaryTypeName","src":"25553:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54601,"mutability":"mutable","name":"fundAmount","nameLocation":"25584:10:88","nodeType":"VariableDeclaration","scope":54722,"src":"25576:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"25576:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54604,"mutability":"mutable","name":"mode","nameLocation":"25607:4:88","nodeType":"VariableDeclaration","scope":54722,"src":"25596:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":54603,"nodeType":"UserDefinedTypeName","pathNode":{"id":54602,"name":"SupplyKind","nameLocations":["25596:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"25596:10:88"},"referencedDeclaration":50229,"src":"25596:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"25552:60:88"},"returnParameters":{"id":54606,"nodeType":"ParameterList","parameters":[],"src":"25620:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54753,"nodeType":"FunctionDefinition","src":"26725:243:88","nodes":[],"body":{"id":54752,"nodeType":"Block","src":"26793:175:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54732,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26812:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26803:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26803:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26803:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54734,"nodeType":"ExpressionStatement","src":"26803:26:88"},{"expression":{"arguments":[{"id":54738,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26847:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54739,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26865:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26865:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":54735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26839:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26842:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26839:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26839:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54743,"nodeType":"ExpressionStatement","src":"26839:56:88"},{"expression":{"arguments":[{"id":54749,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54726,"src":"26954:6:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54744,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26905:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":54746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26915:4:88","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"26905:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":54748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54747,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26927:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"26905:48:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":54750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54751,"nodeType":"ExpressionStatement","src":"26905:56:88"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"26734:4:88","parameters":{"id":54727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54724,"mutability":"mutable","name":"validatorAddress","nameLocation":"26747:16:88","nodeType":"VariableDeclaration","scope":54753,"src":"26739:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54723,"name":"address","nodeType":"ElementaryTypeName","src":"26739:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54726,"mutability":"mutable","name":"pubkey","nameLocation":"26778:6:88","nodeType":"VariableDeclaration","scope":54753,"src":"26765:19:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54725,"name":"bytes","nodeType":"ElementaryTypeName","src":"26765:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26738:47:88"},"returnParameters":{"id":54728,"nodeType":"ParameterList","parameters":[],"src":"26793:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54800,"nodeType":"FunctionDefinition","src":"26974:298:88","nodes":[],"body":{"id":54799,"nodeType":"Block","src":"27042:230:88","nodes":[],"statements":[{"assignments":[54764],"declarations":[{"constant":false,"id":54764,"mutability":"mutable","name":"validators","nameLocation":"27069:10:88","nodeType":"VariableDeclaration","scope":54799,"src":"27052:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54762,"name":"address","nodeType":"ElementaryTypeName","src":"27052:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54763,"nodeType":"ArrayTypeName","src":"27052:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54770,"initialValue":{"arguments":[{"hexValue":"31","id":54768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27096:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27082:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54765,"name":"address","nodeType":"ElementaryTypeName","src":"27086:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54766,"nodeType":"ArrayTypeName","src":"27086:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27082:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27052:46:88"},{"expression":{"id":54775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54771,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27108:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54773,"indexExpression":{"hexValue":"30","id":54772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27119:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27108:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54774,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54755,"src":"27124:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27108:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54776,"nodeType":"ExpressionStatement","src":"27108:25:88"},{"assignments":[54781],"declarations":[{"constant":false,"id":54781,"mutability":"mutable","name":"privKeys","nameLocation":"27161:8:88","nodeType":"VariableDeclaration","scope":54799,"src":"27144:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54779,"name":"uint256","nodeType":"ElementaryTypeName","src":"27144:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54780,"nodeType":"ArrayTypeName","src":"27144:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54787,"initialValue":{"arguments":[{"hexValue":"31","id":54785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27186:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27172:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54782,"name":"uint256","nodeType":"ElementaryTypeName","src":"27176:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54783,"nodeType":"ArrayTypeName","src":"27176:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27172:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27144:44:88"},{"expression":{"id":54792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27198:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54790,"indexExpression":{"hexValue":"30","id":54789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27207:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27198:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54791,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54757,"src":"27212:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27198:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54793,"nodeType":"ExpressionStatement","src":"27198:21:88"},{"expression":{"arguments":[{"id":54795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27244:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54796,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27256:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54794,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27230:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27230:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54798,"nodeType":"ExpressionStatement","src":"27230:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26983:13:88","parameters":{"id":54758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54755,"mutability":"mutable","name":"validator","nameLocation":"27005:9:88","nodeType":"VariableDeclaration","scope":54800,"src":"26997:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54754,"name":"address","nodeType":"ElementaryTypeName","src":"26997:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54757,"mutability":"mutable","name":"privKey","nameLocation":"27024:7:88","nodeType":"VariableDeclaration","scope":54800,"src":"27016:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54756,"name":"uint256","nodeType":"ElementaryTypeName","src":"27016:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26996:36:88"},"returnParameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"27042:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54863,"nodeType":"FunctionDefinition","src":"27278:408:88","nodes":[],"body":{"id":54862,"nodeType":"Block","src":"27386:300:88","nodes":[],"statements":[{"assignments":[54815],"declarations":[{"constant":false,"id":54815,"mutability":"mutable","name":"validators","nameLocation":"27413:10:88","nodeType":"VariableDeclaration","scope":54862,"src":"27396:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54813,"name":"address","nodeType":"ElementaryTypeName","src":"27396:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54814,"nodeType":"ArrayTypeName","src":"27396:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54821,"initialValue":{"arguments":[{"hexValue":"32","id":54819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27440:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27426:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54816,"name":"address","nodeType":"ElementaryTypeName","src":"27430:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54817,"nodeType":"ArrayTypeName","src":"27430:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27426:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27396:46:88"},{"expression":{"id":54826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27452:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54824,"indexExpression":{"hexValue":"30","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27452:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54825,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54802,"src":"27468:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27452:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54827,"nodeType":"ExpressionStatement","src":"27452:26:88"},{"expression":{"id":54832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27488:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54830,"indexExpression":{"hexValue":"31","id":54829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27499:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27488:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54831,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54806,"src":"27504:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27488:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54833,"nodeType":"ExpressionStatement","src":"27488:26:88"},{"assignments":[54838],"declarations":[{"constant":false,"id":54838,"mutability":"mutable","name":"privKeys","nameLocation":"27542:8:88","nodeType":"VariableDeclaration","scope":54862,"src":"27525:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54836,"name":"uint256","nodeType":"ElementaryTypeName","src":"27525:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54837,"nodeType":"ArrayTypeName","src":"27525:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54844,"initialValue":{"arguments":[{"hexValue":"32","id":54842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27567:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27553:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54839,"name":"uint256","nodeType":"ElementaryTypeName","src":"27557:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54840,"nodeType":"ArrayTypeName","src":"27557:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27553:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27525:44:88"},{"expression":{"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54845,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27579:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54847,"indexExpression":{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27588:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27579:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54848,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54804,"src":"27593:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27579:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54850,"nodeType":"ExpressionStatement","src":"27579:22:88"},{"expression":{"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54851,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27611:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54853,"indexExpression":{"hexValue":"31","id":54852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27611:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54854,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54808,"src":"27625:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27611:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54856,"nodeType":"ExpressionStatement","src":"27611:22:88"},{"expression":{"arguments":[{"id":54858,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27658:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54859,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27670:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54857,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27644:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27644:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54861,"nodeType":"ExpressionStatement","src":"27644:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27287:13:88","parameters":{"id":54809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54802,"mutability":"mutable","name":"validator1","nameLocation":"27309:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27301:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54801,"name":"address","nodeType":"ElementaryTypeName","src":"27301:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54804,"mutability":"mutable","name":"privKey1","nameLocation":"27329:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27321:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54803,"name":"uint256","nodeType":"ElementaryTypeName","src":"27321:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54806,"mutability":"mutable","name":"validator2","nameLocation":"27347:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27339:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54805,"name":"address","nodeType":"ElementaryTypeName","src":"27339:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54808,"mutability":"mutable","name":"privKey2","nameLocation":"27367:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27359:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54807,"name":"uint256","nodeType":"ElementaryTypeName","src":"27359:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27300:76:88"},"returnParameters":{"id":54810,"nodeType":"ParameterList","parameters":[],"src":"27386:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54942,"nodeType":"FunctionDefinition","src":"27692:568:88","nodes":[],"body":{"id":54941,"nodeType":"Block","src":"27892:368:88","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"validators","nameLocation":"27919:10:88","nodeType":"VariableDeclaration","scope":54941,"src":"27902:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54880,"name":"address","nodeType":"ElementaryTypeName","src":"27902:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54881,"nodeType":"ArrayTypeName","src":"27902:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54888,"initialValue":{"arguments":[{"hexValue":"33","id":54886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27946:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27932:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"27936:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54884,"nodeType":"ArrayTypeName","src":"27936:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27932:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27902:46:88"},{"expression":{"id":54893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54889,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27958:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54891,"indexExpression":{"hexValue":"30","id":54890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27969:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27958:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54892,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54865,"src":"27974:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27958:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54894,"nodeType":"ExpressionStatement","src":"27958:26:88"},{"expression":{"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54895,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27994:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54897,"indexExpression":{"hexValue":"31","id":54896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28005:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27994:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54898,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54869,"src":"28010:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27994:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54900,"nodeType":"ExpressionStatement","src":"27994:26:88"},{"expression":{"id":54905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54901,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28030:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54903,"indexExpression":{"hexValue":"32","id":54902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28030:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54904,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54873,"src":"28046:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28030:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54906,"nodeType":"ExpressionStatement","src":"28030:26:88"},{"assignments":[54911],"declarations":[{"constant":false,"id":54911,"mutability":"mutable","name":"privKeys","nameLocation":"28084:8:88","nodeType":"VariableDeclaration","scope":54941,"src":"28067:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54909,"name":"uint256","nodeType":"ElementaryTypeName","src":"28067:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54910,"nodeType":"ArrayTypeName","src":"28067:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[{"hexValue":"33","id":54915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28109:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28095:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28099:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54913,"nodeType":"ArrayTypeName","src":"28099:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28095:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28067:44:88"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54918,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28121:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54920,"indexExpression":{"hexValue":"30","id":54919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28130:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28121:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"28135:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28121:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54923,"nodeType":"ExpressionStatement","src":"28121:22:88"},{"expression":{"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54924,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28153:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54926,"indexExpression":{"hexValue":"31","id":54925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28153:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54927,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"28167:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28153:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54929,"nodeType":"ExpressionStatement","src":"28153:22:88"},{"expression":{"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54930,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28185:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54932,"indexExpression":{"hexValue":"32","id":54931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28194:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28185:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54933,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54875,"src":"28199:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28185:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54935,"nodeType":"ExpressionStatement","src":"28185:22:88"},{"expression":{"arguments":[{"id":54937,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28232:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54938,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28244:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54936,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"28218:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28218:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54940,"nodeType":"ExpressionStatement","src":"28218:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27701:13:88","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54865,"mutability":"mutable","name":"validator1","nameLocation":"27732:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27724:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54864,"name":"address","nodeType":"ElementaryTypeName","src":"27724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54867,"mutability":"mutable","name":"privKey1","nameLocation":"27760:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27752:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54866,"name":"uint256","nodeType":"ElementaryTypeName","src":"27752:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54869,"mutability":"mutable","name":"validator2","nameLocation":"27786:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27778:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54868,"name":"address","nodeType":"ElementaryTypeName","src":"27778:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54871,"mutability":"mutable","name":"privKey2","nameLocation":"27814:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27806:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"27806:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54873,"mutability":"mutable","name":"validator3","nameLocation":"27840:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27832:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54872,"name":"address","nodeType":"ElementaryTypeName","src":"27832:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54875,"mutability":"mutable","name":"privKey3","nameLocation":"27868:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27860:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27860:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27714:168:88"},"returnParameters":{"id":54877,"nodeType":"ParameterList","parameters":[],"src":"27892:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55093,"nodeType":"FunctionDefinition","src":"28266:1102:88","nodes":[],"body":{"id":55092,"nodeType":"Block","src":"28354:1014:88","nodes":[],"statements":[{"assignments":[54952],"declarations":[{"constant":false,"id":54952,"mutability":"mutable","name":"n","nameLocation":"28372:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28364:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54951,"name":"uint256","nodeType":"ElementaryTypeName","src":"28364:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54955,"initialValue":{"expression":{"id":54953,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"28376:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28387:6:88","memberName":"length","nodeType":"MemberAccess","src":"28376:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28364:29:88"},{"assignments":[54960],"declarations":[{"constant":false,"id":54960,"mutability":"mutable","name":"signatures","nameLocation":"28419:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28404:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54958,"name":"bytes","nodeType":"ElementaryTypeName","src":"28404:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54959,"nodeType":"ArrayTypeName","src":"28404:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":54966,"initialValue":{"arguments":[{"id":54964,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"28444:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28432:11:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":54961,"name":"bytes","nodeType":"ElementaryTypeName","src":"28436:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54962,"nodeType":"ArrayTypeName","src":"28436:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28432:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28404:42:88"},{"assignments":[54968,null],"declarations":[{"constant":false,"id":54968,"mutability":"mutable","name":"nextConfigNum","nameLocation":"28465:13:88","nodeType":"VariableDeclaration","scope":55092,"src":"28458:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54967,"name":"uint64","nodeType":"ElementaryTypeName","src":"28458:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":54972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54969,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28484:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28493:23:88","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50349,"src":"28484:32:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28484:34:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"28457:61:88"},{"assignments":[54974],"declarations":[{"constant":false,"id":54974,"mutability":"mutable","name":"h","nameLocation":"28537:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28529:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54973,"name":"uint256","nodeType":"ElementaryTypeName","src":"28529:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54982,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54975,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28541:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28550:28:88","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50477,"src":"28541:37:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28541:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54978,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28583:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28592:19:88","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50457,"src":"28583:28:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28583:30:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28541:72:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28529:84:88"},{"assignments":[54985],"declarations":[{"constant":false,"id":54985,"mutability":"mutable","name":"checkpoint","nameLocation":"28650:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28624:36:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":54984,"nodeType":"UserDefinedTypeName","pathNode":{"id":54983,"name":"BottomUpCheckpoint","nameLocations":["28624:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"28624:18:88"},"referencedDeclaration":49932,"src":"28624:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55007,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54993,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28750:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28742:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"28742:7:88","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28742:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54987,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28706:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28715:9:88","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50279,"src":"28706:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28727:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"28706:35:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54996,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28788:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55000,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28835:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28824:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28828:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28824:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28824:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28814:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28814:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55003,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54968,"src":"28877:13:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28877:17:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":54986,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"28663:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:8:88","28775:11:88","28803:9:88","28852:23:88"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"28663:242:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"28624:281:88"},{"expression":{"arguments":[{"arguments":[{"id":55013,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28932:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28924:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55011,"name":"address","nodeType":"ElementaryTypeName","src":"28924:7:88","typeDescriptions":{}}},"id":55014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28924:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28944:9:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55008,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28916:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28919:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28916:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55017,"nodeType":"ExpressionStatement","src":"28916:38:88"},{"assignments":[55019],"declarations":[{"constant":false,"id":55019,"mutability":"mutable","name":"hash","nameLocation":"28973:4:88","nodeType":"VariableDeclaration","scope":55092,"src":"28965:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28965:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55026,"initialValue":{"arguments":[{"arguments":[{"id":55023,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29001:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28990:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28994:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28990:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28990:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55020,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28980:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28980:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28965:48:88"},{"body":{"id":55062,"nodeType":"Block","src":"29056:140:88","statements":[{"assignments":[55038,55040,55042],"declarations":[{"constant":false,"id":55038,"mutability":"mutable","name":"v","nameLocation":"29077:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29071:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55037,"name":"uint8","nodeType":"ElementaryTypeName","src":"29071:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55040,"mutability":"mutable","name":"r","nameLocation":"29088:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29080:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29080:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55042,"mutability":"mutable","name":"s","nameLocation":"29099:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29091:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29091:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55050,"initialValue":{"arguments":[{"baseExpression":{"id":55045,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54948,"src":"29112:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55047,"indexExpression":{"id":55046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29121:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29112:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55048,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55019,"src":"29125:4:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29104:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29107:4:88","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"29104:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29104:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"29070:60:88"},{"expression":{"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55051,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29144:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55053,"indexExpression":{"id":55052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29155:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29144:13:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55056,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55040,"src":"29177:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"29180:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55038,"src":"29183:1:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29160:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29164:12:88","memberName":"encodePacked","nodeType":"MemberAccess","src":"29160:16:88","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29160:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"29144:41:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55061,"nodeType":"ExpressionStatement","src":"29144:41:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29044:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55032,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29048:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29044:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55063,"initializationExpression":{"assignments":[55028],"declarations":[{"constant":false,"id":55028,"mutability":"mutable","name":"i","nameLocation":"29037:1:88","nodeType":"VariableDeclaration","scope":55063,"src":"29029:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55027,"name":"uint256","nodeType":"ElementaryTypeName","src":"29029:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55030,"initialValue":{"hexValue":"30","id":55029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29029:13:88"},"loopExpression":{"expression":{"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29051:3:88","subExpression":{"id":55034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29051:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55036,"nodeType":"ExpressionStatement","src":"29051:3:88"},"nodeType":"ForStatement","src":"29024:172:88"},{"body":{"id":55090,"nodeType":"Block","src":"29238:124:88","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29261:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55079,"indexExpression":{"id":55078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29272:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29261:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29252:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29255:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"29252:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29252:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55081,"nodeType":"ExpressionStatement","src":"29252:23:88"},{"expression":{"arguments":[{"id":55085,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29316:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55086,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29328:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55087,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29340:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55082,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"29289:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":55084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29299:16:88","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":51154,"src":"29289:26:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29289:62:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55089,"nodeType":"ExpressionStatement","src":"29289:62:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29226:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55069,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29230:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29226:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55091,"initializationExpression":{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"i","nameLocation":"29219:1:88","nodeType":"VariableDeclaration","scope":55091,"src":"29211:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55064,"name":"uint256","nodeType":"ElementaryTypeName","src":"29211:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55067,"initialValue":{"hexValue":"30","id":55066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29223:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29211:13:88"},"loopExpression":{"expression":{"id":55072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29233:3:88","subExpression":{"id":55071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29233:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55073,"nodeType":"ExpressionStatement","src":"29233:3:88"},"nodeType":"ForStatement","src":"29206:156:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"28275:13:88","parameters":{"id":54949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54945,"mutability":"mutable","name":"validators","nameLocation":"28306:10:88","nodeType":"VariableDeclaration","scope":55093,"src":"28289:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54943,"name":"address","nodeType":"ElementaryTypeName","src":"28289:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54944,"nodeType":"ArrayTypeName","src":"28289:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54948,"mutability":"mutable","name":"privKeys","nameLocation":"28335:8:88","nodeType":"VariableDeclaration","scope":55093,"src":"28318:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54946,"name":"uint256","nodeType":"ElementaryTypeName","src":"28318:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54947,"nodeType":"ArrayTypeName","src":"28318:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"28288:56:88"},"returnParameters":{"id":54950,"nodeType":"ParameterList","parameters":[],"src":"28354:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55128,"nodeType":"FunctionDefinition","src":"29374:305:88","nodes":[],"body":{"id":55127,"nodeType":"Block","src":"29421:258:88","nodes":[],"statements":[{"assignments":[55099],"declarations":[{"constant":false,"id":55099,"mutability":"mutable","name":"expectedNonce","nameLocation":"29439:13:88","nodeType":"VariableDeclaration","scope":55127,"src":"29431:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55105,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55100,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29455:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29464:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29455:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29455:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29482:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29455:28:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"29431:52:88"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29555:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29559:6:88","memberName":"sender","nodeType":"MemberAccess","src":"29555:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55111,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"29533:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":55112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29550:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"29533:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55106,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29493:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29503:7:88","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"29493:17:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55109,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55095,"src":"29518:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29493:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55117,"nodeType":"ExpressionStatement","src":"29493:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55119,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29585:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29594:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29585:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29585:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55122,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55099,"src":"29613:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29585:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29628:43:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29577:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29577:95:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55126,"nodeType":"ExpressionStatement","src":"29577:95:88"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"29383:7:88","parameters":{"id":55096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55095,"mutability":"mutable","name":"releaseAmount","nameLocation":"29399:13:88","nodeType":"VariableDeclaration","scope":55128,"src":"29391:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55094,"name":"uint256","nodeType":"ElementaryTypeName","src":"29391:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29390:23:88"},"returnParameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"29421:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55183,"nodeType":"FunctionDefinition","src":"29685:536:88","nodes":[],"body":{"id":55182,"nodeType":"Block","src":"29754:467:88","nodes":[],"statements":[{"assignments":[55136],"declarations":[{"constant":false,"id":55136,"mutability":"mutable","name":"balanceBefore","nameLocation":"29772:13:88","nodeType":"VariableDeclaration","scope":55182,"src":"29764:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55135,"name":"uint256","nodeType":"ElementaryTypeName","src":"29764:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55139,"initialValue":{"expression":{"id":55137,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29788:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29802:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29788:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29764:45:88"},{"assignments":[null,55141,null,null,null],"declarations":[null,{"constant":false,"id":55141,"mutability":"mutable","name":"stakedBefore","nameLocation":"29831:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29823:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"29823:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55145,"initialValue":{"arguments":[{"id":55143,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29863:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55142,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"29853:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29853:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29820:57:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55146,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29888:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29898:8:88","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"29888:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55149,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"29914:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29888:38:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29888:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55152,"nodeType":"ExpressionStatement","src":"29888:40:88"},{"assignments":[55154],"declarations":[{"constant":false,"id":55154,"mutability":"mutable","name":"balanceAfter","nameLocation":"29947:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29939:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55153,"name":"uint256","nodeType":"ElementaryTypeName","src":"29939:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55157,"initialValue":{"expression":{"id":55155,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29962:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29976:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29962:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29939:44:88"},{"assignments":[null,55159,null,null,null],"declarations":[null,{"constant":false,"id":55159,"mutability":"mutable","name":"stakedAfter","nameLocation":"30004:11:88","nodeType":"VariableDeclaration","scope":55182,"src":"29996:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29996:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55163,"initialValue":{"arguments":[{"id":55161,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"30035:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55160,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"30025:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30025:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29993:56:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55165,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55154,"src":"30068:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55166,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55136,"src":"30084:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55167,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30100:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30084:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30068:43:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30113:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30060:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30060:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"ExpressionStatement","src":"30060:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55174,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"30152:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55175,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55141,"src":"30167:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55176,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30182:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30167:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30152:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30195:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30144:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30144:70:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"30144:70:88"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"29694:8:88","parameters":{"id":55133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55130,"mutability":"mutable","name":"stakeAmount","nameLocation":"29711:11:88","nodeType":"VariableDeclaration","scope":55183,"src":"29703:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55129,"name":"uint256","nodeType":"ElementaryTypeName","src":"29703:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55132,"mutability":"mutable","name":"subnetAddress","nameLocation":"29732:13:88","nodeType":"VariableDeclaration","scope":55183,"src":"29724:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55131,"name":"address","nodeType":"ElementaryTypeName","src":"29724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29702:44:88"},"returnParameters":{"id":55134,"nodeType":"ParameterList","parameters":[],"src":"29754:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55268,"nodeType":"FunctionDefinition","src":"30227:813:88","nodes":[],"body":{"id":55267,"nodeType":"Block","src":"30322:718:88","nodes":[],"statements":[{"assignments":[55195],"declarations":[{"constant":false,"id":55195,"mutability":"mutable","name":"manager","nameLocation":"30352:7:88","nodeType":"VariableDeclaration","scope":55267,"src":"30332:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55194,"nodeType":"UserDefinedTypeName","pathNode":{"id":55193,"name":"GatewayManagerFacet","nameLocations":["30332:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"30332:19:88"},"referencedDeclaration":38870,"src":"30332:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55202,"initialValue":{"arguments":[{"arguments":[{"id":55199,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30390:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30382:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55197,"name":"address","nodeType":"ElementaryTypeName","src":"30382:7:88","typeDescriptions":{}}},"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30382:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55196,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"30362:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30362:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"30332:62:88"},{"expression":{"arguments":[{"hexValue":"30","id":55208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30441:1:88","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"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55203,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"30405:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30413:8:88","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"30405:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55206,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30429:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30405:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30405:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55210,"nodeType":"ExpressionStatement","src":"30405:38:88"},{"assignments":[55213,55215,55217,null,55219],"declarations":[{"constant":false,"id":55213,"mutability":"mutable","name":"id","nameLocation":"30471:2:88","nodeType":"VariableDeclaration","scope":55267,"src":"30455:18:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55212,"nodeType":"UserDefinedTypeName","pathNode":{"id":55211,"name":"SubnetID","nameLocations":["30455:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30455:8:88"},"referencedDeclaration":50077,"src":"30455:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55215,"mutability":"mutable","name":"stake","nameLocation":"30483:5:88","nodeType":"VariableDeclaration","scope":55267,"src":"30475:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30475:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55217,"mutability":"mutable","name":"topDownNonce","nameLocation":"30498:12:88","nodeType":"VariableDeclaration","scope":55267,"src":"30490:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55216,"name":"uint256","nodeType":"ElementaryTypeName","src":"30490:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55219,"mutability":"mutable","name":"circSupply","nameLocation":"30522:10:88","nodeType":"VariableDeclaration","scope":55267,"src":"30514:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55218,"name":"uint256","nodeType":"ElementaryTypeName","src":"30514:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55224,"initialValue":{"arguments":[{"id":55221,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30561:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55222,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30588:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55220,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"30536:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30536:64:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30454:146:88"},{"assignments":[55227],"declarations":[{"constant":false,"id":55227,"mutability":"mutable","name":"parentNetwork","nameLocation":"30627:13:88","nodeType":"VariableDeclaration","scope":55267,"src":"30611:29:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55226,"nodeType":"UserDefinedTypeName","pathNode":{"id":55225,"name":"SubnetID","nameLocations":["30611:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30611:8:88"},"referencedDeclaration":50077,"src":"30611:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55228,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"30643:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30652:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"30643:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30643:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"30611:57:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55233,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"30700:2:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30700:9:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30700:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55238,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30744:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55236,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55227,"src":"30715:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30729:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"30715:28:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30759:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30715:50:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:52:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"30700:67:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30781:69:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30679:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30679:181:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55245,"nodeType":"ExpressionStatement","src":"30679:181:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55247,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55215,"src":"30878:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55248,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30887:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30878:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30899:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30870:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30870:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55252,"nodeType":"ExpressionStatement","src":"30870:48:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55254,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"30936:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30952:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30936:17:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30955:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30928:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55259,"nodeType":"ExpressionStatement","src":"30928:46:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55261,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"30992:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31006:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30992:15:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31009:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30984:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30984:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55266,"nodeType":"ExpressionStatement","src":"30984:49:88"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"30236:16:88","parameters":{"id":55191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55185,"mutability":"mutable","name":"collateral","nameLocation":"30261:10:88","nodeType":"VariableDeclaration","scope":55268,"src":"30253:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55184,"name":"uint256","nodeType":"ElementaryTypeName","src":"30253:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55187,"mutability":"mutable","name":"subnetAddress","nameLocation":"30281:13:88","nodeType":"VariableDeclaration","scope":55268,"src":"30273:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55186,"name":"address","nodeType":"ElementaryTypeName","src":"30273:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55190,"mutability":"mutable","name":"gw","nameLocation":"30311:2:88","nodeType":"VariableDeclaration","scope":55268,"src":"30296:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55189,"nodeType":"UserDefinedTypeName","pathNode":{"id":55188,"name":"GatewayDiamond","nameLocations":["30296:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"30296:14:88"},"referencedDeclaration":36170,"src":"30296:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"30252:62:88"},"returnParameters":{"id":55192,"nodeType":"ParameterList","parameters":[],"src":"30322:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55282,"nodeType":"FunctionDefinition","src":"31046:150:88","nodes":[],"body":{"id":55281,"nodeType":"Block","src":"31120:76:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55276,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55270,"src":"31147:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55277,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55272,"src":"31159:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55278,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31174:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55275,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"31130:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31130:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55280,"nodeType":"ExpressionStatement","src":"31130:59:88"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"31055:14:88","parameters":{"id":55273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55270,"mutability":"mutable","name":"collateral","nameLocation":"31078:10:88","nodeType":"VariableDeclaration","scope":55282,"src":"31070:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55269,"name":"uint256","nodeType":"ElementaryTypeName","src":"31070:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55272,"mutability":"mutable","name":"subnetAddress","nameLocation":"31098:13:88","nodeType":"VariableDeclaration","scope":55282,"src":"31090:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55271,"name":"address","nodeType":"ElementaryTypeName","src":"31090:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31069:43:88"},"returnParameters":{"id":55274,"nodeType":"ParameterList","parameters":[],"src":"31120:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55352,"nodeType":"FunctionDefinition","src":"31202:541:88","nodes":[],"body":{"id":55351,"nodeType":"Block","src":"31356:387:88","nodes":[],"statements":[{"expression":{"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55301,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"31366:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55305,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31406:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55303,"name":"address","nodeType":"ElementaryTypeName","src":"31398:7:88","typeDescriptions":{}}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55302,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"31378:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"31366:44:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55309,"nodeType":"ExpressionStatement","src":"31366:44:88"},{"expression":{"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55310,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31420:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55314,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31458:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31450:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"31450:7:88","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31450:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55311,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"31431:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31431:31:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"31420:42:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55318,"nodeType":"ExpressionStatement","src":"31420:42:88"},{"assignments":[55321],"declarations":[{"constant":false,"id":55321,"mutability":"mutable","name":"subnetId","nameLocation":"31489:8:88","nodeType":"VariableDeclaration","scope":55351,"src":"31473:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55320,"nodeType":"UserDefinedTypeName","pathNode":{"id":55319,"name":"SubnetID","nameLocations":["31473:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31473:8:88"},"referencedDeclaration":50077,"src":"31473:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55328,"initialValue":{"arguments":[{"id":55326,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"31541:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55322,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31500:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31509:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"31500:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31526:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"31500:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"31473:82:88"},{"assignments":[55331],"declarations":[{"constant":false,"id":55331,"mutability":"mutable","name":"subnet","nameLocation":"31580:6:88","nodeType":"VariableDeclaration","scope":55351,"src":"31566:20:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55330,"nodeType":"UserDefinedTypeName","pathNode":{"id":55329,"name":"Subnet","nameLocations":["31566:6:88"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"31566:6:88"},"referencedDeclaration":50091,"src":"31566:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55338,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55334,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55321,"src":"31606:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31615:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"31606:15:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31606:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55332,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31589:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31598:7:88","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"31589:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50091_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31589:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"31566:58:88"},{"expression":{"components":[{"expression":{"id":55339,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31643:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31650:2:88","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"31643:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55341,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31654:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31661:5:88","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"31654:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55343,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31668:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31675:12:88","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"31668:19:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55345,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31689:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31696:20:88","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"31689:27:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55347,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31718:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31725:10:88","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"31718:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31642:94:88","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55300,"id":55350,"nodeType":"Return","src":"31635:101:88"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"31211:11:88","parameters":{"id":55288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55284,"mutability":"mutable","name":"subnetAddress","nameLocation":"31240:13:88","nodeType":"VariableDeclaration","scope":55352,"src":"31232:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55283,"name":"address","nodeType":"ElementaryTypeName","src":"31232:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55287,"mutability":"mutable","name":"gw","nameLocation":"31278:2:88","nodeType":"VariableDeclaration","scope":55352,"src":"31263:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55286,"nodeType":"UserDefinedTypeName","pathNode":{"id":55285,"name":"GatewayDiamond","nameLocations":["31263:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"31263:14:88"},"referencedDeclaration":36170,"src":"31263:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"31222:64:88"},"returnParameters":{"id":55300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31303:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55290,"nodeType":"UserDefinedTypeName","pathNode":{"id":55289,"name":"SubnetID","nameLocations":["31303:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31303:8:88"},"referencedDeclaration":50077,"src":"31303:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31320:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55292,"name":"uint256","nodeType":"ElementaryTypeName","src":"31320:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31329:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55294,"name":"uint256","nodeType":"ElementaryTypeName","src":"31329:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31338:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55296,"name":"uint256","nodeType":"ElementaryTypeName","src":"31338:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31347:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55298,"name":"uint256","nodeType":"ElementaryTypeName","src":"31347:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31302:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55374,"nodeType":"FunctionDefinition","src":"31749:177:88","nodes":[],"body":{"id":55373,"nodeType":"Block","src":"31860:66:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55369,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55354,"src":"31889:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55370,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31904:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55368,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"31877:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31877:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55367,"id":55372,"nodeType":"Return","src":"31870:49:88"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"31758:9:88","parameters":{"id":55355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55354,"mutability":"mutable","name":"subnetAddress","nameLocation":"31776:13:88","nodeType":"VariableDeclaration","scope":55374,"src":"31768:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55353,"name":"address","nodeType":"ElementaryTypeName","src":"31768:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31767:23:88"},"returnParameters":{"id":55367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31807:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55357,"nodeType":"UserDefinedTypeName","pathNode":{"id":55356,"name":"SubnetID","nameLocations":["31807:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31807:8:88"},"referencedDeclaration":50077,"src":"31807:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31824:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55359,"name":"uint256","nodeType":"ElementaryTypeName","src":"31824:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31833:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55361,"name":"uint256","nodeType":"ElementaryTypeName","src":"31833:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31842:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55363,"name":"uint256","nodeType":"ElementaryTypeName","src":"31842:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31851:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"31851:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31806:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53038,"name":"Test","nameLocations":["8694:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8694:4:88"},"id":53039,"nodeType":"InheritanceSpecifier","src":"8694:4:88"},{"baseName":{"id":53040,"name":"TestParams","nameLocations":["8700:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"8700:10:88"},"id":53041,"nodeType":"InheritanceSpecifier","src":"8700:10:88"},{"baseName":{"id":53042,"name":"TestRegistry","nameLocations":["8712:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":52747,"src":"8712:12:88"},"id":53043,"nodeType":"InheritanceSpecifier","src":"8712:12:88"},{"baseName":{"id":53044,"name":"TestSubnetActor","nameLocations":["8726:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":53037,"src":"8726:15:88"},"id":53045,"nodeType":"InheritanceSpecifier","src":"8726:15:88"},{"baseName":{"id":53046,"name":"TestGatewayActor","nameLocations":["8743:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":52912,"src":"8743:16:88"},"id":53047,"nodeType":"InheritanceSpecifier","src":"8743:16:88"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50887,52151,52279,52517,57957],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55375,52912,53037,52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8671:19:88","scope":55376,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608080604052346200085357600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601360248201527f52656769737465725375626e6574466163657400000000000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d5760009162000834575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601b5482601b55808310620007d1575b5060200190601b60005260206000208160031c9160005b83811062000781575060071981169003806200072c575b505050506040516319b8a26360e21b815260206004820152601160248201527014dd589b995d11d95d1d195c919858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d576000916200070d575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601c5482601c55808310620006a2575b5060200190601c60005260206000209060005b8160031c81106200065257506007198116810380620005fa575b505050506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d57600091620005db575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601d5482601d5580831062000553575b5060200190601d60005260206000209060005b8160031c81106200050357506007198116808203620004a9575b505050506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d5760009162000475575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601e5482601e55808310620003fc575b5060200190601e60005260206000208160031c9160005b838110620003ac5750600719811690038062000357575b604051610c8e9081620009138239f35b9260009360005b818110620003755750505001553880808062000347565b9091946020620003a1600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200035e565b6000805b60088110620003c757508382015560010162000330565b95906020620003f2600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620003b0565b601e6000526020600020600780850160031c8201920160031c0190601c8460021b168062000443575b505b81811062000436575062000319565b6000815560010162000427565b600019908183019182549160200360031b1c1690553862000425565b634e487b7160e01b600052604160045260246000fd5b6200049691503d806000833e6200048d818362000858565b8101906200087c565b38620002e5565b6040513d6000823e3d90fd5b9260009360005b8184038110620004cc5750505060031c0155388080806200027e565b9091946020620004f8600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620004b0565b6000805b600881106200051e57508382015560010162000264565b9490602062000549600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000507565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c1680620005b7575b50600780850160031c8201920160031c01905b818110620005aa575062000251565b600081556001016200059b565b60001990816007870160031c8401019182549160200360031b1c1690553862000588565b620005f391503d806000833e6200048d818362000858565b386200021d565b9260009360005b8181106200061b5750505060031c015538808080620001b8565b909194602062000647600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000601565b6000805b600881106200066d5750838201556001016200019e565b9490602062000698600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000656565b601c6000526020600020601c8460021b1680620006e9575b50600780850160031c8201920160031c01905b818110620006dc57506200018b565b60008155600101620006cd565b60001990816007870160031c8401019182549160200360031b1c16905538620006ba565b6200072591503d806000833e6200048d818362000858565b3862000157565b9260009360005b8181106200074a57505050015538808080620000f0565b909194602062000776600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000733565b6000805b600881106200079c575083820155600101620000d9565b95906020620007c7600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000785565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b168062000818575b505b8181106200080b5750620000c2565b60008155600101620007fc565b600019908183019182549160200360031b1c16905538620007fa565b6200084c91503d806000833e6200048d818362000858565b386200008e565b600080fd5b601f909101601f19168101906001600160401b038211908210176200045f57604052565b906020908183820312620008535782516001600160401b039384821162000853570181601f82011215620008535780519384116200045f578360051b9060405194620008cb8584018762000858565b8552838086019282010192831162000853578301905b828210620008f0575050505090565b81516001600160e01b03198116810362000853578152908301908301620008e156fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220081caa69548c78a1edecbdd32aea91cce7ff23b2df5a8277403874d6f50fda0b64736f6c63430008130033","sourceMap":"3908:824:91:-:0;;;;;;;1594:4:2;3908:824:91;;;;1594:4:2;3908:824:91;;;1594:4:2;3908:824:91;3201:4:5;3908:824:91;;;3201:4:5;3908:824:91;;;;4392:55;;3908:824;3201:4:5;4392:55:91;;3908:824;;;;;;;;;;;1594:4:2;4392:15:91;3908:824;4392:15;;:55;;;;;;;1594:4:2;4392:55:91;;;-1:-1:-1;;3908:824:91;;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;4361:86;3908:824;;4361:86;3908:824;;;;;;-1:-1:-1;3908:824:91;;;;4361:86;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;;;;1594:4:2;3908:824:91;;;;;;-1:-1:-1;;;3908:824:91;;;;;;;;;;;;;;;;;4494:53;;3908:824;3201:4:5;4494:53:91;;3908:824;;;;;;-1:-1:-1;;;3908:824:91;;;;1594:4:2;4392:15:91;3908:824;4392:15;;4494:53;;;;;;;1594:4:2;4494:53:91;;;3908:824;-1:-1:-1;3908:824:91;;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;4457:90;3908:824;;4457:90;3908:824;;;;;;;;;;;4457:90;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;;;;;;;-1:-1:-1;;;3908:824:91;;;;;;;;;;;;;;;;;4583:51;;3908:824;3201:4:5;4583:51:91;;3908:824;;;;;;-1:-1:-1;;;3908:824:91;;;;1594:4:2;4392:15:91;3908:824;4392:15;;4583:51;;;;;;;1594:4:2;4583:51:91;;;3908:824;-1:-1:-1;3908:824:91;;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;4557:77;3908:824;;4557:77;3908:824;;;;;;;;;;;4557:77;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;;;;;;;-1:-1:-1;;;3908:824:91;;;;;;;;;;;;;;;;;4670:53;;3908:824;3201:4:5;4670:53:91;;3908:824;;;;;;-1:-1:-1;;;3908:824:91;;;;1594:4:2;4392:15:91;3908:824;4392:15;;4670:53;;;;;;;1594:4:2;4670:53:91;;;3908:824;-1:-1:-1;3908:824:91;;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;4644:79;3908:824;;4644:79;3908:824;;;;;;;;;;;4644:79;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;;;;1594:4:2;3908:824:91;;;;;;-1:-1:-1;;;3908:824:91;;;;;;;;;;;;;;;;;;;1594:4:2;3908:824:91;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3908:824:91;;;;;;-1:-1:-1;3908:824:91;;;;1594:4:2;3908:824:91;;;;;;;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4644:79;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;4457:90;3908:824;;;;;;;;;;;;;;;;;;;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3908:824:91;;3201:4:5;3908:824:91;;1594:4:2;3908:824:91;4670:53;;;;;;1594:4:2;4670:53:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;3908:824;;;1594:4:2;3908:824:91;;;;;;;1594:4:2;3908:824:91;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3908:824:91;;;;;;-1:-1:-1;3908:824:91;;;;1594:4:2;3908:824:91;;;;;;;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4557:77;1594:4:2;3908:824:91;;;;;;4457:90;3908:824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4583:51;;;;;;1594:4:2;4583:51:91;;;;;;:::i;:::-;;;;3908:824;;1594:4:2;3908:824:91;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3908:824:91;;;;;;-1:-1:-1;3908:824:91;;;;1594:4:2;3908:824:91;;;;;;;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4457:90;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;4457:90;3908:824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4494:53;;;;;;1594:4:2;4494:53:91;;;;;;:::i;:::-;;;;3908:824;;1594:4:2;3908:824:91;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3908:824:91;;;;;;-1:-1:-1;3908:824:91;;;;1594:4:2;3908:824:91;;;;;;;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4361:86;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3908:824:91;;1594:4:2;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;4392:55;;;;;;1594:4:2;4392:55:91;;;;;;:::i;:::-;;;;3908:824;;;;;;;;;-1:-1:-1;;3908:824:91;;;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;3908:824:91;;;;;;;;;;;;;;;","linkReferences":{"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":104,"length":20},{"start":305,"length":20},{"start":503,"length":20},{"start":703,"length":20}]}}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220081caa69548c78a1edecbdd32aea91cce7ff23b2df5a8277403874d6f50fda0b64736f6c63430008130033","sourceMap":"3908:824:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;3908:824:91;;;;:::i;:::-;;1671:64:2;3908:824:91;;1671:64:2;;;:::i;:::-;3908:824:91;;;1982:18:8;3908:824:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3908:824:91;;;;;;;;-1:-1:-1;3908:824:91;;;;;-1:-1:-1;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3908:824:91;;;;;-1:-1:-1;3908:824:91;;;;;;;;;-1:-1:-1;3908:824:91;;;;-1:-1:-1;;;;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;3908:824:91;;;;:::i;:::-;;1671:64:2;3908:824:91;;1671:64:2;;;:::i;:::-;3908:824:91;;;2899:18:8;3908:824:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;3908:824:91;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3908:824:91;;;;;;;;;;;;-1:-1:-1;;;;;;3908:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3908:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3908:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3908:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3908:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3908:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;3908:824:91;;;;:::i;:::-;;1671:64:2;3908:824:91;;1671:64:2;;;:::i;:::-;3908:824:91;;;2416:18:8;3908:824:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3908:824:91;;;;;;;;-1:-1:-1;3908:824:91;;;;;-1:-1:-1;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3908:824:91;;;;;-1:-1:-1;3908:824:91;;;;;;;;;-1:-1:-1;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;3908:824:91;;;;:::i;:::-;;1671:64:2;3908:824:91;;1671:64:2;;;:::i;:::-;3908:824:91;;;2592:26:8;3908:824:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;3908:824:91;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3908:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3908:824:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;3908:824:91;;;;;;;;;;;;;;;;;1671:64:2;3908:824:91;1671:64:2;;;;;;;;;;;3908:824:91;1671:64:2;:::o;:::-;3908:824:91;;;1671:64:2;;;;;;;;;;3908:824:91;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;3908:824:91;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;3908:824:91;;;2196:43:2;;;3908:824:91;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;3908:824:91;;-1:-1:-1;1671:64:2;;3908:824:91;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;3908:824:91;1671:64:2;2086:175;;;3908:824:91;;;;;;1671:64:2;3908:824:91;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;3908:824:91;;;1671:64:2;3908:824:91;;;-1:-1:-1;;3908:824:91;2196:43:2;1671:64;3908:824:91;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;3908:824:91;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;3908:824:91;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;3908:824:91;1671:64:2;;;3908:824:91;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;3908:824:91;1671:64:2;3908:824:91;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"TestRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402\",\"dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd\",\"dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3\",\"dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorCheckpointingFacet.sol\":{\"keccak256\":\"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a\",\"dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8\",\"dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm\"]},\"src/subnet/SubnetActorPauseFacet.sol\":{\"keccak256\":\"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14\",\"dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb\"]},\"src/subnet/SubnetActorRewardFacet.sol\":{\"keccak256\":\"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088\",\"dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0x67f2f3bb9cc8e8b503a8399df4c5c5cd86388257fc90451e5e352382fed9eaa6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be78f3e3535929f0b5955f2053bf409dd593d20b561a7f19efa917cdbef4bc28\",\"dweb:/ipfs/QmcwrfvXweJEEK8h2mdt9UtCpGg2WCWN8kRjc8M54sRyiv\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f\",\"dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorMock.sol\":{\"keccak256\":\"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43\",\"dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestRegistry"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa","urls":["bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402","dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6","urls":["bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd","dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451","urls":["bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3","dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorCheckpointingFacet.sol":{"keccak256":"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96","urls":["bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a","dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c","urls":["bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8","dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorPauseFacet.sol":{"keccak256":"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49","urls":["bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14","dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorRewardFacet.sol":{"keccak256":"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435","urls":["bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088","dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0x67f2f3bb9cc8e8b503a8399df4c5c5cd86388257fc90451e5e352382fed9eaa6","urls":["bzz-raw://be78f3e3535929f0b5955f2053bf409dd593d20b561a7f19efa917cdbef4bc28","dweb:/ipfs/QmcwrfvXweJEEK8h2mdt9UtCpGg2WCWN8kRjc8M54sRyiv"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d","urls":["bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f","dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorMock.sol":{"keccak256":"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a","urls":["bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43","dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55677,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49885],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49927],"CrossMsgHelper":[40725],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49951],"FvmAddressHelper":[40906],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50157],"IntegrationTestBase":[55676],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49871],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50118],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52286],"SelectorLibrary":[56636],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49944],"StorableMsgHelper":[47414],"Subnet":[50044],"SubnetActorCheckpointingFacet":[50577],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[51235],"SubnetActorManagerFacet":[51946],"SubnetActorMock":[58342],"SubnetActorPauseFacet":[51991],"SubnetActorRewardFacet":[52158],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52524],"SubnetID":[50030],"SubnetIDHelper":[48025],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50182],"SupplySource":[50179],"SupplySourceHelper":[48351],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52925],"TestParams":[52696],"TestRegistry":[52760],"TestSubnetActor":[53089],"TestUtils":[57424],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50164],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:35596:91","nodes":[{"id":52526,"nodeType":"PragmaDirective","src":"46:23:91","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52527,"nodeType":"ImportDirective","src":"71:28:91","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52528,"nodeType":"ImportDirective","src":"100:36:91","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"137:37:91","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52532,"nodeType":"ImportDirective","src":"176:72:91","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52530,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"249:61:91","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52533,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"311:56:91","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52535,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52541,"nodeType":"ImportDirective","src":"368:102:91","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":52537,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"376:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"386:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"406:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"419:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52543,"nodeType":"ImportDirective","src":"471:57:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":52542,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"479:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52552,"nodeType":"ImportDirective","src":"529:140:91","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":52544,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"537:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52545,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"547:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52546,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"559:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52547,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"575:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52548,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"591:6:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52549,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"599:12:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52550,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"613:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52551,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"625:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52554,"nodeType":"ImportDirective","src":"670:61:91","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":52553,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"678:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52556,"nodeType":"ImportDirective","src":"732:65:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40907,"symbolAliases":[{"foreign":{"id":52555,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"740:16:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52558,"nodeType":"ImportDirective","src":"798:61:91","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":52557,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"806:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52560,"nodeType":"ImportDirective","src":"860:67:91","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":52559,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"868:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52562,"nodeType":"ImportDirective","src":"928:56:91","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52561,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52564,"nodeType":"ImportDirective","src":"985:57:91","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52563,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52566,"nodeType":"ImportDirective","src":"1043:65:91","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52565,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52568,"nodeType":"ImportDirective","src":"1109:73:91","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52567,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52570,"nodeType":"ImportDirective","src":"1183:79:91","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52569,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52572,"nodeType":"ImportDirective","src":"1263:75:91","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52571,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52574,"nodeType":"ImportDirective","src":"1340:80:91","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52573,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52576,"nodeType":"ImportDirective","src":"1421:80:91","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52575,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52578,"nodeType":"ImportDirective","src":"1502:84:91","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52577,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52580,"nodeType":"ImportDirective","src":"1587:82:91","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52579,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52582,"nodeType":"ImportDirective","src":"1671:60:91","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"./mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":58343,"symbolAliases":[{"foreign":{"id":52581,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58342,"src":"1679:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52584,"nodeType":"ImportDirective","src":"1732:82:91","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":52583,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"1740:23:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52586,"nodeType":"ImportDirective","src":"1815:78:91","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":52585,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"1823:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52588,"nodeType":"ImportDirective","src":"1894:94:91","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":52587,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"1902:29:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52590,"nodeType":"ImportDirective","src":"1989:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":52589,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"1997:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52592,"nodeType":"ImportDirective","src":"2070:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":52591,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"2078:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52594,"nodeType":"ImportDirective","src":"2152:71:91","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52593,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"2160:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52596,"nodeType":"ImportDirective","src":"2224:82:91","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":52595,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"2232:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52598,"nodeType":"ImportDirective","src":"2307:78:91","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":52597,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"2315:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52600,"nodeType":"ImportDirective","src":"2387:71:91","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52599,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2395:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52602,"nodeType":"ImportDirective","src":"2459:67:91","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52601,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2467:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52604,"nodeType":"ImportDirective","src":"2527:69:91","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":52603,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"2535:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52606,"nodeType":"ImportDirective","src":"2597:50:91","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":57425,"symbolAliases":[{"foreign":{"id":52605,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57424,"src":"2605:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52608,"nodeType":"ImportDirective","src":"2648:62:91","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":56637,"symbolAliases":[{"foreign":{"id":52607,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"2656:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52696,"nodeType":"ContractDefinition","src":"2712:1194:91","nodes":[{"id":52615,"nodeType":"VariableDeclaration","src":"2738:44:91","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2754:9:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2738:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2771:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52611,"name":"uint64","nodeType":"ElementaryTypeName","src":"2771:6:91","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52610,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2766:4:91","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2766:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2779:3:91","memberName":"max","nodeType":"MemberAccess","src":"2766:16:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52621,"nodeType":"VariableDeclaration","src":"2788:91:91","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2805:20:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52616,"name":"address","nodeType":"ElementaryTypeName","src":"2788:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2836:42:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2828:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52617,"name":"address","nodeType":"ElementaryTypeName","src":"2828:7:91","typeDescriptions":{}}},"id":52620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2828:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52624,"nodeType":"VariableDeclaration","src":"2885:42:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2901:22:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52622,"name":"uint64","nodeType":"ElementaryTypeName","src":"2885:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2926:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52627,"nodeType":"VariableDeclaration","src":"2933:54:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2950:27:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52625,"name":"uint256","nodeType":"ElementaryTypeName","src":"2933:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2980:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52630,"nodeType":"VariableDeclaration","src":"2993:47:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"3008:27:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52628,"name":"uint8","nodeType":"ElementaryTypeName","src":"2993:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:2:91","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52633,"nodeType":"VariableDeclaration","src":"3046:51:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"3062:25:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52631,"name":"uint64","nodeType":"ElementaryTypeName","src":"3046:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3090:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52636,"nodeType":"VariableDeclaration","src":"3103:46:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"3119:25:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52634,"name":"uint64","nodeType":"ElementaryTypeName","src":"3103:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52639,"nodeType":"VariableDeclaration","src":"3155:44:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"3171:16:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52637,"name":"string","nodeType":"ElementaryTypeName","src":"3155:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3190:9:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52642,"nodeType":"VariableDeclaration","src":"3205:36:91","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"3220:7:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52640,"name":"bytes","nodeType":"ElementaryTypeName","src":"3205:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52641,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3230:11:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52645,"nodeType":"VariableDeclaration","src":"3247:48:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3264:21:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52643,"name":"uint256","nodeType":"ElementaryTypeName","src":"3247:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52648,"nodeType":"VariableDeclaration","src":"3301:49:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3318:22:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52646,"name":"uint256","nodeType":"ElementaryTypeName","src":"3301:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3343:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52654,"nodeType":"VariableDeclaration","src":"3356:52:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3373:21:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52649,"name":"address","nodeType":"ElementaryTypeName","src":"3356:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3405:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3397:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52650,"name":"address","nodeType":"ElementaryTypeName","src":"3397:7:91","typeDescriptions":{}}},"id":52653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3397:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52660,"nodeType":"VariableDeclaration","src":"3414:54:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3431:23:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52655,"name":"address","nodeType":"ElementaryTypeName","src":"3414:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3465:2:91","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3457:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52656,"name":"address","nodeType":"ElementaryTypeName","src":"3457:7:91","typeDescriptions":{}}},"id":52659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3457:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52665,"nodeType":"VariableDeclaration","src":"3474:57:91","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3490:9:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52661,"name":"uint64","nodeType":"ElementaryTypeName","src":"3474:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3502:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52663,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"3506:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3502:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52668,"nodeType":"VariableDeclaration","src":"3537:50:91","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3554:23:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3537:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3580:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52671,"nodeType":"VariableDeclaration","src":"3593:53:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3609:31:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52669,"name":"uint16","nodeType":"ElementaryTypeName","src":"3593:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3643:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52674,"nodeType":"VariableDeclaration","src":"3652:38:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3666:19:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52672,"name":"int8","nodeType":"ElementaryTypeName","src":"3652:4:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3688:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52677,"nodeType":"VariableDeclaration","src":"3696:37:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3712:15:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52675,"name":"uint64","nodeType":"ElementaryTypeName","src":"3696:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3730:3:91","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52683,"nodeType":"VariableDeclaration","src":"3739:45:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3756:15:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3782:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3774:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52679,"name":"address","nodeType":"ElementaryTypeName","src":"3774:7:91","typeDescriptions":{}}},"id":52682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52689,"nodeType":"VariableDeclaration","src":"3790:57:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3807:24:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52684,"name":"address","nodeType":"ElementaryTypeName","src":"3790:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3842:4:91","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3834:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52685,"name":"address","nodeType":"ElementaryTypeName","src":"3834:7:91","typeDescriptions":{}}},"id":52688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52695,"nodeType":"VariableDeclaration","src":"3853:50:91","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3870:19:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52690,"name":"address","nodeType":"ElementaryTypeName","src":"3853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3900:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3892:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52691,"name":"address","nodeType":"ElementaryTypeName","src":"3892:7:91","typeDescriptions":{}}},"id":52694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3892:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52696],"name":"TestParams","nameLocation":"2721:10:91","scope":55677,"usedErrors":[]},{"id":52760,"nodeType":"ContractDefinition","src":"3908:824:91","nodes":[{"id":52703,"nodeType":"VariableDeclaration","src":"3956:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3965:28:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52701,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3956:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52702,"nodeType":"ArrayTypeName","src":"3956:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52706,"nodeType":"VariableDeclaration","src":"3999:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"4008:34:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52704,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3999:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52705,"nodeType":"ArrayTypeName","src":"3999:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52709,"nodeType":"VariableDeclaration","src":"4048:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"4057:23:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52707,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4048:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52708,"nodeType":"ArrayTypeName","src":"4048:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52712,"nodeType":"VariableDeclaration","src":"4086:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"4095:23:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52710,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4086:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52711,"nodeType":"ArrayTypeName","src":"4086:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52715,"nodeType":"VariableDeclaration","src":"4125:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"4147:15:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52714,"nodeType":"UserDefinedTypeName","pathNode":{"id":52713,"name":"SubnetRegistryDiamond","nameLocations":["4125:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"4125:21:91"},"referencedDeclaration":36853,"src":"4125:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52718,"nodeType":"VariableDeclaration","src":"4168:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"4186:14:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52717,"nodeType":"UserDefinedTypeName","pathNode":{"id":52716,"name":"DiamondLoupeFacet","nameLocations":["4168:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"4168:17:91"},"referencedDeclaration":37355,"src":"4168:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52721,"nodeType":"VariableDeclaration","src":"4206:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"4222:14:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52720,"nodeType":"UserDefinedTypeName","pathNode":{"id":52719,"name":"DiamondCutFacet","nameLocations":["4206:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"4206:15:91"},"referencedDeclaration":36918,"src":"4206:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52724,"nodeType":"VariableDeclaration","src":"4242:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4262:19:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52723,"nodeType":"UserDefinedTypeName","pathNode":{"id":52722,"name":"RegisterSubnetFacet","nameLocations":["4242:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"4242:19:91"},"referencedDeclaration":52286,"src":"4242:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52727,"nodeType":"VariableDeclaration","src":"4287:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4305:25:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52726,"nodeType":"UserDefinedTypeName","pathNode":{"id":52725,"name":"SubnetGetterFacet","nameLocations":["4287:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"4287:17:91"},"referencedDeclaration":52524,"src":"4287:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52759,"nodeType":"FunctionDefinition","src":"4337:393:91","nodes":[],"body":{"id":52758,"nodeType":"Block","src":"4351:379:91","nodes":[],"statements":[{"expression":{"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52730,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52703,"src":"4361:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4425:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52731,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4392:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4408:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4392:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4392:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4361:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52736,"nodeType":"ExpressionStatement","src":"4361:86:91"},{"expression":{"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52737,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"4457:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4527:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52738,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4494:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4510:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4494:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4494:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4457:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52743,"nodeType":"ExpressionStatement","src":"4457:90:91"},{"expression":{"id":52749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52744,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"4557:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4616:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52745,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4583:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4599:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4583:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4583:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4557:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52750,"nodeType":"ExpressionStatement","src":"4557:77:91"},{"expression":{"id":52756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52751,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"4644:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4703:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52752,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4670:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4686:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4670:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4670:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4644:79:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52757,"nodeType":"ExpressionStatement","src":"4644:79:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52728,"nodeType":"ParameterList","parameters":[],"src":"4348:2:91"},"returnParameters":{"id":52729,"nodeType":"ParameterList","parameters":[],"src":"4351:0:91"},"scope":52760,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52697,"name":"Test","nameLocations":["3933:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3933:4:91"},"id":52698,"nodeType":"InheritanceSpecifier","src":"3933:4:91"},{"baseName":{"id":52699,"name":"TestParams","nameLocations":["3939:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"3939:10:91"},"id":52700,"nodeType":"InheritanceSpecifier","src":"3939:10:91"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52760,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3917:12:91","scope":55677,"usedErrors":[]},{"id":52925,"nodeType":"ContractDefinition","src":"4734:2237:91","nodes":[{"id":52767,"nodeType":"VariableDeclaration","src":"4786:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4795:29:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52765,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4786:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52766,"nodeType":"ArrayTypeName","src":"4786:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52770,"nodeType":"VariableDeclaration","src":"4830:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4839:29:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52768,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4830:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52769,"nodeType":"ArrayTypeName","src":"4830:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52773,"nodeType":"VariableDeclaration","src":"4874:40:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4883:31:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52771,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4874:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52772,"nodeType":"ArrayTypeName","src":"4874:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52776,"nodeType":"VariableDeclaration","src":"4920:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4929:30:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52774,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4920:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52775,"nodeType":"ArrayTypeName","src":"4920:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52779,"nodeType":"VariableDeclaration","src":"4966:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4975:18:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52777,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4966:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52778,"nodeType":"ArrayTypeName","src":"4966:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52782,"nodeType":"VariableDeclaration","src":"4999:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"5008:17:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52780,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4999:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52781,"nodeType":"ArrayTypeName","src":"4999:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52785,"nodeType":"VariableDeclaration","src":"5031:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"5040:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52783,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5031:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52784,"nodeType":"ArrayTypeName","src":"5031:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52788,"nodeType":"VariableDeclaration","src":"5067:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"5076:17:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52786,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5067:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52787,"nodeType":"ArrayTypeName","src":"5067:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52791,"nodeType":"VariableDeclaration","src":"5099:25:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"5108:16:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52789,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5099:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52790,"nodeType":"ArrayTypeName","src":"5099:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52794,"nodeType":"VariableDeclaration","src":"5131:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"5146:14:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52793,"nodeType":"UserDefinedTypeName","pathNode":{"id":52792,"name":"GatewayDiamond","nameLocations":["5131:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"5131:14:91"},"referencedDeclaration":36170,"src":"5131:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52797,"nodeType":"VariableDeclaration","src":"5166:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"5186:9:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52796,"nodeType":"UserDefinedTypeName","pathNode":{"id":52795,"name":"GatewayManagerFacet","nameLocations":["5166:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"5166:19:91"},"referencedDeclaration":38870,"src":"5166:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52800,"nodeType":"VariableDeclaration","src":"5201:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"5220:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52799,"nodeType":"UserDefinedTypeName","pathNode":{"id":52798,"name":"GatewayGetterFacet","nameLocations":["5201:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"5201:18:91"},"referencedDeclaration":38317,"src":"5201:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52803,"nodeType":"VariableDeclaration","src":"5234:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5253:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52802,"nodeType":"UserDefinedTypeName","pathNode":{"id":52801,"name":"CheckpointingFacet","nameLocations":["5234:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5234:18:91"},"referencedDeclaration":39870,"src":"5234:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52806,"nodeType":"VariableDeclaration","src":"5279:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5298:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52805,"nodeType":"UserDefinedTypeName","pathNode":{"id":52804,"name":"XnetMessagingFacet","nameLocations":["5279:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5279:18:91"},"referencedDeclaration":40144,"src":"5279:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52809,"nodeType":"VariableDeclaration","src":"5324:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5345:22:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52808,"nodeType":"UserDefinedTypeName","pathNode":{"id":52807,"name":"TopDownFinalityFacet","nameLocations":["5324:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5324:20:91"},"referencedDeclaration":40071,"src":"5324:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52812,"nodeType":"VariableDeclaration","src":"5373:41:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5393:21:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52811,"nodeType":"UserDefinedTypeName","pathNode":{"id":52810,"name":"BottomUpRouterFacet","nameLocations":["5373:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5373:19:91"},"referencedDeclaration":39601,"src":"5373:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52815,"nodeType":"VariableDeclaration","src":"5420:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5442:11:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52814,"nodeType":"UserDefinedTypeName","pathNode":{"id":52813,"name":"GatewayMessengerFacet","nameLocations":["5420:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5420:21:91"},"referencedDeclaration":39235,"src":"5420:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52818,"nodeType":"VariableDeclaration","src":"5459:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5475:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52817,"nodeType":"UserDefinedTypeName","pathNode":{"id":52816,"name":"DiamondCutFacet","nameLocations":["5459:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5459:15:91"},"referencedDeclaration":36918,"src":"5459:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52821,"nodeType":"VariableDeclaration","src":"5489:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5507:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52820,"nodeType":"UserDefinedTypeName","pathNode":{"id":52819,"name":"DiamondLoupeFacet","nameLocations":["5489:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5489:17:91"},"referencedDeclaration":37355,"src":"5489:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52888,"nodeType":"FunctionDefinition","src":"5522:835:91","nodes":[],"body":{"id":52887,"nodeType":"Block","src":"5536:821:91","nodes":[],"statements":[{"expression":{"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52824,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52767,"src":"5546:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5611:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52825,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5578:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5594:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5578:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5546:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52830,"nodeType":"ExpressionStatement","src":"5546:86:91"},{"expression":{"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52831,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52770,"src":"5642:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5707:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52832,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5674:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5690:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5674:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5674:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5642:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52837,"nodeType":"ExpressionStatement","src":"5642:86:91"},{"expression":{"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52838,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52773,"src":"5738:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5805:22:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52839,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5772:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5788:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5772:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5772:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5738:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52844,"nodeType":"ExpressionStatement","src":"5738:90:91"},{"expression":{"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52845,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"5838:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5904:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52846,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5871:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5887:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5871:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5871:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5838:88:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52851,"nodeType":"ExpressionStatement","src":"5838:88:91"},{"expression":{"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52852,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52782,"src":"5937:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5990:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52853,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5957:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5973:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5957:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5957:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5937:74:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52858,"nodeType":"ExpressionStatement","src":"5937:74:91"},{"expression":{"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52859,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52779,"src":"6021:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6075:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52860,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6042:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6058:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6042:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6042:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6021:76:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52865,"nodeType":"ExpressionStatement","src":"6021:76:91"},{"expression":{"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52866,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52785,"src":"6107:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6163:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52867,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6130:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6146:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6130:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6130:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6107:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52872,"nodeType":"ExpressionStatement","src":"6107:80:91"},{"expression":{"id":52878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52873,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52788,"src":"6197:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6250:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52874,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6217:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6233:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6217:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6217:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6197:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52879,"nodeType":"ExpressionStatement","src":"6197:71:91"},{"expression":{"id":52885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52880,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52791,"src":"6278:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6330:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52881,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6297:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6313:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6297:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6297:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6278:72:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52886,"nodeType":"ExpressionStatement","src":"6278:72:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52822,"nodeType":"ParameterList","parameters":[],"src":"5533:2:91"},"returnParameters":{"id":52823,"nodeType":"ParameterList","parameters":[],"src":"5536:0:91"},"scope":52925,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52924,"nodeType":"FunctionDefinition","src":"6363:606:91","nodes":[],"body":{"id":52923,"nodeType":"Block","src":"6467:502:91","nodes":[],"statements":[{"assignments":[52898],"declarations":[{"constant":false,"id":52898,"mutability":"mutable","name":"params","nameLocation":"6517:6:91","nodeType":"VariableDeclaration","scope":52923,"src":"6477:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52897,"nodeType":"UserDefinedTypeName","pathNode":{"id":52896,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6477:14:91","6492:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6477:32:91"},"referencedDeclaration":35883,"src":"6477:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52920,"initialValue":{"arguments":[{"arguments":[{"id":52902,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"6602:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6640:1:91","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":52905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6626:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52903,"name":"address","nodeType":"ElementaryTypeName","src":"6630:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52904,"nodeType":"ArrayTypeName","src":"6630:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6626:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52901,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"6586:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6596:4:91","6619:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"6586:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52909,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"6679:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52910,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"6726:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52911,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52630,"src":"6781:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6857:1:91","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":52915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6841:15:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52913,"nodeType":"UserDefinedTypeName","pathNode":{"id":52912,"name":"Validator","nameLocations":["6845:9:91"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"6845:9:91"},"referencedDeclaration":50164,"src":"6845:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":52914,"nodeType":"ArrayTypeName","src":"6845:11:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6841:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52918,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"6896:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52899,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6526:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6541:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6526:32:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6573:11:91","6658:19:91","6718:6:91","6761:18:91","6822:17:91","6873:21:91"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6526:412:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6477:461:91"},{"expression":{"id":52921,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"6956:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52893,"id":52922,"nodeType":"Return","src":"6949:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6372:20:91","parameters":{"id":52889,"nodeType":"ParameterList","parameters":[],"src":"6392:2:91"},"returnParameters":{"id":52893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52924,"src":"6426:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52891,"nodeType":"UserDefinedTypeName","pathNode":{"id":52890,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6426:14:91","6441:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6426:32:91"},"referencedDeclaration":35883,"src":"6426:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6425:41:91"},"scope":52925,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52761,"name":"Test","nameLocations":["4763:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4763:4:91"},"id":52762,"nodeType":"InheritanceSpecifier","src":"4763:4:91"},{"baseName":{"id":52763,"name":"TestParams","nameLocations":["4769:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"4769:10:91"},"id":52764,"nodeType":"InheritanceSpecifier","src":"4769:10:91"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52925,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4743:16:91","scope":55677,"usedErrors":[]},{"id":53089,"nodeType":"ContractDefinition","src":"6973:2395:91","nodes":[{"id":52932,"nodeType":"VariableDeclaration","src":"7024:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"7033:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52930,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7024:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52931,"nodeType":"ArrayTypeName","src":"7024:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52935,"nodeType":"VariableDeclaration","src":"7056:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"7065:18:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52933,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7056:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52934,"nodeType":"ArrayTypeName","src":"7056:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52938,"nodeType":"VariableDeclaration","src":"7089:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauserSelectors","nameLocation":"7098:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52936,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7089:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52937,"nodeType":"ArrayTypeName","src":"7089:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52941,"nodeType":"VariableDeclaration","src":"7121:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarderSelectors","nameLocation":"7130:19:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52939,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7121:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52940,"nodeType":"ArrayTypeName","src":"7121:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52944,"nodeType":"VariableDeclaration","src":"7155:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointerSelectors","nameLocation":"7164:23:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52942,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7155:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52943,"nodeType":"ArrayTypeName","src":"7155:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52947,"nodeType":"VariableDeclaration","src":"7193:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"7202:24:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52945,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7193:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52946,"nodeType":"ArrayTypeName","src":"7193:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52950,"nodeType":"VariableDeclaration","src":"7232:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"7241:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52948,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7232:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52949,"nodeType":"ArrayTypeName","src":"7232:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52953,"nodeType":"VariableDeclaration","src":"7264:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"7273:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52951,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7264:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52952,"nodeType":"ArrayTypeName","src":"7264:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52956,"nodeType":"VariableDeclaration","src":"7297:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"7316:9:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52955,"nodeType":"UserDefinedTypeName","pathNode":{"id":52954,"name":"SubnetActorDiamond","nameLocations":["7297:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"7297:18:91"},"referencedDeclaration":36615,"src":"7297:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52959,"nodeType":"VariableDeclaration","src":"7331:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7355:9:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52958,"nodeType":"UserDefinedTypeName","pathNode":{"id":52957,"name":"SubnetActorManagerFacet","nameLocations":["7331:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"7331:23:91"},"referencedDeclaration":51946,"src":"7331:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52962,"nodeType":"VariableDeclaration","src":"7370:22:91","nodes":[],"constant":false,"mutability":"mutable","name":"saMock","nameLocation":"7386:6:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"},"typeName":{"id":52961,"nodeType":"UserDefinedTypeName","pathNode":{"id":52960,"name":"SubnetActorMock","nameLocations":["7370:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"7370:15:91"},"referencedDeclaration":58342,"src":"7370:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"visibility":"internal"},{"id":52965,"nodeType":"VariableDeclaration","src":"7398:31:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7421:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52964,"nodeType":"UserDefinedTypeName","pathNode":{"id":52963,"name":"SubnetActorGetterFacet","nameLocations":["7398:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"7398:22:91"},"referencedDeclaration":51235,"src":"7398:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52968,"nodeType":"VariableDeclaration","src":"7435:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarder","nameLocation":"7458:10:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":52967,"nodeType":"UserDefinedTypeName","pathNode":{"id":52966,"name":"SubnetActorRewardFacet","nameLocations":["7435:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"7435:22:91"},"referencedDeclaration":52158,"src":"7435:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"},{"id":52971,"nodeType":"VariableDeclaration","src":"7474:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauser","nameLocation":"7496:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":52970,"nodeType":"UserDefinedTypeName","pathNode":{"id":52969,"name":"SubnetActorPauseFacet","nameLocations":["7474:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"7474:21:91"},"referencedDeclaration":51991,"src":"7474:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"},{"id":52974,"nodeType":"VariableDeclaration","src":"7510:44:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointer","nameLocation":"7540:14:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":52973,"nodeType":"UserDefinedTypeName","pathNode":{"id":52972,"name":"SubnetActorCheckpointingFacet","nameLocations":["7510:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"7510:29:91"},"referencedDeclaration":50577,"src":"7510:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"},{"id":52977,"nodeType":"VariableDeclaration","src":"7561:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7577:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52976,"nodeType":"UserDefinedTypeName","pathNode":{"id":52975,"name":"DiamondCutFacet","nameLocations":["7561:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7561:15:91"},"referencedDeclaration":36918,"src":"7561:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52980,"nodeType":"VariableDeclaration","src":"7591:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7609:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52979,"nodeType":"UserDefinedTypeName","pathNode":{"id":52978,"name":"DiamondLoupeFacet","nameLocations":["7591:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7591:17:91"},"referencedDeclaration":37355,"src":"7591:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":53040,"nodeType":"FunctionDefinition","src":"7624:729:91","nodes":[],"body":{"id":53039,"nodeType":"Block","src":"7638:715:91","nodes":[],"statements":[{"expression":{"id":52988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52983,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"7648:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7701:24:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52984,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7668:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7684:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7668:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7668:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7648:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52989,"nodeType":"ExpressionStatement","src":"7648:78:91"},{"expression":{"id":52995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52990,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"7736:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7790:25:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52991,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7757:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7773:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7757:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7757:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7736:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52996,"nodeType":"ExpressionStatement","src":"7736:80:91"},{"expression":{"id":53002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52997,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"7826:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":53000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7879:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""},"value":"SubnetActorPauseFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""}],"expression":{"id":52998,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7846:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7862:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7846:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7846:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7826:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53003,"nodeType":"ExpressionStatement","src":"7826:77:91"},{"expression":{"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53004,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"7913:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":53007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7968:24:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""},"value":"SubnetActorRewardFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""}],"expression":{"id":53005,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7935:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7951:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7935:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7935:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7913:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53010,"nodeType":"ExpressionStatement","src":"7913:80:91"},{"expression":{"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53011,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"8003:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":53014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8062:31:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""},"value":"SubnetActorCheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""}],"expression":{"id":53012,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8029:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8045:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8029:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8029:65:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8003:91:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53017,"nodeType":"ExpressionStatement","src":"8003:91:91"},{"expression":{"id":53023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53018,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"8104:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":53021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8164:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""},"value":"SubnetActorMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""}],"expression":{"id":53019,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8131:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8131:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8131:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8104:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53024,"nodeType":"ExpressionStatement","src":"8104:78:91"},{"expression":{"id":53030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53025,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"8192:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":53028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8245:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":53026,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8212:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8228:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8212:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8212:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8192:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53031,"nodeType":"ExpressionStatement","src":"8192:71:91"},{"expression":{"id":53037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53032,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"8273:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":53035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8326:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":53033,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8293:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8309:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8293:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8293:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8273:73:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53038,"nodeType":"ExpressionStatement","src":"8273:73:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52981,"nodeType":"ParameterList","parameters":[],"src":"7635:2:91"},"returnParameters":{"id":52982,"nodeType":"ParameterList","parameters":[],"src":"7638:0:91"},"scope":53089,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53088,"nodeType":"FunctionDefinition","src":"8359:1007:91","nodes":[],"body":{"id":53087,"nodeType":"Block","src":"8506:860:91","nodes":[],"statements":[{"assignments":[53050],"declarations":[{"constant":false,"id":53050,"mutability":"mutable","name":"native","nameLocation":"8536:6:91","nodeType":"VariableDeclaration","scope":53087,"src":"8516:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":53049,"nodeType":"UserDefinedTypeName","pathNode":{"id":53048,"name":"SupplySource","nameLocations":["8516:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"8516:12:91"},"referencedDeclaration":50179,"src":"8516:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53054,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53051,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"8545:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":53052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8564:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"8545:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8545:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"8516:56:91"},{"assignments":[53059],"declarations":[{"constant":false,"id":53059,"mutability":"mutable","name":"params","nameLocation":"8626:6:91","nodeType":"VariableDeclaration","scope":53087,"src":"8582:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8582:18:91","8601:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"8582:36:91"},"referencedDeclaration":36253,"src":"8582:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53084,"initialValue":{"arguments":[{"arguments":[{"id":53063,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"8712:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8750:1:91","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":53066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8736:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53064,"name":"address","nodeType":"ElementaryTypeName","src":"8740:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53065,"nodeType":"ArrayTypeName","src":"8740:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8736:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53062,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"8696:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8706:4:91","8729:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"8696:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53070,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53042,"src":"8784:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53071,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8811:13:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8825:10:91","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8811:24:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53073,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"8874:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53074,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52624,"src":"8928:22:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53075,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"8985:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53076,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52630,"src":"9044:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53077,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"9108:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53078,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52674,"src":"9165:19:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53079,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"9214:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53080,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"9265:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9280:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"9265:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":53082,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53050,"src":"9318:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53060,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"8635:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8654:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"8635:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8686:8:91","8768:14:91","8800:9:91","8849:23:91","8913:13:91","8964:19:91","9024:18:91","9085:21:91","9153:10:91","9198:14:91","9249:14:91","9304:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"8635:700:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8582:753:91"},{"expression":{"id":53085,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53059,"src":"9353:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":53047,"id":53086,"nodeType":"Return","src":"9346:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"8368:35:91","parameters":{"id":53043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53042,"mutability":"mutable","name":"gw","nameLocation":"8421:2:91","nodeType":"VariableDeclaration","scope":53088,"src":"8413:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53041,"name":"address","nodeType":"ElementaryTypeName","src":"8413:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8403:26:91"},"returnParameters":{"id":53047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53088,"src":"8461:43:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53045,"nodeType":"UserDefinedTypeName","pathNode":{"id":53044,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8461:18:91","8480:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"8461:36:91"},"referencedDeclaration":36253,"src":"8461:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"8460:45:91"},"scope":53089,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52926,"name":"Test","nameLocations":["7001:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"7001:4:91"},"id":52927,"nodeType":"InheritanceSpecifier","src":"7001:4:91"},{"baseName":{"id":52928,"name":"TestParams","nameLocations":["7007:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"7007:10:91"},"id":52929,"nodeType":"InheritanceSpecifier","src":"7007:10:91"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53089,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6982:15:91","scope":55677,"usedErrors":[]},{"id":55676,"nodeType":"ContractDefinition","src":"9370:26271:91","nodes":[{"id":53103,"nodeType":"UsingForDirective","src":"9474:34:91","nodes":[],"global":false,"libraryName":{"id":53100,"name":"SubnetIDHelper","nameLocations":["9480:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"9480:14:91"},"typeName":{"id":53102,"nodeType":"UserDefinedTypeName","pathNode":{"id":53101,"name":"SubnetID","nameLocations":["9499:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"9499:8:91"},"referencedDeclaration":50030,"src":"9499:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":53107,"nodeType":"UsingForDirective","src":"9513:42:91","nodes":[],"global":false,"libraryName":{"id":53104,"name":"SupplySourceHelper","nameLocations":["9519:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"9519:18:91"},"typeName":{"id":53106,"nodeType":"UserDefinedTypeName","pathNode":{"id":53105,"name":"SupplySource","nameLocations":["9542:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"9542:12:91"},"referencedDeclaration":50179,"src":"9542:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":53111,"nodeType":"UsingForDirective","src":"9560:34:91","nodes":[],"global":false,"libraryName":{"id":53108,"name":"CrossMsgHelper","nameLocations":["9566:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"9566:14:91"},"typeName":{"id":53110,"nodeType":"UserDefinedTypeName","pathNode":{"id":53109,"name":"CrossMsg","nameLocations":["9585:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"9585:8:91"},"referencedDeclaration":49927,"src":"9585:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53115,"nodeType":"UsingForDirective","src":"9599:40:91","nodes":[],"global":false,"libraryName":{"id":53112,"name":"StorableMsgHelper","nameLocations":["9605:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"9605:17:91"},"typeName":{"id":53114,"nodeType":"UserDefinedTypeName","pathNode":{"id":53113,"name":"StorableMsg","nameLocations":["9627:11:91"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"9627:11:91"},"referencedDeclaration":49944,"src":"9627:11:91","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53119,"nodeType":"UsingForDirective","src":"9644:38:91","nodes":[],"global":false,"libraryName":{"id":53116,"name":"FvmAddressHelper","nameLocations":["9650:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"9650:16:91"},"typeName":{"id":53118,"nodeType":"UserDefinedTypeName","pathNode":{"id":53117,"name":"FvmAddress","nameLocations":["9671:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"9671:10:91"},"referencedDeclaration":49951,"src":"9671:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53123,"nodeType":"EventDefinition","src":"9688:67:91","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"9694:21:91","parameters":{"id":53122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53121,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9732:21:91","nodeType":"VariableDeclaration","scope":53123,"src":"9716:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9716:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9715:39:91"}},{"id":53127,"nodeType":"FunctionDefinition","src":"9761:16:91","nodes":[],"body":{"id":53126,"nodeType":"Block","src":"9775:2:91","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53124,"nodeType":"ParameterList","parameters":[],"src":"9772:2:91"},"returnParameters":{"id":53125,"nodeType":"ParameterList","parameters":[],"src":"9775:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53329,"nodeType":"FunctionDefinition","src":"9783:1732:91","nodes":[],"body":{"id":53328,"nodeType":"Block","src":"9815:1700:91","nodes":[],"statements":[{"assignments":[53134],"declarations":[{"constant":false,"id":53134,"mutability":"mutable","name":"path","nameLocation":"9842:4:91","nodeType":"VariableDeclaration","scope":53328,"src":"9825:21:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53132,"name":"address","nodeType":"ElementaryTypeName","src":"9825:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53133,"nodeType":"ArrayTypeName","src":"9825:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53140,"initialValue":{"arguments":[{"hexValue":"31","id":53138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9863:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9849:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53135,"name":"address","nodeType":"ElementaryTypeName","src":"9853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53136,"nodeType":"ArrayTypeName","src":"9853:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9849:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9825:40:91"},{"expression":{"id":53145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53141,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"9875:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53143,"indexExpression":{"hexValue":"30","id":53142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9880:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9875:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53144,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52683,"src":"9885:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9875:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53146,"nodeType":"ExpressionStatement","src":"9875:25:91"},{"assignments":[53151],"declarations":[{"constant":false,"id":53151,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9993:19:91","nodeType":"VariableDeclaration","scope":53328,"src":"9953:59:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53150,"nodeType":"UserDefinedTypeName","pathNode":{"id":53149,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9953:14:91","9968:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9953:32:91"},"referencedDeclaration":35883,"src":"9953:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53154,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53152,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52924,"src":"10015:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10015:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9953:84:91"},{"expression":{"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10047:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53157,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53151,"src":"10085:19:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53156,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53588,"src":"10064:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10064:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"10047:58:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53160,"nodeType":"ExpressionStatement","src":"10047:58:91"},{"expression":{"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53161,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"10116:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53165,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10154:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10146:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53163,"name":"address","nodeType":"ElementaryTypeName","src":"10146:7:91","typeDescriptions":{}}},"id":53166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10146:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53162,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"10127:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10127:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"10116:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53169,"nodeType":"ExpressionStatement","src":"10116:54:91"},{"expression":{"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53170,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"10180:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53174,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10220:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53172,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:91","typeDescriptions":{}}},"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53171,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"10192:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10192:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"10180:56:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53178,"nodeType":"ExpressionStatement","src":"10180:56:91"},{"expression":{"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53179,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52803,"src":"10246:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53183,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10296:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10288:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53181,"name":"address","nodeType":"ElementaryTypeName","src":"10288:7:91","typeDescriptions":{}}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10288:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53180,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"10269:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10269:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"10246:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53187,"nodeType":"ExpressionStatement","src":"10246:66:91"},{"expression":{"id":53195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53188,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"10322:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53192,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10372:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10364:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53190,"name":"address","nodeType":"ElementaryTypeName","src":"10364:7:91","typeDescriptions":{}}},"id":53193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10364:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53189,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"10345:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10345:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"10322:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53196,"nodeType":"ExpressionStatement","src":"10322:66:91"},{"expression":{"id":53204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53197,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"10398:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53201,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10452:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10444:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53199,"name":"address","nodeType":"ElementaryTypeName","src":"10444:7:91","typeDescriptions":{}}},"id":53202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10444:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53198,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"10423:20:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10423:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"10398:70:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53205,"nodeType":"ExpressionStatement","src":"10398:70:91"},{"expression":{"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53206,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52812,"src":"10478:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53210,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10530:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10522:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53208,"name":"address","nodeType":"ElementaryTypeName","src":"10522:7:91","typeDescriptions":{}}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10522:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53207,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"10502:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10502:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"10478:68:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53214,"nodeType":"ExpressionStatement","src":"10478:68:91"},{"expression":{"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53215,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52815,"src":"10556:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53219,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10600:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10592:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53217,"name":"address","nodeType":"ElementaryTypeName","src":"10592:7:91","typeDescriptions":{}}},"id":53220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10592:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53216,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"10570:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10570:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"10556:60:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53223,"nodeType":"ExpressionStatement","src":"10556:60:91"},{"expression":{"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53224,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52821,"src":"10626:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53228,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10663:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10655:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53226,"name":"address","nodeType":"ElementaryTypeName","src":"10655:7:91","typeDescriptions":{}}},"id":53229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10655:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53225,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10637:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10637:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10626:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53232,"nodeType":"ExpressionStatement","src":"10626:53:91"},{"expression":{"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53233,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52818,"src":"10689:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53237,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10724:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10716:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53235,"name":"address","nodeType":"ElementaryTypeName","src":"10716:7:91","typeDescriptions":{}}},"id":53238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10716:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53234,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10700:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10700:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10689:51:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53241,"nodeType":"ExpressionStatement","src":"10689:51:91"},{"assignments":[53246],"declarations":[{"constant":false,"id":53246,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10849:19:91","nodeType":"VariableDeclaration","scope":53328,"src":"10805:63:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53245,"nodeType":"UserDefinedTypeName","pathNode":{"id":53244,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10805:18:91","10824:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10805:36:91"},"referencedDeclaration":36253,"src":"10805:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53253,"initialValue":{"arguments":[{"arguments":[{"id":53250,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10928:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10920:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53248,"name":"address","nodeType":"ElementaryTypeName","src":"10920:7:91","typeDescriptions":{}}},"id":53251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10920:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53247,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53088,"src":"10871:35:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10871:82:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10805:148:91"},{"expression":{"id":53258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53254,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"10964:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53256,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53246,"src":"10994:19:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53255,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53912,53941,54244],"referencedDeclaration":53912,"src":"10976:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10976:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10964:50:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53259,"nodeType":"ExpressionStatement","src":"10964:50:91"},{"expression":{"id":53267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53260,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"11024:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53264,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11068:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11060:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53262,"name":"address","nodeType":"ElementaryTypeName","src":"11060:7:91","typeDescriptions":{}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11060:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53261,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"11036:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11036:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"11024:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53268,"nodeType":"ExpressionStatement","src":"11024:55:91"},{"expression":{"id":53276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53269,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"11089:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53273,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11131:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11123:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53271,"name":"address","nodeType":"ElementaryTypeName","src":"11123:7:91","typeDescriptions":{}}},"id":53274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11123:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53270,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"11100:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11100:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"11089:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53277,"nodeType":"ExpressionStatement","src":"11089:53:91"},{"expression":{"id":53285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53278,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"11152:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53282,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11193:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11185:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53280,"name":"address","nodeType":"ElementaryTypeName","src":"11185:7:91","typeDescriptions":{}}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11185:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53279,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"11163:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":53284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11163:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"11152:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53286,"nodeType":"ExpressionStatement","src":"11152:52:91"},{"expression":{"id":53294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53287,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"11214:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53291,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11258:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11250:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53289,"name":"address","nodeType":"ElementaryTypeName","src":"11250:7:91","typeDescriptions":{}}},"id":53292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11250:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53288,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"11227:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":53293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"11214:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":53295,"nodeType":"ExpressionStatement","src":"11214:55:91"},{"expression":{"id":53303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53296,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"11279:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53300,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11334:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11326:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53298,"name":"address","nodeType":"ElementaryTypeName","src":"11326:7:91","typeDescriptions":{}}},"id":53301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11326:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53297,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"11296:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":53302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11296:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"11279:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":53304,"nodeType":"ExpressionStatement","src":"11279:66:91"},{"expression":{"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53305,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"11355:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53309,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11392:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11384:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53307,"name":"address","nodeType":"ElementaryTypeName","src":"11384:7:91","typeDescriptions":{}}},"id":53310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11384:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53306,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"11366:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11366:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"11355:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53313,"nodeType":"ExpressionStatement","src":"11355:48:91"},{"expression":{"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53314,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"11413:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53318,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11448:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11440:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53316,"name":"address","nodeType":"ElementaryTypeName","src":"11440:7:91","typeDescriptions":{}}},"id":53319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11440:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53315,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"11424:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11424:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"11413:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53322,"nodeType":"ExpressionStatement","src":"11413:46:91"},{"expression":{"arguments":[{"id":53324,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52695,"src":"11483:19:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11504:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53323,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54787,54870],"referencedDeclaration":54870,"src":"11470:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11470:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53327,"nodeType":"ExpressionStatement","src":"11470:38:91"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9792:5:91","parameters":{"id":53128,"nodeType":"ParameterList","parameters":[],"src":"9797:2:91"},"returnParameters":{"id":53129,"nodeType":"ParameterList","parameters":[],"src":"9815:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53588,"nodeType":"FunctionDefinition","src":"11521:3185:91","nodes":[],"body":{"id":53587,"nodeType":"Block","src":"11631:3075:91","nodes":[],"statements":[{"assignments":[53340],"declarations":[{"constant":false,"id":53340,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"11660:18:91","nodeType":"VariableDeclaration","scope":53587,"src":"11641:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53339,"nodeType":"UserDefinedTypeName","pathNode":{"id":53338,"name":"CheckpointingFacet","nameLocations":["11641:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11641:18:91"},"referencedDeclaration":39870,"src":"11641:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53345,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11681:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53342,"nodeType":"UserDefinedTypeName","pathNode":{"id":53341,"name":"CheckpointingFacet","nameLocations":["11685:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11685:18:91"},"referencedDeclaration":39870,"src":"11685:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11681:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11641:64:91"},{"assignments":[53348],"declarations":[{"constant":false,"id":53348,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"11734:18:91","nodeType":"VariableDeclaration","scope":53587,"src":"11715:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53347,"nodeType":"UserDefinedTypeName","pathNode":{"id":53346,"name":"XnetMessagingFacet","nameLocations":["11715:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11715:18:91"},"referencedDeclaration":40144,"src":"11715:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53353,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11755:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53350,"nodeType":"UserDefinedTypeName","pathNode":{"id":53349,"name":"XnetMessagingFacet","nameLocations":["11759:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11759:18:91"},"referencedDeclaration":40144,"src":"11759:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11755:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11715:64:91"},{"assignments":[53356],"declarations":[{"constant":false,"id":53356,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"11810:20:91","nodeType":"VariableDeclaration","scope":53587,"src":"11789:41:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53355,"nodeType":"UserDefinedTypeName","pathNode":{"id":53354,"name":"TopDownFinalityFacet","nameLocations":["11789:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11789:20:91"},"referencedDeclaration":40071,"src":"11789:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53361,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11833:24:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53358,"nodeType":"UserDefinedTypeName","pathNode":{"id":53357,"name":"TopDownFinalityFacet","nameLocations":["11837:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11837:20:91"},"referencedDeclaration":40071,"src":"11837:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11833:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"11789:70:91"},{"assignments":[53364],"declarations":[{"constant":false,"id":53364,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"11889:19:91","nodeType":"VariableDeclaration","scope":53587,"src":"11869:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53363,"nodeType":"UserDefinedTypeName","pathNode":{"id":53362,"name":"BottomUpRouterFacet","nameLocations":["11869:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11869:19:91"},"referencedDeclaration":39601,"src":"11869:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53369,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11911:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53366,"nodeType":"UserDefinedTypeName","pathNode":{"id":53365,"name":"BottomUpRouterFacet","nameLocations":["11915:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11915:19:91"},"referencedDeclaration":39601,"src":"11915:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11911:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11869:67:91"},{"assignments":[53372],"declarations":[{"constant":false,"id":53372,"mutability":"mutable","name":"manager","nameLocation":"11967:7:91","nodeType":"VariableDeclaration","scope":53587,"src":"11947:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53371,"nodeType":"UserDefinedTypeName","pathNode":{"id":53370,"name":"GatewayManagerFacet","nameLocations":["11947:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11947:19:91"},"referencedDeclaration":38870,"src":"11947:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53377,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11977:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53374,"nodeType":"UserDefinedTypeName","pathNode":{"id":53373,"name":"GatewayManagerFacet","nameLocations":["11981:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11981:19:91"},"referencedDeclaration":38870,"src":"11981:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11947:55:91"},{"assignments":[53380],"declarations":[{"constant":false,"id":53380,"mutability":"mutable","name":"getter","nameLocation":"12031:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12012:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53379,"nodeType":"UserDefinedTypeName","pathNode":{"id":53378,"name":"GatewayGetterFacet","nameLocations":["12012:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12012:18:91"},"referencedDeclaration":38317,"src":"12012:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53385,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12040:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53382,"nodeType":"UserDefinedTypeName","pathNode":{"id":53381,"name":"GatewayGetterFacet","nameLocations":["12044:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12044:18:91"},"referencedDeclaration":38317,"src":"12044:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"12012:52:91"},{"assignments":[53388],"declarations":[{"constant":false,"id":53388,"mutability":"mutable","name":"messenger","nameLocation":"12096:9:91","nodeType":"VariableDeclaration","scope":53587,"src":"12074:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53387,"nodeType":"UserDefinedTypeName","pathNode":{"id":53386,"name":"GatewayMessengerFacet","nameLocations":["12074:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12074:21:91"},"referencedDeclaration":39235,"src":"12074:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53393,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12108:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53390,"nodeType":"UserDefinedTypeName","pathNode":{"id":53389,"name":"GatewayMessengerFacet","nameLocations":["12112:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12112:21:91"},"referencedDeclaration":39235,"src":"12112:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12108:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12074:61:91"},{"assignments":[53396],"declarations":[{"constant":false,"id":53396,"mutability":"mutable","name":"cutter","nameLocation":"12161:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12145:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53395,"nodeType":"UserDefinedTypeName","pathNode":{"id":53394,"name":"DiamondCutFacet","nameLocations":["12145:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12145:15:91"},"referencedDeclaration":36918,"src":"12145:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53401,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12170:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53398,"nodeType":"UserDefinedTypeName","pathNode":{"id":53397,"name":"DiamondCutFacet","nameLocations":["12174:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12174:15:91"},"referencedDeclaration":36918,"src":"12174:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12170:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12145:46:91"},{"assignments":[53404],"declarations":[{"constant":false,"id":53404,"mutability":"mutable","name":"louper","nameLocation":"12219:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12201:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53403,"nodeType":"UserDefinedTypeName","pathNode":{"id":53402,"name":"DiamondLoupeFacet","nameLocations":["12201:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12201:17:91"},"referencedDeclaration":37355,"src":"12201:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53409,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12228:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53406,"nodeType":"UserDefinedTypeName","pathNode":{"id":53405,"name":"DiamondLoupeFacet","nameLocations":["12232:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12232:17:91"},"referencedDeclaration":37355,"src":"12232:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12228:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12201:50:91"},{"assignments":[53415],"declarations":[{"constant":false,"id":53415,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"12289:12:91","nodeType":"VariableDeclaration","scope":53587,"src":"12262:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53413,"nodeType":"UserDefinedTypeName","pathNode":{"id":53412,"name":"IDiamond.FacetCut","nameLocations":["12262:8:91","12271:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12262:17:91"},"referencedDeclaration":40159,"src":"12262:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53414,"nodeType":"ArrayTypeName","src":"12262:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53422,"initialValue":{"arguments":[{"hexValue":"39","id":53420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12328:1:91","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12304:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53417,"nodeType":"UserDefinedTypeName","pathNode":{"id":53416,"name":"IDiamond.FacetCut","nameLocations":["12308:8:91","12317:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12308:17:91"},"referencedDeclaration":40159,"src":"12308:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53418,"nodeType":"ArrayTypeName","src":"12308:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12304:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12262:68:91"},{"expression":{"id":53438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53423,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12341:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53425,"indexExpression":{"hexValue":"30","id":53424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12354:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12341:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53430,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53340,"src":"12431:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12423:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53428,"name":"address","nodeType":"ElementaryTypeName","src":"12423:7:91","typeDescriptions":{}}},"id":53431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12423:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12476:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12485:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12476:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12500:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12476:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53435,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52767,"src":"12540:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53426,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12373:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12382:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12373:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12409:12:91","12468:6:91","12521:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12373:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53437,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12359:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12341:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53439,"nodeType":"ExpressionStatement","src":"12341:253:91"},{"expression":{"id":53455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53440,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12605:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53442,"indexExpression":{"hexValue":"36","id":53441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12618:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12605:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53447,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53348,"src":"12695:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12687:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53445,"name":"address","nodeType":"ElementaryTypeName","src":"12687:7:91","typeDescriptions":{}}},"id":53448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12687:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12740:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12749:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12740:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12764:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12740:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53452,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52770,"src":"12804:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53443,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12637:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12646:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12637:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12673:12:91","12732:6:91","12785:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12637:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53454,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12623:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12605:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53456,"nodeType":"ExpressionStatement","src":"12605:253:91"},{"expression":{"id":53472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53457,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12869:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53459,"indexExpression":{"hexValue":"37","id":53458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12882:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12869:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53464,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53356,"src":"12959:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12951:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53462,"name":"address","nodeType":"ElementaryTypeName","src":"12951:7:91","typeDescriptions":{}}},"id":53465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12951:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13006:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13030:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13006:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53469,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52773,"src":"13070:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53460,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12901:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12910:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12901:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12937:12:91","12998:6:91","13051:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12901:215:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12887:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12869:257:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53473,"nodeType":"ExpressionStatement","src":"12869:257:91"},{"expression":{"id":53489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53474,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13137:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53476,"indexExpression":{"hexValue":"38","id":53475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13150:1:91","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13137:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53481,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53364,"src":"13227:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13219:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53479,"name":"address","nodeType":"ElementaryTypeName","src":"13219:7:91","typeDescriptions":{}}},"id":53482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13219:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13273:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13282:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13273:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13297:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13273:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53486,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"13337:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53477,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13169:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13178:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13169:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13205:12:91","13265:6:91","13318:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13169:213:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53488,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13155:237:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13137:255:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53490,"nodeType":"ExpressionStatement","src":"13137:255:91"},{"expression":{"id":53506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53491,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13403:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53493,"indexExpression":{"hexValue":"31","id":53492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13416:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13403:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53498,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53372,"src":"13493:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13485:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53496,"name":"address","nodeType":"ElementaryTypeName","src":"13485:7:91","typeDescriptions":{}}},"id":53499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13485:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53500,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13527:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13536:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13527:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13551:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13527:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53503,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52779,"src":"13591:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53494,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13435:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13444:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13435:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13471:12:91","13519:6:91","13572:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13435:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53505,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13421:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13403:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53507,"nodeType":"ExpressionStatement","src":"13403:231:91"},{"expression":{"id":53523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53508,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13645:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53510,"indexExpression":{"hexValue":"32","id":53509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13658:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13645:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53515,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53380,"src":"13735:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13727:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13727:7:91","typeDescriptions":{}}},"id":53516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13727:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53517,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13768:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13777:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13768:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13792:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13768:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53520,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52782,"src":"13832:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53511,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13677:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13686:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13677:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13713:12:91","13760:6:91","13813:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13677:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53522,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13663:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13645:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53524,"nodeType":"ExpressionStatement","src":"13645:229:91"},{"expression":{"id":53540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53525,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13885:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53527,"indexExpression":{"hexValue":"33","id":53526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13898:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13885:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53532,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53388,"src":"13975:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13967:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53530,"name":"address","nodeType":"ElementaryTypeName","src":"13967:7:91","typeDescriptions":{}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53534,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14011:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14020:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14011:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14035:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14011:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53537,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52785,"src":"14075:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13917:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13926:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13917:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13953:12:91","14003:6:91","14056:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13917:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53539,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13903:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13885:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53541,"nodeType":"ExpressionStatement","src":"13885:235:91"},{"expression":{"id":53557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53542,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14131:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53544,"indexExpression":{"hexValue":"34","id":53543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14144:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14131:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53549,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53404,"src":"14221:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14213:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53547,"name":"address","nodeType":"ElementaryTypeName","src":"14213:7:91","typeDescriptions":{}}},"id":53550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14213:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53551,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14254:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14263:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14254:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14278:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14254:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53554,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52791,"src":"14318:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53545,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14163:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14172:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14163:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14199:12:91","14246:6:91","14299:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14163:186:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53556,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14149:210:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14131:228:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53558,"nodeType":"ExpressionStatement","src":"14131:228:91"},{"expression":{"id":53574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53559,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14370:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53561,"indexExpression":{"hexValue":"35","id":53560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14383:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14370:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53566,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53396,"src":"14460:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14452:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53564,"name":"address","nodeType":"ElementaryTypeName","src":"14452:7:91","typeDescriptions":{}}},"id":53567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14452:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53568,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14493:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14502:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14493:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14517:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14493:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53571,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52788,"src":"14557:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53562,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14402:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14411:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14402:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14438:12:91","14485:6:91","14538:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14402:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14388:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14370:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53575,"nodeType":"ExpressionStatement","src":"14370:229:91"},{"expression":{"id":53583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53576,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"14610:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53580,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14646:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53581,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53332,"src":"14660:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14627:18:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53578,"nodeType":"UserDefinedTypeName","pathNode":{"id":53577,"name":"GatewayDiamond","nameLocations":["14631:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"14631:14:91"},"referencedDeclaration":36170,"src":"14631:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14627:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"14610:57:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53584,"nodeType":"ExpressionStatement","src":"14610:57:91"},{"expression":{"id":53585,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"14685:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53337,"id":53586,"nodeType":"Return","src":"14678:21:91"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"11530:20:91","parameters":{"id":53333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53332,"mutability":"mutable","name":"params","nameLocation":"11591:6:91","nodeType":"VariableDeclaration","scope":53588,"src":"11551:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53331,"nodeType":"UserDefinedTypeName","pathNode":{"id":53330,"name":"GatewayDiamond.ConstructorParams","nameLocations":["11551:14:91","11566:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"11551:32:91"},"referencedDeclaration":35883,"src":"11551:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"11550:48:91"},"returnParameters":{"id":53337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53588,"src":"11615:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53335,"nodeType":"UserDefinedTypeName","pathNode":{"id":53334,"name":"GatewayDiamond","nameLocations":["11615:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"11615:14:91"},"referencedDeclaration":36170,"src":"11615:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"11614:16:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53702,"nodeType":"FunctionDefinition","src":"14712:1613:91","nodes":[],"body":{"id":53701,"nodeType":"Block","src":"14988:1337:91","nodes":[],"statements":[{"assignments":[53612],"declarations":[{"constant":false,"id":53612,"mutability":"mutable","name":"diamondCut","nameLocation":"15025:10:91","nodeType":"VariableDeclaration","scope":53701,"src":"14998:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53610,"nodeType":"UserDefinedTypeName","pathNode":{"id":53609,"name":"IDiamond.FacetCut","nameLocations":["14998:8:91","15007:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14998:17:91"},"referencedDeclaration":40159,"src":"14998:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53611,"nodeType":"ArrayTypeName","src":"14998:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53619,"initialValue":{"arguments":[{"hexValue":"35","id":53617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15062:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":53616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15038:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53614,"nodeType":"UserDefinedTypeName","pathNode":{"id":53613,"name":"IDiamond.FacetCut","nameLocations":["15042:8:91","15051:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15042:17:91"},"referencedDeclaration":40159,"src":"15042:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53615,"nodeType":"ArrayTypeName","src":"15042:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15038:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14998:66:91"},{"expression":{"id":53632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53620,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15075:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53622,"indexExpression":{"hexValue":"30","id":53621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15086:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15075:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53625,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53593,"src":"15155:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53626,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15187:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15196:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15187:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15211:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15187:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53629,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"15251:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53623,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15105:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15114:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15105:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15141:12:91","15179:6:91","15232:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15105:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53631,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15091:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15075:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53633,"nodeType":"ExpressionStatement","src":"15075:218:91"},{"expression":{"id":53646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53634,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15304:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53636,"indexExpression":{"hexValue":"31","id":53635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15315:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15304:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53639,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53595,"src":"15384:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53640,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15417:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15426:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15417:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15441:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15417:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53643,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"15481:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53637,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15334:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15343:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15334:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15370:12:91","15409:6:91","15462:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15334:180:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53645,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15320:204:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15304:220:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53647,"nodeType":"ExpressionStatement","src":"15304:220:91"},{"expression":{"id":53660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53648,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15535:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53650,"indexExpression":{"hexValue":"32","id":53649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15546:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15535:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53653,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53597,"src":"15615:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53654,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15647:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15656:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15647:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15671:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15647:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53657,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"15711:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53651,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15565:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15574:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15565:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15601:12:91","15639:6:91","15692:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15565:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53659,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15551:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15535:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53661,"nodeType":"ExpressionStatement","src":"15535:218:91"},{"expression":{"id":53674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53662,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15764:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53664,"indexExpression":{"hexValue":"33","id":53663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15775:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15764:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53667,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53599,"src":"15844:8:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53668,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15878:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15887:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15878:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15902:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15878:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53671,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"15942:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53665,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15794:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15803:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15794:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15830:12:91","15870:6:91","15923:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15794:182:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53673,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15780:206:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15764:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53675,"nodeType":"ExpressionStatement","src":"15764:222:91"},{"expression":{"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53676,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15997:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53678,"indexExpression":{"hexValue":"34","id":53677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16008:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15997:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53681,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53601,"src":"16077:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53682,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16124:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"16115:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16139:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"16115:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53685,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"16179:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53679,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16027:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16036:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"16027:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16063:12:91","16107:6:91","16160:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"16027:190:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53687,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16013:214:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15997:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53689,"nodeType":"ExpressionStatement","src":"15997:230:91"},{"expression":{"id":53697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53690,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"16238:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53694,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"16273:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53695,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53591,"src":"16285:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16250:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53692,"nodeType":"UserDefinedTypeName","pathNode":{"id":53691,"name":"SubnetActorDiamond","nameLocations":["16254:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16254:18:91"},"referencedDeclaration":36615,"src":"16254:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16250:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"16238:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53698,"nodeType":"ExpressionStatement","src":"16238:54:91"},{"expression":{"id":53699,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"16309:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53606,"id":53700,"nodeType":"Return","src":"16302:16:91"}]},"functionSelector":"ea1c89ed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"14721:35:91","parameters":{"id":53602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53591,"mutability":"mutable","name":"params","nameLocation":"14810:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14766:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53590,"nodeType":"UserDefinedTypeName","pathNode":{"id":53589,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14766:18:91","14785:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14766:36:91"},"referencedDeclaration":36253,"src":"14766:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53593,"mutability":"mutable","name":"getter","nameLocation":"14834:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14826:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53592,"name":"address","nodeType":"ElementaryTypeName","src":"14826:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53595,"mutability":"mutable","name":"manager","nameLocation":"14858:7:91","nodeType":"VariableDeclaration","scope":53702,"src":"14850:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53594,"name":"address","nodeType":"ElementaryTypeName","src":"14850:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53597,"mutability":"mutable","name":"pauser","nameLocation":"14883:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14875:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53596,"name":"address","nodeType":"ElementaryTypeName","src":"14875:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53599,"mutability":"mutable","name":"rewarder","nameLocation":"14907:8:91","nodeType":"VariableDeclaration","scope":53702,"src":"14899:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53598,"name":"address","nodeType":"ElementaryTypeName","src":"14899:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53601,"mutability":"mutable","name":"checkpointer","nameLocation":"14933:12:91","nodeType":"VariableDeclaration","scope":53702,"src":"14925:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53600,"name":"address","nodeType":"ElementaryTypeName","src":"14925:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14756:195:91"},"returnParameters":{"id":53606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53702,"src":"14968:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"SubnetActorDiamond","nameLocations":["14968:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14968:18:91"},"referencedDeclaration":36615,"src":"14968:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14967:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53912,"nodeType":"FunctionDefinition","src":"16331:2480:91","nodes":[],"body":{"id":53911,"nodeType":"Block","src":"16446:2365:91","nodes":[],"statements":[{"assignments":[53713],"declarations":[{"constant":false,"id":53713,"mutability":"mutable","name":"manager","nameLocation":"16480:7:91","nodeType":"VariableDeclaration","scope":53911,"src":"16456:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53712,"nodeType":"UserDefinedTypeName","pathNode":{"id":53711,"name":"SubnetActorManagerFacet","nameLocations":["16456:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16456:23:91"},"referencedDeclaration":51946,"src":"16456:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53718,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16490:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53715,"nodeType":"UserDefinedTypeName","pathNode":{"id":53714,"name":"SubnetActorManagerFacet","nameLocations":["16494:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16494:23:91"},"referencedDeclaration":51946,"src":"16494:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16490:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"16456:63:91"},{"assignments":[53721],"declarations":[{"constant":false,"id":53721,"mutability":"mutable","name":"getter","nameLocation":"16552:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16529:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53720,"nodeType":"UserDefinedTypeName","pathNode":{"id":53719,"name":"SubnetActorGetterFacet","nameLocations":["16529:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16529:22:91"},"referencedDeclaration":51235,"src":"16529:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53726,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16561:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53723,"nodeType":"UserDefinedTypeName","pathNode":{"id":53722,"name":"SubnetActorGetterFacet","nameLocations":["16565:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16565:22:91"},"referencedDeclaration":51235,"src":"16565:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16561:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"16529:60:91"},{"assignments":[53729],"declarations":[{"constant":false,"id":53729,"mutability":"mutable","name":"pauser","nameLocation":"16621:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16599:28:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":53728,"nodeType":"UserDefinedTypeName","pathNode":{"id":53727,"name":"SubnetActorPauseFacet","nameLocations":["16599:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16599:21:91"},"referencedDeclaration":51991,"src":"16599:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"}],"id":53734,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16630:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53731,"nodeType":"UserDefinedTypeName","pathNode":{"id":53730,"name":"SubnetActorPauseFacet","nameLocations":["16634:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16634:21:91"},"referencedDeclaration":51991,"src":"16634:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16630:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"VariableDeclarationStatement","src":"16599:58:91"},{"assignments":[53737],"declarations":[{"constant":false,"id":53737,"mutability":"mutable","name":"rewarder","nameLocation":"16690:8:91","nodeType":"VariableDeclaration","scope":53911,"src":"16667:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":53736,"nodeType":"UserDefinedTypeName","pathNode":{"id":53735,"name":"SubnetActorRewardFacet","nameLocations":["16667:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16667:22:91"},"referencedDeclaration":52158,"src":"16667:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"}],"id":53742,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16701:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":53739,"nodeType":"UserDefinedTypeName","pathNode":{"id":53738,"name":"SubnetActorRewardFacet","nameLocations":["16705:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16705:22:91"},"referencedDeclaration":52158,"src":"16705:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":53741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16701:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"VariableDeclarationStatement","src":"16667:62:91"},{"assignments":[53745],"declarations":[{"constant":false,"id":53745,"mutability":"mutable","name":"checkpointer","nameLocation":"16769:12:91","nodeType":"VariableDeclaration","scope":53911,"src":"16739:42:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":53744,"nodeType":"UserDefinedTypeName","pathNode":{"id":53743,"name":"SubnetActorCheckpointingFacet","nameLocations":["16739:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16739:29:91"},"referencedDeclaration":50577,"src":"16739:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"}],"id":53750,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16784:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53747,"nodeType":"UserDefinedTypeName","pathNode":{"id":53746,"name":"SubnetActorCheckpointingFacet","nameLocations":["16788:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16788:29:91"},"referencedDeclaration":50577,"src":"16788:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16784:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"16739:80:91"},{"assignments":[53753],"declarations":[{"constant":false,"id":53753,"mutability":"mutable","name":"louper","nameLocation":"16848:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16830:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53752,"nodeType":"UserDefinedTypeName","pathNode":{"id":53751,"name":"DiamondLoupeFacet","nameLocations":["16830:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16830:17:91"},"referencedDeclaration":37355,"src":"16830:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53758,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16857:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53755,"nodeType":"UserDefinedTypeName","pathNode":{"id":53754,"name":"DiamondLoupeFacet","nameLocations":["16861:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16861:17:91"},"referencedDeclaration":37355,"src":"16861:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16857:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"16830:50:91"},{"assignments":[53761],"declarations":[{"constant":false,"id":53761,"mutability":"mutable","name":"cutter","nameLocation":"16906:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16890:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53760,"nodeType":"UserDefinedTypeName","pathNode":{"id":53759,"name":"DiamondCutFacet","nameLocations":["16890:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16890:15:91"},"referencedDeclaration":36918,"src":"16890:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53766,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16915:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53763,"nodeType":"UserDefinedTypeName","pathNode":{"id":53762,"name":"DiamondCutFacet","nameLocations":["16919:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16919:15:91"},"referencedDeclaration":36918,"src":"16919:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16915:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"16890:46:91"},{"assignments":[53772],"declarations":[{"constant":false,"id":53772,"mutability":"mutable","name":"diamondCut","nameLocation":"16974:10:91","nodeType":"VariableDeclaration","scope":53911,"src":"16947:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53770,"nodeType":"UserDefinedTypeName","pathNode":{"id":53769,"name":"IDiamond.FacetCut","nameLocations":["16947:8:91","16956:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16947:17:91"},"referencedDeclaration":40159,"src":"16947:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53771,"nodeType":"ArrayTypeName","src":"16947:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53779,"initialValue":{"arguments":[{"hexValue":"37","id":53777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17011:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"id":53776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16987:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"IDiamond.FacetCut","nameLocations":["16991:8:91","17000:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16991:17:91"},"referencedDeclaration":40159,"src":"16991:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53775,"nodeType":"ArrayTypeName","src":"16991:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16987:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"16947:66:91"},{"expression":{"id":53795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53780,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17024:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53782,"indexExpression":{"hexValue":"30","id":53781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17035:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17024:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53787,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53713,"src":"17112:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":53786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17104:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53785,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:91","typeDescriptions":{}}},"id":53788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17104:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53789,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17146:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17155:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17146:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17170:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17146:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53792,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"17210:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53783,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17054:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17063:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17054:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17090:12:91","17138:6:91","17191:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17054:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17040:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17024:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53796,"nodeType":"ExpressionStatement","src":"17024:229:91"},{"expression":{"id":53812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53797,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17264:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53799,"indexExpression":{"hexValue":"31","id":53798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17275:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17264:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53804,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"17352:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":53803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17344:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53802,"name":"address","nodeType":"ElementaryTypeName","src":"17344:7:91","typeDescriptions":{}}},"id":53805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17344:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53806,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17385:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17394:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17385:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17409:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17385:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53809,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"17449:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53800,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17294:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17303:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17294:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17330:12:91","17377:6:91","17430:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17294:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53811,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17280:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17264:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53813,"nodeType":"ExpressionStatement","src":"17264:227:91"},{"expression":{"id":53829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53814,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17502:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53816,"indexExpression":{"hexValue":"32","id":53815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17513:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17502:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53821,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53729,"src":"17590:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":53820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17582:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53819,"name":"address","nodeType":"ElementaryTypeName","src":"17582:7:91","typeDescriptions":{}}},"id":53822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17582:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53823,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17623:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17632:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17623:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17647:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17623:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53826,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"17687:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53817,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17532:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17541:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17532:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17568:12:91","17615:6:91","17668:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17532:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53828,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17518:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17502:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53830,"nodeType":"ExpressionStatement","src":"17502:227:91"},{"expression":{"id":53846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53831,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17740:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53833,"indexExpression":{"hexValue":"33","id":53832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17751:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17740:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53838,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"17828:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":53837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17820:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53836,"name":"address","nodeType":"ElementaryTypeName","src":"17820:7:91","typeDescriptions":{}}},"id":53839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17820:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53840,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17863:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17872:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17863:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17887:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17863:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53843,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"17927:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53834,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17770:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17779:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17770:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17806:12:91","17855:6:91","17908:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17770:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53845,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17756:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17740:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53847,"nodeType":"ExpressionStatement","src":"17740:231:91"},{"expression":{"id":53863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53848,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17982:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53850,"indexExpression":{"hexValue":"34","id":53849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17993:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17982:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53855,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53745,"src":"18070:12:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":53854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18062:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53853,"name":"address","nodeType":"ElementaryTypeName","src":"18062:7:91","typeDescriptions":{}}},"id":53856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18062:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53857,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18109:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18118:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18109:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18133:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18109:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53860,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"18173:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53851,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18012:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18021:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18012:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18048:12:91","18101:6:91","18154:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18012:199:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53862,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17998:223:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17982:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53864,"nodeType":"ExpressionStatement","src":"17982:239:91"},{"expression":{"id":53880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53865,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18232:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53867,"indexExpression":{"hexValue":"35","id":53866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18243:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18232:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53872,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53761,"src":"18320:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18312:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53870,"name":"address","nodeType":"ElementaryTypeName","src":"18312:7:91","typeDescriptions":{}}},"id":53873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18312:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53874,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18353:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18362:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18353:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18377:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18353:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53877,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"18417:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53868,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18262:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18271:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18262:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18298:12:91","18345:6:91","18398:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18262:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53879,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18248:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18232:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53881,"nodeType":"ExpressionStatement","src":"18232:227:91"},{"expression":{"id":53897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53882,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18470:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53884,"indexExpression":{"hexValue":"36","id":53883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18481:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18470:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53889,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53753,"src":"18558:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18550:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53887,"name":"address","nodeType":"ElementaryTypeName","src":"18550:7:91","typeDescriptions":{}}},"id":53890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18550:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53891,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18591:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18600:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18591:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18615:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18591:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53894,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"18655:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53885,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18500:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18509:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18500:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18536:12:91","18583:6:91","18636:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18500:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53896,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18486:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18470:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53898,"nodeType":"ExpressionStatement","src":"18470:227:91"},{"assignments":[53901],"declarations":[{"constant":false,"id":53901,"mutability":"mutable","name":"diamond","nameLocation":"18727:7:91","nodeType":"VariableDeclaration","scope":53911,"src":"18708:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53900,"nodeType":"UserDefinedTypeName","pathNode":{"id":53899,"name":"SubnetActorDiamond","nameLocations":["18708:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18708:18:91"},"referencedDeclaration":36615,"src":"18708:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53908,"initialValue":{"arguments":[{"id":53905,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18760:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53906,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53705,"src":"18772:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18737:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53903,"nodeType":"UserDefinedTypeName","pathNode":{"id":53902,"name":"SubnetActorDiamond","nameLocations":["18741:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18741:18:91"},"referencedDeclaration":36615,"src":"18741:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18737:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"18708:71:91"},{"expression":{"id":53909,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53901,"src":"18797:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53710,"id":53910,"nodeType":"Return","src":"18790:14:91"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16340:17:91","parameters":{"id":53706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53705,"mutability":"mutable","name":"params","nameLocation":"16402:6:91","nodeType":"VariableDeclaration","scope":53912,"src":"16358:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53704,"nodeType":"UserDefinedTypeName","pathNode":{"id":53703,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["16358:18:91","16377:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"16358:36:91"},"referencedDeclaration":36253,"src":"16358:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"16357:52:91"},"returnParameters":{"id":53710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53912,"src":"16426:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53708,"nodeType":"UserDefinedTypeName","pathNode":{"id":53707,"name":"SubnetActorDiamond","nameLocations":["16426:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16426:18:91"},"referencedDeclaration":36615,"src":"16426:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16425:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53941,"nodeType":"FunctionDefinition","src":"18817:522:91","nodes":[],"body":{"id":53940,"nodeType":"Block","src":"19061:278:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":53929,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53914,"src":"19102:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53930,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53917,"src":"19131:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53931,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53919,"src":"19155:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53932,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53921,"src":"19193:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53933,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53923,"src":"19221:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53934,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53925,"src":"19247:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53935,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"19280:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19295:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"19280:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19319:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53928,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53912,53941,54244],"referencedDeclaration":54244,"src":"19071:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50118_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19071:261:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53939,"nodeType":"ExpressionStatement","src":"19071:261:91"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"18826:17:91","parameters":{"id":53926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53914,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"18861:15:91","nodeType":"VariableDeclaration","scope":53941,"src":"18853:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53913,"name":"address","nodeType":"ElementaryTypeName","src":"18853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53917,"mutability":"mutable","name":"_consensus","nameLocation":"18900:10:91","nodeType":"VariableDeclaration","scope":53941,"src":"18886:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53916,"nodeType":"UserDefinedTypeName","pathNode":{"id":53915,"name":"ConsensusType","nameLocations":["18886:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"18886:13:91"},"referencedDeclaration":37359,"src":"18886:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53919,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"18928:24:91","nodeType":"VariableDeclaration","scope":53941,"src":"18920:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53918,"name":"uint256","nodeType":"ElementaryTypeName","src":"18920:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53921,"mutability":"mutable","name":"_minValidators","nameLocation":"18969:14:91","nodeType":"VariableDeclaration","scope":53941,"src":"18962:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53920,"name":"uint64","nodeType":"ElementaryTypeName","src":"18962:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53923,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19000:12:91","nodeType":"VariableDeclaration","scope":53941,"src":"18993:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53922,"name":"uint64","nodeType":"ElementaryTypeName","src":"18993:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53925,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19028:19:91","nodeType":"VariableDeclaration","scope":53941,"src":"19022:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53924,"name":"uint8","nodeType":"ElementaryTypeName","src":"19022:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18843:210:91"},"returnParameters":{"id":53927,"nodeType":"ParameterList","parameters":[],"src":"19061:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54244,"nodeType":"FunctionDefinition","src":"19345:3730:91","nodes":[],"body":{"id":54243,"nodeType":"Block","src":"19668:3407:91","nodes":[],"statements":[{"assignments":[53964],"declarations":[{"constant":false,"id":53964,"mutability":"mutable","name":"_parentId","nameLocation":"19694:9:91","nodeType":"VariableDeclaration","scope":54243,"src":"19678:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetID","nameLocations":["19678:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"19678:8:91"},"referencedDeclaration":50030,"src":"19678:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53973,"initialValue":{"arguments":[{"id":53966,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"19715:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19746:1:91","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":53969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19732:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53967,"name":"address","nodeType":"ElementaryTypeName","src":"19736:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53968,"nodeType":"ArrayTypeName","src":"19736:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19732:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53965,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"19706:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19706:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"19678:71:91"},{"expression":{"id":53979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53974,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"19760:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19772:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53976,"nodeType":"UserDefinedTypeName","pathNode":{"id":53975,"name":"SubnetActorManagerFacet","nameLocations":["19776:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"19776:23:91"},"referencedDeclaration":51946,"src":"19776:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19772:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"19760:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53980,"nodeType":"ExpressionStatement","src":"19760:41:91"},{"expression":{"id":53986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53981,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"19811:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19822:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53983,"nodeType":"UserDefinedTypeName","pathNode":{"id":53982,"name":"SubnetActorGetterFacet","nameLocations":["19826:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"19826:22:91"},"referencedDeclaration":51235,"src":"19826:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19822:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"19811:39:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53987,"nodeType":"ExpressionStatement","src":"19811:39:91"},{"expression":{"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53988,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"19860:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19871:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53990,"nodeType":"UserDefinedTypeName","pathNode":{"id":53989,"name":"SubnetActorPauseFacet","nameLocations":["19875:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"19875:21:91"},"referencedDeclaration":51991,"src":"19875:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19871:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"19860:38:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53994,"nodeType":"ExpressionStatement","src":"19860:38:91"},{"expression":{"id":54000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53995,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"19908:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19925:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53997,"nodeType":"UserDefinedTypeName","pathNode":{"id":53996,"name":"SubnetActorCheckpointingFacet","nameLocations":["19929:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"19929:29:91"},"referencedDeclaration":50577,"src":"19929:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19925:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"19908:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54001,"nodeType":"ExpressionStatement","src":"19908:52:91"},{"expression":{"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54002,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"19970:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19983:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":54004,"nodeType":"UserDefinedTypeName","pathNode":{"id":54003,"name":"SubnetActorRewardFacet","nameLocations":["19987:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"19987:22:91"},"referencedDeclaration":52158,"src":"19987:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":54006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19983:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"19970:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54008,"nodeType":"ExpressionStatement","src":"19970:41:91"},{"expression":{"id":54014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54009,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"20021:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20032:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54011,"nodeType":"UserDefinedTypeName","pathNode":{"id":54010,"name":"DiamondCutFacet","nameLocations":["20036:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20036:15:91"},"referencedDeclaration":36918,"src":"20036:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20032:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"20021:32:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54015,"nodeType":"ExpressionStatement","src":"20021:32:91"},{"expression":{"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54016,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"20063:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20074:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54018,"nodeType":"UserDefinedTypeName","pathNode":{"id":54017,"name":"DiamondLoupeFacet","nameLocations":["20078:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20078:17:91"},"referencedDeclaration":37355,"src":"20078:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20074:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"20063:34:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54022,"nodeType":"ExpressionStatement","src":"20063:34:91"},{"assignments":[54028],"declarations":[{"constant":false,"id":54028,"mutability":"mutable","name":"diamondCut","nameLocation":"20135:10:91","nodeType":"VariableDeclaration","scope":54243,"src":"20108:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54026,"nodeType":"UserDefinedTypeName","pathNode":{"id":54025,"name":"IDiamond.FacetCut","nameLocations":["20108:8:91","20117:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20108:17:91"},"referencedDeclaration":40159,"src":"20108:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54027,"nodeType":"ArrayTypeName","src":"20108:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54035,"initialValue":{"arguments":[{"hexValue":"37","id":54033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20172:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"id":54032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20148:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54030,"nodeType":"UserDefinedTypeName","pathNode":{"id":54029,"name":"IDiamond.FacetCut","nameLocations":["20152:8:91","20161:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20152:17:91"},"referencedDeclaration":40159,"src":"20152:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54031,"nodeType":"ArrayTypeName","src":"20152:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20148:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20108:66:91"},{"expression":{"id":54051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54036,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20185:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54038,"indexExpression":{"hexValue":"30","id":54037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20196:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20185:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54043,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"20273:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20265:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54041,"name":"address","nodeType":"ElementaryTypeName","src":"20265:7:91","typeDescriptions":{}}},"id":54044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20265:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54045,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20309:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20318:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20309:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20333:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20309:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54048,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"20373:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54039,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20215:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20224:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20215:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20251:12:91","20301:6:91","20354:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20215:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54050,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20201:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20185:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54052,"nodeType":"ExpressionStatement","src":"20185:231:91"},{"expression":{"id":54068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54053,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20427:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54055,"indexExpression":{"hexValue":"31","id":54054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20438:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20427:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54060,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"20515:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20507:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54058,"name":"address","nodeType":"ElementaryTypeName","src":"20507:7:91","typeDescriptions":{}}},"id":54061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20507:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54062,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20550:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20559:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20550:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20574:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20550:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54065,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"20614:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54056,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20457:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20466:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20457:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20493:12:91","20542:6:91","20595:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20457:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54067,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20443:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20427:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54069,"nodeType":"ExpressionStatement","src":"20427:229:91"},{"expression":{"id":54085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54070,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20667:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54072,"indexExpression":{"hexValue":"32","id":54071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20678:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20667:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54077,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"20755:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":54076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20747:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54075,"name":"address","nodeType":"ElementaryTypeName","src":"20747:7:91","typeDescriptions":{}}},"id":54078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20747:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54079,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20790:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20799:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20790:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20814:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20790:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54082,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"20854:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54073,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20697:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20706:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20697:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20733:12:91","20782:6:91","20835:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20697:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54084,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20683:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20667:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54086,"nodeType":"ExpressionStatement","src":"20667:229:91"},{"expression":{"id":54102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54087,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20907:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54089,"indexExpression":{"hexValue":"33","id":54088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20918:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20907:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54094,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"20995:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":54093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20987:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54092,"name":"address","nodeType":"ElementaryTypeName","src":"20987:7:91","typeDescriptions":{}}},"id":54095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20987:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54096,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21032:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21041:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21032:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21056:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21032:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54099,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"21096:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54090,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20937:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20946:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20937:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20973:12:91","21024:6:91","21077:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20937:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54101,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20923:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20907:233:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54103,"nodeType":"ExpressionStatement","src":"20907:233:91"},{"expression":{"id":54119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54104,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21151:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54106,"indexExpression":{"hexValue":"34","id":54105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21162:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21151:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54111,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"21239:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":54110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21231:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54109,"name":"address","nodeType":"ElementaryTypeName","src":"21231:7:91","typeDescriptions":{}}},"id":54112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21231:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54113,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21280:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21289:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21280:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21304:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21280:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54116,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"21344:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54107,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21181:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21190:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21181:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21217:12:91","21272:6:91","21325:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21181:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54118,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21167:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21151:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54120,"nodeType":"ExpressionStatement","src":"21151:241:91"},{"expression":{"id":54136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54121,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21403:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54123,"indexExpression":{"hexValue":"35","id":54122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21414:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21403:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54128,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"21491:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21483:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54126,"name":"address","nodeType":"ElementaryTypeName","src":"21483:7:91","typeDescriptions":{}}},"id":54129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21483:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54130,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21526:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21535:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21526:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21550:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21526:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54133,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"21590:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54124,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21433:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21442:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21433:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21469:12:91","21518:6:91","21571:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21433:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21419:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21403:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54137,"nodeType":"ExpressionStatement","src":"21403:229:91"},{"expression":{"id":54153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54138,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21643:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54140,"indexExpression":{"hexValue":"36","id":54139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21654:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21643:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54145,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"21731:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21723:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54143,"name":"address","nodeType":"ElementaryTypeName","src":"21723:7:91","typeDescriptions":{}}},"id":54146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21723:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54147,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21766:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21775:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21766:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21790:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21766:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54150,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"21830:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54141,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21673:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21682:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21673:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21709:12:91","21758:6:91","21811:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21673:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54152,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21659:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21643:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54154,"nodeType":"ExpressionStatement","src":"21643:229:91"},{"expression":{"id":54178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54155,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"21883:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54159,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21931:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":54162,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53964,"src":"22020:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54163,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53943,"src":"22063:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54164,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53946,"src":"22107:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":54165,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53948,"src":"22160:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54166,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53950,"src":"22217:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54167,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53952,"src":"22270:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54168,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53954,"src":"22320:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54169,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"22380:22:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":54170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22432:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":54171,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53957,"src":"22468:15:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":54172,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"22517:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54173,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"22570:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":54174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22589:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"22570:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":54175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22570:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":54160,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"21955:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":54161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21974:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"21955:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":54176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["22010:8:91","22047:14:91","22096:9:91","22135:23:91","22202:13:91","22249:19:91","22300:18:91","22357:21:91","22420:10:91","22452:14:91","22501:14:91","22556:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"21955:657:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21895:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54157,"nodeType":"UserDefinedTypeName","pathNode":{"id":54156,"name":"SubnetActorDiamond","nameLocations":["21899:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"21899:18:91"},"referencedDeclaration":36615,"src":"21899:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21895:727:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"21883:739:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":54179,"nodeType":"ExpressionStatement","src":"21883:739:91"},{"expression":{"id":54187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54180,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"22633:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54184,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22677:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22669:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54182,"name":"address","nodeType":"ElementaryTypeName","src":"22669:7:91","typeDescriptions":{}}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22669:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54181,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"22645:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":54186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22645:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"22633:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":54188,"nodeType":"ExpressionStatement","src":"22633:55:91"},{"expression":{"id":54196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54189,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"22698:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54193,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22739:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22731:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54191,"name":"address","nodeType":"ElementaryTypeName","src":"22731:7:91","typeDescriptions":{}}},"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22731:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54190,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"22709:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":54195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22709:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"22698:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":54197,"nodeType":"ExpressionStatement","src":"22698:52:91"},{"expression":{"id":54205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54198,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"22760:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22804:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22796:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54200,"name":"address","nodeType":"ElementaryTypeName","src":"22796:7:91","typeDescriptions":{}}},"id":54203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22796:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54199,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"22773:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":54204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22773:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"22760:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54206,"nodeType":"ExpressionStatement","src":"22760:55:91"},{"expression":{"id":54214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54207,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"22825:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54211,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22880:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22872:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54209,"name":"address","nodeType":"ElementaryTypeName","src":"22872:7:91","typeDescriptions":{}}},"id":54212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22872:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54208,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"22842:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":54213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22842:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"22825:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54215,"nodeType":"ExpressionStatement","src":"22825:66:91"},{"expression":{"id":54223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54216,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"22901:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54220,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22943:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22935:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54218,"name":"address","nodeType":"ElementaryTypeName","src":"22935:7:91","typeDescriptions":{}}},"id":54221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22935:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54217,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"22912:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":54222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"22901:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":54224,"nodeType":"ExpressionStatement","src":"22901:53:91"},{"expression":{"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54225,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"22964:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54229,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22999:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22991:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54227,"name":"address","nodeType":"ElementaryTypeName","src":"22991:7:91","typeDescriptions":{}}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22991:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54226,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"22975:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22975:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"22964:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54233,"nodeType":"ExpressionStatement","src":"22964:46:91"},{"expression":{"id":54241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54234,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"23020:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54238,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"23057:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23049:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54236,"name":"address","nodeType":"ElementaryTypeName","src":"23049:7:91","typeDescriptions":{}}},"id":54239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23049:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54235,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"23031:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":54240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23031:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"23020:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54242,"nodeType":"ExpressionStatement","src":"23020:48:91"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"19354:17:91","parameters":{"id":53960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53943,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"19389:15:91","nodeType":"VariableDeclaration","scope":54244,"src":"19381:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53942,"name":"address","nodeType":"ElementaryTypeName","src":"19381:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53946,"mutability":"mutable","name":"_consensus","nameLocation":"19428:10:91","nodeType":"VariableDeclaration","scope":54244,"src":"19414:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53945,"nodeType":"UserDefinedTypeName","pathNode":{"id":53944,"name":"ConsensusType","nameLocations":["19414:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"19414:13:91"},"referencedDeclaration":37359,"src":"19414:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53948,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"19456:24:91","nodeType":"VariableDeclaration","scope":54244,"src":"19448:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53947,"name":"uint256","nodeType":"ElementaryTypeName","src":"19448:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53950,"mutability":"mutable","name":"_minValidators","nameLocation":"19497:14:91","nodeType":"VariableDeclaration","scope":54244,"src":"19490:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53949,"name":"uint64","nodeType":"ElementaryTypeName","src":"19490:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53952,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19528:12:91","nodeType":"VariableDeclaration","scope":54244,"src":"19521:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53951,"name":"uint64","nodeType":"ElementaryTypeName","src":"19521:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53954,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19556:19:91","nodeType":"VariableDeclaration","scope":54244,"src":"19550:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53953,"name":"uint8","nodeType":"ElementaryTypeName","src":"19550:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53957,"mutability":"mutable","name":"_permissionMode","nameLocation":"19600:15:91","nodeType":"VariableDeclaration","scope":54244,"src":"19585:30:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":53956,"nodeType":"UserDefinedTypeName","pathNode":{"id":53955,"name":"PermissionMode","nameLocations":["19585:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"19585:14:91"},"referencedDeclaration":50118,"src":"19585:14:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53959,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"19632:22:91","nodeType":"VariableDeclaration","scope":54244,"src":"19625:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53958,"name":"uint16","nodeType":"ElementaryTypeName","src":"19625:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19371:289:91"},"returnParameters":{"id":53961,"nodeType":"ParameterList","parameters":[],"src":"19668:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54337,"nodeType":"FunctionDefinition","src":"23081:997:91","nodes":[],"body":{"id":54336,"nodeType":"Block","src":"23173:905:91","nodes":[],"statements":[{"assignments":[54254],"declarations":[{"constant":false,"id":54254,"mutability":"mutable","name":"mockedManager","nameLocation":"23199:13:91","nodeType":"VariableDeclaration","scope":54336,"src":"23183:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"},"typeName":{"id":54253,"nodeType":"UserDefinedTypeName","pathNode":{"id":54252,"name":"SubnetActorMock","nameLocations":["23183:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"23183:15:91"},"referencedDeclaration":58342,"src":"23183:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"visibility":"internal"}],"id":54259,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23215:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorMock_$58342_$","typeString":"function () returns (contract SubnetActorMock)"},"typeName":{"id":54256,"nodeType":"UserDefinedTypeName","pathNode":{"id":54255,"name":"SubnetActorMock","nameLocations":["23219:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"23219:15:91"},"referencedDeclaration":58342,"src":"23219:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23215:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"nodeType":"VariableDeclarationStatement","src":"23183:53:91"},{"assignments":[54262],"declarations":[{"constant":false,"id":54262,"mutability":"mutable","name":"getter","nameLocation":"23269:6:91","nodeType":"VariableDeclaration","scope":54336,"src":"23246:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":54261,"nodeType":"UserDefinedTypeName","pathNode":{"id":54260,"name":"SubnetActorGetterFacet","nameLocations":["23246:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23246:22:91"},"referencedDeclaration":51235,"src":"23246:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":54267,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23278:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":54264,"nodeType":"UserDefinedTypeName","pathNode":{"id":54263,"name":"SubnetActorGetterFacet","nameLocations":["23282:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23282:22:91"},"referencedDeclaration":51235,"src":"23282:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":54266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23278:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"23246:60:91"},{"assignments":[54273],"declarations":[{"constant":false,"id":54273,"mutability":"mutable","name":"diamondCut","nameLocation":"23344:10:91","nodeType":"VariableDeclaration","scope":54336,"src":"23317:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54271,"nodeType":"UserDefinedTypeName","pathNode":{"id":54270,"name":"IDiamond.FacetCut","nameLocations":["23317:8:91","23326:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23317:17:91"},"referencedDeclaration":40159,"src":"23317:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54272,"nodeType":"ArrayTypeName","src":"23317:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54280,"initialValue":{"arguments":[{"hexValue":"32","id":54278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23381:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23357:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54275,"nodeType":"UserDefinedTypeName","pathNode":{"id":54274,"name":"IDiamond.FacetCut","nameLocations":["23361:8:91","23370:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23361:17:91"},"referencedDeclaration":40159,"src":"23361:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54276,"nodeType":"ArrayTypeName","src":"23361:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23357:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"23317:66:91"},{"expression":{"id":54296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54281,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"23394:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54283,"indexExpression":{"hexValue":"30","id":54282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23405:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23394:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54288,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54254,"src":"23482:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}],"id":54287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23474:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54286,"name":"address","nodeType":"ElementaryTypeName","src":"23474:7:91","typeDescriptions":{}}},"id":54289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23474:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54290,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23522:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23531:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23522:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23546:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23522:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54293,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"23586:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54284,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23424:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23433:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23424:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23460:12:91","23514:6:91","23567:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23424:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54295,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23410:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23394:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54297,"nodeType":"ExpressionStatement","src":"23394:241:91"},{"expression":{"id":54313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54298,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"23646:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54300,"indexExpression":{"hexValue":"31","id":54299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23657:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23646:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54305,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54262,"src":"23734:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23726:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54303,"name":"address","nodeType":"ElementaryTypeName","src":"23726:7:91","typeDescriptions":{}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23726:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54307,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23767:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23767:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23791:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23767:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54310,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"23831:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54301,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23676:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23685:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23676:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23712:12:91","23759:6:91","23812:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23676:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23662:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23646:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54314,"nodeType":"ExpressionStatement","src":"23646:227:91"},{"assignments":[54319],"declarations":[{"constant":false,"id":54319,"mutability":"mutable","name":"params","nameLocation":"23928:6:91","nodeType":"VariableDeclaration","scope":54336,"src":"23884:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54318,"nodeType":"UserDefinedTypeName","pathNode":{"id":54317,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["23884:18:91","23903:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"23884:36:91"},"referencedDeclaration":36253,"src":"23884:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54323,"initialValue":{"arguments":[{"id":54321,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54246,"src":"23973:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54320,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53088,"src":"23937:35:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23937:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"23884:92:91"},{"assignments":[54326],"declarations":[{"constant":false,"id":54326,"mutability":"mutable","name":"d","nameLocation":"24006:1:91","nodeType":"VariableDeclaration","scope":54336,"src":"23987:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54325,"nodeType":"UserDefinedTypeName","pathNode":{"id":54324,"name":"SubnetActorDiamond","nameLocations":["23987:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23987:18:91"},"referencedDeclaration":36615,"src":"23987:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54333,"initialValue":{"arguments":[{"id":54330,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"24033:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54331,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54319,"src":"24045:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24010:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54328,"nodeType":"UserDefinedTypeName","pathNode":{"id":54327,"name":"SubnetActorDiamond","nameLocations":["24014:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"24014:18:91"},"referencedDeclaration":36615,"src":"24014:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24010:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"23987:65:91"},{"expression":{"id":54334,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54326,"src":"24070:1:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":54251,"id":54335,"nodeType":"Return","src":"24063:8:91"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"23090:34:91","parameters":{"id":54247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54246,"mutability":"mutable","name":"gw","nameLocation":"23133:2:91","nodeType":"VariableDeclaration","scope":54337,"src":"23125:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54245,"name":"address","nodeType":"ElementaryTypeName","src":"23125:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23124:12:91"},"returnParameters":{"id":54251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54337,"src":"23153:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54249,"nodeType":"UserDefinedTypeName","pathNode":{"id":54248,"name":"SubnetActorDiamond","nameLocations":["23153:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23153:18:91"},"referencedDeclaration":36615,"src":"23153:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"23152:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54479,"nodeType":"FunctionDefinition","src":"24130:1703:91","nodes":[],"body":{"id":54478,"nodeType":"Block","src":"24268:1565:91","nodes":[],"statements":[{"assignments":[54351],"declarations":[{"constant":false,"id":54351,"mutability":"mutable","name":"diamondCut","nameLocation":"24305:10:91","nodeType":"VariableDeclaration","scope":54478,"src":"24278:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54349,"nodeType":"UserDefinedTypeName","pathNode":{"id":54348,"name":"IDiamond.FacetCut","nameLocations":["24278:8:91","24287:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24278:17:91"},"referencedDeclaration":40159,"src":"24278:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54350,"nodeType":"ArrayTypeName","src":"24278:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54358,"initialValue":{"arguments":[{"hexValue":"34","id":54356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24342:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24318:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54353,"nodeType":"UserDefinedTypeName","pathNode":{"id":54352,"name":"IDiamond.FacetCut","nameLocations":["24322:8:91","24331:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24322:17:91"},"referencedDeclaration":40159,"src":"24322:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54354,"nodeType":"ArrayTypeName","src":"24322:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24318:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24278:66:91"},{"assignments":[54361],"declarations":[{"constant":false,"id":54361,"mutability":"mutable","name":"regCutFacet","nameLocation":"24371:11:91","nodeType":"VariableDeclaration","scope":54478,"src":"24355:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54360,"nodeType":"UserDefinedTypeName","pathNode":{"id":54359,"name":"DiamondCutFacet","nameLocations":["24355:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24355:15:91"},"referencedDeclaration":36918,"src":"24355:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54366,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24385:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54363,"nodeType":"UserDefinedTypeName","pathNode":{"id":54362,"name":"DiamondCutFacet","nameLocations":["24389:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24389:15:91"},"referencedDeclaration":36918,"src":"24389:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24385:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"24355:51:91"},{"assignments":[54369],"declarations":[{"constant":false,"id":54369,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"24434:13:91","nodeType":"VariableDeclaration","scope":54478,"src":"24416:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54368,"nodeType":"UserDefinedTypeName","pathNode":{"id":54367,"name":"DiamondLoupeFacet","nameLocations":["24416:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24416:17:91"},"referencedDeclaration":37355,"src":"24416:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54374,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24450:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54371,"nodeType":"UserDefinedTypeName","pathNode":{"id":54370,"name":"DiamondLoupeFacet","nameLocations":["24454:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24454:17:91"},"referencedDeclaration":37355,"src":"24454:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24450:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"24416:57:91"},{"assignments":[54377],"declarations":[{"constant":false,"id":54377,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"24503:14:91","nodeType":"VariableDeclaration","scope":54478,"src":"24483:34:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54376,"nodeType":"UserDefinedTypeName","pathNode":{"id":54375,"name":"RegisterSubnetFacet","nameLocations":["24483:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24483:19:91"},"referencedDeclaration":52286,"src":"24483:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54382,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24520:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54379,"nodeType":"UserDefinedTypeName","pathNode":{"id":54378,"name":"RegisterSubnetFacet","nameLocations":["24524:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24524:19:91"},"referencedDeclaration":52286,"src":"24524:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}},"id":54381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24520:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"24483:62:91"},{"assignments":[54385],"declarations":[{"constant":false,"id":54385,"mutability":"mutable","name":"regGetterFacet","nameLocation":"24573:14:91","nodeType":"VariableDeclaration","scope":54478,"src":"24555:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54384,"nodeType":"UserDefinedTypeName","pathNode":{"id":54383,"name":"SubnetGetterFacet","nameLocations":["24555:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24555:17:91"},"referencedDeclaration":52524,"src":"24555:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54390,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24590:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54387,"nodeType":"UserDefinedTypeName","pathNode":{"id":54386,"name":"SubnetGetterFacet","nameLocations":["24594:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24594:17:91"},"referencedDeclaration":52524,"src":"24594:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}},"id":54389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24590:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"24555:58:91"},{"expression":{"id":54406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54391,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"24624:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54393,"indexExpression":{"hexValue":"30","id":54392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24635:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24624:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54398,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54369,"src":"24712:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24704:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54396,"name":"address","nodeType":"ElementaryTypeName","src":"24704:7:91","typeDescriptions":{}}},"id":54399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24704:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54400,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24752:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24761:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24752:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24776:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24752:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54403,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"24816:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54394,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24654:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24663:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24654:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24690:12:91","24744:6:91","24797:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24654:200:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24640:224:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24624:240:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54407,"nodeType":"ExpressionStatement","src":"24624:240:91"},{"expression":{"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54408,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"24874:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54410,"indexExpression":{"hexValue":"31","id":54409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24885:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24874:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54415,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54361,"src":"24962:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24954:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54413,"name":"address","nodeType":"ElementaryTypeName","src":"24954:7:91","typeDescriptions":{}}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24954:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54417,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25000:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25009:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25000:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25024:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25000:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54420,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"25064:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54411,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24904:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24913:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24904:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24940:12:91","24992:6:91","25045:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24904:198:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54422,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24890:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24874:238:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54424,"nodeType":"ExpressionStatement","src":"24874:238:91"},{"expression":{"id":54440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54425,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25122:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54427,"indexExpression":{"hexValue":"32","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25133:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25122:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54432,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54377,"src":"25210:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}],"id":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25202:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54430,"name":"address","nodeType":"ElementaryTypeName","src":"25202:7:91","typeDescriptions":{}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25202:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54434,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25251:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25251:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25275:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25251:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54437,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52703,"src":"25315:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54428,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25152:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25161:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25152:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25188:12:91","25243:6:91","25296:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25152:206:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25138:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25122:246:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54441,"nodeType":"ExpressionStatement","src":"25122:246:91"},{"expression":{"id":54457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54442,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25378:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54444,"indexExpression":{"hexValue":"33","id":54443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25389:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25378:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54449,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54385,"src":"25466:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}],"id":54448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25458:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54447,"name":"address","nodeType":"ElementaryTypeName","src":"25458:7:91","typeDescriptions":{}}},"id":54450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25458:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54451,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25507:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25516:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25507:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25531:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25507:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54454,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"25571:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54445,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25408:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25417:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25408:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25444:12:91","25499:6:91","25552:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25408:212:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54456,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25394:236:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25378:252:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54458,"nodeType":"ExpressionStatement","src":"25378:252:91"},{"assignments":[54461],"declarations":[{"constant":false,"id":54461,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"25663:17:91","nodeType":"VariableDeclaration","scope":54478,"src":"25641:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54460,"nodeType":"UserDefinedTypeName","pathNode":{"id":54459,"name":"SubnetRegistryDiamond","nameLocations":["25641:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25641:21:91"},"referencedDeclaration":36853,"src":"25641:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54468,"initialValue":{"arguments":[{"id":54465,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25709:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54466,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54340,"src":"25721:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"25683:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54463,"nodeType":"UserDefinedTypeName","pathNode":{"id":54462,"name":"SubnetRegistryDiamond","nameLocations":["25687:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25687:21:91"},"referencedDeclaration":36853,"src":"25687:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25683:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"25641:87:91"},{"eventCall":{"arguments":[{"arguments":[{"id":54472,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"25773:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25765:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54470,"name":"address","nodeType":"ElementaryTypeName","src":"25765:7:91","typeDescriptions":{}}},"id":54473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25765:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54469,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53123,"src":"25743:21:91","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25743:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54475,"nodeType":"EmitStatement","src":"25738:54:91"},{"expression":{"id":54476,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"25809:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54345,"id":54477,"nodeType":"Return","src":"25802:24:91"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"24139:20:91","parameters":{"id":54341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54340,"mutability":"mutable","name":"params","nameLocation":"24216:6:91","nodeType":"VariableDeclaration","scope":54479,"src":"24169:53:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54339,"nodeType":"UserDefinedTypeName","pathNode":{"id":54338,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["24169:21:91","24191:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"24169:39:91"},"referencedDeclaration":36652,"src":"24169:39:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"24159:69:91"},"returnParameters":{"id":54345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54479,"src":"24245:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54343,"nodeType":"UserDefinedTypeName","pathNode":{"id":54342,"name":"SubnetRegistryDiamond","nameLocations":["24245:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"24245:21:91"},"referencedDeclaration":36853,"src":"24245:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"24244:23:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54508,"nodeType":"FunctionDefinition","src":"25839:190:91","nodes":[],"body":{"id":54507,"nodeType":"Block","src":"25920:109:91","nodes":[],"statements":[{"body":{"id":54503,"nodeType":"Block","src":"25961:42:91","statements":[{"expression":{"id":54501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54497,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"25975:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54498,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54482,"src":"25982:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54500,"indexExpression":{"id":54499,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25990:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25982:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25975:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54502,"nodeType":"ExpressionStatement","src":"25975:17:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54491,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25949:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25953:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"25949:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54504,"initializationExpression":{"assignments":[54488],"declarations":[{"constant":false,"id":54488,"mutability":"mutable","name":"i","nameLocation":"25942:1:91","nodeType":"VariableDeclaration","scope":54504,"src":"25935:8:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54487,"name":"uint64","nodeType":"ElementaryTypeName","src":"25935:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54490,"initialValue":{"hexValue":"30","id":54489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25946:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25935:12:91"},"loopExpression":{"expression":{"id":54495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25956:3:91","subExpression":{"id":54494,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25956:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54496,"nodeType":"ExpressionStatement","src":"25956:3:91"},"nodeType":"ForStatement","src":"25930:73:91"},{"expression":{"id":54505,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"26019:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54486,"id":54506,"nodeType":"Return","src":"26012:10:91"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"25848:11:91","parameters":{"id":54483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54482,"mutability":"mutable","name":"weights","nameLocation":"25877:7:91","nodeType":"VariableDeclaration","scope":54508,"src":"25860:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54480,"name":"uint256","nodeType":"ElementaryTypeName","src":"25860:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54481,"nodeType":"ArrayTypeName","src":"25860:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25859:26:91"},"returnParameters":{"id":54486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54485,"mutability":"mutable","name":"sum","nameLocation":"25915:3:91","nodeType":"VariableDeclaration","scope":54508,"src":"25907:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54484,"name":"uint256","nodeType":"ElementaryTypeName","src":"25907:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25906:13:91"},"scope":55676,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54683,"nodeType":"FunctionDefinition","src":"26035:933:91","nodes":[],"body":{"id":54682,"nodeType":"Block","src":"26138:830:91","nodes":[],"statements":[{"expression":{"id":54525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54518,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26148:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26178:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26161:16:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54520,"nodeType":"UserDefinedTypeName","pathNode":{"id":54519,"name":"FvmAddress","nameLocations":["26165:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26165:10:91"},"referencedDeclaration":49951,"src":"26165:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54521,"nodeType":"ArrayTypeName","src":"26165:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26161:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"26148:32:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54526,"nodeType":"ExpressionStatement","src":"26148:32:91"},{"expression":{"id":54537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54527,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26190:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54529,"indexExpression":{"hexValue":"30","id":54528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26201:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26190:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26236:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54532,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26228:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26231:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26228:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26228:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54530,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26206:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26223:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26206:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26206:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26190:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54538,"nodeType":"ExpressionStatement","src":"26190:51:91"},{"expression":{"id":54549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54539,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26251:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54541,"indexExpression":{"hexValue":"31","id":54540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26262:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26251:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26297:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54544,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26289:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26292:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26289:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26289:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54542,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26267:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26284:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26267:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26267:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26251:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54550,"nodeType":"ExpressionStatement","src":"26251:51:91"},{"expression":{"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54551,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26312:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54553,"indexExpression":{"hexValue":"32","id":54552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26323:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26312:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26358:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54556,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26350:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26353:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26350:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26350:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54554,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26328:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26345:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26328:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26328:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26312:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54562,"nodeType":"ExpressionStatement","src":"26312:51:91"},{"expression":{"id":54569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54563,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26374:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26400:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26386:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54564,"name":"address","nodeType":"ElementaryTypeName","src":"26390:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54565,"nodeType":"ArrayTypeName","src":"26390:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26386:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"26374:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54570,"nodeType":"ExpressionStatement","src":"26374:28:91"},{"expression":{"id":54578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54571,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26412:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54573,"indexExpression":{"hexValue":"30","id":54572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26422:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26412:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26435:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54574,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26427:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26430:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26427:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26427:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26412:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54579,"nodeType":"ExpressionStatement","src":"26412:27:91"},{"expression":{"id":54587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54580,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26449:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54582,"indexExpression":{"hexValue":"31","id":54581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26459:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26449:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26472:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54583,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26464:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26467:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26464:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26464:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26449:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54588,"nodeType":"ExpressionStatement","src":"26449:27:91"},{"expression":{"id":54596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54589,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26486:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54591,"indexExpression":{"hexValue":"32","id":54590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26496:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26486:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26509:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54592,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26501:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26504:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26501:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26501:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26486:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54597,"nodeType":"ExpressionStatement","src":"26486:27:91"},{"assignments":[54602],"declarations":[{"constant":false,"id":54602,"mutability":"mutable","name":"weights","nameLocation":"26541:7:91","nodeType":"VariableDeclaration","scope":54682,"src":"26524:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"26524:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54601,"nodeType":"ArrayTypeName","src":"26524:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54608,"initialValue":{"arguments":[{"hexValue":"33","id":54606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26565:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26551:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54603,"name":"uint256","nodeType":"ElementaryTypeName","src":"26555:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54604,"nodeType":"ArrayTypeName","src":"26555:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26551:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"26524:43:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26594:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54612,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26586:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26589:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26586:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26586:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26600:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54609,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26578:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26581:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26578:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26578:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54618,"nodeType":"ExpressionStatement","src":"26578:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26628:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54622,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26620:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26623:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26620:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26620:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26634:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54619,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26612:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26615:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26612:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26612:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54628,"nodeType":"ExpressionStatement","src":"26612:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26662:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54632,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26654:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26657:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26654:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26654:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26668:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54629,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26646:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26649:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26646:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54638,"nodeType":"ExpressionStatement","src":"26646:24:91"},{"expression":{"id":54643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54639,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26681:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54641,"indexExpression":{"hexValue":"30","id":54640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26689:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26681:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26694:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26681:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54644,"nodeType":"ExpressionStatement","src":"26681:16:91"},{"expression":{"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54645,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26707:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54647,"indexExpression":{"hexValue":"31","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26715:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26707:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26720:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26707:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54650,"nodeType":"ExpressionStatement","src":"26707:16:91"},{"expression":{"id":54655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54651,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26733:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54653,"indexExpression":{"hexValue":"32","id":54652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26741:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26733:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26746:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26733:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54656,"nodeType":"ExpressionStatement","src":"26733:16:91"},{"assignments":[54659],"declarations":[{"constant":false,"id":54659,"mutability":"mutable","name":"finality","nameLocation":"26782:8:91","nodeType":"VariableDeclaration","scope":54682,"src":"26760:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54658,"nodeType":"UserDefinedTypeName","pathNode":{"id":54657,"name":"ParentFinality","nameLocations":["26760:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"26760:14:91"},"referencedDeclaration":49871,"src":"26760:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54668,"initialValue":{"arguments":[{"expression":{"id":54661,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26817:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26823:6:91","memberName":"number","nodeType":"MemberAccess","src":"26817:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26850:1:91","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":54664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26842:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26842:7:91","typeDescriptions":{}}},"id":54666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54660,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"26793:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["26809:6:91","26831:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"26793:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"26760:94:91"},{"expression":{"arguments":[{"expression":{"id":54672,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"26874:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26885:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"26874:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54669,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26865:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26868:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26865:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26865:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54675,"nodeType":"ExpressionStatement","src":"26865:33:91"},{"expression":{"arguments":[{"id":54679,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54659,"src":"26952:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54676,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"26908:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26931:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"26908:43:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49871_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26908:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54681,"nodeType":"ExpressionStatement","src":"26908:53:91"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"26044:15:91","parameters":{"id":54509,"nodeType":"ParameterList","parameters":[],"src":"26059:2:91"},"returnParameters":{"id":54517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54513,"mutability":"mutable","name":"validators","nameLocation":"26098:10:91","nodeType":"VariableDeclaration","scope":54683,"src":"26078:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54511,"nodeType":"UserDefinedTypeName","pathNode":{"id":54510,"name":"FvmAddress","nameLocations":["26078:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26078:10:91"},"referencedDeclaration":49951,"src":"26078:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54512,"nodeType":"ArrayTypeName","src":"26078:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54516,"mutability":"mutable","name":"addresses","nameLocation":"26127:9:91","nodeType":"VariableDeclaration","scope":54683,"src":"26110:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54514,"name":"address","nodeType":"ElementaryTypeName","src":"26110:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54515,"nodeType":"ArrayTypeName","src":"26110:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26077:60:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54776,"nodeType":"FunctionDefinition","src":"26974:1297:91","nodes":[],"body":{"id":54775,"nodeType":"Block","src":"27058:1213:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54693,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"27083:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54694,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27110:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54692,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55583,"src":"27068:14:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27068:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54696,"nodeType":"ExpressionStatement","src":"27068:46:91"},{"assignments":[54699],"declarations":[{"constant":false,"id":54699,"mutability":"mutable","name":"crossMsg","nameLocation":"27141:8:91","nodeType":"VariableDeclaration","scope":54775,"src":"27125:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54698,"nodeType":"UserDefinedTypeName","pathNode":{"id":54697,"name":"CrossMsg","nameLocations":["27125:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27125:8:91"},"referencedDeclaration":49927,"src":"27125:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54739,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54707,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54685,"src":"27304:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54703,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"27263:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27272:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27263:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27263:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27289:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27263:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27263:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54711,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54685,"src":"27367:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54709,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27345:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27362:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27345:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27345:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54702,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27220:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27253:8:91","27333:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27220:173:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54719,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27499:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54715,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"27458:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27467:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27458:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27458:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27484:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27458:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27458:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54723,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27559:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54721,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27537:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27554:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27537:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27537:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54714,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27415:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27448:8:91","27525:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27415:167:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54726,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"27607:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27631:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27607:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27657:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54730,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"27684:11:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27731:1:91","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":54732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27721:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54731,"name":"bytes","nodeType":"ElementaryTypeName","src":"27725:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27721:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54735,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"27756:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54701,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"27184:11:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27214:4:91","27411:2:91","27600:5:91","27650:5:91","27676:6:91","27713:6:91","27751:3:91"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"27184:608:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27815:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54700,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"27152:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27175:7:91","27806:7:91"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"27152:679:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"27125:706:91"},{"assignments":[54744],"declarations":[{"constant":false,"id":54744,"mutability":"mutable","name":"msgs","nameLocation":"27859:4:91","nodeType":"VariableDeclaration","scope":54775,"src":"27841:22:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54742,"nodeType":"UserDefinedTypeName","pathNode":{"id":54741,"name":"CrossMsg","nameLocations":["27841:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27841:8:91"},"referencedDeclaration":49927,"src":"27841:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54743,"nodeType":"ArrayTypeName","src":"27841:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54751,"initialValue":{"arguments":[{"hexValue":"31","id":54749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27881:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27866:14:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54746,"nodeType":"UserDefinedTypeName","pathNode":{"id":54745,"name":"CrossMsg","nameLocations":["27870:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27870:8:91"},"referencedDeclaration":49927,"src":"27870:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54747,"nodeType":"ArrayTypeName","src":"27870:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27866:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27841:42:91"},{"expression":{"id":54756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54752,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"27893:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54754,"indexExpression":{"hexValue":"30","id":54753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27898:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27893:7:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54755,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"27903:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"27893:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54757,"nodeType":"ExpressionStatement","src":"27893:18:91"},{"expression":{"arguments":[{"expression":{"id":54761,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28150:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28161:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28150:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54758,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28141:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28144:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"28141:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28141:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54764,"nodeType":"ExpressionStatement","src":"28141:33:91"},{"expression":{"arguments":[{"id":54768,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"28224:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54765,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"28184:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28205:18:91","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"28184:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28184:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54770,"nodeType":"ExpressionStatement","src":"28184:45:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54771,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"28247:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28256:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40534,"src":"28247:15:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49927_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28247:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54691,"id":54774,"nodeType":"Return","src":"28240:24:91"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"26983:20:91","parameters":{"id":54688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54685,"mutability":"mutable","name":"caller","nameLocation":"27012:6:91","nodeType":"VariableDeclaration","scope":54776,"src":"27004:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54684,"name":"address","nodeType":"ElementaryTypeName","src":"27004:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54687,"mutability":"mutable","name":"src","nameLocation":"27028:3:91","nodeType":"VariableDeclaration","scope":54776,"src":"27020:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54686,"name":"address","nodeType":"ElementaryTypeName","src":"27020:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27003:29:91"},"returnParameters":{"id":54691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54776,"src":"27049:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27049:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27048:9:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54787,"nodeType":"FunctionDefinition","src":"28277:93:91","nodes":[],"body":{"id":54786,"nodeType":"Block","src":"28325:45:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54782,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54778,"src":"28348:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28359:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54781,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54787,54870],"referencedDeclaration":54870,"src":"28335:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28335:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54785,"nodeType":"ExpressionStatement","src":"28335:28:91"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28286:12:91","parameters":{"id":54779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54778,"mutability":"mutable","name":"validator","nameLocation":"28307:9:91","nodeType":"VariableDeclaration","scope":54787,"src":"28299:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54777,"name":"address","nodeType":"ElementaryTypeName","src":"28299:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28298:19:91"},"returnParameters":{"id":54780,"nodeType":"ParameterList","parameters":[],"src":"28325:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54870,"nodeType":"FunctionDefinition","src":"28376:610:91","nodes":[],"body":{"id":54869,"nodeType":"Block","src":"28440:546:91","nodes":[],"statements":[{"assignments":[54798],"declarations":[{"constant":false,"id":54798,"mutability":"mutable","name":"validators","nameLocation":"28470:10:91","nodeType":"VariableDeclaration","scope":54869,"src":"28450:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54796,"nodeType":"UserDefinedTypeName","pathNode":{"id":54795,"name":"FvmAddress","nameLocations":["28450:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28450:10:91"},"referencedDeclaration":49951,"src":"28450:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54797,"nodeType":"ArrayTypeName","src":"28450:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54805,"initialValue":{"arguments":[{"hexValue":"31","id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28500:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28483:16:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54800,"nodeType":"UserDefinedTypeName","pathNode":{"id":54799,"name":"FvmAddress","nameLocations":["28487:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28487:10:91"},"referencedDeclaration":49951,"src":"28487:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54801,"nodeType":"ArrayTypeName","src":"28487:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28483:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28450:52:91"},{"expression":{"id":54813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54806,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54798,"src":"28512:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54808,"indexExpression":{"hexValue":"30","id":54807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28523:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28512:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54789,"src":"28550:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54809,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"28528:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28545:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"28528:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28528:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"28512:48:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54814,"nodeType":"ExpressionStatement","src":"28512:48:91"},{"assignments":[54819],"declarations":[{"constant":false,"id":54819,"mutability":"mutable","name":"weights","nameLocation":"28587:7:91","nodeType":"VariableDeclaration","scope":54869,"src":"28570:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54817,"name":"uint256","nodeType":"ElementaryTypeName","src":"28570:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54818,"nodeType":"ArrayTypeName","src":"28570:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54825,"initialValue":{"arguments":[{"hexValue":"31","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28611:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28597:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54820,"name":"uint256","nodeType":"ElementaryTypeName","src":"28601:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54821,"nodeType":"ArrayTypeName","src":"28601:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28597:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28570:43:91"},{"expression":{"id":54830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54826,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54819,"src":"28623:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54828,"indexExpression":{"hexValue":"30","id":54827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28631:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28623:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54829,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54791,"src":"28636:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28623:19:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54831,"nodeType":"ExpressionStatement","src":"28623:19:91"},{"expression":{"arguments":[{"id":54835,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54789,"src":"28661:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28672:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54832,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28653:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28656:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28653:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28653:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54838,"nodeType":"ExpressionStatement","src":"28653:21:91"},{"assignments":[54841],"declarations":[{"constant":false,"id":54841,"mutability":"mutable","name":"finality","nameLocation":"28706:8:91","nodeType":"VariableDeclaration","scope":54869,"src":"28684:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54840,"nodeType":"UserDefinedTypeName","pathNode":{"id":54839,"name":"ParentFinality","nameLocations":["28684:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"28684:14:91"},"referencedDeclaration":49871,"src":"28684:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54850,"initialValue":{"arguments":[{"expression":{"id":54843,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28741:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28747:6:91","memberName":"number","nodeType":"MemberAccess","src":"28741:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28774:1:91","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":54846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28766:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28766:7:91","typeDescriptions":{}}},"id":54848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28766:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54842,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"28717:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28733:6:91","28755:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"28717:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"28684:94:91"},{"expression":{"arguments":[{"expression":{"id":54854,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28868:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28879:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28868:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54851,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28854:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28857:10:91","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"28854:13:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28854:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54857,"nodeType":"ExpressionStatement","src":"28854:38:91"},{"expression":{"arguments":[{"id":54861,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54841,"src":"28946:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54858,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"28902:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28925:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"28902:43:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49871_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28902:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54863,"nodeType":"ExpressionStatement","src":"28902:53:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54864,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28965:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28968:9:91","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"28965:12:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28965:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54868,"nodeType":"ExpressionStatement","src":"28965:14:91"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28385:12:91","parameters":{"id":54792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54789,"mutability":"mutable","name":"validator","nameLocation":"28406:9:91","nodeType":"VariableDeclaration","scope":54870,"src":"28398:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54788,"name":"address","nodeType":"ElementaryTypeName","src":"28398:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54791,"mutability":"mutable","name":"weight","nameLocation":"28425:6:91","nodeType":"VariableDeclaration","scope":54870,"src":"28417:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54790,"name":"uint256","nodeType":"ElementaryTypeName","src":"28417:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28397:35:91"},"returnParameters":{"id":54793,"nodeType":"ParameterList","parameters":[],"src":"28440:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54883,"nodeType":"FunctionDefinition","src":"28992:112:91","nodes":[],"body":{"id":54882,"nodeType":"Block","src":"29036:68:91","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29058:30:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54879,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54872,"src":"29090:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54875,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"29046:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29054:3:91","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"29046:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29046:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54881,"nodeType":"ExpressionStatement","src":"29046:51:91"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"29001:6:91","parameters":{"id":54873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54872,"mutability":"mutable","name":"amount","nameLocation":"29016:6:91","nodeType":"VariableDeclaration","scope":54883,"src":"29008:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54871,"name":"uint256","nodeType":"ElementaryTypeName","src":"29008:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29007:16:91"},"returnParameters":{"id":54874,"nodeType":"ParameterList","parameters":[],"src":"29036:0:91"},"scope":55676,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54898,"nodeType":"FunctionDefinition","src":"29110:131:91","nodes":[],"body":{"id":54897,"nodeType":"Block","src":"29174:67:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54891,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54885,"src":"29189:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54892,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54887,"src":"29204:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54893,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29216:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29227:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29216:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}],"id":54890,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54898,55023],"referencedDeclaration":55023,"src":"29184:4:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50182_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29184:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54896,"nodeType":"ExpressionStatement","src":"29184:50:91"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29119:4:91","parameters":{"id":54888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54885,"mutability":"mutable","name":"funderAddress","nameLocation":"29132:13:91","nodeType":"VariableDeclaration","scope":54898,"src":"29124:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54884,"name":"address","nodeType":"ElementaryTypeName","src":"29124:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54887,"mutability":"mutable","name":"fundAmount","nameLocation":"29155:10:91","nodeType":"VariableDeclaration","scope":54898,"src":"29147:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54886,"name":"uint256","nodeType":"ElementaryTypeName","src":"29147:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29123:43:91"},"returnParameters":{"id":54889,"nodeType":"ParameterList","parameters":[],"src":"29174:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55023,"nodeType":"FunctionDefinition","src":"29247:1180:91","nodes":[],"body":{"id":55022,"nodeType":"Block","src":"29328:1099:91","nodes":[],"statements":[{"assignments":[54910,null,54912,null,54914],"declarations":[{"constant":false,"id":54910,"mutability":"mutable","name":"subnetId","nameLocation":"29420:8:91","nodeType":"VariableDeclaration","scope":55022,"src":"29404:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54909,"nodeType":"UserDefinedTypeName","pathNode":{"id":54908,"name":"SubnetID","nameLocations":["29404:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"29404:8:91"},"referencedDeclaration":50030,"src":"29404:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54912,"mutability":"mutable","name":"nonceBefore","nameLocation":"29440:11:91","nodeType":"VariableDeclaration","scope":55022,"src":"29432:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54911,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54914,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"29463:16:91","nodeType":"VariableDeclaration","scope":55022,"src":"29455:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54913,"name":"uint256","nodeType":"ElementaryTypeName","src":"29455:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54921,"initialValue":{"arguments":[{"arguments":[{"id":54918,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"29501:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29493:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54916,"name":"address","nodeType":"ElementaryTypeName","src":"29493:7:91","typeDescriptions":{}}},"id":54919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54915,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"29483:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29483:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29403:109:91"},{"assignments":[54923],"declarations":[{"constant":false,"id":54923,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"29531:25:91","nodeType":"VariableDeclaration","scope":55022,"src":"29523:33:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54922,"name":"uint256","nodeType":"ElementaryTypeName","src":"29523:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54930,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54926,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"29595:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54924,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"29559:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29568:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"29559:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29559:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29607:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29559:49:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29523:85:91"},{"assignments":[54932],"declarations":[{"constant":false,"id":54932,"mutability":"mutable","name":"expectedNonce","nameLocation":"29626:13:91","nodeType":"VariableDeclaration","scope":55022,"src":"29618:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54931,"name":"uint256","nodeType":"ElementaryTypeName","src":"29618:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54936,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54933,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54912,"src":"29642:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29656:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29642:15:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29618:39:91"},{"assignments":[54938],"declarations":[{"constant":false,"id":54938,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"29675:18:91","nodeType":"VariableDeclaration","scope":55022,"src":"29667:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54937,"name":"uint256","nodeType":"ElementaryTypeName","src":"29667:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54942,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54939,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54914,"src":"29696:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54940,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"29715:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29696:29:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29667:58:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54944,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"29744:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29753:11:91","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"29744:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29744:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29769:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29744:26:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29772:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29736:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29736:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54951,"nodeType":"ExpressionStatement","src":"29736:55:91"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54952,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54905,"src":"29806:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54953,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29814:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29825:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29814:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29806:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54969,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54905,"src":"29949:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54970,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29957:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29968:5:91","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"29957:16:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29949:24:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54985,"nodeType":"IfStatement","src":"29945:138:91","trueBody":{"id":54984,"nodeType":"Block","src":"29975:108:91","statements":[{"expression":{"arguments":[{"id":54976,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"30013:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54979,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54900,"src":"30045:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54977,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"30023:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30040:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"30023:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30023:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54981,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"30061:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54973,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"29989:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29999:13:91","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"29989:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29989:83:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54983,"nodeType":"ExpressionStatement","src":"29989:83:91"}]}},"id":54986,"nodeType":"IfStatement","src":"29802:281:91","trueBody":{"id":54968,"nodeType":"Block","src":"29833:106:91","statements":[{"expression":{"arguments":[{"id":54961,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"29881:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54964,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54900,"src":"29913:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54962,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29891:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29908:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29891:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29891:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54956,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"29847:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29857:4:91","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"29847:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54959,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"29869:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29847:33:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29847:81:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54967,"nodeType":"ExpressionStatement","src":"29847:81:91"}]}},{"assignments":[null,null,54988,null,54990],"declarations":[null,null,{"constant":false,"id":54988,"mutability":"mutable","name":"nonce","nameLocation":"30106:5:91","nodeType":"VariableDeclaration","scope":55022,"src":"30098:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54987,"name":"uint256","nodeType":"ElementaryTypeName","src":"30098:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54990,"mutability":"mutable","name":"circSupply","nameLocation":"30123:10:91","nodeType":"VariableDeclaration","scope":55022,"src":"30115:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54989,"name":"uint256","nodeType":"ElementaryTypeName","src":"30115:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54997,"initialValue":{"arguments":[{"arguments":[{"id":54994,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"30155:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30147:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54992,"name":"address","nodeType":"ElementaryTypeName","src":"30147:7:91","typeDescriptions":{}}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30147:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54991,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"30137:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30137:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30093:73:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55001,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"30221:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54999,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"30185:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30194:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"30185:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30185:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55003,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54923,"src":"30234:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30185:74:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":55005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30261:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54998,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30177:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30177:105:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55007,"nodeType":"ExpressionStatement","src":"30177:105:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55009,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54988,"src":"30301:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55010,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54932,"src":"30310:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30301:22:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30325:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55008,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30293:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30293:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55014,"nodeType":"ExpressionStatement","src":"30293:51:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55016,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54990,"src":"30362:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55017,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54938,"src":"30376:18:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30362:32:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30396:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55015,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30354:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30354:66:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55021,"nodeType":"ExpressionStatement","src":"30354:66:91"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29256:4:91","parameters":{"id":54906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54900,"mutability":"mutable","name":"funderAddress","nameLocation":"29269:13:91","nodeType":"VariableDeclaration","scope":55023,"src":"29261:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54899,"name":"address","nodeType":"ElementaryTypeName","src":"29261:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54902,"mutability":"mutable","name":"fundAmount","nameLocation":"29292:10:91","nodeType":"VariableDeclaration","scope":55023,"src":"29284:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54901,"name":"uint256","nodeType":"ElementaryTypeName","src":"29284:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54905,"mutability":"mutable","name":"mode","nameLocation":"29315:4:91","nodeType":"VariableDeclaration","scope":55023,"src":"29304:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":54904,"nodeType":"UserDefinedTypeName","pathNode":{"id":54903,"name":"SupplyKind","nameLocations":["29304:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"29304:10:91"},"referencedDeclaration":50182,"src":"29304:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"29260:60:91"},"returnParameters":{"id":54907,"nodeType":"ParameterList","parameters":[],"src":"29328:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55054,"nodeType":"FunctionDefinition","src":"30433:243:91","nodes":[],"body":{"id":55053,"nodeType":"Block","src":"30501:175:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55033,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55025,"src":"30520:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55030,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30511:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30514:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"30511:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30511:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55035,"nodeType":"ExpressionStatement","src":"30511:26:91"},{"expression":{"arguments":[{"id":55039,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55025,"src":"30555:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":55040,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"30573:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30601:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30573:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":55036,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30547:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30550:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"30547:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30547:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55044,"nodeType":"ExpressionStatement","src":"30547:56:91"},{"expression":{"arguments":[{"id":55050,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55027,"src":"30662:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":55045,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"30613:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":55047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30623:4:91","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"30613:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55048,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"30635:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"30613:48:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":55051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30613:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55052,"nodeType":"ExpressionStatement","src":"30613:56:91"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"30442:4:91","parameters":{"id":55028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55025,"mutability":"mutable","name":"validatorAddress","nameLocation":"30455:16:91","nodeType":"VariableDeclaration","scope":55054,"src":"30447:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55024,"name":"address","nodeType":"ElementaryTypeName","src":"30447:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55027,"mutability":"mutable","name":"pubkey","nameLocation":"30486:6:91","nodeType":"VariableDeclaration","scope":55054,"src":"30473:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55026,"name":"bytes","nodeType":"ElementaryTypeName","src":"30473:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30446:47:91"},"returnParameters":{"id":55029,"nodeType":"ParameterList","parameters":[],"src":"30501:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55101,"nodeType":"FunctionDefinition","src":"30682:298:91","nodes":[],"body":{"id":55100,"nodeType":"Block","src":"30750:230:91","nodes":[],"statements":[{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"validators","nameLocation":"30777:10:91","nodeType":"VariableDeclaration","scope":55100,"src":"30760:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55063,"name":"address","nodeType":"ElementaryTypeName","src":"30760:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55064,"nodeType":"ArrayTypeName","src":"30760:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55071,"initialValue":{"arguments":[{"hexValue":"31","id":55069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30804:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":55068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30790:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55066,"name":"address","nodeType":"ElementaryTypeName","src":"30794:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55067,"nodeType":"ArrayTypeName","src":"30794:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30790:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30760:46:91"},{"expression":{"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55072,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"30816:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55074,"indexExpression":{"hexValue":"30","id":55073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30827:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30816:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55075,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55056,"src":"30832:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30816:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55077,"nodeType":"ExpressionStatement","src":"30816:25:91"},{"assignments":[55082],"declarations":[{"constant":false,"id":55082,"mutability":"mutable","name":"privKeys","nameLocation":"30869:8:91","nodeType":"VariableDeclaration","scope":55100,"src":"30852:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55080,"name":"uint256","nodeType":"ElementaryTypeName","src":"30852:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55081,"nodeType":"ArrayTypeName","src":"30852:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55088,"initialValue":{"arguments":[{"hexValue":"31","id":55086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30894:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":55085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30880:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55083,"name":"uint256","nodeType":"ElementaryTypeName","src":"30884:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55084,"nodeType":"ArrayTypeName","src":"30884:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30880:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30852:44:91"},{"expression":{"id":55093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55089,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55082,"src":"30906:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55091,"indexExpression":{"hexValue":"30","id":55090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30915:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30906:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55092,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55058,"src":"30920:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30906:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55094,"nodeType":"ExpressionStatement","src":"30906:21:91"},{"expression":{"arguments":[{"id":55096,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"30952:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55097,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55082,"src":"30964:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55095,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"30938:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30938:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55099,"nodeType":"ExpressionStatement","src":"30938:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30691:13:91","parameters":{"id":55059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55056,"mutability":"mutable","name":"validator","nameLocation":"30713:9:91","nodeType":"VariableDeclaration","scope":55101,"src":"30705:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55055,"name":"address","nodeType":"ElementaryTypeName","src":"30705:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55058,"mutability":"mutable","name":"privKey","nameLocation":"30732:7:91","nodeType":"VariableDeclaration","scope":55101,"src":"30724:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55057,"name":"uint256","nodeType":"ElementaryTypeName","src":"30724:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30704:36:91"},"returnParameters":{"id":55060,"nodeType":"ParameterList","parameters":[],"src":"30750:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55164,"nodeType":"FunctionDefinition","src":"30986:408:91","nodes":[],"body":{"id":55163,"nodeType":"Block","src":"31094:300:91","nodes":[],"statements":[{"assignments":[55116],"declarations":[{"constant":false,"id":55116,"mutability":"mutable","name":"validators","nameLocation":"31121:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"31104:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55114,"name":"address","nodeType":"ElementaryTypeName","src":"31104:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55115,"nodeType":"ArrayTypeName","src":"31104:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55122,"initialValue":{"arguments":[{"hexValue":"32","id":55120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31148:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":55119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31134:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55117,"name":"address","nodeType":"ElementaryTypeName","src":"31138:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55118,"nodeType":"ArrayTypeName","src":"31138:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31134:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31104:46:91"},{"expression":{"id":55127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55123,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31160:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55125,"indexExpression":{"hexValue":"30","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31171:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31160:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55126,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55103,"src":"31176:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31160:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55128,"nodeType":"ExpressionStatement","src":"31160:26:91"},{"expression":{"id":55133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55129,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31196:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55131,"indexExpression":{"hexValue":"31","id":55130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31207:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31196:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55132,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55107,"src":"31212:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31196:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55134,"nodeType":"ExpressionStatement","src":"31196:26:91"},{"assignments":[55139],"declarations":[{"constant":false,"id":55139,"mutability":"mutable","name":"privKeys","nameLocation":"31250:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"31233:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55137,"name":"uint256","nodeType":"ElementaryTypeName","src":"31233:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55138,"nodeType":"ArrayTypeName","src":"31233:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55145,"initialValue":{"arguments":[{"hexValue":"32","id":55143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31275:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":55142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31261:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"31265:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55141,"nodeType":"ArrayTypeName","src":"31265:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31261:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31233:44:91"},{"expression":{"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55146,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31287:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55148,"indexExpression":{"hexValue":"30","id":55147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31296:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31287:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55149,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55105,"src":"31301:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31287:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55151,"nodeType":"ExpressionStatement","src":"31287:22:91"},{"expression":{"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55152,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31319:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55154,"indexExpression":{"hexValue":"31","id":55153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31328:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31319:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55155,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55109,"src":"31333:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31319:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55157,"nodeType":"ExpressionStatement","src":"31319:22:91"},{"expression":{"arguments":[{"id":55159,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31366:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55160,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31378:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55158,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"31352:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31352:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55162,"nodeType":"ExpressionStatement","src":"31352:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30995:13:91","parameters":{"id":55110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55103,"mutability":"mutable","name":"validator1","nameLocation":"31017:10:91","nodeType":"VariableDeclaration","scope":55164,"src":"31009:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55102,"name":"address","nodeType":"ElementaryTypeName","src":"31009:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55105,"mutability":"mutable","name":"privKey1","nameLocation":"31037:8:91","nodeType":"VariableDeclaration","scope":55164,"src":"31029:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55104,"name":"uint256","nodeType":"ElementaryTypeName","src":"31029:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55107,"mutability":"mutable","name":"validator2","nameLocation":"31055:10:91","nodeType":"VariableDeclaration","scope":55164,"src":"31047:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55106,"name":"address","nodeType":"ElementaryTypeName","src":"31047:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55109,"mutability":"mutable","name":"privKey2","nameLocation":"31075:8:91","nodeType":"VariableDeclaration","scope":55164,"src":"31067:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55108,"name":"uint256","nodeType":"ElementaryTypeName","src":"31067:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31008:76:91"},"returnParameters":{"id":55111,"nodeType":"ParameterList","parameters":[],"src":"31094:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55243,"nodeType":"FunctionDefinition","src":"31400:568:91","nodes":[],"body":{"id":55242,"nodeType":"Block","src":"31600:368:91","nodes":[],"statements":[{"assignments":[55183],"declarations":[{"constant":false,"id":55183,"mutability":"mutable","name":"validators","nameLocation":"31627:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31610:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55181,"name":"address","nodeType":"ElementaryTypeName","src":"31610:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55182,"nodeType":"ArrayTypeName","src":"31610:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55189,"initialValue":{"arguments":[{"hexValue":"33","id":55187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31654:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":55186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31640:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55184,"name":"address","nodeType":"ElementaryTypeName","src":"31644:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55185,"nodeType":"ArrayTypeName","src":"31644:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31640:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31610:46:91"},{"expression":{"id":55194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55190,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31666:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55192,"indexExpression":{"hexValue":"30","id":55191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31677:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31666:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55193,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55166,"src":"31682:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31666:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55195,"nodeType":"ExpressionStatement","src":"31666:26:91"},{"expression":{"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55196,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31702:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55198,"indexExpression":{"hexValue":"31","id":55197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31713:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31702:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55199,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55170,"src":"31718:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31702:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55201,"nodeType":"ExpressionStatement","src":"31702:26:91"},{"expression":{"id":55206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55202,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31738:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55204,"indexExpression":{"hexValue":"32","id":55203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31749:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31738:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55205,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55174,"src":"31754:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31738:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55207,"nodeType":"ExpressionStatement","src":"31738:26:91"},{"assignments":[55212],"declarations":[{"constant":false,"id":55212,"mutability":"mutable","name":"privKeys","nameLocation":"31792:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31775:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55210,"name":"uint256","nodeType":"ElementaryTypeName","src":"31775:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55211,"nodeType":"ArrayTypeName","src":"31775:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55218,"initialValue":{"arguments":[{"hexValue":"33","id":55216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31817:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":55215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31803:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55213,"name":"uint256","nodeType":"ElementaryTypeName","src":"31807:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55214,"nodeType":"ArrayTypeName","src":"31807:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31803:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31775:44:91"},{"expression":{"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55219,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31829:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55221,"indexExpression":{"hexValue":"30","id":55220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31838:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31829:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55222,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"31843:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31829:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55224,"nodeType":"ExpressionStatement","src":"31829:22:91"},{"expression":{"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55225,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31861:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55227,"indexExpression":{"hexValue":"31","id":55226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31870:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31861:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55228,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55172,"src":"31875:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31861:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55230,"nodeType":"ExpressionStatement","src":"31861:22:91"},{"expression":{"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55231,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31893:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55233,"indexExpression":{"hexValue":"32","id":55232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31902:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31893:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55234,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55176,"src":"31907:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31893:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55236,"nodeType":"ExpressionStatement","src":"31893:22:91"},{"expression":{"arguments":[{"id":55238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31940:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55239,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31952:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55237,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"31926:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31926:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55241,"nodeType":"ExpressionStatement","src":"31926:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31409:13:91","parameters":{"id":55177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55166,"mutability":"mutable","name":"validator1","nameLocation":"31440:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31432:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55165,"name":"address","nodeType":"ElementaryTypeName","src":"31432:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55168,"mutability":"mutable","name":"privKey1","nameLocation":"31468:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31460:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55167,"name":"uint256","nodeType":"ElementaryTypeName","src":"31460:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55170,"mutability":"mutable","name":"validator2","nameLocation":"31494:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31486:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55169,"name":"address","nodeType":"ElementaryTypeName","src":"31486:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55172,"mutability":"mutable","name":"privKey2","nameLocation":"31522:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31514:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55171,"name":"uint256","nodeType":"ElementaryTypeName","src":"31514:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55174,"mutability":"mutable","name":"validator3","nameLocation":"31548:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31540:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55173,"name":"address","nodeType":"ElementaryTypeName","src":"31540:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55176,"mutability":"mutable","name":"privKey3","nameLocation":"31576:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31568:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55175,"name":"uint256","nodeType":"ElementaryTypeName","src":"31568:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31422:168:91"},"returnParameters":{"id":55178,"nodeType":"ParameterList","parameters":[],"src":"31600:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55394,"nodeType":"FunctionDefinition","src":"31974:1107:91","nodes":[],"body":{"id":55393,"nodeType":"Block","src":"32062:1019:91","nodes":[],"statements":[{"assignments":[55253],"declarations":[{"constant":false,"id":55253,"mutability":"mutable","name":"n","nameLocation":"32080:1:91","nodeType":"VariableDeclaration","scope":55393,"src":"32072:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55252,"name":"uint256","nodeType":"ElementaryTypeName","src":"32072:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55256,"initialValue":{"expression":{"id":55254,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"32084:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32095:6:91","memberName":"length","nodeType":"MemberAccess","src":"32084:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32072:29:91"},{"assignments":[55261],"declarations":[{"constant":false,"id":55261,"mutability":"mutable","name":"signatures","nameLocation":"32127:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"32112:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55259,"name":"bytes","nodeType":"ElementaryTypeName","src":"32112:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55260,"nodeType":"ArrayTypeName","src":"32112:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":55267,"initialValue":{"arguments":[{"id":55265,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32152:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"32140:11:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":55262,"name":"bytes","nodeType":"ElementaryTypeName","src":"32144:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55263,"nodeType":"ArrayTypeName","src":"32144:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":55266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32140:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"32112:42:91"},{"assignments":[55269,null],"declarations":[{"constant":false,"id":55269,"mutability":"mutable","name":"nextConfigNum","nameLocation":"32173:13:91","nodeType":"VariableDeclaration","scope":55393,"src":"32166:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55268,"name":"uint64","nodeType":"ElementaryTypeName","src":"32166:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":55273,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55270,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32192:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32201:23:91","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50697,"src":"32192:32:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":55272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32192:34:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"32165:61:91"},{"assignments":[55275],"declarations":[{"constant":false,"id":55275,"mutability":"mutable","name":"h","nameLocation":"32245:1:91","nodeType":"VariableDeclaration","scope":55393,"src":"32237:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55274,"name":"uint256","nodeType":"ElementaryTypeName","src":"32237:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55283,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55276,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32249:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32258:28:91","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50825,"src":"32249:37:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32249:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55279,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32291:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32300:19:91","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50805,"src":"32291:28:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32291:30:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32249:72:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32237:84:91"},{"assignments":[55286],"declarations":[{"constant":false,"id":55286,"mutability":"mutable","name":"checkpoint","nameLocation":"32358:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"32332:36:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":55285,"nodeType":"UserDefinedTypeName","pathNode":{"id":55284,"name":"BottomUpCheckpoint","nameLocations":["32332:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"32332:18:91"},"referencedDeclaration":49885,"src":"32332:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55308,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":55294,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"32458:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32450:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55292,"name":"address","nodeType":"ElementaryTypeName","src":"32450:7:91","typeDescriptions":{}}},"id":55295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32450:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55288,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32414:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32423:9:91","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50627,"src":"32414:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32414:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32435:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"32414:35:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32414:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55297,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"32496:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55301,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"32543:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32532:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32536:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32532:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32532:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55298,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32522:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32522:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55304,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55269,"src":"32585:13:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32601:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32585:17:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55287,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"32371:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32404:8:91","32483:11:91","32511:9:91","32560:23:91"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"32371:242:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"32332:281:91"},{"expression":{"arguments":[{"arguments":[{"id":55314,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"32640:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32632:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"32632:7:91","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32632:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32652:9:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55309,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32624:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32627:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"32624:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32624:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55318,"nodeType":"ExpressionStatement","src":"32624:38:91"},{"assignments":[55320],"declarations":[{"constant":false,"id":55320,"mutability":"mutable","name":"hash","nameLocation":"32681:4:91","nodeType":"VariableDeclaration","scope":55393,"src":"32673:12:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32673:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55327,"initialValue":{"arguments":[{"arguments":[{"id":55324,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"32709:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55322,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32698:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32702:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32698:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32698:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55321,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32688:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32688:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32673:48:91"},{"body":{"id":55363,"nodeType":"Block","src":"32764:140:91","statements":[{"assignments":[55339,55341,55343],"declarations":[{"constant":false,"id":55339,"mutability":"mutable","name":"v","nameLocation":"32785:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32779:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55338,"name":"uint8","nodeType":"ElementaryTypeName","src":"32779:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55341,"mutability":"mutable","name":"r","nameLocation":"32796:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32788:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32788:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55343,"mutability":"mutable","name":"s","nameLocation":"32807:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32799:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32799:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55351,"initialValue":{"arguments":[{"baseExpression":{"id":55346,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"32820:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55348,"indexExpression":{"id":55347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32829:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32820:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55349,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55320,"src":"32833:4:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55344,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32812:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32815:4:91","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"32812:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32812:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"32778:60:91"},{"expression":{"id":55361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55352,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55261,"src":"32852:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55354,"indexExpression":{"id":55353,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32863:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32852:13:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55357,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55341,"src":"32885:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55358,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55343,"src":"32888:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55359,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55339,"src":"32891:1:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32868:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32872:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"32868:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32868:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"32852:41:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55362,"nodeType":"ExpressionStatement","src":"32852:41:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55332,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32752:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55333,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32756:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32752:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55364,"initializationExpression":{"assignments":[55329],"declarations":[{"constant":false,"id":55329,"mutability":"mutable","name":"i","nameLocation":"32745:1:91","nodeType":"VariableDeclaration","scope":55364,"src":"32737:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55328,"name":"uint256","nodeType":"ElementaryTypeName","src":"32737:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55331,"initialValue":{"hexValue":"30","id":55330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32749:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32737:13:91"},"loopExpression":{"expression":{"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32759:3:91","subExpression":{"id":55335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32759:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55337,"nodeType":"ExpressionStatement","src":"32759:3:91"},"nodeType":"ForStatement","src":"32732:172:91"},{"body":{"id":55391,"nodeType":"Block","src":"32946:129:91","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55378,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"32969:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55380,"indexExpression":{"id":55379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32980:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32969:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55375,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32960:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32963:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"32960:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32960:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55382,"nodeType":"ExpressionStatement","src":"32960:23:91"},{"expression":{"arguments":[{"id":55386,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"33029:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55387,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"33041:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55388,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55261,"src":"33053:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55383,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"32997:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":55385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33012:16:91","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":50370,"src":"32997:31:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32997:67:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55390,"nodeType":"ExpressionStatement","src":"32997:67:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32934:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55370,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32938:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32934:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55392,"initializationExpression":{"assignments":[55366],"declarations":[{"constant":false,"id":55366,"mutability":"mutable","name":"i","nameLocation":"32927:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32919:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"32919:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55368,"initialValue":{"hexValue":"30","id":55367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32931:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32919:13:91"},"loopExpression":{"expression":{"id":55373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32941:3:91","subExpression":{"id":55372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32941:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55374,"nodeType":"ExpressionStatement","src":"32941:3:91"},"nodeType":"ForStatement","src":"32914:161:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31983:13:91","parameters":{"id":55250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55246,"mutability":"mutable","name":"validators","nameLocation":"32014:10:91","nodeType":"VariableDeclaration","scope":55394,"src":"31997:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55244,"name":"address","nodeType":"ElementaryTypeName","src":"31997:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55245,"nodeType":"ArrayTypeName","src":"31997:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55249,"mutability":"mutable","name":"privKeys","nameLocation":"32043:8:91","nodeType":"VariableDeclaration","scope":55394,"src":"32026:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55247,"name":"uint256","nodeType":"ElementaryTypeName","src":"32026:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55248,"nodeType":"ArrayTypeName","src":"32026:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"31996:56:91"},"returnParameters":{"id":55251,"nodeType":"ParameterList","parameters":[],"src":"32062:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55429,"nodeType":"FunctionDefinition","src":"33087:305:91","nodes":[],"body":{"id":55428,"nodeType":"Block","src":"33134:258:91","nodes":[],"statements":[{"assignments":[55400],"declarations":[{"constant":false,"id":55400,"mutability":"mutable","name":"expectedNonce","nameLocation":"33152:13:91","nodeType":"VariableDeclaration","scope":55428,"src":"33144:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55399,"name":"uint256","nodeType":"ElementaryTypeName","src":"33144:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55406,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55401,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"33168:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33177:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33168:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33168:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33195:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33168:28:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"33144:52:91"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55414,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33268:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33272:6:91","memberName":"sender","nodeType":"MemberAccess","src":"33268:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55412,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"33246:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":55413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33263:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"33246:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33246:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55407,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"33206:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33216:7:91","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"33206:17:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55410,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55396,"src":"33231:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33206:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33206:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55418,"nodeType":"ExpressionStatement","src":"33206:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55420,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"33298:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33307:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33298:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33298:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55423,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55400,"src":"33326:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33298:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33341:43:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55419,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33290:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33290:95:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55427,"nodeType":"ExpressionStatement","src":"33290:95:91"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"33096:7:91","parameters":{"id":55397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55396,"mutability":"mutable","name":"releaseAmount","nameLocation":"33112:13:91","nodeType":"VariableDeclaration","scope":55429,"src":"33104:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55395,"name":"uint256","nodeType":"ElementaryTypeName","src":"33104:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33103:23:91"},"returnParameters":{"id":55398,"nodeType":"ParameterList","parameters":[],"src":"33134:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55484,"nodeType":"FunctionDefinition","src":"33398:536:91","nodes":[],"body":{"id":55483,"nodeType":"Block","src":"33467:467:91","nodes":[],"statements":[{"assignments":[55437],"declarations":[{"constant":false,"id":55437,"mutability":"mutable","name":"balanceBefore","nameLocation":"33485:13:91","nodeType":"VariableDeclaration","scope":55483,"src":"33477:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55436,"name":"uint256","nodeType":"ElementaryTypeName","src":"33477:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55440,"initialValue":{"expression":{"id":55438,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33501:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33515:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33501:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33477:45:91"},{"assignments":[null,55442,null,null,null],"declarations":[null,{"constant":false,"id":55442,"mutability":"mutable","name":"stakedBefore","nameLocation":"33544:12:91","nodeType":"VariableDeclaration","scope":55483,"src":"33536:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55441,"name":"uint256","nodeType":"ElementaryTypeName","src":"33536:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55446,"initialValue":{"arguments":[{"id":55444,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33576:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55443,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"33566:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33566:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"33533:57:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55447,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"33601:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33611:8:91","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"33601:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55450,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33627:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33601:38:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33601:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55453,"nodeType":"ExpressionStatement","src":"33601:40:91"},{"assignments":[55455],"declarations":[{"constant":false,"id":55455,"mutability":"mutable","name":"balanceAfter","nameLocation":"33660:12:91","nodeType":"VariableDeclaration","scope":55483,"src":"33652:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55454,"name":"uint256","nodeType":"ElementaryTypeName","src":"33652:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55458,"initialValue":{"expression":{"id":55456,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33675:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33689:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33675:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33652:44:91"},{"assignments":[null,55460,null,null,null],"declarations":[null,{"constant":false,"id":55460,"mutability":"mutable","name":"stakedAfter","nameLocation":"33717:11:91","nodeType":"VariableDeclaration","scope":55483,"src":"33709:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55459,"name":"uint256","nodeType":"ElementaryTypeName","src":"33709:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55464,"initialValue":{"arguments":[{"id":55462,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33748:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55461,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"33738:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33738:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"33706:56:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55466,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55455,"src":"33781:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55467,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55437,"src":"33797:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55468,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33813:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:27:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33781:43:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33826:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33773:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33773:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55473,"nodeType":"ExpressionStatement","src":"33773:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55475,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55460,"src":"33865:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55476,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55442,"src":"33880:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55477,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33895:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33880:26:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33865:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33908:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55474,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33857:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33857:70:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55482,"nodeType":"ExpressionStatement","src":"33857:70:91"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"33407:8:91","parameters":{"id":55434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55431,"mutability":"mutable","name":"stakeAmount","nameLocation":"33424:11:91","nodeType":"VariableDeclaration","scope":55484,"src":"33416:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55430,"name":"uint256","nodeType":"ElementaryTypeName","src":"33416:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55433,"mutability":"mutable","name":"subnetAddress","nameLocation":"33445:13:91","nodeType":"VariableDeclaration","scope":55484,"src":"33437:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55432,"name":"address","nodeType":"ElementaryTypeName","src":"33437:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33415:44:91"},"returnParameters":{"id":55435,"nodeType":"ParameterList","parameters":[],"src":"33467:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55569,"nodeType":"FunctionDefinition","src":"33940:813:91","nodes":[],"body":{"id":55568,"nodeType":"Block","src":"34035:718:91","nodes":[],"statements":[{"assignments":[55496],"declarations":[{"constant":false,"id":55496,"mutability":"mutable","name":"manager","nameLocation":"34065:7:91","nodeType":"VariableDeclaration","scope":55568,"src":"34045:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55495,"nodeType":"UserDefinedTypeName","pathNode":{"id":55494,"name":"GatewayManagerFacet","nameLocations":["34045:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"34045:19:91"},"referencedDeclaration":38870,"src":"34045:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55503,"initialValue":{"arguments":[{"arguments":[{"id":55500,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55491,"src":"34103:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34095:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55498,"name":"address","nodeType":"ElementaryTypeName","src":"34095:7:91","typeDescriptions":{}}},"id":55501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34095:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55497,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"34075:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34075:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"34045:62:91"},{"expression":{"arguments":[{"hexValue":"30","id":55509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34154:1:91","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"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55504,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55496,"src":"34118:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34126:8:91","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"34118:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55507,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"34142:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"34118:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34118:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55511,"nodeType":"ExpressionStatement","src":"34118:38:91"},{"assignments":[55514,55516,55518,null,55520],"declarations":[{"constant":false,"id":55514,"mutability":"mutable","name":"id","nameLocation":"34184:2:91","nodeType":"VariableDeclaration","scope":55568,"src":"34168:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55513,"nodeType":"UserDefinedTypeName","pathNode":{"id":55512,"name":"SubnetID","nameLocations":["34168:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34168:8:91"},"referencedDeclaration":50030,"src":"34168:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55516,"mutability":"mutable","name":"stake","nameLocation":"34196:5:91","nodeType":"VariableDeclaration","scope":55568,"src":"34188:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55515,"name":"uint256","nodeType":"ElementaryTypeName","src":"34188:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55518,"mutability":"mutable","name":"topDownNonce","nameLocation":"34211:12:91","nodeType":"VariableDeclaration","scope":55568,"src":"34203:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55517,"name":"uint256","nodeType":"ElementaryTypeName","src":"34203:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55520,"mutability":"mutable","name":"circSupply","nameLocation":"34235:10:91","nodeType":"VariableDeclaration","scope":55568,"src":"34227:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55519,"name":"uint256","nodeType":"ElementaryTypeName","src":"34227:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55525,"initialValue":{"arguments":[{"id":55522,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55488,"src":"34274:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55523,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55491,"src":"34301:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55521,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55653,"src":"34249:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34249:64:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"34167:146:91"},{"assignments":[55528],"declarations":[{"constant":false,"id":55528,"mutability":"mutable","name":"parentNetwork","nameLocation":"34340:13:91","nodeType":"VariableDeclaration","scope":55568,"src":"34324:29:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55527,"nodeType":"UserDefinedTypeName","pathNode":{"id":55526,"name":"SubnetID","nameLocations":["34324:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34324:8:91"},"referencedDeclaration":50030,"src":"34324:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55532,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55529,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"34356:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34365:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"34356:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34356:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"34324:57:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55534,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55514,"src":"34413:2:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34416:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34413:9:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34413:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55539,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55488,"src":"34457:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55537,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55528,"src":"34428:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34442:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"34428:28:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34428:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34472:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34428:50:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34428:52:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"34413:67:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34494:69:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55533,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34392:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34392:181:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55546,"nodeType":"ExpressionStatement","src":"34392:181:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55548,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55516,"src":"34591:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55549,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"34600:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34591:19:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34612:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34583:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34583:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55553,"nodeType":"ExpressionStatement","src":"34583:48:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55555,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55518,"src":"34649:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34665:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34649:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34668:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55554,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34641:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34641:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55560,"nodeType":"ExpressionStatement","src":"34641:46:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55562,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55520,"src":"34705:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34719:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34705:15:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34722:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55561,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34697:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34697:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55567,"nodeType":"ExpressionStatement","src":"34697:49:91"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"33949:16:91","parameters":{"id":55492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55486,"mutability":"mutable","name":"collateral","nameLocation":"33974:10:91","nodeType":"VariableDeclaration","scope":55569,"src":"33966:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55485,"name":"uint256","nodeType":"ElementaryTypeName","src":"33966:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55488,"mutability":"mutable","name":"subnetAddress","nameLocation":"33994:13:91","nodeType":"VariableDeclaration","scope":55569,"src":"33986:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55487,"name":"address","nodeType":"ElementaryTypeName","src":"33986:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55491,"mutability":"mutable","name":"gw","nameLocation":"34024:2:91","nodeType":"VariableDeclaration","scope":55569,"src":"34009:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55490,"nodeType":"UserDefinedTypeName","pathNode":{"id":55489,"name":"GatewayDiamond","nameLocations":["34009:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34009:14:91"},"referencedDeclaration":36170,"src":"34009:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"33965:62:91"},"returnParameters":{"id":55493,"nodeType":"ParameterList","parameters":[],"src":"34035:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55583,"nodeType":"FunctionDefinition","src":"34759:150:91","nodes":[],"body":{"id":55582,"nodeType":"Block","src":"34833:76:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55577,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55571,"src":"34860:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55578,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55573,"src":"34872:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55579,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"34887:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55576,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55569,"src":"34843:16:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34843:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55581,"nodeType":"ExpressionStatement","src":"34843:59:91"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"34768:14:91","parameters":{"id":55574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55571,"mutability":"mutable","name":"collateral","nameLocation":"34791:10:91","nodeType":"VariableDeclaration","scope":55583,"src":"34783:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55570,"name":"uint256","nodeType":"ElementaryTypeName","src":"34783:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55573,"mutability":"mutable","name":"subnetAddress","nameLocation":"34811:13:91","nodeType":"VariableDeclaration","scope":55583,"src":"34803:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55572,"name":"address","nodeType":"ElementaryTypeName","src":"34803:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34782:43:91"},"returnParameters":{"id":55575,"nodeType":"ParameterList","parameters":[],"src":"34833:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55653,"nodeType":"FunctionDefinition","src":"34915:541:91","nodes":[],"body":{"id":55652,"nodeType":"Block","src":"35069:387:91","nodes":[],"statements":[{"expression":{"id":55609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55602,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"35079:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55606,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55588,"src":"35119:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35111:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55604,"name":"address","nodeType":"ElementaryTypeName","src":"35111:7:91","typeDescriptions":{}}},"id":55607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35111:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55603,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"35091:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35091:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"35079:44:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55610,"nodeType":"ExpressionStatement","src":"35079:44:91"},{"expression":{"id":55618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55611,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35133:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55615,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55588,"src":"35171:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35163:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55613,"name":"address","nodeType":"ElementaryTypeName","src":"35163:7:91","typeDescriptions":{}}},"id":55616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35163:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55612,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"35144:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35144:31:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"35133:42:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55619,"nodeType":"ExpressionStatement","src":"35133:42:91"},{"assignments":[55622],"declarations":[{"constant":false,"id":55622,"mutability":"mutable","name":"subnetId","nameLocation":"35202:8:91","nodeType":"VariableDeclaration","scope":55652,"src":"35186:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55621,"nodeType":"UserDefinedTypeName","pathNode":{"id":55620,"name":"SubnetID","nameLocations":["35186:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35186:8:91"},"referencedDeclaration":50030,"src":"35186:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55629,"initialValue":{"arguments":[{"id":55627,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55585,"src":"35254:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35213:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35222:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"35213:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35213:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35239:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"35213:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35213:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"35186:82:91"},{"assignments":[55632],"declarations":[{"constant":false,"id":55632,"mutability":"mutable","name":"subnet","nameLocation":"35293:6:91","nodeType":"VariableDeclaration","scope":55652,"src":"35279:20:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55631,"nodeType":"UserDefinedTypeName","pathNode":{"id":55630,"name":"Subnet","nameLocations":["35279:6:91"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"35279:6:91"},"referencedDeclaration":50044,"src":"35279:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55639,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55635,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"35319:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35328:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"35319:15:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35319:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55633,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35302:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35311:7:91","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"35302:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50044_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35302:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"35279:58:91"},{"expression":{"components":[{"expression":{"id":55640,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35356:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35363:2:91","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"35356:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55642,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35367:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35374:5:91","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"35367:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55644,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35381:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35388:12:91","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"35381:19:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55646,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35402:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35409:20:91","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"35402:27:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55648,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35431:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35438:10:91","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"35431:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55650,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35355:94:91","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55601,"id":55651,"nodeType":"Return","src":"35348:101:91"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"34924:11:91","parameters":{"id":55589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55585,"mutability":"mutable","name":"subnetAddress","nameLocation":"34953:13:91","nodeType":"VariableDeclaration","scope":55653,"src":"34945:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55584,"name":"address","nodeType":"ElementaryTypeName","src":"34945:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55588,"mutability":"mutable","name":"gw","nameLocation":"34991:2:91","nodeType":"VariableDeclaration","scope":55653,"src":"34976:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55587,"nodeType":"UserDefinedTypeName","pathNode":{"id":55586,"name":"GatewayDiamond","nameLocations":["34976:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34976:14:91"},"referencedDeclaration":36170,"src":"34976:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"34935:64:91"},"returnParameters":{"id":55601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35016:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55591,"nodeType":"UserDefinedTypeName","pathNode":{"id":55590,"name":"SubnetID","nameLocations":["35016:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35016:8:91"},"referencedDeclaration":50030,"src":"35016:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35033:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55593,"name":"uint256","nodeType":"ElementaryTypeName","src":"35033:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35042:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55595,"name":"uint256","nodeType":"ElementaryTypeName","src":"35042:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35051:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55597,"name":"uint256","nodeType":"ElementaryTypeName","src":"35051:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35060:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55599,"name":"uint256","nodeType":"ElementaryTypeName","src":"35060:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35015:53:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55675,"nodeType":"FunctionDefinition","src":"35462:177:91","nodes":[],"body":{"id":55674,"nodeType":"Block","src":"35573:66:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55670,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55655,"src":"35602:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55671,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"35617:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55669,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55653,"src":"35590:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35590:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55668,"id":55673,"nodeType":"Return","src":"35583:49:91"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"35471:9:91","parameters":{"id":55656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55655,"mutability":"mutable","name":"subnetAddress","nameLocation":"35489:13:91","nodeType":"VariableDeclaration","scope":55675,"src":"35481:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55654,"name":"address","nodeType":"ElementaryTypeName","src":"35481:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35480:23:91"},"returnParameters":{"id":55668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35520:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55658,"nodeType":"UserDefinedTypeName","pathNode":{"id":55657,"name":"SubnetID","nameLocations":["35520:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35520:8:91"},"referencedDeclaration":50030,"src":"35520:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35537:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55660,"name":"uint256","nodeType":"ElementaryTypeName","src":"35537:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35546:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55662,"name":"uint256","nodeType":"ElementaryTypeName","src":"35546:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35555:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55664,"name":"uint256","nodeType":"ElementaryTypeName","src":"35555:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55667,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35564:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55666,"name":"uint256","nodeType":"ElementaryTypeName","src":"35564:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35519:53:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53090,"name":"Test","nameLocations":["9402:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"9402:4:91"},"id":53091,"nodeType":"InheritanceSpecifier","src":"9402:4:91"},{"baseName":{"id":53092,"name":"TestParams","nameLocations":["9408:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"9408:10:91"},"id":53093,"nodeType":"InheritanceSpecifier","src":"9408:10:91"},{"baseName":{"id":53094,"name":"TestRegistry","nameLocations":["9420:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":52760,"src":"9420:12:91"},"id":53095,"nodeType":"InheritanceSpecifier","src":"9420:12:91"},{"baseName":{"id":53096,"name":"TestSubnetActor","nameLocations":["9434:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":53089,"src":"9434:15:91"},"id":53097,"nodeType":"InheritanceSpecifier","src":"9434:15:91"},{"baseName":{"id":53098,"name":"TestGatewayActor","nameLocations":["9451:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":52925,"src":"9451:16:91"},"id":53099,"nodeType":"InheritanceSpecifier","src":"9451:16:91"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58342],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55676,52925,53089,52760,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"9379:19:91","scope":55677,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file diff --git a/.out/IntegrationTestBase.sol/TestSubnetActor.json b/.out/IntegrationTestBase.sol/TestSubnetActor.json index 3627b2eba..806156056 100644 --- a/.out/IntegrationTestBase.sol/TestSubnetActor.json +++ b/.out/IntegrationTestBase.sol/TestSubnetActor.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523462000a8257600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f72476574746572466163657400000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200057d5760009162000a63575b508051906001600160401b0382116200053f576801000000000000000082116200053f57601b5482601b5580831062000a00575b5060200190601b60005260206000208160031c9160005b838110620009b0575060071981169003806200095b575b505050506040516319b8a26360e21b815260206004820152601760248201527f5375626e65744163746f724d616e616765724661636574000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200057d576000916200093c575b508051906001600160401b0382116200053f576801000000000000000082116200053f57601c5482601c55808310620008d1575b5060200190601c60005260206000209060005b8160031c8110620008815750600719811681038062000829575b505050506040516319b8a26360e21b815260206004820152601b60248201527f5375626e65744163746f724d616e6167657246616365744d6f636b0000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200057d576000916200080a575b508051906001600160401b0382116200053f576801000000000000000082116200053f57601d5482601d5580831062000782575b5060200190601d60005260206000209060005b8160031c81106200073257506007198116810380620006da575b505050506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200057d57600091620006bb575b508051906001600160401b0382116200053f576801000000000000000082116200053f57601e5482601e5580831062000633575b5060200190601e60005260206000209060005b8160031c8110620005e35750600719811680820362000589575b505050506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200057d5760009162000555575b508051906001600160401b0382116200053f576801000000000000000082116200053f57601f5482601f55808310620004dc575b5060200190601f60005260206000208160031c9160005b8381106200048c5750600719811690038062000437575b604051610c8e908162000b428239f35b9260009360005b818110620004555750505001553880808062000427565b909194602062000481600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200043e565b6000805b60088110620004a757508382015560010162000410565b95906020620004d2600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000490565b601f6000526020600020600780850160031c8201920160031c0190601c8460021b168062000523575b505b818110620005165750620003f9565b6000815560010162000507565b600019908183019182549160200360031b1c1690553862000505565b634e487b7160e01b600052604160045260246000fd5b6200057691503d806000833e6200056d818362000a87565b81019062000aab565b38620003c5565b6040513d6000823e3d90fd5b9260009360005b8184038110620005ac5750505060031c0155388080806200035e565b9091946020620005d8600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000590565b6000805b60088110620005fe57508382015560010162000344565b9490602062000629600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620005e7565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c168062000697575b50600780850160031c8201920160031c01905b8181106200068a575062000331565b600081556001016200067b565b60001990816007870160031c8401019182549160200360031b1c1690553862000668565b620006d391503d806000833e6200056d818362000a87565b38620002fd565b9260009360005b818110620006fb5750505060031c01553880808062000298565b909194602062000727600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620006e1565b6000805b600881106200074d5750838201556001016200027e565b9490602062000778600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000736565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c1680620007e6575b50600780850160031c8201920160031c01905b818110620007d957506200026b565b60008155600101620007ca565b60001990816007870160031c8401019182549160200360031b1c16905538620007b7565b6200082291503d806000833e6200056d818362000a87565b3862000237565b9260009360005b8181106200084a5750505060031c015538808080620001c4565b909194602062000876600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000830565b6000805b600881106200089c575083820155600101620001aa565b94906020620008c7600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000885565b601c6000526020600020601c8460021b168062000918575b50600780850160031c8201920160031c01905b8181106200090b575062000197565b60008155600101620008fc565b60001990816007870160031c8401019182549160200360031b1c16905538620008e9565b6200095491503d806000833e6200056d818362000a87565b3862000163565b9260009360005b8181106200097957505050015538808080620000f0565b9091946020620009a5600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000962565b6000805b60088110620009cb575083820155600101620000d9565b95906020620009f6600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620009b4565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b168062000a47575b505b81811062000a3a5750620000c2565b6000815560010162000a2b565b600019908183019182549160200360031b1c1690553862000a29565b62000a7b91503d806000833e6200056d818362000a87565b386200008e565b600080fd5b601f909101601f19168101906001600160401b038211908210176200053f57604052565b90602090818382031262000a825782516001600160401b039384821162000a82570181601f8201121562000a825780519384116200053f578360051b906040519462000afa8584018762000a87565b8552838086019282010192831162000a82578301905b82821062000b1f575050505090565b81516001600160e01b03198116810362000a8257815290830190830162000b1056fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220f7070806381e89593969be680774e1431e5db66d7e39a595ee081b2727e2765364736f6c63430008130033","sourceMap":"6740:1920:88:-:0;;;;;;;1594:4:2;6740:1920:88;;;;1594:4:2;6740:1920:88;;;1594:4:2;6740:1920:88;3201:4:5;6740:1920:88;;;3201:4:5;6740:1920:88;;;;7226:58;;6740:1920;3201:4:5;7226:58:88;;6740:1920;;;;;;;;;;;1594:4:2;7226:15:88;6740:1920;7226:15;;:58;;;;;;;1594:4:2;7226:58:88;;;-1:-1:-1;;6740:1920:88;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;7206:78;6740:1920;;7206:78;6740:1920;;;;;;-1:-1:-1;6740:1920:88;;;;7206:78;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;1594:4:2;6740:1920:88;;;;;;-1:-1:-1;;;6740:1920:88;;;;;;;;;;;;;;;;;7315:59;;6740:1920;3201:4:5;7315:59:88;;6740:1920;;;;;;;;;;;1594:4:2;7226:15:88;6740:1920;7226:15;;7315:59;;;;;;;1594:4:2;7315:59:88;;;6740:1920;-1:-1:-1;6740:1920:88;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;7294:80;6740:1920;;7294:80;6740:1920;;;;;;;;;;;7294:80;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;-1:-1:-1;;;6740:1920:88;;;;;;;;;;;;;;;;;7411:63;;6740:1920;3201:4:5;7411:63:88;;6740:1920;7206:78;6740:1920;;;;;;;;;1594:4:2;7226:15:88;6740:1920;7226:15;;7411:63;;;;;;;1594:4:2;7411:63:88;;;6740:1920;-1:-1:-1;6740:1920:88;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;7384:90;6740:1920;;7384:90;6740:1920;;;;;;;;;;;7384:90;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;-1:-1:-1;;;6740:1920:88;;;;;;;;;;;;;;;;;7504:51;;6740:1920;3201:4:5;7504:51:88;;6740:1920;;;;;;-1:-1:-1;;;6740:1920:88;;;;1594:4:2;7226:15:88;6740:1920;7226:15;;7504:51;;;;;;;1594:4:2;7504:51:88;;;6740:1920;-1:-1:-1;6740:1920:88;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;7484:71;6740:1920;;7484:71;6740:1920;;;;;;;;;;;7484:71;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;-1:-1:-1;;;6740:1920:88;;;;;;;;;;;;;;;;;7585:53;;6740:1920;3201:4:5;7585:53:88;;6740:1920;;;;;;-1:-1:-1;;;6740:1920:88;;;;1594:4:2;7226:15:88;6740:1920;7226:15;;7585:53;;;;;;;1594:4:2;7585:53:88;;;6740:1920;-1:-1:-1;6740:1920:88;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;7565:73;6740:1920;;7565:73;6740:1920;;;;;;;;;;;7565:73;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;1594:4:2;6740:1920:88;;;;;;-1:-1:-1;;;6740:1920:88;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6740:1920:88;;;;;;-1:-1:-1;6740:1920:88;;;;1594:4:2;6740:1920:88;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7565:73;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;7294:80;6740:1920;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;3201:4:5;6740:1920:88;;1594:4:2;6740:1920:88;7585:53;;;;;;1594:4:2;7585:53:88;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;6740:1920;;;1594:4:2;6740:1920:88;;;;;;;1594:4:2;6740:1920:88;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6740:1920:88;;;;;;-1:-1:-1;6740:1920:88;;;;1594:4:2;6740:1920:88;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:71;1594:4:2;6740:1920:88;;;;;;7294:80;6740:1920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7504:51;;;;;;1594:4:2;7504:51:88;;;;;;:::i;:::-;;;;6740:1920;;1594:4:2;6740:1920:88;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6740:1920:88;;;;;;-1:-1:-1;6740:1920:88;;;;1594:4:2;6740:1920:88;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7384:90;1594:4:2;6740:1920:88;;;;;;7294:80;6740:1920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7411:63;;;;;;1594:4:2;7411:63:88;;;;;;:::i;:::-;;;;6740:1920;;1594:4:2;6740:1920:88;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6740:1920:88;;;;;;-1:-1:-1;6740:1920:88;;;;1594:4:2;6740:1920:88;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7294:80;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;7294:80;6740:1920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7315:59;;;;;;1594:4:2;7315:59:88;;;;;;:::i;:::-;;;;6740:1920;;1594:4:2;6740:1920:88;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6740:1920:88;;;;;;-1:-1:-1;6740:1920:88;;;;1594:4:2;6740:1920:88;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7206:78;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;7226:58;;;;;;1594:4:2;7226:58:88;;;;;;:::i;:::-;;;;6740:1920;;;;;;;;;-1:-1:-1;;6740:1920:88;;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;","linkReferences":{"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":104,"length":20},{"start":317,"length":20},{"start":529,"length":20},{"start":727,"length":20},{"start":927,"length":20}]}}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220f7070806381e89593969be680774e1431e5db66d7e39a595ee081b2727e2765364736f6c63430008130033","sourceMap":"6740:1920:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;6740:1920:88;;;;:::i;:::-;;1671:64:2;6740:1920:88;;1671:64:2;;;:::i;:::-;6740:1920:88;;;1982:18:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6740:1920:88;;;;;;;;-1:-1:-1;6740:1920:88;;;;;-1:-1:-1;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6740:1920:88;;;;;-1:-1:-1;6740:1920:88;;;;;;;;;-1:-1:-1;6740:1920:88;;;;-1:-1:-1;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;6740:1920:88;;;;:::i;:::-;;1671:64:2;6740:1920:88;;1671:64:2;;;:::i;:::-;6740:1920:88;;;2899:18:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;6740:1920:88;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;6740:1920:88;;;;:::i;:::-;;1671:64:2;6740:1920:88;;1671:64:2;;;:::i;:::-;6740:1920:88;;;2416:18:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6740:1920:88;;;;;;;;-1:-1:-1;6740:1920:88;;;;;-1:-1:-1;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6740:1920:88;;;;;-1:-1:-1;6740:1920:88;;;;;;;;;-1:-1:-1;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;6740:1920:88;;;;:::i;:::-;;1671:64:2;6740:1920:88;;1671:64:2;;;:::i;:::-;6740:1920:88;;;2592:26:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;6740:1920:88;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6740:1920:88;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;6740:1920:88;;;;;;;;;;;;;;;;;1671:64:2;6740:1920:88;1671:64:2;;;;;;;;;;;6740:1920:88;1671:64:2;:::o;:::-;6740:1920:88;;;1671:64:2;;;;;;;;;;6740:1920:88;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;6740:1920:88;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;6740:1920:88;;;2196:43:2;;;6740:1920:88;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;6740:1920:88;;-1:-1:-1;1671:64:2;;6740:1920:88;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;6740:1920:88;1671:64:2;2086:175;;;6740:1920:88;;;;;;1671:64:2;6740:1920:88;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;6740:1920:88;;;1671:64:2;6740:1920:88;;;-1:-1:-1;;6740:1920:88;2196:43:2;1671:64;6740:1920:88;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;6740:1920:88;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;6740:1920:88;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;6740:1920:88;1671:64:2;;;6740:1920:88;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;6740:1920:88;1671:64:2;6740:1920:88;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"TestSubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496\",\"dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestSubnetActor"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692","urls":["bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496","dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55376,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49974],"CrossMsgHelper":[40781],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50204],"IntegrationTestBase":[55375],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50165],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52279],"SelectorLibrary":[56263],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52912],"TestParams":[52683],"TestRegistry":[52747],"TestSubnetActor":[53037],"TestUtils":[57051],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50211],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:31883:88","nodes":[{"id":52519,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52520,"nodeType":"ImportDirective","src":"71:28:88","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52521,"nodeType":"ImportDirective","src":"100:36:88","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52522,"nodeType":"ImportDirective","src":"137:37:88","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52525,"nodeType":"ImportDirective","src":"176:72:88","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52523,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52524,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52527,"nodeType":"ImportDirective","src":"249:61:88","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52526,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"311:56:88","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"368:102:88","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":52530,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"376:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"386:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52532,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"406:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52533,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"419:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"471:57:88","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":52535,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"479:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52545,"nodeType":"ImportDirective","src":"529:140:88","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":52537,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"537:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"547:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"559:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"575:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52541,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"591:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52542,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"599:12:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52543,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"613:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"625:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52547,"nodeType":"ImportDirective","src":"670:61:88","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":52546,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"678:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52549,"nodeType":"ImportDirective","src":"732:65:88","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":52548,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"740:16:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"798:61:88","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":52550,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"806:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"860:67:88","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":52552,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"868:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"928:56:88","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52554,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"985:57:88","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52556,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"1043:65:88","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52558,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"1109:73:88","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52560,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"1183:79:88","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1263:75:88","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52564,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1340:80:88","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52566,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1421:80:88","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52568,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1502:84:88","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52570,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1587:82:88","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52572,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1671:84:88","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"./mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":52574,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1679:27:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1756:82:88","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":52576,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"1764:23:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1839:80:88","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":52578,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1847:22:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1920:71:88","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"1928:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1992:82:88","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":52582,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"2000:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"2075:78:88","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"2083:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"2154:71:88","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52586,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2162:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"2226:67:88","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52588,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2234:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2294:69:88","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":52590,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"2302:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2364:50:88","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":52592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2372:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2415:62:88","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":56264,"symbolAliases":[{"foreign":{"id":52594,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2423:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52683,"nodeType":"ContractDefinition","src":"2479:1194:88","nodes":[{"id":52602,"nodeType":"VariableDeclaration","src":"2505:44:88","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2521:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52596,"name":"uint64","nodeType":"ElementaryTypeName","src":"2505:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2538:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52598,"name":"uint64","nodeType":"ElementaryTypeName","src":"2538:6:88","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52597,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2533:4:88","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2546:3:88","memberName":"max","nodeType":"MemberAccess","src":"2533:16:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52608,"nodeType":"VariableDeclaration","src":"2555:91:88","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2572:20:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52603,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2603:42:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2595:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52604,"name":"address","nodeType":"ElementaryTypeName","src":"2595:7:88","typeDescriptions":{}}},"id":52607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2595:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52611,"nodeType":"VariableDeclaration","src":"2652:42:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2668:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2652:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2693:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52614,"nodeType":"VariableDeclaration","src":"2700:54:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2717:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2700:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52617,"nodeType":"VariableDeclaration","src":"2760:47:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2775:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52615,"name":"uint8","nodeType":"ElementaryTypeName","src":"2760:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2805:2:88","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2813:51:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2829:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52618,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2857:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2870:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2886:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2870:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2922:44:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2938:16:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52624,"name":"string","nodeType":"ElementaryTypeName","src":"2922:6:88","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2957:9:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2972:36:88","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2987:7:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52627,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52628,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2997:11:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3014:48:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3031:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52630,"name":"uint256","nodeType":"ElementaryTypeName","src":"3014:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3068:49:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3085:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52633,"name":"uint256","nodeType":"ElementaryTypeName","src":"3068:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3123:52:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3140:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52636,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3172:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3164:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52637,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:88","typeDescriptions":{}}},"id":52640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3181:54:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3198:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52642,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3232:2:88","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52643,"name":"address","nodeType":"ElementaryTypeName","src":"3224:7:88","typeDescriptions":{}}},"id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52652,"nodeType":"VariableDeclaration","src":"3241:57:88","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3257:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52648,"name":"uint64","nodeType":"ElementaryTypeName","src":"3241:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3269:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52650,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"3273:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3269:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52655,"nodeType":"VariableDeclaration","src":"3304:50:88","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3321:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3304:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3347:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52658,"nodeType":"VariableDeclaration","src":"3360:53:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3376:31:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52656,"name":"uint16","nodeType":"ElementaryTypeName","src":"3360:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52661,"nodeType":"VariableDeclaration","src":"3419:38:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3433:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52659,"name":"int8","nodeType":"ElementaryTypeName","src":"3419:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3463:37:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3479:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52662,"name":"uint64","nodeType":"ElementaryTypeName","src":"3463:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3497:3:88","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3506:45:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3523:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3549:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52666,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:88","typeDescriptions":{}}},"id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3557:57:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3574:24:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"3557:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3609:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3601:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52672,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:88","typeDescriptions":{}}},"id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3620:50:88","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3637:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3620:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3667:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3659:7:88","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52683],"name":"TestParams","nameLocation":"2488:10:88","scope":55376,"usedErrors":[]},{"id":52747,"nodeType":"ContractDefinition","src":"3675:824:88","nodes":[{"id":52690,"nodeType":"VariableDeclaration","src":"3723:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3732:28:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52688,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3723:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52689,"nodeType":"ArrayTypeName","src":"3723:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52693,"nodeType":"VariableDeclaration","src":"3766:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3775:34:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52691,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52692,"nodeType":"ArrayTypeName","src":"3766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52696,"nodeType":"VariableDeclaration","src":"3815:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3824:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52694,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3815:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52695,"nodeType":"ArrayTypeName","src":"3815:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52699,"nodeType":"VariableDeclaration","src":"3853:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3862:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52697,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3853:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52698,"nodeType":"ArrayTypeName","src":"3853:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52702,"nodeType":"VariableDeclaration","src":"3892:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3914:15:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52701,"nodeType":"UserDefinedTypeName","pathNode":{"id":52700,"name":"SubnetRegistryDiamond","nameLocations":["3892:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"3892:21:88"},"referencedDeclaration":36853,"src":"3892:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3935:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3953:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52704,"nodeType":"UserDefinedTypeName","pathNode":{"id":52703,"name":"DiamondLoupeFacet","nameLocations":["3935:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"3935:17:88"},"referencedDeclaration":37355,"src":"3935:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"3973:30:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3989:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52707,"nodeType":"UserDefinedTypeName","pathNode":{"id":52706,"name":"DiamondCutFacet","nameLocations":["3973:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"3973:15:88"},"referencedDeclaration":36918,"src":"3973:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4009:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4029:19:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52710,"nodeType":"UserDefinedTypeName","pathNode":{"id":52709,"name":"RegisterSubnetFacet","nameLocations":["4009:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"4009:19:88"},"referencedDeclaration":52279,"src":"4009:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4054:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4072:25:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetGetterFacet","nameLocations":["4054:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"4054:17:88"},"referencedDeclaration":52517,"src":"4054:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52746,"nodeType":"FunctionDefinition","src":"4104:393:88","nodes":[],"body":{"id":52745,"nodeType":"Block","src":"4118:379:88","nodes":[],"statements":[{"expression":{"id":52722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52717,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"4128:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4192:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52718,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4159:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4175:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4159:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4128:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52723,"nodeType":"ExpressionStatement","src":"4128:86:88"},{"expression":{"id":52729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52724,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"4224:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4294:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52725,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4261:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4277:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4261:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4224:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52730,"nodeType":"ExpressionStatement","src":"4224:90:88"},{"expression":{"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52731,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"4324:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4383:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52732,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4350:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4350:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:77:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52737,"nodeType":"ExpressionStatement","src":"4324:77:88"},{"expression":{"id":52743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52738,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"4411:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4470:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52739,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4437:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4437:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4411:79:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52744,"nodeType":"ExpressionStatement","src":"4411:79:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52715,"nodeType":"ParameterList","parameters":[],"src":"4115:2:88"},"returnParameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"4118:0:88"},"scope":52747,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52684,"name":"Test","nameLocations":["3700:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3700:4:88"},"id":52685,"nodeType":"InheritanceSpecifier","src":"3700:4:88"},{"baseName":{"id":52686,"name":"TestParams","nameLocations":["3706:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"3706:10:88"},"id":52687,"nodeType":"InheritanceSpecifier","src":"3706:10:88"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3684:12:88","scope":55376,"usedErrors":[]},{"id":52912,"nodeType":"ContractDefinition","src":"4501:2237:88","nodes":[{"id":52754,"nodeType":"VariableDeclaration","src":"4553:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4562:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52752,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4553:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52753,"nodeType":"ArrayTypeName","src":"4553:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52757,"nodeType":"VariableDeclaration","src":"4597:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4606:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52755,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4597:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52756,"nodeType":"ArrayTypeName","src":"4597:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52760,"nodeType":"VariableDeclaration","src":"4641:40:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4650:31:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52758,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4641:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52759,"nodeType":"ArrayTypeName","src":"4641:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52763,"nodeType":"VariableDeclaration","src":"4687:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4696:30:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52761,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4687:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52762,"nodeType":"ArrayTypeName","src":"4687:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52766,"nodeType":"VariableDeclaration","src":"4733:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4742:18:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4733:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4733:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4766:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4775:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4798:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4807:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4798:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4798:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4834:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4843:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4834:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4834:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4866:25:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4875:16:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4866:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4866:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4898:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4913:14:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52780,"nodeType":"UserDefinedTypeName","pathNode":{"id":52779,"name":"GatewayDiamond","nameLocations":["4898:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"4898:14:88"},"referencedDeclaration":36170,"src":"4898:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4933:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4953:9:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52783,"nodeType":"UserDefinedTypeName","pathNode":{"id":52782,"name":"GatewayManagerFacet","nameLocations":["4933:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"4933:19:88"},"referencedDeclaration":38870,"src":"4933:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"4968:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4987:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52786,"nodeType":"UserDefinedTypeName","pathNode":{"id":52785,"name":"GatewayGetterFacet","nameLocations":["4968:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"4968:18:88"},"referencedDeclaration":38317,"src":"4968:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5001:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5020:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52789,"nodeType":"UserDefinedTypeName","pathNode":{"id":52788,"name":"CheckpointingFacet","nameLocations":["5001:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5001:18:88"},"referencedDeclaration":39870,"src":"5001:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5046:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5065:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"XnetMessagingFacet","nameLocations":["5046:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5046:18:88"},"referencedDeclaration":40144,"src":"5046:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5091:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5112:22:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"TopDownFinalityFacet","nameLocations":["5091:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5091:20:88"},"referencedDeclaration":40071,"src":"5091:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5140:41:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5160:21:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"BottomUpRouterFacet","nameLocations":["5140:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5140:19:88"},"referencedDeclaration":39601,"src":"5140:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5187:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5209:11:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"GatewayMessengerFacet","nameLocations":["5187:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5187:21:88"},"referencedDeclaration":39235,"src":"5187:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5226:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5242:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"DiamondCutFacet","nameLocations":["5226:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5226:15:88"},"referencedDeclaration":36918,"src":"5226:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5256:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5274:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"DiamondLoupeFacet","nameLocations":["5256:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5256:17:88"},"referencedDeclaration":37355,"src":"5256:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52875,"nodeType":"FunctionDefinition","src":"5289:835:88","nodes":[],"body":{"id":52874,"nodeType":"Block","src":"5303:821:88","nodes":[],"statements":[{"expression":{"id":52816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52811,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"5313:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52812,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5345:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5345:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5313:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52817,"nodeType":"ExpressionStatement","src":"5313:86:88"},{"expression":{"id":52823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52818,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"5409:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5474:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52819,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5441:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5441:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5409:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52824,"nodeType":"ExpressionStatement","src":"5409:86:88"},{"expression":{"id":52830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52825,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"5505:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5572:22:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52826,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5539:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5555:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5539:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5539:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5505:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52831,"nodeType":"ExpressionStatement","src":"5505:90:88"},{"expression":{"id":52837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52832,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"5605:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5671:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52833,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5638:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5654:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5638:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:88:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52838,"nodeType":"ExpressionStatement","src":"5605:88:88"},{"expression":{"id":52844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52839,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5704:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5757:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52840,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5724:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5740:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5724:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5724:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5704:74:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52845,"nodeType":"ExpressionStatement","src":"5704:74:88"},{"expression":{"id":52851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52846,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5788:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52847,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5809:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5825:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5809:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5788:76:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52852,"nodeType":"ExpressionStatement","src":"5788:76:88"},{"expression":{"id":52858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52853,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5874:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5930:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52854,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5897:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5913:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5897:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:57:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5874:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52859,"nodeType":"ExpressionStatement","src":"5874:80:88"},{"expression":{"id":52865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52860,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5964:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6017:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52861,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5984:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5984:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5984:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5964:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52866,"nodeType":"ExpressionStatement","src":"5964:71:88"},{"expression":{"id":52872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52867,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"6045:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6097:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52868,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"6064:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6080:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"6064:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6064:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6045:72:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52873,"nodeType":"ExpressionStatement","src":"6045:72:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52809,"nodeType":"ParameterList","parameters":[],"src":"5300:2:88"},"returnParameters":{"id":52810,"nodeType":"ParameterList","parameters":[],"src":"5303:0:88"},"scope":52912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52911,"nodeType":"FunctionDefinition","src":"6130:606:88","nodes":[],"body":{"id":52910,"nodeType":"Block","src":"6234:502:88","nodes":[],"statements":[{"assignments":[52885],"declarations":[{"constant":false,"id":52885,"mutability":"mutable","name":"params","nameLocation":"6284:6:88","nodeType":"VariableDeclaration","scope":52910,"src":"6244:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52884,"nodeType":"UserDefinedTypeName","pathNode":{"id":52883,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6244:14:88","6259:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6244:32:88"},"referencedDeclaration":35883,"src":"6244:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52907,"initialValue":{"arguments":[{"arguments":[{"id":52889,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"6369:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6407:1:88","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":52892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6393:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52890,"name":"address","nodeType":"ElementaryTypeName","src":"6397:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52891,"nodeType":"ArrayTypeName","src":"6397:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52888,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"6353:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6363:4:88","6386:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"6353:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52896,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"6446:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52897,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"6493:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52898,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"6548:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6624:1:88","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":52902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6608:15:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52900,"nodeType":"UserDefinedTypeName","pathNode":{"id":52899,"name":"Validator","nameLocations":["6612:9:88"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"6612:9:88"},"referencedDeclaration":50211,"src":"6612:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":52901,"nodeType":"ArrayTypeName","src":"6612:11:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52905,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"6663:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52886,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6293:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6308:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6293:32:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6340:11:88","6425:19:88","6485:6:88","6528:18:88","6589:17:88","6640:21:88"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6293:412:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6244:461:88"},{"expression":{"id":52908,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52885,"src":"6723:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52880,"id":52909,"nodeType":"Return","src":"6716:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6139:20:88","parameters":{"id":52876,"nodeType":"ParameterList","parameters":[],"src":"6159:2:88"},"returnParameters":{"id":52880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52911,"src":"6193:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52878,"nodeType":"UserDefinedTypeName","pathNode":{"id":52877,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6193:14:88","6208:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6193:32:88"},"referencedDeclaration":35883,"src":"6193:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6192:41:88"},"scope":52912,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52748,"name":"Test","nameLocations":["4530:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4530:4:88"},"id":52749,"nodeType":"InheritanceSpecifier","src":"4530:4:88"},{"baseName":{"id":52750,"name":"TestParams","nameLocations":["4536:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"4536:10:88"},"id":52751,"nodeType":"InheritanceSpecifier","src":"4536:10:88"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52912,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4510:16:88","scope":55376,"usedErrors":[]},{"id":53037,"nodeType":"ContractDefinition","src":"6740:1920:88","nodes":[{"id":52919,"nodeType":"VariableDeclaration","src":"6791:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6800:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52917,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6791:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52918,"nodeType":"ArrayTypeName","src":"6791:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6823:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6832:18:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52920,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6823:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52921,"nodeType":"ArrayTypeName","src":"6823:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6856:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6865:24:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52923,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6856:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52924,"nodeType":"ArrayTypeName","src":"6856:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6895:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6904:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52926,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6895:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52927,"nodeType":"ArrayTypeName","src":"6895:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6927:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6936:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52929,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6927:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52930,"nodeType":"ArrayTypeName","src":"6927:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6960:28:88","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6979:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorDiamond","nameLocations":["6960:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6960:18:88"},"referencedDeclaration":36615,"src":"6960:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6994:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7018:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorManagerFacet","nameLocations":["6994:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"6994:23:88"},"referencedDeclaration":52151,"src":"6994:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"7033:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"7061:15:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"SubnetActorManagerFacetMock","nameLocations":["7033:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"7033:27:88"},"referencedDeclaration":57957,"src":"7033:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"7082:31:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7105:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"SubnetActorGetterFacet","nameLocations":["7082:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"7082:22:88"},"referencedDeclaration":50887,"src":"7082:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52946,"nodeType":"VariableDeclaration","src":"7119:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7135:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52945,"nodeType":"UserDefinedTypeName","pathNode":{"id":52944,"name":"DiamondCutFacet","nameLocations":["7119:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7119:15:88"},"referencedDeclaration":36918,"src":"7119:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52949,"nodeType":"VariableDeclaration","src":"7149:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7167:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52948,"nodeType":"UserDefinedTypeName","pathNode":{"id":52947,"name":"DiamondLoupeFacet","nameLocations":["7149:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7149:17:88"},"referencedDeclaration":37355,"src":"7149:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52988,"nodeType":"FunctionDefinition","src":"7182:463:88","nodes":[],"body":{"id":52987,"nodeType":"Block","src":"7196:449:88","nodes":[],"statements":[{"expression":{"id":52957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52952,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"7206:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7259:24:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52953,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7226:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7242:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7226:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7226:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7206:78:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52958,"nodeType":"ExpressionStatement","src":"7206:78:88"},{"expression":{"id":52964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52959,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"7294:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7348:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52960,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7315:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7331:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7315:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7315:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7294:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52965,"nodeType":"ExpressionStatement","src":"7294:80:88"},{"expression":{"id":52971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52966,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"7384:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7444:29:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":52967,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7411:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7427:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7411:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7384:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52972,"nodeType":"ExpressionStatement","src":"7384:90:88"},{"expression":{"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52973,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"7484:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7537:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52974,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7504:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7520:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7504:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7504:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7484:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52979,"nodeType":"ExpressionStatement","src":"7484:71:88"},{"expression":{"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52980,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"7565:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7618:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52981,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7585:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7585:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7565:73:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52986,"nodeType":"ExpressionStatement","src":"7565:73:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52950,"nodeType":"ParameterList","parameters":[],"src":"7193:2:88"},"returnParameters":{"id":52951,"nodeType":"ParameterList","parameters":[],"src":"7196:0:88"},"scope":53037,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53036,"nodeType":"FunctionDefinition","src":"7651:1007:88","nodes":[],"body":{"id":53035,"nodeType":"Block","src":"7798:860:88","nodes":[],"statements":[{"assignments":[52998],"declarations":[{"constant":false,"id":52998,"mutability":"mutable","name":"native","nameLocation":"7828:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7808:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":52997,"nodeType":"UserDefinedTypeName","pathNode":{"id":52996,"name":"SupplySource","nameLocations":["7808:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7808:12:88"},"referencedDeclaration":50226,"src":"7808:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53002,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52999,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"7837:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7856:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"7837:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7808:56:88"},{"assignments":[53007],"declarations":[{"constant":false,"id":53007,"mutability":"mutable","name":"params","nameLocation":"7918:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7874:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53006,"nodeType":"UserDefinedTypeName","pathNode":{"id":53005,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7874:18:88","7893:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7874:36:88"},"referencedDeclaration":36253,"src":"7874:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53032,"initialValue":{"arguments":[{"arguments":[{"id":53011,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"8004:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8042:1:88","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":53014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8028:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53012,"name":"address","nodeType":"ElementaryTypeName","src":"8032:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53013,"nodeType":"ArrayTypeName","src":"8032:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53010,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"7988:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7998:4:88","8021:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"7988:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53018,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52990,"src":"8076:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53019,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8103:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8117:10:88","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8103:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53021,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"8166:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53022,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52611,"src":"8220:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53023,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8277:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53024,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"8336:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53025,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"8400:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53026,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"8457:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53027,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8506:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53028,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"8557:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8572:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"8557:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53030,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52998,"src":"8610:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53008,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7927:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7946:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7927:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7978:8:88","8060:14:88","8092:9:88","8141:23:88","8205:13:88","8256:19:88","8316:18:88","8377:21:88","8445:10:88","8490:14:88","8541:14:88","8596:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7927:700:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7874:753:88"},{"expression":{"id":53033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53007,"src":"8645:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":52995,"id":53034,"nodeType":"Return","src":"8638:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7660:35:88","parameters":{"id":52991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52990,"mutability":"mutable","name":"gw","nameLocation":"7713:2:88","nodeType":"VariableDeclaration","scope":53036,"src":"7705:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52989,"name":"address","nodeType":"ElementaryTypeName","src":"7705:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7695:26:88"},"returnParameters":{"id":52995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53036,"src":"7753:43:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52993,"nodeType":"UserDefinedTypeName","pathNode":{"id":52992,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7753:18:88","7772:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7753:36:88"},"referencedDeclaration":36253,"src":"7753:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7752:45:88"},"scope":53037,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52913,"name":"Test","nameLocations":["6768:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6768:4:88"},"id":52914,"nodeType":"InheritanceSpecifier","src":"6768:4:88"},{"baseName":{"id":52915,"name":"TestParams","nameLocations":["6774:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"6774:10:88"},"id":52916,"nodeType":"InheritanceSpecifier","src":"6774:10:88"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53037,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6749:15:88","scope":55376,"usedErrors":[]},{"id":55375,"nodeType":"ContractDefinition","src":"8662:23266:88","nodes":[{"id":53051,"nodeType":"UsingForDirective","src":"8766:34:88","nodes":[],"global":false,"libraryName":{"id":53048,"name":"SubnetIDHelper","nameLocations":["8772:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"8772:14:88"},"typeName":{"id":53050,"nodeType":"UserDefinedTypeName","pathNode":{"id":53049,"name":"SubnetID","nameLocations":["8791:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"8791:8:88"},"referencedDeclaration":50077,"src":"8791:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":53055,"nodeType":"UsingForDirective","src":"8805:42:88","nodes":[],"global":false,"libraryName":{"id":53052,"name":"SupplySourceHelper","nameLocations":["8811:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"8811:18:88"},"typeName":{"id":53054,"nodeType":"UserDefinedTypeName","pathNode":{"id":53053,"name":"SupplySource","nameLocations":["8834:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"8834:12:88"},"referencedDeclaration":50226,"src":"8834:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":53059,"nodeType":"UsingForDirective","src":"8852:34:88","nodes":[],"global":false,"libraryName":{"id":53056,"name":"CrossMsgHelper","nameLocations":["8858:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"8858:14:88"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"CrossMsg","nameLocations":["8877:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8877:8:88"},"referencedDeclaration":49974,"src":"8877:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53063,"nodeType":"UsingForDirective","src":"8891:40:88","nodes":[],"global":false,"libraryName":{"id":53060,"name":"StorableMsgHelper","nameLocations":["8897:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"8897:17:88"},"typeName":{"id":53062,"nodeType":"UserDefinedTypeName","pathNode":{"id":53061,"name":"StorableMsg","nameLocations":["8919:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"8919:11:88"},"referencedDeclaration":49991,"src":"8919:11:88","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53067,"nodeType":"UsingForDirective","src":"8936:38:88","nodes":[],"global":false,"libraryName":{"id":53064,"name":"FvmAddressHelper","nameLocations":["8942:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"8942:16:88"},"typeName":{"id":53066,"nodeType":"UserDefinedTypeName","pathNode":{"id":53065,"name":"FvmAddress","nameLocations":["8963:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8963:10:88"},"referencedDeclaration":49998,"src":"8963:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53071,"nodeType":"EventDefinition","src":"8980:67:88","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"8986:21:88","parameters":{"id":53070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53069,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9024:21:88","nodeType":"VariableDeclaration","scope":53071,"src":"9008:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53068,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9007:39:88"}},{"id":53075,"nodeType":"FunctionDefinition","src":"9053:16:88","nodes":[],"body":{"id":53074,"nodeType":"Block","src":"9067:2:88","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53072,"nodeType":"ParameterList","parameters":[],"src":"9064:2:88"},"returnParameters":{"id":53073,"nodeType":"ParameterList","parameters":[],"src":"9067:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53250,"nodeType":"FunctionDefinition","src":"9075:1529:88","nodes":[],"body":{"id":53249,"nodeType":"Block","src":"9107:1497:88","nodes":[],"statements":[{"assignments":[53082],"declarations":[{"constant":false,"id":53082,"mutability":"mutable","name":"path","nameLocation":"9134:4:88","nodeType":"VariableDeclaration","scope":53249,"src":"9117:21:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53080,"name":"address","nodeType":"ElementaryTypeName","src":"9117:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53081,"nodeType":"ArrayTypeName","src":"9117:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53088,"initialValue":{"arguments":[{"hexValue":"31","id":53086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9155:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9141:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53084,"nodeType":"ArrayTypeName","src":"9145:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9141:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9117:40:88"},{"expression":{"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53089,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53082,"src":"9167:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53091,"indexExpression":{"hexValue":"30","id":53090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9167:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53092,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"9177:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9167:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53094,"nodeType":"ExpressionStatement","src":"9167:25:88"},{"assignments":[53099],"declarations":[{"constant":false,"id":53099,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9285:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"9245:59:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53098,"nodeType":"UserDefinedTypeName","pathNode":{"id":53097,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9245:14:88","9260:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9245:32:88"},"referencedDeclaration":35883,"src":"9245:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53100,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52911,"src":"9307:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9245:84:88"},{"expression":{"id":53107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53103,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9339:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53105,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53099,"src":"9377:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53104,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"9356:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:41:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9339:58:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53108,"nodeType":"ExpressionStatement","src":"9339:58:88"},{"expression":{"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53109,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"9408:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53113,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9446:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9438:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53111,"name":"address","nodeType":"ElementaryTypeName","src":"9438:7:88","typeDescriptions":{}}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9438:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53110,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9419:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9419:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9408:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53117,"nodeType":"ExpressionStatement","src":"9408:54:88"},{"expression":{"id":53125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"9472:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53122,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9512:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9504:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9504:7:88","typeDescriptions":{}}},"id":53123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9504:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53119,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9484:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9472:56:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53126,"nodeType":"ExpressionStatement","src":"9472:56:88"},{"expression":{"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53127,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"9538:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53131,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9588:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9580:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53129,"name":"address","nodeType":"ElementaryTypeName","src":"9580:7:88","typeDescriptions":{}}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9580:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53128,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9561:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9538:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53135,"nodeType":"ExpressionStatement","src":"9538:66:88"},{"expression":{"id":53143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53136,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9614:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53140,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9664:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9656:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53138,"name":"address","nodeType":"ElementaryTypeName","src":"9656:7:88","typeDescriptions":{}}},"id":53141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53137,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9637:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9637:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9614:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53144,"nodeType":"ExpressionStatement","src":"9614:66:88"},{"expression":{"id":53152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53145,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9690:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53149,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9744:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9736:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53147,"name":"address","nodeType":"ElementaryTypeName","src":"9736:7:88","typeDescriptions":{}}},"id":53150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9736:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53146,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9715:20:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9690:70:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53153,"nodeType":"ExpressionStatement","src":"9690:70:88"},{"expression":{"id":53161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53154,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9770:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53158,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9822:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9814:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53156,"name":"address","nodeType":"ElementaryTypeName","src":"9814:7:88","typeDescriptions":{}}},"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9814:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53155,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9794:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9770:68:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53162,"nodeType":"ExpressionStatement","src":"9770:68:88"},{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53163,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9848:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53167,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9892:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9884:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53165,"name":"address","nodeType":"ElementaryTypeName","src":"9884:7:88","typeDescriptions":{}}},"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9884:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53164,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9862:21:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9848:60:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53171,"nodeType":"ExpressionStatement","src":"9848:60:88"},{"expression":{"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53172,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9918:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53176,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9955:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9947:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"9947:7:88","typeDescriptions":{}}},"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53173,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9929:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9929:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9918:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53180,"nodeType":"ExpressionStatement","src":"9918:53:88"},{"expression":{"id":53188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53181,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9981:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53185,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10016:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53183,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:88","typeDescriptions":{}}},"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53182,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"9992:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9992:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"9981:51:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53189,"nodeType":"ExpressionStatement","src":"9981:51:88"},{"assignments":[53194],"declarations":[{"constant":false,"id":53194,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10141:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"10097:63:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53193,"nodeType":"UserDefinedTypeName","pathNode":{"id":53192,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10097:18:88","10116:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10097:36:88"},"referencedDeclaration":36253,"src":"10097:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53201,"initialValue":{"arguments":[{"arguments":[{"id":53198,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10220:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53196,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:88","typeDescriptions":{}}},"id":53199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53195,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"10163:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10163:82:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10097:148:88"},{"expression":{"id":53206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10256:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53204,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53194,"src":"10286:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53203,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53710,"src":"10268:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10256:50:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53207,"nodeType":"ExpressionStatement","src":"10256:50:88"},{"expression":{"id":53215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53208,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10316:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10360:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10352:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53210,"name":"address","nodeType":"ElementaryTypeName","src":"10352:7:88","typeDescriptions":{}}},"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53209,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"10328:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10328:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"10316:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53216,"nodeType":"ExpressionStatement","src":"10316:55:88"},{"expression":{"id":53224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10381:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10423:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10415:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53219,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:88","typeDescriptions":{}}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53218,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"10392:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10392:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"10381:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53225,"nodeType":"ExpressionStatement","src":"10381:53:88"},{"expression":{"id":53233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53226,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"10444:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53230,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10481:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10473:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53228,"name":"address","nodeType":"ElementaryTypeName","src":"10473:7:88","typeDescriptions":{}}},"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10473:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53227,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10455:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10455:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10444:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53234,"nodeType":"ExpressionStatement","src":"10444:48:88"},{"expression":{"id":53242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53235,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"10502:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53239,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10537:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10529:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53237,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:88","typeDescriptions":{}}},"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10529:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53236,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10513:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10513:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10502:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53243,"nodeType":"ExpressionStatement","src":"10502:46:88"},{"expression":{"arguments":[{"id":53245,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"10572:19:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10593:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53244,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"10559:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53248,"nodeType":"ExpressionStatement","src":"10559:38:88"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9084:5:88","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"9089:2:88"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"9107:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53509,"nodeType":"FunctionDefinition","src":"10610:3185:88","nodes":[],"body":{"id":53508,"nodeType":"Block","src":"10720:3075:88","nodes":[],"statements":[{"assignments":[53261],"declarations":[{"constant":false,"id":53261,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"10749:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10730:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53260,"nodeType":"UserDefinedTypeName","pathNode":{"id":53259,"name":"CheckpointingFacet","nameLocations":["10730:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10730:18:88"},"referencedDeclaration":39870,"src":"10730:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10770:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53263,"nodeType":"UserDefinedTypeName","pathNode":{"id":53262,"name":"CheckpointingFacet","nameLocations":["10774:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10774:18:88"},"referencedDeclaration":39870,"src":"10774:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10770:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10730:64:88"},{"assignments":[53269],"declarations":[{"constant":false,"id":53269,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"10823:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10804:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53268,"nodeType":"UserDefinedTypeName","pathNode":{"id":53267,"name":"XnetMessagingFacet","nameLocations":["10804:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10804:18:88"},"referencedDeclaration":40144,"src":"10804:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10844:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53271,"nodeType":"UserDefinedTypeName","pathNode":{"id":53270,"name":"XnetMessagingFacet","nameLocations":["10848:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10848:18:88"},"referencedDeclaration":40144,"src":"10848:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10844:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10804:64:88"},{"assignments":[53277],"declarations":[{"constant":false,"id":53277,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"10899:20:88","nodeType":"VariableDeclaration","scope":53508,"src":"10878:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53276,"nodeType":"UserDefinedTypeName","pathNode":{"id":53275,"name":"TopDownFinalityFacet","nameLocations":["10878:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10878:20:88"},"referencedDeclaration":40071,"src":"10878:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10922:24:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53279,"nodeType":"UserDefinedTypeName","pathNode":{"id":53278,"name":"TopDownFinalityFacet","nameLocations":["10926:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10926:20:88"},"referencedDeclaration":40071,"src":"10926:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"10878:70:88"},{"assignments":[53285],"declarations":[{"constant":false,"id":53285,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"10978:19:88","nodeType":"VariableDeclaration","scope":53508,"src":"10958:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53284,"nodeType":"UserDefinedTypeName","pathNode":{"id":53283,"name":"BottomUpRouterFacet","nameLocations":["10958:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"10958:19:88"},"referencedDeclaration":39601,"src":"10958:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53290,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11000:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53287,"nodeType":"UserDefinedTypeName","pathNode":{"id":53286,"name":"BottomUpRouterFacet","nameLocations":["11004:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11004:19:88"},"referencedDeclaration":39601,"src":"11004:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"10958:67:88"},{"assignments":[53293],"declarations":[{"constant":false,"id":53293,"mutability":"mutable","name":"manager","nameLocation":"11056:7:88","nodeType":"VariableDeclaration","scope":53508,"src":"11036:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53292,"nodeType":"UserDefinedTypeName","pathNode":{"id":53291,"name":"GatewayManagerFacet","nameLocations":["11036:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11036:19:88"},"referencedDeclaration":38870,"src":"11036:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53298,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11066:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayManagerFacet","nameLocations":["11070:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11070:19:88"},"referencedDeclaration":38870,"src":"11070:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11066:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11036:55:88"},{"assignments":[53301],"declarations":[{"constant":false,"id":53301,"mutability":"mutable","name":"getter","nameLocation":"11120:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11101:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53300,"nodeType":"UserDefinedTypeName","pathNode":{"id":53299,"name":"GatewayGetterFacet","nameLocations":["11101:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11101:18:88"},"referencedDeclaration":38317,"src":"11101:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11129:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53303,"nodeType":"UserDefinedTypeName","pathNode":{"id":53302,"name":"GatewayGetterFacet","nameLocations":["11133:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11133:18:88"},"referencedDeclaration":38317,"src":"11133:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11101:52:88"},{"assignments":[53309],"declarations":[{"constant":false,"id":53309,"mutability":"mutable","name":"messenger","nameLocation":"11185:9:88","nodeType":"VariableDeclaration","scope":53508,"src":"11163:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53308,"nodeType":"UserDefinedTypeName","pathNode":{"id":53307,"name":"GatewayMessengerFacet","nameLocations":["11163:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11163:21:88"},"referencedDeclaration":39235,"src":"11163:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11197:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53311,"nodeType":"UserDefinedTypeName","pathNode":{"id":53310,"name":"GatewayMessengerFacet","nameLocations":["11201:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11201:21:88"},"referencedDeclaration":39235,"src":"11201:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11197:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11163:61:88"},{"assignments":[53317],"declarations":[{"constant":false,"id":53317,"mutability":"mutable","name":"cutter","nameLocation":"11250:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11234:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53316,"nodeType":"UserDefinedTypeName","pathNode":{"id":53315,"name":"DiamondCutFacet","nameLocations":["11234:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11234:15:88"},"referencedDeclaration":36918,"src":"11234:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53322,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11259:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53319,"nodeType":"UserDefinedTypeName","pathNode":{"id":53318,"name":"DiamondCutFacet","nameLocations":["11263:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11263:15:88"},"referencedDeclaration":36918,"src":"11263:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"11234:46:88"},{"assignments":[53325],"declarations":[{"constant":false,"id":53325,"mutability":"mutable","name":"louper","nameLocation":"11308:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11290:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53324,"nodeType":"UserDefinedTypeName","pathNode":{"id":53323,"name":"DiamondLoupeFacet","nameLocations":["11290:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11290:17:88"},"referencedDeclaration":37355,"src":"11290:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11317:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53327,"nodeType":"UserDefinedTypeName","pathNode":{"id":53326,"name":"DiamondLoupeFacet","nameLocations":["11321:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11321:17:88"},"referencedDeclaration":37355,"src":"11321:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11317:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"11290:50:88"},{"assignments":[53336],"declarations":[{"constant":false,"id":53336,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"11378:12:88","nodeType":"VariableDeclaration","scope":53508,"src":"11351:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"IDiamond.FacetCut","nameLocations":["11351:8:88","11360:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11351:17:88"},"referencedDeclaration":40159,"src":"11351:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53335,"nodeType":"ArrayTypeName","src":"11351:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53343,"initialValue":{"arguments":[{"hexValue":"39","id":53341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11417:1:88","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11393:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"IDiamond.FacetCut","nameLocations":["11397:8:88","11406:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11397:17:88"},"referencedDeclaration":40159,"src":"11397:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53339,"nodeType":"ArrayTypeName","src":"11397:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11393:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11351:68:88"},{"expression":{"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53344,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11430:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53346,"indexExpression":{"hexValue":"30","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11443:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11430:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53351,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53261,"src":"11520:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11512:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53349,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:88","typeDescriptions":{}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11512:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53353,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11565:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11574:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11565:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11589:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11565:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53356,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"11629:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53347,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11462:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11471:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11462:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11498:12:88","11557:6:88","11610:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11462:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11448:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11430:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53360,"nodeType":"ExpressionStatement","src":"11430:253:88"},{"expression":{"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53361,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11694:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53363,"indexExpression":{"hexValue":"36","id":53362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:88","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11694:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53368,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53269,"src":"11784:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53366,"name":"address","nodeType":"ElementaryTypeName","src":"11776:7:88","typeDescriptions":{}}},"id":53369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11776:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53370,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11829:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11838:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11829:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11853:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11829:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53373,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"11893:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53364,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11726:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11735:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11726:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11762:12:88","11821:6:88","11874:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11726:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11712:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11694:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53377,"nodeType":"ExpressionStatement","src":"11694:253:88"},{"expression":{"id":53393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53378,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11958:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53380,"indexExpression":{"hexValue":"37","id":53379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:88","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11958:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53385,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53277,"src":"12048:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12040:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53383,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:88","typeDescriptions":{}}},"id":53386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53387,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12095:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12104:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12095:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12119:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12095:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53390,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"12159:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53381,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11990:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11999:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11990:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12026:12:88","12087:6:88","12140:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11990:215:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11976:239:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11958:257:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53394,"nodeType":"ExpressionStatement","src":"11958:257:88"},{"expression":{"id":53410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53395,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12226:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53397,"indexExpression":{"hexValue":"38","id":53396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:88","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12226:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53402,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53285,"src":"12316:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12308:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53400,"name":"address","nodeType":"ElementaryTypeName","src":"12308:7:88","typeDescriptions":{}}},"id":53403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12308:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53404,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12362:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12371:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12362:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12386:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12362:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53407,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"12426:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53398,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12258:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12267:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12258:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12294:12:88","12354:6:88","12407:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12258:213:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53409,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12244:237:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12226:255:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53411,"nodeType":"ExpressionStatement","src":"12226:255:88"},{"expression":{"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53412,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12492:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53414,"indexExpression":{"hexValue":"31","id":53413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12492:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53419,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53293,"src":"12582:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53417,"name":"address","nodeType":"ElementaryTypeName","src":"12574:7:88","typeDescriptions":{}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53421,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12616:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12625:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12616:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12640:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12616:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53424,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12680:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53415,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12524:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12533:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12524:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12560:12:88","12608:6:88","12661:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12524:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12510:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12492:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53428,"nodeType":"ExpressionStatement","src":"12492:231:88"},{"expression":{"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53429,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12734:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53431,"indexExpression":{"hexValue":"32","id":53430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12747:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12734:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53436,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53301,"src":"12824:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53434,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:88","typeDescriptions":{}}},"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53438,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12857:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12866:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12857:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12881:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12857:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53441,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12921:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12766:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12775:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12766:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12802:12:88","12849:6:88","12902:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12766:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12752:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12734:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53445,"nodeType":"ExpressionStatement","src":"12734:229:88"},{"expression":{"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53446,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12974:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53448,"indexExpression":{"hexValue":"33","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12987:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12974:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53453,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53309,"src":"13064:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13056:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53451,"name":"address","nodeType":"ElementaryTypeName","src":"13056:7:88","typeDescriptions":{}}},"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53455,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13100:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13109:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13100:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13124:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13100:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53458,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13164:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13006:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13042:12:88","13092:6:88","13145:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13006:193:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12992:217:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12974:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53462,"nodeType":"ExpressionStatement","src":"12974:235:88"},{"expression":{"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53463,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13220:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53465,"indexExpression":{"hexValue":"34","id":53464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13233:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13220:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53470,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53325,"src":"13310:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13302:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53468,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:88","typeDescriptions":{}}},"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13302:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53472,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13343:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13352:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13343:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13367:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13343:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53475,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13407:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13252:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13261:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13252:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13288:12:88","13335:6:88","13388:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13252:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13238:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13220:228:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53479,"nodeType":"ExpressionStatement","src":"13220:228:88"},{"expression":{"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53480,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13459:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53482,"indexExpression":{"hexValue":"35","id":53481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13472:1:88","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13459:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53487,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53317,"src":"13549:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"13541:7:88","typeDescriptions":{}}},"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13541:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53489,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13582:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13591:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13582:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13606:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13582:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53492,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13646:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13491:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13500:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13491:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13527:12:88","13574:6:88","13627:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13491:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13477:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13459:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53496,"nodeType":"ExpressionStatement","src":"13459:229:88"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53497,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13699:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53501,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13735:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53502,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53253,"src":"13749:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13716:18:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53499,"nodeType":"UserDefinedTypeName","pathNode":{"id":53498,"name":"GatewayDiamond","nameLocations":["13720:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"13720:14:88"},"referencedDeclaration":36170,"src":"13720:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13716:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"13699:57:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53505,"nodeType":"ExpressionStatement","src":"13699:57:88"},{"expression":{"id":53506,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13774:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53258,"id":53507,"nodeType":"Return","src":"13767:21:88"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"10619:20:88","parameters":{"id":53254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53253,"mutability":"mutable","name":"params","nameLocation":"10680:6:88","nodeType":"VariableDeclaration","scope":53509,"src":"10640:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53252,"nodeType":"UserDefinedTypeName","pathNode":{"id":53251,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10640:14:88","10655:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10640:32:88"},"referencedDeclaration":35883,"src":"10640:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10639:48:88"},"returnParameters":{"id":53258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53509,"src":"10704:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53256,"nodeType":"UserDefinedTypeName","pathNode":{"id":53255,"name":"GatewayDiamond","nameLocations":["10704:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"10704:14:88"},"referencedDeclaration":36170,"src":"10704:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"10703:16:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53575,"nodeType":"FunctionDefinition","src":"13801:854:88","nodes":[],"body":{"id":53574,"nodeType":"Block","src":"14009:646:88","nodes":[],"statements":[{"assignments":[53527],"declarations":[{"constant":false,"id":53527,"mutability":"mutable","name":"diamondCut","nameLocation":"14046:10:88","nodeType":"VariableDeclaration","scope":53574,"src":"14019:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53525,"nodeType":"UserDefinedTypeName","pathNode":{"id":53524,"name":"IDiamond.FacetCut","nameLocations":["14019:8:88","14028:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14019:17:88"},"referencedDeclaration":40159,"src":"14019:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53526,"nodeType":"ArrayTypeName","src":"14019:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53534,"initialValue":{"arguments":[{"hexValue":"32","id":53532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14083:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14059:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53529,"nodeType":"UserDefinedTypeName","pathNode":{"id":53528,"name":"IDiamond.FacetCut","nameLocations":["14063:8:88","14072:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14063:17:88"},"referencedDeclaration":40159,"src":"14063:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53530,"nodeType":"ArrayTypeName","src":"14063:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14059:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14019:66:88"},{"expression":{"id":53547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14096:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53537,"indexExpression":{"hexValue":"30","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14096:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53540,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53514,"src":"14176:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53541,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14214:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14223:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14214:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14238:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14214:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53544,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"14278:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53538,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:88","14206:6:88","14259:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:184:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53546,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:208:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14096:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53548,"nodeType":"ExpressionStatement","src":"14096:224:88"},{"expression":{"id":53561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53549,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14331:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53551,"indexExpression":{"hexValue":"31","id":53550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14331:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53554,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"14411:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53555,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14450:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14459:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14450:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14474:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14450:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53558,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"14514:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53552,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14361:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14370:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14361:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14397:12:88","14442:6:88","14495:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14361:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14347:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14331:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53562,"nodeType":"ExpressionStatement","src":"14331:226:88"},{"expression":{"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53563,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14568:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53567,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14603:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53568,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53512,"src":"14615:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14580:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53565,"nodeType":"UserDefinedTypeName","pathNode":{"id":53564,"name":"SubnetActorDiamond","nameLocations":["14584:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14584:18:88"},"referencedDeclaration":36615,"src":"14584:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"14568:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53571,"nodeType":"ExpressionStatement","src":"14568:54:88"},{"expression":{"id":53572,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14639:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53521,"id":53573,"nodeType":"Return","src":"14632:16:88"}]},"functionSelector":"0d8d4acf","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"13810:35:88","parameters":{"id":53517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53512,"mutability":"mutable","name":"params","nameLocation":"13899:6:88","nodeType":"VariableDeclaration","scope":53575,"src":"13855:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53511,"nodeType":"UserDefinedTypeName","pathNode":{"id":53510,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["13855:18:88","13874:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"13855:36:88"},"referencedDeclaration":36253,"src":"13855:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53514,"mutability":"mutable","name":"getterFaucet","nameLocation":"13923:12:88","nodeType":"VariableDeclaration","scope":53575,"src":"13915:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13915:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53516,"mutability":"mutable","name":"managerFaucet","nameLocation":"13953:13:88","nodeType":"VariableDeclaration","scope":53575,"src":"13945:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53515,"name":"address","nodeType":"ElementaryTypeName","src":"13945:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13845:127:88"},"returnParameters":{"id":53521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53575,"src":"13989:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53519,"nodeType":"UserDefinedTypeName","pathNode":{"id":53518,"name":"SubnetActorDiamond","nameLocations":["13989:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"13989:18:88"},"referencedDeclaration":36615,"src":"13989:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"13988:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53710,"nodeType":"FunctionDefinition","src":"14661:1518:88","nodes":[],"body":{"id":53709,"nodeType":"Block","src":"14776:1403:88","nodes":[],"statements":[{"assignments":[53586],"declarations":[{"constant":false,"id":53586,"mutability":"mutable","name":"manager","nameLocation":"14810:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"14786:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53585,"nodeType":"UserDefinedTypeName","pathNode":{"id":53584,"name":"SubnetActorManagerFacet","nameLocations":["14786:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14786:23:88"},"referencedDeclaration":52151,"src":"14786:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53591,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14820:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53588,"nodeType":"UserDefinedTypeName","pathNode":{"id":53587,"name":"SubnetActorManagerFacet","nameLocations":["14824:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14824:23:88"},"referencedDeclaration":52151,"src":"14824:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14820:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"14786:63:88"},{"assignments":[53594],"declarations":[{"constant":false,"id":53594,"mutability":"mutable","name":"getter","nameLocation":"14882:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14859:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53593,"nodeType":"UserDefinedTypeName","pathNode":{"id":53592,"name":"SubnetActorGetterFacet","nameLocations":["14859:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14859:22:88"},"referencedDeclaration":50887,"src":"14859:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53599,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14891:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53596,"nodeType":"UserDefinedTypeName","pathNode":{"id":53595,"name":"SubnetActorGetterFacet","nameLocations":["14895:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14895:22:88"},"referencedDeclaration":50887,"src":"14895:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14891:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"14859:60:88"},{"assignments":[53602],"declarations":[{"constant":false,"id":53602,"mutability":"mutable","name":"louper","nameLocation":"14947:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14929:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53601,"nodeType":"UserDefinedTypeName","pathNode":{"id":53600,"name":"DiamondLoupeFacet","nameLocations":["14929:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14929:17:88"},"referencedDeclaration":37355,"src":"14929:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14956:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"DiamondLoupeFacet","nameLocations":["14960:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14960:17:88"},"referencedDeclaration":37355,"src":"14960:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"14929:50:88"},{"assignments":[53610],"declarations":[{"constant":false,"id":53610,"mutability":"mutable","name":"cutter","nameLocation":"15005:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14989:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"DiamondCutFacet","nameLocations":["14989:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14989:15:88"},"referencedDeclaration":36918,"src":"14989:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15014:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53612,"nodeType":"UserDefinedTypeName","pathNode":{"id":53611,"name":"DiamondCutFacet","nameLocations":["15018:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"15018:15:88"},"referencedDeclaration":36918,"src":"15018:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"14989:46:88"},{"assignments":[53621],"declarations":[{"constant":false,"id":53621,"mutability":"mutable","name":"diamondCut","nameLocation":"15073:10:88","nodeType":"VariableDeclaration","scope":53709,"src":"15046:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53619,"nodeType":"UserDefinedTypeName","pathNode":{"id":53618,"name":"IDiamond.FacetCut","nameLocations":["15046:8:88","15055:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15046:17:88"},"referencedDeclaration":40159,"src":"15046:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53620,"nodeType":"ArrayTypeName","src":"15046:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53628,"initialValue":{"arguments":[{"hexValue":"34","id":53626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15110:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15086:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53623,"nodeType":"UserDefinedTypeName","pathNode":{"id":53622,"name":"IDiamond.FacetCut","nameLocations":["15090:8:88","15099:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15090:17:88"},"referencedDeclaration":40159,"src":"15090:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53624,"nodeType":"ArrayTypeName","src":"15090:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15086:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15046:66:88"},{"expression":{"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53629,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15123:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53631,"indexExpression":{"hexValue":"30","id":53630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15134:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15123:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53636,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53586,"src":"15211:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53634,"name":"address","nodeType":"ElementaryTypeName","src":"15203:7:88","typeDescriptions":{}}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15203:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53638,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15245:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15254:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15245:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15269:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15245:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53641,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"15309:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53632,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15153:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15162:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15153:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15189:12:88","15237:6:88","15290:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15153:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15139:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15123:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53645,"nodeType":"ExpressionStatement","src":"15123:229:88"},{"expression":{"id":53661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53646,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15363:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53648,"indexExpression":{"hexValue":"31","id":53647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15374:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15363:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53653,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15451:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15443:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53651,"name":"address","nodeType":"ElementaryTypeName","src":"15443:7:88","typeDescriptions":{}}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15443:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53655,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15484:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15493:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15484:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15508:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15484:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53658,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"15548:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53649,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15393:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15402:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15393:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15429:12:88","15476:6:88","15529:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15393:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15379:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15363:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53662,"nodeType":"ExpressionStatement","src":"15363:227:88"},{"expression":{"id":53678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53663,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15601:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53665,"indexExpression":{"hexValue":"32","id":53664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15612:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15601:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53670,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53610,"src":"15689:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15681:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53668,"name":"address","nodeType":"ElementaryTypeName","src":"15681:7:88","typeDescriptions":{}}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15681:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53672,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15722:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15722:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15746:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15722:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53675,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"15786:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53666,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15631:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15640:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15631:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15667:12:88","15714:6:88","15767:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15631:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15617:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15601:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53679,"nodeType":"ExpressionStatement","src":"15601:227:88"},{"expression":{"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53680,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15839:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53682,"indexExpression":{"hexValue":"33","id":53681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15850:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15839:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53687,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53602,"src":"15927:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15919:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53685,"name":"address","nodeType":"ElementaryTypeName","src":"15919:7:88","typeDescriptions":{}}},"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15919:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53689,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15960:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15960:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15984:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15960:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53692,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"16024:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53683,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15869:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15878:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15869:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15905:12:88","15952:6:88","16005:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15869:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15855:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15839:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53696,"nodeType":"ExpressionStatement","src":"15839:226:88"},{"assignments":[53699],"declarations":[{"constant":false,"id":53699,"mutability":"mutable","name":"diamond","nameLocation":"16095:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"16076:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53698,"nodeType":"UserDefinedTypeName","pathNode":{"id":53697,"name":"SubnetActorDiamond","nameLocations":["16076:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16076:18:88"},"referencedDeclaration":36615,"src":"16076:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53706,"initialValue":{"arguments":[{"id":53703,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"16128:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53704,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53578,"src":"16140:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16105:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53701,"nodeType":"UserDefinedTypeName","pathNode":{"id":53700,"name":"SubnetActorDiamond","nameLocations":["16109:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16109:18:88"},"referencedDeclaration":36615,"src":"16109:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16105:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"16076:71:88"},{"expression":{"id":53707,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53699,"src":"16165:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53583,"id":53708,"nodeType":"Return","src":"16158:14:88"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14670:17:88","parameters":{"id":53579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53578,"mutability":"mutable","name":"params","nameLocation":"14732:6:88","nodeType":"VariableDeclaration","scope":53710,"src":"14688:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14688:18:88","14707:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14688:36:88"},"referencedDeclaration":36253,"src":"14688:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"14687:52:88"},"returnParameters":{"id":53583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53710,"src":"14756:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53581,"nodeType":"UserDefinedTypeName","pathNode":{"id":53580,"name":"SubnetActorDiamond","nameLocations":["14756:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14756:18:88"},"referencedDeclaration":36615,"src":"14756:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14755:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53739,"nodeType":"FunctionDefinition","src":"16185:522:88","nodes":[],"body":{"id":53738,"nodeType":"Block","src":"16429:278:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":53727,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"16470:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53728,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53715,"src":"16499:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53729,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53717,"src":"16523:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53730,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53719,"src":"16561:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53731,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"16589:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53732,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53723,"src":"16615:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53733,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"16648:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16663:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"16648:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16687:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53726,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53943,"src":"16439:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50165_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:261:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53737,"nodeType":"ExpressionStatement","src":"16439:261:88"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16194:17:88","parameters":{"id":53724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53712,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16229:15:88","nodeType":"VariableDeclaration","scope":53739,"src":"16221:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53711,"name":"address","nodeType":"ElementaryTypeName","src":"16221:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53715,"mutability":"mutable","name":"_consensus","nameLocation":"16268:10:88","nodeType":"VariableDeclaration","scope":53739,"src":"16254:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"ConsensusType","nameLocations":["16254:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16254:13:88"},"referencedDeclaration":37359,"src":"16254:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53717,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16296:24:88","nodeType":"VariableDeclaration","scope":53739,"src":"16288:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53716,"name":"uint256","nodeType":"ElementaryTypeName","src":"16288:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53719,"mutability":"mutable","name":"_minValidators","nameLocation":"16337:14:88","nodeType":"VariableDeclaration","scope":53739,"src":"16330:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53718,"name":"uint64","nodeType":"ElementaryTypeName","src":"16330:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53721,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16368:12:88","nodeType":"VariableDeclaration","scope":53739,"src":"16361:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53720,"name":"uint64","nodeType":"ElementaryTypeName","src":"16361:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53723,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16396:19:88","nodeType":"VariableDeclaration","scope":53739,"src":"16390:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53722,"name":"uint8","nodeType":"ElementaryTypeName","src":"16390:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16211:210:88"},"returnParameters":{"id":53725,"nodeType":"ParameterList","parameters":[],"src":"16429:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53943,"nodeType":"FunctionDefinition","src":"16713:2630:88","nodes":[],"body":{"id":53942,"nodeType":"Block","src":"17036:2307:88","nodes":[],"statements":[{"assignments":[53762],"declarations":[{"constant":false,"id":53762,"mutability":"mutable","name":"_parentId","nameLocation":"17062:9:88","nodeType":"VariableDeclaration","scope":53942,"src":"17046:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53761,"nodeType":"UserDefinedTypeName","pathNode":{"id":53760,"name":"SubnetID","nameLocations":["17046:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"17046:8:88"},"referencedDeclaration":50077,"src":"17046:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53771,"initialValue":{"arguments":[{"id":53764,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17083:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17114:1:88","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":53767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17100:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53766,"nodeType":"ArrayTypeName","src":"17104:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53763,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"17074:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"17046:71:88"},{"expression":{"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53772,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17128:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17140:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"SubnetActorManagerFacet","nameLocations":["17144:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"17144:23:88"},"referencedDeclaration":52151,"src":"17144:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17140:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"17128:41:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53778,"nodeType":"ExpressionStatement","src":"17128:41:88"},{"expression":{"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53779,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17179:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17190:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53781,"nodeType":"UserDefinedTypeName","pathNode":{"id":53780,"name":"SubnetActorGetterFacet","nameLocations":["17194:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"17194:22:88"},"referencedDeclaration":50887,"src":"17194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17190:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"17179:39:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53785,"nodeType":"ExpressionStatement","src":"17179:39:88"},{"expression":{"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53786,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17228:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17239:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53788,"nodeType":"UserDefinedTypeName","pathNode":{"id":53787,"name":"DiamondCutFacet","nameLocations":["17243:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"17243:15:88"},"referencedDeclaration":36918,"src":"17243:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17239:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"17228:32:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53792,"nodeType":"ExpressionStatement","src":"17228:32:88"},{"expression":{"id":53798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53793,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"17270:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17281:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53795,"nodeType":"UserDefinedTypeName","pathNode":{"id":53794,"name":"DiamondLoupeFacet","nameLocations":["17285:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"17285:17:88"},"referencedDeclaration":37355,"src":"17285:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17281:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"17270:34:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53799,"nodeType":"ExpressionStatement","src":"17270:34:88"},{"assignments":[53805],"declarations":[{"constant":false,"id":53805,"mutability":"mutable","name":"diamondCut","nameLocation":"17342:10:88","nodeType":"VariableDeclaration","scope":53942,"src":"17315:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53803,"nodeType":"UserDefinedTypeName","pathNode":{"id":53802,"name":"IDiamond.FacetCut","nameLocations":["17315:8:88","17324:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17315:17:88"},"referencedDeclaration":40159,"src":"17315:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53804,"nodeType":"ArrayTypeName","src":"17315:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53812,"initialValue":{"arguments":[{"hexValue":"34","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17379:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17355:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53807,"nodeType":"UserDefinedTypeName","pathNode":{"id":53806,"name":"IDiamond.FacetCut","nameLocations":["17359:8:88","17368:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17359:17:88"},"referencedDeclaration":40159,"src":"17359:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53808,"nodeType":"ArrayTypeName","src":"17359:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17355:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17315:66:88"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17392:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"30","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17403:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17392:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17480:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17472:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17472:7:88","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17472:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17516:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17516:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17540:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17516:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"17580:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17422:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17431:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17422:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17458:12:88","17508:6:88","17561:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17422:191:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17408:215:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17392:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17392:231:88"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17634:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"31","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17645:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17634:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17722:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17714:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17714:7:88","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17757:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17766:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17757:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17781:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17757:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"17821:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17664:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17673:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17664:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17700:12:88","17749:6:88","17802:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17664:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17650:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17634:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17634:229:88"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17874:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"32","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17885:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17874:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17962:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17954:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"17954:7:88","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17954:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17997:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18006:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17997:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18021:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17997:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"18061:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17904:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17904:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17940:12:88","17989:6:88","18042:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17904:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17890:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17874:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17874:229:88"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18114:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"33","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18125:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18114:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"18202:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18194:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18194:7:88","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18194:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18237:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18246:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18237:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18261:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18237:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"18301:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18144:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18153:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18144:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18180:12:88","18229:6:88","18282:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18144:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18130:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18114:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18114:229:88"},{"expression":{"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53881,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"18354:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53885,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18402:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":53888,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53762,"src":"18491:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53889,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"18534:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53890,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18578:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53891,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"18631:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53892,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53748,"src":"18688:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53893,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53750,"src":"18741:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53894,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18791:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53895,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53757,"src":"18851:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":53896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18903:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":53897,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53755,"src":"18939:15:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53898,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"18988:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"19041:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19060:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"19041:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19041:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53886,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"18426:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18445:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"18426:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18481:8:88","18518:14:88","18567:9:88","18606:23:88","18673:13:88","18720:19:88","18771:18:88","18828:21:88","18891:10:88","18923:14:88","18972:14:88","19027:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"18426:657:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18366:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53883,"nodeType":"UserDefinedTypeName","pathNode":{"id":53882,"name":"SubnetActorDiamond","nameLocations":["18370:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18370:18:88"},"referencedDeclaration":36615,"src":"18370:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18366:727:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"18354:739:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53905,"nodeType":"ExpressionStatement","src":"18354:739:88"},{"expression":{"id":53913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53906,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19104:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53910,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19148:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19140:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53908,"name":"address","nodeType":"ElementaryTypeName","src":"19140:7:88","typeDescriptions":{}}},"id":53911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19140:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53907,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"19116:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19116:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"19104:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53914,"nodeType":"ExpressionStatement","src":"19104:55:88"},{"expression":{"id":53922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53915,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"19169:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53919,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19211:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53917,"name":"address","nodeType":"ElementaryTypeName","src":"19203:7:88","typeDescriptions":{}}},"id":53920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19203:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53916,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"19180:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19180:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"19169:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53923,"nodeType":"ExpressionStatement","src":"19169:53:88"},{"expression":{"id":53931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53924,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"19232:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53928,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19267:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19259:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53926,"name":"address","nodeType":"ElementaryTypeName","src":"19259:7:88","typeDescriptions":{}}},"id":53929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53925,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"19243:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19232:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53932,"nodeType":"ExpressionStatement","src":"19232:46:88"},{"expression":{"id":53940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53933,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"19288:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53937,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19325:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19317:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53935,"name":"address","nodeType":"ElementaryTypeName","src":"19317:7:88","typeDescriptions":{}}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19317:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53934,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"19299:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19299:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"19288:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53941,"nodeType":"ExpressionStatement","src":"19288:48:88"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16722:17:88","parameters":{"id":53758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53741,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16757:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16749:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53740,"name":"address","nodeType":"ElementaryTypeName","src":"16749:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53744,"mutability":"mutable","name":"_consensus","nameLocation":"16796:10:88","nodeType":"VariableDeclaration","scope":53943,"src":"16782:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"ConsensusType","nameLocations":["16782:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16782:13:88"},"referencedDeclaration":37359,"src":"16782:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53746,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16824:24:88","nodeType":"VariableDeclaration","scope":53943,"src":"16816:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"16816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53748,"mutability":"mutable","name":"_minValidators","nameLocation":"16865:14:88","nodeType":"VariableDeclaration","scope":53943,"src":"16858:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53747,"name":"uint64","nodeType":"ElementaryTypeName","src":"16858:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53750,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16896:12:88","nodeType":"VariableDeclaration","scope":53943,"src":"16889:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53749,"name":"uint64","nodeType":"ElementaryTypeName","src":"16889:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53752,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16924:19:88","nodeType":"VariableDeclaration","scope":53943,"src":"16918:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53751,"name":"uint8","nodeType":"ElementaryTypeName","src":"16918:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53755,"mutability":"mutable","name":"_permissionMode","nameLocation":"16968:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16953:30:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"PermissionMode","nameLocations":["16953:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"16953:14:88"},"referencedDeclaration":50165,"src":"16953:14:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53757,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"17000:22:88","nodeType":"VariableDeclaration","scope":53943,"src":"16993:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53756,"name":"uint16","nodeType":"ElementaryTypeName","src":"16993:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16739:289:88"},"returnParameters":{"id":53759,"nodeType":"ParameterList","parameters":[],"src":"17036:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54036,"nodeType":"FunctionDefinition","src":"19349:1021:88","nodes":[],"body":{"id":54035,"nodeType":"Block","src":"19441:929:88","nodes":[],"statements":[{"assignments":[53953],"declarations":[{"constant":false,"id":53953,"mutability":"mutable","name":"mockedManager","nameLocation":"19479:13:88","nodeType":"VariableDeclaration","scope":54035,"src":"19451:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":53952,"nodeType":"UserDefinedTypeName","pathNode":{"id":53951,"name":"SubnetActorManagerFacetMock","nameLocations":["19451:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19451:27:88"},"referencedDeclaration":57957,"src":"19451:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":53958,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19495:31:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"SubnetActorManagerFacetMock","nameLocations":["19499:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19499:27:88"},"referencedDeclaration":57957,"src":"19499:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}},"id":53957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19495:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"19451:77:88"},{"assignments":[53961],"declarations":[{"constant":false,"id":53961,"mutability":"mutable","name":"getter","nameLocation":"19561:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"19538:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53960,"nodeType":"UserDefinedTypeName","pathNode":{"id":53959,"name":"SubnetActorGetterFacet","nameLocations":["19538:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19538:22:88"},"referencedDeclaration":50887,"src":"19538:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19570:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetActorGetterFacet","nameLocations":["19574:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19574:22:88"},"referencedDeclaration":50887,"src":"19574:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19570:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"19538:60:88"},{"assignments":[53972],"declarations":[{"constant":false,"id":53972,"mutability":"mutable","name":"diamondCut","nameLocation":"19636:10:88","nodeType":"VariableDeclaration","scope":54035,"src":"19609:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53970,"nodeType":"UserDefinedTypeName","pathNode":{"id":53969,"name":"IDiamond.FacetCut","nameLocations":["19609:8:88","19618:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19609:17:88"},"referencedDeclaration":40159,"src":"19609:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53971,"nodeType":"ArrayTypeName","src":"19609:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53979,"initialValue":{"arguments":[{"hexValue":"32","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19673:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19649:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53974,"nodeType":"UserDefinedTypeName","pathNode":{"id":53973,"name":"IDiamond.FacetCut","nameLocations":["19653:8:88","19662:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19653:17:88"},"referencedDeclaration":40159,"src":"19653:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53975,"nodeType":"ArrayTypeName","src":"19653:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19649:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19609:66:88"},{"expression":{"id":53995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53980,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19686:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53982,"indexExpression":{"hexValue":"30","id":53981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19686:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53987,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"19774:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}],"id":53986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19766:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53985,"name":"address","nodeType":"ElementaryTypeName","src":"19766:7:88","typeDescriptions":{}}},"id":53988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19766:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53989,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19814:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19823:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"19814:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19838:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"19814:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53992,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"19878:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53983,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19716:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19716:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19752:12:88","19806:6:88","19859:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19716:201:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19702:225:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19686:241:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53996,"nodeType":"ExpressionStatement","src":"19686:241:88"},{"expression":{"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53997,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19938:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53999,"indexExpression":{"hexValue":"31","id":53998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19938:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54004,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53961,"src":"20026:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":54003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20018:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54002,"name":"address","nodeType":"ElementaryTypeName","src":"20018:7:88","typeDescriptions":{}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20018:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54006,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20059:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20068:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20059:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20083:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20059:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54009,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"20123:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54000,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19968:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19977:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19968:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20004:12:88","20051:6:88","20104:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19968:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19954:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19938:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54013,"nodeType":"ExpressionStatement","src":"19938:227:88"},{"assignments":[54018],"declarations":[{"constant":false,"id":54018,"mutability":"mutable","name":"params","nameLocation":"20220:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"20176:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["20176:18:88","20195:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"20176:36:88"},"referencedDeclaration":36253,"src":"20176:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54022,"initialValue":{"arguments":[{"id":54020,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"20265:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54019,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"20229:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20229:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"20176:92:88"},{"assignments":[54025],"declarations":[{"constant":false,"id":54025,"mutability":"mutable","name":"d","nameLocation":"20298:1:88","nodeType":"VariableDeclaration","scope":54035,"src":"20279:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54024,"nodeType":"UserDefinedTypeName","pathNode":{"id":54023,"name":"SubnetActorDiamond","nameLocations":["20279:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20279:18:88"},"referencedDeclaration":36615,"src":"20279:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54032,"initialValue":{"arguments":[{"id":54029,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"20325:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54030,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54018,"src":"20337:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20302:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54027,"nodeType":"UserDefinedTypeName","pathNode":{"id":54026,"name":"SubnetActorDiamond","nameLocations":["20306:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20306:18:88"},"referencedDeclaration":36615,"src":"20306:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"20279:65:88"},{"expression":{"id":54033,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54025,"src":"20362:1:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53950,"id":54034,"nodeType":"Return","src":"20355:8:88"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"19358:34:88","parameters":{"id":53946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53945,"mutability":"mutable","name":"gw","nameLocation":"19401:2:88","nodeType":"VariableDeclaration","scope":54036,"src":"19393:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53944,"name":"address","nodeType":"ElementaryTypeName","src":"19393:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19392:12:88"},"returnParameters":{"id":53950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54036,"src":"19421:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetActorDiamond","nameLocations":["19421:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"19421:18:88"},"referencedDeclaration":36615,"src":"19421:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"19420:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54178,"nodeType":"FunctionDefinition","src":"20422:1703:88","nodes":[],"body":{"id":54177,"nodeType":"Block","src":"20560:1565:88","nodes":[],"statements":[{"assignments":[54050],"declarations":[{"constant":false,"id":54050,"mutability":"mutable","name":"diamondCut","nameLocation":"20597:10:88","nodeType":"VariableDeclaration","scope":54177,"src":"20570:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54048,"nodeType":"UserDefinedTypeName","pathNode":{"id":54047,"name":"IDiamond.FacetCut","nameLocations":["20570:8:88","20579:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20570:17:88"},"referencedDeclaration":40159,"src":"20570:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54049,"nodeType":"ArrayTypeName","src":"20570:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54057,"initialValue":{"arguments":[{"hexValue":"34","id":54055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20610:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54052,"nodeType":"UserDefinedTypeName","pathNode":{"id":54051,"name":"IDiamond.FacetCut","nameLocations":["20614:8:88","20623:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20614:17:88"},"referencedDeclaration":40159,"src":"20614:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54053,"nodeType":"ArrayTypeName","src":"20614:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20610:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20570:66:88"},{"assignments":[54060],"declarations":[{"constant":false,"id":54060,"mutability":"mutable","name":"regCutFacet","nameLocation":"20663:11:88","nodeType":"VariableDeclaration","scope":54177,"src":"20647:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54059,"nodeType":"UserDefinedTypeName","pathNode":{"id":54058,"name":"DiamondCutFacet","nameLocations":["20647:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20647:15:88"},"referencedDeclaration":36918,"src":"20647:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20677:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54062,"nodeType":"UserDefinedTypeName","pathNode":{"id":54061,"name":"DiamondCutFacet","nameLocations":["20681:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20681:15:88"},"referencedDeclaration":36918,"src":"20681:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20677:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"20647:51:88"},{"assignments":[54068],"declarations":[{"constant":false,"id":54068,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"20726:13:88","nodeType":"VariableDeclaration","scope":54177,"src":"20708:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54067,"nodeType":"UserDefinedTypeName","pathNode":{"id":54066,"name":"DiamondLoupeFacet","nameLocations":["20708:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20708:17:88"},"referencedDeclaration":37355,"src":"20708:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54073,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20742:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54070,"nodeType":"UserDefinedTypeName","pathNode":{"id":54069,"name":"DiamondLoupeFacet","nameLocations":["20746:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20746:17:88"},"referencedDeclaration":37355,"src":"20746:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20742:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"20708:57:88"},{"assignments":[54076],"declarations":[{"constant":false,"id":54076,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"20795:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20775:34:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54075,"nodeType":"UserDefinedTypeName","pathNode":{"id":54074,"name":"RegisterSubnetFacet","nameLocations":["20775:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20775:19:88"},"referencedDeclaration":52279,"src":"20775:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20812:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54078,"nodeType":"UserDefinedTypeName","pathNode":{"id":54077,"name":"RegisterSubnetFacet","nameLocations":["20816:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20816:19:88"},"referencedDeclaration":52279,"src":"20816:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"20775:62:88"},{"assignments":[54084],"declarations":[{"constant":false,"id":54084,"mutability":"mutable","name":"regGetterFacet","nameLocation":"20865:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20847:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54083,"nodeType":"UserDefinedTypeName","pathNode":{"id":54082,"name":"SubnetGetterFacet","nameLocations":["20847:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20847:17:88"},"referencedDeclaration":52517,"src":"20847:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20882:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54086,"nodeType":"UserDefinedTypeName","pathNode":{"id":54085,"name":"SubnetGetterFacet","nameLocations":["20886:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20886:17:88"},"referencedDeclaration":52517,"src":"20886:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}},"id":54088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20882:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"20847:58:88"},{"expression":{"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54090,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"20916:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54092,"indexExpression":{"hexValue":"30","id":54091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20927:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20916:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54097,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54068,"src":"21004:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20996:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54095,"name":"address","nodeType":"ElementaryTypeName","src":"20996:7:88","typeDescriptions":{}}},"id":54098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20996:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54099,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21044:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21053:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21044:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21068:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21044:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54102,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"21108:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54093,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20946:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20955:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20946:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20982:12:88","21036:6:88","21089:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20946:200:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20932:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20916:240:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54106,"nodeType":"ExpressionStatement","src":"20916:240:88"},{"expression":{"id":54122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54107,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21166:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54109,"indexExpression":{"hexValue":"31","id":54108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21177:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21166:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54114,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54060,"src":"21254:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21246:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54112,"name":"address","nodeType":"ElementaryTypeName","src":"21246:7:88","typeDescriptions":{}}},"id":54115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21246:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54116,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21292:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21301:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21292:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21316:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21292:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54119,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"21356:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54110,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21196:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21205:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21196:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21232:12:88","21284:6:88","21337:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21196:198:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21182:222:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21166:238:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54123,"nodeType":"ExpressionStatement","src":"21166:238:88"},{"expression":{"id":54139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54124,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21414:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54126,"indexExpression":{"hexValue":"32","id":54125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21425:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21414:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54131,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54076,"src":"21502:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}],"id":54130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21494:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54129,"name":"address","nodeType":"ElementaryTypeName","src":"21494:7:88","typeDescriptions":{}}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54133,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21543:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21552:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21543:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21567:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21543:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54136,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"21607:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54127,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21453:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21444:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21480:12:88","21535:6:88","21588:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21444:206:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21430:230:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21414:246:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54140,"nodeType":"ExpressionStatement","src":"21414:246:88"},{"expression":{"id":54156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54141,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21670:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54143,"indexExpression":{"hexValue":"33","id":54142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21681:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21670:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54148,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54084,"src":"21758:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}],"id":54147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21750:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54146,"name":"address","nodeType":"ElementaryTypeName","src":"21750:7:88","typeDescriptions":{}}},"id":54149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21750:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54150,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21799:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21808:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21799:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21823:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21799:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54153,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"21863:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54144,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21700:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21709:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21700:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21736:12:88","21791:6:88","21844:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21700:212:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21686:236:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21670:252:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54157,"nodeType":"ExpressionStatement","src":"21670:252:88"},{"assignments":[54160],"declarations":[{"constant":false,"id":54160,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"21955:17:88","nodeType":"VariableDeclaration","scope":54177,"src":"21933:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54159,"nodeType":"UserDefinedTypeName","pathNode":{"id":54158,"name":"SubnetRegistryDiamond","nameLocations":["21933:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21933:21:88"},"referencedDeclaration":36853,"src":"21933:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54167,"initialValue":{"arguments":[{"id":54164,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"22001:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54165,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54039,"src":"22013:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21975:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54162,"nodeType":"UserDefinedTypeName","pathNode":{"id":54161,"name":"SubnetRegistryDiamond","nameLocations":["21979:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21979:21:88"},"referencedDeclaration":36853,"src":"21979:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21975:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"21933:87:88"},{"eventCall":{"arguments":[{"arguments":[{"id":54171,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22065:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22057:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54169,"name":"address","nodeType":"ElementaryTypeName","src":"22057:7:88","typeDescriptions":{}}},"id":54172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22057:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54168,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53071,"src":"22035:21:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54174,"nodeType":"EmitStatement","src":"22030:54:88"},{"expression":{"id":54175,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22101:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54044,"id":54176,"nodeType":"Return","src":"22094:24:88"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"20431:20:88","parameters":{"id":54040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54039,"mutability":"mutable","name":"params","nameLocation":"20508:6:88","nodeType":"VariableDeclaration","scope":54178,"src":"20461:53:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54038,"nodeType":"UserDefinedTypeName","pathNode":{"id":54037,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["20461:21:88","20483:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"20461:39:88"},"referencedDeclaration":36652,"src":"20461:39:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"20451:69:88"},"returnParameters":{"id":54044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54178,"src":"20537:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54042,"nodeType":"UserDefinedTypeName","pathNode":{"id":54041,"name":"SubnetRegistryDiamond","nameLocations":["20537:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"20537:21:88"},"referencedDeclaration":36853,"src":"20537:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"20536:23:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54207,"nodeType":"FunctionDefinition","src":"22131:190:88","nodes":[],"body":{"id":54206,"nodeType":"Block","src":"22212:109:88","nodes":[],"statements":[{"body":{"id":54202,"nodeType":"Block","src":"22253:42:88","statements":[{"expression":{"id":54200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54196,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22267:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54197,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54181,"src":"22274:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54199,"indexExpression":{"id":54198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22282:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22274:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22267:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54201,"nodeType":"ExpressionStatement","src":"22267:17:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22241:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"22241:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54203,"initializationExpression":{"assignments":[54187],"declarations":[{"constant":false,"id":54187,"mutability":"mutable","name":"i","nameLocation":"22234:1:88","nodeType":"VariableDeclaration","scope":54203,"src":"22227:8:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54186,"name":"uint64","nodeType":"ElementaryTypeName","src":"22227:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54189,"initialValue":{"hexValue":"30","id":54188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22238:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22227:12:88"},"loopExpression":{"expression":{"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22248:3:88","subExpression":{"id":54193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22248:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54195,"nodeType":"ExpressionStatement","src":"22248:3:88"},"nodeType":"ForStatement","src":"22222:73:88"},{"expression":{"id":54204,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22311:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54185,"id":54205,"nodeType":"Return","src":"22304:10:88"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"22140:11:88","parameters":{"id":54182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54181,"mutability":"mutable","name":"weights","nameLocation":"22169:7:88","nodeType":"VariableDeclaration","scope":54207,"src":"22152:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54179,"name":"uint256","nodeType":"ElementaryTypeName","src":"22152:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54180,"nodeType":"ArrayTypeName","src":"22152:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"22151:26:88"},"returnParameters":{"id":54185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54184,"mutability":"mutable","name":"sum","nameLocation":"22207:3:88","nodeType":"VariableDeclaration","scope":54207,"src":"22199:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54183,"name":"uint256","nodeType":"ElementaryTypeName","src":"22199:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22198:13:88"},"scope":55375,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54382,"nodeType":"FunctionDefinition","src":"22327:933:88","nodes":[],"body":{"id":54381,"nodeType":"Block","src":"22430:830:88","nodes":[],"statements":[{"expression":{"id":54224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54217,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22440:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22470:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22453:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54219,"nodeType":"UserDefinedTypeName","pathNode":{"id":54218,"name":"FvmAddress","nameLocations":["22457:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22457:10:88"},"referencedDeclaration":49998,"src":"22457:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54220,"nodeType":"ArrayTypeName","src":"22457:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"22440:32:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54225,"nodeType":"ExpressionStatement","src":"22440:32:88"},{"expression":{"id":54236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54226,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22482:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54228,"indexExpression":{"hexValue":"30","id":54227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22493:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22482:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22528:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22520:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22523:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22520:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22520:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54229,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22498:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22515:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22498:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22498:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22482:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54237,"nodeType":"ExpressionStatement","src":"22482:51:88"},{"expression":{"id":54248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22543:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54240,"indexExpression":{"hexValue":"31","id":54239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22554:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22543:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54243,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22581:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22584:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22581:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22581:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54241,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22559:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22576:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22559:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22559:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22543:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54249,"nodeType":"ExpressionStatement","src":"22543:51:88"},{"expression":{"id":54260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54250,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22604:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54252,"indexExpression":{"hexValue":"32","id":54251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22615:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22604:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22650:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22642:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22645:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22642:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54253,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22620:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22637:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22620:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22620:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22604:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54261,"nodeType":"ExpressionStatement","src":"22604:51:88"},{"expression":{"id":54268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54262,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22666:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22692:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22678:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54263,"name":"address","nodeType":"ElementaryTypeName","src":"22682:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54264,"nodeType":"ArrayTypeName","src":"22682:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22678:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"22666:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54269,"nodeType":"ExpressionStatement","src":"22666:28:88"},{"expression":{"id":54277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54270,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22704:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54272,"indexExpression":{"hexValue":"30","id":54271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22714:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22704:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22727:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22719:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22722:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22719:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22719:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22704:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54278,"nodeType":"ExpressionStatement","src":"22704:27:88"},{"expression":{"id":54286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54279,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22741:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54281,"indexExpression":{"hexValue":"31","id":54280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22741:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22764:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54282,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22756:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22759:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22756:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22756:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22741:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54287,"nodeType":"ExpressionStatement","src":"22741:27:88"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54288,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22778:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54290,"indexExpression":{"hexValue":"32","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22788:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22778:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22801:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54291,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22793:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22796:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22793:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22793:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22778:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54296,"nodeType":"ExpressionStatement","src":"22778:27:88"},{"assignments":[54301],"declarations":[{"constant":false,"id":54301,"mutability":"mutable","name":"weights","nameLocation":"22833:7:88","nodeType":"VariableDeclaration","scope":54381,"src":"22816:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54299,"name":"uint256","nodeType":"ElementaryTypeName","src":"22816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54300,"nodeType":"ArrayTypeName","src":"22816:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54307,"initialValue":{"arguments":[{"hexValue":"33","id":54305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22857:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22843:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54302,"name":"uint256","nodeType":"ElementaryTypeName","src":"22847:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54303,"nodeType":"ArrayTypeName","src":"22847:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22816:43:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22886:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22878:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22881:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22878:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22878:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22892:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22870:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22873:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22870:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22870:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54317,"nodeType":"ExpressionStatement","src":"22870:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22920:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54321,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22912:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22915:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22912:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54318,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22904:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22907:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22904:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22904:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54327,"nodeType":"ExpressionStatement","src":"22904:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22954:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22946:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22949:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22946:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22946:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22960:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54328,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22938:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22941:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22938:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54337,"nodeType":"ExpressionStatement","src":"22938:24:88"},{"expression":{"id":54342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54338,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22973:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54340,"indexExpression":{"hexValue":"30","id":54339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22981:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22973:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22986:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22973:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54343,"nodeType":"ExpressionStatement","src":"22973:16:88"},{"expression":{"id":54348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54344,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22999:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54346,"indexExpression":{"hexValue":"31","id":54345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23007:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22999:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23012:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22999:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54349,"nodeType":"ExpressionStatement","src":"22999:16:88"},{"expression":{"id":54354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54350,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"23025:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54352,"indexExpression":{"hexValue":"32","id":54351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23033:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23025:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23038:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23025:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54355,"nodeType":"ExpressionStatement","src":"23025:16:88"},{"assignments":[54358],"declarations":[{"constant":false,"id":54358,"mutability":"mutable","name":"finality","nameLocation":"23074:8:88","nodeType":"VariableDeclaration","scope":54381,"src":"23052:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54357,"nodeType":"UserDefinedTypeName","pathNode":{"id":54356,"name":"ParentFinality","nameLocations":["23052:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"23052:14:88"},"referencedDeclaration":49918,"src":"23052:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54367,"initialValue":{"arguments":[{"expression":{"id":54360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23109:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:6:88","memberName":"number","nodeType":"MemberAccess","src":"23109:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23142:1:88","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":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23134:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23134:7:88","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23134:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54359,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"23085:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23101:6:88","23123:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"23085:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"23052:94:88"},{"expression":{"arguments":[{"expression":{"id":54371,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"23166:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23177:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"23166:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54368,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23157:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23160:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23157:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23157:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54374,"nodeType":"ExpressionStatement","src":"23157:33:88"},{"expression":{"arguments":[{"id":54378,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"23244:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54375,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"23200:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23223:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"23200:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54380,"nodeType":"ExpressionStatement","src":"23200:53:88"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"22336:15:88","parameters":{"id":54208,"nodeType":"ParameterList","parameters":[],"src":"22351:2:88"},"returnParameters":{"id":54216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54212,"mutability":"mutable","name":"validators","nameLocation":"22390:10:88","nodeType":"VariableDeclaration","scope":54382,"src":"22370:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54210,"nodeType":"UserDefinedTypeName","pathNode":{"id":54209,"name":"FvmAddress","nameLocations":["22370:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22370:10:88"},"referencedDeclaration":49998,"src":"22370:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54211,"nodeType":"ArrayTypeName","src":"22370:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54215,"mutability":"mutable","name":"addresses","nameLocation":"22419:9:88","nodeType":"VariableDeclaration","scope":54382,"src":"22402:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54213,"name":"address","nodeType":"ElementaryTypeName","src":"22402:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54214,"nodeType":"ArrayTypeName","src":"22402:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"22369:60:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54475,"nodeType":"FunctionDefinition","src":"23266:1297:88","nodes":[],"body":{"id":54474,"nodeType":"Block","src":"23350:1213:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54392,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"23375:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54393,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23402:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54391,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"23360:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23360:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54395,"nodeType":"ExpressionStatement","src":"23360:46:88"},{"assignments":[54398],"declarations":[{"constant":false,"id":54398,"mutability":"mutable","name":"crossMsg","nameLocation":"23433:8:88","nodeType":"VariableDeclaration","scope":54474,"src":"23417:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54397,"nodeType":"UserDefinedTypeName","pathNode":{"id":54396,"name":"CrossMsg","nameLocations":["23417:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"23417:8:88"},"referencedDeclaration":49974,"src":"23417:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54438,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54406,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23596:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54402,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23555:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23564:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23555:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23581:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23555:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54410,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23659:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54408,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23637:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23654:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23637:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23637:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54401,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23512:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23545:8:88","23625:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23512:173:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54418,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23791:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54414,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23750:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23759:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23750:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23750:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54422,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23851:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54420,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23829:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23846:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23829:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23829:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54413,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23707:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23740:8:88","23817:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23707:167:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54425,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"23899:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23899:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54429,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"23976:11:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24023:1:88","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":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24013:9:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54430,"name":"bytes","nodeType":"ElementaryTypeName","src":"24017:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24013:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54434,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"24048:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54400,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"23476:11:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23506:4:88","23703:2:88","23892:5:88","23942:5:88","23968:6:88","24005:6:88","24043:3:88"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"23476:608:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24107:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54399,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"23444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23467:7:88","24098:7:88"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"23444:679:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"23417:706:88"},{"assignments":[54443],"declarations":[{"constant":false,"id":54443,"mutability":"mutable","name":"msgs","nameLocation":"24151:4:88","nodeType":"VariableDeclaration","scope":54474,"src":"24133:22:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54441,"nodeType":"UserDefinedTypeName","pathNode":{"id":54440,"name":"CrossMsg","nameLocations":["24133:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24133:8:88"},"referencedDeclaration":49974,"src":"24133:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54442,"nodeType":"ArrayTypeName","src":"24133:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54450,"initialValue":{"arguments":[{"hexValue":"31","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24173:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24158:14:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54445,"nodeType":"UserDefinedTypeName","pathNode":{"id":54444,"name":"CrossMsg","nameLocations":["24162:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24162:8:88"},"referencedDeclaration":49974,"src":"24162:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54446,"nodeType":"ArrayTypeName","src":"24162:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24158:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24133:42:88"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24185:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54453,"indexExpression":{"hexValue":"30","id":54452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24190:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24185:7:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54454,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24195:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"24185:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54456,"nodeType":"ExpressionStatement","src":"24185:18:88"},{"expression":{"arguments":[{"expression":{"id":54460,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"24442:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24453:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"24442:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24433:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24436:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"24433:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24433:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54463,"nodeType":"ExpressionStatement","src":"24433:33:88"},{"expression":{"arguments":[{"id":54467,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24516:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54464,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"24476:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24497:18:88","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"24476:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24476:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54469,"nodeType":"ExpressionStatement","src":"24476:45:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54470,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24539:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24548:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"24539:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24539:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54390,"id":54473,"nodeType":"Return","src":"24532:24:88"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"23275:20:88","parameters":{"id":54387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54384,"mutability":"mutable","name":"caller","nameLocation":"23304:6:88","nodeType":"VariableDeclaration","scope":54475,"src":"23296:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54383,"name":"address","nodeType":"ElementaryTypeName","src":"23296:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54386,"mutability":"mutable","name":"src","nameLocation":"23320:3:88","nodeType":"VariableDeclaration","scope":54475,"src":"23312:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54385,"name":"address","nodeType":"ElementaryTypeName","src":"23312:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23295:29:88"},"returnParameters":{"id":54390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54475,"src":"23341:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23341:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23340:9:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54486,"nodeType":"FunctionDefinition","src":"24569:93:88","nodes":[],"body":{"id":54485,"nodeType":"Block","src":"24617:45:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54481,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54477,"src":"24640:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24651:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54480,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"24627:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24627:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54484,"nodeType":"ExpressionStatement","src":"24627:28:88"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24578:12:88","parameters":{"id":54478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54477,"mutability":"mutable","name":"validator","nameLocation":"24599:9:88","nodeType":"VariableDeclaration","scope":54486,"src":"24591:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54476,"name":"address","nodeType":"ElementaryTypeName","src":"24591:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24590:19:88"},"returnParameters":{"id":54479,"nodeType":"ParameterList","parameters":[],"src":"24617:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54569,"nodeType":"FunctionDefinition","src":"24668:610:88","nodes":[],"body":{"id":54568,"nodeType":"Block","src":"24732:546:88","nodes":[],"statements":[{"assignments":[54497],"declarations":[{"constant":false,"id":54497,"mutability":"mutable","name":"validators","nameLocation":"24762:10:88","nodeType":"VariableDeclaration","scope":54568,"src":"24742:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54495,"nodeType":"UserDefinedTypeName","pathNode":{"id":54494,"name":"FvmAddress","nameLocations":["24742:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24742:10:88"},"referencedDeclaration":49998,"src":"24742:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54496,"nodeType":"ArrayTypeName","src":"24742:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54504,"initialValue":{"arguments":[{"hexValue":"31","id":54502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24792:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24775:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54499,"nodeType":"UserDefinedTypeName","pathNode":{"id":54498,"name":"FvmAddress","nameLocations":["24779:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24779:10:88"},"referencedDeclaration":49998,"src":"24779:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54500,"nodeType":"ArrayTypeName","src":"24779:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24775:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24742:52:88"},{"expression":{"id":54512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54505,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54497,"src":"24804:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54507,"indexExpression":{"hexValue":"30","id":54506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24815:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24804:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24842:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54508,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"24820:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24837:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"24820:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24820:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"24804:48:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54513,"nodeType":"ExpressionStatement","src":"24804:48:88"},{"assignments":[54518],"declarations":[{"constant":false,"id":54518,"mutability":"mutable","name":"weights","nameLocation":"24879:7:88","nodeType":"VariableDeclaration","scope":54568,"src":"24862:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54516,"name":"uint256","nodeType":"ElementaryTypeName","src":"24862:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54517,"nodeType":"ArrayTypeName","src":"24862:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54524,"initialValue":{"arguments":[{"hexValue":"31","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24903:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24889:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54519,"name":"uint256","nodeType":"ElementaryTypeName","src":"24893:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54520,"nodeType":"ArrayTypeName","src":"24893:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24889:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24862:43:88"},{"expression":{"id":54529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54525,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54518,"src":"24915:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54527,"indexExpression":{"hexValue":"30","id":54526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24915:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54528,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54490,"src":"24928:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24915:19:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54530,"nodeType":"ExpressionStatement","src":"24915:19:88"},{"expression":{"arguments":[{"id":54534,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24953:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24964:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24945:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24948:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"24945:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24945:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54537,"nodeType":"ExpressionStatement","src":"24945:21:88"},{"assignments":[54540],"declarations":[{"constant":false,"id":54540,"mutability":"mutable","name":"finality","nameLocation":"24998:8:88","nodeType":"VariableDeclaration","scope":54568,"src":"24976:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54539,"nodeType":"UserDefinedTypeName","pathNode":{"id":54538,"name":"ParentFinality","nameLocations":["24976:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"24976:14:88"},"referencedDeclaration":49918,"src":"24976:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54549,"initialValue":{"arguments":[{"expression":{"id":54542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25033:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25039:6:88","memberName":"number","nodeType":"MemberAccess","src":"25033:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25066:1:88","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":54545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25058:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25058:7:88","typeDescriptions":{}}},"id":54547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25058:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54541,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"25009:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25025:6:88","25047:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"25009:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"24976:94:88"},{"expression":{"arguments":[{"expression":{"id":54553,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"25160:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25171:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"25160:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54550,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25146:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25149:10:88","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"25146:13:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54556,"nodeType":"ExpressionStatement","src":"25146:38:88"},{"expression":{"arguments":[{"id":54560,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"25238:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54557,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"25194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25217:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"25194:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54562,"nodeType":"ExpressionStatement","src":"25194:53:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25257:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:9:88","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"25257:12:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25257:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54567,"nodeType":"ExpressionStatement","src":"25257:14:88"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24677:12:88","parameters":{"id":54491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54488,"mutability":"mutable","name":"validator","nameLocation":"24698:9:88","nodeType":"VariableDeclaration","scope":54569,"src":"24690:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54487,"name":"address","nodeType":"ElementaryTypeName","src":"24690:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54490,"mutability":"mutable","name":"weight","nameLocation":"24717:6:88","nodeType":"VariableDeclaration","scope":54569,"src":"24709:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54489,"name":"uint256","nodeType":"ElementaryTypeName","src":"24709:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24689:35:88"},"returnParameters":{"id":54492,"nodeType":"ParameterList","parameters":[],"src":"24732:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54582,"nodeType":"FunctionDefinition","src":"25284:112:88","nodes":[],"body":{"id":54581,"nodeType":"Block","src":"25328:68:88","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25350:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54571,"src":"25382:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54574,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"25338:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25346:3:88","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"25338:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25338:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54580,"nodeType":"ExpressionStatement","src":"25338:51:88"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"25293:6:88","parameters":{"id":54572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54571,"mutability":"mutable","name":"amount","nameLocation":"25308:6:88","nodeType":"VariableDeclaration","scope":54582,"src":"25300:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54570,"name":"uint256","nodeType":"ElementaryTypeName","src":"25300:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25299:16:88"},"returnParameters":{"id":54573,"nodeType":"ParameterList","parameters":[],"src":"25328:0:88"},"scope":55375,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54597,"nodeType":"FunctionDefinition","src":"25402:131:88","nodes":[],"body":{"id":54596,"nodeType":"Block","src":"25466:67:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54590,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54584,"src":"25481:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54591,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54586,"src":"25496:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54592,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"25508:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25519:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"25508:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"id":54589,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54597,54722],"referencedDeclaration":54722,"src":"25476:4:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50229_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25476:50:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54595,"nodeType":"ExpressionStatement","src":"25476:50:88"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25411:4:88","parameters":{"id":54587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54584,"mutability":"mutable","name":"funderAddress","nameLocation":"25424:13:88","nodeType":"VariableDeclaration","scope":54597,"src":"25416:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54583,"name":"address","nodeType":"ElementaryTypeName","src":"25416:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54586,"mutability":"mutable","name":"fundAmount","nameLocation":"25447:10:88","nodeType":"VariableDeclaration","scope":54597,"src":"25439:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25439:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25415:43:88"},"returnParameters":{"id":54588,"nodeType":"ParameterList","parameters":[],"src":"25466:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54722,"nodeType":"FunctionDefinition","src":"25539:1180:88","nodes":[],"body":{"id":54721,"nodeType":"Block","src":"25620:1099:88","nodes":[],"statements":[{"assignments":[54609,null,54611,null,54613],"declarations":[{"constant":false,"id":54609,"mutability":"mutable","name":"subnetId","nameLocation":"25712:8:88","nodeType":"VariableDeclaration","scope":54721,"src":"25696:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54608,"nodeType":"UserDefinedTypeName","pathNode":{"id":54607,"name":"SubnetID","nameLocations":["25696:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"25696:8:88"},"referencedDeclaration":50077,"src":"25696:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54611,"mutability":"mutable","name":"nonceBefore","nameLocation":"25732:11:88","nodeType":"VariableDeclaration","scope":54721,"src":"25724:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54610,"name":"uint256","nodeType":"ElementaryTypeName","src":"25724:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54613,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"25755:16:88","nodeType":"VariableDeclaration","scope":54721,"src":"25747:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54612,"name":"uint256","nodeType":"ElementaryTypeName","src":"25747:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54620,"initialValue":{"arguments":[{"arguments":[{"id":54617,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"25793:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25785:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54615,"name":"address","nodeType":"ElementaryTypeName","src":"25785:7:88","typeDescriptions":{}}},"id":54618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25785:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54614,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"25775:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25695:109:88"},{"assignments":[54622],"declarations":[{"constant":false,"id":54622,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"25823:25:88","nodeType":"VariableDeclaration","scope":54721,"src":"25815:33:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54621,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54629,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54625,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"25887:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"25851:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25860:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"25851:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25851:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25899:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25851:49:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25815:85:88"},{"assignments":[54631],"declarations":[{"constant":false,"id":54631,"mutability":"mutable","name":"expectedNonce","nameLocation":"25918:13:88","nodeType":"VariableDeclaration","scope":54721,"src":"25910:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54630,"name":"uint256","nodeType":"ElementaryTypeName","src":"25910:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54635,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54632,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"25934:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25948:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25934:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25910:39:88"},{"assignments":[54637],"declarations":[{"constant":false,"id":54637,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"25967:18:88","nodeType":"VariableDeclaration","scope":54721,"src":"25959:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54636,"name":"uint256","nodeType":"ElementaryTypeName","src":"25959:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54641,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54638,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"25988:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54639,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26007:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25988:29:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25959:58:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54643,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26036:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26045:11:88","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"26036:20:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26061:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26036:26:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26064:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26028:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26028:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54650,"nodeType":"ExpressionStatement","src":"26028:55:88"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54651,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26098:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54652,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26106:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26117:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"26106:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26098:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54668,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26241:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54669,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26249:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26260:5:88","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"26249:16:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26241:24:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54684,"nodeType":"IfStatement","src":"26237:138:88","trueBody":{"id":54683,"nodeType":"Block","src":"26267:108:88","statements":[{"expression":{"arguments":[{"id":54675,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26305:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54678,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26337:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54676,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26315:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26332:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26315:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26315:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54680,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26353:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54672,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26281:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26291:13:88","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"26281:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26281:83:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54682,"nodeType":"ExpressionStatement","src":"26281:83:88"}]}},"id":54685,"nodeType":"IfStatement","src":"26094:281:88","trueBody":{"id":54667,"nodeType":"Block","src":"26125:106:88","statements":[{"expression":{"arguments":[{"id":54660,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26173:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54663,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26205:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54661,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26183:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26200:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26183:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26183:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54655,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26139:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26149:4:88","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"26139:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54658,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26161:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26139:33:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26139:81:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54666,"nodeType":"ExpressionStatement","src":"26139:81:88"}]}},{"assignments":[null,null,54687,null,54689],"declarations":[null,null,{"constant":false,"id":54687,"mutability":"mutable","name":"nonce","nameLocation":"26398:5:88","nodeType":"VariableDeclaration","scope":54721,"src":"26390:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54686,"name":"uint256","nodeType":"ElementaryTypeName","src":"26390:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54689,"mutability":"mutable","name":"circSupply","nameLocation":"26415:10:88","nodeType":"VariableDeclaration","scope":54721,"src":"26407:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54688,"name":"uint256","nodeType":"ElementaryTypeName","src":"26407:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54696,"initialValue":{"arguments":[{"arguments":[{"id":54693,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26447:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26439:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54691,"name":"address","nodeType":"ElementaryTypeName","src":"26439:7:88","typeDescriptions":{}}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26439:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54690,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"26429:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26429:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"26385:73:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54700,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26513:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54698,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26477:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26486:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"26477:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26477:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54702,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54622,"src":"26526:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26477:74:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":54704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26553:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26469:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26469:105:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54706,"nodeType":"ExpressionStatement","src":"26469:105:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54708,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"26593:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54709,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"26602:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26593:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":54711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26617:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":54707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26585:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54713,"nodeType":"ExpressionStatement","src":"26585:51:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54715,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54689,"src":"26654:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54716,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54637,"src":"26668:18:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26654:32:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":54718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26688:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":54714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26646:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:66:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54720,"nodeType":"ExpressionStatement","src":"26646:66:88"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25548:4:88","parameters":{"id":54605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54599,"mutability":"mutable","name":"funderAddress","nameLocation":"25561:13:88","nodeType":"VariableDeclaration","scope":54722,"src":"25553:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54598,"name":"address","nodeType":"ElementaryTypeName","src":"25553:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54601,"mutability":"mutable","name":"fundAmount","nameLocation":"25584:10:88","nodeType":"VariableDeclaration","scope":54722,"src":"25576:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"25576:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54604,"mutability":"mutable","name":"mode","nameLocation":"25607:4:88","nodeType":"VariableDeclaration","scope":54722,"src":"25596:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":54603,"nodeType":"UserDefinedTypeName","pathNode":{"id":54602,"name":"SupplyKind","nameLocations":["25596:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"25596:10:88"},"referencedDeclaration":50229,"src":"25596:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"25552:60:88"},"returnParameters":{"id":54606,"nodeType":"ParameterList","parameters":[],"src":"25620:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54753,"nodeType":"FunctionDefinition","src":"26725:243:88","nodes":[],"body":{"id":54752,"nodeType":"Block","src":"26793:175:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54732,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26812:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26803:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26803:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26803:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54734,"nodeType":"ExpressionStatement","src":"26803:26:88"},{"expression":{"arguments":[{"id":54738,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26847:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54739,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26865:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26865:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":54735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26839:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26842:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26839:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26839:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54743,"nodeType":"ExpressionStatement","src":"26839:56:88"},{"expression":{"arguments":[{"id":54749,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54726,"src":"26954:6:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54744,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26905:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":54746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26915:4:88","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"26905:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":54748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54747,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26927:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"26905:48:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":54750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54751,"nodeType":"ExpressionStatement","src":"26905:56:88"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"26734:4:88","parameters":{"id":54727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54724,"mutability":"mutable","name":"validatorAddress","nameLocation":"26747:16:88","nodeType":"VariableDeclaration","scope":54753,"src":"26739:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54723,"name":"address","nodeType":"ElementaryTypeName","src":"26739:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54726,"mutability":"mutable","name":"pubkey","nameLocation":"26778:6:88","nodeType":"VariableDeclaration","scope":54753,"src":"26765:19:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54725,"name":"bytes","nodeType":"ElementaryTypeName","src":"26765:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26738:47:88"},"returnParameters":{"id":54728,"nodeType":"ParameterList","parameters":[],"src":"26793:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54800,"nodeType":"FunctionDefinition","src":"26974:298:88","nodes":[],"body":{"id":54799,"nodeType":"Block","src":"27042:230:88","nodes":[],"statements":[{"assignments":[54764],"declarations":[{"constant":false,"id":54764,"mutability":"mutable","name":"validators","nameLocation":"27069:10:88","nodeType":"VariableDeclaration","scope":54799,"src":"27052:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54762,"name":"address","nodeType":"ElementaryTypeName","src":"27052:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54763,"nodeType":"ArrayTypeName","src":"27052:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54770,"initialValue":{"arguments":[{"hexValue":"31","id":54768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27096:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27082:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54765,"name":"address","nodeType":"ElementaryTypeName","src":"27086:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54766,"nodeType":"ArrayTypeName","src":"27086:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27082:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27052:46:88"},{"expression":{"id":54775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54771,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27108:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54773,"indexExpression":{"hexValue":"30","id":54772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27119:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27108:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54774,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54755,"src":"27124:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27108:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54776,"nodeType":"ExpressionStatement","src":"27108:25:88"},{"assignments":[54781],"declarations":[{"constant":false,"id":54781,"mutability":"mutable","name":"privKeys","nameLocation":"27161:8:88","nodeType":"VariableDeclaration","scope":54799,"src":"27144:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54779,"name":"uint256","nodeType":"ElementaryTypeName","src":"27144:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54780,"nodeType":"ArrayTypeName","src":"27144:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54787,"initialValue":{"arguments":[{"hexValue":"31","id":54785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27186:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27172:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54782,"name":"uint256","nodeType":"ElementaryTypeName","src":"27176:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54783,"nodeType":"ArrayTypeName","src":"27176:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27172:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27144:44:88"},{"expression":{"id":54792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27198:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54790,"indexExpression":{"hexValue":"30","id":54789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27207:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27198:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54791,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54757,"src":"27212:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27198:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54793,"nodeType":"ExpressionStatement","src":"27198:21:88"},{"expression":{"arguments":[{"id":54795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27244:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54796,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27256:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54794,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27230:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27230:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54798,"nodeType":"ExpressionStatement","src":"27230:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26983:13:88","parameters":{"id":54758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54755,"mutability":"mutable","name":"validator","nameLocation":"27005:9:88","nodeType":"VariableDeclaration","scope":54800,"src":"26997:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54754,"name":"address","nodeType":"ElementaryTypeName","src":"26997:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54757,"mutability":"mutable","name":"privKey","nameLocation":"27024:7:88","nodeType":"VariableDeclaration","scope":54800,"src":"27016:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54756,"name":"uint256","nodeType":"ElementaryTypeName","src":"27016:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26996:36:88"},"returnParameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"27042:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54863,"nodeType":"FunctionDefinition","src":"27278:408:88","nodes":[],"body":{"id":54862,"nodeType":"Block","src":"27386:300:88","nodes":[],"statements":[{"assignments":[54815],"declarations":[{"constant":false,"id":54815,"mutability":"mutable","name":"validators","nameLocation":"27413:10:88","nodeType":"VariableDeclaration","scope":54862,"src":"27396:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54813,"name":"address","nodeType":"ElementaryTypeName","src":"27396:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54814,"nodeType":"ArrayTypeName","src":"27396:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54821,"initialValue":{"arguments":[{"hexValue":"32","id":54819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27440:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27426:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54816,"name":"address","nodeType":"ElementaryTypeName","src":"27430:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54817,"nodeType":"ArrayTypeName","src":"27430:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27426:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27396:46:88"},{"expression":{"id":54826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27452:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54824,"indexExpression":{"hexValue":"30","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27452:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54825,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54802,"src":"27468:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27452:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54827,"nodeType":"ExpressionStatement","src":"27452:26:88"},{"expression":{"id":54832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27488:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54830,"indexExpression":{"hexValue":"31","id":54829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27499:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27488:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54831,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54806,"src":"27504:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27488:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54833,"nodeType":"ExpressionStatement","src":"27488:26:88"},{"assignments":[54838],"declarations":[{"constant":false,"id":54838,"mutability":"mutable","name":"privKeys","nameLocation":"27542:8:88","nodeType":"VariableDeclaration","scope":54862,"src":"27525:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54836,"name":"uint256","nodeType":"ElementaryTypeName","src":"27525:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54837,"nodeType":"ArrayTypeName","src":"27525:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54844,"initialValue":{"arguments":[{"hexValue":"32","id":54842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27567:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27553:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54839,"name":"uint256","nodeType":"ElementaryTypeName","src":"27557:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54840,"nodeType":"ArrayTypeName","src":"27557:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27553:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27525:44:88"},{"expression":{"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54845,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27579:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54847,"indexExpression":{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27588:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27579:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54848,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54804,"src":"27593:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27579:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54850,"nodeType":"ExpressionStatement","src":"27579:22:88"},{"expression":{"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54851,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27611:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54853,"indexExpression":{"hexValue":"31","id":54852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27611:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54854,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54808,"src":"27625:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27611:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54856,"nodeType":"ExpressionStatement","src":"27611:22:88"},{"expression":{"arguments":[{"id":54858,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27658:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54859,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27670:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54857,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27644:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27644:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54861,"nodeType":"ExpressionStatement","src":"27644:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27287:13:88","parameters":{"id":54809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54802,"mutability":"mutable","name":"validator1","nameLocation":"27309:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27301:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54801,"name":"address","nodeType":"ElementaryTypeName","src":"27301:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54804,"mutability":"mutable","name":"privKey1","nameLocation":"27329:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27321:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54803,"name":"uint256","nodeType":"ElementaryTypeName","src":"27321:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54806,"mutability":"mutable","name":"validator2","nameLocation":"27347:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27339:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54805,"name":"address","nodeType":"ElementaryTypeName","src":"27339:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54808,"mutability":"mutable","name":"privKey2","nameLocation":"27367:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27359:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54807,"name":"uint256","nodeType":"ElementaryTypeName","src":"27359:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27300:76:88"},"returnParameters":{"id":54810,"nodeType":"ParameterList","parameters":[],"src":"27386:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54942,"nodeType":"FunctionDefinition","src":"27692:568:88","nodes":[],"body":{"id":54941,"nodeType":"Block","src":"27892:368:88","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"validators","nameLocation":"27919:10:88","nodeType":"VariableDeclaration","scope":54941,"src":"27902:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54880,"name":"address","nodeType":"ElementaryTypeName","src":"27902:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54881,"nodeType":"ArrayTypeName","src":"27902:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54888,"initialValue":{"arguments":[{"hexValue":"33","id":54886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27946:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27932:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"27936:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54884,"nodeType":"ArrayTypeName","src":"27936:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27932:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27902:46:88"},{"expression":{"id":54893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54889,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27958:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54891,"indexExpression":{"hexValue":"30","id":54890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27969:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27958:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54892,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54865,"src":"27974:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27958:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54894,"nodeType":"ExpressionStatement","src":"27958:26:88"},{"expression":{"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54895,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27994:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54897,"indexExpression":{"hexValue":"31","id":54896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28005:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27994:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54898,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54869,"src":"28010:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27994:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54900,"nodeType":"ExpressionStatement","src":"27994:26:88"},{"expression":{"id":54905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54901,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28030:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54903,"indexExpression":{"hexValue":"32","id":54902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28030:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54904,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54873,"src":"28046:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28030:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54906,"nodeType":"ExpressionStatement","src":"28030:26:88"},{"assignments":[54911],"declarations":[{"constant":false,"id":54911,"mutability":"mutable","name":"privKeys","nameLocation":"28084:8:88","nodeType":"VariableDeclaration","scope":54941,"src":"28067:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54909,"name":"uint256","nodeType":"ElementaryTypeName","src":"28067:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54910,"nodeType":"ArrayTypeName","src":"28067:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[{"hexValue":"33","id":54915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28109:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28095:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28099:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54913,"nodeType":"ArrayTypeName","src":"28099:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28095:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28067:44:88"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54918,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28121:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54920,"indexExpression":{"hexValue":"30","id":54919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28130:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28121:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"28135:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28121:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54923,"nodeType":"ExpressionStatement","src":"28121:22:88"},{"expression":{"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54924,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28153:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54926,"indexExpression":{"hexValue":"31","id":54925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28153:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54927,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"28167:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28153:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54929,"nodeType":"ExpressionStatement","src":"28153:22:88"},{"expression":{"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54930,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28185:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54932,"indexExpression":{"hexValue":"32","id":54931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28194:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28185:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54933,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54875,"src":"28199:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28185:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54935,"nodeType":"ExpressionStatement","src":"28185:22:88"},{"expression":{"arguments":[{"id":54937,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28232:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54938,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28244:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54936,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"28218:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28218:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54940,"nodeType":"ExpressionStatement","src":"28218:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27701:13:88","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54865,"mutability":"mutable","name":"validator1","nameLocation":"27732:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27724:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54864,"name":"address","nodeType":"ElementaryTypeName","src":"27724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54867,"mutability":"mutable","name":"privKey1","nameLocation":"27760:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27752:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54866,"name":"uint256","nodeType":"ElementaryTypeName","src":"27752:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54869,"mutability":"mutable","name":"validator2","nameLocation":"27786:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27778:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54868,"name":"address","nodeType":"ElementaryTypeName","src":"27778:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54871,"mutability":"mutable","name":"privKey2","nameLocation":"27814:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27806:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"27806:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54873,"mutability":"mutable","name":"validator3","nameLocation":"27840:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27832:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54872,"name":"address","nodeType":"ElementaryTypeName","src":"27832:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54875,"mutability":"mutable","name":"privKey3","nameLocation":"27868:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27860:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27860:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27714:168:88"},"returnParameters":{"id":54877,"nodeType":"ParameterList","parameters":[],"src":"27892:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55093,"nodeType":"FunctionDefinition","src":"28266:1102:88","nodes":[],"body":{"id":55092,"nodeType":"Block","src":"28354:1014:88","nodes":[],"statements":[{"assignments":[54952],"declarations":[{"constant":false,"id":54952,"mutability":"mutable","name":"n","nameLocation":"28372:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28364:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54951,"name":"uint256","nodeType":"ElementaryTypeName","src":"28364:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54955,"initialValue":{"expression":{"id":54953,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"28376:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28387:6:88","memberName":"length","nodeType":"MemberAccess","src":"28376:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28364:29:88"},{"assignments":[54960],"declarations":[{"constant":false,"id":54960,"mutability":"mutable","name":"signatures","nameLocation":"28419:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28404:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54958,"name":"bytes","nodeType":"ElementaryTypeName","src":"28404:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54959,"nodeType":"ArrayTypeName","src":"28404:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":54966,"initialValue":{"arguments":[{"id":54964,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"28444:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28432:11:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":54961,"name":"bytes","nodeType":"ElementaryTypeName","src":"28436:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54962,"nodeType":"ArrayTypeName","src":"28436:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28432:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28404:42:88"},{"assignments":[54968,null],"declarations":[{"constant":false,"id":54968,"mutability":"mutable","name":"nextConfigNum","nameLocation":"28465:13:88","nodeType":"VariableDeclaration","scope":55092,"src":"28458:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54967,"name":"uint64","nodeType":"ElementaryTypeName","src":"28458:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":54972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54969,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28484:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28493:23:88","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50349,"src":"28484:32:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28484:34:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"28457:61:88"},{"assignments":[54974],"declarations":[{"constant":false,"id":54974,"mutability":"mutable","name":"h","nameLocation":"28537:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28529:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54973,"name":"uint256","nodeType":"ElementaryTypeName","src":"28529:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54982,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54975,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28541:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28550:28:88","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50477,"src":"28541:37:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28541:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54978,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28583:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28592:19:88","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50457,"src":"28583:28:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28583:30:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28541:72:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28529:84:88"},{"assignments":[54985],"declarations":[{"constant":false,"id":54985,"mutability":"mutable","name":"checkpoint","nameLocation":"28650:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28624:36:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":54984,"nodeType":"UserDefinedTypeName","pathNode":{"id":54983,"name":"BottomUpCheckpoint","nameLocations":["28624:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"28624:18:88"},"referencedDeclaration":49932,"src":"28624:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55007,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54993,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28750:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28742:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"28742:7:88","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28742:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54987,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28706:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28715:9:88","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50279,"src":"28706:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28727:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"28706:35:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54996,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28788:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55000,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28835:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28824:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28828:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28824:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28824:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28814:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28814:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55003,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54968,"src":"28877:13:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28877:17:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":54986,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"28663:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:8:88","28775:11:88","28803:9:88","28852:23:88"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"28663:242:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"28624:281:88"},{"expression":{"arguments":[{"arguments":[{"id":55013,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28932:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28924:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55011,"name":"address","nodeType":"ElementaryTypeName","src":"28924:7:88","typeDescriptions":{}}},"id":55014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28924:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28944:9:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55008,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28916:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28919:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28916:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55017,"nodeType":"ExpressionStatement","src":"28916:38:88"},{"assignments":[55019],"declarations":[{"constant":false,"id":55019,"mutability":"mutable","name":"hash","nameLocation":"28973:4:88","nodeType":"VariableDeclaration","scope":55092,"src":"28965:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28965:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55026,"initialValue":{"arguments":[{"arguments":[{"id":55023,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29001:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28990:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28994:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28990:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28990:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55020,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28980:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28980:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28965:48:88"},{"body":{"id":55062,"nodeType":"Block","src":"29056:140:88","statements":[{"assignments":[55038,55040,55042],"declarations":[{"constant":false,"id":55038,"mutability":"mutable","name":"v","nameLocation":"29077:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29071:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55037,"name":"uint8","nodeType":"ElementaryTypeName","src":"29071:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55040,"mutability":"mutable","name":"r","nameLocation":"29088:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29080:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29080:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55042,"mutability":"mutable","name":"s","nameLocation":"29099:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29091:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29091:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55050,"initialValue":{"arguments":[{"baseExpression":{"id":55045,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54948,"src":"29112:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55047,"indexExpression":{"id":55046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29121:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29112:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55048,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55019,"src":"29125:4:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29104:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29107:4:88","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"29104:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29104:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"29070:60:88"},{"expression":{"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55051,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29144:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55053,"indexExpression":{"id":55052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29155:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29144:13:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55056,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55040,"src":"29177:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"29180:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55038,"src":"29183:1:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29160:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29164:12:88","memberName":"encodePacked","nodeType":"MemberAccess","src":"29160:16:88","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29160:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"29144:41:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55061,"nodeType":"ExpressionStatement","src":"29144:41:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29044:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55032,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29048:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29044:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55063,"initializationExpression":{"assignments":[55028],"declarations":[{"constant":false,"id":55028,"mutability":"mutable","name":"i","nameLocation":"29037:1:88","nodeType":"VariableDeclaration","scope":55063,"src":"29029:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55027,"name":"uint256","nodeType":"ElementaryTypeName","src":"29029:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55030,"initialValue":{"hexValue":"30","id":55029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29029:13:88"},"loopExpression":{"expression":{"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29051:3:88","subExpression":{"id":55034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29051:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55036,"nodeType":"ExpressionStatement","src":"29051:3:88"},"nodeType":"ForStatement","src":"29024:172:88"},{"body":{"id":55090,"nodeType":"Block","src":"29238:124:88","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29261:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55079,"indexExpression":{"id":55078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29272:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29261:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29252:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29255:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"29252:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29252:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55081,"nodeType":"ExpressionStatement","src":"29252:23:88"},{"expression":{"arguments":[{"id":55085,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29316:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55086,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29328:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55087,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29340:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55082,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"29289:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":55084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29299:16:88","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":51154,"src":"29289:26:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29289:62:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55089,"nodeType":"ExpressionStatement","src":"29289:62:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29226:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55069,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29230:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29226:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55091,"initializationExpression":{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"i","nameLocation":"29219:1:88","nodeType":"VariableDeclaration","scope":55091,"src":"29211:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55064,"name":"uint256","nodeType":"ElementaryTypeName","src":"29211:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55067,"initialValue":{"hexValue":"30","id":55066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29223:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29211:13:88"},"loopExpression":{"expression":{"id":55072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29233:3:88","subExpression":{"id":55071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29233:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55073,"nodeType":"ExpressionStatement","src":"29233:3:88"},"nodeType":"ForStatement","src":"29206:156:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"28275:13:88","parameters":{"id":54949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54945,"mutability":"mutable","name":"validators","nameLocation":"28306:10:88","nodeType":"VariableDeclaration","scope":55093,"src":"28289:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54943,"name":"address","nodeType":"ElementaryTypeName","src":"28289:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54944,"nodeType":"ArrayTypeName","src":"28289:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54948,"mutability":"mutable","name":"privKeys","nameLocation":"28335:8:88","nodeType":"VariableDeclaration","scope":55093,"src":"28318:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54946,"name":"uint256","nodeType":"ElementaryTypeName","src":"28318:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54947,"nodeType":"ArrayTypeName","src":"28318:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"28288:56:88"},"returnParameters":{"id":54950,"nodeType":"ParameterList","parameters":[],"src":"28354:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55128,"nodeType":"FunctionDefinition","src":"29374:305:88","nodes":[],"body":{"id":55127,"nodeType":"Block","src":"29421:258:88","nodes":[],"statements":[{"assignments":[55099],"declarations":[{"constant":false,"id":55099,"mutability":"mutable","name":"expectedNonce","nameLocation":"29439:13:88","nodeType":"VariableDeclaration","scope":55127,"src":"29431:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55105,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55100,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29455:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29464:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29455:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29455:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29482:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29455:28:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"29431:52:88"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29555:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29559:6:88","memberName":"sender","nodeType":"MemberAccess","src":"29555:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55111,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"29533:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":55112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29550:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"29533:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55106,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29493:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29503:7:88","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"29493:17:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55109,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55095,"src":"29518:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29493:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55117,"nodeType":"ExpressionStatement","src":"29493:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55119,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29585:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29594:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29585:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29585:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55122,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55099,"src":"29613:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29585:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29628:43:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29577:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29577:95:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55126,"nodeType":"ExpressionStatement","src":"29577:95:88"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"29383:7:88","parameters":{"id":55096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55095,"mutability":"mutable","name":"releaseAmount","nameLocation":"29399:13:88","nodeType":"VariableDeclaration","scope":55128,"src":"29391:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55094,"name":"uint256","nodeType":"ElementaryTypeName","src":"29391:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29390:23:88"},"returnParameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"29421:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55183,"nodeType":"FunctionDefinition","src":"29685:536:88","nodes":[],"body":{"id":55182,"nodeType":"Block","src":"29754:467:88","nodes":[],"statements":[{"assignments":[55136],"declarations":[{"constant":false,"id":55136,"mutability":"mutable","name":"balanceBefore","nameLocation":"29772:13:88","nodeType":"VariableDeclaration","scope":55182,"src":"29764:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55135,"name":"uint256","nodeType":"ElementaryTypeName","src":"29764:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55139,"initialValue":{"expression":{"id":55137,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29788:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29802:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29788:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29764:45:88"},{"assignments":[null,55141,null,null,null],"declarations":[null,{"constant":false,"id":55141,"mutability":"mutable","name":"stakedBefore","nameLocation":"29831:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29823:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"29823:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55145,"initialValue":{"arguments":[{"id":55143,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29863:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55142,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"29853:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29853:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29820:57:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55146,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29888:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29898:8:88","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"29888:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55149,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"29914:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29888:38:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29888:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55152,"nodeType":"ExpressionStatement","src":"29888:40:88"},{"assignments":[55154],"declarations":[{"constant":false,"id":55154,"mutability":"mutable","name":"balanceAfter","nameLocation":"29947:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29939:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55153,"name":"uint256","nodeType":"ElementaryTypeName","src":"29939:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55157,"initialValue":{"expression":{"id":55155,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29962:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29976:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29962:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29939:44:88"},{"assignments":[null,55159,null,null,null],"declarations":[null,{"constant":false,"id":55159,"mutability":"mutable","name":"stakedAfter","nameLocation":"30004:11:88","nodeType":"VariableDeclaration","scope":55182,"src":"29996:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29996:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55163,"initialValue":{"arguments":[{"id":55161,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"30035:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55160,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"30025:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30025:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29993:56:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55165,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55154,"src":"30068:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55166,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55136,"src":"30084:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55167,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30100:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30084:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30068:43:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30113:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30060:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30060:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"ExpressionStatement","src":"30060:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55174,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"30152:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55175,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55141,"src":"30167:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55176,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30182:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30167:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30152:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30195:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30144:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30144:70:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"30144:70:88"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"29694:8:88","parameters":{"id":55133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55130,"mutability":"mutable","name":"stakeAmount","nameLocation":"29711:11:88","nodeType":"VariableDeclaration","scope":55183,"src":"29703:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55129,"name":"uint256","nodeType":"ElementaryTypeName","src":"29703:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55132,"mutability":"mutable","name":"subnetAddress","nameLocation":"29732:13:88","nodeType":"VariableDeclaration","scope":55183,"src":"29724:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55131,"name":"address","nodeType":"ElementaryTypeName","src":"29724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29702:44:88"},"returnParameters":{"id":55134,"nodeType":"ParameterList","parameters":[],"src":"29754:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55268,"nodeType":"FunctionDefinition","src":"30227:813:88","nodes":[],"body":{"id":55267,"nodeType":"Block","src":"30322:718:88","nodes":[],"statements":[{"assignments":[55195],"declarations":[{"constant":false,"id":55195,"mutability":"mutable","name":"manager","nameLocation":"30352:7:88","nodeType":"VariableDeclaration","scope":55267,"src":"30332:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55194,"nodeType":"UserDefinedTypeName","pathNode":{"id":55193,"name":"GatewayManagerFacet","nameLocations":["30332:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"30332:19:88"},"referencedDeclaration":38870,"src":"30332:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55202,"initialValue":{"arguments":[{"arguments":[{"id":55199,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30390:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30382:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55197,"name":"address","nodeType":"ElementaryTypeName","src":"30382:7:88","typeDescriptions":{}}},"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30382:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55196,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"30362:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30362:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"30332:62:88"},{"expression":{"arguments":[{"hexValue":"30","id":55208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30441:1:88","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"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55203,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"30405:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30413:8:88","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"30405:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55206,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30429:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30405:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30405:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55210,"nodeType":"ExpressionStatement","src":"30405:38:88"},{"assignments":[55213,55215,55217,null,55219],"declarations":[{"constant":false,"id":55213,"mutability":"mutable","name":"id","nameLocation":"30471:2:88","nodeType":"VariableDeclaration","scope":55267,"src":"30455:18:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55212,"nodeType":"UserDefinedTypeName","pathNode":{"id":55211,"name":"SubnetID","nameLocations":["30455:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30455:8:88"},"referencedDeclaration":50077,"src":"30455:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55215,"mutability":"mutable","name":"stake","nameLocation":"30483:5:88","nodeType":"VariableDeclaration","scope":55267,"src":"30475:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30475:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55217,"mutability":"mutable","name":"topDownNonce","nameLocation":"30498:12:88","nodeType":"VariableDeclaration","scope":55267,"src":"30490:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55216,"name":"uint256","nodeType":"ElementaryTypeName","src":"30490:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55219,"mutability":"mutable","name":"circSupply","nameLocation":"30522:10:88","nodeType":"VariableDeclaration","scope":55267,"src":"30514:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55218,"name":"uint256","nodeType":"ElementaryTypeName","src":"30514:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55224,"initialValue":{"arguments":[{"id":55221,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30561:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55222,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30588:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55220,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"30536:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30536:64:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30454:146:88"},{"assignments":[55227],"declarations":[{"constant":false,"id":55227,"mutability":"mutable","name":"parentNetwork","nameLocation":"30627:13:88","nodeType":"VariableDeclaration","scope":55267,"src":"30611:29:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55226,"nodeType":"UserDefinedTypeName","pathNode":{"id":55225,"name":"SubnetID","nameLocations":["30611:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30611:8:88"},"referencedDeclaration":50077,"src":"30611:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55228,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"30643:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30652:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"30643:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30643:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"30611:57:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55233,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"30700:2:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30700:9:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30700:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55238,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30744:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55236,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55227,"src":"30715:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30729:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"30715:28:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30759:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30715:50:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:52:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"30700:67:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30781:69:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30679:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30679:181:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55245,"nodeType":"ExpressionStatement","src":"30679:181:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55247,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55215,"src":"30878:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55248,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30887:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30878:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30899:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30870:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30870:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55252,"nodeType":"ExpressionStatement","src":"30870:48:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55254,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"30936:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30952:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30936:17:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30955:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30928:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55259,"nodeType":"ExpressionStatement","src":"30928:46:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55261,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"30992:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31006:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30992:15:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31009:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30984:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30984:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55266,"nodeType":"ExpressionStatement","src":"30984:49:88"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"30236:16:88","parameters":{"id":55191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55185,"mutability":"mutable","name":"collateral","nameLocation":"30261:10:88","nodeType":"VariableDeclaration","scope":55268,"src":"30253:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55184,"name":"uint256","nodeType":"ElementaryTypeName","src":"30253:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55187,"mutability":"mutable","name":"subnetAddress","nameLocation":"30281:13:88","nodeType":"VariableDeclaration","scope":55268,"src":"30273:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55186,"name":"address","nodeType":"ElementaryTypeName","src":"30273:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55190,"mutability":"mutable","name":"gw","nameLocation":"30311:2:88","nodeType":"VariableDeclaration","scope":55268,"src":"30296:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55189,"nodeType":"UserDefinedTypeName","pathNode":{"id":55188,"name":"GatewayDiamond","nameLocations":["30296:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"30296:14:88"},"referencedDeclaration":36170,"src":"30296:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"30252:62:88"},"returnParameters":{"id":55192,"nodeType":"ParameterList","parameters":[],"src":"30322:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55282,"nodeType":"FunctionDefinition","src":"31046:150:88","nodes":[],"body":{"id":55281,"nodeType":"Block","src":"31120:76:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55276,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55270,"src":"31147:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55277,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55272,"src":"31159:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55278,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31174:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55275,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"31130:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31130:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55280,"nodeType":"ExpressionStatement","src":"31130:59:88"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"31055:14:88","parameters":{"id":55273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55270,"mutability":"mutable","name":"collateral","nameLocation":"31078:10:88","nodeType":"VariableDeclaration","scope":55282,"src":"31070:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55269,"name":"uint256","nodeType":"ElementaryTypeName","src":"31070:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55272,"mutability":"mutable","name":"subnetAddress","nameLocation":"31098:13:88","nodeType":"VariableDeclaration","scope":55282,"src":"31090:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55271,"name":"address","nodeType":"ElementaryTypeName","src":"31090:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31069:43:88"},"returnParameters":{"id":55274,"nodeType":"ParameterList","parameters":[],"src":"31120:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55352,"nodeType":"FunctionDefinition","src":"31202:541:88","nodes":[],"body":{"id":55351,"nodeType":"Block","src":"31356:387:88","nodes":[],"statements":[{"expression":{"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55301,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"31366:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55305,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31406:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55303,"name":"address","nodeType":"ElementaryTypeName","src":"31398:7:88","typeDescriptions":{}}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55302,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"31378:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"31366:44:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55309,"nodeType":"ExpressionStatement","src":"31366:44:88"},{"expression":{"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55310,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31420:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55314,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31458:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31450:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"31450:7:88","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31450:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55311,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"31431:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31431:31:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"31420:42:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55318,"nodeType":"ExpressionStatement","src":"31420:42:88"},{"assignments":[55321],"declarations":[{"constant":false,"id":55321,"mutability":"mutable","name":"subnetId","nameLocation":"31489:8:88","nodeType":"VariableDeclaration","scope":55351,"src":"31473:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55320,"nodeType":"UserDefinedTypeName","pathNode":{"id":55319,"name":"SubnetID","nameLocations":["31473:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31473:8:88"},"referencedDeclaration":50077,"src":"31473:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55328,"initialValue":{"arguments":[{"id":55326,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"31541:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55322,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31500:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31509:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"31500:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31526:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"31500:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"31473:82:88"},{"assignments":[55331],"declarations":[{"constant":false,"id":55331,"mutability":"mutable","name":"subnet","nameLocation":"31580:6:88","nodeType":"VariableDeclaration","scope":55351,"src":"31566:20:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55330,"nodeType":"UserDefinedTypeName","pathNode":{"id":55329,"name":"Subnet","nameLocations":["31566:6:88"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"31566:6:88"},"referencedDeclaration":50091,"src":"31566:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55338,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55334,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55321,"src":"31606:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31615:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"31606:15:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31606:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55332,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31589:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31598:7:88","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"31589:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50091_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31589:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"31566:58:88"},{"expression":{"components":[{"expression":{"id":55339,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31643:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31650:2:88","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"31643:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55341,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31654:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31661:5:88","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"31654:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55343,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31668:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31675:12:88","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"31668:19:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55345,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31689:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31696:20:88","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"31689:27:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55347,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31718:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31725:10:88","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"31718:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31642:94:88","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55300,"id":55350,"nodeType":"Return","src":"31635:101:88"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"31211:11:88","parameters":{"id":55288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55284,"mutability":"mutable","name":"subnetAddress","nameLocation":"31240:13:88","nodeType":"VariableDeclaration","scope":55352,"src":"31232:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55283,"name":"address","nodeType":"ElementaryTypeName","src":"31232:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55287,"mutability":"mutable","name":"gw","nameLocation":"31278:2:88","nodeType":"VariableDeclaration","scope":55352,"src":"31263:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55286,"nodeType":"UserDefinedTypeName","pathNode":{"id":55285,"name":"GatewayDiamond","nameLocations":["31263:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"31263:14:88"},"referencedDeclaration":36170,"src":"31263:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"31222:64:88"},"returnParameters":{"id":55300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31303:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55290,"nodeType":"UserDefinedTypeName","pathNode":{"id":55289,"name":"SubnetID","nameLocations":["31303:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31303:8:88"},"referencedDeclaration":50077,"src":"31303:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31320:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55292,"name":"uint256","nodeType":"ElementaryTypeName","src":"31320:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31329:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55294,"name":"uint256","nodeType":"ElementaryTypeName","src":"31329:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31338:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55296,"name":"uint256","nodeType":"ElementaryTypeName","src":"31338:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31347:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55298,"name":"uint256","nodeType":"ElementaryTypeName","src":"31347:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31302:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55374,"nodeType":"FunctionDefinition","src":"31749:177:88","nodes":[],"body":{"id":55373,"nodeType":"Block","src":"31860:66:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55369,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55354,"src":"31889:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55370,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31904:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55368,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"31877:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31877:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55367,"id":55372,"nodeType":"Return","src":"31870:49:88"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"31758:9:88","parameters":{"id":55355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55354,"mutability":"mutable","name":"subnetAddress","nameLocation":"31776:13:88","nodeType":"VariableDeclaration","scope":55374,"src":"31768:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55353,"name":"address","nodeType":"ElementaryTypeName","src":"31768:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31767:23:88"},"returnParameters":{"id":55367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31807:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55357,"nodeType":"UserDefinedTypeName","pathNode":{"id":55356,"name":"SubnetID","nameLocations":["31807:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31807:8:88"},"referencedDeclaration":50077,"src":"31807:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31824:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55359,"name":"uint256","nodeType":"ElementaryTypeName","src":"31824:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31833:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55361,"name":"uint256","nodeType":"ElementaryTypeName","src":"31833:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31842:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55363,"name":"uint256","nodeType":"ElementaryTypeName","src":"31842:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31851:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"31851:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31806:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53038,"name":"Test","nameLocations":["8694:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8694:4:88"},"id":53039,"nodeType":"InheritanceSpecifier","src":"8694:4:88"},{"baseName":{"id":53040,"name":"TestParams","nameLocations":["8700:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"8700:10:88"},"id":53041,"nodeType":"InheritanceSpecifier","src":"8700:10:88"},{"baseName":{"id":53042,"name":"TestRegistry","nameLocations":["8712:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":52747,"src":"8712:12:88"},"id":53043,"nodeType":"InheritanceSpecifier","src":"8712:12:88"},{"baseName":{"id":53044,"name":"TestSubnetActor","nameLocations":["8726:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":53037,"src":"8726:15:88"},"id":53045,"nodeType":"InheritanceSpecifier","src":"8726:15:88"},{"baseName":{"id":53046,"name":"TestGatewayActor","nameLocations":["8743:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":52912,"src":"8743:16:88"},"id":53047,"nodeType":"InheritanceSpecifier","src":"8743:16:88"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50887,52151,52279,52517,57957],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55375,52912,53037,52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8671:19:88","scope":55376,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234620010dc57600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f72476574746572466163657400000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee57600091620010bd575b508051906001600160401b038211620007b057680100000000000000008211620007b057601b5482601b558083106200105a575b5060200190601b60005260206000209060005b8160031c81106200100a5750600719811681038062000fb2575b505050506040516319b8a26360e21b815260206004820152601760248201527f5375626e65744163746f724d616e616765724661636574000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee5760009162000f93575b508051906001600160401b038211620007b057680100000000000000008211620007b057601c5482601c5580831062000f27575b5060200190601c60005260206000209060005b8160031c811062000ed757506007198116810362000e7e575b50506040516319b8a26360e21b815260206004820152601560248201527f5375626e65744163746f725061757365466163657400000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee5760009162000e5f575b508051906001600160401b038211620007b057680100000000000000008211620007b057601d5482601d5580831062000dd6575b5060200190601d60005260206000209060005b8160031c811062000d8657506007198116810362000d2d575b50506040516319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f725265776172644661636574000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee5760009162000d0e575b508051906001600160401b038211620007b057680100000000000000008211620007b057601e5482601e5580831062000c85575b5060200190601e60005260206000209060005b8160031c811062000c3557506007198116810362000bdc575b50506040516319b8a26360e21b815260206004820152601d60248201527f5375626e65744163746f72436865636b706f696e74696e6746616365740000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee5760009162000bbd575b508051906001600160401b038211620007b057680100000000000000008211620007b057601f5482601f5580831062000b34575b5060200190601f60005260206000209060005b8160031c811062000ae457506007198116810362000a8b575b50506040516319b8a26360e21b815260206004820152600f60248201526e5375626e65744163746f724d6f636b60881b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee5760009162000a6c575b508051906001600160401b038211620007b057680100000000000000008211620007b05760205482602055808310620009f4575b506020600081815291019160008051602062001e2a833981519152915b8160031c8110620009a45750600719811681036200094b575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee576000916200092c575b508051906001600160401b038211620007b057680100000000000000008211620007b05760215482602155808310620008a3575b5060200190602160005260206000209060005b8160031c811062000853575060071981168103620007fa575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee57600091620007c6575b508051906001600160401b038211620007b057680100000000000000008211620007b057602254826022558083106200074d575b5060200190602260005260206000208160031c9160005b838110620006fd57506007198116900380620006a8575b604051610c8e90816200119c8239f35b9260009360005b818110620006c65750505001553880808062000698565b9091946020620006f2600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620006af565b6000805b600881106200071857508382015560010162000681565b9590602062000743600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000701565b60226000526020600020600780850160031c8201920160031c0190601c8460021b168062000794575b505b8181106200078757506200066a565b6000815560010162000778565b600019908183019182549160200360031b1c1690553862000776565b634e487b7160e01b600052604160045260246000fd5b620007e791503d806000833e620007de8183620010e1565b81019062001105565b3862000636565b6040513d6000823e3d90fd5b60009260005b6007198316830381106200081e57505060031c0155388080620005cf565b9093602062000849600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000800565b6000805b600881106200086e575083820155600101620005b6565b9490602062000899600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000857565b60216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570600284901b601c168062000908575b506007840160031c81015b6007830160031c82018110620008fb575050620005a3565b60008155600101620008e3565b60001990816007870160031c8401019182549160200360031b1c16905538620008d8565b6200094491503d806000833e620007de8183620010e1565b386200056f565b60009260005b6007198316830381106200096f57505060031c01553880806200050a565b909360206200099a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000951565b6000805b60088110620009bf575083820155600101620004f1565b94906020620009ea600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620009a8565b602060005260008051602062001e2a833981519152600284901b601c168062000a48575b506007840160031c81015b6007830160031c8201811062000a3b575050620004d4565b6000815560010162000a23565b60001990816007870160031c8401019182549160200360031b1c1690553862000a18565b62000a8491503d806000833e620007de8183620010e1565b38620004a0565b60009260005b60071983168303811062000aaf57505060031c01553880806200043b565b9093602062000ada600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000a91565b6000805b6008811062000aff57508382015560010162000422565b9490602062000b2a600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000ae8565b601f6000527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807600284901b601c168062000b99575b506007840160031c81015b6007830160031c8201811062000b8c5750506200040f565b6000815560010162000b74565b60001990816007870160031c8401019182549160200360031b1c1690553862000b69565b62000bd591503d806000833e620007de8183620010e1565b38620003db565b60009260005b60071983168303811062000c0057505060031c015538808062000368565b9093602062000c2b600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000be2565b6000805b6008811062000c505750838201556001016200034f565b9490602062000c7b600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000c39565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c168062000cea575b506007840160031c81015b6007830160031c8201811062000cdd5750506200033c565b6000815560010162000cc5565b60001990816007870160031c8401019182549160200360031b1c1690553862000cba565b62000d2691503d806000833e620007de8183620010e1565b3862000308565b60009260005b60071983168303811062000d5157505060031c015538808062000295565b9093602062000d7c600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000d33565b6000805b6008811062000da15750838201556001016200027c565b9490602062000dcc600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000d8a565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c168062000e3b575b506007840160031c81015b6007830160031c8201811062000e2e57505062000269565b6000815560010162000e16565b60001990816007870160031c8401019182549160200360031b1c1690553862000e0b565b62000e7791503d806000833e620007de8183620010e1565b3862000235565b60009260005b60071983168303811062000ea257505060031c0155388080620001c2565b9093602062000ecd600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000e84565b6000805b6008811062000ef2575083820155600101620001a9565b9490602062000f1d600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000edb565b601c6000526020600020601c8460021b168062000f6f575b506007840160031c81015b6007830160031c8201811062000f6257505062000196565b6000815560010162000f4a565b60001990816007870160031c8401019182549160200360031b1c1690553862000f3f565b62000fab91503d806000833e620007de8183620010e1565b3862000162565b9260009360005b81811062000fd35750505060031c015538808080620000ef565b909194602062000fff600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000fb9565b6000805b6008811062001025575083820155600101620000d5565b9490602062001050600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200100e565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b1680620010a1575b505b818110620010945750620000c2565b6000815560010162001085565b600019908183019182549160200360031b1c1690553862001083565b620010d591503d806000833e620007de8183620010e1565b386200008e565b600080fd5b601f909101601f19168101906001600160401b03821190821017620007b057604052565b906020908183820312620010dc5782516001600160401b0393848211620010dc570181601f82011215620010dc578051938411620007b0578360051b90604051946200115485840187620010e1565b85528380860192820101928311620010dc578301905b82821062001179575050505090565b81516001600160e01b031981168103620010dc5781529083019083016200116a56fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220082d36430fdff86991a68980bfd9aa3976dc09d31b5fa052c053fd1de8dcfb9b64736f6c63430008130033c97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb","sourceMap":"6973:2395:91:-:0;;;;;;;1594:4:2;6973:2395:91;;;;1594:4:2;6973:2395:91;;;1594:4:2;6973:2395:91;3201:4:5;6973:2395:91;;;3201:4:5;6973:2395:91;;;;7668:58;;6973:2395;3201:4:5;7668:58:91;;6973:2395;;;;;;;;;;;1594:4:2;7668:15:91;6973:2395;7668:15;;:58;;;;;;;1594:4:2;7668:58:91;;;-1:-1:-1;;6973:2395:91;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;7648:78;6973:2395;;7648:78;6973:2395;;;;;;-1:-1:-1;6973:2395:91;;;;7648:78;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;-1:-1:-1;;;6973:2395:91;;;;;;;;;;;;;;;;;7757:59;;6973:2395;3201:4:5;7757:59:91;;6973:2395;;;;;;;;;;;1594:4:2;7668:15:91;6973:2395;7668:15;;7757:59;;;;;;;1594:4:2;7757:59:91;;;6973:2395;-1:-1:-1;6973:2395:91;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;7736:80;6973:2395;;7736:80;6973:2395;;;;;;;;;;;7736:80;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;-1:-1:-1;;;6973:2395:91;;;;;;;-1:-1:-1;;6973:2395:91;;-1:-1:-1;;;7846:57:91;;6973:2395;3201:4:5;7846:57:91;;6973:2395;;;;;;;;;;;;-1:-1:-1;;6973:2395:91;;;7668:15;7846:57;;;;;;;1594:4:2;7846:57:91;;;6973:2395;-1:-1:-1;6973:2395:91;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;7826:77;6973:2395;;7826:77;6973:2395;;;;;;;;;;;7826:77;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;-1:-1:-1;;;6973:2395:91;;;;;;;-1:-1:-1;;6973:2395:91;;-1:-1:-1;;;7935:58:91;;6973:2395;3201:4:5;7935:58:91;;6973:2395;;;;;;;;;;;;-1:-1:-1;;6973:2395:91;;;7668:15;7935:58;;;;;;;1594:4:2;7935:58:91;;;6973:2395;-1:-1:-1;6973:2395:91;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;7913:80;6973:2395;;7913:80;6973:2395;;;;;;;;;;;7913:80;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;-1:-1:-1;;;6973:2395:91;;;;;;;-1:-1:-1;;6973:2395:91;;-1:-1:-1;;;8029:65:91;;6973:2395;3201:4:5;8029:65:91;;6973:2395;7826:77;6973:2395;;;;;;;;;;-1:-1:-1;;6973:2395:91;;;7668:15;8029:65;;;;;;;1594:4:2;8029:65:91;;;6973:2395;-1:-1:-1;6973:2395:91;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;8003:91;6973:2395;;8003:91;6973:2395;;;;;;;;;;;8003:91;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;-1:-1:-1;;;6973:2395:91;;;;;;;-1:-1:-1;;6973:2395:91;;-1:-1:-1;;;8131:51:91;;6973:2395;3201:4:5;8131:51:91;;6973:2395;;;;;;-1:-1:-1;;;6973:2395:91;;;;;-1:-1:-1;;6973:2395:91;;;7668:15;8131:51;;;;;;;1594:4:2;8131:51:91;;;6973:2395;-1:-1:-1;6973:2395:91;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6973:2395:91;1594:4:2;6973:2395:91;;;;;;-1:-1:-1;;;;;;;;;;;6973:2395:91;;;;;;;;;-1:-1:-1;;;6973:2395:91;;;;;;;-1:-1:-1;;6973:2395:91;;-1:-1:-1;;;8212:51:91;;6973:2395;3201:4:5;8212:51:91;;6973:2395;;;;;;-1:-1:-1;;;6973:2395:91;;;;;-1:-1:-1;;6973:2395:91;;;7668:15;8212:51;;;;;;;1594:4:2;8212:51:91;;;6973:2395;-1:-1:-1;6973:2395:91;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;8192:71;6973:2395;;8192:71;6973:2395;;;;;;;;;;;8192:71;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;-1:-1:-1;;;6973:2395:91;;;;;;;-1:-1:-1;;6973:2395:91;;-1:-1:-1;;;8293:53:91;;6973:2395;3201:4:5;8293:53:91;;6973:2395;;;;;;-1:-1:-1;;;6973:2395:91;;;;;-1:-1:-1;;6973:2395:91;;;7668:15;8293:53;;;;;;;1594:4:2;8293:53:91;;;6973:2395;-1:-1:-1;6973:2395:91;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;8273:73;6973:2395;;8273:73;6973:2395;;;;;;;;;;;8273:73;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;1594:4:2;6973:2395:91;;;;;;-1:-1:-1;;;6973:2395:91;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6973:2395:91;;;;;;-1:-1:-1;6973:2395:91;;;;1594:4:2;6973:2395:91;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8273:73;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;7736:80;6973:2395;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;3201:4:5;6973:2395:91;;1594:4:2;6973:2395:91;8293:53;;;;;;1594:4:2;8293:53:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;6973:2395;;;1594:4:2;6973:2395:91;;;;;;1594:4:2;6973:2395:91;1594:4:2;6973:2395:91;-1:-1:-1;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6973:2395:91;;;;;;-1:-1:-1;6973:2395:91;;;;1594:4:2;6973:2395:91;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8192:71;1594:4:2;6973:2395:91;;;;;;7736:80;6973:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8212:51;;;;;;1594:4:2;8212:51:91;;;;;;:::i;:::-;;;;6973:2395;1594:4:2;6973:2395:91;1594:4:2;6973:2395:91;-1:-1:-1;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6973:2395:91;;;;;;-1:-1:-1;6973:2395:91;;;;1594:4:2;6973:2395:91;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;-1:-1:-1;;;;;;;;;;;6973:2395:91;;;;7736:80;6973:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8131:51;;;;;;1594:4:2;8131:51:91;;;;;;:::i;:::-;;;;6973:2395;1594:4:2;6973:2395:91;1594:4:2;6973:2395:91;-1:-1:-1;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6973:2395:91;;;;;;-1:-1:-1;6973:2395:91;;;;1594:4:2;6973:2395:91;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8003:91;1594:4:2;6973:2395:91;;;;;;7736:80;6973:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8029:65;;;;;;1594:4:2;8029:65:91;;;;;;:::i;:::-;;;;6973:2395;1594:4:2;6973:2395:91;1594:4:2;6973:2395:91;-1:-1:-1;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6973:2395:91;;;;;;-1:-1:-1;6973:2395:91;;;;1594:4:2;6973:2395:91;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7913:80;1594:4:2;6973:2395:91;;;;;;7736:80;6973:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7935:58;;;;;;1594:4:2;7935:58:91;;;;;;:::i;:::-;;;;6973:2395;1594:4:2;6973:2395:91;1594:4:2;6973:2395:91;-1:-1:-1;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6973:2395:91;;;;;;-1:-1:-1;6973:2395:91;;;;1594:4:2;6973:2395:91;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7826:77;1594:4:2;6973:2395:91;;;;;;7736:80;6973:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7846:57;;;;;;1594:4:2;7846:57:91;;;;;;:::i;:::-;;;;6973:2395;1594:4:2;6973:2395:91;1594:4:2;6973:2395:91;-1:-1:-1;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6973:2395:91;;;;;;-1:-1:-1;6973:2395:91;;;;1594:4:2;6973:2395:91;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7736:80;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;7736:80;6973:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7757:59;;;;;;1594:4:2;7757:59:91;;;;;;:::i;:::-;;;;6973:2395;;1594:4:2;6973:2395:91;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6973:2395:91;;;;;;-1:-1:-1;6973:2395:91;;;;1594:4:2;6973:2395:91;;;;;;;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7648:78;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6973:2395:91;;1594:4:2;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;7668:58;;;;;;1594:4:2;7668:58:91;;;;;;:::i;:::-;;;;6973:2395;;;;;;;;;-1:-1:-1;;6973:2395:91;;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;6973:2395:91;;;;;;;;;;;;;;;","linkReferences":{"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":104,"length":20},{"start":316,"length":20},{"start":527,"length":20},{"start":738,"length":20},{"start":949,"length":20},{"start":1146,"length":20},{"start":1353,"length":20},{"start":1552,"length":20}]}}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220082d36430fdff86991a68980bfd9aa3976dc09d31b5fa052c053fd1de8dcfb9b64736f6c63430008130033","sourceMap":"6973:2395:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;6973:2395:91;;;;:::i;:::-;;1671:64:2;6973:2395:91;;1671:64:2;;;:::i;:::-;6973:2395:91;;;1982:18:8;6973:2395:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6973:2395:91;;;;;;;;-1:-1:-1;6973:2395:91;;;;;-1:-1:-1;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6973:2395:91;;;;;-1:-1:-1;6973:2395:91;;;;;;;;;-1:-1:-1;6973:2395:91;;;;-1:-1:-1;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;6973:2395:91;;;;:::i;:::-;;1671:64:2;6973:2395:91;;1671:64:2;;;:::i;:::-;6973:2395:91;;;2899:18:8;6973:2395:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;6973:2395:91;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6973:2395:91;;;;;;;;;;;;-1:-1:-1;;;;;;6973:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6973:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6973:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6973:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6973:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6973:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;6973:2395:91;;;;:::i;:::-;;1671:64:2;6973:2395:91;;1671:64:2;;;:::i;:::-;6973:2395:91;;;2416:18:8;6973:2395:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6973:2395:91;;;;;;;;-1:-1:-1;6973:2395:91;;;;;-1:-1:-1;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6973:2395:91;;;;;-1:-1:-1;6973:2395:91;;;;;;;;;-1:-1:-1;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;6973:2395:91;;;;:::i;:::-;;1671:64:2;6973:2395:91;;1671:64:2;;;:::i;:::-;6973:2395:91;;;2592:26:8;6973:2395:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;6973:2395:91;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6973:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6973:2395:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;6973:2395:91;;;;;;;;;;;;;;;;;1671:64:2;6973:2395:91;1671:64:2;;;;;;;;;;;6973:2395:91;1671:64:2;:::o;:::-;6973:2395:91;;;1671:64:2;;;;;;;;;;6973:2395:91;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;6973:2395:91;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;6973:2395:91;;;2196:43:2;;;6973:2395:91;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;6973:2395:91;;-1:-1:-1;1671:64:2;;6973:2395:91;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;6973:2395:91;1671:64:2;2086:175;;;6973:2395:91;;;;;;1671:64:2;6973:2395:91;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;6973:2395:91;;;1671:64:2;6973:2395:91;;;-1:-1:-1;;6973:2395:91;2196:43:2;1671:64;6973:2395:91;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;6973:2395:91;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;6973:2395:91;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;6973:2395:91;1671:64:2;;;6973:2395:91;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;6973:2395:91;1671:64:2;6973:2395:91;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"TestSubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402\",\"dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd\",\"dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3\",\"dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorCheckpointingFacet.sol\":{\"keccak256\":\"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a\",\"dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8\",\"dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm\"]},\"src/subnet/SubnetActorPauseFacet.sol\":{\"keccak256\":\"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14\",\"dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb\"]},\"src/subnet/SubnetActorRewardFacet.sol\":{\"keccak256\":\"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088\",\"dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0x67f2f3bb9cc8e8b503a8399df4c5c5cd86388257fc90451e5e352382fed9eaa6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be78f3e3535929f0b5955f2053bf409dd593d20b561a7f19efa917cdbef4bc28\",\"dweb:/ipfs/QmcwrfvXweJEEK8h2mdt9UtCpGg2WCWN8kRjc8M54sRyiv\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f\",\"dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorMock.sol\":{\"keccak256\":\"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43\",\"dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestSubnetActor"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa","urls":["bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402","dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x743a3890bc146786b88906ed54f64e5de83bcdf234ff86ef0c507f40736e89f6","urls":["bzz-raw://01c15101d3faf43400dbb5749aaafe3c91d04420afe014bf8c47f8dee64162bd","dweb:/ipfs/QmQMAvwPXwZyKxopEkaG7QvbWZhiJ2AbC1XeUcasZ2LHpD"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451","urls":["bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3","dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorCheckpointingFacet.sol":{"keccak256":"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96","urls":["bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a","dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c","urls":["bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8","dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorPauseFacet.sol":{"keccak256":"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49","urls":["bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14","dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorRewardFacet.sol":{"keccak256":"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435","urls":["bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088","dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0x67f2f3bb9cc8e8b503a8399df4c5c5cd86388257fc90451e5e352382fed9eaa6","urls":["bzz-raw://be78f3e3535929f0b5955f2053bf409dd593d20b561a7f19efa917cdbef4bc28","dweb:/ipfs/QmcwrfvXweJEEK8h2mdt9UtCpGg2WCWN8kRjc8M54sRyiv"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d","urls":["bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f","dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorMock.sol":{"keccak256":"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a","urls":["bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43","dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55677,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49885],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49927],"CrossMsgHelper":[40725],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49951],"FvmAddressHelper":[40906],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50157],"IntegrationTestBase":[55676],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49871],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50118],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52286],"SelectorLibrary":[56636],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49944],"StorableMsgHelper":[47414],"Subnet":[50044],"SubnetActorCheckpointingFacet":[50577],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[51235],"SubnetActorManagerFacet":[51946],"SubnetActorMock":[58342],"SubnetActorPauseFacet":[51991],"SubnetActorRewardFacet":[52158],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52524],"SubnetID":[50030],"SubnetIDHelper":[48025],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50182],"SupplySource":[50179],"SupplySourceHelper":[48351],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52925],"TestParams":[52696],"TestRegistry":[52760],"TestSubnetActor":[53089],"TestUtils":[57424],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50164],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:35596:91","nodes":[{"id":52526,"nodeType":"PragmaDirective","src":"46:23:91","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52527,"nodeType":"ImportDirective","src":"71:28:91","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52528,"nodeType":"ImportDirective","src":"100:36:91","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"137:37:91","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52532,"nodeType":"ImportDirective","src":"176:72:91","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52530,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"249:61:91","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52533,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"311:56:91","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52535,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52541,"nodeType":"ImportDirective","src":"368:102:91","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":52537,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"376:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"386:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"406:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"419:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52543,"nodeType":"ImportDirective","src":"471:57:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":52542,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"479:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52552,"nodeType":"ImportDirective","src":"529:140:91","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":52544,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"537:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52545,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"547:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52546,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"559:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52547,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"575:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52548,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"591:6:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52549,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"599:12:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52550,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"613:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52551,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"625:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52554,"nodeType":"ImportDirective","src":"670:61:91","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":52553,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"678:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52556,"nodeType":"ImportDirective","src":"732:65:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40907,"symbolAliases":[{"foreign":{"id":52555,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"740:16:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52558,"nodeType":"ImportDirective","src":"798:61:91","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":52557,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"806:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52560,"nodeType":"ImportDirective","src":"860:67:91","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":52559,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"868:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52562,"nodeType":"ImportDirective","src":"928:56:91","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52561,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52564,"nodeType":"ImportDirective","src":"985:57:91","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52563,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52566,"nodeType":"ImportDirective","src":"1043:65:91","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52565,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52568,"nodeType":"ImportDirective","src":"1109:73:91","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52567,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52570,"nodeType":"ImportDirective","src":"1183:79:91","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52569,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52572,"nodeType":"ImportDirective","src":"1263:75:91","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52571,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52574,"nodeType":"ImportDirective","src":"1340:80:91","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52573,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52576,"nodeType":"ImportDirective","src":"1421:80:91","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52575,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52578,"nodeType":"ImportDirective","src":"1502:84:91","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52577,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52580,"nodeType":"ImportDirective","src":"1587:82:91","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52579,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52582,"nodeType":"ImportDirective","src":"1671:60:91","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"./mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":58343,"symbolAliases":[{"foreign":{"id":52581,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58342,"src":"1679:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52584,"nodeType":"ImportDirective","src":"1732:82:91","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":52583,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"1740:23:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52586,"nodeType":"ImportDirective","src":"1815:78:91","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":52585,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"1823:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52588,"nodeType":"ImportDirective","src":"1894:94:91","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":52587,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"1902:29:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52590,"nodeType":"ImportDirective","src":"1989:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":52589,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"1997:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52592,"nodeType":"ImportDirective","src":"2070:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":52591,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"2078:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52594,"nodeType":"ImportDirective","src":"2152:71:91","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52593,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"2160:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52596,"nodeType":"ImportDirective","src":"2224:82:91","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":52595,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"2232:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52598,"nodeType":"ImportDirective","src":"2307:78:91","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":52597,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"2315:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52600,"nodeType":"ImportDirective","src":"2387:71:91","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52599,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2395:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52602,"nodeType":"ImportDirective","src":"2459:67:91","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52601,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2467:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52604,"nodeType":"ImportDirective","src":"2527:69:91","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":52603,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"2535:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52606,"nodeType":"ImportDirective","src":"2597:50:91","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":57425,"symbolAliases":[{"foreign":{"id":52605,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57424,"src":"2605:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52608,"nodeType":"ImportDirective","src":"2648:62:91","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55677,"sourceUnit":56637,"symbolAliases":[{"foreign":{"id":52607,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"2656:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52696,"nodeType":"ContractDefinition","src":"2712:1194:91","nodes":[{"id":52615,"nodeType":"VariableDeclaration","src":"2738:44:91","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2754:9:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2738:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2771:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52611,"name":"uint64","nodeType":"ElementaryTypeName","src":"2771:6:91","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52610,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2766:4:91","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2766:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2779:3:91","memberName":"max","nodeType":"MemberAccess","src":"2766:16:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52621,"nodeType":"VariableDeclaration","src":"2788:91:91","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2805:20:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52616,"name":"address","nodeType":"ElementaryTypeName","src":"2788:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2836:42:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2828:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52617,"name":"address","nodeType":"ElementaryTypeName","src":"2828:7:91","typeDescriptions":{}}},"id":52620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2828:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52624,"nodeType":"VariableDeclaration","src":"2885:42:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2901:22:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52622,"name":"uint64","nodeType":"ElementaryTypeName","src":"2885:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2926:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52627,"nodeType":"VariableDeclaration","src":"2933:54:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2950:27:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52625,"name":"uint256","nodeType":"ElementaryTypeName","src":"2933:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2980:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52630,"nodeType":"VariableDeclaration","src":"2993:47:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"3008:27:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52628,"name":"uint8","nodeType":"ElementaryTypeName","src":"2993:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:2:91","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52633,"nodeType":"VariableDeclaration","src":"3046:51:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"3062:25:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52631,"name":"uint64","nodeType":"ElementaryTypeName","src":"3046:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3090:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52636,"nodeType":"VariableDeclaration","src":"3103:46:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"3119:25:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52634,"name":"uint64","nodeType":"ElementaryTypeName","src":"3103:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52639,"nodeType":"VariableDeclaration","src":"3155:44:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"3171:16:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52637,"name":"string","nodeType":"ElementaryTypeName","src":"3155:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3190:9:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52642,"nodeType":"VariableDeclaration","src":"3205:36:91","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"3220:7:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52640,"name":"bytes","nodeType":"ElementaryTypeName","src":"3205:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52641,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3230:11:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52645,"nodeType":"VariableDeclaration","src":"3247:48:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3264:21:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52643,"name":"uint256","nodeType":"ElementaryTypeName","src":"3247:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52648,"nodeType":"VariableDeclaration","src":"3301:49:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3318:22:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52646,"name":"uint256","nodeType":"ElementaryTypeName","src":"3301:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3343:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52654,"nodeType":"VariableDeclaration","src":"3356:52:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3373:21:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52649,"name":"address","nodeType":"ElementaryTypeName","src":"3356:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3405:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3397:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52650,"name":"address","nodeType":"ElementaryTypeName","src":"3397:7:91","typeDescriptions":{}}},"id":52653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3397:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52660,"nodeType":"VariableDeclaration","src":"3414:54:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3431:23:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52655,"name":"address","nodeType":"ElementaryTypeName","src":"3414:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3465:2:91","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3457:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52656,"name":"address","nodeType":"ElementaryTypeName","src":"3457:7:91","typeDescriptions":{}}},"id":52659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3457:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52665,"nodeType":"VariableDeclaration","src":"3474:57:91","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3490:9:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52661,"name":"uint64","nodeType":"ElementaryTypeName","src":"3474:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3502:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52663,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"3506:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3502:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52668,"nodeType":"VariableDeclaration","src":"3537:50:91","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3554:23:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3537:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3580:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52671,"nodeType":"VariableDeclaration","src":"3593:53:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3609:31:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52669,"name":"uint16","nodeType":"ElementaryTypeName","src":"3593:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3643:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52674,"nodeType":"VariableDeclaration","src":"3652:38:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3666:19:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52672,"name":"int8","nodeType":"ElementaryTypeName","src":"3652:4:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3688:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52677,"nodeType":"VariableDeclaration","src":"3696:37:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3712:15:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52675,"name":"uint64","nodeType":"ElementaryTypeName","src":"3696:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3730:3:91","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52683,"nodeType":"VariableDeclaration","src":"3739:45:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3756:15:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3782:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3774:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52679,"name":"address","nodeType":"ElementaryTypeName","src":"3774:7:91","typeDescriptions":{}}},"id":52682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52689,"nodeType":"VariableDeclaration","src":"3790:57:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3807:24:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52684,"name":"address","nodeType":"ElementaryTypeName","src":"3790:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3842:4:91","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3834:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52685,"name":"address","nodeType":"ElementaryTypeName","src":"3834:7:91","typeDescriptions":{}}},"id":52688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52695,"nodeType":"VariableDeclaration","src":"3853:50:91","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3870:19:91","scope":52696,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52690,"name":"address","nodeType":"ElementaryTypeName","src":"3853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3900:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3892:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52691,"name":"address","nodeType":"ElementaryTypeName","src":"3892:7:91","typeDescriptions":{}}},"id":52694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3892:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52696],"name":"TestParams","nameLocation":"2721:10:91","scope":55677,"usedErrors":[]},{"id":52760,"nodeType":"ContractDefinition","src":"3908:824:91","nodes":[{"id":52703,"nodeType":"VariableDeclaration","src":"3956:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3965:28:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52701,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3956:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52702,"nodeType":"ArrayTypeName","src":"3956:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52706,"nodeType":"VariableDeclaration","src":"3999:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"4008:34:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52704,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3999:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52705,"nodeType":"ArrayTypeName","src":"3999:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52709,"nodeType":"VariableDeclaration","src":"4048:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"4057:23:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52707,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4048:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52708,"nodeType":"ArrayTypeName","src":"4048:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52712,"nodeType":"VariableDeclaration","src":"4086:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"4095:23:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52710,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4086:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52711,"nodeType":"ArrayTypeName","src":"4086:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52715,"nodeType":"VariableDeclaration","src":"4125:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"4147:15:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52714,"nodeType":"UserDefinedTypeName","pathNode":{"id":52713,"name":"SubnetRegistryDiamond","nameLocations":["4125:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"4125:21:91"},"referencedDeclaration":36853,"src":"4125:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52718,"nodeType":"VariableDeclaration","src":"4168:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"4186:14:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52717,"nodeType":"UserDefinedTypeName","pathNode":{"id":52716,"name":"DiamondLoupeFacet","nameLocations":["4168:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"4168:17:91"},"referencedDeclaration":37355,"src":"4168:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52721,"nodeType":"VariableDeclaration","src":"4206:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"4222:14:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52720,"nodeType":"UserDefinedTypeName","pathNode":{"id":52719,"name":"DiamondCutFacet","nameLocations":["4206:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"4206:15:91"},"referencedDeclaration":36918,"src":"4206:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52724,"nodeType":"VariableDeclaration","src":"4242:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4262:19:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52723,"nodeType":"UserDefinedTypeName","pathNode":{"id":52722,"name":"RegisterSubnetFacet","nameLocations":["4242:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"4242:19:91"},"referencedDeclaration":52286,"src":"4242:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52727,"nodeType":"VariableDeclaration","src":"4287:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4305:25:91","scope":52760,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52726,"nodeType":"UserDefinedTypeName","pathNode":{"id":52725,"name":"SubnetGetterFacet","nameLocations":["4287:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"4287:17:91"},"referencedDeclaration":52524,"src":"4287:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52759,"nodeType":"FunctionDefinition","src":"4337:393:91","nodes":[],"body":{"id":52758,"nodeType":"Block","src":"4351:379:91","nodes":[],"statements":[{"expression":{"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52730,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52703,"src":"4361:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4425:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52731,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4392:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4408:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4392:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4392:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4361:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52736,"nodeType":"ExpressionStatement","src":"4361:86:91"},{"expression":{"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52737,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"4457:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4527:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52738,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4494:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4510:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4494:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4494:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4457:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52743,"nodeType":"ExpressionStatement","src":"4457:90:91"},{"expression":{"id":52749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52744,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"4557:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4616:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52745,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4583:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4599:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4583:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4583:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4557:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52750,"nodeType":"ExpressionStatement","src":"4557:77:91"},{"expression":{"id":52756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52751,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"4644:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4703:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52752,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"4670:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4686:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"4670:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4670:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4644:79:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52757,"nodeType":"ExpressionStatement","src":"4644:79:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52728,"nodeType":"ParameterList","parameters":[],"src":"4348:2:91"},"returnParameters":{"id":52729,"nodeType":"ParameterList","parameters":[],"src":"4351:0:91"},"scope":52760,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52697,"name":"Test","nameLocations":["3933:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3933:4:91"},"id":52698,"nodeType":"InheritanceSpecifier","src":"3933:4:91"},{"baseName":{"id":52699,"name":"TestParams","nameLocations":["3939:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"3939:10:91"},"id":52700,"nodeType":"InheritanceSpecifier","src":"3939:10:91"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52760,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3917:12:91","scope":55677,"usedErrors":[]},{"id":52925,"nodeType":"ContractDefinition","src":"4734:2237:91","nodes":[{"id":52767,"nodeType":"VariableDeclaration","src":"4786:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4795:29:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52765,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4786:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52766,"nodeType":"ArrayTypeName","src":"4786:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52770,"nodeType":"VariableDeclaration","src":"4830:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4839:29:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52768,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4830:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52769,"nodeType":"ArrayTypeName","src":"4830:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52773,"nodeType":"VariableDeclaration","src":"4874:40:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4883:31:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52771,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4874:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52772,"nodeType":"ArrayTypeName","src":"4874:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52776,"nodeType":"VariableDeclaration","src":"4920:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4929:30:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52774,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4920:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52775,"nodeType":"ArrayTypeName","src":"4920:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52779,"nodeType":"VariableDeclaration","src":"4966:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4975:18:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52777,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4966:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52778,"nodeType":"ArrayTypeName","src":"4966:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52782,"nodeType":"VariableDeclaration","src":"4999:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"5008:17:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52780,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4999:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52781,"nodeType":"ArrayTypeName","src":"4999:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52785,"nodeType":"VariableDeclaration","src":"5031:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"5040:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52783,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5031:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52784,"nodeType":"ArrayTypeName","src":"5031:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52788,"nodeType":"VariableDeclaration","src":"5067:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"5076:17:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52786,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5067:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52787,"nodeType":"ArrayTypeName","src":"5067:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52791,"nodeType":"VariableDeclaration","src":"5099:25:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"5108:16:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52789,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5099:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52790,"nodeType":"ArrayTypeName","src":"5099:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52794,"nodeType":"VariableDeclaration","src":"5131:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"5146:14:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52793,"nodeType":"UserDefinedTypeName","pathNode":{"id":52792,"name":"GatewayDiamond","nameLocations":["5131:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"5131:14:91"},"referencedDeclaration":36170,"src":"5131:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52797,"nodeType":"VariableDeclaration","src":"5166:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"5186:9:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52796,"nodeType":"UserDefinedTypeName","pathNode":{"id":52795,"name":"GatewayManagerFacet","nameLocations":["5166:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"5166:19:91"},"referencedDeclaration":38870,"src":"5166:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52800,"nodeType":"VariableDeclaration","src":"5201:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"5220:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52799,"nodeType":"UserDefinedTypeName","pathNode":{"id":52798,"name":"GatewayGetterFacet","nameLocations":["5201:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"5201:18:91"},"referencedDeclaration":38317,"src":"5201:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52803,"nodeType":"VariableDeclaration","src":"5234:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5253:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52802,"nodeType":"UserDefinedTypeName","pathNode":{"id":52801,"name":"CheckpointingFacet","nameLocations":["5234:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5234:18:91"},"referencedDeclaration":39870,"src":"5234:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52806,"nodeType":"VariableDeclaration","src":"5279:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5298:20:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52805,"nodeType":"UserDefinedTypeName","pathNode":{"id":52804,"name":"XnetMessagingFacet","nameLocations":["5279:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5279:18:91"},"referencedDeclaration":40144,"src":"5279:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52809,"nodeType":"VariableDeclaration","src":"5324:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5345:22:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52808,"nodeType":"UserDefinedTypeName","pathNode":{"id":52807,"name":"TopDownFinalityFacet","nameLocations":["5324:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5324:20:91"},"referencedDeclaration":40071,"src":"5324:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52812,"nodeType":"VariableDeclaration","src":"5373:41:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5393:21:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52811,"nodeType":"UserDefinedTypeName","pathNode":{"id":52810,"name":"BottomUpRouterFacet","nameLocations":["5373:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5373:19:91"},"referencedDeclaration":39601,"src":"5373:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52815,"nodeType":"VariableDeclaration","src":"5420:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5442:11:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52814,"nodeType":"UserDefinedTypeName","pathNode":{"id":52813,"name":"GatewayMessengerFacet","nameLocations":["5420:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5420:21:91"},"referencedDeclaration":39235,"src":"5420:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52818,"nodeType":"VariableDeclaration","src":"5459:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5475:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52817,"nodeType":"UserDefinedTypeName","pathNode":{"id":52816,"name":"DiamondCutFacet","nameLocations":["5459:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5459:15:91"},"referencedDeclaration":36918,"src":"5459:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52821,"nodeType":"VariableDeclaration","src":"5489:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5507:8:91","scope":52925,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52820,"nodeType":"UserDefinedTypeName","pathNode":{"id":52819,"name":"DiamondLoupeFacet","nameLocations":["5489:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5489:17:91"},"referencedDeclaration":37355,"src":"5489:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52888,"nodeType":"FunctionDefinition","src":"5522:835:91","nodes":[],"body":{"id":52887,"nodeType":"Block","src":"5536:821:91","nodes":[],"statements":[{"expression":{"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52824,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52767,"src":"5546:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5611:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52825,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5578:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5594:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5578:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5546:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52830,"nodeType":"ExpressionStatement","src":"5546:86:91"},{"expression":{"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52831,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52770,"src":"5642:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5707:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52832,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5674:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5690:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5674:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5674:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5642:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52837,"nodeType":"ExpressionStatement","src":"5642:86:91"},{"expression":{"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52838,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52773,"src":"5738:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5805:22:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52839,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5772:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5788:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5772:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5772:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5738:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52844,"nodeType":"ExpressionStatement","src":"5738:90:91"},{"expression":{"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52845,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"5838:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5904:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52846,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5871:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5887:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5871:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5871:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5838:88:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52851,"nodeType":"ExpressionStatement","src":"5838:88:91"},{"expression":{"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52852,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52782,"src":"5937:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5990:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52853,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"5957:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5973:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"5957:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5957:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5937:74:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52858,"nodeType":"ExpressionStatement","src":"5937:74:91"},{"expression":{"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52859,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52779,"src":"6021:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6075:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52860,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6042:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6058:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6042:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6042:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6021:76:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52865,"nodeType":"ExpressionStatement","src":"6021:76:91"},{"expression":{"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52866,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52785,"src":"6107:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6163:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52867,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6130:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6146:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6130:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6130:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6107:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52872,"nodeType":"ExpressionStatement","src":"6107:80:91"},{"expression":{"id":52878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52873,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52788,"src":"6197:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6250:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52874,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6217:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6233:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6217:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6217:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6197:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52879,"nodeType":"ExpressionStatement","src":"6197:71:91"},{"expression":{"id":52885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52880,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52791,"src":"6278:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6330:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52881,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"6297:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6313:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"6297:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6297:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6278:72:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52886,"nodeType":"ExpressionStatement","src":"6278:72:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52822,"nodeType":"ParameterList","parameters":[],"src":"5533:2:91"},"returnParameters":{"id":52823,"nodeType":"ParameterList","parameters":[],"src":"5536:0:91"},"scope":52925,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52924,"nodeType":"FunctionDefinition","src":"6363:606:91","nodes":[],"body":{"id":52923,"nodeType":"Block","src":"6467:502:91","nodes":[],"statements":[{"assignments":[52898],"declarations":[{"constant":false,"id":52898,"mutability":"mutable","name":"params","nameLocation":"6517:6:91","nodeType":"VariableDeclaration","scope":52923,"src":"6477:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52897,"nodeType":"UserDefinedTypeName","pathNode":{"id":52896,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6477:14:91","6492:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6477:32:91"},"referencedDeclaration":35883,"src":"6477:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52920,"initialValue":{"arguments":[{"arguments":[{"id":52902,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"6602:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6640:1:91","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":52905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6626:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52903,"name":"address","nodeType":"ElementaryTypeName","src":"6630:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52904,"nodeType":"ArrayTypeName","src":"6630:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6626:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52901,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"6586:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6596:4:91","6619:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"6586:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52909,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"6679:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52910,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"6726:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52911,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52630,"src":"6781:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6857:1:91","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":52915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6841:15:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52913,"nodeType":"UserDefinedTypeName","pathNode":{"id":52912,"name":"Validator","nameLocations":["6845:9:91"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"6845:9:91"},"referencedDeclaration":50164,"src":"6845:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":52914,"nodeType":"ArrayTypeName","src":"6845:11:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6841:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52918,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"6896:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52899,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6526:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6541:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6526:32:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6573:11:91","6658:19:91","6718:6:91","6761:18:91","6822:17:91","6873:21:91"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6526:412:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6477:461:91"},{"expression":{"id":52921,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"6956:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52893,"id":52922,"nodeType":"Return","src":"6949:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6372:20:91","parameters":{"id":52889,"nodeType":"ParameterList","parameters":[],"src":"6392:2:91"},"returnParameters":{"id":52893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52924,"src":"6426:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52891,"nodeType":"UserDefinedTypeName","pathNode":{"id":52890,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6426:14:91","6441:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6426:32:91"},"referencedDeclaration":35883,"src":"6426:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6425:41:91"},"scope":52925,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52761,"name":"Test","nameLocations":["4763:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4763:4:91"},"id":52762,"nodeType":"InheritanceSpecifier","src":"4763:4:91"},{"baseName":{"id":52763,"name":"TestParams","nameLocations":["4769:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"4769:10:91"},"id":52764,"nodeType":"InheritanceSpecifier","src":"4769:10:91"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52925,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4743:16:91","scope":55677,"usedErrors":[]},{"id":53089,"nodeType":"ContractDefinition","src":"6973:2395:91","nodes":[{"id":52932,"nodeType":"VariableDeclaration","src":"7024:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"7033:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52930,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7024:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52931,"nodeType":"ArrayTypeName","src":"7024:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52935,"nodeType":"VariableDeclaration","src":"7056:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"7065:18:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52933,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7056:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52934,"nodeType":"ArrayTypeName","src":"7056:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52938,"nodeType":"VariableDeclaration","src":"7089:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauserSelectors","nameLocation":"7098:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52936,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7089:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52937,"nodeType":"ArrayTypeName","src":"7089:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52941,"nodeType":"VariableDeclaration","src":"7121:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarderSelectors","nameLocation":"7130:19:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52939,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7121:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52940,"nodeType":"ArrayTypeName","src":"7121:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52944,"nodeType":"VariableDeclaration","src":"7155:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointerSelectors","nameLocation":"7164:23:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52942,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7155:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52943,"nodeType":"ArrayTypeName","src":"7155:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52947,"nodeType":"VariableDeclaration","src":"7193:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"7202:24:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52945,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7193:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52946,"nodeType":"ArrayTypeName","src":"7193:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52950,"nodeType":"VariableDeclaration","src":"7232:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"7241:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52948,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7232:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52949,"nodeType":"ArrayTypeName","src":"7232:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52953,"nodeType":"VariableDeclaration","src":"7264:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"7273:17:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52951,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7264:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52952,"nodeType":"ArrayTypeName","src":"7264:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52956,"nodeType":"VariableDeclaration","src":"7297:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"7316:9:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52955,"nodeType":"UserDefinedTypeName","pathNode":{"id":52954,"name":"SubnetActorDiamond","nameLocations":["7297:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"7297:18:91"},"referencedDeclaration":36615,"src":"7297:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52959,"nodeType":"VariableDeclaration","src":"7331:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7355:9:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52958,"nodeType":"UserDefinedTypeName","pathNode":{"id":52957,"name":"SubnetActorManagerFacet","nameLocations":["7331:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"7331:23:91"},"referencedDeclaration":51946,"src":"7331:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52962,"nodeType":"VariableDeclaration","src":"7370:22:91","nodes":[],"constant":false,"mutability":"mutable","name":"saMock","nameLocation":"7386:6:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"},"typeName":{"id":52961,"nodeType":"UserDefinedTypeName","pathNode":{"id":52960,"name":"SubnetActorMock","nameLocations":["7370:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"7370:15:91"},"referencedDeclaration":58342,"src":"7370:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"visibility":"internal"},{"id":52965,"nodeType":"VariableDeclaration","src":"7398:31:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7421:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52964,"nodeType":"UserDefinedTypeName","pathNode":{"id":52963,"name":"SubnetActorGetterFacet","nameLocations":["7398:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"7398:22:91"},"referencedDeclaration":51235,"src":"7398:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52968,"nodeType":"VariableDeclaration","src":"7435:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarder","nameLocation":"7458:10:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":52967,"nodeType":"UserDefinedTypeName","pathNode":{"id":52966,"name":"SubnetActorRewardFacet","nameLocations":["7435:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"7435:22:91"},"referencedDeclaration":52158,"src":"7435:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"},{"id":52971,"nodeType":"VariableDeclaration","src":"7474:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauser","nameLocation":"7496:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":52970,"nodeType":"UserDefinedTypeName","pathNode":{"id":52969,"name":"SubnetActorPauseFacet","nameLocations":["7474:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"7474:21:91"},"referencedDeclaration":51991,"src":"7474:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"},{"id":52974,"nodeType":"VariableDeclaration","src":"7510:44:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointer","nameLocation":"7540:14:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":52973,"nodeType":"UserDefinedTypeName","pathNode":{"id":52972,"name":"SubnetActorCheckpointingFacet","nameLocations":["7510:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"7510:29:91"},"referencedDeclaration":50577,"src":"7510:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"},{"id":52977,"nodeType":"VariableDeclaration","src":"7561:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7577:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52976,"nodeType":"UserDefinedTypeName","pathNode":{"id":52975,"name":"DiamondCutFacet","nameLocations":["7561:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7561:15:91"},"referencedDeclaration":36918,"src":"7561:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52980,"nodeType":"VariableDeclaration","src":"7591:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7609:8:91","scope":53089,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52979,"nodeType":"UserDefinedTypeName","pathNode":{"id":52978,"name":"DiamondLoupeFacet","nameLocations":["7591:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7591:17:91"},"referencedDeclaration":37355,"src":"7591:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":53040,"nodeType":"FunctionDefinition","src":"7624:729:91","nodes":[],"body":{"id":53039,"nodeType":"Block","src":"7638:715:91","nodes":[],"statements":[{"expression":{"id":52988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52983,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"7648:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7701:24:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52984,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7668:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7684:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7668:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7668:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7648:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52989,"nodeType":"ExpressionStatement","src":"7648:78:91"},{"expression":{"id":52995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52990,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"7736:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7790:25:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52991,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7757:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7773:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7757:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7757:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7736:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52996,"nodeType":"ExpressionStatement","src":"7736:80:91"},{"expression":{"id":53002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52997,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"7826:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":53000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7879:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""},"value":"SubnetActorPauseFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""}],"expression":{"id":52998,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7846:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":52999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7862:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7846:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7846:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7826:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53003,"nodeType":"ExpressionStatement","src":"7826:77:91"},{"expression":{"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53004,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"7913:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":53007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7968:24:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""},"value":"SubnetActorRewardFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""}],"expression":{"id":53005,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"7935:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7951:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"7935:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7935:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7913:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53010,"nodeType":"ExpressionStatement","src":"7913:80:91"},{"expression":{"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53011,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"8003:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":53014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8062:31:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""},"value":"SubnetActorCheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""}],"expression":{"id":53012,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8029:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8045:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8029:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8029:65:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8003:91:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53017,"nodeType":"ExpressionStatement","src":"8003:91:91"},{"expression":{"id":53023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53018,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"8104:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":53021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8164:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""},"value":"SubnetActorMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""}],"expression":{"id":53019,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8131:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8131:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8131:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8104:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53024,"nodeType":"ExpressionStatement","src":"8104:78:91"},{"expression":{"id":53030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53025,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"8192:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":53028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8245:17:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":53026,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8212:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8228:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8212:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8212:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8192:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53031,"nodeType":"ExpressionStatement","src":"8192:71:91"},{"expression":{"id":53037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53032,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"8273:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":53035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8326:19:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":53033,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56636,"src":"8293:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56636_$","typeString":"type(library SelectorLibrary)"}},"id":53034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8309:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56635,"src":"8293:32:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":53036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8293:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"8273:73:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53038,"nodeType":"ExpressionStatement","src":"8273:73:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52981,"nodeType":"ParameterList","parameters":[],"src":"7635:2:91"},"returnParameters":{"id":52982,"nodeType":"ParameterList","parameters":[],"src":"7638:0:91"},"scope":53089,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53088,"nodeType":"FunctionDefinition","src":"8359:1007:91","nodes":[],"body":{"id":53087,"nodeType":"Block","src":"8506:860:91","nodes":[],"statements":[{"assignments":[53050],"declarations":[{"constant":false,"id":53050,"mutability":"mutable","name":"native","nameLocation":"8536:6:91","nodeType":"VariableDeclaration","scope":53087,"src":"8516:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":53049,"nodeType":"UserDefinedTypeName","pathNode":{"id":53048,"name":"SupplySource","nameLocations":["8516:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"8516:12:91"},"referencedDeclaration":50179,"src":"8516:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53054,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53051,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"8545:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":53052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8564:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"8545:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8545:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"8516:56:91"},{"assignments":[53059],"declarations":[{"constant":false,"id":53059,"mutability":"mutable","name":"params","nameLocation":"8626:6:91","nodeType":"VariableDeclaration","scope":53087,"src":"8582:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8582:18:91","8601:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"8582:36:91"},"referencedDeclaration":36253,"src":"8582:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53084,"initialValue":{"arguments":[{"arguments":[{"id":53063,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"8712:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8750:1:91","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":53066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8736:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53064,"name":"address","nodeType":"ElementaryTypeName","src":"8740:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53065,"nodeType":"ArrayTypeName","src":"8740:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8736:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53062,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"8696:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8706:4:91","8729:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"8696:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53070,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53042,"src":"8784:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53071,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8811:13:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8825:10:91","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8811:24:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53073,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"8874:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53074,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52624,"src":"8928:22:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53075,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"8985:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53076,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52630,"src":"9044:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53077,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"9108:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53078,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52674,"src":"9165:19:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53079,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"9214:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53080,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"9265:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9280:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"9265:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":53082,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53050,"src":"9318:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53060,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"8635:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8654:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"8635:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8686:8:91","8768:14:91","8800:9:91","8849:23:91","8913:13:91","8964:19:91","9024:18:91","9085:21:91","9153:10:91","9198:14:91","9249:14:91","9304:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"8635:700:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8582:753:91"},{"expression":{"id":53085,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53059,"src":"9353:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":53047,"id":53086,"nodeType":"Return","src":"9346:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"8368:35:91","parameters":{"id":53043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53042,"mutability":"mutable","name":"gw","nameLocation":"8421:2:91","nodeType":"VariableDeclaration","scope":53088,"src":"8413:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53041,"name":"address","nodeType":"ElementaryTypeName","src":"8413:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8403:26:91"},"returnParameters":{"id":53047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53088,"src":"8461:43:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53045,"nodeType":"UserDefinedTypeName","pathNode":{"id":53044,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8461:18:91","8480:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"8461:36:91"},"referencedDeclaration":36253,"src":"8461:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"8460:45:91"},"scope":53089,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52926,"name":"Test","nameLocations":["7001:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"7001:4:91"},"id":52927,"nodeType":"InheritanceSpecifier","src":"7001:4:91"},{"baseName":{"id":52928,"name":"TestParams","nameLocations":["7007:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"7007:10:91"},"id":52929,"nodeType":"InheritanceSpecifier","src":"7007:10:91"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53089,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6982:15:91","scope":55677,"usedErrors":[]},{"id":55676,"nodeType":"ContractDefinition","src":"9370:26271:91","nodes":[{"id":53103,"nodeType":"UsingForDirective","src":"9474:34:91","nodes":[],"global":false,"libraryName":{"id":53100,"name":"SubnetIDHelper","nameLocations":["9480:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"9480:14:91"},"typeName":{"id":53102,"nodeType":"UserDefinedTypeName","pathNode":{"id":53101,"name":"SubnetID","nameLocations":["9499:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"9499:8:91"},"referencedDeclaration":50030,"src":"9499:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":53107,"nodeType":"UsingForDirective","src":"9513:42:91","nodes":[],"global":false,"libraryName":{"id":53104,"name":"SupplySourceHelper","nameLocations":["9519:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"9519:18:91"},"typeName":{"id":53106,"nodeType":"UserDefinedTypeName","pathNode":{"id":53105,"name":"SupplySource","nameLocations":["9542:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"9542:12:91"},"referencedDeclaration":50179,"src":"9542:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":53111,"nodeType":"UsingForDirective","src":"9560:34:91","nodes":[],"global":false,"libraryName":{"id":53108,"name":"CrossMsgHelper","nameLocations":["9566:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"9566:14:91"},"typeName":{"id":53110,"nodeType":"UserDefinedTypeName","pathNode":{"id":53109,"name":"CrossMsg","nameLocations":["9585:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"9585:8:91"},"referencedDeclaration":49927,"src":"9585:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53115,"nodeType":"UsingForDirective","src":"9599:40:91","nodes":[],"global":false,"libraryName":{"id":53112,"name":"StorableMsgHelper","nameLocations":["9605:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"9605:17:91"},"typeName":{"id":53114,"nodeType":"UserDefinedTypeName","pathNode":{"id":53113,"name":"StorableMsg","nameLocations":["9627:11:91"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"9627:11:91"},"referencedDeclaration":49944,"src":"9627:11:91","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53119,"nodeType":"UsingForDirective","src":"9644:38:91","nodes":[],"global":false,"libraryName":{"id":53116,"name":"FvmAddressHelper","nameLocations":["9650:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"9650:16:91"},"typeName":{"id":53118,"nodeType":"UserDefinedTypeName","pathNode":{"id":53117,"name":"FvmAddress","nameLocations":["9671:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"9671:10:91"},"referencedDeclaration":49951,"src":"9671:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53123,"nodeType":"EventDefinition","src":"9688:67:91","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"9694:21:91","parameters":{"id":53122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53121,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9732:21:91","nodeType":"VariableDeclaration","scope":53123,"src":"9716:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9716:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9715:39:91"}},{"id":53127,"nodeType":"FunctionDefinition","src":"9761:16:91","nodes":[],"body":{"id":53126,"nodeType":"Block","src":"9775:2:91","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53124,"nodeType":"ParameterList","parameters":[],"src":"9772:2:91"},"returnParameters":{"id":53125,"nodeType":"ParameterList","parameters":[],"src":"9775:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53329,"nodeType":"FunctionDefinition","src":"9783:1732:91","nodes":[],"body":{"id":53328,"nodeType":"Block","src":"9815:1700:91","nodes":[],"statements":[{"assignments":[53134],"declarations":[{"constant":false,"id":53134,"mutability":"mutable","name":"path","nameLocation":"9842:4:91","nodeType":"VariableDeclaration","scope":53328,"src":"9825:21:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53132,"name":"address","nodeType":"ElementaryTypeName","src":"9825:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53133,"nodeType":"ArrayTypeName","src":"9825:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53140,"initialValue":{"arguments":[{"hexValue":"31","id":53138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9863:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9849:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53135,"name":"address","nodeType":"ElementaryTypeName","src":"9853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53136,"nodeType":"ArrayTypeName","src":"9853:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9849:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9825:40:91"},{"expression":{"id":53145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53141,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"9875:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53143,"indexExpression":{"hexValue":"30","id":53142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9880:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9875:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53144,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52683,"src":"9885:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9875:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53146,"nodeType":"ExpressionStatement","src":"9875:25:91"},{"assignments":[53151],"declarations":[{"constant":false,"id":53151,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9993:19:91","nodeType":"VariableDeclaration","scope":53328,"src":"9953:59:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53150,"nodeType":"UserDefinedTypeName","pathNode":{"id":53149,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9953:14:91","9968:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9953:32:91"},"referencedDeclaration":35883,"src":"9953:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53154,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53152,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52924,"src":"10015:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10015:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9953:84:91"},{"expression":{"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10047:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53157,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53151,"src":"10085:19:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53156,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53588,"src":"10064:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10064:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"10047:58:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53160,"nodeType":"ExpressionStatement","src":"10047:58:91"},{"expression":{"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53161,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"10116:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53165,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10154:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10146:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53163,"name":"address","nodeType":"ElementaryTypeName","src":"10146:7:91","typeDescriptions":{}}},"id":53166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10146:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53162,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"10127:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10127:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"10116:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53169,"nodeType":"ExpressionStatement","src":"10116:54:91"},{"expression":{"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53170,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"10180:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53174,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10220:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53172,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:91","typeDescriptions":{}}},"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53171,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"10192:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10192:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"10180:56:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53178,"nodeType":"ExpressionStatement","src":"10180:56:91"},{"expression":{"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53179,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52803,"src":"10246:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53183,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10296:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10288:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53181,"name":"address","nodeType":"ElementaryTypeName","src":"10288:7:91","typeDescriptions":{}}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10288:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53180,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"10269:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10269:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"10246:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53187,"nodeType":"ExpressionStatement","src":"10246:66:91"},{"expression":{"id":53195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53188,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"10322:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53192,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10372:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10364:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53190,"name":"address","nodeType":"ElementaryTypeName","src":"10364:7:91","typeDescriptions":{}}},"id":53193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10364:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53189,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"10345:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10345:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"10322:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53196,"nodeType":"ExpressionStatement","src":"10322:66:91"},{"expression":{"id":53204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53197,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"10398:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53201,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10452:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10444:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53199,"name":"address","nodeType":"ElementaryTypeName","src":"10444:7:91","typeDescriptions":{}}},"id":53202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10444:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53198,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"10423:20:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10423:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"10398:70:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53205,"nodeType":"ExpressionStatement","src":"10398:70:91"},{"expression":{"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53206,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52812,"src":"10478:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53210,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10530:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10522:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53208,"name":"address","nodeType":"ElementaryTypeName","src":"10522:7:91","typeDescriptions":{}}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10522:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53207,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"10502:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10502:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"10478:68:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53214,"nodeType":"ExpressionStatement","src":"10478:68:91"},{"expression":{"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53215,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52815,"src":"10556:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53219,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10600:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10592:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53217,"name":"address","nodeType":"ElementaryTypeName","src":"10592:7:91","typeDescriptions":{}}},"id":53220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10592:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53216,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"10570:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10570:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"10556:60:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53223,"nodeType":"ExpressionStatement","src":"10556:60:91"},{"expression":{"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53224,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52821,"src":"10626:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53228,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10663:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10655:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53226,"name":"address","nodeType":"ElementaryTypeName","src":"10655:7:91","typeDescriptions":{}}},"id":53229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10655:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53225,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10637:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10637:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10626:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53232,"nodeType":"ExpressionStatement","src":"10626:53:91"},{"expression":{"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53233,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52818,"src":"10689:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53237,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10724:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10716:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53235,"name":"address","nodeType":"ElementaryTypeName","src":"10716:7:91","typeDescriptions":{}}},"id":53238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10716:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53234,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10700:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10700:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10689:51:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53241,"nodeType":"ExpressionStatement","src":"10689:51:91"},{"assignments":[53246],"declarations":[{"constant":false,"id":53246,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10849:19:91","nodeType":"VariableDeclaration","scope":53328,"src":"10805:63:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53245,"nodeType":"UserDefinedTypeName","pathNode":{"id":53244,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10805:18:91","10824:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10805:36:91"},"referencedDeclaration":36253,"src":"10805:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53253,"initialValue":{"arguments":[{"arguments":[{"id":53250,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"10928:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10920:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53248,"name":"address","nodeType":"ElementaryTypeName","src":"10920:7:91","typeDescriptions":{}}},"id":53251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10920:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53247,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53088,"src":"10871:35:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10871:82:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10805:148:91"},{"expression":{"id":53258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53254,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"10964:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53256,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53246,"src":"10994:19:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53255,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53912,53941,54244],"referencedDeclaration":53912,"src":"10976:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10976:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10964:50:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53259,"nodeType":"ExpressionStatement","src":"10964:50:91"},{"expression":{"id":53267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53260,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"11024:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53264,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11068:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11060:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53262,"name":"address","nodeType":"ElementaryTypeName","src":"11060:7:91","typeDescriptions":{}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11060:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53261,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"11036:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11036:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"11024:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53268,"nodeType":"ExpressionStatement","src":"11024:55:91"},{"expression":{"id":53276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53269,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"11089:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53273,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11131:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11123:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53271,"name":"address","nodeType":"ElementaryTypeName","src":"11123:7:91","typeDescriptions":{}}},"id":53274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11123:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53270,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"11100:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11100:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"11089:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53277,"nodeType":"ExpressionStatement","src":"11089:53:91"},{"expression":{"id":53285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53278,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"11152:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53282,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11193:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11185:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53280,"name":"address","nodeType":"ElementaryTypeName","src":"11185:7:91","typeDescriptions":{}}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11185:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53279,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"11163:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":53284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11163:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"11152:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53286,"nodeType":"ExpressionStatement","src":"11152:52:91"},{"expression":{"id":53294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53287,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"11214:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53291,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11258:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11250:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53289,"name":"address","nodeType":"ElementaryTypeName","src":"11250:7:91","typeDescriptions":{}}},"id":53292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11250:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53288,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"11227:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":53293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"11214:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":53295,"nodeType":"ExpressionStatement","src":"11214:55:91"},{"expression":{"id":53303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53296,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"11279:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53300,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11334:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11326:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53298,"name":"address","nodeType":"ElementaryTypeName","src":"11326:7:91","typeDescriptions":{}}},"id":53301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11326:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53297,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"11296:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":53302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11296:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"11279:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":53304,"nodeType":"ExpressionStatement","src":"11279:66:91"},{"expression":{"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53305,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"11355:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53309,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11392:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11384:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53307,"name":"address","nodeType":"ElementaryTypeName","src":"11384:7:91","typeDescriptions":{}}},"id":53310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11384:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53306,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"11366:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11366:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"11355:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53313,"nodeType":"ExpressionStatement","src":"11355:48:91"},{"expression":{"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53314,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"11413:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53318,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"11448:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11440:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53316,"name":"address","nodeType":"ElementaryTypeName","src":"11440:7:91","typeDescriptions":{}}},"id":53319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11440:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53315,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"11424:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11424:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"11413:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53322,"nodeType":"ExpressionStatement","src":"11413:46:91"},{"expression":{"arguments":[{"id":53324,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52695,"src":"11483:19:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11504:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53323,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54787,54870],"referencedDeclaration":54870,"src":"11470:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11470:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53327,"nodeType":"ExpressionStatement","src":"11470:38:91"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9792:5:91","parameters":{"id":53128,"nodeType":"ParameterList","parameters":[],"src":"9797:2:91"},"returnParameters":{"id":53129,"nodeType":"ParameterList","parameters":[],"src":"9815:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53588,"nodeType":"FunctionDefinition","src":"11521:3185:91","nodes":[],"body":{"id":53587,"nodeType":"Block","src":"11631:3075:91","nodes":[],"statements":[{"assignments":[53340],"declarations":[{"constant":false,"id":53340,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"11660:18:91","nodeType":"VariableDeclaration","scope":53587,"src":"11641:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53339,"nodeType":"UserDefinedTypeName","pathNode":{"id":53338,"name":"CheckpointingFacet","nameLocations":["11641:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11641:18:91"},"referencedDeclaration":39870,"src":"11641:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53345,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11681:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53342,"nodeType":"UserDefinedTypeName","pathNode":{"id":53341,"name":"CheckpointingFacet","nameLocations":["11685:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11685:18:91"},"referencedDeclaration":39870,"src":"11685:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11681:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11641:64:91"},{"assignments":[53348],"declarations":[{"constant":false,"id":53348,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"11734:18:91","nodeType":"VariableDeclaration","scope":53587,"src":"11715:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53347,"nodeType":"UserDefinedTypeName","pathNode":{"id":53346,"name":"XnetMessagingFacet","nameLocations":["11715:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11715:18:91"},"referencedDeclaration":40144,"src":"11715:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53353,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11755:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53350,"nodeType":"UserDefinedTypeName","pathNode":{"id":53349,"name":"XnetMessagingFacet","nameLocations":["11759:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11759:18:91"},"referencedDeclaration":40144,"src":"11759:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11755:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11715:64:91"},{"assignments":[53356],"declarations":[{"constant":false,"id":53356,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"11810:20:91","nodeType":"VariableDeclaration","scope":53587,"src":"11789:41:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53355,"nodeType":"UserDefinedTypeName","pathNode":{"id":53354,"name":"TopDownFinalityFacet","nameLocations":["11789:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11789:20:91"},"referencedDeclaration":40071,"src":"11789:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53361,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11833:24:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53358,"nodeType":"UserDefinedTypeName","pathNode":{"id":53357,"name":"TopDownFinalityFacet","nameLocations":["11837:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11837:20:91"},"referencedDeclaration":40071,"src":"11837:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11833:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"11789:70:91"},{"assignments":[53364],"declarations":[{"constant":false,"id":53364,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"11889:19:91","nodeType":"VariableDeclaration","scope":53587,"src":"11869:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53363,"nodeType":"UserDefinedTypeName","pathNode":{"id":53362,"name":"BottomUpRouterFacet","nameLocations":["11869:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11869:19:91"},"referencedDeclaration":39601,"src":"11869:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53369,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11911:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53366,"nodeType":"UserDefinedTypeName","pathNode":{"id":53365,"name":"BottomUpRouterFacet","nameLocations":["11915:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11915:19:91"},"referencedDeclaration":39601,"src":"11915:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11911:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11869:67:91"},{"assignments":[53372],"declarations":[{"constant":false,"id":53372,"mutability":"mutable","name":"manager","nameLocation":"11967:7:91","nodeType":"VariableDeclaration","scope":53587,"src":"11947:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53371,"nodeType":"UserDefinedTypeName","pathNode":{"id":53370,"name":"GatewayManagerFacet","nameLocations":["11947:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11947:19:91"},"referencedDeclaration":38870,"src":"11947:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53377,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11977:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53374,"nodeType":"UserDefinedTypeName","pathNode":{"id":53373,"name":"GatewayManagerFacet","nameLocations":["11981:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11981:19:91"},"referencedDeclaration":38870,"src":"11981:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11947:55:91"},{"assignments":[53380],"declarations":[{"constant":false,"id":53380,"mutability":"mutable","name":"getter","nameLocation":"12031:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12012:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53379,"nodeType":"UserDefinedTypeName","pathNode":{"id":53378,"name":"GatewayGetterFacet","nameLocations":["12012:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12012:18:91"},"referencedDeclaration":38317,"src":"12012:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53385,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12040:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53382,"nodeType":"UserDefinedTypeName","pathNode":{"id":53381,"name":"GatewayGetterFacet","nameLocations":["12044:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12044:18:91"},"referencedDeclaration":38317,"src":"12044:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"12012:52:91"},{"assignments":[53388],"declarations":[{"constant":false,"id":53388,"mutability":"mutable","name":"messenger","nameLocation":"12096:9:91","nodeType":"VariableDeclaration","scope":53587,"src":"12074:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53387,"nodeType":"UserDefinedTypeName","pathNode":{"id":53386,"name":"GatewayMessengerFacet","nameLocations":["12074:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12074:21:91"},"referencedDeclaration":39235,"src":"12074:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53393,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12108:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53390,"nodeType":"UserDefinedTypeName","pathNode":{"id":53389,"name":"GatewayMessengerFacet","nameLocations":["12112:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12112:21:91"},"referencedDeclaration":39235,"src":"12112:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12108:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12074:61:91"},{"assignments":[53396],"declarations":[{"constant":false,"id":53396,"mutability":"mutable","name":"cutter","nameLocation":"12161:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12145:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53395,"nodeType":"UserDefinedTypeName","pathNode":{"id":53394,"name":"DiamondCutFacet","nameLocations":["12145:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12145:15:91"},"referencedDeclaration":36918,"src":"12145:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53401,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12170:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53398,"nodeType":"UserDefinedTypeName","pathNode":{"id":53397,"name":"DiamondCutFacet","nameLocations":["12174:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12174:15:91"},"referencedDeclaration":36918,"src":"12174:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12170:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12145:46:91"},{"assignments":[53404],"declarations":[{"constant":false,"id":53404,"mutability":"mutable","name":"louper","nameLocation":"12219:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"12201:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53403,"nodeType":"UserDefinedTypeName","pathNode":{"id":53402,"name":"DiamondLoupeFacet","nameLocations":["12201:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12201:17:91"},"referencedDeclaration":37355,"src":"12201:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53409,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12228:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53406,"nodeType":"UserDefinedTypeName","pathNode":{"id":53405,"name":"DiamondLoupeFacet","nameLocations":["12232:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12232:17:91"},"referencedDeclaration":37355,"src":"12232:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12228:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12201:50:91"},{"assignments":[53415],"declarations":[{"constant":false,"id":53415,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"12289:12:91","nodeType":"VariableDeclaration","scope":53587,"src":"12262:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53413,"nodeType":"UserDefinedTypeName","pathNode":{"id":53412,"name":"IDiamond.FacetCut","nameLocations":["12262:8:91","12271:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12262:17:91"},"referencedDeclaration":40159,"src":"12262:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53414,"nodeType":"ArrayTypeName","src":"12262:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53422,"initialValue":{"arguments":[{"hexValue":"39","id":53420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12328:1:91","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12304:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53417,"nodeType":"UserDefinedTypeName","pathNode":{"id":53416,"name":"IDiamond.FacetCut","nameLocations":["12308:8:91","12317:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12308:17:91"},"referencedDeclaration":40159,"src":"12308:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53418,"nodeType":"ArrayTypeName","src":"12308:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12304:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12262:68:91"},{"expression":{"id":53438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53423,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12341:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53425,"indexExpression":{"hexValue":"30","id":53424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12354:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12341:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53430,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53340,"src":"12431:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12423:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53428,"name":"address","nodeType":"ElementaryTypeName","src":"12423:7:91","typeDescriptions":{}}},"id":53431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12423:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12476:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12485:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12476:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12500:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12476:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53435,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52767,"src":"12540:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53426,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12373:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12382:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12373:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12409:12:91","12468:6:91","12521:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12373:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53437,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12359:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12341:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53439,"nodeType":"ExpressionStatement","src":"12341:253:91"},{"expression":{"id":53455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53440,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12605:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53442,"indexExpression":{"hexValue":"36","id":53441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12618:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12605:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53447,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53348,"src":"12695:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12687:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53445,"name":"address","nodeType":"ElementaryTypeName","src":"12687:7:91","typeDescriptions":{}}},"id":53448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12687:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12740:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12749:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12740:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12764:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12740:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53452,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52770,"src":"12804:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53443,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12637:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12646:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12637:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12673:12:91","12732:6:91","12785:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12637:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53454,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12623:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12605:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53456,"nodeType":"ExpressionStatement","src":"12605:253:91"},{"expression":{"id":53472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53457,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"12869:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53459,"indexExpression":{"hexValue":"37","id":53458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12882:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12869:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53464,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53356,"src":"12959:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12951:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53462,"name":"address","nodeType":"ElementaryTypeName","src":"12951:7:91","typeDescriptions":{}}},"id":53465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12951:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13006:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13030:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13006:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53469,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52773,"src":"13070:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53460,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12901:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12910:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12901:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12937:12:91","12998:6:91","13051:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12901:215:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12887:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12869:257:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53473,"nodeType":"ExpressionStatement","src":"12869:257:91"},{"expression":{"id":53489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53474,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13137:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53476,"indexExpression":{"hexValue":"38","id":53475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13150:1:91","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13137:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53481,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53364,"src":"13227:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13219:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53479,"name":"address","nodeType":"ElementaryTypeName","src":"13219:7:91","typeDescriptions":{}}},"id":53482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13219:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13273:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13282:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13273:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13297:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13273:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53486,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"13337:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53477,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13169:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13178:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13169:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13205:12:91","13265:6:91","13318:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13169:213:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53488,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13155:237:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13137:255:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53490,"nodeType":"ExpressionStatement","src":"13137:255:91"},{"expression":{"id":53506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53491,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13403:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53493,"indexExpression":{"hexValue":"31","id":53492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13416:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13403:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53498,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53372,"src":"13493:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13485:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53496,"name":"address","nodeType":"ElementaryTypeName","src":"13485:7:91","typeDescriptions":{}}},"id":53499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13485:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53500,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13527:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13536:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13527:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13551:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13527:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53503,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52779,"src":"13591:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53494,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13435:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13444:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13435:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13471:12:91","13519:6:91","13572:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13435:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53505,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13421:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13403:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53507,"nodeType":"ExpressionStatement","src":"13403:231:91"},{"expression":{"id":53523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53508,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13645:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53510,"indexExpression":{"hexValue":"32","id":53509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13658:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13645:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53515,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53380,"src":"13735:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13727:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13727:7:91","typeDescriptions":{}}},"id":53516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13727:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53517,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13768:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13777:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13768:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13792:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13768:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53520,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52782,"src":"13832:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53511,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13677:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13686:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13677:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13713:12:91","13760:6:91","13813:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13677:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53522,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13663:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13645:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53524,"nodeType":"ExpressionStatement","src":"13645:229:91"},{"expression":{"id":53540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53525,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"13885:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53527,"indexExpression":{"hexValue":"33","id":53526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13898:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13885:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53532,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53388,"src":"13975:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13967:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53530,"name":"address","nodeType":"ElementaryTypeName","src":"13967:7:91","typeDescriptions":{}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53534,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14011:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14020:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14011:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14035:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14011:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53537,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52785,"src":"14075:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13917:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13926:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13917:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13953:12:91","14003:6:91","14056:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13917:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53539,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13903:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13885:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53541,"nodeType":"ExpressionStatement","src":"13885:235:91"},{"expression":{"id":53557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53542,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14131:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53544,"indexExpression":{"hexValue":"34","id":53543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14144:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14131:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53549,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53404,"src":"14221:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14213:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53547,"name":"address","nodeType":"ElementaryTypeName","src":"14213:7:91","typeDescriptions":{}}},"id":53550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14213:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53551,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14254:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14263:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14254:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14278:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14254:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53554,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52791,"src":"14318:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53545,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14163:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14172:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14163:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14199:12:91","14246:6:91","14299:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14163:186:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53556,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14149:210:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14131:228:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53558,"nodeType":"ExpressionStatement","src":"14131:228:91"},{"expression":{"id":53574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53559,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14370:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53561,"indexExpression":{"hexValue":"35","id":53560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14383:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14370:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53566,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53396,"src":"14460:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14452:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53564,"name":"address","nodeType":"ElementaryTypeName","src":"14452:7:91","typeDescriptions":{}}},"id":53567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14452:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53568,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14493:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14502:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14493:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14517:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14493:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53571,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52788,"src":"14557:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53562,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14402:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14411:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14402:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14438:12:91","14485:6:91","14538:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14402:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14388:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14370:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53575,"nodeType":"ExpressionStatement","src":"14370:229:91"},{"expression":{"id":53583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53576,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"14610:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53580,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53415,"src":"14646:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53581,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53332,"src":"14660:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14627:18:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53578,"nodeType":"UserDefinedTypeName","pathNode":{"id":53577,"name":"GatewayDiamond","nameLocations":["14631:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"14631:14:91"},"referencedDeclaration":36170,"src":"14631:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14627:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"14610:57:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53584,"nodeType":"ExpressionStatement","src":"14610:57:91"},{"expression":{"id":53585,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"14685:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53337,"id":53586,"nodeType":"Return","src":"14678:21:91"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"11530:20:91","parameters":{"id":53333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53332,"mutability":"mutable","name":"params","nameLocation":"11591:6:91","nodeType":"VariableDeclaration","scope":53588,"src":"11551:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53331,"nodeType":"UserDefinedTypeName","pathNode":{"id":53330,"name":"GatewayDiamond.ConstructorParams","nameLocations":["11551:14:91","11566:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"11551:32:91"},"referencedDeclaration":35883,"src":"11551:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"11550:48:91"},"returnParameters":{"id":53337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53588,"src":"11615:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53335,"nodeType":"UserDefinedTypeName","pathNode":{"id":53334,"name":"GatewayDiamond","nameLocations":["11615:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"11615:14:91"},"referencedDeclaration":36170,"src":"11615:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"11614:16:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53702,"nodeType":"FunctionDefinition","src":"14712:1613:91","nodes":[],"body":{"id":53701,"nodeType":"Block","src":"14988:1337:91","nodes":[],"statements":[{"assignments":[53612],"declarations":[{"constant":false,"id":53612,"mutability":"mutable","name":"diamondCut","nameLocation":"15025:10:91","nodeType":"VariableDeclaration","scope":53701,"src":"14998:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53610,"nodeType":"UserDefinedTypeName","pathNode":{"id":53609,"name":"IDiamond.FacetCut","nameLocations":["14998:8:91","15007:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14998:17:91"},"referencedDeclaration":40159,"src":"14998:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53611,"nodeType":"ArrayTypeName","src":"14998:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53619,"initialValue":{"arguments":[{"hexValue":"35","id":53617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15062:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":53616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15038:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53614,"nodeType":"UserDefinedTypeName","pathNode":{"id":53613,"name":"IDiamond.FacetCut","nameLocations":["15042:8:91","15051:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15042:17:91"},"referencedDeclaration":40159,"src":"15042:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53615,"nodeType":"ArrayTypeName","src":"15042:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15038:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14998:66:91"},{"expression":{"id":53632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53620,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15075:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53622,"indexExpression":{"hexValue":"30","id":53621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15086:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15075:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53625,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53593,"src":"15155:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53626,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15187:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15196:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15187:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15211:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15187:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53629,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"15251:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53623,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15105:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15114:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15105:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15141:12:91","15179:6:91","15232:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15105:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53631,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15091:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15075:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53633,"nodeType":"ExpressionStatement","src":"15075:218:91"},{"expression":{"id":53646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53634,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15304:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53636,"indexExpression":{"hexValue":"31","id":53635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15315:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15304:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53639,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53595,"src":"15384:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53640,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15417:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15426:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15417:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15441:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15417:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53643,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"15481:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53637,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15334:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15343:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15334:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15370:12:91","15409:6:91","15462:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15334:180:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53645,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15320:204:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15304:220:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53647,"nodeType":"ExpressionStatement","src":"15304:220:91"},{"expression":{"id":53660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53648,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15535:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53650,"indexExpression":{"hexValue":"32","id":53649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15546:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15535:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53653,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53597,"src":"15615:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53654,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15647:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15656:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15647:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15671:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15647:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53657,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"15711:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53651,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15565:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15574:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15565:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15601:12:91","15639:6:91","15692:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15565:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53659,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15551:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15535:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53661,"nodeType":"ExpressionStatement","src":"15535:218:91"},{"expression":{"id":53674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53662,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15764:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53664,"indexExpression":{"hexValue":"33","id":53663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15775:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15764:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53667,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53599,"src":"15844:8:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53668,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15878:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15887:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15878:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15902:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15878:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53671,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"15942:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53665,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15794:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15803:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15794:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15830:12:91","15870:6:91","15923:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15794:182:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53673,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15780:206:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15764:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53675,"nodeType":"ExpressionStatement","src":"15764:222:91"},{"expression":{"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53676,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"15997:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53678,"indexExpression":{"hexValue":"34","id":53677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16008:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15997:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53681,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53601,"src":"16077:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53682,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16124:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"16115:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16139:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"16115:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53685,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"16179:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53679,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16027:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16036:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"16027:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16063:12:91","16107:6:91","16160:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"16027:190:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53687,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16013:214:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15997:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53689,"nodeType":"ExpressionStatement","src":"15997:230:91"},{"expression":{"id":53697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53690,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"16238:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53694,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53612,"src":"16273:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53695,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53591,"src":"16285:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16250:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53692,"nodeType":"UserDefinedTypeName","pathNode":{"id":53691,"name":"SubnetActorDiamond","nameLocations":["16254:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16254:18:91"},"referencedDeclaration":36615,"src":"16254:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16250:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"16238:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53698,"nodeType":"ExpressionStatement","src":"16238:54:91"},{"expression":{"id":53699,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"16309:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53606,"id":53700,"nodeType":"Return","src":"16302:16:91"}]},"functionSelector":"ea1c89ed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"14721:35:91","parameters":{"id":53602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53591,"mutability":"mutable","name":"params","nameLocation":"14810:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14766:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53590,"nodeType":"UserDefinedTypeName","pathNode":{"id":53589,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14766:18:91","14785:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14766:36:91"},"referencedDeclaration":36253,"src":"14766:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53593,"mutability":"mutable","name":"getter","nameLocation":"14834:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14826:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53592,"name":"address","nodeType":"ElementaryTypeName","src":"14826:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53595,"mutability":"mutable","name":"manager","nameLocation":"14858:7:91","nodeType":"VariableDeclaration","scope":53702,"src":"14850:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53594,"name":"address","nodeType":"ElementaryTypeName","src":"14850:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53597,"mutability":"mutable","name":"pauser","nameLocation":"14883:6:91","nodeType":"VariableDeclaration","scope":53702,"src":"14875:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53596,"name":"address","nodeType":"ElementaryTypeName","src":"14875:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53599,"mutability":"mutable","name":"rewarder","nameLocation":"14907:8:91","nodeType":"VariableDeclaration","scope":53702,"src":"14899:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53598,"name":"address","nodeType":"ElementaryTypeName","src":"14899:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53601,"mutability":"mutable","name":"checkpointer","nameLocation":"14933:12:91","nodeType":"VariableDeclaration","scope":53702,"src":"14925:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53600,"name":"address","nodeType":"ElementaryTypeName","src":"14925:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14756:195:91"},"returnParameters":{"id":53606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53702,"src":"14968:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"SubnetActorDiamond","nameLocations":["14968:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14968:18:91"},"referencedDeclaration":36615,"src":"14968:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14967:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53912,"nodeType":"FunctionDefinition","src":"16331:2480:91","nodes":[],"body":{"id":53911,"nodeType":"Block","src":"16446:2365:91","nodes":[],"statements":[{"assignments":[53713],"declarations":[{"constant":false,"id":53713,"mutability":"mutable","name":"manager","nameLocation":"16480:7:91","nodeType":"VariableDeclaration","scope":53911,"src":"16456:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53712,"nodeType":"UserDefinedTypeName","pathNode":{"id":53711,"name":"SubnetActorManagerFacet","nameLocations":["16456:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16456:23:91"},"referencedDeclaration":51946,"src":"16456:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53718,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16490:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53715,"nodeType":"UserDefinedTypeName","pathNode":{"id":53714,"name":"SubnetActorManagerFacet","nameLocations":["16494:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16494:23:91"},"referencedDeclaration":51946,"src":"16494:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16490:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"16456:63:91"},{"assignments":[53721],"declarations":[{"constant":false,"id":53721,"mutability":"mutable","name":"getter","nameLocation":"16552:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16529:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53720,"nodeType":"UserDefinedTypeName","pathNode":{"id":53719,"name":"SubnetActorGetterFacet","nameLocations":["16529:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16529:22:91"},"referencedDeclaration":51235,"src":"16529:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53726,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16561:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53723,"nodeType":"UserDefinedTypeName","pathNode":{"id":53722,"name":"SubnetActorGetterFacet","nameLocations":["16565:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16565:22:91"},"referencedDeclaration":51235,"src":"16565:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16561:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"16529:60:91"},{"assignments":[53729],"declarations":[{"constant":false,"id":53729,"mutability":"mutable","name":"pauser","nameLocation":"16621:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16599:28:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":53728,"nodeType":"UserDefinedTypeName","pathNode":{"id":53727,"name":"SubnetActorPauseFacet","nameLocations":["16599:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16599:21:91"},"referencedDeclaration":51991,"src":"16599:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"}],"id":53734,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16630:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53731,"nodeType":"UserDefinedTypeName","pathNode":{"id":53730,"name":"SubnetActorPauseFacet","nameLocations":["16634:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16634:21:91"},"referencedDeclaration":51991,"src":"16634:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16630:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"VariableDeclarationStatement","src":"16599:58:91"},{"assignments":[53737],"declarations":[{"constant":false,"id":53737,"mutability":"mutable","name":"rewarder","nameLocation":"16690:8:91","nodeType":"VariableDeclaration","scope":53911,"src":"16667:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":53736,"nodeType":"UserDefinedTypeName","pathNode":{"id":53735,"name":"SubnetActorRewardFacet","nameLocations":["16667:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16667:22:91"},"referencedDeclaration":52158,"src":"16667:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"}],"id":53742,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16701:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":53739,"nodeType":"UserDefinedTypeName","pathNode":{"id":53738,"name":"SubnetActorRewardFacet","nameLocations":["16705:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16705:22:91"},"referencedDeclaration":52158,"src":"16705:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":53741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16701:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"VariableDeclarationStatement","src":"16667:62:91"},{"assignments":[53745],"declarations":[{"constant":false,"id":53745,"mutability":"mutable","name":"checkpointer","nameLocation":"16769:12:91","nodeType":"VariableDeclaration","scope":53911,"src":"16739:42:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":53744,"nodeType":"UserDefinedTypeName","pathNode":{"id":53743,"name":"SubnetActorCheckpointingFacet","nameLocations":["16739:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16739:29:91"},"referencedDeclaration":50577,"src":"16739:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"}],"id":53750,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16784:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53747,"nodeType":"UserDefinedTypeName","pathNode":{"id":53746,"name":"SubnetActorCheckpointingFacet","nameLocations":["16788:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16788:29:91"},"referencedDeclaration":50577,"src":"16788:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16784:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"16739:80:91"},{"assignments":[53753],"declarations":[{"constant":false,"id":53753,"mutability":"mutable","name":"louper","nameLocation":"16848:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16830:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53752,"nodeType":"UserDefinedTypeName","pathNode":{"id":53751,"name":"DiamondLoupeFacet","nameLocations":["16830:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16830:17:91"},"referencedDeclaration":37355,"src":"16830:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53758,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16857:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53755,"nodeType":"UserDefinedTypeName","pathNode":{"id":53754,"name":"DiamondLoupeFacet","nameLocations":["16861:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16861:17:91"},"referencedDeclaration":37355,"src":"16861:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16857:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"16830:50:91"},{"assignments":[53761],"declarations":[{"constant":false,"id":53761,"mutability":"mutable","name":"cutter","nameLocation":"16906:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16890:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53760,"nodeType":"UserDefinedTypeName","pathNode":{"id":53759,"name":"DiamondCutFacet","nameLocations":["16890:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16890:15:91"},"referencedDeclaration":36918,"src":"16890:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53766,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16915:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53763,"nodeType":"UserDefinedTypeName","pathNode":{"id":53762,"name":"DiamondCutFacet","nameLocations":["16919:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16919:15:91"},"referencedDeclaration":36918,"src":"16919:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16915:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"16890:46:91"},{"assignments":[53772],"declarations":[{"constant":false,"id":53772,"mutability":"mutable","name":"diamondCut","nameLocation":"16974:10:91","nodeType":"VariableDeclaration","scope":53911,"src":"16947:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53770,"nodeType":"UserDefinedTypeName","pathNode":{"id":53769,"name":"IDiamond.FacetCut","nameLocations":["16947:8:91","16956:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16947:17:91"},"referencedDeclaration":40159,"src":"16947:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53771,"nodeType":"ArrayTypeName","src":"16947:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53779,"initialValue":{"arguments":[{"hexValue":"37","id":53777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17011:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"id":53776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16987:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"IDiamond.FacetCut","nameLocations":["16991:8:91","17000:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16991:17:91"},"referencedDeclaration":40159,"src":"16991:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53775,"nodeType":"ArrayTypeName","src":"16991:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16987:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"16947:66:91"},{"expression":{"id":53795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53780,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17024:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53782,"indexExpression":{"hexValue":"30","id":53781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17035:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17024:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53787,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53713,"src":"17112:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":53786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17104:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53785,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:91","typeDescriptions":{}}},"id":53788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17104:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53789,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17146:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17155:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17146:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17170:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17146:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53792,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"17210:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53783,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17054:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17063:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17054:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17090:12:91","17138:6:91","17191:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17054:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17040:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17024:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53796,"nodeType":"ExpressionStatement","src":"17024:229:91"},{"expression":{"id":53812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53797,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17264:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53799,"indexExpression":{"hexValue":"31","id":53798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17275:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17264:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53804,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"17352:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":53803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17344:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53802,"name":"address","nodeType":"ElementaryTypeName","src":"17344:7:91","typeDescriptions":{}}},"id":53805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17344:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53806,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17385:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17394:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17385:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17409:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17385:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53809,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"17449:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53800,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17294:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17303:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17294:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17330:12:91","17377:6:91","17430:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17294:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53811,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17280:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17264:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53813,"nodeType":"ExpressionStatement","src":"17264:227:91"},{"expression":{"id":53829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53814,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17502:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53816,"indexExpression":{"hexValue":"32","id":53815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17513:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17502:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53821,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53729,"src":"17590:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":53820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17582:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53819,"name":"address","nodeType":"ElementaryTypeName","src":"17582:7:91","typeDescriptions":{}}},"id":53822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17582:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53823,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17623:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17632:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17623:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17647:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17623:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53826,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"17687:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53817,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17532:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17541:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17532:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17568:12:91","17615:6:91","17668:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17532:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53828,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17518:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17502:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53830,"nodeType":"ExpressionStatement","src":"17502:227:91"},{"expression":{"id":53846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53831,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17740:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53833,"indexExpression":{"hexValue":"33","id":53832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17751:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17740:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53838,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"17828:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":53837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17820:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53836,"name":"address","nodeType":"ElementaryTypeName","src":"17820:7:91","typeDescriptions":{}}},"id":53839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17820:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53840,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17863:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17872:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17863:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17887:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17863:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53843,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"17927:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53834,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17770:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17779:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17770:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17806:12:91","17855:6:91","17908:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17770:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53845,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17756:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17740:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53847,"nodeType":"ExpressionStatement","src":"17740:231:91"},{"expression":{"id":53863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53848,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"17982:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53850,"indexExpression":{"hexValue":"34","id":53849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17993:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17982:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53855,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53745,"src":"18070:12:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":53854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18062:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53853,"name":"address","nodeType":"ElementaryTypeName","src":"18062:7:91","typeDescriptions":{}}},"id":53856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18062:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53857,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18109:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18118:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18109:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18133:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18109:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53860,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"18173:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53851,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18012:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18021:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18012:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18048:12:91","18101:6:91","18154:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18012:199:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53862,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17998:223:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17982:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53864,"nodeType":"ExpressionStatement","src":"17982:239:91"},{"expression":{"id":53880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53865,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18232:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53867,"indexExpression":{"hexValue":"35","id":53866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18243:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18232:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53872,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53761,"src":"18320:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18312:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53870,"name":"address","nodeType":"ElementaryTypeName","src":"18312:7:91","typeDescriptions":{}}},"id":53873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18312:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53874,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18353:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18362:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18353:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18377:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18353:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53877,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"18417:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53868,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18262:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18271:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18262:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18298:12:91","18345:6:91","18398:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18262:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53879,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18248:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18232:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53881,"nodeType":"ExpressionStatement","src":"18232:227:91"},{"expression":{"id":53897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53882,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18470:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53884,"indexExpression":{"hexValue":"36","id":53883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18481:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18470:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53889,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53753,"src":"18558:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18550:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53887,"name":"address","nodeType":"ElementaryTypeName","src":"18550:7:91","typeDescriptions":{}}},"id":53890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18550:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53891,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18591:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18600:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18591:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18615:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18591:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53894,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"18655:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53885,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18500:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18509:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18500:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18536:12:91","18583:6:91","18636:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18500:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53896,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18486:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18470:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53898,"nodeType":"ExpressionStatement","src":"18470:227:91"},{"assignments":[53901],"declarations":[{"constant":false,"id":53901,"mutability":"mutable","name":"diamond","nameLocation":"18727:7:91","nodeType":"VariableDeclaration","scope":53911,"src":"18708:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53900,"nodeType":"UserDefinedTypeName","pathNode":{"id":53899,"name":"SubnetActorDiamond","nameLocations":["18708:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18708:18:91"},"referencedDeclaration":36615,"src":"18708:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53908,"initialValue":{"arguments":[{"id":53905,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53772,"src":"18760:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53906,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53705,"src":"18772:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18737:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53903,"nodeType":"UserDefinedTypeName","pathNode":{"id":53902,"name":"SubnetActorDiamond","nameLocations":["18741:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18741:18:91"},"referencedDeclaration":36615,"src":"18741:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18737:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"18708:71:91"},{"expression":{"id":53909,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53901,"src":"18797:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53710,"id":53910,"nodeType":"Return","src":"18790:14:91"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16340:17:91","parameters":{"id":53706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53705,"mutability":"mutable","name":"params","nameLocation":"16402:6:91","nodeType":"VariableDeclaration","scope":53912,"src":"16358:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53704,"nodeType":"UserDefinedTypeName","pathNode":{"id":53703,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["16358:18:91","16377:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"16358:36:91"},"referencedDeclaration":36253,"src":"16358:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"16357:52:91"},"returnParameters":{"id":53710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53912,"src":"16426:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53708,"nodeType":"UserDefinedTypeName","pathNode":{"id":53707,"name":"SubnetActorDiamond","nameLocations":["16426:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16426:18:91"},"referencedDeclaration":36615,"src":"16426:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16425:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53941,"nodeType":"FunctionDefinition","src":"18817:522:91","nodes":[],"body":{"id":53940,"nodeType":"Block","src":"19061:278:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":53929,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53914,"src":"19102:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53930,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53917,"src":"19131:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53931,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53919,"src":"19155:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53932,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53921,"src":"19193:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53933,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53923,"src":"19221:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53934,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53925,"src":"19247:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53935,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"19280:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19295:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"19280:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19319:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53928,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53912,53941,54244],"referencedDeclaration":54244,"src":"19071:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50118_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19071:261:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53939,"nodeType":"ExpressionStatement","src":"19071:261:91"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"18826:17:91","parameters":{"id":53926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53914,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"18861:15:91","nodeType":"VariableDeclaration","scope":53941,"src":"18853:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53913,"name":"address","nodeType":"ElementaryTypeName","src":"18853:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53917,"mutability":"mutable","name":"_consensus","nameLocation":"18900:10:91","nodeType":"VariableDeclaration","scope":53941,"src":"18886:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53916,"nodeType":"UserDefinedTypeName","pathNode":{"id":53915,"name":"ConsensusType","nameLocations":["18886:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"18886:13:91"},"referencedDeclaration":37359,"src":"18886:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53919,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"18928:24:91","nodeType":"VariableDeclaration","scope":53941,"src":"18920:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53918,"name":"uint256","nodeType":"ElementaryTypeName","src":"18920:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53921,"mutability":"mutable","name":"_minValidators","nameLocation":"18969:14:91","nodeType":"VariableDeclaration","scope":53941,"src":"18962:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53920,"name":"uint64","nodeType":"ElementaryTypeName","src":"18962:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53923,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19000:12:91","nodeType":"VariableDeclaration","scope":53941,"src":"18993:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53922,"name":"uint64","nodeType":"ElementaryTypeName","src":"18993:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53925,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19028:19:91","nodeType":"VariableDeclaration","scope":53941,"src":"19022:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53924,"name":"uint8","nodeType":"ElementaryTypeName","src":"19022:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18843:210:91"},"returnParameters":{"id":53927,"nodeType":"ParameterList","parameters":[],"src":"19061:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54244,"nodeType":"FunctionDefinition","src":"19345:3730:91","nodes":[],"body":{"id":54243,"nodeType":"Block","src":"19668:3407:91","nodes":[],"statements":[{"assignments":[53964],"declarations":[{"constant":false,"id":53964,"mutability":"mutable","name":"_parentId","nameLocation":"19694:9:91","nodeType":"VariableDeclaration","scope":54243,"src":"19678:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetID","nameLocations":["19678:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"19678:8:91"},"referencedDeclaration":50030,"src":"19678:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53973,"initialValue":{"arguments":[{"id":53966,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52677,"src":"19715:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19746:1:91","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":53969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19732:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53967,"name":"address","nodeType":"ElementaryTypeName","src":"19736:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53968,"nodeType":"ArrayTypeName","src":"19736:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19732:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53965,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"19706:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19706:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"19678:71:91"},{"expression":{"id":53979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53974,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"19760:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19772:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53976,"nodeType":"UserDefinedTypeName","pathNode":{"id":53975,"name":"SubnetActorManagerFacet","nameLocations":["19776:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"19776:23:91"},"referencedDeclaration":51946,"src":"19776:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19772:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"19760:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53980,"nodeType":"ExpressionStatement","src":"19760:41:91"},{"expression":{"id":53986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53981,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"19811:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19822:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53983,"nodeType":"UserDefinedTypeName","pathNode":{"id":53982,"name":"SubnetActorGetterFacet","nameLocations":["19826:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"19826:22:91"},"referencedDeclaration":51235,"src":"19826:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19822:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"19811:39:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53987,"nodeType":"ExpressionStatement","src":"19811:39:91"},{"expression":{"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53988,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"19860:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19871:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53990,"nodeType":"UserDefinedTypeName","pathNode":{"id":53989,"name":"SubnetActorPauseFacet","nameLocations":["19875:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"19875:21:91"},"referencedDeclaration":51991,"src":"19875:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19871:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"19860:38:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53994,"nodeType":"ExpressionStatement","src":"19860:38:91"},{"expression":{"id":54000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53995,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"19908:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19925:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53997,"nodeType":"UserDefinedTypeName","pathNode":{"id":53996,"name":"SubnetActorCheckpointingFacet","nameLocations":["19929:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"19929:29:91"},"referencedDeclaration":50577,"src":"19929:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19925:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"19908:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54001,"nodeType":"ExpressionStatement","src":"19908:52:91"},{"expression":{"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54002,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"19970:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19983:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":54004,"nodeType":"UserDefinedTypeName","pathNode":{"id":54003,"name":"SubnetActorRewardFacet","nameLocations":["19987:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"19987:22:91"},"referencedDeclaration":52158,"src":"19987:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":54006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19983:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"19970:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54008,"nodeType":"ExpressionStatement","src":"19970:41:91"},{"expression":{"id":54014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54009,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"20021:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20032:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54011,"nodeType":"UserDefinedTypeName","pathNode":{"id":54010,"name":"DiamondCutFacet","nameLocations":["20036:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20036:15:91"},"referencedDeclaration":36918,"src":"20036:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20032:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"20021:32:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54015,"nodeType":"ExpressionStatement","src":"20021:32:91"},{"expression":{"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54016,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"20063:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20074:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54018,"nodeType":"UserDefinedTypeName","pathNode":{"id":54017,"name":"DiamondLoupeFacet","nameLocations":["20078:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20078:17:91"},"referencedDeclaration":37355,"src":"20078:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20074:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"20063:34:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54022,"nodeType":"ExpressionStatement","src":"20063:34:91"},{"assignments":[54028],"declarations":[{"constant":false,"id":54028,"mutability":"mutable","name":"diamondCut","nameLocation":"20135:10:91","nodeType":"VariableDeclaration","scope":54243,"src":"20108:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54026,"nodeType":"UserDefinedTypeName","pathNode":{"id":54025,"name":"IDiamond.FacetCut","nameLocations":["20108:8:91","20117:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20108:17:91"},"referencedDeclaration":40159,"src":"20108:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54027,"nodeType":"ArrayTypeName","src":"20108:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54035,"initialValue":{"arguments":[{"hexValue":"37","id":54033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20172:1:91","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"id":54032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20148:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54030,"nodeType":"UserDefinedTypeName","pathNode":{"id":54029,"name":"IDiamond.FacetCut","nameLocations":["20152:8:91","20161:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20152:17:91"},"referencedDeclaration":40159,"src":"20152:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54031,"nodeType":"ArrayTypeName","src":"20152:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20148:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20108:66:91"},{"expression":{"id":54051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54036,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20185:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54038,"indexExpression":{"hexValue":"30","id":54037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20196:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20185:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54043,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"20273:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20265:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54041,"name":"address","nodeType":"ElementaryTypeName","src":"20265:7:91","typeDescriptions":{}}},"id":54044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20265:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54045,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20309:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20318:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20309:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20333:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20309:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54048,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52935,"src":"20373:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54039,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20215:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20224:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20215:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20251:12:91","20301:6:91","20354:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20215:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54050,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20201:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20185:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54052,"nodeType":"ExpressionStatement","src":"20185:231:91"},{"expression":{"id":54068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54053,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20427:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54055,"indexExpression":{"hexValue":"31","id":54054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20438:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20427:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54060,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"20515:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20507:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54058,"name":"address","nodeType":"ElementaryTypeName","src":"20507:7:91","typeDescriptions":{}}},"id":54061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20507:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54062,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20550:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20559:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20550:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20574:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20550:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54065,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"20614:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54056,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20457:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20466:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20457:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20493:12:91","20542:6:91","20595:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20457:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54067,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20443:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20427:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54069,"nodeType":"ExpressionStatement","src":"20427:229:91"},{"expression":{"id":54085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54070,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20667:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54072,"indexExpression":{"hexValue":"32","id":54071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20678:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20667:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54077,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"20755:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":54076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20747:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54075,"name":"address","nodeType":"ElementaryTypeName","src":"20747:7:91","typeDescriptions":{}}},"id":54078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20747:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54079,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20790:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20799:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20790:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20814:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20790:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54082,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52938,"src":"20854:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54073,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20697:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20706:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20697:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20733:12:91","20782:6:91","20835:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20697:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54084,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20683:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20667:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54086,"nodeType":"ExpressionStatement","src":"20667:229:91"},{"expression":{"id":54102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54087,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"20907:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54089,"indexExpression":{"hexValue":"33","id":54088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20918:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20907:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54094,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"20995:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":54093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20987:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54092,"name":"address","nodeType":"ElementaryTypeName","src":"20987:7:91","typeDescriptions":{}}},"id":54095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20987:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54096,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21032:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21041:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21032:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21056:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21032:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54099,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52941,"src":"21096:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54090,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20937:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20946:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20937:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20973:12:91","21024:6:91","21077:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20937:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54101,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20923:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20907:233:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54103,"nodeType":"ExpressionStatement","src":"20907:233:91"},{"expression":{"id":54119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54104,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21151:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54106,"indexExpression":{"hexValue":"34","id":54105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21162:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21151:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54111,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"21239:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":54110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21231:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54109,"name":"address","nodeType":"ElementaryTypeName","src":"21231:7:91","typeDescriptions":{}}},"id":54112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21231:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54113,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21280:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21289:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21280:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21304:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21280:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54116,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"21344:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54107,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21181:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21190:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21181:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21217:12:91","21272:6:91","21325:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21181:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54118,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21167:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21151:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54120,"nodeType":"ExpressionStatement","src":"21151:241:91"},{"expression":{"id":54136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54121,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21403:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54123,"indexExpression":{"hexValue":"35","id":54122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21414:1:91","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21403:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54128,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"21491:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21483:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54126,"name":"address","nodeType":"ElementaryTypeName","src":"21483:7:91","typeDescriptions":{}}},"id":54129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21483:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54130,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21526:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21535:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21526:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21550:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21526:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54133,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52950,"src":"21590:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54124,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21433:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21442:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21433:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21469:12:91","21518:6:91","21571:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21433:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21419:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21403:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54137,"nodeType":"ExpressionStatement","src":"21403:229:91"},{"expression":{"id":54153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54138,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21643:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54140,"indexExpression":{"hexValue":"36","id":54139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21654:1:91","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21643:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54145,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"21731:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21723:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54143,"name":"address","nodeType":"ElementaryTypeName","src":"21723:7:91","typeDescriptions":{}}},"id":54146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21723:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54147,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21766:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21775:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21766:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21790:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21766:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54150,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52953,"src":"21830:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54141,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21673:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21682:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21673:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21709:12:91","21758:6:91","21811:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21673:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54152,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21659:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21643:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54154,"nodeType":"ExpressionStatement","src":"21643:229:91"},{"expression":{"id":54178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54155,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"21883:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54159,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54028,"src":"21931:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":54162,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53964,"src":"22020:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54163,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53943,"src":"22063:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54164,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53946,"src":"22107:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":54165,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53948,"src":"22160:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54166,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53950,"src":"22217:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54167,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53952,"src":"22270:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54168,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53954,"src":"22320:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54169,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"22380:22:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":54170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22432:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":54171,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53957,"src":"22468:15:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":54172,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"22517:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54173,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"22570:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":54174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22589:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"22570:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":54175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22570:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":54160,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"21955:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":54161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21974:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"21955:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":54176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["22010:8:91","22047:14:91","22096:9:91","22135:23:91","22202:13:91","22249:19:91","22300:18:91","22357:21:91","22420:10:91","22452:14:91","22501:14:91","22556:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"21955:657:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21895:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54157,"nodeType":"UserDefinedTypeName","pathNode":{"id":54156,"name":"SubnetActorDiamond","nameLocations":["21899:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"21899:18:91"},"referencedDeclaration":36615,"src":"21899:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21895:727:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"21883:739:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":54179,"nodeType":"ExpressionStatement","src":"21883:739:91"},{"expression":{"id":54187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54180,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"22633:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54184,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22677:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22669:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54182,"name":"address","nodeType":"ElementaryTypeName","src":"22669:7:91","typeDescriptions":{}}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22669:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54181,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"22645:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":54186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22645:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"22633:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":54188,"nodeType":"ExpressionStatement","src":"22633:55:91"},{"expression":{"id":54196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54189,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52971,"src":"22698:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54193,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22739:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22731:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54191,"name":"address","nodeType":"ElementaryTypeName","src":"22731:7:91","typeDescriptions":{}}},"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22731:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54190,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"22709:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":54195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22709:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"22698:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":54197,"nodeType":"ExpressionStatement","src":"22698:52:91"},{"expression":{"id":54205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54198,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52968,"src":"22760:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22804:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22796:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54200,"name":"address","nodeType":"ElementaryTypeName","src":"22796:7:91","typeDescriptions":{}}},"id":54203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22796:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54199,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"22773:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":54204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22773:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"22760:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54206,"nodeType":"ExpressionStatement","src":"22760:55:91"},{"expression":{"id":54214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54207,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"22825:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54211,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22880:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22872:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54209,"name":"address","nodeType":"ElementaryTypeName","src":"22872:7:91","typeDescriptions":{}}},"id":54212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22872:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54208,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"22842:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":54213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22842:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"22825:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54215,"nodeType":"ExpressionStatement","src":"22825:66:91"},{"expression":{"id":54223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54216,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"22901:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54220,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22943:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22935:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54218,"name":"address","nodeType":"ElementaryTypeName","src":"22935:7:91","typeDescriptions":{}}},"id":54221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22935:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54217,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"22912:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":54222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"22901:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":54224,"nodeType":"ExpressionStatement","src":"22901:53:91"},{"expression":{"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54225,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52977,"src":"22964:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54229,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"22999:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22991:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54227,"name":"address","nodeType":"ElementaryTypeName","src":"22991:7:91","typeDescriptions":{}}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22991:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54226,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"22975:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22975:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"22964:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54233,"nodeType":"ExpressionStatement","src":"22964:46:91"},{"expression":{"id":54241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54234,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52980,"src":"23020:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54238,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"23057:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23049:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54236,"name":"address","nodeType":"ElementaryTypeName","src":"23049:7:91","typeDescriptions":{}}},"id":54239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23049:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54235,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"23031:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":54240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23031:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"23020:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54242,"nodeType":"ExpressionStatement","src":"23020:48:91"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"19354:17:91","parameters":{"id":53960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53943,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"19389:15:91","nodeType":"VariableDeclaration","scope":54244,"src":"19381:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53942,"name":"address","nodeType":"ElementaryTypeName","src":"19381:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53946,"mutability":"mutable","name":"_consensus","nameLocation":"19428:10:91","nodeType":"VariableDeclaration","scope":54244,"src":"19414:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53945,"nodeType":"UserDefinedTypeName","pathNode":{"id":53944,"name":"ConsensusType","nameLocations":["19414:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"19414:13:91"},"referencedDeclaration":37359,"src":"19414:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53948,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"19456:24:91","nodeType":"VariableDeclaration","scope":54244,"src":"19448:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53947,"name":"uint256","nodeType":"ElementaryTypeName","src":"19448:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53950,"mutability":"mutable","name":"_minValidators","nameLocation":"19497:14:91","nodeType":"VariableDeclaration","scope":54244,"src":"19490:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53949,"name":"uint64","nodeType":"ElementaryTypeName","src":"19490:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53952,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19528:12:91","nodeType":"VariableDeclaration","scope":54244,"src":"19521:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53951,"name":"uint64","nodeType":"ElementaryTypeName","src":"19521:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53954,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19556:19:91","nodeType":"VariableDeclaration","scope":54244,"src":"19550:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53953,"name":"uint8","nodeType":"ElementaryTypeName","src":"19550:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53957,"mutability":"mutable","name":"_permissionMode","nameLocation":"19600:15:91","nodeType":"VariableDeclaration","scope":54244,"src":"19585:30:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":53956,"nodeType":"UserDefinedTypeName","pathNode":{"id":53955,"name":"PermissionMode","nameLocations":["19585:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"19585:14:91"},"referencedDeclaration":50118,"src":"19585:14:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53959,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"19632:22:91","nodeType":"VariableDeclaration","scope":54244,"src":"19625:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53958,"name":"uint16","nodeType":"ElementaryTypeName","src":"19625:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19371:289:91"},"returnParameters":{"id":53961,"nodeType":"ParameterList","parameters":[],"src":"19668:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54337,"nodeType":"FunctionDefinition","src":"23081:997:91","nodes":[],"body":{"id":54336,"nodeType":"Block","src":"23173:905:91","nodes":[],"statements":[{"assignments":[54254],"declarations":[{"constant":false,"id":54254,"mutability":"mutable","name":"mockedManager","nameLocation":"23199:13:91","nodeType":"VariableDeclaration","scope":54336,"src":"23183:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"},"typeName":{"id":54253,"nodeType":"UserDefinedTypeName","pathNode":{"id":54252,"name":"SubnetActorMock","nameLocations":["23183:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"23183:15:91"},"referencedDeclaration":58342,"src":"23183:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"visibility":"internal"}],"id":54259,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23215:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorMock_$58342_$","typeString":"function () returns (contract SubnetActorMock)"},"typeName":{"id":54256,"nodeType":"UserDefinedTypeName","pathNode":{"id":54255,"name":"SubnetActorMock","nameLocations":["23219:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"23219:15:91"},"referencedDeclaration":58342,"src":"23219:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23215:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"nodeType":"VariableDeclarationStatement","src":"23183:53:91"},{"assignments":[54262],"declarations":[{"constant":false,"id":54262,"mutability":"mutable","name":"getter","nameLocation":"23269:6:91","nodeType":"VariableDeclaration","scope":54336,"src":"23246:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":54261,"nodeType":"UserDefinedTypeName","pathNode":{"id":54260,"name":"SubnetActorGetterFacet","nameLocations":["23246:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23246:22:91"},"referencedDeclaration":51235,"src":"23246:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":54267,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23278:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":54264,"nodeType":"UserDefinedTypeName","pathNode":{"id":54263,"name":"SubnetActorGetterFacet","nameLocations":["23282:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23282:22:91"},"referencedDeclaration":51235,"src":"23282:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":54266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23278:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"23246:60:91"},{"assignments":[54273],"declarations":[{"constant":false,"id":54273,"mutability":"mutable","name":"diamondCut","nameLocation":"23344:10:91","nodeType":"VariableDeclaration","scope":54336,"src":"23317:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54271,"nodeType":"UserDefinedTypeName","pathNode":{"id":54270,"name":"IDiamond.FacetCut","nameLocations":["23317:8:91","23326:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23317:17:91"},"referencedDeclaration":40159,"src":"23317:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54272,"nodeType":"ArrayTypeName","src":"23317:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54280,"initialValue":{"arguments":[{"hexValue":"32","id":54278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23381:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23357:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54275,"nodeType":"UserDefinedTypeName","pathNode":{"id":54274,"name":"IDiamond.FacetCut","nameLocations":["23361:8:91","23370:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23361:17:91"},"referencedDeclaration":40159,"src":"23361:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54276,"nodeType":"ArrayTypeName","src":"23361:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23357:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"23317:66:91"},{"expression":{"id":54296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54281,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"23394:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54283,"indexExpression":{"hexValue":"30","id":54282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23405:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23394:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54288,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54254,"src":"23482:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}],"id":54287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23474:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54286,"name":"address","nodeType":"ElementaryTypeName","src":"23474:7:91","typeDescriptions":{}}},"id":54289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23474:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54290,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23522:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23531:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23522:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23546:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23522:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54293,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"23586:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54284,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23424:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23433:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23424:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23460:12:91","23514:6:91","23567:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23424:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54295,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23410:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23394:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54297,"nodeType":"ExpressionStatement","src":"23394:241:91"},{"expression":{"id":54313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54298,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"23646:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54300,"indexExpression":{"hexValue":"31","id":54299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23657:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23646:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54305,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54262,"src":"23734:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23726:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54303,"name":"address","nodeType":"ElementaryTypeName","src":"23726:7:91","typeDescriptions":{}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23726:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54307,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23767:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23767:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23791:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23767:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54310,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52932,"src":"23831:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54301,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23676:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23685:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23676:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23712:12:91","23759:6:91","23812:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23676:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23662:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23646:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54314,"nodeType":"ExpressionStatement","src":"23646:227:91"},{"assignments":[54319],"declarations":[{"constant":false,"id":54319,"mutability":"mutable","name":"params","nameLocation":"23928:6:91","nodeType":"VariableDeclaration","scope":54336,"src":"23884:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54318,"nodeType":"UserDefinedTypeName","pathNode":{"id":54317,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["23884:18:91","23903:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"23884:36:91"},"referencedDeclaration":36253,"src":"23884:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54323,"initialValue":{"arguments":[{"id":54321,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54246,"src":"23973:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54320,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53088,"src":"23937:35:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23937:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"23884:92:91"},{"assignments":[54326],"declarations":[{"constant":false,"id":54326,"mutability":"mutable","name":"d","nameLocation":"24006:1:91","nodeType":"VariableDeclaration","scope":54336,"src":"23987:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54325,"nodeType":"UserDefinedTypeName","pathNode":{"id":54324,"name":"SubnetActorDiamond","nameLocations":["23987:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23987:18:91"},"referencedDeclaration":36615,"src":"23987:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54333,"initialValue":{"arguments":[{"id":54330,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54273,"src":"24033:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54331,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54319,"src":"24045:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24010:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54328,"nodeType":"UserDefinedTypeName","pathNode":{"id":54327,"name":"SubnetActorDiamond","nameLocations":["24014:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"24014:18:91"},"referencedDeclaration":36615,"src":"24014:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24010:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"23987:65:91"},{"expression":{"id":54334,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54326,"src":"24070:1:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":54251,"id":54335,"nodeType":"Return","src":"24063:8:91"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"23090:34:91","parameters":{"id":54247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54246,"mutability":"mutable","name":"gw","nameLocation":"23133:2:91","nodeType":"VariableDeclaration","scope":54337,"src":"23125:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54245,"name":"address","nodeType":"ElementaryTypeName","src":"23125:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23124:12:91"},"returnParameters":{"id":54251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54337,"src":"23153:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54249,"nodeType":"UserDefinedTypeName","pathNode":{"id":54248,"name":"SubnetActorDiamond","nameLocations":["23153:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23153:18:91"},"referencedDeclaration":36615,"src":"23153:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"23152:20:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54479,"nodeType":"FunctionDefinition","src":"24130:1703:91","nodes":[],"body":{"id":54478,"nodeType":"Block","src":"24268:1565:91","nodes":[],"statements":[{"assignments":[54351],"declarations":[{"constant":false,"id":54351,"mutability":"mutable","name":"diamondCut","nameLocation":"24305:10:91","nodeType":"VariableDeclaration","scope":54478,"src":"24278:37:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54349,"nodeType":"UserDefinedTypeName","pathNode":{"id":54348,"name":"IDiamond.FacetCut","nameLocations":["24278:8:91","24287:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24278:17:91"},"referencedDeclaration":40159,"src":"24278:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54350,"nodeType":"ArrayTypeName","src":"24278:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54358,"initialValue":{"arguments":[{"hexValue":"34","id":54356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24342:1:91","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24318:23:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54353,"nodeType":"UserDefinedTypeName","pathNode":{"id":54352,"name":"IDiamond.FacetCut","nameLocations":["24322:8:91","24331:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24322:17:91"},"referencedDeclaration":40159,"src":"24322:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54354,"nodeType":"ArrayTypeName","src":"24322:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24318:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24278:66:91"},{"assignments":[54361],"declarations":[{"constant":false,"id":54361,"mutability":"mutable","name":"regCutFacet","nameLocation":"24371:11:91","nodeType":"VariableDeclaration","scope":54478,"src":"24355:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54360,"nodeType":"UserDefinedTypeName","pathNode":{"id":54359,"name":"DiamondCutFacet","nameLocations":["24355:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24355:15:91"},"referencedDeclaration":36918,"src":"24355:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54366,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24385:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54363,"nodeType":"UserDefinedTypeName","pathNode":{"id":54362,"name":"DiamondCutFacet","nameLocations":["24389:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24389:15:91"},"referencedDeclaration":36918,"src":"24389:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24385:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"24355:51:91"},{"assignments":[54369],"declarations":[{"constant":false,"id":54369,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"24434:13:91","nodeType":"VariableDeclaration","scope":54478,"src":"24416:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54368,"nodeType":"UserDefinedTypeName","pathNode":{"id":54367,"name":"DiamondLoupeFacet","nameLocations":["24416:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24416:17:91"},"referencedDeclaration":37355,"src":"24416:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54374,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24450:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54371,"nodeType":"UserDefinedTypeName","pathNode":{"id":54370,"name":"DiamondLoupeFacet","nameLocations":["24454:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24454:17:91"},"referencedDeclaration":37355,"src":"24454:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24450:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"24416:57:91"},{"assignments":[54377],"declarations":[{"constant":false,"id":54377,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"24503:14:91","nodeType":"VariableDeclaration","scope":54478,"src":"24483:34:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54376,"nodeType":"UserDefinedTypeName","pathNode":{"id":54375,"name":"RegisterSubnetFacet","nameLocations":["24483:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24483:19:91"},"referencedDeclaration":52286,"src":"24483:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54382,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24520:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54379,"nodeType":"UserDefinedTypeName","pathNode":{"id":54378,"name":"RegisterSubnetFacet","nameLocations":["24524:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24524:19:91"},"referencedDeclaration":52286,"src":"24524:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}},"id":54381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24520:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"24483:62:91"},{"assignments":[54385],"declarations":[{"constant":false,"id":54385,"mutability":"mutable","name":"regGetterFacet","nameLocation":"24573:14:91","nodeType":"VariableDeclaration","scope":54478,"src":"24555:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54384,"nodeType":"UserDefinedTypeName","pathNode":{"id":54383,"name":"SubnetGetterFacet","nameLocations":["24555:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24555:17:91"},"referencedDeclaration":52524,"src":"24555:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54390,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24590:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54387,"nodeType":"UserDefinedTypeName","pathNode":{"id":54386,"name":"SubnetGetterFacet","nameLocations":["24594:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24594:17:91"},"referencedDeclaration":52524,"src":"24594:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}},"id":54389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24590:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"24555:58:91"},{"expression":{"id":54406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54391,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"24624:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54393,"indexExpression":{"hexValue":"30","id":54392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24635:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24624:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54398,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54369,"src":"24712:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24704:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54396,"name":"address","nodeType":"ElementaryTypeName","src":"24704:7:91","typeDescriptions":{}}},"id":54399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24704:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54400,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24752:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24761:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24752:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24776:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24752:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54403,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"24816:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54394,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24654:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24663:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24654:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24690:12:91","24744:6:91","24797:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24654:200:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24640:224:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24624:240:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54407,"nodeType":"ExpressionStatement","src":"24624:240:91"},{"expression":{"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54408,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"24874:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54410,"indexExpression":{"hexValue":"31","id":54409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24885:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24874:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54415,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54361,"src":"24962:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24954:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54413,"name":"address","nodeType":"ElementaryTypeName","src":"24954:7:91","typeDescriptions":{}}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24954:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54417,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25000:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25009:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25000:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25024:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25000:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54420,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"25064:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54411,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24904:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24913:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24904:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24940:12:91","24992:6:91","25045:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24904:198:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54422,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24890:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24874:238:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54424,"nodeType":"ExpressionStatement","src":"24874:238:91"},{"expression":{"id":54440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54425,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25122:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54427,"indexExpression":{"hexValue":"32","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25133:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25122:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54432,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54377,"src":"25210:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}],"id":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25202:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54430,"name":"address","nodeType":"ElementaryTypeName","src":"25202:7:91","typeDescriptions":{}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25202:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54434,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25251:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25251:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25275:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25251:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54437,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52703,"src":"25315:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54428,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25152:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25161:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25152:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25188:12:91","25243:6:91","25296:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25152:206:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25138:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25122:246:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54441,"nodeType":"ExpressionStatement","src":"25122:246:91"},{"expression":{"id":54457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54442,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25378:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54444,"indexExpression":{"hexValue":"33","id":54443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25389:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25378:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54449,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54385,"src":"25466:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}],"id":54448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25458:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54447,"name":"address","nodeType":"ElementaryTypeName","src":"25458:7:91","typeDescriptions":{}}},"id":54450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25458:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54451,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25507:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25516:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25507:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25531:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25507:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54454,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"25571:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54445,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25408:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25417:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25408:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25444:12:91","25499:6:91","25552:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25408:212:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54456,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25394:236:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25378:252:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54458,"nodeType":"ExpressionStatement","src":"25378:252:91"},{"assignments":[54461],"declarations":[{"constant":false,"id":54461,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"25663:17:91","nodeType":"VariableDeclaration","scope":54478,"src":"25641:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54460,"nodeType":"UserDefinedTypeName","pathNode":{"id":54459,"name":"SubnetRegistryDiamond","nameLocations":["25641:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25641:21:91"},"referencedDeclaration":36853,"src":"25641:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54468,"initialValue":{"arguments":[{"id":54465,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54351,"src":"25709:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54466,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54340,"src":"25721:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"25683:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54463,"nodeType":"UserDefinedTypeName","pathNode":{"id":54462,"name":"SubnetRegistryDiamond","nameLocations":["25687:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25687:21:91"},"referencedDeclaration":36853,"src":"25687:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25683:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"25641:87:91"},{"eventCall":{"arguments":[{"arguments":[{"id":54472,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"25773:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25765:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54470,"name":"address","nodeType":"ElementaryTypeName","src":"25765:7:91","typeDescriptions":{}}},"id":54473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25765:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54469,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53123,"src":"25743:21:91","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25743:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54475,"nodeType":"EmitStatement","src":"25738:54:91"},{"expression":{"id":54476,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54461,"src":"25809:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54345,"id":54477,"nodeType":"Return","src":"25802:24:91"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"24139:20:91","parameters":{"id":54341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54340,"mutability":"mutable","name":"params","nameLocation":"24216:6:91","nodeType":"VariableDeclaration","scope":54479,"src":"24169:53:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54339,"nodeType":"UserDefinedTypeName","pathNode":{"id":54338,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["24169:21:91","24191:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"24169:39:91"},"referencedDeclaration":36652,"src":"24169:39:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"24159:69:91"},"returnParameters":{"id":54345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54479,"src":"24245:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54343,"nodeType":"UserDefinedTypeName","pathNode":{"id":54342,"name":"SubnetRegistryDiamond","nameLocations":["24245:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"24245:21:91"},"referencedDeclaration":36853,"src":"24245:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"24244:23:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54508,"nodeType":"FunctionDefinition","src":"25839:190:91","nodes":[],"body":{"id":54507,"nodeType":"Block","src":"25920:109:91","nodes":[],"statements":[{"body":{"id":54503,"nodeType":"Block","src":"25961:42:91","statements":[{"expression":{"id":54501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54497,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"25975:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54498,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54482,"src":"25982:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54500,"indexExpression":{"id":54499,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25990:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25982:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25975:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54502,"nodeType":"ExpressionStatement","src":"25975:17:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54491,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25949:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25953:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"25949:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54504,"initializationExpression":{"assignments":[54488],"declarations":[{"constant":false,"id":54488,"mutability":"mutable","name":"i","nameLocation":"25942:1:91","nodeType":"VariableDeclaration","scope":54504,"src":"25935:8:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54487,"name":"uint64","nodeType":"ElementaryTypeName","src":"25935:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54490,"initialValue":{"hexValue":"30","id":54489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25946:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25935:12:91"},"loopExpression":{"expression":{"id":54495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25956:3:91","subExpression":{"id":54494,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"25956:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54496,"nodeType":"ExpressionStatement","src":"25956:3:91"},"nodeType":"ForStatement","src":"25930:73:91"},{"expression":{"id":54505,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"26019:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54486,"id":54506,"nodeType":"Return","src":"26012:10:91"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"25848:11:91","parameters":{"id":54483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54482,"mutability":"mutable","name":"weights","nameLocation":"25877:7:91","nodeType":"VariableDeclaration","scope":54508,"src":"25860:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54480,"name":"uint256","nodeType":"ElementaryTypeName","src":"25860:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54481,"nodeType":"ArrayTypeName","src":"25860:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25859:26:91"},"returnParameters":{"id":54486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54485,"mutability":"mutable","name":"sum","nameLocation":"25915:3:91","nodeType":"VariableDeclaration","scope":54508,"src":"25907:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54484,"name":"uint256","nodeType":"ElementaryTypeName","src":"25907:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25906:13:91"},"scope":55676,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54683,"nodeType":"FunctionDefinition","src":"26035:933:91","nodes":[],"body":{"id":54682,"nodeType":"Block","src":"26138:830:91","nodes":[],"statements":[{"expression":{"id":54525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54518,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26148:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26178:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26161:16:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54520,"nodeType":"UserDefinedTypeName","pathNode":{"id":54519,"name":"FvmAddress","nameLocations":["26165:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26165:10:91"},"referencedDeclaration":49951,"src":"26165:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54521,"nodeType":"ArrayTypeName","src":"26165:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26161:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"26148:32:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54526,"nodeType":"ExpressionStatement","src":"26148:32:91"},{"expression":{"id":54537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54527,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26190:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54529,"indexExpression":{"hexValue":"30","id":54528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26201:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26190:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26236:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54532,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26228:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26231:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26228:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26228:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54530,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26206:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26223:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26206:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26206:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26190:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54538,"nodeType":"ExpressionStatement","src":"26190:51:91"},{"expression":{"id":54549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54539,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26251:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54541,"indexExpression":{"hexValue":"31","id":54540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26262:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26251:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26297:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54544,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26289:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26292:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26289:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26289:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54542,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26267:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26284:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26267:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26267:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26251:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54550,"nodeType":"ExpressionStatement","src":"26251:51:91"},{"expression":{"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54551,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54513,"src":"26312:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54553,"indexExpression":{"hexValue":"32","id":54552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26323:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26312:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26358:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54556,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26350:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26353:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26350:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26350:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54554,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26328:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26345:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26328:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26328:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26312:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54562,"nodeType":"ExpressionStatement","src":"26312:51:91"},{"expression":{"id":54569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54563,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26374:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26400:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26386:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54564,"name":"address","nodeType":"ElementaryTypeName","src":"26390:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54565,"nodeType":"ArrayTypeName","src":"26390:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26386:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"26374:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54570,"nodeType":"ExpressionStatement","src":"26374:28:91"},{"expression":{"id":54578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54571,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26412:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54573,"indexExpression":{"hexValue":"30","id":54572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26422:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26412:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26435:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54574,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26427:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26430:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26427:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26427:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26412:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54579,"nodeType":"ExpressionStatement","src":"26412:27:91"},{"expression":{"id":54587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54580,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26449:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54582,"indexExpression":{"hexValue":"31","id":54581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26459:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26449:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26472:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54583,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26464:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26467:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26464:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26464:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26449:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54588,"nodeType":"ExpressionStatement","src":"26449:27:91"},{"expression":{"id":54596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54589,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54516,"src":"26486:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54591,"indexExpression":{"hexValue":"32","id":54590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26496:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26486:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26509:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54592,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26501:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26504:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26501:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26501:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26486:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54597,"nodeType":"ExpressionStatement","src":"26486:27:91"},{"assignments":[54602],"declarations":[{"constant":false,"id":54602,"mutability":"mutable","name":"weights","nameLocation":"26541:7:91","nodeType":"VariableDeclaration","scope":54682,"src":"26524:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"26524:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54601,"nodeType":"ArrayTypeName","src":"26524:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54608,"initialValue":{"arguments":[{"hexValue":"33","id":54606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26565:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26551:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54603,"name":"uint256","nodeType":"ElementaryTypeName","src":"26555:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54604,"nodeType":"ArrayTypeName","src":"26555:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26551:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"26524:43:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26594:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54612,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26586:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26589:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26586:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26586:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26600:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54609,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26578:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26581:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26578:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26578:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54618,"nodeType":"ExpressionStatement","src":"26578:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26628:3:91","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54622,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26620:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26623:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26620:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26620:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26634:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54619,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26612:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26615:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26612:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26612:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54628,"nodeType":"ExpressionStatement","src":"26612:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26662:3:91","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54632,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26654:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26657:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26654:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26654:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26668:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54629,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26646:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26649:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26646:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54638,"nodeType":"ExpressionStatement","src":"26646:24:91"},{"expression":{"id":54643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54639,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26681:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54641,"indexExpression":{"hexValue":"30","id":54640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26689:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26681:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26694:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26681:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54644,"nodeType":"ExpressionStatement","src":"26681:16:91"},{"expression":{"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54645,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26707:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54647,"indexExpression":{"hexValue":"31","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26715:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26707:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26720:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26707:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54650,"nodeType":"ExpressionStatement","src":"26707:16:91"},{"expression":{"id":54655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54651,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54602,"src":"26733:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54653,"indexExpression":{"hexValue":"32","id":54652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26741:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26733:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26746:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26733:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54656,"nodeType":"ExpressionStatement","src":"26733:16:91"},{"assignments":[54659],"declarations":[{"constant":false,"id":54659,"mutability":"mutable","name":"finality","nameLocation":"26782:8:91","nodeType":"VariableDeclaration","scope":54682,"src":"26760:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54658,"nodeType":"UserDefinedTypeName","pathNode":{"id":54657,"name":"ParentFinality","nameLocations":["26760:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"26760:14:91"},"referencedDeclaration":49871,"src":"26760:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54668,"initialValue":{"arguments":[{"expression":{"id":54661,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26817:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26823:6:91","memberName":"number","nodeType":"MemberAccess","src":"26817:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26850:1:91","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":54664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26842:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26842:7:91","typeDescriptions":{}}},"id":54666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54660,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"26793:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["26809:6:91","26831:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"26793:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"26760:94:91"},{"expression":{"arguments":[{"expression":{"id":54672,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"26874:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26885:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"26874:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54669,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26865:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26868:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26865:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26865:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54675,"nodeType":"ExpressionStatement","src":"26865:33:91"},{"expression":{"arguments":[{"id":54679,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54659,"src":"26952:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54676,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"26908:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26931:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"26908:43:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49871_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26908:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54681,"nodeType":"ExpressionStatement","src":"26908:53:91"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"26044:15:91","parameters":{"id":54509,"nodeType":"ParameterList","parameters":[],"src":"26059:2:91"},"returnParameters":{"id":54517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54513,"mutability":"mutable","name":"validators","nameLocation":"26098:10:91","nodeType":"VariableDeclaration","scope":54683,"src":"26078:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54511,"nodeType":"UserDefinedTypeName","pathNode":{"id":54510,"name":"FvmAddress","nameLocations":["26078:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26078:10:91"},"referencedDeclaration":49951,"src":"26078:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54512,"nodeType":"ArrayTypeName","src":"26078:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54516,"mutability":"mutable","name":"addresses","nameLocation":"26127:9:91","nodeType":"VariableDeclaration","scope":54683,"src":"26110:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54514,"name":"address","nodeType":"ElementaryTypeName","src":"26110:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54515,"nodeType":"ArrayTypeName","src":"26110:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26077:60:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54776,"nodeType":"FunctionDefinition","src":"26974:1297:91","nodes":[],"body":{"id":54775,"nodeType":"Block","src":"27058:1213:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54693,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"27083:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54694,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27110:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54692,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55583,"src":"27068:14:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27068:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54696,"nodeType":"ExpressionStatement","src":"27068:46:91"},{"assignments":[54699],"declarations":[{"constant":false,"id":54699,"mutability":"mutable","name":"crossMsg","nameLocation":"27141:8:91","nodeType":"VariableDeclaration","scope":54775,"src":"27125:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54698,"nodeType":"UserDefinedTypeName","pathNode":{"id":54697,"name":"CrossMsg","nameLocations":["27125:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27125:8:91"},"referencedDeclaration":49927,"src":"27125:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54739,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54707,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54685,"src":"27304:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54703,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"27263:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27272:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27263:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27263:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27289:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27263:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27263:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54711,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54685,"src":"27367:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54709,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27345:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27362:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27345:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27345:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54702,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27220:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27253:8:91","27333:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27220:173:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54719,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27499:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54715,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"27458:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27467:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27458:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27458:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27484:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27458:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27458:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54723,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"27559:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54721,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27537:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27554:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27537:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27537:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54714,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27415:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27448:8:91","27525:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27415:167:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54726,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"27607:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27631:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27607:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27657:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54730,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"27684:11:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27731:1:91","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":54732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27721:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54731,"name":"bytes","nodeType":"ElementaryTypeName","src":"27725:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27721:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54735,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52645,"src":"27756:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54701,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"27184:11:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27214:4:91","27411:2:91","27600:5:91","27650:5:91","27676:6:91","27713:6:91","27751:3:91"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"27184:608:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27815:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54700,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"27152:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27175:7:91","27806:7:91"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"27152:679:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"27125:706:91"},{"assignments":[54744],"declarations":[{"constant":false,"id":54744,"mutability":"mutable","name":"msgs","nameLocation":"27859:4:91","nodeType":"VariableDeclaration","scope":54775,"src":"27841:22:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54742,"nodeType":"UserDefinedTypeName","pathNode":{"id":54741,"name":"CrossMsg","nameLocations":["27841:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27841:8:91"},"referencedDeclaration":49927,"src":"27841:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54743,"nodeType":"ArrayTypeName","src":"27841:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54751,"initialValue":{"arguments":[{"hexValue":"31","id":54749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27881:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27866:14:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54746,"nodeType":"UserDefinedTypeName","pathNode":{"id":54745,"name":"CrossMsg","nameLocations":["27870:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27870:8:91"},"referencedDeclaration":49927,"src":"27870:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54747,"nodeType":"ArrayTypeName","src":"27870:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27866:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27841:42:91"},{"expression":{"id":54756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54752,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"27893:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54754,"indexExpression":{"hexValue":"30","id":54753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27898:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27893:7:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54755,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"27903:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"27893:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54757,"nodeType":"ExpressionStatement","src":"27893:18:91"},{"expression":{"arguments":[{"expression":{"id":54761,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28150:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28161:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28150:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54758,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28141:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28144:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"28141:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28141:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54764,"nodeType":"ExpressionStatement","src":"28141:33:91"},{"expression":{"arguments":[{"id":54768,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"28224:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54765,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"28184:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28205:18:91","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"28184:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28184:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54770,"nodeType":"ExpressionStatement","src":"28184:45:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54771,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"28247:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28256:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40534,"src":"28247:15:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49927_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28247:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54691,"id":54774,"nodeType":"Return","src":"28240:24:91"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"26983:20:91","parameters":{"id":54688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54685,"mutability":"mutable","name":"caller","nameLocation":"27012:6:91","nodeType":"VariableDeclaration","scope":54776,"src":"27004:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54684,"name":"address","nodeType":"ElementaryTypeName","src":"27004:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54687,"mutability":"mutable","name":"src","nameLocation":"27028:3:91","nodeType":"VariableDeclaration","scope":54776,"src":"27020:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54686,"name":"address","nodeType":"ElementaryTypeName","src":"27020:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27003:29:91"},"returnParameters":{"id":54691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54776,"src":"27049:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27049:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27048:9:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54787,"nodeType":"FunctionDefinition","src":"28277:93:91","nodes":[],"body":{"id":54786,"nodeType":"Block","src":"28325:45:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54782,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54778,"src":"28348:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28359:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54781,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54787,54870],"referencedDeclaration":54870,"src":"28335:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28335:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54785,"nodeType":"ExpressionStatement","src":"28335:28:91"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28286:12:91","parameters":{"id":54779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54778,"mutability":"mutable","name":"validator","nameLocation":"28307:9:91","nodeType":"VariableDeclaration","scope":54787,"src":"28299:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54777,"name":"address","nodeType":"ElementaryTypeName","src":"28299:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28298:19:91"},"returnParameters":{"id":54780,"nodeType":"ParameterList","parameters":[],"src":"28325:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54870,"nodeType":"FunctionDefinition","src":"28376:610:91","nodes":[],"body":{"id":54869,"nodeType":"Block","src":"28440:546:91","nodes":[],"statements":[{"assignments":[54798],"declarations":[{"constant":false,"id":54798,"mutability":"mutable","name":"validators","nameLocation":"28470:10:91","nodeType":"VariableDeclaration","scope":54869,"src":"28450:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54796,"nodeType":"UserDefinedTypeName","pathNode":{"id":54795,"name":"FvmAddress","nameLocations":["28450:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28450:10:91"},"referencedDeclaration":49951,"src":"28450:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54797,"nodeType":"ArrayTypeName","src":"28450:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54805,"initialValue":{"arguments":[{"hexValue":"31","id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28500:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28483:16:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54800,"nodeType":"UserDefinedTypeName","pathNode":{"id":54799,"name":"FvmAddress","nameLocations":["28487:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28487:10:91"},"referencedDeclaration":49951,"src":"28487:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54801,"nodeType":"ArrayTypeName","src":"28487:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28483:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28450:52:91"},{"expression":{"id":54813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54806,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54798,"src":"28512:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54808,"indexExpression":{"hexValue":"30","id":54807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28523:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28512:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54789,"src":"28550:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54809,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"28528:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28545:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"28528:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28528:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"28512:48:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54814,"nodeType":"ExpressionStatement","src":"28512:48:91"},{"assignments":[54819],"declarations":[{"constant":false,"id":54819,"mutability":"mutable","name":"weights","nameLocation":"28587:7:91","nodeType":"VariableDeclaration","scope":54869,"src":"28570:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54817,"name":"uint256","nodeType":"ElementaryTypeName","src":"28570:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54818,"nodeType":"ArrayTypeName","src":"28570:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54825,"initialValue":{"arguments":[{"hexValue":"31","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28611:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28597:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54820,"name":"uint256","nodeType":"ElementaryTypeName","src":"28601:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54821,"nodeType":"ArrayTypeName","src":"28601:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28597:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28570:43:91"},{"expression":{"id":54830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54826,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54819,"src":"28623:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54828,"indexExpression":{"hexValue":"30","id":54827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28631:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28623:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54829,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54791,"src":"28636:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28623:19:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54831,"nodeType":"ExpressionStatement","src":"28623:19:91"},{"expression":{"arguments":[{"id":54835,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54789,"src":"28661:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28672:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54832,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28653:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28656:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28653:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28653:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54838,"nodeType":"ExpressionStatement","src":"28653:21:91"},{"assignments":[54841],"declarations":[{"constant":false,"id":54841,"mutability":"mutable","name":"finality","nameLocation":"28706:8:91","nodeType":"VariableDeclaration","scope":54869,"src":"28684:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54840,"nodeType":"UserDefinedTypeName","pathNode":{"id":54839,"name":"ParentFinality","nameLocations":["28684:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"28684:14:91"},"referencedDeclaration":49871,"src":"28684:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54850,"initialValue":{"arguments":[{"expression":{"id":54843,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28741:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28747:6:91","memberName":"number","nodeType":"MemberAccess","src":"28741:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28774:1:91","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":54846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28766:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28766:7:91","typeDescriptions":{}}},"id":54848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28766:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54842,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"28717:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28733:6:91","28755:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"28717:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"28684:94:91"},{"expression":{"arguments":[{"expression":{"id":54854,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28868:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28879:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28868:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54851,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28854:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28857:10:91","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"28854:13:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28854:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54857,"nodeType":"ExpressionStatement","src":"28854:38:91"},{"expression":{"arguments":[{"id":54861,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54841,"src":"28946:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54858,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52809,"src":"28902:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28925:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"28902:43:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49871_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28902:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54863,"nodeType":"ExpressionStatement","src":"28902:53:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54864,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28965:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28968:9:91","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"28965:12:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28965:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54868,"nodeType":"ExpressionStatement","src":"28965:14:91"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28385:12:91","parameters":{"id":54792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54789,"mutability":"mutable","name":"validator","nameLocation":"28406:9:91","nodeType":"VariableDeclaration","scope":54870,"src":"28398:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54788,"name":"address","nodeType":"ElementaryTypeName","src":"28398:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54791,"mutability":"mutable","name":"weight","nameLocation":"28425:6:91","nodeType":"VariableDeclaration","scope":54870,"src":"28417:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54790,"name":"uint256","nodeType":"ElementaryTypeName","src":"28417:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28397:35:91"},"returnParameters":{"id":54793,"nodeType":"ParameterList","parameters":[],"src":"28440:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54883,"nodeType":"FunctionDefinition","src":"28992:112:91","nodes":[],"body":{"id":54882,"nodeType":"Block","src":"29036:68:91","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29058:30:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54879,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54872,"src":"29090:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54875,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"29046:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29054:3:91","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"29046:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29046:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54881,"nodeType":"ExpressionStatement","src":"29046:51:91"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"29001:6:91","parameters":{"id":54873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54872,"mutability":"mutable","name":"amount","nameLocation":"29016:6:91","nodeType":"VariableDeclaration","scope":54883,"src":"29008:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54871,"name":"uint256","nodeType":"ElementaryTypeName","src":"29008:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29007:16:91"},"returnParameters":{"id":54874,"nodeType":"ParameterList","parameters":[],"src":"29036:0:91"},"scope":55676,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54898,"nodeType":"FunctionDefinition","src":"29110:131:91","nodes":[],"body":{"id":54897,"nodeType":"Block","src":"29174:67:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54891,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54885,"src":"29189:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54892,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54887,"src":"29204:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54893,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29216:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29227:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29216:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}],"id":54890,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54898,55023],"referencedDeclaration":55023,"src":"29184:4:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50182_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29184:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54896,"nodeType":"ExpressionStatement","src":"29184:50:91"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29119:4:91","parameters":{"id":54888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54885,"mutability":"mutable","name":"funderAddress","nameLocation":"29132:13:91","nodeType":"VariableDeclaration","scope":54898,"src":"29124:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54884,"name":"address","nodeType":"ElementaryTypeName","src":"29124:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54887,"mutability":"mutable","name":"fundAmount","nameLocation":"29155:10:91","nodeType":"VariableDeclaration","scope":54898,"src":"29147:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54886,"name":"uint256","nodeType":"ElementaryTypeName","src":"29147:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29123:43:91"},"returnParameters":{"id":54889,"nodeType":"ParameterList","parameters":[],"src":"29174:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55023,"nodeType":"FunctionDefinition","src":"29247:1180:91","nodes":[],"body":{"id":55022,"nodeType":"Block","src":"29328:1099:91","nodes":[],"statements":[{"assignments":[54910,null,54912,null,54914],"declarations":[{"constant":false,"id":54910,"mutability":"mutable","name":"subnetId","nameLocation":"29420:8:91","nodeType":"VariableDeclaration","scope":55022,"src":"29404:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54909,"nodeType":"UserDefinedTypeName","pathNode":{"id":54908,"name":"SubnetID","nameLocations":["29404:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"29404:8:91"},"referencedDeclaration":50030,"src":"29404:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54912,"mutability":"mutable","name":"nonceBefore","nameLocation":"29440:11:91","nodeType":"VariableDeclaration","scope":55022,"src":"29432:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54911,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54914,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"29463:16:91","nodeType":"VariableDeclaration","scope":55022,"src":"29455:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54913,"name":"uint256","nodeType":"ElementaryTypeName","src":"29455:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54921,"initialValue":{"arguments":[{"arguments":[{"id":54918,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"29501:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29493:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54916,"name":"address","nodeType":"ElementaryTypeName","src":"29493:7:91","typeDescriptions":{}}},"id":54919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54915,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"29483:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29483:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29403:109:91"},{"assignments":[54923],"declarations":[{"constant":false,"id":54923,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"29531:25:91","nodeType":"VariableDeclaration","scope":55022,"src":"29523:33:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54922,"name":"uint256","nodeType":"ElementaryTypeName","src":"29523:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54930,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54926,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"29595:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54924,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"29559:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29568:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"29559:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29559:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29607:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29559:49:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29523:85:91"},{"assignments":[54932],"declarations":[{"constant":false,"id":54932,"mutability":"mutable","name":"expectedNonce","nameLocation":"29626:13:91","nodeType":"VariableDeclaration","scope":55022,"src":"29618:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54931,"name":"uint256","nodeType":"ElementaryTypeName","src":"29618:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54936,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54933,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54912,"src":"29642:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29656:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29642:15:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29618:39:91"},{"assignments":[54938],"declarations":[{"constant":false,"id":54938,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"29675:18:91","nodeType":"VariableDeclaration","scope":55022,"src":"29667:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54937,"name":"uint256","nodeType":"ElementaryTypeName","src":"29667:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54942,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54939,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54914,"src":"29696:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54940,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"29715:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29696:29:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29667:58:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54944,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"29744:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29753:11:91","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"29744:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29744:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29769:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29744:26:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29772:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29736:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29736:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54951,"nodeType":"ExpressionStatement","src":"29736:55:91"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54952,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54905,"src":"29806:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54953,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29814:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29825:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29814:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29806:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54969,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54905,"src":"29949:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54970,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29957:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29968:5:91","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"29957:16:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29949:24:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54985,"nodeType":"IfStatement","src":"29945:138:91","trueBody":{"id":54984,"nodeType":"Block","src":"29975:108:91","statements":[{"expression":{"arguments":[{"id":54976,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"30013:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54979,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54900,"src":"30045:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54977,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"30023:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30040:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"30023:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30023:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54981,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"30061:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54973,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"29989:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29999:13:91","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"29989:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29989:83:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54983,"nodeType":"ExpressionStatement","src":"29989:83:91"}]}},"id":54986,"nodeType":"IfStatement","src":"29802:281:91","trueBody":{"id":54968,"nodeType":"Block","src":"29833:106:91","statements":[{"expression":{"arguments":[{"id":54961,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"29881:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54964,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54900,"src":"29913:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54962,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29891:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29908:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29891:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29891:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54956,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"29847:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29857:4:91","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"29847:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54959,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54902,"src":"29869:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29847:33:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29847:81:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54967,"nodeType":"ExpressionStatement","src":"29847:81:91"}]}},{"assignments":[null,null,54988,null,54990],"declarations":[null,null,{"constant":false,"id":54988,"mutability":"mutable","name":"nonce","nameLocation":"30106:5:91","nodeType":"VariableDeclaration","scope":55022,"src":"30098:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54987,"name":"uint256","nodeType":"ElementaryTypeName","src":"30098:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54990,"mutability":"mutable","name":"circSupply","nameLocation":"30123:10:91","nodeType":"VariableDeclaration","scope":55022,"src":"30115:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54989,"name":"uint256","nodeType":"ElementaryTypeName","src":"30115:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54997,"initialValue":{"arguments":[{"arguments":[{"id":54994,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"30155:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30147:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54992,"name":"address","nodeType":"ElementaryTypeName","src":"30147:7:91","typeDescriptions":{}}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30147:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54991,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"30137:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30137:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30093:73:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55001,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54910,"src":"30221:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54999,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"30185:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30194:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"30185:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30185:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55003,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54923,"src":"30234:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30185:74:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":55005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30261:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54998,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30177:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30177:105:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55007,"nodeType":"ExpressionStatement","src":"30177:105:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55009,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54988,"src":"30301:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55010,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54932,"src":"30310:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30301:22:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30325:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55008,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30293:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30293:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55014,"nodeType":"ExpressionStatement","src":"30293:51:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55016,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54990,"src":"30362:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55017,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54938,"src":"30376:18:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30362:32:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30396:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55015,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30354:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30354:66:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55021,"nodeType":"ExpressionStatement","src":"30354:66:91"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29256:4:91","parameters":{"id":54906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54900,"mutability":"mutable","name":"funderAddress","nameLocation":"29269:13:91","nodeType":"VariableDeclaration","scope":55023,"src":"29261:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54899,"name":"address","nodeType":"ElementaryTypeName","src":"29261:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54902,"mutability":"mutable","name":"fundAmount","nameLocation":"29292:10:91","nodeType":"VariableDeclaration","scope":55023,"src":"29284:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54901,"name":"uint256","nodeType":"ElementaryTypeName","src":"29284:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54905,"mutability":"mutable","name":"mode","nameLocation":"29315:4:91","nodeType":"VariableDeclaration","scope":55023,"src":"29304:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":54904,"nodeType":"UserDefinedTypeName","pathNode":{"id":54903,"name":"SupplyKind","nameLocations":["29304:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"29304:10:91"},"referencedDeclaration":50182,"src":"29304:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"29260:60:91"},"returnParameters":{"id":54907,"nodeType":"ParameterList","parameters":[],"src":"29328:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55054,"nodeType":"FunctionDefinition","src":"30433:243:91","nodes":[],"body":{"id":55053,"nodeType":"Block","src":"30501:175:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55033,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55025,"src":"30520:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55030,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30511:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30514:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"30511:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30511:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55035,"nodeType":"ExpressionStatement","src":"30511:26:91"},{"expression":{"arguments":[{"id":55039,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55025,"src":"30555:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":55040,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"30573:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30601:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30573:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":55036,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30547:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30550:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"30547:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30547:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55044,"nodeType":"ExpressionStatement","src":"30547:56:91"},{"expression":{"arguments":[{"id":55050,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55027,"src":"30662:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":55045,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52959,"src":"30613:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":55047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30623:4:91","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"30613:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55048,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52633,"src":"30635:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"30613:48:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":55051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30613:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55052,"nodeType":"ExpressionStatement","src":"30613:56:91"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"30442:4:91","parameters":{"id":55028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55025,"mutability":"mutable","name":"validatorAddress","nameLocation":"30455:16:91","nodeType":"VariableDeclaration","scope":55054,"src":"30447:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55024,"name":"address","nodeType":"ElementaryTypeName","src":"30447:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55027,"mutability":"mutable","name":"pubkey","nameLocation":"30486:6:91","nodeType":"VariableDeclaration","scope":55054,"src":"30473:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55026,"name":"bytes","nodeType":"ElementaryTypeName","src":"30473:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30446:47:91"},"returnParameters":{"id":55029,"nodeType":"ParameterList","parameters":[],"src":"30501:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55101,"nodeType":"FunctionDefinition","src":"30682:298:91","nodes":[],"body":{"id":55100,"nodeType":"Block","src":"30750:230:91","nodes":[],"statements":[{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"validators","nameLocation":"30777:10:91","nodeType":"VariableDeclaration","scope":55100,"src":"30760:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55063,"name":"address","nodeType":"ElementaryTypeName","src":"30760:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55064,"nodeType":"ArrayTypeName","src":"30760:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55071,"initialValue":{"arguments":[{"hexValue":"31","id":55069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30804:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":55068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30790:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55066,"name":"address","nodeType":"ElementaryTypeName","src":"30794:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55067,"nodeType":"ArrayTypeName","src":"30794:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30790:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30760:46:91"},{"expression":{"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55072,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"30816:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55074,"indexExpression":{"hexValue":"30","id":55073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30827:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30816:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55075,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55056,"src":"30832:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30816:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55077,"nodeType":"ExpressionStatement","src":"30816:25:91"},{"assignments":[55082],"declarations":[{"constant":false,"id":55082,"mutability":"mutable","name":"privKeys","nameLocation":"30869:8:91","nodeType":"VariableDeclaration","scope":55100,"src":"30852:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55080,"name":"uint256","nodeType":"ElementaryTypeName","src":"30852:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55081,"nodeType":"ArrayTypeName","src":"30852:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55088,"initialValue":{"arguments":[{"hexValue":"31","id":55086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30894:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":55085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30880:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55083,"name":"uint256","nodeType":"ElementaryTypeName","src":"30884:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55084,"nodeType":"ArrayTypeName","src":"30884:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30880:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30852:44:91"},{"expression":{"id":55093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55089,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55082,"src":"30906:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55091,"indexExpression":{"hexValue":"30","id":55090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30915:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30906:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55092,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55058,"src":"30920:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30906:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55094,"nodeType":"ExpressionStatement","src":"30906:21:91"},{"expression":{"arguments":[{"id":55096,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"30952:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55097,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55082,"src":"30964:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55095,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"30938:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30938:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55099,"nodeType":"ExpressionStatement","src":"30938:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30691:13:91","parameters":{"id":55059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55056,"mutability":"mutable","name":"validator","nameLocation":"30713:9:91","nodeType":"VariableDeclaration","scope":55101,"src":"30705:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55055,"name":"address","nodeType":"ElementaryTypeName","src":"30705:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55058,"mutability":"mutable","name":"privKey","nameLocation":"30732:7:91","nodeType":"VariableDeclaration","scope":55101,"src":"30724:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55057,"name":"uint256","nodeType":"ElementaryTypeName","src":"30724:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30704:36:91"},"returnParameters":{"id":55060,"nodeType":"ParameterList","parameters":[],"src":"30750:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55164,"nodeType":"FunctionDefinition","src":"30986:408:91","nodes":[],"body":{"id":55163,"nodeType":"Block","src":"31094:300:91","nodes":[],"statements":[{"assignments":[55116],"declarations":[{"constant":false,"id":55116,"mutability":"mutable","name":"validators","nameLocation":"31121:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"31104:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55114,"name":"address","nodeType":"ElementaryTypeName","src":"31104:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55115,"nodeType":"ArrayTypeName","src":"31104:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55122,"initialValue":{"arguments":[{"hexValue":"32","id":55120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31148:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":55119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31134:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55117,"name":"address","nodeType":"ElementaryTypeName","src":"31138:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55118,"nodeType":"ArrayTypeName","src":"31138:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31134:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31104:46:91"},{"expression":{"id":55127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55123,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31160:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55125,"indexExpression":{"hexValue":"30","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31171:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31160:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55126,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55103,"src":"31176:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31160:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55128,"nodeType":"ExpressionStatement","src":"31160:26:91"},{"expression":{"id":55133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55129,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31196:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55131,"indexExpression":{"hexValue":"31","id":55130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31207:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31196:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55132,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55107,"src":"31212:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31196:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55134,"nodeType":"ExpressionStatement","src":"31196:26:91"},{"assignments":[55139],"declarations":[{"constant":false,"id":55139,"mutability":"mutable","name":"privKeys","nameLocation":"31250:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"31233:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55137,"name":"uint256","nodeType":"ElementaryTypeName","src":"31233:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55138,"nodeType":"ArrayTypeName","src":"31233:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55145,"initialValue":{"arguments":[{"hexValue":"32","id":55143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31275:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":55142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31261:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"31265:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55141,"nodeType":"ArrayTypeName","src":"31265:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31261:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31233:44:91"},{"expression":{"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55146,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31287:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55148,"indexExpression":{"hexValue":"30","id":55147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31296:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31287:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55149,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55105,"src":"31301:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31287:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55151,"nodeType":"ExpressionStatement","src":"31287:22:91"},{"expression":{"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55152,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31319:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55154,"indexExpression":{"hexValue":"31","id":55153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31328:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31319:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55155,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55109,"src":"31333:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31319:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55157,"nodeType":"ExpressionStatement","src":"31319:22:91"},{"expression":{"arguments":[{"id":55159,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55116,"src":"31366:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55160,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55139,"src":"31378:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55158,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"31352:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31352:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55162,"nodeType":"ExpressionStatement","src":"31352:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30995:13:91","parameters":{"id":55110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55103,"mutability":"mutable","name":"validator1","nameLocation":"31017:10:91","nodeType":"VariableDeclaration","scope":55164,"src":"31009:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55102,"name":"address","nodeType":"ElementaryTypeName","src":"31009:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55105,"mutability":"mutable","name":"privKey1","nameLocation":"31037:8:91","nodeType":"VariableDeclaration","scope":55164,"src":"31029:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55104,"name":"uint256","nodeType":"ElementaryTypeName","src":"31029:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55107,"mutability":"mutable","name":"validator2","nameLocation":"31055:10:91","nodeType":"VariableDeclaration","scope":55164,"src":"31047:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55106,"name":"address","nodeType":"ElementaryTypeName","src":"31047:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55109,"mutability":"mutable","name":"privKey2","nameLocation":"31075:8:91","nodeType":"VariableDeclaration","scope":55164,"src":"31067:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55108,"name":"uint256","nodeType":"ElementaryTypeName","src":"31067:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31008:76:91"},"returnParameters":{"id":55111,"nodeType":"ParameterList","parameters":[],"src":"31094:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55243,"nodeType":"FunctionDefinition","src":"31400:568:91","nodes":[],"body":{"id":55242,"nodeType":"Block","src":"31600:368:91","nodes":[],"statements":[{"assignments":[55183],"declarations":[{"constant":false,"id":55183,"mutability":"mutable","name":"validators","nameLocation":"31627:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31610:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55181,"name":"address","nodeType":"ElementaryTypeName","src":"31610:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55182,"nodeType":"ArrayTypeName","src":"31610:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55189,"initialValue":{"arguments":[{"hexValue":"33","id":55187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31654:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":55186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31640:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55184,"name":"address","nodeType":"ElementaryTypeName","src":"31644:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55185,"nodeType":"ArrayTypeName","src":"31644:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31640:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31610:46:91"},{"expression":{"id":55194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55190,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31666:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55192,"indexExpression":{"hexValue":"30","id":55191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31677:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31666:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55193,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55166,"src":"31682:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31666:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55195,"nodeType":"ExpressionStatement","src":"31666:26:91"},{"expression":{"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55196,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31702:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55198,"indexExpression":{"hexValue":"31","id":55197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31713:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31702:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55199,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55170,"src":"31718:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31702:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55201,"nodeType":"ExpressionStatement","src":"31702:26:91"},{"expression":{"id":55206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55202,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31738:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55204,"indexExpression":{"hexValue":"32","id":55203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31749:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31738:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55205,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55174,"src":"31754:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31738:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55207,"nodeType":"ExpressionStatement","src":"31738:26:91"},{"assignments":[55212],"declarations":[{"constant":false,"id":55212,"mutability":"mutable","name":"privKeys","nameLocation":"31792:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31775:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55210,"name":"uint256","nodeType":"ElementaryTypeName","src":"31775:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55211,"nodeType":"ArrayTypeName","src":"31775:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55218,"initialValue":{"arguments":[{"hexValue":"33","id":55216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31817:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":55215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31803:13:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55213,"name":"uint256","nodeType":"ElementaryTypeName","src":"31807:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55214,"nodeType":"ArrayTypeName","src":"31807:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31803:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31775:44:91"},{"expression":{"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55219,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31829:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55221,"indexExpression":{"hexValue":"30","id":55220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31838:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31829:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55222,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"31843:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31829:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55224,"nodeType":"ExpressionStatement","src":"31829:22:91"},{"expression":{"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55225,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31861:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55227,"indexExpression":{"hexValue":"31","id":55226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31870:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31861:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55228,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55172,"src":"31875:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31861:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55230,"nodeType":"ExpressionStatement","src":"31861:22:91"},{"expression":{"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55231,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31893:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55233,"indexExpression":{"hexValue":"32","id":55232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31902:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31893:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55234,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55176,"src":"31907:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31893:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55236,"nodeType":"ExpressionStatement","src":"31893:22:91"},{"expression":{"arguments":[{"id":55238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55183,"src":"31940:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55239,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55212,"src":"31952:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55237,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55101,55164,55243,55394],"referencedDeclaration":55394,"src":"31926:13:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":55240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31926:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55241,"nodeType":"ExpressionStatement","src":"31926:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31409:13:91","parameters":{"id":55177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55166,"mutability":"mutable","name":"validator1","nameLocation":"31440:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31432:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55165,"name":"address","nodeType":"ElementaryTypeName","src":"31432:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55168,"mutability":"mutable","name":"privKey1","nameLocation":"31468:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31460:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55167,"name":"uint256","nodeType":"ElementaryTypeName","src":"31460:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55170,"mutability":"mutable","name":"validator2","nameLocation":"31494:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31486:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55169,"name":"address","nodeType":"ElementaryTypeName","src":"31486:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55172,"mutability":"mutable","name":"privKey2","nameLocation":"31522:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31514:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55171,"name":"uint256","nodeType":"ElementaryTypeName","src":"31514:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55174,"mutability":"mutable","name":"validator3","nameLocation":"31548:10:91","nodeType":"VariableDeclaration","scope":55243,"src":"31540:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55173,"name":"address","nodeType":"ElementaryTypeName","src":"31540:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55176,"mutability":"mutable","name":"privKey3","nameLocation":"31576:8:91","nodeType":"VariableDeclaration","scope":55243,"src":"31568:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55175,"name":"uint256","nodeType":"ElementaryTypeName","src":"31568:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31422:168:91"},"returnParameters":{"id":55178,"nodeType":"ParameterList","parameters":[],"src":"31600:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55394,"nodeType":"FunctionDefinition","src":"31974:1107:91","nodes":[],"body":{"id":55393,"nodeType":"Block","src":"32062:1019:91","nodes":[],"statements":[{"assignments":[55253],"declarations":[{"constant":false,"id":55253,"mutability":"mutable","name":"n","nameLocation":"32080:1:91","nodeType":"VariableDeclaration","scope":55393,"src":"32072:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55252,"name":"uint256","nodeType":"ElementaryTypeName","src":"32072:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55256,"initialValue":{"expression":{"id":55254,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"32084:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32095:6:91","memberName":"length","nodeType":"MemberAccess","src":"32084:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32072:29:91"},{"assignments":[55261],"declarations":[{"constant":false,"id":55261,"mutability":"mutable","name":"signatures","nameLocation":"32127:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"32112:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55259,"name":"bytes","nodeType":"ElementaryTypeName","src":"32112:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55260,"nodeType":"ArrayTypeName","src":"32112:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":55267,"initialValue":{"arguments":[{"id":55265,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32152:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"32140:11:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":55262,"name":"bytes","nodeType":"ElementaryTypeName","src":"32144:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55263,"nodeType":"ArrayTypeName","src":"32144:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":55266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32140:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"32112:42:91"},{"assignments":[55269,null],"declarations":[{"constant":false,"id":55269,"mutability":"mutable","name":"nextConfigNum","nameLocation":"32173:13:91","nodeType":"VariableDeclaration","scope":55393,"src":"32166:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55268,"name":"uint64","nodeType":"ElementaryTypeName","src":"32166:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":55273,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55270,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32192:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32201:23:91","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50697,"src":"32192:32:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":55272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32192:34:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"32165:61:91"},{"assignments":[55275],"declarations":[{"constant":false,"id":55275,"mutability":"mutable","name":"h","nameLocation":"32245:1:91","nodeType":"VariableDeclaration","scope":55393,"src":"32237:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55274,"name":"uint256","nodeType":"ElementaryTypeName","src":"32237:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55283,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55276,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32249:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32258:28:91","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50825,"src":"32249:37:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32249:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55279,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32291:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32300:19:91","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50805,"src":"32291:28:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32291:30:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32249:72:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32237:84:91"},{"assignments":[55286],"declarations":[{"constant":false,"id":55286,"mutability":"mutable","name":"checkpoint","nameLocation":"32358:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"32332:36:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":55285,"nodeType":"UserDefinedTypeName","pathNode":{"id":55284,"name":"BottomUpCheckpoint","nameLocations":["32332:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"32332:18:91"},"referencedDeclaration":49885,"src":"32332:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55308,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":55294,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"32458:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32450:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55292,"name":"address","nodeType":"ElementaryTypeName","src":"32450:7:91","typeDescriptions":{}}},"id":55295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32450:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55288,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52965,"src":"32414:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32423:9:91","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50627,"src":"32414:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32414:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32435:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"32414:35:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32414:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55297,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"32496:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55301,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"32543:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32532:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32536:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32532:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32532:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55298,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32522:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32522:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55304,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55269,"src":"32585:13:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32601:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32585:17:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55287,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"32371:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32404:8:91","32483:11:91","32511:9:91","32560:23:91"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"32371:242:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"32332:281:91"},{"expression":{"arguments":[{"arguments":[{"id":55314,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52956,"src":"32640:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32632:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"32632:7:91","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32632:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32652:9:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55309,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32624:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32627:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"32624:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32624:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55318,"nodeType":"ExpressionStatement","src":"32624:38:91"},{"assignments":[55320],"declarations":[{"constant":false,"id":55320,"mutability":"mutable","name":"hash","nameLocation":"32681:4:91","nodeType":"VariableDeclaration","scope":55393,"src":"32673:12:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32673:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55327,"initialValue":{"arguments":[{"arguments":[{"id":55324,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"32709:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55322,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32698:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32702:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32698:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32698:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55321,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32688:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32688:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32673:48:91"},{"body":{"id":55363,"nodeType":"Block","src":"32764:140:91","statements":[{"assignments":[55339,55341,55343],"declarations":[{"constant":false,"id":55339,"mutability":"mutable","name":"v","nameLocation":"32785:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32779:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55338,"name":"uint8","nodeType":"ElementaryTypeName","src":"32779:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55341,"mutability":"mutable","name":"r","nameLocation":"32796:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32788:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32788:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55343,"mutability":"mutable","name":"s","nameLocation":"32807:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32799:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32799:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55351,"initialValue":{"arguments":[{"baseExpression":{"id":55346,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"32820:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55348,"indexExpression":{"id":55347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32829:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32820:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55349,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55320,"src":"32833:4:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55344,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32812:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32815:4:91","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"32812:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32812:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"32778:60:91"},{"expression":{"id":55361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55352,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55261,"src":"32852:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55354,"indexExpression":{"id":55353,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32863:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32852:13:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55357,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55341,"src":"32885:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55358,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55343,"src":"32888:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55359,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55339,"src":"32891:1:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32868:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32872:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"32868:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32868:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"32852:41:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55362,"nodeType":"ExpressionStatement","src":"32852:41:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55332,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32752:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55333,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32756:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32752:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55364,"initializationExpression":{"assignments":[55329],"declarations":[{"constant":false,"id":55329,"mutability":"mutable","name":"i","nameLocation":"32745:1:91","nodeType":"VariableDeclaration","scope":55364,"src":"32737:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55328,"name":"uint256","nodeType":"ElementaryTypeName","src":"32737:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55331,"initialValue":{"hexValue":"30","id":55330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32749:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32737:13:91"},"loopExpression":{"expression":{"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32759:3:91","subExpression":{"id":55335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55329,"src":"32759:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55337,"nodeType":"ExpressionStatement","src":"32759:3:91"},"nodeType":"ForStatement","src":"32732:172:91"},{"body":{"id":55391,"nodeType":"Block","src":"32946:129:91","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55378,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"32969:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55380,"indexExpression":{"id":55379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32980:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32969:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55375,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32960:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32963:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"32960:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32960:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55382,"nodeType":"ExpressionStatement","src":"32960:23:91"},{"expression":{"arguments":[{"id":55386,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"33029:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55387,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"33041:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55388,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55261,"src":"33053:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55383,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52974,"src":"32997:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":55385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33012:16:91","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":50370,"src":"32997:31:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32997:67:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55390,"nodeType":"ExpressionStatement","src":"32997:67:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32934:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55370,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55253,"src":"32938:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32934:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55392,"initializationExpression":{"assignments":[55366],"declarations":[{"constant":false,"id":55366,"mutability":"mutable","name":"i","nameLocation":"32927:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32919:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"32919:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55368,"initialValue":{"hexValue":"30","id":55367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32931:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32919:13:91"},"loopExpression":{"expression":{"id":55373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32941:3:91","subExpression":{"id":55372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55366,"src":"32941:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55374,"nodeType":"ExpressionStatement","src":"32941:3:91"},"nodeType":"ForStatement","src":"32914:161:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31983:13:91","parameters":{"id":55250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55246,"mutability":"mutable","name":"validators","nameLocation":"32014:10:91","nodeType":"VariableDeclaration","scope":55394,"src":"31997:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55244,"name":"address","nodeType":"ElementaryTypeName","src":"31997:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55245,"nodeType":"ArrayTypeName","src":"31997:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55249,"mutability":"mutable","name":"privKeys","nameLocation":"32043:8:91","nodeType":"VariableDeclaration","scope":55394,"src":"32026:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55247,"name":"uint256","nodeType":"ElementaryTypeName","src":"32026:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55248,"nodeType":"ArrayTypeName","src":"32026:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"31996:56:91"},"returnParameters":{"id":55251,"nodeType":"ParameterList","parameters":[],"src":"32062:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55429,"nodeType":"FunctionDefinition","src":"33087:305:91","nodes":[],"body":{"id":55428,"nodeType":"Block","src":"33134:258:91","nodes":[],"statements":[{"assignments":[55400],"declarations":[{"constant":false,"id":55400,"mutability":"mutable","name":"expectedNonce","nameLocation":"33152:13:91","nodeType":"VariableDeclaration","scope":55428,"src":"33144:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55399,"name":"uint256","nodeType":"ElementaryTypeName","src":"33144:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55406,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55401,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"33168:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33177:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33168:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33168:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33195:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33168:28:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"33144:52:91"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55414,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33268:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33272:6:91","memberName":"sender","nodeType":"MemberAccess","src":"33268:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55412,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"33246:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":55413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33263:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"33246:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49951_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33246:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55407,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"33206:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33216:7:91","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"33206:17:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55410,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55396,"src":"33231:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33206:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33206:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55418,"nodeType":"ExpressionStatement","src":"33206:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55420,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"33298:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33307:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33298:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33298:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55423,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55400,"src":"33326:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33298:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33341:43:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55419,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33290:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33290:95:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55427,"nodeType":"ExpressionStatement","src":"33290:95:91"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"33096:7:91","parameters":{"id":55397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55396,"mutability":"mutable","name":"releaseAmount","nameLocation":"33112:13:91","nodeType":"VariableDeclaration","scope":55429,"src":"33104:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55395,"name":"uint256","nodeType":"ElementaryTypeName","src":"33104:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33103:23:91"},"returnParameters":{"id":55398,"nodeType":"ParameterList","parameters":[],"src":"33134:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55484,"nodeType":"FunctionDefinition","src":"33398:536:91","nodes":[],"body":{"id":55483,"nodeType":"Block","src":"33467:467:91","nodes":[],"statements":[{"assignments":[55437],"declarations":[{"constant":false,"id":55437,"mutability":"mutable","name":"balanceBefore","nameLocation":"33485:13:91","nodeType":"VariableDeclaration","scope":55483,"src":"33477:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55436,"name":"uint256","nodeType":"ElementaryTypeName","src":"33477:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55440,"initialValue":{"expression":{"id":55438,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33501:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33515:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33501:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33477:45:91"},{"assignments":[null,55442,null,null,null],"declarations":[null,{"constant":false,"id":55442,"mutability":"mutable","name":"stakedBefore","nameLocation":"33544:12:91","nodeType":"VariableDeclaration","scope":55483,"src":"33536:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55441,"name":"uint256","nodeType":"ElementaryTypeName","src":"33536:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55446,"initialValue":{"arguments":[{"id":55444,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33576:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55443,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"33566:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33566:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"33533:57:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55447,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"33601:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33611:8:91","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"33601:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55450,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33627:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33601:38:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33601:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55453,"nodeType":"ExpressionStatement","src":"33601:40:91"},{"assignments":[55455],"declarations":[{"constant":false,"id":55455,"mutability":"mutable","name":"balanceAfter","nameLocation":"33660:12:91","nodeType":"VariableDeclaration","scope":55483,"src":"33652:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55454,"name":"uint256","nodeType":"ElementaryTypeName","src":"33652:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55458,"initialValue":{"expression":{"id":55456,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33675:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33689:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33675:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33652:44:91"},{"assignments":[null,55460,null,null,null],"declarations":[null,{"constant":false,"id":55460,"mutability":"mutable","name":"stakedAfter","nameLocation":"33717:11:91","nodeType":"VariableDeclaration","scope":55483,"src":"33709:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55459,"name":"uint256","nodeType":"ElementaryTypeName","src":"33709:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55464,"initialValue":{"arguments":[{"id":55462,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"33748:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55461,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"33738:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33738:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"33706:56:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55466,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55455,"src":"33781:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55467,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55437,"src":"33797:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55468,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33813:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:27:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33781:43:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33826:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33773:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33773:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55473,"nodeType":"ExpressionStatement","src":"33773:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55475,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55460,"src":"33865:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55476,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55442,"src":"33880:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55477,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55431,"src":"33895:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33880:26:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33865:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33908:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55474,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33857:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33857:70:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55482,"nodeType":"ExpressionStatement","src":"33857:70:91"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"33407:8:91","parameters":{"id":55434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55431,"mutability":"mutable","name":"stakeAmount","nameLocation":"33424:11:91","nodeType":"VariableDeclaration","scope":55484,"src":"33416:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55430,"name":"uint256","nodeType":"ElementaryTypeName","src":"33416:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55433,"mutability":"mutable","name":"subnetAddress","nameLocation":"33445:13:91","nodeType":"VariableDeclaration","scope":55484,"src":"33437:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55432,"name":"address","nodeType":"ElementaryTypeName","src":"33437:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33415:44:91"},"returnParameters":{"id":55435,"nodeType":"ParameterList","parameters":[],"src":"33467:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55569,"nodeType":"FunctionDefinition","src":"33940:813:91","nodes":[],"body":{"id":55568,"nodeType":"Block","src":"34035:718:91","nodes":[],"statements":[{"assignments":[55496],"declarations":[{"constant":false,"id":55496,"mutability":"mutable","name":"manager","nameLocation":"34065:7:91","nodeType":"VariableDeclaration","scope":55568,"src":"34045:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55495,"nodeType":"UserDefinedTypeName","pathNode":{"id":55494,"name":"GatewayManagerFacet","nameLocations":["34045:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"34045:19:91"},"referencedDeclaration":38870,"src":"34045:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55503,"initialValue":{"arguments":[{"arguments":[{"id":55500,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55491,"src":"34103:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34095:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55498,"name":"address","nodeType":"ElementaryTypeName","src":"34095:7:91","typeDescriptions":{}}},"id":55501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34095:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55497,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"34075:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34075:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"34045:62:91"},{"expression":{"arguments":[{"hexValue":"30","id":55509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34154:1:91","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"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55504,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55496,"src":"34118:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34126:8:91","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"34118:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55507,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"34142:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"34118:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34118:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55511,"nodeType":"ExpressionStatement","src":"34118:38:91"},{"assignments":[55514,55516,55518,null,55520],"declarations":[{"constant":false,"id":55514,"mutability":"mutable","name":"id","nameLocation":"34184:2:91","nodeType":"VariableDeclaration","scope":55568,"src":"34168:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55513,"nodeType":"UserDefinedTypeName","pathNode":{"id":55512,"name":"SubnetID","nameLocations":["34168:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34168:8:91"},"referencedDeclaration":50030,"src":"34168:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55516,"mutability":"mutable","name":"stake","nameLocation":"34196:5:91","nodeType":"VariableDeclaration","scope":55568,"src":"34188:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55515,"name":"uint256","nodeType":"ElementaryTypeName","src":"34188:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55518,"mutability":"mutable","name":"topDownNonce","nameLocation":"34211:12:91","nodeType":"VariableDeclaration","scope":55568,"src":"34203:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55517,"name":"uint256","nodeType":"ElementaryTypeName","src":"34203:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55520,"mutability":"mutable","name":"circSupply","nameLocation":"34235:10:91","nodeType":"VariableDeclaration","scope":55568,"src":"34227:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55519,"name":"uint256","nodeType":"ElementaryTypeName","src":"34227:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55525,"initialValue":{"arguments":[{"id":55522,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55488,"src":"34274:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55523,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55491,"src":"34301:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55521,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55653,"src":"34249:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34249:64:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"34167:146:91"},{"assignments":[55528],"declarations":[{"constant":false,"id":55528,"mutability":"mutable","name":"parentNetwork","nameLocation":"34340:13:91","nodeType":"VariableDeclaration","scope":55568,"src":"34324:29:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55527,"nodeType":"UserDefinedTypeName","pathNode":{"id":55526,"name":"SubnetID","nameLocations":["34324:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34324:8:91"},"referencedDeclaration":50030,"src":"34324:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55532,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55529,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"34356:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34365:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"34356:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34356:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"34324:57:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55534,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55514,"src":"34413:2:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34416:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34413:9:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34413:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55539,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55488,"src":"34457:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55537,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55528,"src":"34428:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34442:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"34428:28:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34428:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34472:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34428:50:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34428:52:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"34413:67:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34494:69:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55533,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34392:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34392:181:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55546,"nodeType":"ExpressionStatement","src":"34392:181:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55548,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55516,"src":"34591:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55549,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"34600:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34591:19:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34612:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34583:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34583:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55553,"nodeType":"ExpressionStatement","src":"34583:48:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55555,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55518,"src":"34649:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34665:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34649:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34668:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55554,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34641:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34641:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55560,"nodeType":"ExpressionStatement","src":"34641:46:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55562,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55520,"src":"34705:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34719:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34705:15:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34722:23:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55561,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34697:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34697:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55567,"nodeType":"ExpressionStatement","src":"34697:49:91"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"33949:16:91","parameters":{"id":55492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55486,"mutability":"mutable","name":"collateral","nameLocation":"33974:10:91","nodeType":"VariableDeclaration","scope":55569,"src":"33966:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55485,"name":"uint256","nodeType":"ElementaryTypeName","src":"33966:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55488,"mutability":"mutable","name":"subnetAddress","nameLocation":"33994:13:91","nodeType":"VariableDeclaration","scope":55569,"src":"33986:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55487,"name":"address","nodeType":"ElementaryTypeName","src":"33986:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55491,"mutability":"mutable","name":"gw","nameLocation":"34024:2:91","nodeType":"VariableDeclaration","scope":55569,"src":"34009:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55490,"nodeType":"UserDefinedTypeName","pathNode":{"id":55489,"name":"GatewayDiamond","nameLocations":["34009:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34009:14:91"},"referencedDeclaration":36170,"src":"34009:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"33965:62:91"},"returnParameters":{"id":55493,"nodeType":"ParameterList","parameters":[],"src":"34035:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55583,"nodeType":"FunctionDefinition","src":"34759:150:91","nodes":[],"body":{"id":55582,"nodeType":"Block","src":"34833:76:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55577,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55571,"src":"34860:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55578,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55573,"src":"34872:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55579,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"34887:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55576,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55569,"src":"34843:16:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34843:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55581,"nodeType":"ExpressionStatement","src":"34843:59:91"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"34768:14:91","parameters":{"id":55574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55571,"mutability":"mutable","name":"collateral","nameLocation":"34791:10:91","nodeType":"VariableDeclaration","scope":55583,"src":"34783:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55570,"name":"uint256","nodeType":"ElementaryTypeName","src":"34783:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55573,"mutability":"mutable","name":"subnetAddress","nameLocation":"34811:13:91","nodeType":"VariableDeclaration","scope":55583,"src":"34803:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55572,"name":"address","nodeType":"ElementaryTypeName","src":"34803:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34782:43:91"},"returnParameters":{"id":55575,"nodeType":"ParameterList","parameters":[],"src":"34833:0:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55653,"nodeType":"FunctionDefinition","src":"34915:541:91","nodes":[],"body":{"id":55652,"nodeType":"Block","src":"35069:387:91","nodes":[],"statements":[{"expression":{"id":55609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55602,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52797,"src":"35079:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55606,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55588,"src":"35119:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35111:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55604,"name":"address","nodeType":"ElementaryTypeName","src":"35111:7:91","typeDescriptions":{}}},"id":55607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35111:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55603,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"35091:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35091:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"35079:44:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55610,"nodeType":"ExpressionStatement","src":"35079:44:91"},{"expression":{"id":55618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55611,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35133:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55615,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55588,"src":"35171:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35163:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55613,"name":"address","nodeType":"ElementaryTypeName","src":"35163:7:91","typeDescriptions":{}}},"id":55616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35163:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55612,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"35144:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35144:31:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"35133:42:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55619,"nodeType":"ExpressionStatement","src":"35133:42:91"},{"assignments":[55622],"declarations":[{"constant":false,"id":55622,"mutability":"mutable","name":"subnetId","nameLocation":"35202:8:91","nodeType":"VariableDeclaration","scope":55652,"src":"35186:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55621,"nodeType":"UserDefinedTypeName","pathNode":{"id":55620,"name":"SubnetID","nameLocations":["35186:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35186:8:91"},"referencedDeclaration":50030,"src":"35186:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55629,"initialValue":{"arguments":[{"id":55627,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55585,"src":"35254:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35213:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35222:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"35213:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35213:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35239:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"35213:40:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35213:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"35186:82:91"},{"assignments":[55632],"declarations":[{"constant":false,"id":55632,"mutability":"mutable","name":"subnet","nameLocation":"35293:6:91","nodeType":"VariableDeclaration","scope":55652,"src":"35279:20:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55631,"nodeType":"UserDefinedTypeName","pathNode":{"id":55630,"name":"Subnet","nameLocations":["35279:6:91"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"35279:6:91"},"referencedDeclaration":50044,"src":"35279:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55639,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55635,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"35319:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35328:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"35319:15:91","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35319:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55633,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52800,"src":"35302:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35311:7:91","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"35302:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50044_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35302:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"35279:58:91"},{"expression":{"components":[{"expression":{"id":55640,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35356:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35363:2:91","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"35356:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55642,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35367:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35374:5:91","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"35367:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55644,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35381:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35388:12:91","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"35381:19:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55646,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35402:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35409:20:91","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"35402:27:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55648,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55632,"src":"35431:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35438:10:91","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"35431:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55650,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35355:94:91","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55601,"id":55651,"nodeType":"Return","src":"35348:101:91"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"34924:11:91","parameters":{"id":55589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55585,"mutability":"mutable","name":"subnetAddress","nameLocation":"34953:13:91","nodeType":"VariableDeclaration","scope":55653,"src":"34945:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55584,"name":"address","nodeType":"ElementaryTypeName","src":"34945:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55588,"mutability":"mutable","name":"gw","nameLocation":"34991:2:91","nodeType":"VariableDeclaration","scope":55653,"src":"34976:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55587,"nodeType":"UserDefinedTypeName","pathNode":{"id":55586,"name":"GatewayDiamond","nameLocations":["34976:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34976:14:91"},"referencedDeclaration":36170,"src":"34976:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"34935:64:91"},"returnParameters":{"id":55601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35016:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55591,"nodeType":"UserDefinedTypeName","pathNode":{"id":55590,"name":"SubnetID","nameLocations":["35016:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35016:8:91"},"referencedDeclaration":50030,"src":"35016:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35033:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55593,"name":"uint256","nodeType":"ElementaryTypeName","src":"35033:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35042:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55595,"name":"uint256","nodeType":"ElementaryTypeName","src":"35042:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35051:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55597,"name":"uint256","nodeType":"ElementaryTypeName","src":"35051:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55653,"src":"35060:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55599,"name":"uint256","nodeType":"ElementaryTypeName","src":"35060:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35015:53:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55675,"nodeType":"FunctionDefinition","src":"35462:177:91","nodes":[],"body":{"id":55674,"nodeType":"Block","src":"35573:66:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55670,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55655,"src":"35602:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55671,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52794,"src":"35617:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55669,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55653,"src":"35590:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35590:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50030_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55668,"id":55673,"nodeType":"Return","src":"35583:49:91"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"35471:9:91","parameters":{"id":55656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55655,"mutability":"mutable","name":"subnetAddress","nameLocation":"35489:13:91","nodeType":"VariableDeclaration","scope":55675,"src":"35481:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55654,"name":"address","nodeType":"ElementaryTypeName","src":"35481:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35480:23:91"},"returnParameters":{"id":55668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35520:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55658,"nodeType":"UserDefinedTypeName","pathNode":{"id":55657,"name":"SubnetID","nameLocations":["35520:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35520:8:91"},"referencedDeclaration":50030,"src":"35520:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35537:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55660,"name":"uint256","nodeType":"ElementaryTypeName","src":"35537:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35546:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55662,"name":"uint256","nodeType":"ElementaryTypeName","src":"35546:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35555:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55664,"name":"uint256","nodeType":"ElementaryTypeName","src":"35555:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55667,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55675,"src":"35564:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55666,"name":"uint256","nodeType":"ElementaryTypeName","src":"35564:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35519:53:91"},"scope":55676,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53090,"name":"Test","nameLocations":["9402:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"9402:4:91"},"id":53091,"nodeType":"InheritanceSpecifier","src":"9402:4:91"},{"baseName":{"id":53092,"name":"TestParams","nameLocations":["9408:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52696,"src":"9408:10:91"},"id":53093,"nodeType":"InheritanceSpecifier","src":"9408:10:91"},{"baseName":{"id":53094,"name":"TestRegistry","nameLocations":["9420:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":52760,"src":"9420:12:91"},"id":53095,"nodeType":"InheritanceSpecifier","src":"9420:12:91"},{"baseName":{"id":53096,"name":"TestSubnetActor","nameLocations":["9434:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":53089,"src":"9434:15:91"},"id":53097,"nodeType":"InheritanceSpecifier","src":"9434:15:91"},{"baseName":{"id":53098,"name":"TestGatewayActor","nameLocations":["9451:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":52925,"src":"9451:16:91"},"id":53099,"nodeType":"InheritanceSpecifier","src":"9451:16:91"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58342],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55676,52925,53089,52760,52696,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"9379:19:91","scope":55677,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file diff --git a/.out/LibDiamond.sol/LibDiamond.json b/.out/LibDiamond.sol/LibDiamond.json index e57269fbc..50539a22f 100644 --- a/.out/LibDiamond.sol/LibDiamond.json +++ b/.out/LibDiamond.sol/LibDiamond.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DIAMOND_STORAGE_POSITION","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsGivenToAdd","inputs":[]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotContractOwner","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_contractOwner","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608080604052346018576094908161001e823930815050f35b600080fdfe6080806040526004361015601257600080fd5b60003560e01c63b2bebf5514602657600080fd5b6000366003190112605957807f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260209252f35b600080fdfea2646970667358221220d508694a722880a4c6eb34c059182551ad1bb0b0b65354c5f1e8ee93f631303264736f6c63430008130033","sourceMap":"184:9446:62:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b60003560e01c63b2bebf5514602657600080fd5b6000366003190112605957807f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260209252f35b600080fdfea2646970667358221220d508694a722880a4c6eb34c059182551ad1bb0b0b65354c5f1e8ee93f631303264736f6c63430008130033","sourceMap":"184:9446:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;184:9446:62;;;;;260:43;184:9446;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DIAMOND_STORAGE_POSITION()":"b2bebf55"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoSelectorsGivenToAdd\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contractOwner\",\"type\":\"address\"}],\"name\":\"NotContractOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DIAMOND_STORAGE_POSITION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibDiamond.sol\":\"LibDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[],"type":"error","name":"NoSelectorsGivenToAdd"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_contractOwner","type":"address"}],"type":"error","name":"NotContractOwner"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DIAMOND_STORAGE_POSITION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibDiamond.sol":"LibDiamond"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibDiamond.sol","id":41683,"exportedSymbols":{"IDiamond":[40170],"IDiamondCut":[40189],"LibDiamond":[41682]},"nodeType":"SourceUnit","src":"46:9585:62","nodes":[{"id":40964,"nodeType":"PragmaDirective","src":"46:23:62","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40966,"nodeType":"ImportDirective","src":"71:58:62","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":41683,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":40965,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"79:11:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40968,"nodeType":"ImportDirective","src":"130:52:62","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":41683,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":40967,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"138:8:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41682,"nodeType":"ContractDefinition","src":"184:9446:62","nodes":[{"id":40973,"nodeType":"VariableDeclaration","src":"209:94:62","nodes":[],"constant":true,"functionSelector":"b2bebf55","mutability":"constant","name":"DIAMOND_STORAGE_POSITION","nameLocation":"233:24:62","scope":41682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6c69626469616d6f6e642e6c69622e6469616d6f6e642e73746f72616765","id":40971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"270:32:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","typeString":"literal_string \"libdiamond.lib.diamond.storage\""},"value":"libdiamond.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","typeString":"literal_string \"libdiamond.lib.diamond.storage\""}],"id":40970,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"260:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"260:43:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":40975,"nodeType":"ErrorDefinition","src":"310:17:62","nodes":[],"errorSelector":"30cd7471","name":"NotOwner","nameLocation":"316:8:62","parameters":{"id":40974,"nodeType":"ParameterList","parameters":[],"src":"324:2:62"}},{"id":40981,"nodeType":"ErrorDefinition","src":"332:69:62","nodes":[],"errorSelector":"919834b9","name":"NoBytecodeAtAddress","nameLocation":"338:19:62","parameters":{"id":40980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40977,"mutability":"mutable","name":"_contractAddress","nameLocation":"366:16:62","nodeType":"VariableDeclaration","scope":40981,"src":"358:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40976,"name":"address","nodeType":"ElementaryTypeName","src":"358:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40979,"mutability":"mutable","name":"_message","nameLocation":"391:8:62","nodeType":"VariableDeclaration","scope":40981,"src":"384:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40978,"name":"string","nodeType":"ElementaryTypeName","src":"384:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"357:43:62"}},{"id":40986,"nodeType":"ErrorDefinition","src":"406:66:62","nodes":[],"errorSelector":"7fe9a41e","name":"IncorrectFacetCutAction","nameLocation":"412:23:62","parameters":{"id":40985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40984,"mutability":"mutable","name":"_action","nameLocation":"463:7:62","nodeType":"VariableDeclaration","scope":40986,"src":"436:34:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":40983,"nodeType":"UserDefinedTypeName","pathNode":{"id":40982,"name":"IDiamondCut.FacetCutAction","nameLocations":["436:11:62","448:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":40150,"src":"436:26:62"},"referencedDeclaration":40150,"src":"436:26:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"}],"src":"435:36:62"}},{"id":40990,"nodeType":"ErrorDefinition","src":"477:63:62","nodes":[],"errorSelector":"e767f91f","name":"NoSelectorsProvidedForFacetForCut","nameLocation":"483:33:62","parameters":{"id":40989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40988,"mutability":"mutable","name":"_facetAddress","nameLocation":"525:13:62","nodeType":"VariableDeclaration","scope":40990,"src":"517:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40987,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"516:23:62"}},{"id":40994,"nodeType":"ErrorDefinition","src":"545:68:62","nodes":[],"errorSelector":"ebbf5d07","name":"CannotAddFunctionToDiamondThatAlreadyExists","nameLocation":"551:43:62","parameters":{"id":40993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40992,"mutability":"mutable","name":"_selector","nameLocation":"602:9:62","nodeType":"VariableDeclaration","scope":40994,"src":"595:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40991,"name":"bytes4","nodeType":"ElementaryTypeName","src":"595:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"594:18:62"}},{"id":40999,"nodeType":"ErrorDefinition","src":"618:59:62","nodes":[],"errorSelector":"0ae3681c","name":"CannotAddSelectorsToZeroAddress","nameLocation":"624:31:62","parameters":{"id":40998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40997,"mutability":"mutable","name":"_selectors","nameLocation":"665:10:62","nodeType":"VariableDeclaration","scope":40999,"src":"656:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40995,"name":"bytes4","nodeType":"ElementaryTypeName","src":"656:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40996,"nodeType":"ArrayTypeName","src":"656:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"655:21:62"}},{"id":41005,"nodeType":"ErrorDefinition","src":"682:94:62","nodes":[],"errorSelector":"192105d7","name":"InitializationFunctionReverted","nameLocation":"688:30:62","parameters":{"id":41004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41001,"mutability":"mutable","name":"_initializationContractAddress","nameLocation":"727:30:62","nodeType":"VariableDeclaration","scope":41005,"src":"719:38:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41000,"name":"address","nodeType":"ElementaryTypeName","src":"719:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41003,"mutability":"mutable","name":"_calldata","nameLocation":"765:9:62","nodeType":"VariableDeclaration","scope":41005,"src":"759:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41002,"name":"bytes","nodeType":"ElementaryTypeName","src":"759:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"718:57:62"}},{"id":41007,"nodeType":"ErrorDefinition","src":"781:30:62","nodes":[],"errorSelector":"eb6ba048","name":"NoSelectorsGivenToAdd","nameLocation":"787:21:62","parameters":{"id":41006,"nodeType":"ParameterList","parameters":[],"src":"808:2:62"}},{"id":41013,"nodeType":"ErrorDefinition","src":"816:62:62","nodes":[],"errorSelector":"ff4127cb","name":"NotContractOwner","nameLocation":"822:16:62","parameters":{"id":41012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41009,"mutability":"mutable","name":"_user","nameLocation":"847:5:62","nodeType":"VariableDeclaration","scope":41013,"src":"839:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41008,"name":"address","nodeType":"ElementaryTypeName","src":"839:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41011,"mutability":"mutable","name":"_contractOwner","nameLocation":"862:14:62","nodeType":"VariableDeclaration","scope":41013,"src":"854:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41010,"name":"address","nodeType":"ElementaryTypeName","src":"854:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"838:39:62"}},{"id":41018,"nodeType":"ErrorDefinition","src":"883:74:62","nodes":[],"errorSelector":"cd98a96f","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","nameLocation":"889:46:62","parameters":{"id":41017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41016,"mutability":"mutable","name":"_selectors","nameLocation":"945:10:62","nodeType":"VariableDeclaration","scope":41018,"src":"936:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41014,"name":"bytes4","nodeType":"ElementaryTypeName","src":"936:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41015,"nodeType":"ArrayTypeName","src":"936:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"935:21:62"}},{"id":41022,"nodeType":"ErrorDefinition","src":"962:55:62","nodes":[],"errorSelector":"520300da","name":"CannotReplaceImmutableFunction","nameLocation":"968:30:62","parameters":{"id":41021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41020,"mutability":"mutable","name":"_selector","nameLocation":"1006:9:62","nodeType":"VariableDeclaration","scope":41022,"src":"999:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41019,"name":"bytes4","nodeType":"ElementaryTypeName","src":"999:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"998:18:62"}},{"id":41026,"nodeType":"ErrorDefinition","src":"1022:81:62","nodes":[],"errorSelector":"358d9d1a","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","nameLocation":"1028:56:62","parameters":{"id":41025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41024,"mutability":"mutable","name":"_selector","nameLocation":"1092:9:62","nodeType":"VariableDeclaration","scope":41026,"src":"1085:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41023,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1085:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1084:18:62"}},{"id":41030,"nodeType":"ErrorDefinition","src":"1108:63:62","nodes":[],"errorSelector":"7479f939","name":"CannotReplaceFunctionThatDoesNotExists","nameLocation":"1114:38:62","parameters":{"id":41029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41028,"mutability":"mutable","name":"_selector","nameLocation":"1160:9:62","nodeType":"VariableDeclaration","scope":41030,"src":"1153:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41027,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1153:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1152:18:62"}},{"id":41034,"nodeType":"ErrorDefinition","src":"1176:65:62","nodes":[],"errorSelector":"d091bc81","name":"RemoveFacetAddressMustBeZeroAddress","nameLocation":"1182:35:62","parameters":{"id":41033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41032,"mutability":"mutable","name":"_facetAddress","nameLocation":"1226:13:62","nodeType":"VariableDeclaration","scope":41034,"src":"1218:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41031,"name":"address","nodeType":"ElementaryTypeName","src":"1218:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1217:23:62"}},{"id":41038,"nodeType":"ErrorDefinition","src":"1246:61:62","nodes":[],"errorSelector":"7a08a22d","name":"CannotRemoveFunctionThatDoesNotExist","nameLocation":"1252:36:62","parameters":{"id":41037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41036,"mutability":"mutable","name":"_selector","nameLocation":"1296:9:62","nodeType":"VariableDeclaration","scope":41038,"src":"1289:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41035,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1289:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1288:18:62"}},{"id":41042,"nodeType":"ErrorDefinition","src":"1312:54:62","nodes":[],"errorSelector":"6fafeb08","name":"CannotRemoveImmutableFunction","nameLocation":"1318:29:62","parameters":{"id":41041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41040,"mutability":"mutable","name":"_selector","nameLocation":"1355:9:62","nodeType":"VariableDeclaration","scope":41042,"src":"1348:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41039,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1348:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1347:18:62"}},{"id":41052,"nodeType":"EventDefinition","src":"1372:85:62","nodes":[],"anonymous":false,"eventSelector":"8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673","name":"DiamondCut","nameLocation":"1378:10:62","parameters":{"id":41051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41046,"indexed":false,"mutability":"mutable","name":"_diamondCut","nameLocation":"1412:11:62","nodeType":"VariableDeclaration","scope":41052,"src":"1389:34:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":41044,"nodeType":"UserDefinedTypeName","pathNode":{"id":41043,"name":"IDiamondCut.FacetCut","nameLocations":["1389:11:62","1401:8:62"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1389:20:62"},"referencedDeclaration":40159,"src":"1389:20:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":41045,"nodeType":"ArrayTypeName","src":"1389:22:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":41048,"indexed":false,"mutability":"mutable","name":"_init","nameLocation":"1433:5:62","nodeType":"VariableDeclaration","scope":41052,"src":"1425:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41047,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41050,"indexed":false,"mutability":"mutable","name":"_calldata","nameLocation":"1446:9:62","nodeType":"VariableDeclaration","scope":41052,"src":"1440:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41049,"name":"bytes","nodeType":"ElementaryTypeName","src":"1440:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1388:68:62"}},{"id":41057,"nodeType":"StructDefinition","src":"1463:109:62","nodes":[],"canonicalName":"LibDiamond.FacetAddressAndSelectorPosition","members":[{"constant":false,"id":41054,"mutability":"mutable","name":"facetAddress","nameLocation":"1520:12:62","nodeType":"VariableDeclaration","scope":41057,"src":"1512:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41053,"name":"address","nodeType":"ElementaryTypeName","src":"1512:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41056,"mutability":"mutable","name":"selectorPosition","nameLocation":"1549:16:62","nodeType":"VariableDeclaration","scope":41057,"src":"1542:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":41055,"name":"uint16","nodeType":"ElementaryTypeName","src":"1542:6:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"FacetAddressAndSelectorPosition","nameLocation":"1470:31:62","scope":41682,"visibility":"public"},{"id":41072,"nodeType":"StructDefinition","src":"1578:353:62","nodes":[],"canonicalName":"LibDiamond.DiamondStorage","members":[{"constant":false,"id":41062,"mutability":"mutable","name":"facetAddressAndSelectorPosition","nameLocation":"1748:31:62","nodeType":"VariableDeclaration","scope":41072,"src":"1697:82:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition)"},"typeName":{"id":41061,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":41058,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1705:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1697:50:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":41060,"nodeType":"UserDefinedTypeName","pathNode":{"id":41059,"name":"FacetAddressAndSelectorPosition","nameLocations":["1715:31:62"],"nodeType":"IdentifierPath","referencedDeclaration":41057,"src":"1715:31:62"},"referencedDeclaration":41057,"src":"1715:31:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"}}},"visibility":"internal"},{"constant":false,"id":41065,"mutability":"mutable","name":"selectors","nameLocation":"1798:9:62","nodeType":"VariableDeclaration","scope":41072,"src":"1789:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41063,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1789:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41064,"nodeType":"ArrayTypeName","src":"1789:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":41069,"mutability":"mutable","name":"supportedInterfaces","nameLocation":"1841:19:62","nodeType":"VariableDeclaration","scope":41072,"src":"1817:43:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"},"typeName":{"id":41068,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":41066,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1825:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1817:23:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":41067,"name":"bool","nodeType":"ElementaryTypeName","src":"1835:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":41071,"mutability":"mutable","name":"contractOwner","nameLocation":"1911:13:62","nodeType":"VariableDeclaration","scope":41072,"src":"1903:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41070,"name":"address","nodeType":"ElementaryTypeName","src":"1903:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"DiamondStorage","nameLocation":"1585:14:62","scope":41682,"visibility":"public"},{"id":41084,"nodeType":"FunctionDefinition","src":"1937:197:62","nodes":[],"body":{"id":41083,"nodeType":"Block","src":"2013:121:62","nodes":[],"statements":[{"assignments":[41079],"declarations":[{"constant":false,"id":41079,"mutability":"mutable","name":"position","nameLocation":"2031:8:62","nodeType":"VariableDeclaration","scope":41083,"src":"2023:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2023:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41081,"initialValue":{"id":41080,"name":"DIAMOND_STORAGE_POSITION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40973,"src":"2042:24:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2023:43:62"},{"AST":{"nodeType":"YulBlock","src":"2085:43:62","statements":[{"nodeType":"YulAssignment","src":"2099:19:62","value":{"name":"position","nodeType":"YulIdentifier","src":"2110:8:62"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2099:7:62"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":41076,"isOffset":false,"isSlot":true,"src":"2099:7:62","suffix":"slot","valueSize":1},{"declaration":41079,"isOffset":false,"isSlot":false,"src":"2110:8:62","valueSize":1}],"id":41082,"nodeType":"InlineAssembly","src":"2076:52:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"diamondStorage","nameLocation":"1946:14:62","parameters":{"id":41073,"nodeType":"ParameterList","parameters":[],"src":"1960:2:62"},"returnParameters":{"id":41077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41076,"mutability":"mutable","name":"ds","nameLocation":"2009:2:62","nodeType":"VariableDeclaration","scope":41084,"src":"1986:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41075,"nodeType":"UserDefinedTypeName","pathNode":{"id":41074,"name":"DiamondStorage","nameLocations":["1986:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"1986:14:62"},"referencedDeclaration":41072,"src":"1986:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"src":"1985:27:62"},"scope":41682,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41102,"nodeType":"FunctionDefinition","src":"2140:153:62","nodes":[],"body":{"id":41101,"nodeType":"Block","src":"2194:99:62","nodes":[],"statements":[{"assignments":[41091],"declarations":[{"constant":false,"id":41091,"mutability":"mutable","name":"ds","nameLocation":"2227:2:62","nodeType":"VariableDeclaration","scope":41101,"src":"2204:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41090,"nodeType":"UserDefinedTypeName","pathNode":{"id":41089,"name":"DiamondStorage","nameLocations":["2204:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"2204:14:62"},"referencedDeclaration":41072,"src":"2204:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41094,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41092,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"2232:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2232:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2204:44:62"},{"expression":{"id":41099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41095,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41091,"src":"2258:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2261:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41071,"src":"2258:16:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41098,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41086,"src":"2277:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2258:28:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41100,"nodeType":"ExpressionStatement","src":"2258:28:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setContractOwner","nameLocation":"2149:16:62","parameters":{"id":41087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41086,"mutability":"mutable","name":"_newOwner","nameLocation":"2174:9:62","nodeType":"VariableDeclaration","scope":41102,"src":"2166:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41085,"name":"address","nodeType":"ElementaryTypeName","src":"2166:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2165:19:62"},"returnParameters":{"id":41088,"nodeType":"ParameterList","parameters":[],"src":"2194:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41114,"nodeType":"FunctionDefinition","src":"2299:136:62","nodes":[],"body":{"id":41113,"nodeType":"Block","src":"2371:64:62","nodes":[],"statements":[{"expression":{"id":41111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41107,"name":"contractOwner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41105,"src":"2381:14:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":41108,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"2398:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2415:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41071,"src":"2398:30:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2381:47:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41112,"nodeType":"ExpressionStatement","src":"2381:47:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contractOwner","nameLocation":"2308:13:62","parameters":{"id":41103,"nodeType":"ParameterList","parameters":[],"src":"2321:2:62"},"returnParameters":{"id":41106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41105,"mutability":"mutable","name":"contractOwner_","nameLocation":"2355:14:62","nodeType":"VariableDeclaration","scope":41114,"src":"2347:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41104,"name":"address","nodeType":"ElementaryTypeName","src":"2347:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2346:24:62"},"scope":41682,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41129,"nodeType":"ModifierDefinition","src":"2441:140:62","nodes":[],"body":{"id":41128,"nodeType":"Block","src":"2462:119:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41116,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2476:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2480:6:62","memberName":"sender","nodeType":"MemberAccess","src":"2476:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":41118,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"2490:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2490:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2507:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41071,"src":"2490:30:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2476:44:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41126,"nodeType":"IfStatement","src":"2472:92:62","trueBody":{"id":41125,"nodeType":"Block","src":"2522:42:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":41122,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40975,"src":"2543:8:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":41123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2543:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41124,"nodeType":"RevertStatement","src":"2536:17:62"}]}},{"id":41127,"nodeType":"PlaceholderStatement","src":"2573:1:62"}]},"name":"onlyOwner","nameLocation":"2450:9:62","parameters":{"id":41115,"nodeType":"ParameterList","parameters":[],"src":"2459:2:62"},"virtual":false,"visibility":"internal"},{"id":41144,"nodeType":"FunctionDefinition","src":"2587:156:62","nodes":[],"body":{"id":41143,"nodeType":"Block","src":"2635:108:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41132,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2649:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2653:6:62","memberName":"sender","nodeType":"MemberAccess","src":"2649:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":41134,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"2663:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2680:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41071,"src":"2663:30:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2649:44:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41142,"nodeType":"IfStatement","src":"2645:92:62","trueBody":{"id":41141,"nodeType":"Block","src":"2695:42:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":41138,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40975,"src":"2716:8:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":41139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2716:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41140,"nodeType":"RevertStatement","src":"2709:17:62"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"enforceIsContractOwner","nameLocation":"2596:22:62","parameters":{"id":41130,"nodeType":"ParameterList","parameters":[],"src":"2618:2:62"},"returnParameters":{"id":41131,"nodeType":"ParameterList","parameters":[],"src":"2635:0:62"},"scope":41682,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41262,"nodeType":"FunctionDefinition","src":"2749:1291:62","nodes":[],"body":{"id":41261,"nodeType":"Block","src":"2857:1183:62","nodes":[],"statements":[{"assignments":[41156],"declarations":[{"constant":false,"id":41156,"mutability":"mutable","name":"length","nameLocation":"2875:6:62","nodeType":"VariableDeclaration","scope":41261,"src":"2867:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41155,"name":"uint256","nodeType":"ElementaryTypeName","src":"2867:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41159,"initialValue":{"expression":{"id":41157,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41148,"src":"2884:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2896:6:62","memberName":"length","nodeType":"MemberAccess","src":"2884:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2867:35:62"},{"body":{"id":41248,"nodeType":"Block","src":"2960:937:62","statements":[{"assignments":[41170],"declarations":[{"constant":false,"id":41170,"mutability":"mutable","name":"functionSelectors","nameLocation":"2990:17:62","nodeType":"VariableDeclaration","scope":41248,"src":"2974:33:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41168,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2974:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41169,"nodeType":"ArrayTypeName","src":"2974:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"id":41175,"initialValue":{"expression":{"baseExpression":{"id":41171,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41148,"src":"3010:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41173,"indexExpression":{"id":41172,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41161,"src":"3022:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3010:23:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":41174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3034:17:62","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40158,"src":"3010:41:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2974:77:62"},{"assignments":[41177],"declarations":[{"constant":false,"id":41177,"mutability":"mutable","name":"facetAddress","nameLocation":"3073:12:62","nodeType":"VariableDeclaration","scope":41248,"src":"3065:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41176,"name":"address","nodeType":"ElementaryTypeName","src":"3065:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":41182,"initialValue":{"expression":{"baseExpression":{"id":41178,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41148,"src":"3088:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41180,"indexExpression":{"id":41179,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41161,"src":"3100:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3088:23:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":41181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3112:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40152,"src":"3088:36:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3065:59:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41183,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41170,"src":"3142:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3160:6:62","memberName":"length","nodeType":"MemberAccess","src":"3142:24:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":41185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3170:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3142:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41192,"nodeType":"IfStatement","src":"3138:122:62","trueBody":{"id":41191,"nodeType":"Block","src":"3173:87:62","statements":[{"errorCall":{"arguments":[{"id":41188,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41177,"src":"3232:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41187,"name":"NoSelectorsProvidedForFacetForCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40990,"src":"3198:33:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":41189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3198:47:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41190,"nodeType":"RevertStatement","src":"3191:54:62"}]}},{"assignments":[41197],"declarations":[{"constant":false,"id":41197,"mutability":"mutable","name":"action","nameLocation":"3300:6:62","nodeType":"VariableDeclaration","scope":41248,"src":"3273:33:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":41196,"nodeType":"UserDefinedTypeName","pathNode":{"id":41195,"name":"IDiamondCut.FacetCutAction","nameLocations":["3273:11:62","3285:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":40150,"src":"3273:26:62"},"referencedDeclaration":40150,"src":"3273:26:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"}],"id":41202,"initialValue":{"expression":{"baseExpression":{"id":41198,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41148,"src":"3309:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41200,"indexExpression":{"id":41199,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41161,"src":"3321:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3309:23:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":41201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3333:6:62","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":40155,"src":"3309:30:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"VariableDeclarationStatement","src":"3273:66:62"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"id":41207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41203,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41197,"src":"3357:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":41204,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"3367:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":41205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3376:14:62","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"3367:23:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":41206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3391:3:62","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"3367:27:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"src":"3357:37:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"id":41218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41214,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41197,"src":"3484:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":41215,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"3494:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":41216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3503:14:62","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"3494:23:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":41217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3518:7:62","memberName":"Replace","nodeType":"MemberAccess","referencedDeclaration":40148,"src":"3494:31:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"src":"3484:41:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"id":41229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41225,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41197,"src":"3619:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":41226,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"3629:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":41227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3638:14:62","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"3629:23:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":41228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3653:6:62","memberName":"Remove","nodeType":"MemberAccess","referencedDeclaration":40149,"src":"3629:30:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"src":"3619:40:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41240,"nodeType":"Block","src":"3748:71:62","statements":[{"errorCall":{"arguments":[{"id":41237,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41197,"src":"3797:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}],"id":41236,"name":"IncorrectFacetCutAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40986,"src":"3773:23:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_FacetCutAction_$40150_$returns$__$","typeString":"function (enum IDiamond.FacetCutAction) pure"}},"id":41238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:31:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41239,"nodeType":"RevertStatement","src":"3766:38:62"}]},"id":41241,"nodeType":"IfStatement","src":"3615:204:62","trueBody":{"id":41235,"nodeType":"Block","src":"3661:81:62","statements":[{"expression":{"arguments":[{"id":41231,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41177,"src":"3695:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41232,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41170,"src":"3709:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41230,"name":"removeFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41611,"src":"3679:15:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":41233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3679:48:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41234,"nodeType":"ExpressionStatement","src":"3679:48:62"}]}},"id":41242,"nodeType":"IfStatement","src":"3480:339:62","trueBody":{"id":41224,"nodeType":"Block","src":"3527:82:62","statements":[{"expression":{"arguments":[{"id":41220,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41177,"src":"3562:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41221,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41170,"src":"3576:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41219,"name":"replaceFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41473,"src":"3545:16:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":41222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3545:49:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41223,"nodeType":"ExpressionStatement","src":"3545:49:62"}]}},"id":41243,"nodeType":"IfStatement","src":"3353:466:62","trueBody":{"id":41213,"nodeType":"Block","src":"3396:78:62","statements":[{"expression":{"arguments":[{"id":41209,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41177,"src":"3427:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41210,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41170,"src":"3441:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41208,"name":"addFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41368,"src":"3414:12:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":41211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3414:45:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41212,"nodeType":"ExpressionStatement","src":"3414:45:62"}]}},{"id":41247,"nodeType":"UncheckedBlock","src":"3832:55:62","statements":[{"expression":{"id":41245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3860:12:62","subExpression":{"id":41244,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41161,"src":"3862:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41246,"nodeType":"ExpressionStatement","src":"3860:12:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41163,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41161,"src":"2937:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41164,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41156,"src":"2950:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2937:19:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41249,"initializationExpression":{"assignments":[41161],"declarations":[{"constant":false,"id":41161,"mutability":"mutable","name":"facetIndex","nameLocation":"2925:10:62","nodeType":"VariableDeclaration","scope":41249,"src":"2917:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41160,"name":"uint256","nodeType":"ElementaryTypeName","src":"2917:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41162,"nodeType":"VariableDeclarationStatement","src":"2917:18:62"},"nodeType":"ForStatement","src":"2912:985:62"},{"eventCall":{"arguments":[{"id":41251,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41148,"src":"3936:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":41252,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41150,"src":"3956:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41253,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41152,"src":"3974:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41250,"name":"DiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41052,"src":"3911:10:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":41254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3923:11:62","3949:5:62","3963:9:62"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"3911:74:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41255,"nodeType":"EmitStatement","src":"3906:79:62"},{"expression":{"arguments":[{"id":41257,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41150,"src":"4016:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41258,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41152,"src":"4023:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41256,"name":"initializeDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41659,"src":"3995:20:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":41259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:38:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41260,"nodeType":"ExpressionStatement","src":"3995:38:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"2758:10:62","parameters":{"id":41153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41148,"mutability":"mutable","name":"_diamondCut","nameLocation":"2796:11:62","nodeType":"VariableDeclaration","scope":41262,"src":"2769:38:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":41146,"nodeType":"UserDefinedTypeName","pathNode":{"id":41145,"name":"IDiamond.FacetCut","nameLocations":["2769:8:62","2778:8:62"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"2769:17:62"},"referencedDeclaration":40159,"src":"2769:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":41147,"nodeType":"ArrayTypeName","src":"2769:19:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":41150,"mutability":"mutable","name":"_init","nameLocation":"2817:5:62","nodeType":"VariableDeclaration","scope":41262,"src":"2809:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41149,"name":"address","nodeType":"ElementaryTypeName","src":"2809:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41152,"mutability":"mutable","name":"_calldata","nameLocation":"2837:9:62","nodeType":"VariableDeclaration","scope":41262,"src":"2824:22:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41151,"name":"bytes","nodeType":"ElementaryTypeName","src":"2824:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2768:79:62"},"returnParameters":{"id":41154,"nodeType":"ParameterList","parameters":[],"src":"2857:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41368,"nodeType":"FunctionDefinition","src":"4046:1158:62","nodes":[],"body":{"id":41367,"nodeType":"Block","src":"4136:1068:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41270,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41264,"src":"4150:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4175:1:62","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":41272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4167:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41271,"name":"address","nodeType":"ElementaryTypeName","src":"4167:7:62","typeDescriptions":{}}},"id":41274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4167:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4150:27:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41281,"nodeType":"IfStatement","src":"4146:116:62","trueBody":{"id":41280,"nodeType":"Block","src":"4179:83:62","statements":[{"errorCall":{"arguments":[{"id":41277,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41267,"src":"4232:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41276,"name":"CannotAddSelectorsToZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40999,"src":"4200:31:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes4[] memory) pure"}},"id":41278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4200:51:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41279,"nodeType":"RevertStatement","src":"4193:58:62"}]}},{"assignments":[41284],"declarations":[{"constant":false,"id":41284,"mutability":"mutable","name":"ds","nameLocation":"4294:2:62","nodeType":"VariableDeclaration","scope":41367,"src":"4271:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41283,"nodeType":"UserDefinedTypeName","pathNode":{"id":41282,"name":"DiamondStorage","nameLocations":["4271:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"4271:14:62"},"referencedDeclaration":41072,"src":"4271:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41287,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41285,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"4299:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4299:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4271:44:62"},{"assignments":[41289],"declarations":[{"constant":false,"id":41289,"mutability":"mutable","name":"selectorCount","nameLocation":"4332:13:62","nodeType":"VariableDeclaration","scope":41367,"src":"4325:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":41288,"name":"uint16","nodeType":"ElementaryTypeName","src":"4325:6:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":41296,"initialValue":{"arguments":[{"expression":{"expression":{"id":41292,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41284,"src":"4355:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4358:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"4355:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4368:6:62","memberName":"length","nodeType":"MemberAccess","src":"4355:19:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4348:6:62","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":41290,"name":"uint16","nodeType":"ElementaryTypeName","src":"4348:6:62","typeDescriptions":{}}},"id":41295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4348:27:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4325:50:62"},{"expression":{"arguments":[{"id":41298,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41264,"src":"4408:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"6469616d6f6e644375743a2041646420666163657420686173206e6f20636f6465","id":41299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4423:35:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8d835faff0ba0e4baa5f22169088fa1f85cf7197f0ff5b9c9e823f3d33c8ad7","typeString":"literal_string \"diamondCut: Add facet has no code\""},"value":"diamondCut: Add facet has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_d8d835faff0ba0e4baa5f22169088fa1f85cf7197f0ff5b9c9e823f3d33c8ad7","typeString":"literal_string \"diamondCut: Add facet has no code\""}],"id":41297,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41681,"src":"4385:22:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":41300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:74:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41301,"nodeType":"ExpressionStatement","src":"4385:74:62"},{"assignments":[41303],"declarations":[{"constant":false,"id":41303,"mutability":"mutable","name":"length","nameLocation":"4477:6:62","nodeType":"VariableDeclaration","scope":41367,"src":"4469:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41302,"name":"uint256","nodeType":"ElementaryTypeName","src":"4469:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41306,"initialValue":{"expression":{"id":41304,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41267,"src":"4486:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4505:6:62","memberName":"length","nodeType":"MemberAccess","src":"4486:25:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4469:42:62"},{"body":{"id":41365,"nodeType":"Block","src":"4575:623:62","statements":[{"assignments":[41314],"declarations":[{"constant":false,"id":41314,"mutability":"mutable","name":"selector","nameLocation":"4596:8:62","nodeType":"VariableDeclaration","scope":41365,"src":"4589:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41313,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4589:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41318,"initialValue":{"baseExpression":{"id":41315,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41267,"src":"4607:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41317,"indexExpression":{"id":41316,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41308,"src":"4626:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4607:33:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4589:51:62"},{"assignments":[41320],"declarations":[{"constant":false,"id":41320,"mutability":"mutable","name":"oldFacetAddress","nameLocation":"4662:15:62","nodeType":"VariableDeclaration","scope":41365,"src":"4654:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41319,"name":"address","nodeType":"ElementaryTypeName","src":"4654:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":41326,"initialValue":{"expression":{"baseExpression":{"expression":{"id":41321,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41284,"src":"4680:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4683:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"4680:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41324,"indexExpression":{"id":41323,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"4715:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4680:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4725:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"4680:57:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4654:83:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41327,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41320,"src":"4755:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":41330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4782:1:62","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":41329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4774:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41328,"name":"address","nodeType":"ElementaryTypeName","src":"4774:7:62","typeDescriptions":{}}},"id":41331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4774:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4755:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41338,"nodeType":"IfStatement","src":"4751:128:62","trueBody":{"id":41337,"nodeType":"Block","src":"4786:93:62","statements":[{"errorCall":{"arguments":[{"id":41334,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"4855:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41333,"name":"CannotAddFunctionToDiamondThatAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40994,"src":"4811:43:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:53:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41336,"nodeType":"RevertStatement","src":"4804:60:62"}]}},{"expression":{"id":41348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41339,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41284,"src":"4892:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"4892:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41343,"indexExpression":{"id":41341,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"4927:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4892:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":41345,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41264,"src":"4988:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41346,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41289,"src":"5019:13:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":41344,"name":"FacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41057,"src":"4939:31:62","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_ptr_$","typeString":"type(struct LibDiamond.FacetAddressAndSelectorPosition storage pointer)"}},"id":41347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4939:107:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"src":"4892:154:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41349,"nodeType":"ExpressionStatement","src":"4892:154:62"},{"expression":{"arguments":[{"id":41355,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"5078:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"expression":{"id":41350,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41284,"src":"5060:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5063:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"5060:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5073:4:62","memberName":"push","nodeType":"MemberAccess","src":"5060:17:62","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$_t_bytes4_$returns$__$attached_to$_t_array$_t_bytes4_$dyn_storage_ptr_$","typeString":"function (bytes4[] storage pointer,bytes4)"}},"id":41356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5060:27:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41357,"nodeType":"ExpressionStatement","src":"5060:27:62"},{"expression":{"id":41359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5101:15:62","subExpression":{"id":41358,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41289,"src":"5103:13:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":41360,"nodeType":"ExpressionStatement","src":"5101:15:62"},{"id":41364,"nodeType":"UncheckedBlock","src":"5130:58:62","statements":[{"expression":{"id":41362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5158:15:62","subExpression":{"id":41361,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41308,"src":"5160:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41363,"nodeType":"ExpressionStatement","src":"5158:15:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41310,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41308,"src":"4549:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41311,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41303,"src":"4565:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4549:22:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41366,"initializationExpression":{"assignments":[41308],"declarations":[{"constant":false,"id":41308,"mutability":"mutable","name":"selectorIndex","nameLocation":"4534:13:62","nodeType":"VariableDeclaration","scope":41366,"src":"4526:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41307,"name":"uint256","nodeType":"ElementaryTypeName","src":"4526:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41309,"nodeType":"VariableDeclarationStatement","src":"4526:21:62"},"nodeType":"ForStatement","src":"4521:677:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"addFunctions","nameLocation":"4055:12:62","parameters":{"id":41268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41264,"mutability":"mutable","name":"_facetAddress","nameLocation":"4076:13:62","nodeType":"VariableDeclaration","scope":41368,"src":"4068:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41263,"name":"address","nodeType":"ElementaryTypeName","src":"4068:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41267,"mutability":"mutable","name":"_functionSelectors","nameLocation":"4107:18:62","nodeType":"VariableDeclaration","scope":41368,"src":"4091:34:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41265,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4091:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41266,"nodeType":"ArrayTypeName","src":"4091:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"4067:59:62"},"returnParameters":{"id":41269,"nodeType":"ParameterList","parameters":[],"src":"4136:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41473,"nodeType":"FunctionDefinition","src":"5210:1396:62","nodes":[],"body":{"id":41472,"nodeType":"Block","src":"5304:1302:62","nodes":[],"statements":[{"assignments":[41378],"declarations":[{"constant":false,"id":41378,"mutability":"mutable","name":"ds","nameLocation":"5337:2:62","nodeType":"VariableDeclaration","scope":41472,"src":"5314:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41377,"nodeType":"UserDefinedTypeName","pathNode":{"id":41376,"name":"DiamondStorage","nameLocations":["5314:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"5314:14:62"},"referencedDeclaration":41072,"src":"5314:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41381,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41379,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"5342:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5342:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5314:44:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41382,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41370,"src":"5372:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5397:1:62","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":41384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41383,"name":"address","nodeType":"ElementaryTypeName","src":"5389:7:62","typeDescriptions":{}}},"id":41386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5372:27:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41393,"nodeType":"IfStatement","src":"5368:131:62","trueBody":{"id":41392,"nodeType":"Block","src":"5401:98:62","statements":[{"errorCall":{"arguments":[{"id":41389,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41373,"src":"5469:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41388,"name":"CannotReplaceFunctionsFromFacetWithZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41018,"src":"5422:46:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes4[] memory) pure"}},"id":41390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5422:66:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41391,"nodeType":"RevertStatement","src":"5415:73:62"}]}},{"expression":{"arguments":[{"id":41395,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41370,"src":"5531:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"4c69624469616d6f6e644375743a205265706c61636520666163657420686173206e6f20636f6465","id":41396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5546:42:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_de246aa8052f872d61bcd9cfb620b8012f8bc6e512400178c0e967944dadacfe","typeString":"literal_string \"LibDiamondCut: Replace facet has no code\""},"value":"LibDiamondCut: Replace facet has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_de246aa8052f872d61bcd9cfb620b8012f8bc6e512400178c0e967944dadacfe","typeString":"literal_string \"LibDiamondCut: Replace facet has no code\""}],"id":41394,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41681,"src":"5508:22:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":41397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5508:81:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41398,"nodeType":"ExpressionStatement","src":"5508:81:62"},{"assignments":[41400],"declarations":[{"constant":false,"id":41400,"mutability":"mutable","name":"fl","nameLocation":"5607:2:62","nodeType":"VariableDeclaration","scope":41472,"src":"5599:10:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41399,"name":"uint256","nodeType":"ElementaryTypeName","src":"5599:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41403,"initialValue":{"expression":{"id":41401,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41373,"src":"5612:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5631:6:62","memberName":"length","nodeType":"MemberAccess","src":"5612:25:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5599:38:62"},{"body":{"id":41470,"nodeType":"Block","src":"5697:903:62","statements":[{"assignments":[41411],"declarations":[{"constant":false,"id":41411,"mutability":"mutable","name":"selector","nameLocation":"5718:8:62","nodeType":"VariableDeclaration","scope":41470,"src":"5711:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41410,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5711:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41415,"initialValue":{"baseExpression":{"id":41412,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41373,"src":"5729:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41414,"indexExpression":{"id":41413,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41405,"src":"5748:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5729:33:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"5711:51:62"},{"assignments":[41417],"declarations":[{"constant":false,"id":41417,"mutability":"mutable","name":"oldFacetAddress","nameLocation":"5784:15:62","nodeType":"VariableDeclaration","scope":41470,"src":"5776:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41416,"name":"address","nodeType":"ElementaryTypeName","src":"5776:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":41423,"initialValue":{"expression":{"baseExpression":{"expression":{"id":41418,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41378,"src":"5802:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5805:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"5802:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41421,"indexExpression":{"id":41420,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41411,"src":"5837:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5802:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5847:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"5802:57:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5776:83:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41424,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41417,"src":"5984:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":41427,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6011:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_LibDiamond_$41682","typeString":"library LibDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibDiamond_$41682","typeString":"library LibDiamond"}],"id":41426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6003:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41425,"name":"address","nodeType":"ElementaryTypeName","src":"6003:7:62","typeDescriptions":{}}},"id":41428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5984:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41435,"nodeType":"IfStatement","src":"5980:118:62","trueBody":{"id":41434,"nodeType":"Block","src":"6018:80:62","statements":[{"errorCall":{"arguments":[{"id":41431,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41411,"src":"6074:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41430,"name":"CannotReplaceImmutableFunction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41022,"src":"6043:30:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6043:40:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41433,"nodeType":"RevertStatement","src":"6036:47:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41436,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41417,"src":"6115:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":41437,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41370,"src":"6134:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6115:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41444,"nodeType":"IfStatement","src":"6111:144:62","trueBody":{"id":41443,"nodeType":"Block","src":"6149:106:62","statements":[{"errorCall":{"arguments":[{"id":41440,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41411,"src":"6231:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41439,"name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41026,"src":"6174:56:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:66:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41442,"nodeType":"RevertStatement","src":"6167:73:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41445,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41417,"src":"6272:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6299:1:62","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":41447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6291:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41446,"name":"address","nodeType":"ElementaryTypeName","src":"6291:7:62","typeDescriptions":{}}},"id":41449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6291:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6272:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41456,"nodeType":"IfStatement","src":"6268:123:62","trueBody":{"id":41455,"nodeType":"Block","src":"6303:88:62","statements":[{"errorCall":{"arguments":[{"id":41452,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41411,"src":"6367:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41451,"name":"CannotReplaceFunctionThatDoesNotExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41030,"src":"6328:38:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6328:48:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41454,"nodeType":"RevertStatement","src":"6321:55:62"}]}},{"expression":{"id":41464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":41457,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41378,"src":"6445:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6448:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"6445:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41461,"indexExpression":{"id":41459,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41411,"src":"6480:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6445:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6490:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"6445:57:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41463,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41370,"src":"6505:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6445:73:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41465,"nodeType":"ExpressionStatement","src":"6445:73:62"},{"id":41469,"nodeType":"UncheckedBlock","src":"6532:58:62","statements":[{"expression":{"id":41467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6560:15:62","subExpression":{"id":41466,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41405,"src":"6562:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41468,"nodeType":"ExpressionStatement","src":"6560:15:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41407,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41405,"src":"5675:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41408,"name":"fl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41400,"src":"5691:2:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5675:18:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41471,"initializationExpression":{"assignments":[41405],"declarations":[{"constant":false,"id":41405,"mutability":"mutable","name":"selectorIndex","nameLocation":"5660:13:62","nodeType":"VariableDeclaration","scope":41471,"src":"5652:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41404,"name":"uint256","nodeType":"ElementaryTypeName","src":"5652:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41406,"nodeType":"VariableDeclarationStatement","src":"5652:21:62"},"nodeType":"ForStatement","src":"5647:953:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"replaceFunctions","nameLocation":"5219:16:62","parameters":{"id":41374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41370,"mutability":"mutable","name":"_facetAddress","nameLocation":"5244:13:62","nodeType":"VariableDeclaration","scope":41473,"src":"5236:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41369,"name":"address","nodeType":"ElementaryTypeName","src":"5236:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41373,"mutability":"mutable","name":"_functionSelectors","nameLocation":"5275:18:62","nodeType":"VariableDeclaration","scope":41473,"src":"5259:34:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41371,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5259:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41372,"nodeType":"ArrayTypeName","src":"5259:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"5235:59:62"},"returnParameters":{"id":41375,"nodeType":"ParameterList","parameters":[],"src":"5304:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41611,"nodeType":"FunctionDefinition","src":"6612:1796:62","nodes":[],"body":{"id":41610,"nodeType":"Block","src":"6705:1703:62","nodes":[],"statements":[{"assignments":[41483],"declarations":[{"constant":false,"id":41483,"mutability":"mutable","name":"ds","nameLocation":"6738:2:62","nodeType":"VariableDeclaration","scope":41610,"src":"6715:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41482,"nodeType":"UserDefinedTypeName","pathNode":{"id":41481,"name":"DiamondStorage","nameLocations":["6715:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"6715:14:62"},"referencedDeclaration":41072,"src":"6715:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41486,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41484,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"6743:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6743:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6715:44:62"},{"assignments":[41488],"declarations":[{"constant":false,"id":41488,"mutability":"mutable","name":"selectorCount","nameLocation":"6777:13:62","nodeType":"VariableDeclaration","scope":41610,"src":"6769:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41487,"name":"uint256","nodeType":"ElementaryTypeName","src":"6769:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41492,"initialValue":{"expression":{"expression":{"id":41489,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"6793:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6796:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"6793:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6806:6:62","memberName":"length","nodeType":"MemberAccess","src":"6793:19:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6769:43:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41493,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41475,"src":"6826:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":41496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6851:1:62","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":41495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6843:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41494,"name":"address","nodeType":"ElementaryTypeName","src":"6843:7:62","typeDescriptions":{}}},"id":41497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6843:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6826:27:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41504,"nodeType":"IfStatement","src":"6822:115:62","trueBody":{"id":41503,"nodeType":"Block","src":"6855:82:62","statements":[{"errorCall":{"arguments":[{"id":41500,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41475,"src":"6912:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41499,"name":"RemoveFacetAddressMustBeZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41034,"src":"6876:35:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":41501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6876:50:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41502,"nodeType":"RevertStatement","src":"6869:57:62"}]}},{"assignments":[41506],"declarations":[{"constant":false,"id":41506,"mutability":"mutable","name":"fl","nameLocation":"6954:2:62","nodeType":"VariableDeclaration","scope":41610,"src":"6946:10:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41505,"name":"uint256","nodeType":"ElementaryTypeName","src":"6946:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41509,"initialValue":{"expression":{"id":41507,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41478,"src":"6959:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6978:6:62","memberName":"length","nodeType":"MemberAccess","src":"6959:25:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6946:38:62"},{"body":{"id":41608,"nodeType":"Block","src":"7044:1358:62","statements":[{"assignments":[41517],"declarations":[{"constant":false,"id":41517,"mutability":"mutable","name":"selector","nameLocation":"7065:8:62","nodeType":"VariableDeclaration","scope":41608,"src":"7058:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41516,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7058:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41521,"initialValue":{"baseExpression":{"id":41518,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41478,"src":"7076:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41520,"indexExpression":{"id":41519,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41511,"src":"7095:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7076:33:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"7058:51:62"},{"assignments":[41524],"declarations":[{"constant":false,"id":41524,"mutability":"mutable","name":"oldFacetAddressAndSelectorPosition","nameLocation":"7162:34:62","nodeType":"VariableDeclaration","scope":41608,"src":"7123:73:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"},"typeName":{"id":41523,"nodeType":"UserDefinedTypeName","pathNode":{"id":41522,"name":"FacetAddressAndSelectorPosition","nameLocations":["7123:31:62"],"nodeType":"IdentifierPath","referencedDeclaration":41057,"src":"7123:31:62"},"referencedDeclaration":41057,"src":"7123:31:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"}},"visibility":"internal"}],"id":41529,"initialValue":{"baseExpression":{"expression":{"id":41525,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"7199:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7219:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"7199:51:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41528,"indexExpression":{"id":41527,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41517,"src":"7251:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7199:61:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7123:137:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41530,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41524,"src":"7278:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7313:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"7278:47:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7337:1:62","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":41533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7329:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41532,"name":"address","nodeType":"ElementaryTypeName","src":"7329:7:62","typeDescriptions":{}}},"id":41535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7329:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7278:61:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41542,"nodeType":"IfStatement","src":"7274:153:62","trueBody":{"id":41541,"nodeType":"Block","src":"7341:86:62","statements":[{"errorCall":{"arguments":[{"id":41538,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41517,"src":"7403:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41537,"name":"CannotRemoveFunctionThatDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41038,"src":"7366:36:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7366:46:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41540,"nodeType":"RevertStatement","src":"7359:53:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41543,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41524,"src":"7538:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7573:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"7538:47:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":41547,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7597:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_LibDiamond_$41682","typeString":"library LibDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibDiamond_$41682","typeString":"library LibDiamond"}],"id":41546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7589:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41545,"name":"address","nodeType":"ElementaryTypeName","src":"7589:7:62","typeDescriptions":{}}},"id":41548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7589:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7538:64:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41555,"nodeType":"IfStatement","src":"7534:149:62","trueBody":{"id":41554,"nodeType":"Block","src":"7604:79:62","statements":[{"errorCall":{"arguments":[{"id":41551,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41517,"src":"7659:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41550,"name":"CannotRemoveImmutableFunction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41042,"src":"7629:29:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7629:39:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41553,"nodeType":"RevertStatement","src":"7622:46:62"}]}},{"expression":{"id":41557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"7747:15:62","subExpression":{"id":41556,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41488,"src":"7749:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41558,"nodeType":"ExpressionStatement","src":"7747:15:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41559,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41524,"src":"7780:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7815:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41056,"src":"7780:51:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":41561,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41488,"src":"7835:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7780:68:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41590,"nodeType":"IfStatement","src":"7776:412:62","trueBody":{"id":41589,"nodeType":"Block","src":"7850:338:62","statements":[{"assignments":[41564],"declarations":[{"constant":false,"id":41564,"mutability":"mutable","name":"lastSelector","nameLocation":"7875:12:62","nodeType":"VariableDeclaration","scope":41589,"src":"7868:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41563,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7868:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41569,"initialValue":{"baseExpression":{"expression":{"id":41565,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"7890:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7893:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"7890:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41568,"indexExpression":{"id":41567,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41488,"src":"7903:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7890:27:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"7868:49:62"},{"expression":{"id":41577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41570,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"7935:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7938:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"7935:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41575,"indexExpression":{"expression":{"id":41572,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41524,"src":"7948:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7983:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41056,"src":"7948:51:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7935:65:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41576,"name":"lastSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41564,"src":"8003:12:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7935:80:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41578,"nodeType":"ExpressionStatement","src":"7935:80:62"},{"expression":{"id":41587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":41579,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"8033:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8036:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"8033:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41583,"indexExpression":{"id":41581,"name":"lastSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41564,"src":"8068:12:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8033:48:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8082:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41056,"src":"8033:65:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41585,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41524,"src":"8101:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8157:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41056,"src":"8101:72:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8033:140:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":41588,"nodeType":"ExpressionStatement","src":"8033:140:62"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":41591,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"8237:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8240:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"8237:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8250:3:62","memberName":"pop","nodeType":"MemberAccess","src":"8237:16:62","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes4_$dyn_storage_ptr_$","typeString":"function (bytes4[] storage pointer)"}},"id":41596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8237:18:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41597,"nodeType":"ExpressionStatement","src":"8237:18:62"},{"expression":{"id":41602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8269:51:62","subExpression":{"baseExpression":{"expression":{"id":41598,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"8276:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8279:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"8276:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41601,"indexExpression":{"id":41600,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41517,"src":"8311:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8276:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41603,"nodeType":"ExpressionStatement","src":"8269:51:62"},{"id":41607,"nodeType":"UncheckedBlock","src":"8334:58:62","statements":[{"expression":{"id":41605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8362:15:62","subExpression":{"id":41604,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41511,"src":"8364:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41606,"nodeType":"ExpressionStatement","src":"8362:15:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41513,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41511,"src":"7022:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41514,"name":"fl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"7038:2:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7022:18:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41609,"initializationExpression":{"assignments":[41511],"declarations":[{"constant":false,"id":41511,"mutability":"mutable","name":"selectorIndex","nameLocation":"7007:13:62","nodeType":"VariableDeclaration","scope":41609,"src":"6999:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41510,"name":"uint256","nodeType":"ElementaryTypeName","src":"6999:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41512,"nodeType":"VariableDeclarationStatement","src":"6999:21:62"},"nodeType":"ForStatement","src":"6994:1408:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeFunctions","nameLocation":"6621:15:62","parameters":{"id":41479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41475,"mutability":"mutable","name":"_facetAddress","nameLocation":"6645:13:62","nodeType":"VariableDeclaration","scope":41611,"src":"6637:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41474,"name":"address","nodeType":"ElementaryTypeName","src":"6637:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41478,"mutability":"mutable","name":"_functionSelectors","nameLocation":"6676:18:62","nodeType":"VariableDeclaration","scope":41611,"src":"6660:34:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41476,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6660:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41477,"nodeType":"ArrayTypeName","src":"6660:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"6636:59:62"},"returnParameters":{"id":41480,"nodeType":"ParameterList","parameters":[],"src":"6705:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41659,"nodeType":"FunctionDefinition","src":"8414:888:62","nodes":[],"body":{"id":41658,"nodeType":"Block","src":"8492:810:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41618,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41613,"src":"8506:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8523:1:62","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":41620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8515:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41619,"name":"address","nodeType":"ElementaryTypeName","src":"8515:7:62","typeDescriptions":{}}},"id":41622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8515:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8506:19:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41626,"nodeType":"IfStatement","src":"8502:56:62","trueBody":{"id":41625,"nodeType":"Block","src":"8527:31:62","statements":[{"functionReturnParameters":41617,"id":41624,"nodeType":"Return","src":"8541:7:62"}]}},{"expression":{"arguments":[{"id":41628,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41613,"src":"8590:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f6465","id":41629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8597:39:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_72db497a72f62bab0025d592feb672a31e8d1a2a1bfe9fa07cc3a061b7217c3c","typeString":"literal_string \"diamondCut: _init address has no code\""},"value":"diamondCut: _init address has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_72db497a72f62bab0025d592feb672a31e8d1a2a1bfe9fa07cc3a061b7217c3c","typeString":"literal_string \"diamondCut: _init address has no code\""}],"id":41627,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41681,"src":"8567:22:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":41630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8567:70:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41631,"nodeType":"ExpressionStatement","src":"8567:70:62"},{"assignments":[41633,41635],"declarations":[{"constant":false,"id":41633,"mutability":"mutable","name":"success","nameLocation":"8706:7:62","nodeType":"VariableDeclaration","scope":41658,"src":"8701:12:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41632,"name":"bool","nodeType":"ElementaryTypeName","src":"8701:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41635,"mutability":"mutable","name":"error","nameLocation":"8728:5:62","nodeType":"VariableDeclaration","scope":41658,"src":"8715:18:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41634,"name":"bytes","nodeType":"ElementaryTypeName","src":"8715:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":41640,"initialValue":{"arguments":[{"id":41638,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41615,"src":"8756:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":41636,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41613,"src":"8737:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8743:12:62","memberName":"delegatecall","nodeType":"MemberAccess","src":"8737:18:62","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":41639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8737:29:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"8700:66:62"},{"condition":{"id":41642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8826:8:62","subExpression":{"id":41641,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41633,"src":"8827:7:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41657,"nodeType":"IfStatement","src":"8822:474:62","trueBody":{"id":41656,"nodeType":"Block","src":"8836:460:62","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41643,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41635,"src":"8911:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":41644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8917:6:62","memberName":"length","nodeType":"MemberAccess","src":"8911:12:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8927:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8911:17:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41654,"nodeType":"Block","src":"9198:88:62","statements":[{"errorCall":{"arguments":[{"id":41650,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41613,"src":"9254:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41651,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41615,"src":"9261:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41649,"name":"InitializationFunctionReverted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41005,"src":"9223:30:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":41652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9223:48:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41653,"nodeType":"RevertStatement","src":"9216:55:62"}]},"id":41655,"nodeType":"IfStatement","src":"8907:379:62","trueBody":{"id":41648,"nodeType":"Block","src":"8930:262:62","statements":[{"AST":{"nodeType":"YulBlock","src":"9043:135:62","statements":[{"nodeType":"YulVariableDeclaration","src":"9065:35:62","value":{"arguments":[{"name":"error","nodeType":"YulIdentifier","src":"9094:5:62"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9088:5:62"},"nodeType":"YulFunctionCall","src":"9088:12:62"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9069:15:62","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9132:2:62","type":"","value":"32"},{"name":"error","nodeType":"YulIdentifier","src":"9136:5:62"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9128:3:62"},"nodeType":"YulFunctionCall","src":"9128:14:62"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9144:15:62"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9121:6:62"},"nodeType":"YulFunctionCall","src":"9121:39:62"},"nodeType":"YulExpressionStatement","src":"9121:39:62"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":41635,"isOffset":false,"isSlot":false,"src":"9094:5:62","valueSize":1},{"declaration":41635,"isOffset":false,"isSlot":false,"src":"9136:5:62","valueSize":1}],"id":41647,"nodeType":"InlineAssembly","src":"9034:144:62"}]}}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"initializeDiamondCut","nameLocation":"8423:20:62","parameters":{"id":41616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41613,"mutability":"mutable","name":"_init","nameLocation":"8452:5:62","nodeType":"VariableDeclaration","scope":41659,"src":"8444:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41612,"name":"address","nodeType":"ElementaryTypeName","src":"8444:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41615,"mutability":"mutable","name":"_calldata","nameLocation":"8472:9:62","nodeType":"VariableDeclaration","scope":41659,"src":"8459:22:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41614,"name":"bytes","nodeType":"ElementaryTypeName","src":"8459:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8443:39:62"},"returnParameters":{"id":41617,"nodeType":"ParameterList","parameters":[],"src":"8492:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41681,"nodeType":"FunctionDefinition","src":"9308:320:62","nodes":[],"body":{"id":41680,"nodeType":"Block","src":"9402:226:62","nodes":[],"statements":[{"assignments":[41667],"declarations":[{"constant":false,"id":41667,"mutability":"mutable","name":"contractSize","nameLocation":"9420:12:62","nodeType":"VariableDeclaration","scope":41680,"src":"9412:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41666,"name":"uint256","nodeType":"ElementaryTypeName","src":"9412:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41668,"nodeType":"VariableDeclarationStatement","src":"9412:20:62"},{"AST":{"nodeType":"YulBlock","src":"9451:62:62","statements":[{"nodeType":"YulAssignment","src":"9465:38:62","value":{"arguments":[{"name":"_contract","nodeType":"YulIdentifier","src":"9493:9:62"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"9481:11:62"},"nodeType":"YulFunctionCall","src":"9481:22:62"},"variableNames":[{"name":"contractSize","nodeType":"YulIdentifier","src":"9465:12:62"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":41661,"isOffset":false,"isSlot":false,"src":"9493:9:62","valueSize":1},{"declaration":41667,"isOffset":false,"isSlot":false,"src":"9465:12:62","valueSize":1}],"id":41669,"nodeType":"InlineAssembly","src":"9442:71:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41670,"name":"contractSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41667,"src":"9526:12:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":41671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9542:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9526:17:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41679,"nodeType":"IfStatement","src":"9522:100:62","trueBody":{"id":41678,"nodeType":"Block","src":"9545:77:62","statements":[{"errorCall":{"arguments":[{"id":41674,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41661,"src":"9586:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41675,"name":"_errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41663,"src":"9597:13:62","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":41673,"name":"NoBytecodeAtAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40981,"src":"9566:19:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) pure"}},"id":41676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9566:45:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41677,"nodeType":"RevertStatement","src":"9559:52:62"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"enforceHasContractCode","nameLocation":"9317:22:62","parameters":{"id":41664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41661,"mutability":"mutable","name":"_contract","nameLocation":"9348:9:62","nodeType":"VariableDeclaration","scope":41681,"src":"9340:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41660,"name":"address","nodeType":"ElementaryTypeName","src":"9340:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41663,"mutability":"mutable","name":"_errorMessage","nameLocation":"9373:13:62","nodeType":"VariableDeclaration","scope":41681,"src":"9359:27:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41662,"name":"string","nodeType":"ElementaryTypeName","src":"9359:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9339:48:62"},"returnParameters":{"id":41665,"nodeType":"ParameterList","parameters":[],"src":"9402:0:62"},"scope":41682,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDiamond","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[41682],"name":"LibDiamond","nameLocation":"192:10:62","scope":41683,"usedErrors":[40975,40981,40986,40990,40994,40999,41005,41007,41013,41018,41022,41026,41030,41034,41038,41042]}],"license":"MIT OR Apache-2.0"},"id":62} \ No newline at end of file +{"abi":[{"type":"function","name":"DIAMOND_STORAGE_POSITION","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsGivenToAdd","inputs":[]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotContractOwner","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_contractOwner","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608080604052346018576094908161001e823930815050f35b600080fdfe6080806040526004361015601257600080fd5b60003560e01c63b2bebf5514602657600080fd5b6000366003190112605957807f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260209252f35b600080fdfea2646970667358221220d508694a722880a4c6eb34c059182551ad1bb0b0b65354c5f1e8ee93f631303264736f6c63430008130033","sourceMap":"184:9446:62:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b60003560e01c63b2bebf5514602657600080fd5b6000366003190112605957807f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260209252f35b600080fdfea2646970667358221220d508694a722880a4c6eb34c059182551ad1bb0b0b65354c5f1e8ee93f631303264736f6c63430008130033","sourceMap":"184:9446:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;184:9446:62;;;;;260:43;184:9446;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DIAMOND_STORAGE_POSITION()":"b2bebf55"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoSelectorsGivenToAdd\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contractOwner\",\"type\":\"address\"}],\"name\":\"NotContractOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DIAMOND_STORAGE_POSITION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibDiamond.sol\":\"LibDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[],"type":"error","name":"NoSelectorsGivenToAdd"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_contractOwner","type":"address"}],"type":"error","name":"NotContractOwner"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DIAMOND_STORAGE_POSITION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibDiamond.sol":"LibDiamond"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibDiamond.sol","id":41627,"exportedSymbols":{"IDiamond":[40170],"IDiamondCut":[40189],"LibDiamond":[41626]},"nodeType":"SourceUnit","src":"46:9585:62","nodes":[{"id":40908,"nodeType":"PragmaDirective","src":"46:23:62","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40910,"nodeType":"ImportDirective","src":"71:58:62","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":41627,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":40909,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"79:11:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40912,"nodeType":"ImportDirective","src":"130:52:62","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":41627,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":40911,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"138:8:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41626,"nodeType":"ContractDefinition","src":"184:9446:62","nodes":[{"id":40917,"nodeType":"VariableDeclaration","src":"209:94:62","nodes":[],"constant":true,"functionSelector":"b2bebf55","mutability":"constant","name":"DIAMOND_STORAGE_POSITION","nameLocation":"233:24:62","scope":41626,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6c69626469616d6f6e642e6c69622e6469616d6f6e642e73746f72616765","id":40915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"270:32:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","typeString":"literal_string \"libdiamond.lib.diamond.storage\""},"value":"libdiamond.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","typeString":"literal_string \"libdiamond.lib.diamond.storage\""}],"id":40914,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"260:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"260:43:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":40919,"nodeType":"ErrorDefinition","src":"310:17:62","nodes":[],"errorSelector":"30cd7471","name":"NotOwner","nameLocation":"316:8:62","parameters":{"id":40918,"nodeType":"ParameterList","parameters":[],"src":"324:2:62"}},{"id":40925,"nodeType":"ErrorDefinition","src":"332:69:62","nodes":[],"errorSelector":"919834b9","name":"NoBytecodeAtAddress","nameLocation":"338:19:62","parameters":{"id":40924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40921,"mutability":"mutable","name":"_contractAddress","nameLocation":"366:16:62","nodeType":"VariableDeclaration","scope":40925,"src":"358:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40920,"name":"address","nodeType":"ElementaryTypeName","src":"358:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40923,"mutability":"mutable","name":"_message","nameLocation":"391:8:62","nodeType":"VariableDeclaration","scope":40925,"src":"384:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40922,"name":"string","nodeType":"ElementaryTypeName","src":"384:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"357:43:62"}},{"id":40930,"nodeType":"ErrorDefinition","src":"406:66:62","nodes":[],"errorSelector":"7fe9a41e","name":"IncorrectFacetCutAction","nameLocation":"412:23:62","parameters":{"id":40929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40928,"mutability":"mutable","name":"_action","nameLocation":"463:7:62","nodeType":"VariableDeclaration","scope":40930,"src":"436:34:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":40927,"nodeType":"UserDefinedTypeName","pathNode":{"id":40926,"name":"IDiamondCut.FacetCutAction","nameLocations":["436:11:62","448:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":40150,"src":"436:26:62"},"referencedDeclaration":40150,"src":"436:26:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"}],"src":"435:36:62"}},{"id":40934,"nodeType":"ErrorDefinition","src":"477:63:62","nodes":[],"errorSelector":"e767f91f","name":"NoSelectorsProvidedForFacetForCut","nameLocation":"483:33:62","parameters":{"id":40933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40932,"mutability":"mutable","name":"_facetAddress","nameLocation":"525:13:62","nodeType":"VariableDeclaration","scope":40934,"src":"517:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40931,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"516:23:62"}},{"id":40938,"nodeType":"ErrorDefinition","src":"545:68:62","nodes":[],"errorSelector":"ebbf5d07","name":"CannotAddFunctionToDiamondThatAlreadyExists","nameLocation":"551:43:62","parameters":{"id":40937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40936,"mutability":"mutable","name":"_selector","nameLocation":"602:9:62","nodeType":"VariableDeclaration","scope":40938,"src":"595:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40935,"name":"bytes4","nodeType":"ElementaryTypeName","src":"595:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"594:18:62"}},{"id":40943,"nodeType":"ErrorDefinition","src":"618:59:62","nodes":[],"errorSelector":"0ae3681c","name":"CannotAddSelectorsToZeroAddress","nameLocation":"624:31:62","parameters":{"id":40942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40941,"mutability":"mutable","name":"_selectors","nameLocation":"665:10:62","nodeType":"VariableDeclaration","scope":40943,"src":"656:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40939,"name":"bytes4","nodeType":"ElementaryTypeName","src":"656:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40940,"nodeType":"ArrayTypeName","src":"656:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"655:21:62"}},{"id":40949,"nodeType":"ErrorDefinition","src":"682:94:62","nodes":[],"errorSelector":"192105d7","name":"InitializationFunctionReverted","nameLocation":"688:30:62","parameters":{"id":40948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40945,"mutability":"mutable","name":"_initializationContractAddress","nameLocation":"727:30:62","nodeType":"VariableDeclaration","scope":40949,"src":"719:38:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40944,"name":"address","nodeType":"ElementaryTypeName","src":"719:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40947,"mutability":"mutable","name":"_calldata","nameLocation":"765:9:62","nodeType":"VariableDeclaration","scope":40949,"src":"759:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40946,"name":"bytes","nodeType":"ElementaryTypeName","src":"759:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"718:57:62"}},{"id":40951,"nodeType":"ErrorDefinition","src":"781:30:62","nodes":[],"errorSelector":"eb6ba048","name":"NoSelectorsGivenToAdd","nameLocation":"787:21:62","parameters":{"id":40950,"nodeType":"ParameterList","parameters":[],"src":"808:2:62"}},{"id":40957,"nodeType":"ErrorDefinition","src":"816:62:62","nodes":[],"errorSelector":"ff4127cb","name":"NotContractOwner","nameLocation":"822:16:62","parameters":{"id":40956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40953,"mutability":"mutable","name":"_user","nameLocation":"847:5:62","nodeType":"VariableDeclaration","scope":40957,"src":"839:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40952,"name":"address","nodeType":"ElementaryTypeName","src":"839:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40955,"mutability":"mutable","name":"_contractOwner","nameLocation":"862:14:62","nodeType":"VariableDeclaration","scope":40957,"src":"854:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40954,"name":"address","nodeType":"ElementaryTypeName","src":"854:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"838:39:62"}},{"id":40962,"nodeType":"ErrorDefinition","src":"883:74:62","nodes":[],"errorSelector":"cd98a96f","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","nameLocation":"889:46:62","parameters":{"id":40961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40960,"mutability":"mutable","name":"_selectors","nameLocation":"945:10:62","nodeType":"VariableDeclaration","scope":40962,"src":"936:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40958,"name":"bytes4","nodeType":"ElementaryTypeName","src":"936:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40959,"nodeType":"ArrayTypeName","src":"936:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"935:21:62"}},{"id":40966,"nodeType":"ErrorDefinition","src":"962:55:62","nodes":[],"errorSelector":"520300da","name":"CannotReplaceImmutableFunction","nameLocation":"968:30:62","parameters":{"id":40965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40964,"mutability":"mutable","name":"_selector","nameLocation":"1006:9:62","nodeType":"VariableDeclaration","scope":40966,"src":"999:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40963,"name":"bytes4","nodeType":"ElementaryTypeName","src":"999:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"998:18:62"}},{"id":40970,"nodeType":"ErrorDefinition","src":"1022:81:62","nodes":[],"errorSelector":"358d9d1a","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","nameLocation":"1028:56:62","parameters":{"id":40969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40968,"mutability":"mutable","name":"_selector","nameLocation":"1092:9:62","nodeType":"VariableDeclaration","scope":40970,"src":"1085:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40967,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1085:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1084:18:62"}},{"id":40974,"nodeType":"ErrorDefinition","src":"1108:63:62","nodes":[],"errorSelector":"7479f939","name":"CannotReplaceFunctionThatDoesNotExists","nameLocation":"1114:38:62","parameters":{"id":40973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40972,"mutability":"mutable","name":"_selector","nameLocation":"1160:9:62","nodeType":"VariableDeclaration","scope":40974,"src":"1153:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40971,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1153:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1152:18:62"}},{"id":40978,"nodeType":"ErrorDefinition","src":"1176:65:62","nodes":[],"errorSelector":"d091bc81","name":"RemoveFacetAddressMustBeZeroAddress","nameLocation":"1182:35:62","parameters":{"id":40977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40976,"mutability":"mutable","name":"_facetAddress","nameLocation":"1226:13:62","nodeType":"VariableDeclaration","scope":40978,"src":"1218:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40975,"name":"address","nodeType":"ElementaryTypeName","src":"1218:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1217:23:62"}},{"id":40982,"nodeType":"ErrorDefinition","src":"1246:61:62","nodes":[],"errorSelector":"7a08a22d","name":"CannotRemoveFunctionThatDoesNotExist","nameLocation":"1252:36:62","parameters":{"id":40981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40980,"mutability":"mutable","name":"_selector","nameLocation":"1296:9:62","nodeType":"VariableDeclaration","scope":40982,"src":"1289:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40979,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1289:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1288:18:62"}},{"id":40986,"nodeType":"ErrorDefinition","src":"1312:54:62","nodes":[],"errorSelector":"6fafeb08","name":"CannotRemoveImmutableFunction","nameLocation":"1318:29:62","parameters":{"id":40985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40984,"mutability":"mutable","name":"_selector","nameLocation":"1355:9:62","nodeType":"VariableDeclaration","scope":40986,"src":"1348:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40983,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1348:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1347:18:62"}},{"id":40996,"nodeType":"EventDefinition","src":"1372:85:62","nodes":[],"anonymous":false,"eventSelector":"8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673","name":"DiamondCut","nameLocation":"1378:10:62","parameters":{"id":40995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40990,"indexed":false,"mutability":"mutable","name":"_diamondCut","nameLocation":"1412:11:62","nodeType":"VariableDeclaration","scope":40996,"src":"1389:34:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":40988,"nodeType":"UserDefinedTypeName","pathNode":{"id":40987,"name":"IDiamondCut.FacetCut","nameLocations":["1389:11:62","1401:8:62"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1389:20:62"},"referencedDeclaration":40159,"src":"1389:20:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":40989,"nodeType":"ArrayTypeName","src":"1389:22:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":40992,"indexed":false,"mutability":"mutable","name":"_init","nameLocation":"1433:5:62","nodeType":"VariableDeclaration","scope":40996,"src":"1425:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40991,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40994,"indexed":false,"mutability":"mutable","name":"_calldata","nameLocation":"1446:9:62","nodeType":"VariableDeclaration","scope":40996,"src":"1440:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40993,"name":"bytes","nodeType":"ElementaryTypeName","src":"1440:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1388:68:62"}},{"id":41001,"nodeType":"StructDefinition","src":"1463:109:62","nodes":[],"canonicalName":"LibDiamond.FacetAddressAndSelectorPosition","members":[{"constant":false,"id":40998,"mutability":"mutable","name":"facetAddress","nameLocation":"1520:12:62","nodeType":"VariableDeclaration","scope":41001,"src":"1512:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40997,"name":"address","nodeType":"ElementaryTypeName","src":"1512:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41000,"mutability":"mutable","name":"selectorPosition","nameLocation":"1549:16:62","nodeType":"VariableDeclaration","scope":41001,"src":"1542:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":40999,"name":"uint16","nodeType":"ElementaryTypeName","src":"1542:6:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"FacetAddressAndSelectorPosition","nameLocation":"1470:31:62","scope":41626,"visibility":"public"},{"id":41016,"nodeType":"StructDefinition","src":"1578:353:62","nodes":[],"canonicalName":"LibDiamond.DiamondStorage","members":[{"constant":false,"id":41006,"mutability":"mutable","name":"facetAddressAndSelectorPosition","nameLocation":"1748:31:62","nodeType":"VariableDeclaration","scope":41016,"src":"1697:82:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition)"},"typeName":{"id":41005,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":41002,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1705:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1697:50:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":41004,"nodeType":"UserDefinedTypeName","pathNode":{"id":41003,"name":"FacetAddressAndSelectorPosition","nameLocations":["1715:31:62"],"nodeType":"IdentifierPath","referencedDeclaration":41001,"src":"1715:31:62"},"referencedDeclaration":41001,"src":"1715:31:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"}}},"visibility":"internal"},{"constant":false,"id":41009,"mutability":"mutable","name":"selectors","nameLocation":"1798:9:62","nodeType":"VariableDeclaration","scope":41016,"src":"1789:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41007,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1789:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41008,"nodeType":"ArrayTypeName","src":"1789:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":41013,"mutability":"mutable","name":"supportedInterfaces","nameLocation":"1841:19:62","nodeType":"VariableDeclaration","scope":41016,"src":"1817:43:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"},"typeName":{"id":41012,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":41010,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1825:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1817:23:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":41011,"name":"bool","nodeType":"ElementaryTypeName","src":"1835:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":41015,"mutability":"mutable","name":"contractOwner","nameLocation":"1911:13:62","nodeType":"VariableDeclaration","scope":41016,"src":"1903:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41014,"name":"address","nodeType":"ElementaryTypeName","src":"1903:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"DiamondStorage","nameLocation":"1585:14:62","scope":41626,"visibility":"public"},{"id":41028,"nodeType":"FunctionDefinition","src":"1937:197:62","nodes":[],"body":{"id":41027,"nodeType":"Block","src":"2013:121:62","nodes":[],"statements":[{"assignments":[41023],"declarations":[{"constant":false,"id":41023,"mutability":"mutable","name":"position","nameLocation":"2031:8:62","nodeType":"VariableDeclaration","scope":41027,"src":"2023:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2023:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41025,"initialValue":{"id":41024,"name":"DIAMOND_STORAGE_POSITION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40917,"src":"2042:24:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2023:43:62"},{"AST":{"nodeType":"YulBlock","src":"2085:43:62","statements":[{"nodeType":"YulAssignment","src":"2099:19:62","value":{"name":"position","nodeType":"YulIdentifier","src":"2110:8:62"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2099:7:62"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":41020,"isOffset":false,"isSlot":true,"src":"2099:7:62","suffix":"slot","valueSize":1},{"declaration":41023,"isOffset":false,"isSlot":false,"src":"2110:8:62","valueSize":1}],"id":41026,"nodeType":"InlineAssembly","src":"2076:52:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"diamondStorage","nameLocation":"1946:14:62","parameters":{"id":41017,"nodeType":"ParameterList","parameters":[],"src":"1960:2:62"},"returnParameters":{"id":41021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41020,"mutability":"mutable","name":"ds","nameLocation":"2009:2:62","nodeType":"VariableDeclaration","scope":41028,"src":"1986:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41019,"nodeType":"UserDefinedTypeName","pathNode":{"id":41018,"name":"DiamondStorage","nameLocations":["1986:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"1986:14:62"},"referencedDeclaration":41016,"src":"1986:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"src":"1985:27:62"},"scope":41626,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41046,"nodeType":"FunctionDefinition","src":"2140:153:62","nodes":[],"body":{"id":41045,"nodeType":"Block","src":"2194:99:62","nodes":[],"statements":[{"assignments":[41035],"declarations":[{"constant":false,"id":41035,"mutability":"mutable","name":"ds","nameLocation":"2227:2:62","nodeType":"VariableDeclaration","scope":41045,"src":"2204:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41034,"nodeType":"UserDefinedTypeName","pathNode":{"id":41033,"name":"DiamondStorage","nameLocations":["2204:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"2204:14:62"},"referencedDeclaration":41016,"src":"2204:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41038,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41036,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41028,"src":"2232:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2232:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2204:44:62"},{"expression":{"id":41043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41039,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41035,"src":"2258:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2261:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41015,"src":"2258:16:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41042,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41030,"src":"2277:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2258:28:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41044,"nodeType":"ExpressionStatement","src":"2258:28:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setContractOwner","nameLocation":"2149:16:62","parameters":{"id":41031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41030,"mutability":"mutable","name":"_newOwner","nameLocation":"2174:9:62","nodeType":"VariableDeclaration","scope":41046,"src":"2166:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41029,"name":"address","nodeType":"ElementaryTypeName","src":"2166:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2165:19:62"},"returnParameters":{"id":41032,"nodeType":"ParameterList","parameters":[],"src":"2194:0:62"},"scope":41626,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41058,"nodeType":"FunctionDefinition","src":"2299:136:62","nodes":[],"body":{"id":41057,"nodeType":"Block","src":"2371:64:62","nodes":[],"statements":[{"expression":{"id":41055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41051,"name":"contractOwner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41049,"src":"2381:14:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":41052,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41028,"src":"2398:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2415:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41015,"src":"2398:30:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2381:47:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41056,"nodeType":"ExpressionStatement","src":"2381:47:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contractOwner","nameLocation":"2308:13:62","parameters":{"id":41047,"nodeType":"ParameterList","parameters":[],"src":"2321:2:62"},"returnParameters":{"id":41050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41049,"mutability":"mutable","name":"contractOwner_","nameLocation":"2355:14:62","nodeType":"VariableDeclaration","scope":41058,"src":"2347:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41048,"name":"address","nodeType":"ElementaryTypeName","src":"2347:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2346:24:62"},"scope":41626,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41073,"nodeType":"ModifierDefinition","src":"2441:140:62","nodes":[],"body":{"id":41072,"nodeType":"Block","src":"2462:119:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41060,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2476:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2480:6:62","memberName":"sender","nodeType":"MemberAccess","src":"2476:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":41062,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41028,"src":"2490:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2490:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2507:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41015,"src":"2490:30:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2476:44:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41070,"nodeType":"IfStatement","src":"2472:92:62","trueBody":{"id":41069,"nodeType":"Block","src":"2522:42:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":41066,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40919,"src":"2543:8:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":41067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2543:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41068,"nodeType":"RevertStatement","src":"2536:17:62"}]}},{"id":41071,"nodeType":"PlaceholderStatement","src":"2573:1:62"}]},"name":"onlyOwner","nameLocation":"2450:9:62","parameters":{"id":41059,"nodeType":"ParameterList","parameters":[],"src":"2459:2:62"},"virtual":false,"visibility":"internal"},{"id":41088,"nodeType":"FunctionDefinition","src":"2587:156:62","nodes":[],"body":{"id":41087,"nodeType":"Block","src":"2635:108:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41076,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2649:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2653:6:62","memberName":"sender","nodeType":"MemberAccess","src":"2649:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":41078,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41028,"src":"2663:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2680:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41015,"src":"2663:30:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2649:44:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41086,"nodeType":"IfStatement","src":"2645:92:62","trueBody":{"id":41085,"nodeType":"Block","src":"2695:42:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":41082,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40919,"src":"2716:8:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":41083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2716:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41084,"nodeType":"RevertStatement","src":"2709:17:62"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"enforceIsContractOwner","nameLocation":"2596:22:62","parameters":{"id":41074,"nodeType":"ParameterList","parameters":[],"src":"2618:2:62"},"returnParameters":{"id":41075,"nodeType":"ParameterList","parameters":[],"src":"2635:0:62"},"scope":41626,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41206,"nodeType":"FunctionDefinition","src":"2749:1291:62","nodes":[],"body":{"id":41205,"nodeType":"Block","src":"2857:1183:62","nodes":[],"statements":[{"assignments":[41100],"declarations":[{"constant":false,"id":41100,"mutability":"mutable","name":"length","nameLocation":"2875:6:62","nodeType":"VariableDeclaration","scope":41205,"src":"2867:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41099,"name":"uint256","nodeType":"ElementaryTypeName","src":"2867:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41103,"initialValue":{"expression":{"id":41101,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41092,"src":"2884:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2896:6:62","memberName":"length","nodeType":"MemberAccess","src":"2884:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2867:35:62"},{"body":{"id":41192,"nodeType":"Block","src":"2960:937:62","statements":[{"assignments":[41114],"declarations":[{"constant":false,"id":41114,"mutability":"mutable","name":"functionSelectors","nameLocation":"2990:17:62","nodeType":"VariableDeclaration","scope":41192,"src":"2974:33:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41112,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2974:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41113,"nodeType":"ArrayTypeName","src":"2974:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"id":41119,"initialValue":{"expression":{"baseExpression":{"id":41115,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41092,"src":"3010:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41117,"indexExpression":{"id":41116,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41105,"src":"3022:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3010:23:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":41118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3034:17:62","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40158,"src":"3010:41:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2974:77:62"},{"assignments":[41121],"declarations":[{"constant":false,"id":41121,"mutability":"mutable","name":"facetAddress","nameLocation":"3073:12:62","nodeType":"VariableDeclaration","scope":41192,"src":"3065:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41120,"name":"address","nodeType":"ElementaryTypeName","src":"3065:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":41126,"initialValue":{"expression":{"baseExpression":{"id":41122,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41092,"src":"3088:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41124,"indexExpression":{"id":41123,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41105,"src":"3100:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3088:23:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":41125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3112:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40152,"src":"3088:36:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3065:59:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41127,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41114,"src":"3142:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3160:6:62","memberName":"length","nodeType":"MemberAccess","src":"3142:24:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":41129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3170:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3142:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41136,"nodeType":"IfStatement","src":"3138:122:62","trueBody":{"id":41135,"nodeType":"Block","src":"3173:87:62","statements":[{"errorCall":{"arguments":[{"id":41132,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"3232:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41131,"name":"NoSelectorsProvidedForFacetForCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40934,"src":"3198:33:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":41133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3198:47:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41134,"nodeType":"RevertStatement","src":"3191:54:62"}]}},{"assignments":[41141],"declarations":[{"constant":false,"id":41141,"mutability":"mutable","name":"action","nameLocation":"3300:6:62","nodeType":"VariableDeclaration","scope":41192,"src":"3273:33:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":41140,"nodeType":"UserDefinedTypeName","pathNode":{"id":41139,"name":"IDiamondCut.FacetCutAction","nameLocations":["3273:11:62","3285:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":40150,"src":"3273:26:62"},"referencedDeclaration":40150,"src":"3273:26:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"}],"id":41146,"initialValue":{"expression":{"baseExpression":{"id":41142,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41092,"src":"3309:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41144,"indexExpression":{"id":41143,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41105,"src":"3321:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3309:23:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":41145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3333:6:62","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":40155,"src":"3309:30:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"VariableDeclarationStatement","src":"3273:66:62"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"id":41151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41147,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41141,"src":"3357:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":41148,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"3367:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":41149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3376:14:62","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"3367:23:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":41150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3391:3:62","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"3367:27:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"src":"3357:37:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"id":41162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41158,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41141,"src":"3484:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":41159,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"3494:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":41160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3503:14:62","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"3494:23:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":41161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3518:7:62","memberName":"Replace","nodeType":"MemberAccess","referencedDeclaration":40148,"src":"3494:31:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"src":"3484:41:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"id":41173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41169,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41141,"src":"3619:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":41170,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"3629:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":41171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3638:14:62","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"3629:23:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":41172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3653:6:62","memberName":"Remove","nodeType":"MemberAccess","referencedDeclaration":40149,"src":"3629:30:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"src":"3619:40:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41184,"nodeType":"Block","src":"3748:71:62","statements":[{"errorCall":{"arguments":[{"id":41181,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41141,"src":"3797:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}],"id":41180,"name":"IncorrectFacetCutAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40930,"src":"3773:23:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_FacetCutAction_$40150_$returns$__$","typeString":"function (enum IDiamond.FacetCutAction) pure"}},"id":41182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:31:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41183,"nodeType":"RevertStatement","src":"3766:38:62"}]},"id":41185,"nodeType":"IfStatement","src":"3615:204:62","trueBody":{"id":41179,"nodeType":"Block","src":"3661:81:62","statements":[{"expression":{"arguments":[{"id":41175,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"3695:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41176,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41114,"src":"3709:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41174,"name":"removeFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41555,"src":"3679:15:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":41177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3679:48:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41178,"nodeType":"ExpressionStatement","src":"3679:48:62"}]}},"id":41186,"nodeType":"IfStatement","src":"3480:339:62","trueBody":{"id":41168,"nodeType":"Block","src":"3527:82:62","statements":[{"expression":{"arguments":[{"id":41164,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"3562:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41165,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41114,"src":"3576:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41163,"name":"replaceFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41417,"src":"3545:16:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":41166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3545:49:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41167,"nodeType":"ExpressionStatement","src":"3545:49:62"}]}},"id":41187,"nodeType":"IfStatement","src":"3353:466:62","trueBody":{"id":41157,"nodeType":"Block","src":"3396:78:62","statements":[{"expression":{"arguments":[{"id":41153,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"3427:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41154,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41114,"src":"3441:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41152,"name":"addFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41312,"src":"3414:12:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":41155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3414:45:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41156,"nodeType":"ExpressionStatement","src":"3414:45:62"}]}},{"id":41191,"nodeType":"UncheckedBlock","src":"3832:55:62","statements":[{"expression":{"id":41189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3860:12:62","subExpression":{"id":41188,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41105,"src":"3862:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41190,"nodeType":"ExpressionStatement","src":"3860:12:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41107,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41105,"src":"2937:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41108,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41100,"src":"2950:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2937:19:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41193,"initializationExpression":{"assignments":[41105],"declarations":[{"constant":false,"id":41105,"mutability":"mutable","name":"facetIndex","nameLocation":"2925:10:62","nodeType":"VariableDeclaration","scope":41193,"src":"2917:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41104,"name":"uint256","nodeType":"ElementaryTypeName","src":"2917:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41106,"nodeType":"VariableDeclarationStatement","src":"2917:18:62"},"nodeType":"ForStatement","src":"2912:985:62"},{"eventCall":{"arguments":[{"id":41195,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41092,"src":"3936:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":41196,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41094,"src":"3956:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41197,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41096,"src":"3974:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41194,"name":"DiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40996,"src":"3911:10:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":41198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3923:11:62","3949:5:62","3963:9:62"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"3911:74:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41199,"nodeType":"EmitStatement","src":"3906:79:62"},{"expression":{"arguments":[{"id":41201,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41094,"src":"4016:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41202,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41096,"src":"4023:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41200,"name":"initializeDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41603,"src":"3995:20:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":41203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:38:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41204,"nodeType":"ExpressionStatement","src":"3995:38:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"2758:10:62","parameters":{"id":41097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41092,"mutability":"mutable","name":"_diamondCut","nameLocation":"2796:11:62","nodeType":"VariableDeclaration","scope":41206,"src":"2769:38:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":41090,"nodeType":"UserDefinedTypeName","pathNode":{"id":41089,"name":"IDiamond.FacetCut","nameLocations":["2769:8:62","2778:8:62"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"2769:17:62"},"referencedDeclaration":40159,"src":"2769:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":41091,"nodeType":"ArrayTypeName","src":"2769:19:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":41094,"mutability":"mutable","name":"_init","nameLocation":"2817:5:62","nodeType":"VariableDeclaration","scope":41206,"src":"2809:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41093,"name":"address","nodeType":"ElementaryTypeName","src":"2809:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41096,"mutability":"mutable","name":"_calldata","nameLocation":"2837:9:62","nodeType":"VariableDeclaration","scope":41206,"src":"2824:22:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41095,"name":"bytes","nodeType":"ElementaryTypeName","src":"2824:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2768:79:62"},"returnParameters":{"id":41098,"nodeType":"ParameterList","parameters":[],"src":"2857:0:62"},"scope":41626,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41312,"nodeType":"FunctionDefinition","src":"4046:1158:62","nodes":[],"body":{"id":41311,"nodeType":"Block","src":"4136:1068:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41214,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41208,"src":"4150:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4175:1:62","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":41216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4167:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41215,"name":"address","nodeType":"ElementaryTypeName","src":"4167:7:62","typeDescriptions":{}}},"id":41218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4167:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4150:27:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41225,"nodeType":"IfStatement","src":"4146:116:62","trueBody":{"id":41224,"nodeType":"Block","src":"4179:83:62","statements":[{"errorCall":{"arguments":[{"id":41221,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41211,"src":"4232:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41220,"name":"CannotAddSelectorsToZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40943,"src":"4200:31:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes4[] memory) pure"}},"id":41222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4200:51:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41223,"nodeType":"RevertStatement","src":"4193:58:62"}]}},{"assignments":[41228],"declarations":[{"constant":false,"id":41228,"mutability":"mutable","name":"ds","nameLocation":"4294:2:62","nodeType":"VariableDeclaration","scope":41311,"src":"4271:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41227,"nodeType":"UserDefinedTypeName","pathNode":{"id":41226,"name":"DiamondStorage","nameLocations":["4271:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"4271:14:62"},"referencedDeclaration":41016,"src":"4271:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41229,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41028,"src":"4299:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4299:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4271:44:62"},{"assignments":[41233],"declarations":[{"constant":false,"id":41233,"mutability":"mutable","name":"selectorCount","nameLocation":"4332:13:62","nodeType":"VariableDeclaration","scope":41311,"src":"4325:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":41232,"name":"uint16","nodeType":"ElementaryTypeName","src":"4325:6:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":41240,"initialValue":{"arguments":[{"expression":{"expression":{"id":41236,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41228,"src":"4355:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4358:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"4355:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4368:6:62","memberName":"length","nodeType":"MemberAccess","src":"4355:19:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4348:6:62","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":41234,"name":"uint16","nodeType":"ElementaryTypeName","src":"4348:6:62","typeDescriptions":{}}},"id":41239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4348:27:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4325:50:62"},{"expression":{"arguments":[{"id":41242,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41208,"src":"4408:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"6469616d6f6e644375743a2041646420666163657420686173206e6f20636f6465","id":41243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4423:35:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8d835faff0ba0e4baa5f22169088fa1f85cf7197f0ff5b9c9e823f3d33c8ad7","typeString":"literal_string \"diamondCut: Add facet has no code\""},"value":"diamondCut: Add facet has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_d8d835faff0ba0e4baa5f22169088fa1f85cf7197f0ff5b9c9e823f3d33c8ad7","typeString":"literal_string \"diamondCut: Add facet has no code\""}],"id":41241,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41625,"src":"4385:22:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":41244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:74:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41245,"nodeType":"ExpressionStatement","src":"4385:74:62"},{"assignments":[41247],"declarations":[{"constant":false,"id":41247,"mutability":"mutable","name":"length","nameLocation":"4477:6:62","nodeType":"VariableDeclaration","scope":41311,"src":"4469:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41246,"name":"uint256","nodeType":"ElementaryTypeName","src":"4469:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41250,"initialValue":{"expression":{"id":41248,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41211,"src":"4486:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4505:6:62","memberName":"length","nodeType":"MemberAccess","src":"4486:25:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4469:42:62"},{"body":{"id":41309,"nodeType":"Block","src":"4575:623:62","statements":[{"assignments":[41258],"declarations":[{"constant":false,"id":41258,"mutability":"mutable","name":"selector","nameLocation":"4596:8:62","nodeType":"VariableDeclaration","scope":41309,"src":"4589:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41257,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4589:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41262,"initialValue":{"baseExpression":{"id":41259,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41211,"src":"4607:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41261,"indexExpression":{"id":41260,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41252,"src":"4626:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4607:33:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4589:51:62"},{"assignments":[41264],"declarations":[{"constant":false,"id":41264,"mutability":"mutable","name":"oldFacetAddress","nameLocation":"4662:15:62","nodeType":"VariableDeclaration","scope":41309,"src":"4654:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41263,"name":"address","nodeType":"ElementaryTypeName","src":"4654:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":41270,"initialValue":{"expression":{"baseExpression":{"expression":{"id":41265,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41228,"src":"4680:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4683:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"4680:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41268,"indexExpression":{"id":41267,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41258,"src":"4715:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4680:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4725:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"4680:57:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4654:83:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41271,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41264,"src":"4755:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":41274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4782:1:62","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":41273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4774:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41272,"name":"address","nodeType":"ElementaryTypeName","src":"4774:7:62","typeDescriptions":{}}},"id":41275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4774:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4755:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41282,"nodeType":"IfStatement","src":"4751:128:62","trueBody":{"id":41281,"nodeType":"Block","src":"4786:93:62","statements":[{"errorCall":{"arguments":[{"id":41278,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41258,"src":"4855:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41277,"name":"CannotAddFunctionToDiamondThatAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40938,"src":"4811:43:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:53:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41280,"nodeType":"RevertStatement","src":"4804:60:62"}]}},{"expression":{"id":41292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41283,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41228,"src":"4892:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41286,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"4892:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41287,"indexExpression":{"id":41285,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41258,"src":"4927:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4892:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":41289,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41208,"src":"4988:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41290,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41233,"src":"5019:13:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":41288,"name":"FacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41001,"src":"4939:31:62","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_ptr_$","typeString":"type(struct LibDiamond.FacetAddressAndSelectorPosition storage pointer)"}},"id":41291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4939:107:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"src":"4892:154:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41293,"nodeType":"ExpressionStatement","src":"4892:154:62"},{"expression":{"arguments":[{"id":41299,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41258,"src":"5078:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"expression":{"id":41294,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41228,"src":"5060:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5063:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"5060:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5073:4:62","memberName":"push","nodeType":"MemberAccess","src":"5060:17:62","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$_t_bytes4_$returns$__$attached_to$_t_array$_t_bytes4_$dyn_storage_ptr_$","typeString":"function (bytes4[] storage pointer,bytes4)"}},"id":41300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5060:27:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41301,"nodeType":"ExpressionStatement","src":"5060:27:62"},{"expression":{"id":41303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5101:15:62","subExpression":{"id":41302,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41233,"src":"5103:13:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":41304,"nodeType":"ExpressionStatement","src":"5101:15:62"},{"id":41308,"nodeType":"UncheckedBlock","src":"5130:58:62","statements":[{"expression":{"id":41306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5158:15:62","subExpression":{"id":41305,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41252,"src":"5160:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41307,"nodeType":"ExpressionStatement","src":"5158:15:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41254,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41252,"src":"4549:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41255,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41247,"src":"4565:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4549:22:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41310,"initializationExpression":{"assignments":[41252],"declarations":[{"constant":false,"id":41252,"mutability":"mutable","name":"selectorIndex","nameLocation":"4534:13:62","nodeType":"VariableDeclaration","scope":41310,"src":"4526:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41251,"name":"uint256","nodeType":"ElementaryTypeName","src":"4526:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41253,"nodeType":"VariableDeclarationStatement","src":"4526:21:62"},"nodeType":"ForStatement","src":"4521:677:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"addFunctions","nameLocation":"4055:12:62","parameters":{"id":41212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41208,"mutability":"mutable","name":"_facetAddress","nameLocation":"4076:13:62","nodeType":"VariableDeclaration","scope":41312,"src":"4068:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41207,"name":"address","nodeType":"ElementaryTypeName","src":"4068:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41211,"mutability":"mutable","name":"_functionSelectors","nameLocation":"4107:18:62","nodeType":"VariableDeclaration","scope":41312,"src":"4091:34:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41209,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4091:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41210,"nodeType":"ArrayTypeName","src":"4091:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"4067:59:62"},"returnParameters":{"id":41213,"nodeType":"ParameterList","parameters":[],"src":"4136:0:62"},"scope":41626,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41417,"nodeType":"FunctionDefinition","src":"5210:1396:62","nodes":[],"body":{"id":41416,"nodeType":"Block","src":"5304:1302:62","nodes":[],"statements":[{"assignments":[41322],"declarations":[{"constant":false,"id":41322,"mutability":"mutable","name":"ds","nameLocation":"5337:2:62","nodeType":"VariableDeclaration","scope":41416,"src":"5314:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41321,"nodeType":"UserDefinedTypeName","pathNode":{"id":41320,"name":"DiamondStorage","nameLocations":["5314:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"5314:14:62"},"referencedDeclaration":41016,"src":"5314:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41325,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41323,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41028,"src":"5342:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5342:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5314:44:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41326,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"5372:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5397:1:62","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":41328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41327,"name":"address","nodeType":"ElementaryTypeName","src":"5389:7:62","typeDescriptions":{}}},"id":41330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5372:27:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41337,"nodeType":"IfStatement","src":"5368:131:62","trueBody":{"id":41336,"nodeType":"Block","src":"5401:98:62","statements":[{"errorCall":{"arguments":[{"id":41333,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41317,"src":"5469:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41332,"name":"CannotReplaceFunctionsFromFacetWithZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"5422:46:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes4[] memory) pure"}},"id":41334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5422:66:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41335,"nodeType":"RevertStatement","src":"5415:73:62"}]}},{"expression":{"arguments":[{"id":41339,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"5531:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"4c69624469616d6f6e644375743a205265706c61636520666163657420686173206e6f20636f6465","id":41340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5546:42:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_de246aa8052f872d61bcd9cfb620b8012f8bc6e512400178c0e967944dadacfe","typeString":"literal_string \"LibDiamondCut: Replace facet has no code\""},"value":"LibDiamondCut: Replace facet has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_de246aa8052f872d61bcd9cfb620b8012f8bc6e512400178c0e967944dadacfe","typeString":"literal_string \"LibDiamondCut: Replace facet has no code\""}],"id":41338,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41625,"src":"5508:22:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":41341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5508:81:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41342,"nodeType":"ExpressionStatement","src":"5508:81:62"},{"assignments":[41344],"declarations":[{"constant":false,"id":41344,"mutability":"mutable","name":"fl","nameLocation":"5607:2:62","nodeType":"VariableDeclaration","scope":41416,"src":"5599:10:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41343,"name":"uint256","nodeType":"ElementaryTypeName","src":"5599:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41347,"initialValue":{"expression":{"id":41345,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41317,"src":"5612:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5631:6:62","memberName":"length","nodeType":"MemberAccess","src":"5612:25:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5599:38:62"},{"body":{"id":41414,"nodeType":"Block","src":"5697:903:62","statements":[{"assignments":[41355],"declarations":[{"constant":false,"id":41355,"mutability":"mutable","name":"selector","nameLocation":"5718:8:62","nodeType":"VariableDeclaration","scope":41414,"src":"5711:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41354,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5711:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41359,"initialValue":{"baseExpression":{"id":41356,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41317,"src":"5729:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41358,"indexExpression":{"id":41357,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41349,"src":"5748:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5729:33:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"5711:51:62"},{"assignments":[41361],"declarations":[{"constant":false,"id":41361,"mutability":"mutable","name":"oldFacetAddress","nameLocation":"5784:15:62","nodeType":"VariableDeclaration","scope":41414,"src":"5776:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41360,"name":"address","nodeType":"ElementaryTypeName","src":"5776:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":41367,"initialValue":{"expression":{"baseExpression":{"expression":{"id":41362,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41322,"src":"5802:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5805:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"5802:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41365,"indexExpression":{"id":41364,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41355,"src":"5837:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5802:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5847:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"5802:57:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5776:83:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41368,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41361,"src":"5984:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":41371,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6011:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_LibDiamond_$41626","typeString":"library LibDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibDiamond_$41626","typeString":"library LibDiamond"}],"id":41370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6003:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41369,"name":"address","nodeType":"ElementaryTypeName","src":"6003:7:62","typeDescriptions":{}}},"id":41372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5984:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41379,"nodeType":"IfStatement","src":"5980:118:62","trueBody":{"id":41378,"nodeType":"Block","src":"6018:80:62","statements":[{"errorCall":{"arguments":[{"id":41375,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41355,"src":"6074:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41374,"name":"CannotReplaceImmutableFunction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40966,"src":"6043:30:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6043:40:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41377,"nodeType":"RevertStatement","src":"6036:47:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41380,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41361,"src":"6115:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":41381,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"6134:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6115:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41388,"nodeType":"IfStatement","src":"6111:144:62","trueBody":{"id":41387,"nodeType":"Block","src":"6149:106:62","statements":[{"errorCall":{"arguments":[{"id":41384,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41355,"src":"6231:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41383,"name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40970,"src":"6174:56:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:66:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41386,"nodeType":"RevertStatement","src":"6167:73:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41389,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41361,"src":"6272:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6299:1:62","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":41391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6291:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41390,"name":"address","nodeType":"ElementaryTypeName","src":"6291:7:62","typeDescriptions":{}}},"id":41393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6291:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6272:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41400,"nodeType":"IfStatement","src":"6268:123:62","trueBody":{"id":41399,"nodeType":"Block","src":"6303:88:62","statements":[{"errorCall":{"arguments":[{"id":41396,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41355,"src":"6367:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41395,"name":"CannotReplaceFunctionThatDoesNotExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40974,"src":"6328:38:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6328:48:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41398,"nodeType":"RevertStatement","src":"6321:55:62"}]}},{"expression":{"id":41408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":41401,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41322,"src":"6445:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6448:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"6445:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41405,"indexExpression":{"id":41403,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41355,"src":"6480:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6445:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6490:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"6445:57:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41407,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"6505:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6445:73:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41409,"nodeType":"ExpressionStatement","src":"6445:73:62"},{"id":41413,"nodeType":"UncheckedBlock","src":"6532:58:62","statements":[{"expression":{"id":41411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6560:15:62","subExpression":{"id":41410,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41349,"src":"6562:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41412,"nodeType":"ExpressionStatement","src":"6560:15:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41351,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41349,"src":"5675:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41352,"name":"fl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41344,"src":"5691:2:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5675:18:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41415,"initializationExpression":{"assignments":[41349],"declarations":[{"constant":false,"id":41349,"mutability":"mutable","name":"selectorIndex","nameLocation":"5660:13:62","nodeType":"VariableDeclaration","scope":41415,"src":"5652:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41348,"name":"uint256","nodeType":"ElementaryTypeName","src":"5652:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41350,"nodeType":"VariableDeclarationStatement","src":"5652:21:62"},"nodeType":"ForStatement","src":"5647:953:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"replaceFunctions","nameLocation":"5219:16:62","parameters":{"id":41318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41314,"mutability":"mutable","name":"_facetAddress","nameLocation":"5244:13:62","nodeType":"VariableDeclaration","scope":41417,"src":"5236:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41313,"name":"address","nodeType":"ElementaryTypeName","src":"5236:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41317,"mutability":"mutable","name":"_functionSelectors","nameLocation":"5275:18:62","nodeType":"VariableDeclaration","scope":41417,"src":"5259:34:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41315,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5259:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41316,"nodeType":"ArrayTypeName","src":"5259:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"5235:59:62"},"returnParameters":{"id":41319,"nodeType":"ParameterList","parameters":[],"src":"5304:0:62"},"scope":41626,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41555,"nodeType":"FunctionDefinition","src":"6612:1796:62","nodes":[],"body":{"id":41554,"nodeType":"Block","src":"6705:1703:62","nodes":[],"statements":[{"assignments":[41427],"declarations":[{"constant":false,"id":41427,"mutability":"mutable","name":"ds","nameLocation":"6738:2:62","nodeType":"VariableDeclaration","scope":41554,"src":"6715:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41426,"nodeType":"UserDefinedTypeName","pathNode":{"id":41425,"name":"DiamondStorage","nameLocations":["6715:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"6715:14:62"},"referencedDeclaration":41016,"src":"6715:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41430,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41428,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41028,"src":"6743:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6743:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6715:44:62"},{"assignments":[41432],"declarations":[{"constant":false,"id":41432,"mutability":"mutable","name":"selectorCount","nameLocation":"6777:13:62","nodeType":"VariableDeclaration","scope":41554,"src":"6769:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41431,"name":"uint256","nodeType":"ElementaryTypeName","src":"6769:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41436,"initialValue":{"expression":{"expression":{"id":41433,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41427,"src":"6793:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6796:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"6793:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6806:6:62","memberName":"length","nodeType":"MemberAccess","src":"6793:19:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6769:43:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41437,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41419,"src":"6826:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":41440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6851:1:62","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":41439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6843:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41438,"name":"address","nodeType":"ElementaryTypeName","src":"6843:7:62","typeDescriptions":{}}},"id":41441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6843:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6826:27:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41448,"nodeType":"IfStatement","src":"6822:115:62","trueBody":{"id":41447,"nodeType":"Block","src":"6855:82:62","statements":[{"errorCall":{"arguments":[{"id":41444,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41419,"src":"6912:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41443,"name":"RemoveFacetAddressMustBeZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40978,"src":"6876:35:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":41445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6876:50:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41446,"nodeType":"RevertStatement","src":"6869:57:62"}]}},{"assignments":[41450],"declarations":[{"constant":false,"id":41450,"mutability":"mutable","name":"fl","nameLocation":"6954:2:62","nodeType":"VariableDeclaration","scope":41554,"src":"6946:10:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41449,"name":"uint256","nodeType":"ElementaryTypeName","src":"6946:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41453,"initialValue":{"expression":{"id":41451,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41422,"src":"6959:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6978:6:62","memberName":"length","nodeType":"MemberAccess","src":"6959:25:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6946:38:62"},{"body":{"id":41552,"nodeType":"Block","src":"7044:1358:62","statements":[{"assignments":[41461],"declarations":[{"constant":false,"id":41461,"mutability":"mutable","name":"selector","nameLocation":"7065:8:62","nodeType":"VariableDeclaration","scope":41552,"src":"7058:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41460,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7058:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41465,"initialValue":{"baseExpression":{"id":41462,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41422,"src":"7076:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41464,"indexExpression":{"id":41463,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41455,"src":"7095:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7076:33:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"7058:51:62"},{"assignments":[41468],"declarations":[{"constant":false,"id":41468,"mutability":"mutable","name":"oldFacetAddressAndSelectorPosition","nameLocation":"7162:34:62","nodeType":"VariableDeclaration","scope":41552,"src":"7123:73:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"},"typeName":{"id":41467,"nodeType":"UserDefinedTypeName","pathNode":{"id":41466,"name":"FacetAddressAndSelectorPosition","nameLocations":["7123:31:62"],"nodeType":"IdentifierPath","referencedDeclaration":41001,"src":"7123:31:62"},"referencedDeclaration":41001,"src":"7123:31:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"}},"visibility":"internal"}],"id":41473,"initialValue":{"baseExpression":{"expression":{"id":41469,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41427,"src":"7199:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7219:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"7199:51:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41472,"indexExpression":{"id":41471,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41461,"src":"7251:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7199:61:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7123:137:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41474,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41468,"src":"7278:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7313:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"7278:47:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7337:1:62","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":41477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7329:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41476,"name":"address","nodeType":"ElementaryTypeName","src":"7329:7:62","typeDescriptions":{}}},"id":41479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7329:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7278:61:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41486,"nodeType":"IfStatement","src":"7274:153:62","trueBody":{"id":41485,"nodeType":"Block","src":"7341:86:62","statements":[{"errorCall":{"arguments":[{"id":41482,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41461,"src":"7403:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41481,"name":"CannotRemoveFunctionThatDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40982,"src":"7366:36:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7366:46:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41484,"nodeType":"RevertStatement","src":"7359:53:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41487,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41468,"src":"7538:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7573:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"7538:47:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":41491,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7597:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_LibDiamond_$41626","typeString":"library LibDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibDiamond_$41626","typeString":"library LibDiamond"}],"id":41490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7589:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41489,"name":"address","nodeType":"ElementaryTypeName","src":"7589:7:62","typeDescriptions":{}}},"id":41492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7589:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7538:64:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41499,"nodeType":"IfStatement","src":"7534:149:62","trueBody":{"id":41498,"nodeType":"Block","src":"7604:79:62","statements":[{"errorCall":{"arguments":[{"id":41495,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41461,"src":"7659:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41494,"name":"CannotRemoveImmutableFunction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40986,"src":"7629:29:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7629:39:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41497,"nodeType":"RevertStatement","src":"7622:46:62"}]}},{"expression":{"id":41501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"7747:15:62","subExpression":{"id":41500,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41432,"src":"7749:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41502,"nodeType":"ExpressionStatement","src":"7747:15:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41503,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41468,"src":"7780:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7815:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41000,"src":"7780:51:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":41505,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41432,"src":"7835:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7780:68:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41534,"nodeType":"IfStatement","src":"7776:412:62","trueBody":{"id":41533,"nodeType":"Block","src":"7850:338:62","statements":[{"assignments":[41508],"declarations":[{"constant":false,"id":41508,"mutability":"mutable","name":"lastSelector","nameLocation":"7875:12:62","nodeType":"VariableDeclaration","scope":41533,"src":"7868:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41507,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7868:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41513,"initialValue":{"baseExpression":{"expression":{"id":41509,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41427,"src":"7890:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7893:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"7890:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41512,"indexExpression":{"id":41511,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41432,"src":"7903:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7890:27:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"7868:49:62"},{"expression":{"id":41521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41514,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41427,"src":"7935:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7938:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"7935:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41519,"indexExpression":{"expression":{"id":41516,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41468,"src":"7948:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7983:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41000,"src":"7948:51:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7935:65:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41520,"name":"lastSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41508,"src":"8003:12:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7935:80:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41522,"nodeType":"ExpressionStatement","src":"7935:80:62"},{"expression":{"id":41531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":41523,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41427,"src":"8033:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8036:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"8033:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41527,"indexExpression":{"id":41525,"name":"lastSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41508,"src":"8068:12:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8033:48:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8082:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41000,"src":"8033:65:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41529,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41468,"src":"8101:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8157:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41000,"src":"8101:72:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8033:140:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":41532,"nodeType":"ExpressionStatement","src":"8033:140:62"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":41535,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41427,"src":"8237:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8240:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41009,"src":"8237:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8250:3:62","memberName":"pop","nodeType":"MemberAccess","src":"8237:16:62","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes4_$dyn_storage_ptr_$","typeString":"function (bytes4[] storage pointer)"}},"id":41540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8237:18:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41541,"nodeType":"ExpressionStatement","src":"8237:18:62"},{"expression":{"id":41546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8269:51:62","subExpression":{"baseExpression":{"expression":{"id":41542,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41427,"src":"8276:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8279:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"8276:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41545,"indexExpression":{"id":41544,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41461,"src":"8311:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8276:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41547,"nodeType":"ExpressionStatement","src":"8269:51:62"},{"id":41551,"nodeType":"UncheckedBlock","src":"8334:58:62","statements":[{"expression":{"id":41549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8362:15:62","subExpression":{"id":41548,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41455,"src":"8364:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41550,"nodeType":"ExpressionStatement","src":"8362:15:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41457,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41455,"src":"7022:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41458,"name":"fl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41450,"src":"7038:2:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7022:18:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41553,"initializationExpression":{"assignments":[41455],"declarations":[{"constant":false,"id":41455,"mutability":"mutable","name":"selectorIndex","nameLocation":"7007:13:62","nodeType":"VariableDeclaration","scope":41553,"src":"6999:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41454,"name":"uint256","nodeType":"ElementaryTypeName","src":"6999:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41456,"nodeType":"VariableDeclarationStatement","src":"6999:21:62"},"nodeType":"ForStatement","src":"6994:1408:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeFunctions","nameLocation":"6621:15:62","parameters":{"id":41423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41419,"mutability":"mutable","name":"_facetAddress","nameLocation":"6645:13:62","nodeType":"VariableDeclaration","scope":41555,"src":"6637:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41418,"name":"address","nodeType":"ElementaryTypeName","src":"6637:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41422,"mutability":"mutable","name":"_functionSelectors","nameLocation":"6676:18:62","nodeType":"VariableDeclaration","scope":41555,"src":"6660:34:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41420,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6660:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41421,"nodeType":"ArrayTypeName","src":"6660:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"6636:59:62"},"returnParameters":{"id":41424,"nodeType":"ParameterList","parameters":[],"src":"6705:0:62"},"scope":41626,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41603,"nodeType":"FunctionDefinition","src":"8414:888:62","nodes":[],"body":{"id":41602,"nodeType":"Block","src":"8492:810:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41562,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"8506:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8523:1:62","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":41564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8515:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41563,"name":"address","nodeType":"ElementaryTypeName","src":"8515:7:62","typeDescriptions":{}}},"id":41566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8515:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8506:19:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41570,"nodeType":"IfStatement","src":"8502:56:62","trueBody":{"id":41569,"nodeType":"Block","src":"8527:31:62","statements":[{"functionReturnParameters":41561,"id":41568,"nodeType":"Return","src":"8541:7:62"}]}},{"expression":{"arguments":[{"id":41572,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"8590:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f6465","id":41573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8597:39:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_72db497a72f62bab0025d592feb672a31e8d1a2a1bfe9fa07cc3a061b7217c3c","typeString":"literal_string \"diamondCut: _init address has no code\""},"value":"diamondCut: _init address has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_72db497a72f62bab0025d592feb672a31e8d1a2a1bfe9fa07cc3a061b7217c3c","typeString":"literal_string \"diamondCut: _init address has no code\""}],"id":41571,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41625,"src":"8567:22:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":41574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8567:70:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41575,"nodeType":"ExpressionStatement","src":"8567:70:62"},{"assignments":[41577,41579],"declarations":[{"constant":false,"id":41577,"mutability":"mutable","name":"success","nameLocation":"8706:7:62","nodeType":"VariableDeclaration","scope":41602,"src":"8701:12:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41576,"name":"bool","nodeType":"ElementaryTypeName","src":"8701:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41579,"mutability":"mutable","name":"error","nameLocation":"8728:5:62","nodeType":"VariableDeclaration","scope":41602,"src":"8715:18:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41578,"name":"bytes","nodeType":"ElementaryTypeName","src":"8715:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":41584,"initialValue":{"arguments":[{"id":41582,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41559,"src":"8756:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":41580,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"8737:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8743:12:62","memberName":"delegatecall","nodeType":"MemberAccess","src":"8737:18:62","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":41583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8737:29:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"8700:66:62"},{"condition":{"id":41586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8826:8:62","subExpression":{"id":41585,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41577,"src":"8827:7:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41601,"nodeType":"IfStatement","src":"8822:474:62","trueBody":{"id":41600,"nodeType":"Block","src":"8836:460:62","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41587,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41579,"src":"8911:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":41588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8917:6:62","memberName":"length","nodeType":"MemberAccess","src":"8911:12:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8927:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8911:17:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41598,"nodeType":"Block","src":"9198:88:62","statements":[{"errorCall":{"arguments":[{"id":41594,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"9254:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41595,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41559,"src":"9261:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41593,"name":"InitializationFunctionReverted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40949,"src":"9223:30:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":41596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9223:48:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41597,"nodeType":"RevertStatement","src":"9216:55:62"}]},"id":41599,"nodeType":"IfStatement","src":"8907:379:62","trueBody":{"id":41592,"nodeType":"Block","src":"8930:262:62","statements":[{"AST":{"nodeType":"YulBlock","src":"9043:135:62","statements":[{"nodeType":"YulVariableDeclaration","src":"9065:35:62","value":{"arguments":[{"name":"error","nodeType":"YulIdentifier","src":"9094:5:62"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9088:5:62"},"nodeType":"YulFunctionCall","src":"9088:12:62"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9069:15:62","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9132:2:62","type":"","value":"32"},{"name":"error","nodeType":"YulIdentifier","src":"9136:5:62"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9128:3:62"},"nodeType":"YulFunctionCall","src":"9128:14:62"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9144:15:62"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9121:6:62"},"nodeType":"YulFunctionCall","src":"9121:39:62"},"nodeType":"YulExpressionStatement","src":"9121:39:62"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":41579,"isOffset":false,"isSlot":false,"src":"9094:5:62","valueSize":1},{"declaration":41579,"isOffset":false,"isSlot":false,"src":"9136:5:62","valueSize":1}],"id":41591,"nodeType":"InlineAssembly","src":"9034:144:62"}]}}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"initializeDiamondCut","nameLocation":"8423:20:62","parameters":{"id":41560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41557,"mutability":"mutable","name":"_init","nameLocation":"8452:5:62","nodeType":"VariableDeclaration","scope":41603,"src":"8444:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41556,"name":"address","nodeType":"ElementaryTypeName","src":"8444:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41559,"mutability":"mutable","name":"_calldata","nameLocation":"8472:9:62","nodeType":"VariableDeclaration","scope":41603,"src":"8459:22:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41558,"name":"bytes","nodeType":"ElementaryTypeName","src":"8459:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8443:39:62"},"returnParameters":{"id":41561,"nodeType":"ParameterList","parameters":[],"src":"8492:0:62"},"scope":41626,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41625,"nodeType":"FunctionDefinition","src":"9308:320:62","nodes":[],"body":{"id":41624,"nodeType":"Block","src":"9402:226:62","nodes":[],"statements":[{"assignments":[41611],"declarations":[{"constant":false,"id":41611,"mutability":"mutable","name":"contractSize","nameLocation":"9420:12:62","nodeType":"VariableDeclaration","scope":41624,"src":"9412:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41610,"name":"uint256","nodeType":"ElementaryTypeName","src":"9412:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41612,"nodeType":"VariableDeclarationStatement","src":"9412:20:62"},{"AST":{"nodeType":"YulBlock","src":"9451:62:62","statements":[{"nodeType":"YulAssignment","src":"9465:38:62","value":{"arguments":[{"name":"_contract","nodeType":"YulIdentifier","src":"9493:9:62"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"9481:11:62"},"nodeType":"YulFunctionCall","src":"9481:22:62"},"variableNames":[{"name":"contractSize","nodeType":"YulIdentifier","src":"9465:12:62"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":41605,"isOffset":false,"isSlot":false,"src":"9493:9:62","valueSize":1},{"declaration":41611,"isOffset":false,"isSlot":false,"src":"9465:12:62","valueSize":1}],"id":41613,"nodeType":"InlineAssembly","src":"9442:71:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41614,"name":"contractSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41611,"src":"9526:12:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":41615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9542:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9526:17:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41623,"nodeType":"IfStatement","src":"9522:100:62","trueBody":{"id":41622,"nodeType":"Block","src":"9545:77:62","statements":[{"errorCall":{"arguments":[{"id":41618,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41605,"src":"9586:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41619,"name":"_errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41607,"src":"9597:13:62","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":41617,"name":"NoBytecodeAtAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40925,"src":"9566:19:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) pure"}},"id":41620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9566:45:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41621,"nodeType":"RevertStatement","src":"9559:52:62"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"enforceHasContractCode","nameLocation":"9317:22:62","parameters":{"id":41608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41605,"mutability":"mutable","name":"_contract","nameLocation":"9348:9:62","nodeType":"VariableDeclaration","scope":41625,"src":"9340:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41604,"name":"address","nodeType":"ElementaryTypeName","src":"9340:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41607,"mutability":"mutable","name":"_errorMessage","nameLocation":"9373:13:62","nodeType":"VariableDeclaration","scope":41625,"src":"9359:27:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41606,"name":"string","nodeType":"ElementaryTypeName","src":"9359:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9339:48:62"},"returnParameters":{"id":41609,"nodeType":"ParameterList","parameters":[],"src":"9402:0:62"},"scope":41626,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDiamond","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[41626],"name":"LibDiamond","nameLocation":"192:10:62","scope":41627,"usedErrors":[40919,40925,40930,40934,40938,40943,40949,40951,40957,40962,40966,40970,40974,40978,40982,40986]}],"license":"MIT OR Apache-2.0"},"id":62} \ No newline at end of file diff --git a/.out/LibGateway.sol/LibGateway.json b/.out/LibGateway.sol/LibGateway.json index 0e25a8654..4eb50a30a 100644 --- a/.out/LibGateway.sol/LibGateway.json +++ b/.out/LibGateway.sol/LibGateway.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"MembershipUpdated","inputs":[{"name":"","type":"tuple","indexed":false,"internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"anonymous":false},{"type":"event","name":"NewBottomUpMsgBatch","inputs":[{"name":"epoch","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"batch","type":"tuple","indexed":false,"internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"anonymous":false},{"type":"event","name":"NewTopDownMessage","inputs":[{"name":"subnet","type":"address","indexed":true,"internalType":"address"},{"name":"message","type":"tuple","indexed":false,"internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220eaae80ed3eb90d5c6bffe222fb115c9c48ad94a50b3e12be6a3172100a58c3cb64736f6c63430008130033","sourceMap":"1029:16632:63:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220eaae80ed3eb90d5c6bffe222fb115c9c48ad94a50b3e12be6a3172100a58c3cb64736f6c63430008130033","sourceMap":"1029:16632:63:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"MembershipUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"NewBottomUpMsgBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"indexed\":false,\"internalType\":\"struct CrossMsg\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"NewTopDownMessage\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"NewBottomUpMsgBatch(uint256,((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"details\":\"event emitted when there is a new bottom-up message batch to be signed.\"},\"NewTopDownMessage(address,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"details\":\"subnet refers to the next \\\"down\\\" subnet that the `CrossMsg.message.to` should be forwarded to.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGateway.sol\":\"LibGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}],"indexed":false}],"type":"event","name":"MembershipUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":true},{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"indexed":false}],"type":"event","name":"NewBottomUpMsgBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"subnet","type":"address","indexed":true},{"internalType":"struct CrossMsg","name":"message","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}],"indexed":false}],"type":"event","name":"NewTopDownMessage","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGateway.sol":"LibGateway"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGateway.sol","id":42945,"exportedSymbols":{"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"CrossMsg":[49974],"CrossMsgHelper":[40781],"GatewayActorStorage":[43068],"IPCMsgType":[37364],"InvalidActorAddress":[37402],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"LibGateway":[42944],"LibGatewayActorStorage":[43079],"MaxMsgsPerBatchExceeded":[37382],"Membership":[50218],"NotRegisteredSubnet":[37482],"OldConfigurationNumber":[37492],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorGetterFacet":[50887],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:17616:63","nodes":[{"id":41684,"nodeType":"PragmaDirective","src":"46:23:63","nodes":[],"literals":["solidity","0.8",".19"]},{"id":41686,"nodeType":"ImportDirective","src":"71:51:63","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":41685,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"79:10:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41689,"nodeType":"ImportDirective","src":"123:94:63","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":41687,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43068,"src":"131:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41688,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"152:22:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41693,"nodeType":"ImportDirective","src":"218:69:63","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":41690,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"226:8:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41691,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"236:6:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41692,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"244:12:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41695,"nodeType":"ImportDirective","src":"288:76:63","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":41694,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"296:22:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41702,"nodeType":"ImportDirective","src":"365:134:63","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":41696,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"373:8:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41697,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"383:11:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41698,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"396:16:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41699,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"414:16:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41700,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"432:18:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41701,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"452:14:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41704,"nodeType":"ImportDirective","src":"500:49:63","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":41703,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"508:10:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41713,"nodeType":"ImportDirective","src":"550:231:63","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":41705,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"558:23:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41706,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"583:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41707,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"604:20:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41708,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"626:24:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41709,"name":"OldConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37492,"src":"652:22:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41710,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"676:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41711,"name":"InvalidActorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37402,"src":"697:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41712,"name":"ParentFinalityAlreadyCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37498,"src":"718:30:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41715,"nodeType":"ImportDirective","src":"782:57:63","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":41714,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"790:14:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41717,"nodeType":"ImportDirective","src":"840:57:63","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":41716,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"848:14:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41719,"nodeType":"ImportDirective","src":"898:65:63","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":41718,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"906:18:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41721,"nodeType":"ImportDirective","src":"964:63:63","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":41720,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"972:17:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42944,"nodeType":"ContractDefinition","src":"1029:16632:63","nodes":[{"id":41725,"nodeType":"UsingForDirective","src":"1054:34:63","nodes":[],"global":false,"libraryName":{"id":41722,"name":"SubnetIDHelper","nameLocations":["1060:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1060:14:63"},"typeName":{"id":41724,"nodeType":"UserDefinedTypeName","pathNode":{"id":41723,"name":"SubnetID","nameLocations":["1079:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1079:8:63"},"referencedDeclaration":50077,"src":"1079:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":41729,"nodeType":"UsingForDirective","src":"1093:34:63","nodes":[],"global":false,"libraryName":{"id":41726,"name":"CrossMsgHelper","nameLocations":["1099:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"1099:14:63"},"typeName":{"id":41728,"nodeType":"UserDefinedTypeName","pathNode":{"id":41727,"name":"CrossMsg","nameLocations":["1118:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1118:8:63"},"referencedDeclaration":49974,"src":"1118:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":41733,"nodeType":"UsingForDirective","src":"1132:42:63","nodes":[],"global":false,"libraryName":{"id":41730,"name":"SupplySourceHelper","nameLocations":["1138:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1138:18:63"},"typeName":{"id":41732,"nodeType":"UserDefinedTypeName","pathNode":{"id":41731,"name":"SupplySource","nameLocations":["1161:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1161:12:63"},"referencedDeclaration":50226,"src":"1161:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":41737,"nodeType":"UsingForDirective","src":"1179:40:63","nodes":[],"global":false,"libraryName":{"id":41734,"name":"StorableMsgHelper","nameLocations":["1185:17:63"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"1185:17:63"},"typeName":{"id":41736,"nodeType":"UserDefinedTypeName","pathNode":{"id":41735,"name":"StorableMsg","nameLocations":["1207:11:63"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"1207:11:63"},"referencedDeclaration":49991,"src":"1207:11:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":41742,"nodeType":"EventDefinition","src":"1225:36:63","nodes":[],"anonymous":false,"eventSelector":"7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481","name":"MembershipUpdated","nameLocation":"1231:17:63","parameters":{"id":41741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41740,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41742,"src":"1249:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":41739,"nodeType":"UserDefinedTypeName","pathNode":{"id":41738,"name":"Membership","nameLocations":["1249:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"1249:10:63"},"referencedDeclaration":50218,"src":"1249:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"1248:12:63"}},{"id":41750,"nodeType":"EventDefinition","src":"1374:66:63","nodes":[],"anonymous":false,"documentation":{"id":41743,"nodeType":"StructuredDocumentation","src":"1266:103:63","text":"@dev subnet refers to the next \"down\" subnet that the `CrossMsg.message.to` should be forwarded to."},"eventSelector":"392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096","name":"NewTopDownMessage","nameLocation":"1380:17:63","parameters":{"id":41749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41745,"indexed":true,"mutability":"mutable","name":"subnet","nameLocation":"1414:6:63","nodeType":"VariableDeclaration","scope":41750,"src":"1398:22:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41744,"name":"address","nodeType":"ElementaryTypeName","src":"1398:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41748,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"1431:7:63","nodeType":"VariableDeclaration","scope":41750,"src":"1422:16:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":41747,"nodeType":"UserDefinedTypeName","pathNode":{"id":41746,"name":"CrossMsg","nameLocations":["1422:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1422:8:63"},"referencedDeclaration":49974,"src":"1422:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1397:42:63"}},{"id":41758,"nodeType":"EventDefinition","src":"1530:73:63","nodes":[],"anonymous":false,"documentation":{"id":41751,"nodeType":"StructuredDocumentation","src":"1445:80:63","text":"@dev event emitted when there is a new bottom-up message batch to be signed."},"eventSelector":"39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e","name":"NewBottomUpMsgBatch","nameLocation":"1536:19:63","parameters":{"id":41757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41753,"indexed":true,"mutability":"mutable","name":"epoch","nameLocation":"1572:5:63","nodeType":"VariableDeclaration","scope":41758,"src":"1556:21:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41752,"name":"uint256","nodeType":"ElementaryTypeName","src":"1556:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41756,"indexed":false,"mutability":"mutable","name":"batch","nameLocation":"1596:5:63","nodeType":"VariableDeclaration","scope":41758,"src":"1579:22:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41755,"nodeType":"UserDefinedTypeName","pathNode":{"id":41754,"name":"BottomUpMsgBatch","nameLocations":["1579:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"1579:16:63"},"referencedDeclaration":49945,"src":"1579:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"1555:47:63"}},{"id":41802,"nodeType":"FunctionDefinition","src":"1824:419:63","nodes":[],"body":{"id":41801,"nodeType":"Block","src":"1981:262:63","nodes":[],"statements":[{"assignments":[41771],"declarations":[{"constant":false,"id":41771,"mutability":"mutable","name":"s","nameLocation":"2019:1:63","nodeType":"VariableDeclaration","scope":41801,"src":"1991:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41770,"nodeType":"UserDefinedTypeName","pathNode":{"id":41769,"name":"GatewayActorStorage","nameLocations":["1991:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"1991:19:63"},"referencedDeclaration":43068,"src":"1991:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41775,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41772,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"2023:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2046:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"2023:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2023:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1991:67:63"},{"expression":{"id":41784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41776,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"2068:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":41779,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2100:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":41780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2106:6:63","memberName":"number","nodeType":"MemberAccess","src":"2100:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":41781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41771,"src":"2114:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2116:19:63","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":43042,"src":"2114:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41777,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"2076:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":41778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2087:12:63","memberName":"getNextEpoch","nodeType":"MemberAccess","referencedDeclaration":42716,"src":"2076:23:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":41783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2076:60:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2068:68:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41785,"nodeType":"ExpressionStatement","src":"2068:68:63"},{"expression":{"id":41791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41786,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"2146:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41787,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41771,"src":"2159:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2161:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"2159:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41790,"indexExpression":{"id":41789,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"2181:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2159:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"2146:41:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41792,"nodeType":"ExpressionStatement","src":"2146:41:63"},{"expression":{"id":41799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41793,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41762,"src":"2197:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2206:30:63","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":41794,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"2207:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2218:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49922,"src":"2207:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":41796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2227:7:63","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48071,"src":"2207:27:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":41797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2207:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2197:39:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41800,"nodeType":"ExpressionStatement","src":"2197:39:63"}]},"documentation":{"id":41759,"nodeType":"StructuredDocumentation","src":"1609:210:63","text":"@notice returns the current bottom-up checkpoint\n @return exists - whether the checkpoint exists\n @return epoch - the epoch of the checkpoint\n @return checkpoint - the checkpoint struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getCurrentBottomUpCheckpoint","nameLocation":"1833:28:63","parameters":{"id":41760,"nodeType":"ParameterList","parameters":[],"src":"1861:2:63"},"returnParameters":{"id":41768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41762,"mutability":"mutable","name":"exists","nameLocation":"1916:6:63","nodeType":"VariableDeclaration","scope":41802,"src":"1911:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41761,"name":"bool","nodeType":"ElementaryTypeName","src":"1911:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41764,"mutability":"mutable","name":"epoch","nameLocation":"1932:5:63","nodeType":"VariableDeclaration","scope":41802,"src":"1924:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41763,"name":"uint256","nodeType":"ElementaryTypeName","src":"1924:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41767,"mutability":"mutable","name":"checkpoint","nameLocation":"1965:10:63","nodeType":"VariableDeclaration","scope":41802,"src":"1939:36:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41766,"nodeType":"UserDefinedTypeName","pathNode":{"id":41765,"name":"BottomUpCheckpoint","nameLocations":["1939:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1939:18:63"},"referencedDeclaration":49932,"src":"1939:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1910:66:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41835,"nodeType":"FunctionDefinition","src":"2298:345:63","nodes":[],"body":{"id":41834,"nodeType":"Block","src":"2461:182:63","nodes":[],"statements":[{"assignments":[41815],"declarations":[{"constant":false,"id":41815,"mutability":"mutable","name":"s","nameLocation":"2499:1:63","nodeType":"VariableDeclaration","scope":41834,"src":"2471:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41814,"nodeType":"UserDefinedTypeName","pathNode":{"id":41813,"name":"GatewayActorStorage","nameLocations":["2471:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"2471:19:63"},"referencedDeclaration":43068,"src":"2471:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41819,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41816,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"2503:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2526:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"2503:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2471:67:63"},{"expression":{"id":41825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41820,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41811,"src":"2549:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41821,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41815,"src":"2562:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2564:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"2562:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41824,"indexExpression":{"id":41823,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41805,"src":"2584:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2562:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"2549:41:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"id":41826,"nodeType":"ExpressionStatement","src":"2549:41:63"},{"expression":{"id":41832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41827,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41808,"src":"2600:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41828,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41811,"src":"2609:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"id":41829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2620:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"2609:22:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2635:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2609:27:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2600:36:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41833,"nodeType":"ExpressionStatement","src":"2600:36:63"}]},"documentation":{"id":41803,"nodeType":"StructuredDocumentation","src":"2249:44:63","text":"@notice returns the bottom-up checkpoint"},"implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpCheckpoint","nameLocation":"2307:21:63","parameters":{"id":41806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41805,"mutability":"mutable","name":"epoch","nameLocation":"2346:5:63","nodeType":"VariableDeclaration","scope":41835,"src":"2338:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41804,"name":"uint256","nodeType":"ElementaryTypeName","src":"2338:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2328:29:63"},"returnParameters":{"id":41812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41808,"mutability":"mutable","name":"exists","nameLocation":"2410:6:63","nodeType":"VariableDeclaration","scope":41835,"src":"2405:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41807,"name":"bool","nodeType":"ElementaryTypeName","src":"2405:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41811,"mutability":"mutable","name":"checkpoint","nameLocation":"2445:10:63","nodeType":"VariableDeclaration","scope":41835,"src":"2418:37:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41810,"nodeType":"UserDefinedTypeName","pathNode":{"id":41809,"name":"BottomUpCheckpoint","nameLocations":["2418:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"2418:18:63"},"referencedDeclaration":49932,"src":"2418:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"2404:52:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41868,"nodeType":"FunctionDefinition","src":"2693:325:63","nodes":[],"body":{"id":41867,"nodeType":"Block","src":"2847:171:63","nodes":[],"statements":[{"assignments":[41848],"declarations":[{"constant":false,"id":41848,"mutability":"mutable","name":"s","nameLocation":"2885:1:63","nodeType":"VariableDeclaration","scope":41867,"src":"2857:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41847,"nodeType":"UserDefinedTypeName","pathNode":{"id":41846,"name":"GatewayActorStorage","nameLocations":["2857:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"2857:19:63"},"referencedDeclaration":43068,"src":"2857:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41852,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41849,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"2889:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2912:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"2889:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2857:67:63"},{"expression":{"id":41858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41853,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41844,"src":"2935:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41854,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41848,"src":"2943:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2945:18:63","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"2943:20:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41857,"indexExpression":{"id":41856,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41838,"src":"2964:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2943:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"2935:35:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41859,"nodeType":"ExpressionStatement","src":"2935:35:63"},{"expression":{"id":41865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41860,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41841,"src":"2980:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41861,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41844,"src":"2989:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2995:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"2989:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3010:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2989:22:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2980:31:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41866,"nodeType":"ExpressionStatement","src":"2980:31:63"}]},"documentation":{"id":41836,"nodeType":"StructuredDocumentation","src":"2649:39:63","text":"@notice returns the bottom-up batch"},"implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatch","nameLocation":"2702:19:63","parameters":{"id":41839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41838,"mutability":"mutable","name":"epoch","nameLocation":"2739:5:63","nodeType":"VariableDeclaration","scope":41868,"src":"2731:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41837,"name":"uint256","nodeType":"ElementaryTypeName","src":"2731:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2721:29:63"},"returnParameters":{"id":41845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41841,"mutability":"mutable","name":"exists","nameLocation":"2803:6:63","nodeType":"VariableDeclaration","scope":41868,"src":"2798:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41840,"name":"bool","nodeType":"ElementaryTypeName","src":"2798:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41844,"mutability":"mutable","name":"batch","nameLocation":"2836:5:63","nodeType":"VariableDeclaration","scope":41868,"src":"2811:30:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41843,"nodeType":"UserDefinedTypeName","pathNode":{"id":41842,"name":"BottomUpMsgBatch","nameLocations":["2811:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"2811:16:63"},"referencedDeclaration":49945,"src":"2811:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"2797:45:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41892,"nodeType":"FunctionDefinition","src":"3110:224:63","nodes":[],"body":{"id":41891,"nodeType":"Block","src":"3188:146:63","nodes":[],"statements":[{"assignments":[41878],"declarations":[{"constant":false,"id":41878,"mutability":"mutable","name":"s","nameLocation":"3226:1:63","nodeType":"VariableDeclaration","scope":41891,"src":"3198:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41877,"nodeType":"UserDefinedTypeName","pathNode":{"id":41876,"name":"GatewayActorStorage","nameLocations":["3198:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"3198:19:63"},"referencedDeclaration":43068,"src":"3198:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41882,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41879,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"3230:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3253:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"3230:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3230:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3198:67:63"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":41883,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41878,"src":"3282:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3284:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"3282:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41886,"indexExpression":{"id":41885,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41871,"src":"3304:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3282:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":41887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3311:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3282:40:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3326:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3282:45:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":41875,"id":41890,"nodeType":"Return","src":"3275:52:63"}]},"documentation":{"id":41869,"nodeType":"StructuredDocumentation","src":"3024:81:63","text":"@notice checks if the bottom-up checkpoint already exists at the target epoch"},"implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointExists","nameLocation":"3119:24:63","parameters":{"id":41872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41871,"mutability":"mutable","name":"epoch","nameLocation":"3152:5:63","nodeType":"VariableDeclaration","scope":41892,"src":"3144:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41870,"name":"uint256","nodeType":"ElementaryTypeName","src":"3144:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3143:15:63"},"returnParameters":{"id":41875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41892,"src":"3182:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41873,"name":"bool","nodeType":"ElementaryTypeName","src":"3182:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3181:6:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41916,"nodeType":"FunctionDefinition","src":"3426:222:63","nodes":[],"body":{"id":41915,"nodeType":"Block","src":"3503:145:63","nodes":[],"statements":[{"assignments":[41902],"declarations":[{"constant":false,"id":41902,"mutability":"mutable","name":"s","nameLocation":"3541:1:63","nodeType":"VariableDeclaration","scope":41915,"src":"3513:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41901,"nodeType":"UserDefinedTypeName","pathNode":{"id":41900,"name":"GatewayActorStorage","nameLocations":["3513:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"3513:19:63"},"referencedDeclaration":43068,"src":"3513:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41906,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41903,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"3545:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3568:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"3545:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3545:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3513:67:63"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":41907,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41902,"src":"3597:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3599:18:63","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"3597:20:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41910,"indexExpression":{"id":41909,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41895,"src":"3618:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3597:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"id":41911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3625:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"3597:39:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3640:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3597:44:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":41899,"id":41914,"nodeType":"Return","src":"3590:51:63"}]},"documentation":{"id":41893,"nodeType":"StructuredDocumentation","src":"3340:81:63","text":"@notice checks if the bottom-up checkpoint already exists at the target epoch"},"implemented":true,"kind":"function","modifiers":[],"name":"bottomUpBatchMsgsExists","nameLocation":"3435:23:63","parameters":{"id":41896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41895,"mutability":"mutable","name":"epoch","nameLocation":"3467:5:63","nodeType":"VariableDeclaration","scope":41916,"src":"3459:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41894,"name":"uint256","nodeType":"ElementaryTypeName","src":"3459:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3458:15:63"},"returnParameters":{"id":41899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41916,"src":"3497:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41897,"name":"bool","nodeType":"ElementaryTypeName","src":"3497:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3496:6:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41940,"nodeType":"FunctionDefinition","src":"3688:246:63","nodes":[],"body":{"id":41939,"nodeType":"Block","src":"3782:152:63","nodes":[],"statements":[{"assignments":[41925],"declarations":[{"constant":false,"id":41925,"mutability":"mutable","name":"s","nameLocation":"3820:1:63","nodeType":"VariableDeclaration","scope":41939,"src":"3792:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41924,"nodeType":"UserDefinedTypeName","pathNode":{"id":41923,"name":"GatewayActorStorage","nameLocations":["3792:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"3792:19:63"},"referencedDeclaration":43068,"src":"3792:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41929,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41926,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"3824:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3847:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"3824:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3824:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3792:67:63"},{"expression":{"id":41937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41930,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41925,"src":"3869:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3871:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"3869:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41935,"indexExpression":{"expression":{"id":41932,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41920,"src":"3891:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3902:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3891:22:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3869:45:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41936,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41920,"src":"3917:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"src":"3869:58:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":41938,"nodeType":"ExpressionStatement","src":"3869:58:63"}]},"documentation":{"id":41917,"nodeType":"StructuredDocumentation","src":"3654:29:63","text":"@notice stores checkpoint"},"implemented":true,"kind":"function","modifiers":[],"name":"storeBottomUpCheckpoint","nameLocation":"3697:23:63","parameters":{"id":41921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41920,"mutability":"mutable","name":"checkpoint","nameLocation":"3756:10:63","nodeType":"VariableDeclaration","scope":41940,"src":"3730:36:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41919,"nodeType":"UserDefinedTypeName","pathNode":{"id":41918,"name":"BottomUpCheckpoint","nameLocations":["3730:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"3730:18:63"},"referencedDeclaration":49932,"src":"3730:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"3720:52:63"},"returnParameters":{"id":41922,"nodeType":"ParameterList","parameters":[],"src":"3782:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42007,"nodeType":"FunctionDefinition","src":"3979:709:63","nodes":[],"body":{"id":42006,"nodeType":"Block","src":"4064:624:63","nodes":[],"statements":[{"assignments":[41949],"declarations":[{"constant":false,"id":41949,"mutability":"mutable","name":"s","nameLocation":"4102:1:63","nodeType":"VariableDeclaration","scope":42006,"src":"4074:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41948,"nodeType":"UserDefinedTypeName","pathNode":{"id":41947,"name":"GatewayActorStorage","nameLocations":["4074:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"4074:19:63"},"referencedDeclaration":43068,"src":"4074:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41953,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41950,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"4106:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4129:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"4106:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4106:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4074:67:63"},{"assignments":[41956],"declarations":[{"constant":false,"id":41956,"mutability":"mutable","name":"b","nameLocation":"4176:1:63","nodeType":"VariableDeclaration","scope":42006,"src":"4151:26:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41955,"nodeType":"UserDefinedTypeName","pathNode":{"id":41954,"name":"BottomUpMsgBatch","nameLocations":["4151:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"4151:16:63"},"referencedDeclaration":49945,"src":"4151:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":41962,"initialValue":{"baseExpression":{"expression":{"id":41957,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41949,"src":"4180:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4182:18:63","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"4180:20:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41961,"indexExpression":{"expression":{"id":41959,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41944,"src":"4201:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4207:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4201:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4180:39:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4151:68:63"},{"expression":{"id":41968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41963,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41956,"src":"4229:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4231:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49936,"src":"4229:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41966,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41944,"src":"4242:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4248:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49936,"src":"4242:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"src":"4229:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":41969,"nodeType":"ExpressionStatement","src":"4229:27:63"},{"expression":{"id":41975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41970,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41956,"src":"4266:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4268:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4266:13:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41973,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41944,"src":"4282:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4288:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4282:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4266:33:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41976,"nodeType":"ExpressionStatement","src":"4266:33:63"},{"assignments":[41978],"declarations":[{"constant":false,"id":41978,"mutability":"mutable","name":"msgLength","nameLocation":"4318:9:63","nodeType":"VariableDeclaration","scope":42006,"src":"4310:17:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41977,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41982,"initialValue":{"expression":{"expression":{"id":41979,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41944,"src":"4330:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4336:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"4330:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":41981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4341:6:63","memberName":"length","nodeType":"MemberAccess","src":"4330:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4310:37:63"},{"body":{"id":42004,"nodeType":"Block","src":"4389:293:63","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":41994,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41944,"src":"4598:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4604:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"4598:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":41997,"indexExpression":{"id":41996,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41984,"src":"4609:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4598:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":41989,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41956,"src":"4586:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4588:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"4586:6:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":41993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4593:4:63","memberName":"push","nodeType":"MemberAccess","src":"4586:11:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49974_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":41998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4586:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41999,"nodeType":"ExpressionStatement","src":"4586:26:63"},{"id":42003,"nodeType":"UncheckedBlock","src":"4626:46:63","statements":[{"expression":{"id":42001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4654:3:63","subExpression":{"id":42000,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41984,"src":"4656:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42002,"nodeType":"ExpressionStatement","src":"4654:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41984,"src":"4373:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41987,"name":"msgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41978,"src":"4377:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4373:13:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42005,"initializationExpression":{"assignments":[41984],"declarations":[{"constant":false,"id":41984,"mutability":"mutable","name":"i","nameLocation":"4370:1:63","nodeType":"VariableDeclaration","scope":42005,"src":"4362:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41983,"name":"uint256","nodeType":"ElementaryTypeName","src":"4362:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41985,"nodeType":"VariableDeclarationStatement","src":"4362:9:63"},"nodeType":"ForStatement","src":"4357:325:63"}]},"documentation":{"id":41941,"nodeType":"StructuredDocumentation","src":"3940:34:63","text":"@notice stores bottom-up batch"},"implemented":true,"kind":"function","modifiers":[],"name":"storeBottomUpMsgBatch","nameLocation":"3988:21:63","parameters":{"id":41945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41944,"mutability":"mutable","name":"batch","nameLocation":"4043:5:63","nodeType":"VariableDeclaration","scope":42007,"src":"4019:29:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41943,"nodeType":"UserDefinedTypeName","pathNode":{"id":41942,"name":"BottomUpMsgBatch","nameLocations":["4019:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"4019:16:63"},"referencedDeclaration":49945,"src":"4019:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"4009:45:63"},"returnParameters":{"id":41946,"nodeType":"ParameterList","parameters":[],"src":"4064:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42029,"nodeType":"FunctionDefinition","src":"4834:223:63","nodes":[],"body":{"id":42028,"nodeType":"Block","src":"4928:129:63","nodes":[],"statements":[{"assignments":[42018],"declarations":[{"constant":false,"id":42018,"mutability":"mutable","name":"s","nameLocation":"4966:1:63","nodeType":"VariableDeclaration","scope":42028,"src":"4938:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42017,"nodeType":"UserDefinedTypeName","pathNode":{"id":42016,"name":"GatewayActorStorage","nameLocations":["4938:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"4938:19:63"},"referencedDeclaration":43068,"src":"4938:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42022,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42019,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"4970:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4993:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"4970:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4970:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4938:67:63"},{"expression":{"baseExpression":{"expression":{"id":42023,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42018,"src":"5022:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5024:13:63","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42979,"src":"5022:15:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":42026,"indexExpression":{"id":42025,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42010,"src":"5038:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5022:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage","typeString":"struct ParentFinality storage ref"}},"functionReturnParameters":42015,"id":42027,"nodeType":"Return","src":"5015:35:63"}]},"documentation":{"id":42008,"nodeType":"StructuredDocumentation","src":"4694:135:63","text":"@notice obtain the ipc parent finality at certain block number\n @param blockNumber - the block number to obtain the finality"},"implemented":true,"kind":"function","modifiers":[],"name":"getParentFinality","nameLocation":"4843:17:63","parameters":{"id":42011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42010,"mutability":"mutable","name":"blockNumber","nameLocation":"4869:11:63","nodeType":"VariableDeclaration","scope":42029,"src":"4861:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42009,"name":"uint256","nodeType":"ElementaryTypeName","src":"4861:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4860:21:63"},"returnParameters":{"id":42015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42029,"src":"4905:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":42013,"nodeType":"UserDefinedTypeName","pathNode":{"id":42012,"name":"ParentFinality","nameLocations":["4905:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"4905:14:63"},"referencedDeclaration":49918,"src":"4905:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"4904:23:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42049,"nodeType":"FunctionDefinition","src":"5127:221:63","nodes":[],"body":{"id":42048,"nodeType":"Block","src":"5208:140:63","nodes":[],"statements":[{"assignments":[42038],"declarations":[{"constant":false,"id":42038,"mutability":"mutable","name":"s","nameLocation":"5246:1:63","nodeType":"VariableDeclaration","scope":42048,"src":"5218:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42037,"nodeType":"UserDefinedTypeName","pathNode":{"id":42036,"name":"GatewayActorStorage","nameLocations":["5218:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"5218:19:63"},"referencedDeclaration":43068,"src":"5218:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42042,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42039,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"5250:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5273:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"5250:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5250:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5218:67:63"},{"expression":{"arguments":[{"expression":{"id":42044,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42038,"src":"5320:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5322:18:63","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42982,"src":"5320:20:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42043,"name":"getParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42029,"src":"5302:17:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (uint256) view returns (struct ParentFinality memory)"}},"id":42046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5302:39:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":42035,"id":42047,"nodeType":"Return","src":"5295:46:63"}]},"documentation":{"id":42030,"nodeType":"StructuredDocumentation","src":"5063:59:63","text":"@notice obtain the latest committed ipc parent finality"},"implemented":true,"kind":"function","modifiers":[],"name":"getLatestParentFinality","nameLocation":"5136:23:63","parameters":{"id":42031,"nodeType":"ParameterList","parameters":[],"src":"5159:2:63"},"returnParameters":{"id":42035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42049,"src":"5185:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":42033,"nodeType":"UserDefinedTypeName","pathNode":{"id":42032,"name":"ParentFinality","nameLocations":["5185:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"5185:14:63"},"referencedDeclaration":49918,"src":"5185:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5184:23:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42104,"nodeType":"FunctionDefinition","src":"5469:529:63","nodes":[],"body":{"id":42103,"nodeType":"Block","src":"5601:397:63","nodes":[],"statements":[{"assignments":[42061],"declarations":[{"constant":false,"id":42061,"mutability":"mutable","name":"s","nameLocation":"5639:1:63","nodeType":"VariableDeclaration","scope":42103,"src":"5611:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42060,"nodeType":"UserDefinedTypeName","pathNode":{"id":42059,"name":"GatewayActorStorage","nameLocations":["5611:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"5611:19:63"},"referencedDeclaration":43068,"src":"5611:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42062,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"5643:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5666:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"5643:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5643:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5611:67:63"},{"assignments":[42067],"declarations":[{"constant":false,"id":42067,"mutability":"mutable","name":"lastHeight","nameLocation":"5697:10:63","nodeType":"VariableDeclaration","scope":42103,"src":"5689:18:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42066,"name":"uint256","nodeType":"ElementaryTypeName","src":"5689:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42070,"initialValue":{"expression":{"id":42068,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"5710:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5712:18:63","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42982,"src":"5710:20:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5689:41:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42071,"name":"lastHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42067,"src":"5744:10:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":42072,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42053,"src":"5757:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":42073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5766:6:63","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49915,"src":"5757:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5744:28:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42079,"nodeType":"IfStatement","src":"5740:98:63","trueBody":{"id":42078,"nodeType":"Block","src":"5774:64:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42075,"name":"ParentFinalityAlreadyCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37498,"src":"5795:30:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5795:32:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42077,"nodeType":"RevertStatement","src":"5788:39:63"}]}},{"expression":{"id":42085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42080,"name":"lastFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42057,"src":"5847:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42081,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"5862:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5864:13:63","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42979,"src":"5862:15:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":42084,"indexExpression":{"id":42083,"name":"lastHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42067,"src":"5878:10:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5862:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage","typeString":"struct ParentFinality storage ref"}},"src":"5847:42:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"id":42086,"nodeType":"ExpressionStatement","src":"5847:42:63"},{"expression":{"id":42094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":42087,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"5900:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5902:13:63","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42979,"src":"5900:15:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":42092,"indexExpression":{"expression":{"id":42089,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42053,"src":"5916:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":42090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5925:6:63","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49915,"src":"5916:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5900:32:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage","typeString":"struct ParentFinality storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42093,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42053,"src":"5935:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}},"src":"5900:43:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage","typeString":"struct ParentFinality storage ref"}},"id":42095,"nodeType":"ExpressionStatement","src":"5900:43:63"},{"expression":{"id":42101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42096,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"5953:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5955:18:63","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42982,"src":"5953:20:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42099,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42053,"src":"5976:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":42100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5985:6:63","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49915,"src":"5976:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5953:38:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42102,"nodeType":"ExpressionStatement","src":"5953:38:63"}]},"documentation":{"id":42050,"nodeType":"StructuredDocumentation","src":"5354:110:63","text":"@notice commit the ipc parent finality into storage\n @param finality - the finality to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitParentFinality","nameLocation":"5478:20:63","parameters":{"id":42054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42053,"mutability":"mutable","name":"finality","nameLocation":"5532:8:63","nodeType":"VariableDeclaration","scope":42104,"src":"5508:32:63","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":42052,"nodeType":"UserDefinedTypeName","pathNode":{"id":42051,"name":"ParentFinality","nameLocations":["5508:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"5508:14:63"},"referencedDeclaration":49918,"src":"5508:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5498:48:63"},"returnParameters":{"id":42058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42057,"mutability":"mutable","name":"lastFinality","nameLocation":"5587:12:63","nodeType":"VariableDeclaration","scope":42104,"src":"5565:34:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":42056,"nodeType":"UserDefinedTypeName","pathNode":{"id":42055,"name":"ParentFinality","nameLocations":["5565:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"5565:14:63"},"referencedDeclaration":49918,"src":"5565:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5564:36:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42258,"nodeType":"FunctionDefinition","src":"6087:1976:63","nodes":[],"body":{"id":42257,"nodeType":"Block","src":"6152:1911:63","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":42112,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"6185:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}],"id":42111,"name":"MembershipUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41742,"src":"6167:17:63","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_struct$_Membership_$50218_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":42113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6167:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42114,"nodeType":"EmitStatement","src":"6162:34:63"},{"assignments":[42117],"declarations":[{"constant":false,"id":42117,"mutability":"mutable","name":"s","nameLocation":"6235:1:63","nodeType":"VariableDeclaration","scope":42257,"src":"6207:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42116,"nodeType":"UserDefinedTypeName","pathNode":{"id":42115,"name":"GatewayActorStorage","nameLocations":["6207:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"6207:19:63"},"referencedDeclaration":43068,"src":"6207:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42121,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42118,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"6239:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6262:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"6239:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6239:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6207:67:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42122,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6344:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6346:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"6344:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6364:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"6344:39:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":42125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6344:44:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42156,"nodeType":"IfStatement","src":"6340:621:63","trueBody":{"id":42155,"nodeType":"Block","src":"6390:571:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42127,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"6408:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6419:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"6408:30:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":42129,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6442:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6444:14:63","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"6442:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6459:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"6442:36:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6408:70:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42135,"nodeType":"IfStatement","src":"6404:115:63","trueBody":{"id":42134,"nodeType":"Block","src":"6480:39:63","statements":[{"functionReturnParameters":42110,"id":42133,"nodeType":"Return","src":"6498:7:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42136,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"6632:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6643:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"6632:30:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":42138,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6665:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6667:14:63","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"6665:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6682:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"6665:36:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6632:69:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42146,"nodeType":"IfStatement","src":"6628:139:63","trueBody":{"id":42145,"nodeType":"Block","src":"6703:64:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42142,"name":"OldConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37492,"src":"6728:22:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6728:24:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42144,"nodeType":"RevertStatement","src":"6721:31:63"}]}},{"condition":{"arguments":[{"id":42148,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"6878:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},{"expression":{"id":42149,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6890:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6892:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"6890:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"},{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}],"id":42147,"name":"membershipEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42367,"src":"6862:15:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$50218_memory_ptr_$_t_struct$_Membership_$50218_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Membership memory,struct Membership memory) pure returns (bool)"}},"id":42151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6862:48:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42154,"nodeType":"IfStatement","src":"6858:93:63","trueBody":{"id":42153,"nodeType":"Block","src":"6912:39:63","statements":[{"functionReturnParameters":42110,"id":42152,"nodeType":"Return","src":"6930:7:63"}]}}]}},{"expression":{"id":42162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42157,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6971:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6973:14:63","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"6971:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42160,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6990:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6992:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"6990:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"src":"6971:38:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42163,"nodeType":"ExpressionStatement","src":"6971:38:63"},{"assignments":[42165],"declarations":[{"constant":false,"id":42165,"mutability":"mutable","name":"inputLength","nameLocation":"7028:11:63","nodeType":"VariableDeclaration","scope":42257,"src":"7020:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42164,"name":"uint256","nodeType":"ElementaryTypeName","src":"7020:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42169,"initialValue":{"expression":{"expression":{"id":42166,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"7042:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7053:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7042:21:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7064:6:63","memberName":"length","nodeType":"MemberAccess","src":"7042:28:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7020:50:63"},{"assignments":[42171],"declarations":[{"constant":false,"id":42171,"mutability":"mutable","name":"storeLength","nameLocation":"7088:11:63","nodeType":"VariableDeclaration","scope":42257,"src":"7080:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42170,"name":"uint256","nodeType":"ElementaryTypeName","src":"7080:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42176,"initialValue":{"expression":{"expression":{"expression":{"id":42172,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"7102:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7104:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7102:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7122:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7102:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7133:6:63","memberName":"length","nodeType":"MemberAccess","src":"7102:37:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7080:59:63"},{"body":{"id":42219,"nodeType":"Block","src":"7336:297:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42183,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7354:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42184,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42171,"src":"7358:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7354:15:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42213,"nodeType":"Block","src":"7470:94:63","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":42207,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"7524:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7535:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7524:21:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42210,"indexExpression":{"id":42209,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7546:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7524:24:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"expression":{"id":42200,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"7488:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7490:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7488:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7508:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7488:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7519:4:63","memberName":"push","nodeType":"MemberAccess","src":"7488:35:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":42211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7488:61:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42212,"nodeType":"ExpressionStatement","src":"7488:61:63"}]},"id":42214,"nodeType":"IfStatement","src":"7350:214:63","trueBody":{"id":42199,"nodeType":"Block","src":"7371:93:63","statements":[{"expression":{"id":42197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":42186,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"7389:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7391:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7389:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7409:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7389:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42192,"indexExpression":{"id":42189,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7420:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7389:33:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42193,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"7425:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7436:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7425:21:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42196,"indexExpression":{"id":42195,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7447:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7425:24:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"src":"7389:60:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":42198,"nodeType":"ExpressionStatement","src":"7389:60:63"}]}},{"id":42218,"nodeType":"UncheckedBlock","src":"7577:46:63","statements":[{"expression":{"id":42216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7605:3:63","subExpression":{"id":42215,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7607:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42217,"nodeType":"ExpressionStatement","src":"7605:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42180,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7317:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42181,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42165,"src":"7321:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7317:15:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42220,"initializationExpression":{"assignments":[42178],"declarations":[{"constant":false,"id":42178,"mutability":"mutable","name":"i","nameLocation":"7314:1:63","nodeType":"VariableDeclaration","scope":42220,"src":"7306:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42177,"name":"uint256","nodeType":"ElementaryTypeName","src":"7306:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42179,"nodeType":"VariableDeclarationStatement","src":"7306:9:63"},"nodeType":"ForStatement","src":"7301:332:63"},{"expression":{"id":42228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":42221,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"7642:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7644:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7642:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7662:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"7642:39:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42226,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"7684:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7695:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"7684:30:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7642:72:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42229,"nodeType":"ExpressionStatement","src":"7642:72:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42230,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42171,"src":"7817:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":42231,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42165,"src":"7831:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7817:25:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42256,"nodeType":"IfStatement","src":"7813:244:63","trueBody":{"id":42255,"nodeType":"Block","src":"7844:213:63","statements":[{"body":{"id":42253,"nodeType":"Block","src":"7907:140:63","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":42240,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"7925:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7927:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7925:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7945:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7925:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7956:3:63","memberName":"pop","nodeType":"MemberAccess","src":"7925:34:63","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer)"}},"id":42247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7925:36:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42248,"nodeType":"ExpressionStatement","src":"7925:36:63"},{"id":42252,"nodeType":"UncheckedBlock","src":"7979:54:63","statements":[{"expression":{"id":42250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8011:3:63","subExpression":{"id":42249,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42234,"src":"8013:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42251,"nodeType":"ExpressionStatement","src":"8011:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42237,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42234,"src":"7888:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42238,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42171,"src":"7892:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7888:15:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42254,"initializationExpression":{"assignments":[42234],"declarations":[{"constant":false,"id":42234,"mutability":"mutable","name":"i","nameLocation":"7871:1:63","nodeType":"VariableDeclaration","scope":42254,"src":"7863:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42233,"name":"uint256","nodeType":"ElementaryTypeName","src":"7863:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42236,"initialValue":{"id":42235,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42165,"src":"7875:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7863:23:63"},"nodeType":"ForStatement","src":"7858:189:63"}]}}]},"documentation":{"id":42105,"nodeType":"StructuredDocumentation","src":"6004:78:63","text":"@notice set the next membership\n @param membership - new membership"},"implemented":true,"kind":"function","modifiers":[],"name":"updateMembership","nameLocation":"6096:16:63","parameters":{"id":42109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42108,"mutability":"mutable","name":"membership","nameLocation":"6131:10:63","nodeType":"VariableDeclaration","scope":42258,"src":"6113:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42107,"nodeType":"UserDefinedTypeName","pathNode":{"id":42106,"name":"Membership","nameLocations":["6113:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"6113:10:63"},"referencedDeclaration":50218,"src":"6113:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"6112:30:63"},"returnParameters":{"id":42110,"nodeType":"ParameterList","parameters":[],"src":"6152:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42299,"nodeType":"FunctionDefinition","src":"8132:387:63","nodes":[],"body":{"id":42298,"nodeType":"Block","src":"8219:300:63","nodes":[],"statements":[{"assignments":[42268],"declarations":[{"constant":false,"id":42268,"mutability":"mutable","name":"len","nameLocation":"8237:3:63","nodeType":"VariableDeclaration","scope":42298,"src":"8229:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42267,"name":"uint256","nodeType":"ElementaryTypeName","src":"8229:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42272,"initialValue":{"expression":{"expression":{"id":42269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42262,"src":"8243:4:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8248:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"8243:15:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8259:6:63","memberName":"length","nodeType":"MemberAccess","src":"8243:22:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8229:36:63"},{"assignments":[42274],"declarations":[{"constant":false,"id":42274,"mutability":"mutable","name":"totalValidatorsWeight","nameLocation":"8283:21:63","nodeType":"VariableDeclaration","scope":42298,"src":"8275:29:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42273,"name":"uint256","nodeType":"ElementaryTypeName","src":"8275:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42275,"nodeType":"VariableDeclarationStatement","src":"8275:29:63"},{"body":{"id":42294,"nodeType":"Block","src":"8341:134:63","statements":[{"expression":{"id":42288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42282,"name":"totalValidatorsWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42274,"src":"8355:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":42283,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42262,"src":"8380:4:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8385:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"8380:15:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42286,"indexExpression":{"id":42285,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42277,"src":"8396:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8380:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"id":42287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8399:6:63","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":50206,"src":"8380:25:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8355:50:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42289,"nodeType":"ExpressionStatement","src":"8355:50:63"},{"id":42293,"nodeType":"UncheckedBlock","src":"8419:46:63","statements":[{"expression":{"id":42291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8447:3:63","subExpression":{"id":42290,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42277,"src":"8449:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42292,"nodeType":"ExpressionStatement","src":"8447:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42279,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42277,"src":"8330:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42280,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42268,"src":"8334:3:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8330:7:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42295,"initializationExpression":{"assignments":[42277],"declarations":[{"constant":false,"id":42277,"mutability":"mutable","name":"i","nameLocation":"8327:1:63","nodeType":"VariableDeclaration","scope":42295,"src":"8319:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42276,"name":"uint256","nodeType":"ElementaryTypeName","src":"8319:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42278,"nodeType":"VariableDeclarationStatement","src":"8319:9:63"},"nodeType":"ForStatement","src":"8314:161:63"},{"expression":{"id":42296,"name":"totalValidatorsWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42274,"src":"8491:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":42266,"id":42297,"nodeType":"Return","src":"8484:28:63"}]},"documentation":{"id":42259,"nodeType":"StructuredDocumentation","src":"8069:58:63","text":"@dev - Computes total weight for a specific membership"},"implemented":true,"kind":"function","modifiers":[],"name":"membershipTotalWeight","nameLocation":"8141:21:63","parameters":{"id":42263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42262,"mutability":"mutable","name":"self","nameLocation":"8181:4:63","nodeType":"VariableDeclaration","scope":42299,"src":"8163:22:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42261,"nodeType":"UserDefinedTypeName","pathNode":{"id":42260,"name":"Membership","nameLocations":["8163:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"8163:10:63"},"referencedDeclaration":50218,"src":"8163:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"8162:24:63"},"returnParameters":{"id":42266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42299,"src":"8210:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42264,"name":"uint256","nodeType":"ElementaryTypeName","src":"8210:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8209:9:63"},"scope":42944,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42367,"nodeType":"FunctionDefinition","src":"8598:561:63","nodes":[],"body":{"id":42366,"nodeType":"Block","src":"8698:461:63","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42311,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42303,"src":"8712:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8716:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"8712:23:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":42313,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42306,"src":"8739:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8743:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"8739:23:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8712:50:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42319,"nodeType":"IfStatement","src":"8708:93:63","trueBody":{"id":42318,"nodeType":"Block","src":"8764:37:63","statements":[{"expression":{"hexValue":"66616c7365","id":42316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8785:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":42310,"id":42317,"nodeType":"Return","src":"8778:12:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":42321,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42303,"src":"8836:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}],"id":42320,"name":"membershipTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42299,"src":"8814:21:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$50218_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct Membership memory) pure returns (uint256)"}},"id":42322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":42324,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42306,"src":"8866:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}],"id":42323,"name":"membershipTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42299,"src":"8844:21:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$50218_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct Membership memory) pure returns (uint256)"}},"id":42325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8844:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8814:56:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42330,"nodeType":"IfStatement","src":"8810:99:63","trueBody":{"id":42329,"nodeType":"Block","src":"8872:37:63","statements":[{"expression":{"hexValue":"66616c7365","id":42327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8893:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":42310,"id":42328,"nodeType":"Return","src":"8886:12:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42331,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42303,"src":"8922:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8926:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"8922:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8937:6:63","memberName":"length","nodeType":"MemberAccess","src":"8922:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":42334,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42306,"src":"8947:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8951:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"8947:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8962:6:63","memberName":"length","nodeType":"MemberAccess","src":"8947:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8922:46:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42341,"nodeType":"IfStatement","src":"8918:89:63","trueBody":{"id":42340,"nodeType":"Block","src":"8970:37:63","statements":[{"expression":{"hexValue":"66616c7365","id":42338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8991:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":42310,"id":42339,"nodeType":"Return","src":"8984:12:63"}]}},{"assignments":[42343],"declarations":[{"constant":false,"id":42343,"mutability":"mutable","name":"h1","nameLocation":"9024:2:63","nodeType":"VariableDeclaration","scope":42366,"src":"9016:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9016:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42351,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":42347,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42303,"src":"9050:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9054:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"9050:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"expression":{"id":42345,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9039:3:63","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9043:6:63","memberName":"encode","nodeType":"MemberAccess","src":"9039:10:63","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":42349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9039:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42344,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9029:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":42350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9029:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9016:50:63"},{"assignments":[42353],"declarations":[{"constant":false,"id":42353,"mutability":"mutable","name":"h2","nameLocation":"9084:2:63","nodeType":"VariableDeclaration","scope":42366,"src":"9076:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9076:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42361,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":42357,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42306,"src":"9110:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9114:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"9110:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"expression":{"id":42355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9099:3:63","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9103:6:63","memberName":"encode","nodeType":"MemberAccess","src":"9099:10:63","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":42359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9099:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42354,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9089:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":42360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9089:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9076:50:63"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":42364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42362,"name":"h1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42343,"src":"9144:2:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":42363,"name":"h2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42353,"src":"9150:2:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9144:8:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":42310,"id":42365,"nodeType":"Return","src":"9137:15:63"}]},"documentation":{"id":42300,"nodeType":"StructuredDocumentation","src":"8525:68:63","text":"@dev compares two memberships and returns true if they are equal"},"implemented":true,"kind":"function","modifiers":[],"name":"membershipEqual","nameLocation":"8607:15:63","parameters":{"id":42307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42303,"mutability":"mutable","name":"mb1","nameLocation":"8641:3:63","nodeType":"VariableDeclaration","scope":42367,"src":"8623:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42302,"nodeType":"UserDefinedTypeName","pathNode":{"id":42301,"name":"Membership","nameLocations":["8623:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"8623:10:63"},"referencedDeclaration":50218,"src":"8623:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42306,"mutability":"mutable","name":"mb2","nameLocation":"8664:3:63","nodeType":"VariableDeclaration","scope":42367,"src":"8646:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42305,"nodeType":"UserDefinedTypeName","pathNode":{"id":42304,"name":"Membership","nameLocations":["8646:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"8646:10:63"},"referencedDeclaration":50218,"src":"8646:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"8622:46:63"},"returnParameters":{"id":42310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42367,"src":"8692:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42308,"name":"bool","nodeType":"ElementaryTypeName","src":"8692:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8691:6:63"},"scope":42944,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42446,"nodeType":"FunctionDefinition","src":"9363:689:63","nodes":[],"body":{"id":42445,"nodeType":"Block","src":"9428:624:63","nodes":[],"statements":[{"assignments":[42376],"declarations":[{"constant":false,"id":42376,"mutability":"mutable","name":"s","nameLocation":"9466:1:63","nodeType":"VariableDeclaration","scope":42445,"src":"9438:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42375,"nodeType":"UserDefinedTypeName","pathNode":{"id":42374,"name":"GatewayActorStorage","nameLocations":["9438:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"9438:19:63"},"referencedDeclaration":43068,"src":"9438:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42380,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42377,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"9470:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9493:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"9470:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9470:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9438:67:63"},{"assignments":[42383],"declarations":[{"constant":false,"id":42383,"mutability":"mutable","name":"subnetId","nameLocation":"9531:8:63","nodeType":"VariableDeclaration","scope":42445,"src":"9515:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42382,"nodeType":"UserDefinedTypeName","pathNode":{"id":42381,"name":"SubnetID","nameLocations":["9515:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"9515:8:63"},"referencedDeclaration":50077,"src":"9515:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":42392,"initialValue":{"arguments":[{"expression":{"id":42389,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42376,"src":"9580:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9582:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"9580:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":42384,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42371,"src":"9542:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9555:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"9542:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9563:2:63","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"9542:23:63","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":42387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9566:8:63","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"9542:32:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":42388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9575:4:63","memberName":"down","nodeType":"MemberAccess","referencedDeclaration":48051,"src":"9542:37:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":42391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9542:52:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"9515:79:63"},{"assignments":[42394,42397],"declarations":[{"constant":false,"id":42394,"mutability":"mutable","name":"registered","nameLocation":"9611:10:63","nodeType":"VariableDeclaration","scope":42445,"src":"9606:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42393,"name":"bool","nodeType":"ElementaryTypeName","src":"9606:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42397,"mutability":"mutable","name":"subnet","nameLocation":"9638:6:63","nodeType":"VariableDeclaration","scope":42445,"src":"9623:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42396,"nodeType":"UserDefinedTypeName","pathNode":{"id":42395,"name":"Subnet","nameLocations":["9623:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"9623:6:63"},"referencedDeclaration":50091,"src":"9623:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":42401,"initialValue":{"arguments":[{"id":42399,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"9658:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"id":42398,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[42655,42692],"referencedDeclaration":42692,"src":"9648:9:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":42400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9648:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"9605:62:63"},{"condition":{"id":42403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9682:11:63","subExpression":{"id":42402,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42394,"src":"9683:10:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42408,"nodeType":"IfStatement","src":"9678:70:63","trueBody":{"id":42407,"nodeType":"Block","src":"9695:53:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42404,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"9716:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9716:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42406,"nodeType":"RevertStatement","src":"9709:28:63"}]}},{"assignments":[42410],"declarations":[{"constant":false,"id":42410,"mutability":"mutable","name":"topDownNonce","nameLocation":"9765:12:63","nodeType":"VariableDeclaration","scope":42445,"src":"9758:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42409,"name":"uint64","nodeType":"ElementaryTypeName","src":"9758:6:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":42413,"initialValue":{"expression":{"id":42411,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42397,"src":"9780:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9787:12:63","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"9780:19:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"9758:41:63"},{"expression":{"id":42420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":42414,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42371,"src":"9810:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9823:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"9810:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9831:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"9810:26:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42419,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42410,"src":"9839:12:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9810:41:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42421,"nodeType":"ExpressionStatement","src":"9810:41:63"},{"expression":{"id":42428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42422,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42397,"src":"9861:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9868:12:63","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"9861:19:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42425,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42410,"src":"9883:12:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":42426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9898:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9883:16:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9861:38:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42429,"nodeType":"ExpressionStatement","src":"9861:38:63"},{"expression":{"id":42436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42430,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42397,"src":"9909:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9916:10:63","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"9909:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"id":42433,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42371,"src":"9930:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9943:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"9930:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9951:5:63","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"9930:26:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9909:47:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42437,"nodeType":"ExpressionStatement","src":"9909:47:63"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42439,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"9999:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":42440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10008:10:63","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47511,"src":"9999:19:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":42441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9999:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42442,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42371,"src":"10031:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"id":42438,"name":"NewTopDownMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41750,"src":"9972:17:63","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (address,struct CrossMsg memory)"}},"id":42443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9991:6:63","10022:7:63"],"names":["subnet","message"],"nodeType":"FunctionCall","src":"9972:73:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42444,"nodeType":"EmitStatement","src":"9967:78:63"}]},"documentation":{"id":42368,"nodeType":"StructuredDocumentation","src":"9165:193:63","text":"@notice commit topdown messages for their execution in the subnet. Adds the message to the subnet struct for future execution\n @param crossMessage - the cross message to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitTopDownMsg","nameLocation":"9372:16:63","parameters":{"id":42372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42371,"mutability":"mutable","name":"crossMessage","nameLocation":"9405:12:63","nodeType":"VariableDeclaration","scope":42446,"src":"9389:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":42370,"nodeType":"UserDefinedTypeName","pathNode":{"id":42369,"name":"CrossMsg","nameLocations":["9389:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"9389:8:63"},"referencedDeclaration":49974,"src":"9389:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"9388:30:63"},"returnParameters":{"id":42373,"nodeType":"ParameterList","parameters":[],"src":"9428:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42612,"nodeType":"FunctionDefinition","src":"10203:2248:63","nodes":[],"body":{"id":42611,"nodeType":"Block","src":"10269:2182:63","nodes":[],"statements":[{"assignments":[42455],"declarations":[{"constant":false,"id":42455,"mutability":"mutable","name":"s","nameLocation":"10307:1:63","nodeType":"VariableDeclaration","scope":42611,"src":"10279:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42454,"nodeType":"UserDefinedTypeName","pathNode":{"id":42453,"name":"GatewayActorStorage","nameLocations":["10279:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"10279:19:63"},"referencedDeclaration":43068,"src":"10279:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42459,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42456,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"10311:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10334:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"10311:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10311:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10279:67:63"},{"assignments":[42461],"declarations":[{"constant":false,"id":42461,"mutability":"mutable","name":"epoch","nameLocation":"10364:5:63","nodeType":"VariableDeclaration","scope":42611,"src":"10356:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42460,"name":"uint256","nodeType":"ElementaryTypeName","src":"10356:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42468,"initialValue":{"arguments":[{"expression":{"id":42463,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10385:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":42464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10391:6:63","memberName":"number","nodeType":"MemberAccess","src":"10385:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":42465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"10399:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10401:22:63","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":43045,"src":"10399:24:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42462,"name":"getNextEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42716,"src":"10372:12:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":42467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10372:52:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10356:68:63"},{"expression":{"id":42476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":42469,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42450,"src":"10475:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10488:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"10475:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10496:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"10475:26:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42474,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"10504:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10506:13:63","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":43033,"src":"10504:15:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10475:44:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42477,"nodeType":"ExpressionStatement","src":"10475:44:63"},{"expression":{"id":42482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42478,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"10529:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10531:13:63","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":43033,"src":"10529:15:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":42481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10548:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10529:20:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42483,"nodeType":"ExpressionStatement","src":"10529:20:63"},{"assignments":[42485,42488],"declarations":[{"constant":false,"id":42485,"mutability":"mutable","name":"exists","nameLocation":"10611:6:63","nodeType":"VariableDeclaration","scope":42611,"src":"10606:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42484,"name":"bool","nodeType":"ElementaryTypeName","src":"10606:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42488,"mutability":"mutable","name":"batch","nameLocation":"10644:5:63","nodeType":"VariableDeclaration","scope":42611,"src":"10619:30:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":42487,"nodeType":"UserDefinedTypeName","pathNode":{"id":42486,"name":"BottomUpMsgBatch","nameLocations":["10619:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"10619:16:63"},"referencedDeclaration":49945,"src":"10619:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":42493,"initialValue":{"arguments":[{"id":42491,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42461,"src":"10684:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42489,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"10653:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":42490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10664:19:63","memberName":"getBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41868,"src":"10653:30:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpMsgBatch_$49945_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpMsgBatch storage pointer)"}},"id":42492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10653:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpMsgBatch_$49945_storage_ptr_$","typeString":"tuple(bool,struct BottomUpMsgBatch storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"10605:85:63"},{"condition":{"id":42495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10704:7:63","subExpression":{"id":42494,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42485,"src":"10705:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42609,"nodeType":"Block","src":"10921:1524:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42518,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"11079:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11085:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"11079:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11090:6:63","memberName":"length","nodeType":"MemberAccess","src":"11079:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":42521,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"11100:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11102:23:63","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":43048,"src":"11100:25:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11079:46:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42607,"nodeType":"Block","src":"12232:203:63","statements":[{"expression":{"arguments":[{"id":42604,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42450,"src":"12407:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42599,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"12391:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12397:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"12391:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:4:63","memberName":"push","nodeType":"MemberAccess","src":"12391:15:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49974_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12391:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42606,"nodeType":"ExpressionStatement","src":"12391:29:63"}]},"id":42608,"nodeType":"IfStatement","src":"11075:1360:63","trueBody":{"id":42598,"nodeType":"Block","src":"11126:1100:63","statements":[{"assignments":[42525],"declarations":[{"constant":false,"id":42525,"mutability":"mutable","name":"epochCut","nameLocation":"11222:8:63","nodeType":"VariableDeclaration","scope":42598,"src":"11214:16:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42524,"name":"uint256","nodeType":"ElementaryTypeName","src":"11214:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42528,"initialValue":{"expression":{"id":42526,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"11233:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":42527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11239:6:63","memberName":"number","nodeType":"MemberAccess","src":"11233:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11214:31:63"},{"assignments":[42531],"declarations":[{"constant":false,"id":42531,"mutability":"mutable","name":"newBatch","nameLocation":"11287:8:63","nodeType":"VariableDeclaration","scope":42598,"src":"11263:32:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":42530,"nodeType":"UserDefinedTypeName","pathNode":{"id":42529,"name":"BottomUpMsgBatch","nameLocations":["11263:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"11263:16:63"},"referencedDeclaration":49945,"src":"11263:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":42545,"initialValue":{"arguments":[{"expression":{"id":42533,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"11347:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11349:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"11347:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},{"id":42535,"name":"epochCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42525,"src":"11395:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"expression":{"id":42540,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"11446:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11452:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"11446:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11457:6:63","memberName":"length","nodeType":"MemberAccess","src":"11446:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11431:14:63","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":42537,"nodeType":"UserDefinedTypeName","pathNode":{"id":42536,"name":"CrossMsg","nameLocations":["11435:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"11435:8:63"},"referencedDeclaration":49974,"src":"11435:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":42538,"nodeType":"ArrayTypeName","src":"11435:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":42543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11431:33:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"id":42532,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"11298:16:63","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpMsgBatch_$49945_storage_ptr_$","typeString":"type(struct BottomUpMsgBatch storage pointer)"}},"id":42544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11337:8:63","11382:11:63","11425:4:63"],"names":["subnetID","blockHeight","msgs"],"nodeType":"FunctionCall","src":"11298:185:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"VariableDeclarationStatement","src":"11263:220:63"},{"assignments":[42547],"declarations":[{"constant":false,"id":42547,"mutability":"mutable","name":"msgLength","nameLocation":"11509:9:63","nodeType":"VariableDeclaration","scope":42598,"src":"11501:17:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42546,"name":"uint256","nodeType":"ElementaryTypeName","src":"11501:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42551,"initialValue":{"expression":{"expression":{"id":42548,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"11521:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11527:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"11521:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11532:6:63","memberName":"length","nodeType":"MemberAccess","src":"11521:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11501:37:63"},{"body":{"id":42573,"nodeType":"Block","src":"11588:156:63","statements":[{"expression":{"id":42567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":42558,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42531,"src":"11610:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":42561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11619:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"11610:13:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42562,"indexExpression":{"id":42560,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42553,"src":"11624:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11610:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42563,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"11629:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11635:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"11629:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42566,"indexExpression":{"id":42565,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42553,"src":"11640:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11629:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"src":"11610:32:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42568,"nodeType":"ExpressionStatement","src":"11610:32:63"},{"id":42572,"nodeType":"UncheckedBlock","src":"11664:62:63","statements":[{"expression":{"id":42570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11700:3:63","subExpression":{"id":42569,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42553,"src":"11702:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42571,"nodeType":"ExpressionStatement","src":"11700:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42555,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42553,"src":"11572:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42556,"name":"msgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42547,"src":"11576:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11572:13:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42574,"initializationExpression":{"assignments":[42553],"declarations":[{"constant":false,"id":42553,"mutability":"mutable","name":"i","nameLocation":"11569:1:63","nodeType":"VariableDeclaration","scope":42574,"src":"11561:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42552,"name":"uint256","nodeType":"ElementaryTypeName","src":"11561:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42554,"nodeType":"VariableDeclarationStatement","src":"11561:9:63"},"nodeType":"ForStatement","src":"11556:188:63"},{"eventCall":{"arguments":[{"id":42576,"name":"epochCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42525,"src":"11863:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42577,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42531,"src":"11872:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}],"id":42575,"name":"NewBottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41758,"src":"11843:19:63","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (uint256,struct BottomUpMsgBatch memory)"}},"id":42578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11843:38:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42579,"nodeType":"EmitStatement","src":"11838:43:63"},{"expression":{"id":42582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"12010:17:63","subExpression":{"expression":{"id":42580,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"12017:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12023:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"12017:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42583,"nodeType":"ExpressionStatement","src":"12010:17:63"},{"expression":{"arguments":[{"id":42589,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42450,"src":"12137:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42584,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"12121:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12127:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"12121:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12132:4:63","memberName":"push","nodeType":"MemberAccess","src":"12121:15:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49974_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12121:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42591,"nodeType":"ExpressionStatement","src":"12121:29:63"},{"expression":{"arguments":[{"id":42595,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42531,"src":"12202:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}],"expression":{"id":42592,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"12169:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":42594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12180:21:63","memberName":"storeBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":42007,"src":"12169:32:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory)"}},"id":42596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12169:42:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42597,"nodeType":"ExpressionStatement","src":"12169:42:63"}]}}]},"id":42610,"nodeType":"IfStatement","src":"10700:1745:63","trueBody":{"id":42517,"nodeType":"Block","src":"10713:202:63","statements":[{"expression":{"id":42501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42496,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"10727:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10733:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49936,"src":"10727:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42499,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"10744:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10746:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"10744:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"src":"10727:30:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":42502,"nodeType":"ExpressionStatement","src":"10727:30:63"},{"expression":{"id":42507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42503,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"10771:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10777:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"10771:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42506,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42461,"src":"10791:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10771:25:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42508,"nodeType":"ExpressionStatement","src":"10771:25:63"},{"expression":{"arguments":[{"id":42514,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42450,"src":"10891:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42509,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"10875:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10881:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"10875:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10886:4:63","memberName":"push","nodeType":"MemberAccess","src":"10875:15:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49974_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10875:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42516,"nodeType":"ExpressionStatement","src":"10875:29:63"}]}}]},"documentation":{"id":42447,"nodeType":"StructuredDocumentation","src":"10058:140:63","text":"@notice Commits a new cross-net message to a message batch for execution\n @param crossMessage - the cross message to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitBottomUpMsg","nameLocation":"10212:17:63","parameters":{"id":42451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42450,"mutability":"mutable","name":"crossMessage","nameLocation":"10246:12:63","nodeType":"VariableDeclaration","scope":42612,"src":"10230:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":42449,"nodeType":"UserDefinedTypeName","pathNode":{"id":42448,"name":"CrossMsg","nameLocations":["10230:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"10230:8:63"},"referencedDeclaration":49974,"src":"10230:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"10229:30:63"},"returnParameters":{"id":42452,"nodeType":"ParameterList","parameters":[],"src":"10269:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42655,"nodeType":"FunctionDefinition","src":"12666:372:63","nodes":[],"body":{"id":42654,"nodeType":"Block","src":"12758:280:63","nodes":[],"statements":[{"assignments":[42625],"declarations":[{"constant":false,"id":42625,"mutability":"mutable","name":"s","nameLocation":"12796:1:63","nodeType":"VariableDeclaration","scope":42654,"src":"12768:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42624,"nodeType":"UserDefinedTypeName","pathNode":{"id":42623,"name":"GatewayActorStorage","nameLocations":["12768:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"12768:19:63"},"referencedDeclaration":43068,"src":"12768:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42629,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42626,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"12800:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12823:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"12800:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12800:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12768:67:63"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":42635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42630,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42615,"src":"12849:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":42633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12866:1:63","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":42632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12858:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42631,"name":"address","nodeType":"ElementaryTypeName","src":"12858:7:63","typeDescriptions":{}}},"id":42634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12858:10:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12849:19:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42640,"nodeType":"IfStatement","src":"12845:78:63","trueBody":{"id":42639,"nodeType":"Block","src":"12870:53:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42636,"name":"InvalidActorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37402,"src":"12891:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12891:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42638,"nodeType":"RevertStatement","src":"12884:28:63"}]}},{"assignments":[42643],"declarations":[{"constant":false,"id":42643,"mutability":"mutable","name":"subnetId","nameLocation":"12948:8:63","nodeType":"VariableDeclaration","scope":42654,"src":"12932:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42642,"nodeType":"UserDefinedTypeName","pathNode":{"id":42641,"name":"SubnetID","nameLocations":["12932:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"12932:8:63"},"referencedDeclaration":50077,"src":"12932:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":42649,"initialValue":{"arguments":[{"id":42647,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42615,"src":"12988:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":42644,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42625,"src":"12959:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12961:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"12959:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":42646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12973:14:63","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"12959:28:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":42648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12959:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"12932:62:63"},{"expression":{"arguments":[{"id":42651,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42643,"src":"13022:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"id":42650,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[42655,42692],"referencedDeclaration":42692,"src":"13012:9:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":42652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13012:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"functionReturnParameters":42622,"id":42653,"nodeType":"Return","src":"13005:26:63"}]},"documentation":{"id":42613,"nodeType":"StructuredDocumentation","src":"12457:204:63","text":"@notice returns the subnet created by a validator\n @param actor the validator that created the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"12675:9:63","parameters":{"id":42616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42615,"mutability":"mutable","name":"actor","nameLocation":"12693:5:63","nodeType":"VariableDeclaration","scope":42655,"src":"12685:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42614,"name":"address","nodeType":"ElementaryTypeName","src":"12685:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12684:15:63"},"returnParameters":{"id":42622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42618,"mutability":"mutable","name":"found","nameLocation":"12728:5:63","nodeType":"VariableDeclaration","scope":42655,"src":"12723:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42617,"name":"bool","nodeType":"ElementaryTypeName","src":"12723:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42621,"mutability":"mutable","name":"subnet","nameLocation":"12750:6:63","nodeType":"VariableDeclaration","scope":42655,"src":"12735:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42620,"nodeType":"UserDefinedTypeName","pathNode":{"id":42619,"name":"Subnet","nameLocations":["12735:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"12735:6:63"},"referencedDeclaration":50091,"src":"12735:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"12722:35:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42692,"nodeType":"FunctionDefinition","src":"13234:272:63","nodes":[],"body":{"id":42691,"nodeType":"Block","src":"13337:169:63","nodes":[],"statements":[{"assignments":[42669],"declarations":[{"constant":false,"id":42669,"mutability":"mutable","name":"s","nameLocation":"13375:1:63","nodeType":"VariableDeclaration","scope":42691,"src":"13347:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42668,"nodeType":"UserDefinedTypeName","pathNode":{"id":42667,"name":"GatewayActorStorage","nameLocations":["13347:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"13347:19:63"},"referencedDeclaration":43068,"src":"13347:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42673,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42670,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"13379:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13402:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"13379:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13379:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13347:67:63"},{"expression":{"id":42681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42674,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42665,"src":"13424:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42669,"src":"13433:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13435:7:63","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42973,"src":"13433:9:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":42680,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42677,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42659,"src":"13443:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":42678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13452:6:63","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"13443:15:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":42679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13443:17:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13433:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage","typeString":"struct Subnet storage ref"}},"src":"13424:37:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42682,"nodeType":"ExpressionStatement","src":"13424:37:63"},{"expression":{"id":42689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42683,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42662,"src":"13471:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13479:20:63","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":42684,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42665,"src":"13480:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13487:2:63","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"13480:9:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":42686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13490:7:63","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48071,"src":"13480:17:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":42687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13471:28:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42690,"nodeType":"ExpressionStatement","src":"13471:28:63"}]},"documentation":{"id":42656,"nodeType":"StructuredDocumentation","src":"13044:185:63","text":"@notice returns the subnet with the given id\n @param subnetId the id of the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"13243:9:63","parameters":{"id":42660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42659,"mutability":"mutable","name":"subnetId","nameLocation":"13269:8:63","nodeType":"VariableDeclaration","scope":42692,"src":"13253:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42658,"nodeType":"UserDefinedTypeName","pathNode":{"id":42657,"name":"SubnetID","nameLocations":["13253:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"13253:8:63"},"referencedDeclaration":50077,"src":"13253:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"13252:26:63"},"returnParameters":{"id":42666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42662,"mutability":"mutable","name":"found","nameLocation":"13307:5:63","nodeType":"VariableDeclaration","scope":42692,"src":"13302:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42661,"name":"bool","nodeType":"ElementaryTypeName","src":"13302:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42665,"mutability":"mutable","name":"subnet","nameLocation":"13329:6:63","nodeType":"VariableDeclaration","scope":42692,"src":"13314:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42664,"nodeType":"UserDefinedTypeName","pathNode":{"id":42663,"name":"Subnet","nameLocations":["13314:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"13314:6:63"},"referencedDeclaration":50091,"src":"13314:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"13301:35:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42716,"nodeType":"FunctionDefinition","src":"13686:175:63","nodes":[],"body":{"id":42715,"nodeType":"Block","src":"13782:79:63","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":42704,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42695,"src":"13808:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13801:6:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":42702,"name":"uint64","nodeType":"ElementaryTypeName","src":"13801:6:63","typeDescriptions":{}}},"id":42705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13801:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":42706,"name":"checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42697,"src":"13823:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13801:33:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":42708,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13800:35:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":42709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13838:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13800:39:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":42711,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13799:41:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":42712,"name":"checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42697,"src":"13843:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13799:55:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":42701,"id":42714,"nodeType":"Return","src":"13792:62:63"}]},"documentation":{"id":42693,"nodeType":"StructuredDocumentation","src":"13512:169:63","text":"@notice method that gives the epoch for a given block number and checkpoint period\n @return epoch - the epoch for the given block number and checkpoint period"},"implemented":true,"kind":"function","modifiers":[],"name":"getNextEpoch","nameLocation":"13695:12:63","parameters":{"id":42698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42695,"mutability":"mutable","name":"blockNumber","nameLocation":"13716:11:63","nodeType":"VariableDeclaration","scope":42716,"src":"13708:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42694,"name":"uint256","nodeType":"ElementaryTypeName","src":"13708:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42697,"mutability":"mutable","name":"checkPeriod","nameLocation":"13737:11:63","nodeType":"VariableDeclaration","scope":42716,"src":"13729:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42696,"name":"uint256","nodeType":"ElementaryTypeName","src":"13729:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13707:42:63"},"returnParameters":{"id":42701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42716,"src":"13773:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42699,"name":"uint256","nodeType":"ElementaryTypeName","src":"13773:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13772:9:63"},"scope":42944,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42752,"nodeType":"FunctionDefinition","src":"14225:318:63","nodes":[],"body":{"id":42751,"nodeType":"Block","src":"14316:227:63","nodes":[],"statements":[{"assignments":[42728],"declarations":[{"constant":false,"id":42728,"mutability":"mutable","name":"crossMsgsLength","nameLocation":"14334:15:63","nodeType":"VariableDeclaration","scope":42751,"src":"14326:23:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42727,"name":"uint256","nodeType":"ElementaryTypeName","src":"14326:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42731,"initialValue":{"expression":{"id":42729,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42724,"src":"14352:9:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14362:6:63","memberName":"length","nodeType":"MemberAccess","src":"14352:16:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14326:42:63"},{"body":{"id":42749,"nodeType":"Block","src":"14417:120:63","statements":[{"expression":{"arguments":[{"id":42739,"name":"arrivingFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42720,"src":"14440:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"baseExpression":{"id":42740,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42724,"src":"14454:9:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42742,"indexExpression":{"id":42741,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42733,"src":"14464:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14454:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"id":42738,"name":"applyMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42907,"src":"14431:8:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory)"}},"id":42743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14431:36:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42744,"nodeType":"ExpressionStatement","src":"14431:36:63"},{"id":42748,"nodeType":"UncheckedBlock","src":"14481:46:63","statements":[{"expression":{"id":42746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14509:3:63","subExpression":{"id":42745,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42733,"src":"14511:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42747,"nodeType":"ExpressionStatement","src":"14509:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42735,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42733,"src":"14394:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42736,"name":"crossMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42728,"src":"14398:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14394:19:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42750,"initializationExpression":{"assignments":[42733],"declarations":[{"constant":false,"id":42733,"mutability":"mutable","name":"i","nameLocation":"14391:1:63","nodeType":"VariableDeclaration","scope":42750,"src":"14383:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42732,"name":"uint256","nodeType":"ElementaryTypeName","src":"14383:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42734,"nodeType":"VariableDeclarationStatement","src":"14383:9:63"},"nodeType":"ForStatement","src":"14378:159:63"}]},"documentation":{"id":42717,"nodeType":"StructuredDocumentation","src":"13867:353:63","text":"@notice applies a cross-net messages coming from some other subnet.\n The forwarder argument determines the previous subnet that submitted the checkpoint triggering the cross-net message execution.\n @param arrivingFrom - the immediate subnet from which this message is arriving\n @param crossMsgs - the cross-net messages to apply"},"implemented":true,"kind":"function","modifiers":[],"name":"applyMessages","nameLocation":"14234:13:63","parameters":{"id":42725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42720,"mutability":"mutable","name":"arrivingFrom","nameLocation":"14264:12:63","nodeType":"VariableDeclaration","scope":42752,"src":"14248:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42719,"nodeType":"UserDefinedTypeName","pathNode":{"id":42718,"name":"SubnetID","nameLocations":["14248:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"14248:8:63"},"referencedDeclaration":50077,"src":"14248:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":42724,"mutability":"mutable","name":"crossMsgs","nameLocation":"14296:9:63","nodeType":"VariableDeclaration","scope":42752,"src":"14278:27:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":42722,"nodeType":"UserDefinedTypeName","pathNode":{"id":42721,"name":"CrossMsg","nameLocations":["14278:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"14278:8:63"},"referencedDeclaration":49974,"src":"14278:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":42723,"nodeType":"ArrayTypeName","src":"14278:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"14247:59:63"},"returnParameters":{"id":42726,"nodeType":"ParameterList","parameters":[],"src":"14316:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42907,"nodeType":"FunctionDefinition","src":"14837:2300:63","nodes":[],"body":{"id":42906,"nodeType":"Block","src":"14920:2217:63","nodes":[],"statements":[{"assignments":[42764],"declarations":[{"constant":false,"id":42764,"mutability":"mutable","name":"s","nameLocation":"14958:1:63","nodeType":"VariableDeclaration","scope":42906,"src":"14930:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42763,"nodeType":"UserDefinedTypeName","pathNode":{"id":42762,"name":"GatewayActorStorage","nameLocations":["14930:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"14930:19:63"},"referencedDeclaration":43068,"src":"14930:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42768,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42765,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"14962:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14985:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"14962:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14962:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14930:67:63"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"expression":{"id":42769,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"15012:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"15012:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15029:2:63","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"15012:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":42772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15032:8:63","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"15012:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":42773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15041:7:63","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48071,"src":"15012:36:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":42774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15012:38:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42779,"nodeType":"IfStatement","src":"15008:102:63","trueBody":{"id":42778,"nodeType":"Block","src":"15052:58:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42775,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"15073:24:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15073:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42777,"nodeType":"RevertStatement","src":"15066:33:63"}]}},{"condition":{"id":42788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15291:51:63","subExpression":{"arguments":[{"expression":{"id":42785,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42764,"src":"15328:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15330:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"15328:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":42780,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"15292:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15301:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"15292:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15309:2:63","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"15292:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":42783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15312:8:63","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"15292:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":42784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15321:6:63","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"15292:35:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":42787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15292:50:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42805,"nodeType":"IfStatement","src":"15287:172:63","trueBody":{"id":42804,"nodeType":"Block","src":"15344:115:63","statements":[{"assignments":[42790],"declarations":[{"constant":false,"id":42790,"mutability":"mutable","name":"cid","nameLocation":"15366:3:63","nodeType":"VariableDeclaration","scope":42804,"src":"15358:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15358:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42794,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42791,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"15372:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15381:6:63","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"15372:15:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":42793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15372:17:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15358:31:63"},{"expression":{"id":42801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":42795,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42764,"src":"15403:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15405:7:63","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42988,"src":"15403:9:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":42799,"indexExpression":{"id":42797,"name":"cid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42790,"src":"15413:3:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15403:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42800,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"15420:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"15403:25:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"id":42802,"nodeType":"ExpressionStatement","src":"15403:25:63"},{"functionReturnParameters":42761,"id":42803,"nodeType":"Return","src":"15442:7:63"}]}},{"assignments":[42808],"declarations":[{"constant":false,"id":42808,"mutability":"mutable","name":"supplySource","nameLocation":"15633:12:63","nodeType":"VariableDeclaration","scope":42906,"src":"15613:32:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":42807,"nodeType":"UserDefinedTypeName","pathNode":{"id":42806,"name":"SupplySource","nameLocations":["15613:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"15613:12:63"},"referencedDeclaration":50226,"src":"15613:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":42809,"nodeType":"VariableDeclarationStatement","src":"15613:32:63"},{"assignments":[42812],"declarations":[{"constant":false,"id":42812,"mutability":"mutable","name":"applyType","nameLocation":"15666:9:63","nodeType":"VariableDeclaration","scope":42906,"src":"15655:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"typeName":{"id":42811,"nodeType":"UserDefinedTypeName","pathNode":{"id":42810,"name":"IPCMsgType","nameLocations":["15655:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":37364,"src":"15655:10:63"},"referencedDeclaration":37364,"src":"15655:10:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"id":42819,"initialValue":{"arguments":[{"expression":{"id":42816,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42764,"src":"15705:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15707:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"15705:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":42813,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"15678:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15687:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"15678:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15695:9:63","memberName":"applyType","nodeType":"MemberAccess","referencedDeclaration":47444,"src":"15678:26:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_StorableMsg_$49991_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_enum$_IPCMsgType_$37364_$attached_to$_t_struct$_StorableMsg_$49991_memory_ptr_$","typeString":"function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)"}},"id":42818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15678:41:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"VariableDeclarationStatement","src":"15655:64:63"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":42823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42820,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42812,"src":"15733:9:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":42821,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"15746:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":42822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15757:8:63","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":37363,"src":"15746:19:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"15733:32:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":42873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42870,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42812,"src":"16510:9:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":42871,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"16523:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":42872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16534:7:63","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"16523:18:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"16510:31:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42898,"nodeType":"IfStatement","src":"16506:533:63","trueBody":{"id":42897,"nodeType":"Block","src":"16543:496:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42764,"src":"16677:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16679:19:63","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":43036,"src":"16677:21:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":42876,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"16702:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16711:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"16702:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16719:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"16702:22:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16677:47:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42884,"nodeType":"IfStatement","src":"16673:115:63","trueBody":{"id":42883,"nodeType":"Block","src":"16726:62:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42880,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"16751:20:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16751:22:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42882,"nodeType":"RevertStatement","src":"16744:29:63"}]}},{"expression":{"id":42889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42885,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42764,"src":"16801:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16803:19:63","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":43036,"src":"16801:21:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":42888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16826:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16801:26:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42890,"nodeType":"ExpressionStatement","src":"16801:26:63"},{"expression":{"id":42895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42891,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42808,"src":"16986:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42892,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"17001:18:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":42893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17020:6:63","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"17001:25:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":42894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17001:27:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"src":"16986:42:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":42896,"nodeType":"ExpressionStatement","src":"16986:42:63"}]}},"id":42899,"nodeType":"IfStatement","src":"15729:1310:63","trueBody":{"id":42869,"nodeType":"Block","src":"15767:733:63","statements":[{"assignments":[42825,42828],"declarations":[{"constant":false,"id":42825,"mutability":"mutable","name":"registered","nameLocation":"15908:10:63","nodeType":"VariableDeclaration","scope":42869,"src":"15903:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42824,"name":"bool","nodeType":"ElementaryTypeName","src":"15903:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42828,"mutability":"mutable","name":"subnet","nameLocation":"15935:6:63","nodeType":"VariableDeclaration","scope":42869,"src":"15920:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42827,"nodeType":"UserDefinedTypeName","pathNode":{"id":42826,"name":"Subnet","nameLocations":["15920:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"15920:6:63"},"referencedDeclaration":50091,"src":"15920:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":42833,"initialValue":{"arguments":[{"id":42831,"name":"arrivingFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42756,"src":"15966:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":42829,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"15945:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":42830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15956:9:63","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"15945:20:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":42832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15945:34:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"15902:77:63"},{"condition":{"id":42835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15997:11:63","subExpression":{"id":42834,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42825,"src":"15998:10:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42840,"nodeType":"IfStatement","src":"15993:78:63","trueBody":{"id":42839,"nodeType":"Block","src":"16010:61:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42836,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"16035:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16035:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42838,"nodeType":"RevertStatement","src":"16028:28:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42841,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42828,"src":"16088:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16095:20:63","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"16088:27:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":42843,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"16119:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16128:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"16119:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16136:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"16119:22:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16088:53:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42851,"nodeType":"IfStatement","src":"16084:121:63","trueBody":{"id":42850,"nodeType":"Block","src":"16143:62:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42847,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"16168:20:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16168:22:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42849,"nodeType":"RevertStatement","src":"16161:29:63"}]}},{"expression":{"id":42856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42852,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42828,"src":"16218:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16225:20:63","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"16218:27:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":42855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16249:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16218:32:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42857,"nodeType":"ExpressionStatement","src":"16218:32:63"},{"expression":{"id":42867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42858,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42808,"src":"16415:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":42860,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42828,"src":"16453:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16460:2:63","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"16453:9:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":42862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16463:8:63","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"16453:18:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":42863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:20:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42859,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"16430:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":42864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16430:44:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":42865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16475:12:63","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":50886,"src":"16430:57:63","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":42866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16430:59:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"src":"16415:74:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":42868,"nodeType":"ExpressionStatement","src":"16415:74:63"}]}},{"expression":{"arguments":[{"id":42903,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42808,"src":"17117:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":42900,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"17100:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17109:7:63","memberName":"execute","nodeType":"MemberAccess","referencedDeclaration":40724,"src":"17100:16:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$_t_struct$_SupplySource_$50226_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory,struct SupplySource memory) returns (bytes memory)"}},"id":42904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:30:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":42905,"nodeType":"ExpressionStatement","src":"17100:30:63"}]},"documentation":{"id":42753,"nodeType":"StructuredDocumentation","src":"14549:283:63","text":"@notice executes a cross message if its destination is the current network, otherwise adds it to the postbox to be propagated further\n @param arrivingFrom - the immediate subnet from which this message is arriving\n @param crossMsg - the cross message to be executed"},"implemented":true,"kind":"function","modifiers":[],"name":"applyMsg","nameLocation":"14846:8:63","parameters":{"id":42760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42756,"mutability":"mutable","name":"arrivingFrom","nameLocation":"14871:12:63","nodeType":"VariableDeclaration","scope":42907,"src":"14855:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42755,"nodeType":"UserDefinedTypeName","pathNode":{"id":42754,"name":"SubnetID","nameLocations":["14855:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"14855:8:63"},"referencedDeclaration":50077,"src":"14855:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":42759,"mutability":"mutable","name":"crossMsg","nameLocation":"14901:8:63","nodeType":"VariableDeclaration","scope":42907,"src":"14885:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":42758,"nodeType":"UserDefinedTypeName","pathNode":{"id":42757,"name":"CrossMsg","nameLocations":["14885:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"14885:8:63"},"referencedDeclaration":49974,"src":"14885:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"14854:56:63"},"returnParameters":{"id":42761,"nodeType":"ParameterList","parameters":[],"src":"14920:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42943,"nodeType":"FunctionDefinition","src":"17298:361:63","nodes":[],"body":{"id":42942,"nodeType":"Block","src":"17367:292:63","nodes":[],"statements":[{"assignments":[42916],"declarations":[{"constant":false,"id":42916,"mutability":"mutable","name":"s","nameLocation":"17405:1:63","nodeType":"VariableDeclaration","scope":42942,"src":"17377:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42915,"nodeType":"UserDefinedTypeName","pathNode":{"id":42914,"name":"GatewayActorStorage","nameLocations":["17377:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"17377:19:63"},"referencedDeclaration":43068,"src":"17377:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42920,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42917,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"17409:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17432:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"17409:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17409:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17377:67:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42921,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42911,"src":"17459:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":42922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17465:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"17459:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17470:6:63","memberName":"length","nodeType":"MemberAccess","src":"17459:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":42924,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42916,"src":"17479:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17481:23:63","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":43048,"src":"17479:25:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17459:45:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42931,"nodeType":"IfStatement","src":"17455:108:63","trueBody":{"id":42930,"nodeType":"Block","src":"17506:57:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42927,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"17527:23:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17527:25:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42929,"nodeType":"RevertStatement","src":"17520:32:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42932,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42911,"src":"17576:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":42933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17582:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"17576:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17587:6:63","memberName":"length","nodeType":"MemberAccess","src":"17576:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":42935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17597:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17576:22:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42941,"nodeType":"IfStatement","src":"17572:81:63","trueBody":{"id":42940,"nodeType":"Block","src":"17600:53:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42937,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"17621:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17621:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42939,"nodeType":"RevertStatement","src":"17614:28:63"}]}}]},"documentation":{"id":42908,"nodeType":"StructuredDocumentation","src":"17143:150:63","text":"@notice Checks the length of a message batch, ensuring it is in (0, maxMsgsPerBottomUpBatch).\n @param batch The batch of messages to check."},"implemented":true,"kind":"function","modifiers":[],"name":"checkMsgLength","nameLocation":"17307:14:63","parameters":{"id":42912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42911,"mutability":"mutable","name":"batch","nameLocation":"17346:5:63","nodeType":"VariableDeclaration","scope":42943,"src":"17322:29:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":42910,"nodeType":"UserDefinedTypeName","pathNode":{"id":42909,"name":"BottomUpMsgBatch","nameLocations":["17322:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"17322:16:63"},"referencedDeclaration":49945,"src":"17322:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"17321:31:63"},"returnParameters":{"id":42913,"nodeType":"ParameterList","parameters":[],"src":"17367:0:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGateway","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[42944],"name":"LibGateway","nameLocation":"1037:10:63","scope":42945,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":63} \ No newline at end of file +{"abi":[{"type":"event","name":"MembershipUpdated","inputs":[{"name":"","type":"tuple","indexed":false,"internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"anonymous":false},{"type":"event","name":"NewBottomUpMsgBatch","inputs":[{"name":"epoch","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"batch","type":"tuple","indexed":false,"internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"anonymous":false},{"type":"event","name":"NewTopDownMessage","inputs":[{"name":"subnet","type":"address","indexed":true,"internalType":"address"},{"name":"message","type":"tuple","indexed":false,"internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220eaae80ed3eb90d5c6bffe222fb115c9c48ad94a50b3e12be6a3172100a58c3cb64736f6c63430008130033","sourceMap":"1029:16632:63:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220eaae80ed3eb90d5c6bffe222fb115c9c48ad94a50b3e12be6a3172100a58c3cb64736f6c63430008130033","sourceMap":"1029:16632:63:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"MembershipUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"NewBottomUpMsgBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"indexed\":false,\"internalType\":\"struct CrossMsg\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"NewTopDownMessage\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"NewBottomUpMsgBatch(uint256,((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"details\":\"event emitted when there is a new bottom-up message batch to be signed.\"},\"NewTopDownMessage(address,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"details\":\"subnet refers to the next \\\"down\\\" subnet that the `CrossMsg.message.to` should be forwarded to.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGateway.sol\":\"LibGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}],"indexed":false}],"type":"event","name":"MembershipUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":true},{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"indexed":false}],"type":"event","name":"NewBottomUpMsgBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"subnet","type":"address","indexed":true},{"internalType":"struct CrossMsg","name":"message","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}],"indexed":false}],"type":"event","name":"NewTopDownMessage","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGateway.sol":"LibGateway"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGateway.sol","id":42889,"exportedSymbols":{"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49885],"BottomUpMsgBatch":[49898],"CrossMsg":[49927],"CrossMsgHelper":[40725],"GatewayActorStorage":[43012],"IPCMsgType":[37364],"InvalidActorAddress":[37402],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"LibGateway":[42888],"LibGatewayActorStorage":[43023],"MaxMsgsPerBatchExceeded":[37382],"Membership":[50171],"NotRegisteredSubnet":[37482],"OldConfigurationNumber":[37492],"ParentFinality":[49871],"ParentFinalityAlreadyCommitted":[37498],"StorableMsg":[49944],"StorableMsgHelper":[47414],"Subnet":[50044],"SubnetActorGetterFacet":[51235],"SubnetID":[50030],"SubnetIDHelper":[48025],"SupplySource":[50179],"SupplySourceHelper":[48351]},"nodeType":"SourceUnit","src":"46:17616:63","nodes":[{"id":41628,"nodeType":"PragmaDirective","src":"46:23:63","nodes":[],"literals":["solidity","0.8",".19"]},{"id":41630,"nodeType":"ImportDirective","src":"71:51:63","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":42889,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":41629,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"79:10:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41633,"nodeType":"ImportDirective","src":"123:94:63","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":42889,"sourceUnit":43082,"symbolAliases":[{"foreign":{"id":41631,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43012,"src":"131:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41632,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"152:22:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41637,"nodeType":"ImportDirective","src":"218:69:63","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42889,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":41634,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"226:8:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41635,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"236:6:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41636,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"244:12:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41639,"nodeType":"ImportDirective","src":"288:76:63","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":42889,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":41638,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"296:22:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41646,"nodeType":"ImportDirective","src":"365:134:63","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":42889,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":41640,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"373:8:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41641,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"383:11:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41642,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49898,"src":"396:16:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41643,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49898,"src":"414:16:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41644,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"432:18:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41645,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"452:14:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41648,"nodeType":"ImportDirective","src":"500:49:63","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42889,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":41647,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50171,"src":"508:10:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41657,"nodeType":"ImportDirective","src":"550:231:63","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":42889,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":41649,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"558:23:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41650,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"583:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41651,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"604:20:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41652,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"626:24:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41653,"name":"OldConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37492,"src":"652:22:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41654,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"676:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41655,"name":"InvalidActorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37402,"src":"697:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41656,"name":"ParentFinalityAlreadyCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37498,"src":"718:30:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41659,"nodeType":"ImportDirective","src":"782:57:63","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":42889,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":41658,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"790:14:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41661,"nodeType":"ImportDirective","src":"840:57:63","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":42889,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":41660,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"848:14:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41663,"nodeType":"ImportDirective","src":"898:65:63","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":42889,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":41662,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"906:18:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41665,"nodeType":"ImportDirective","src":"964:63:63","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":42889,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":41664,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"972:17:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42888,"nodeType":"ContractDefinition","src":"1029:16632:63","nodes":[{"id":41669,"nodeType":"UsingForDirective","src":"1054:34:63","nodes":[],"global":false,"libraryName":{"id":41666,"name":"SubnetIDHelper","nameLocations":["1060:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"1060:14:63"},"typeName":{"id":41668,"nodeType":"UserDefinedTypeName","pathNode":{"id":41667,"name":"SubnetID","nameLocations":["1079:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1079:8:63"},"referencedDeclaration":50030,"src":"1079:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":41673,"nodeType":"UsingForDirective","src":"1093:34:63","nodes":[],"global":false,"libraryName":{"id":41670,"name":"CrossMsgHelper","nameLocations":["1099:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"1099:14:63"},"typeName":{"id":41672,"nodeType":"UserDefinedTypeName","pathNode":{"id":41671,"name":"CrossMsg","nameLocations":["1118:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"1118:8:63"},"referencedDeclaration":49927,"src":"1118:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":41677,"nodeType":"UsingForDirective","src":"1132:42:63","nodes":[],"global":false,"libraryName":{"id":41674,"name":"SupplySourceHelper","nameLocations":["1138:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"1138:18:63"},"typeName":{"id":41676,"nodeType":"UserDefinedTypeName","pathNode":{"id":41675,"name":"SupplySource","nameLocations":["1161:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"1161:12:63"},"referencedDeclaration":50179,"src":"1161:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":41681,"nodeType":"UsingForDirective","src":"1179:40:63","nodes":[],"global":false,"libraryName":{"id":41678,"name":"StorableMsgHelper","nameLocations":["1185:17:63"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"1185:17:63"},"typeName":{"id":41680,"nodeType":"UserDefinedTypeName","pathNode":{"id":41679,"name":"StorableMsg","nameLocations":["1207:11:63"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"1207:11:63"},"referencedDeclaration":49944,"src":"1207:11:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":41686,"nodeType":"EventDefinition","src":"1225:36:63","nodes":[],"anonymous":false,"eventSelector":"7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481","name":"MembershipUpdated","nameLocation":"1231:17:63","parameters":{"id":41685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41684,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41686,"src":"1249:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership"},"typeName":{"id":41683,"nodeType":"UserDefinedTypeName","pathNode":{"id":41682,"name":"Membership","nameLocations":["1249:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"1249:10:63"},"referencedDeclaration":50171,"src":"1249:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"1248:12:63"}},{"id":41694,"nodeType":"EventDefinition","src":"1374:66:63","nodes":[],"anonymous":false,"documentation":{"id":41687,"nodeType":"StructuredDocumentation","src":"1266:103:63","text":"@dev subnet refers to the next \"down\" subnet that the `CrossMsg.message.to` should be forwarded to."},"eventSelector":"392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096","name":"NewTopDownMessage","nameLocation":"1380:17:63","parameters":{"id":41693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41689,"indexed":true,"mutability":"mutable","name":"subnet","nameLocation":"1414:6:63","nodeType":"VariableDeclaration","scope":41694,"src":"1398:22:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41688,"name":"address","nodeType":"ElementaryTypeName","src":"1398:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41692,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"1431:7:63","nodeType":"VariableDeclaration","scope":41694,"src":"1422:16:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":41691,"nodeType":"UserDefinedTypeName","pathNode":{"id":41690,"name":"CrossMsg","nameLocations":["1422:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"1422:8:63"},"referencedDeclaration":49927,"src":"1422:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1397:42:63"}},{"id":41702,"nodeType":"EventDefinition","src":"1530:73:63","nodes":[],"anonymous":false,"documentation":{"id":41695,"nodeType":"StructuredDocumentation","src":"1445:80:63","text":"@dev event emitted when there is a new bottom-up message batch to be signed."},"eventSelector":"39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e","name":"NewBottomUpMsgBatch","nameLocation":"1536:19:63","parameters":{"id":41701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41697,"indexed":true,"mutability":"mutable","name":"epoch","nameLocation":"1572:5:63","nodeType":"VariableDeclaration","scope":41702,"src":"1556:21:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41696,"name":"uint256","nodeType":"ElementaryTypeName","src":"1556:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41700,"indexed":false,"mutability":"mutable","name":"batch","nameLocation":"1596:5:63","nodeType":"VariableDeclaration","scope":41702,"src":"1579:22:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41699,"nodeType":"UserDefinedTypeName","pathNode":{"id":41698,"name":"BottomUpMsgBatch","nameLocations":["1579:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"1579:16:63"},"referencedDeclaration":49898,"src":"1579:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"1555:47:63"}},{"id":41746,"nodeType":"FunctionDefinition","src":"1824:419:63","nodes":[],"body":{"id":41745,"nodeType":"Block","src":"1981:262:63","nodes":[],"statements":[{"assignments":[41715],"declarations":[{"constant":false,"id":41715,"mutability":"mutable","name":"s","nameLocation":"2019:1:63","nodeType":"VariableDeclaration","scope":41745,"src":"1991:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41714,"nodeType":"UserDefinedTypeName","pathNode":{"id":41713,"name":"GatewayActorStorage","nameLocations":["1991:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"1991:19:63"},"referencedDeclaration":43012,"src":"1991:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41719,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41716,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"2023:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2046:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"2023:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2023:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1991:67:63"},{"expression":{"id":41728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41720,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41708,"src":"2068:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":41723,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2100:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":41724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2106:6:63","memberName":"number","nodeType":"MemberAccess","src":"2100:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":41725,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41715,"src":"2114:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2116:19:63","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":42986,"src":"2114:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41721,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"2076:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":41722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2087:12:63","memberName":"getNextEpoch","nodeType":"MemberAccess","referencedDeclaration":42660,"src":"2076:23:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":41727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2076:60:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2068:68:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41729,"nodeType":"ExpressionStatement","src":"2068:68:63"},{"expression":{"id":41735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41730,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41711,"src":"2146:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41731,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41715,"src":"2159:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2161:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42946,"src":"2159:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41734,"indexExpression":{"id":41733,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41708,"src":"2181:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2159:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"2146:41:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41736,"nodeType":"ExpressionStatement","src":"2146:41:63"},{"expression":{"id":41743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41737,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41706,"src":"2197:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2206:30:63","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":41738,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41711,"src":"2207:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2218:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49875,"src":"2207:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":41740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2227:7:63","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48024,"src":"2207:27:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":41741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2207:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2197:39:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41744,"nodeType":"ExpressionStatement","src":"2197:39:63"}]},"documentation":{"id":41703,"nodeType":"StructuredDocumentation","src":"1609:210:63","text":"@notice returns the current bottom-up checkpoint\n @return exists - whether the checkpoint exists\n @return epoch - the epoch of the checkpoint\n @return checkpoint - the checkpoint struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getCurrentBottomUpCheckpoint","nameLocation":"1833:28:63","parameters":{"id":41704,"nodeType":"ParameterList","parameters":[],"src":"1861:2:63"},"returnParameters":{"id":41712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41706,"mutability":"mutable","name":"exists","nameLocation":"1916:6:63","nodeType":"VariableDeclaration","scope":41746,"src":"1911:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41705,"name":"bool","nodeType":"ElementaryTypeName","src":"1911:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41708,"mutability":"mutable","name":"epoch","nameLocation":"1932:5:63","nodeType":"VariableDeclaration","scope":41746,"src":"1924:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41707,"name":"uint256","nodeType":"ElementaryTypeName","src":"1924:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41711,"mutability":"mutable","name":"checkpoint","nameLocation":"1965:10:63","nodeType":"VariableDeclaration","scope":41746,"src":"1939:36:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41710,"nodeType":"UserDefinedTypeName","pathNode":{"id":41709,"name":"BottomUpCheckpoint","nameLocations":["1939:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"1939:18:63"},"referencedDeclaration":49885,"src":"1939:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1910:66:63"},"scope":42888,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41779,"nodeType":"FunctionDefinition","src":"2298:345:63","nodes":[],"body":{"id":41778,"nodeType":"Block","src":"2461:182:63","nodes":[],"statements":[{"assignments":[41759],"declarations":[{"constant":false,"id":41759,"mutability":"mutable","name":"s","nameLocation":"2499:1:63","nodeType":"VariableDeclaration","scope":41778,"src":"2471:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41758,"nodeType":"UserDefinedTypeName","pathNode":{"id":41757,"name":"GatewayActorStorage","nameLocations":["2471:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"2471:19:63"},"referencedDeclaration":43012,"src":"2471:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41763,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41760,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"2503:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2526:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"2503:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2471:67:63"},{"expression":{"id":41769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41764,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41755,"src":"2549:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41765,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41759,"src":"2562:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2564:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42946,"src":"2562:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41768,"indexExpression":{"id":41767,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41749,"src":"2584:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2562:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"2549:41:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"id":41770,"nodeType":"ExpressionStatement","src":"2549:41:63"},{"expression":{"id":41776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41771,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41752,"src":"2600:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41772,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41755,"src":"2609:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"id":41773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2620:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"2609:22:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2635:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2609:27:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2600:36:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41777,"nodeType":"ExpressionStatement","src":"2600:36:63"}]},"documentation":{"id":41747,"nodeType":"StructuredDocumentation","src":"2249:44:63","text":"@notice returns the bottom-up checkpoint"},"implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpCheckpoint","nameLocation":"2307:21:63","parameters":{"id":41750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41749,"mutability":"mutable","name":"epoch","nameLocation":"2346:5:63","nodeType":"VariableDeclaration","scope":41779,"src":"2338:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41748,"name":"uint256","nodeType":"ElementaryTypeName","src":"2338:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2328:29:63"},"returnParameters":{"id":41756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41752,"mutability":"mutable","name":"exists","nameLocation":"2410:6:63","nodeType":"VariableDeclaration","scope":41779,"src":"2405:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41751,"name":"bool","nodeType":"ElementaryTypeName","src":"2405:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41755,"mutability":"mutable","name":"checkpoint","nameLocation":"2445:10:63","nodeType":"VariableDeclaration","scope":41779,"src":"2418:37:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41754,"nodeType":"UserDefinedTypeName","pathNode":{"id":41753,"name":"BottomUpCheckpoint","nameLocations":["2418:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"2418:18:63"},"referencedDeclaration":49885,"src":"2418:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"2404:52:63"},"scope":42888,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41812,"nodeType":"FunctionDefinition","src":"2693:325:63","nodes":[],"body":{"id":41811,"nodeType":"Block","src":"2847:171:63","nodes":[],"statements":[{"assignments":[41792],"declarations":[{"constant":false,"id":41792,"mutability":"mutable","name":"s","nameLocation":"2885:1:63","nodeType":"VariableDeclaration","scope":41811,"src":"2857:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41791,"nodeType":"UserDefinedTypeName","pathNode":{"id":41790,"name":"GatewayActorStorage","nameLocations":["2857:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"2857:19:63"},"referencedDeclaration":43012,"src":"2857:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41796,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41793,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"2889:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2912:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"2889:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2857:67:63"},{"expression":{"id":41802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41797,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41788,"src":"2935:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41798,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41792,"src":"2943:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2945:18:63","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42952,"src":"2943:20:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41801,"indexExpression":{"id":41800,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41782,"src":"2964:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2943:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"2935:35:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41803,"nodeType":"ExpressionStatement","src":"2935:35:63"},{"expression":{"id":41809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41804,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41785,"src":"2980:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41805,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41788,"src":"2989:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2995:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"2989:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3010:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2989:22:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2980:31:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41810,"nodeType":"ExpressionStatement","src":"2980:31:63"}]},"documentation":{"id":41780,"nodeType":"StructuredDocumentation","src":"2649:39:63","text":"@notice returns the bottom-up batch"},"implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatch","nameLocation":"2702:19:63","parameters":{"id":41783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41782,"mutability":"mutable","name":"epoch","nameLocation":"2739:5:63","nodeType":"VariableDeclaration","scope":41812,"src":"2731:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41781,"name":"uint256","nodeType":"ElementaryTypeName","src":"2731:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2721:29:63"},"returnParameters":{"id":41789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41785,"mutability":"mutable","name":"exists","nameLocation":"2803:6:63","nodeType":"VariableDeclaration","scope":41812,"src":"2798:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41784,"name":"bool","nodeType":"ElementaryTypeName","src":"2798:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41788,"mutability":"mutable","name":"batch","nameLocation":"2836:5:63","nodeType":"VariableDeclaration","scope":41812,"src":"2811:30:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41787,"nodeType":"UserDefinedTypeName","pathNode":{"id":41786,"name":"BottomUpMsgBatch","nameLocations":["2811:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"2811:16:63"},"referencedDeclaration":49898,"src":"2811:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"2797:45:63"},"scope":42888,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41836,"nodeType":"FunctionDefinition","src":"3110:224:63","nodes":[],"body":{"id":41835,"nodeType":"Block","src":"3188:146:63","nodes":[],"statements":[{"assignments":[41822],"declarations":[{"constant":false,"id":41822,"mutability":"mutable","name":"s","nameLocation":"3226:1:63","nodeType":"VariableDeclaration","scope":41835,"src":"3198:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41821,"nodeType":"UserDefinedTypeName","pathNode":{"id":41820,"name":"GatewayActorStorage","nameLocations":["3198:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"3198:19:63"},"referencedDeclaration":43012,"src":"3198:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41826,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41823,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"3230:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3253:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"3230:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3230:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3198:67:63"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":41827,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41822,"src":"3282:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3284:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42946,"src":"3282:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41830,"indexExpression":{"id":41829,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41815,"src":"3304:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3282:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":41831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3311:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"3282:40:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3326:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3282:45:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":41819,"id":41834,"nodeType":"Return","src":"3275:52:63"}]},"documentation":{"id":41813,"nodeType":"StructuredDocumentation","src":"3024:81:63","text":"@notice checks if the bottom-up checkpoint already exists at the target epoch"},"implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointExists","nameLocation":"3119:24:63","parameters":{"id":41816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41815,"mutability":"mutable","name":"epoch","nameLocation":"3152:5:63","nodeType":"VariableDeclaration","scope":41836,"src":"3144:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41814,"name":"uint256","nodeType":"ElementaryTypeName","src":"3144:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3143:15:63"},"returnParameters":{"id":41819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41818,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41836,"src":"3182:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41817,"name":"bool","nodeType":"ElementaryTypeName","src":"3182:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3181:6:63"},"scope":42888,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41860,"nodeType":"FunctionDefinition","src":"3426:222:63","nodes":[],"body":{"id":41859,"nodeType":"Block","src":"3503:145:63","nodes":[],"statements":[{"assignments":[41846],"declarations":[{"constant":false,"id":41846,"mutability":"mutable","name":"s","nameLocation":"3541:1:63","nodeType":"VariableDeclaration","scope":41859,"src":"3513:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41845,"nodeType":"UserDefinedTypeName","pathNode":{"id":41844,"name":"GatewayActorStorage","nameLocations":["3513:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"3513:19:63"},"referencedDeclaration":43012,"src":"3513:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41850,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41847,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"3545:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3568:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"3545:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3545:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3513:67:63"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":41851,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41846,"src":"3597:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3599:18:63","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42952,"src":"3597:20:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41854,"indexExpression":{"id":41853,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41839,"src":"3618:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3597:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"id":41855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3625:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"3597:39:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3640:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3597:44:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":41843,"id":41858,"nodeType":"Return","src":"3590:51:63"}]},"documentation":{"id":41837,"nodeType":"StructuredDocumentation","src":"3340:81:63","text":"@notice checks if the bottom-up checkpoint already exists at the target epoch"},"implemented":true,"kind":"function","modifiers":[],"name":"bottomUpBatchMsgsExists","nameLocation":"3435:23:63","parameters":{"id":41840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41839,"mutability":"mutable","name":"epoch","nameLocation":"3467:5:63","nodeType":"VariableDeclaration","scope":41860,"src":"3459:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41838,"name":"uint256","nodeType":"ElementaryTypeName","src":"3459:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3458:15:63"},"returnParameters":{"id":41843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41860,"src":"3497:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41841,"name":"bool","nodeType":"ElementaryTypeName","src":"3497:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3496:6:63"},"scope":42888,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41884,"nodeType":"FunctionDefinition","src":"3688:246:63","nodes":[],"body":{"id":41883,"nodeType":"Block","src":"3782:152:63","nodes":[],"statements":[{"assignments":[41869],"declarations":[{"constant":false,"id":41869,"mutability":"mutable","name":"s","nameLocation":"3820:1:63","nodeType":"VariableDeclaration","scope":41883,"src":"3792:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41868,"nodeType":"UserDefinedTypeName","pathNode":{"id":41867,"name":"GatewayActorStorage","nameLocations":["3792:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"3792:19:63"},"referencedDeclaration":43012,"src":"3792:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41873,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41870,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"3824:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3847:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"3824:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3824:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3792:67:63"},{"expression":{"id":41881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41869,"src":"3869:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3871:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42946,"src":"3869:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41879,"indexExpression":{"expression":{"id":41876,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41864,"src":"3891:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3902:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"3891:22:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3869:45:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41880,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41864,"src":"3917:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"src":"3869:58:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":41882,"nodeType":"ExpressionStatement","src":"3869:58:63"}]},"documentation":{"id":41861,"nodeType":"StructuredDocumentation","src":"3654:29:63","text":"@notice stores checkpoint"},"implemented":true,"kind":"function","modifiers":[],"name":"storeBottomUpCheckpoint","nameLocation":"3697:23:63","parameters":{"id":41865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41864,"mutability":"mutable","name":"checkpoint","nameLocation":"3756:10:63","nodeType":"VariableDeclaration","scope":41884,"src":"3730:36:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41863,"nodeType":"UserDefinedTypeName","pathNode":{"id":41862,"name":"BottomUpCheckpoint","nameLocations":["3730:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"3730:18:63"},"referencedDeclaration":49885,"src":"3730:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"3720:52:63"},"returnParameters":{"id":41866,"nodeType":"ParameterList","parameters":[],"src":"3782:0:63"},"scope":42888,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41951,"nodeType":"FunctionDefinition","src":"3979:709:63","nodes":[],"body":{"id":41950,"nodeType":"Block","src":"4064:624:63","nodes":[],"statements":[{"assignments":[41893],"declarations":[{"constant":false,"id":41893,"mutability":"mutable","name":"s","nameLocation":"4102:1:63","nodeType":"VariableDeclaration","scope":41950,"src":"4074:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41892,"nodeType":"UserDefinedTypeName","pathNode":{"id":41891,"name":"GatewayActorStorage","nameLocations":["4074:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"4074:19:63"},"referencedDeclaration":43012,"src":"4074:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41897,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41894,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"4106:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4129:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"4106:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4106:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4074:67:63"},{"assignments":[41900],"declarations":[{"constant":false,"id":41900,"mutability":"mutable","name":"b","nameLocation":"4176:1:63","nodeType":"VariableDeclaration","scope":41950,"src":"4151:26:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41899,"nodeType":"UserDefinedTypeName","pathNode":{"id":41898,"name":"BottomUpMsgBatch","nameLocations":["4151:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"4151:16:63"},"referencedDeclaration":49898,"src":"4151:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":41906,"initialValue":{"baseExpression":{"expression":{"id":41901,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41893,"src":"4180:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4182:18:63","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42952,"src":"4180:20:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41905,"indexExpression":{"expression":{"id":41903,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41888,"src":"4201:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4207:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"4201:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4180:39:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4151:68:63"},{"expression":{"id":41912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41907,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41900,"src":"4229:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4231:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49889,"src":"4229:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41910,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41888,"src":"4242:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4248:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49889,"src":"4242:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"src":"4229:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":41913,"nodeType":"ExpressionStatement","src":"4229:27:63"},{"expression":{"id":41919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41914,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41900,"src":"4266:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4268:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"4266:13:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41917,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41888,"src":"4282:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4288:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"4282:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4266:33:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41920,"nodeType":"ExpressionStatement","src":"4266:33:63"},{"assignments":[41922],"declarations":[{"constant":false,"id":41922,"mutability":"mutable","name":"msgLength","nameLocation":"4318:9:63","nodeType":"VariableDeclaration","scope":41950,"src":"4310:17:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41921,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41926,"initialValue":{"expression":{"expression":{"id":41923,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41888,"src":"4330:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4336:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"4330:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":41925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4341:6:63","memberName":"length","nodeType":"MemberAccess","src":"4330:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4310:37:63"},{"body":{"id":41948,"nodeType":"Block","src":"4389:293:63","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":41938,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41888,"src":"4598:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4604:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"4598:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":41941,"indexExpression":{"id":41940,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41928,"src":"4609:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4598:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":41933,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41900,"src":"4586:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4588:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"4586:6:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":41937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4593:4:63","memberName":"push","nodeType":"MemberAccess","src":"4586:11:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49927_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":41942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4586:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41943,"nodeType":"ExpressionStatement","src":"4586:26:63"},{"id":41947,"nodeType":"UncheckedBlock","src":"4626:46:63","statements":[{"expression":{"id":41945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4654:3:63","subExpression":{"id":41944,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41928,"src":"4656:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41946,"nodeType":"ExpressionStatement","src":"4654:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41930,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41928,"src":"4373:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41931,"name":"msgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41922,"src":"4377:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4373:13:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41949,"initializationExpression":{"assignments":[41928],"declarations":[{"constant":false,"id":41928,"mutability":"mutable","name":"i","nameLocation":"4370:1:63","nodeType":"VariableDeclaration","scope":41949,"src":"4362:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41927,"name":"uint256","nodeType":"ElementaryTypeName","src":"4362:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41929,"nodeType":"VariableDeclarationStatement","src":"4362:9:63"},"nodeType":"ForStatement","src":"4357:325:63"}]},"documentation":{"id":41885,"nodeType":"StructuredDocumentation","src":"3940:34:63","text":"@notice stores bottom-up batch"},"implemented":true,"kind":"function","modifiers":[],"name":"storeBottomUpMsgBatch","nameLocation":"3988:21:63","parameters":{"id":41889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41888,"mutability":"mutable","name":"batch","nameLocation":"4043:5:63","nodeType":"VariableDeclaration","scope":41951,"src":"4019:29:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41887,"nodeType":"UserDefinedTypeName","pathNode":{"id":41886,"name":"BottomUpMsgBatch","nameLocations":["4019:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"4019:16:63"},"referencedDeclaration":49898,"src":"4019:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"4009:45:63"},"returnParameters":{"id":41890,"nodeType":"ParameterList","parameters":[],"src":"4064:0:63"},"scope":42888,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41973,"nodeType":"FunctionDefinition","src":"4834:223:63","nodes":[],"body":{"id":41972,"nodeType":"Block","src":"4928:129:63","nodes":[],"statements":[{"assignments":[41962],"declarations":[{"constant":false,"id":41962,"mutability":"mutable","name":"s","nameLocation":"4966:1:63","nodeType":"VariableDeclaration","scope":41972,"src":"4938:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41961,"nodeType":"UserDefinedTypeName","pathNode":{"id":41960,"name":"GatewayActorStorage","nameLocations":["4938:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"4938:19:63"},"referencedDeclaration":43012,"src":"4938:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41963,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"4970:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4993:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"4970:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4970:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4938:67:63"},{"expression":{"baseExpression":{"expression":{"id":41967,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41962,"src":"5022:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5024:13:63","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42923,"src":"5022:15:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49871_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":41970,"indexExpression":{"id":41969,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41954,"src":"5038:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5022:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage","typeString":"struct ParentFinality storage ref"}},"functionReturnParameters":41959,"id":41971,"nodeType":"Return","src":"5015:35:63"}]},"documentation":{"id":41952,"nodeType":"StructuredDocumentation","src":"4694:135:63","text":"@notice obtain the ipc parent finality at certain block number\n @param blockNumber - the block number to obtain the finality"},"implemented":true,"kind":"function","modifiers":[],"name":"getParentFinality","nameLocation":"4843:17:63","parameters":{"id":41955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41954,"mutability":"mutable","name":"blockNumber","nameLocation":"4869:11:63","nodeType":"VariableDeclaration","scope":41973,"src":"4861:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41953,"name":"uint256","nodeType":"ElementaryTypeName","src":"4861:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4860:21:63"},"returnParameters":{"id":41959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41973,"src":"4905:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":41957,"nodeType":"UserDefinedTypeName","pathNode":{"id":41956,"name":"ParentFinality","nameLocations":["4905:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"4905:14:63"},"referencedDeclaration":49871,"src":"4905:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"4904:23:63"},"scope":42888,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41993,"nodeType":"FunctionDefinition","src":"5127:221:63","nodes":[],"body":{"id":41992,"nodeType":"Block","src":"5208:140:63","nodes":[],"statements":[{"assignments":[41982],"declarations":[{"constant":false,"id":41982,"mutability":"mutable","name":"s","nameLocation":"5246:1:63","nodeType":"VariableDeclaration","scope":41992,"src":"5218:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41981,"nodeType":"UserDefinedTypeName","pathNode":{"id":41980,"name":"GatewayActorStorage","nameLocations":["5218:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"5218:19:63"},"referencedDeclaration":43012,"src":"5218:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41986,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41983,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"5250:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5273:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"5250:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5250:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5218:67:63"},{"expression":{"arguments":[{"expression":{"id":41988,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41982,"src":"5320:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5322:18:63","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42926,"src":"5320:20:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41987,"name":"getParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41973,"src":"5302:17:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (uint256) view returns (struct ParentFinality memory)"}},"id":41990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5302:39:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":41979,"id":41991,"nodeType":"Return","src":"5295:46:63"}]},"documentation":{"id":41974,"nodeType":"StructuredDocumentation","src":"5063:59:63","text":"@notice obtain the latest committed ipc parent finality"},"implemented":true,"kind":"function","modifiers":[],"name":"getLatestParentFinality","nameLocation":"5136:23:63","parameters":{"id":41975,"nodeType":"ParameterList","parameters":[],"src":"5159:2:63"},"returnParameters":{"id":41979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41993,"src":"5185:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":41977,"nodeType":"UserDefinedTypeName","pathNode":{"id":41976,"name":"ParentFinality","nameLocations":["5185:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"5185:14:63"},"referencedDeclaration":49871,"src":"5185:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5184:23:63"},"scope":42888,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42048,"nodeType":"FunctionDefinition","src":"5469:529:63","nodes":[],"body":{"id":42047,"nodeType":"Block","src":"5601:397:63","nodes":[],"statements":[{"assignments":[42005],"declarations":[{"constant":false,"id":42005,"mutability":"mutable","name":"s","nameLocation":"5639:1:63","nodeType":"VariableDeclaration","scope":42047,"src":"5611:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42004,"nodeType":"UserDefinedTypeName","pathNode":{"id":42003,"name":"GatewayActorStorage","nameLocations":["5611:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"5611:19:63"},"referencedDeclaration":43012,"src":"5611:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42009,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42006,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"5643:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5666:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"5643:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5643:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5611:67:63"},{"assignments":[42011],"declarations":[{"constant":false,"id":42011,"mutability":"mutable","name":"lastHeight","nameLocation":"5697:10:63","nodeType":"VariableDeclaration","scope":42047,"src":"5689:18:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42010,"name":"uint256","nodeType":"ElementaryTypeName","src":"5689:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42014,"initialValue":{"expression":{"id":42012,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42005,"src":"5710:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5712:18:63","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42926,"src":"5710:20:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5689:41:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42015,"name":"lastHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42011,"src":"5744:10:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":42016,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41997,"src":"5757:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":42017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5766:6:63","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49868,"src":"5757:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5744:28:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42023,"nodeType":"IfStatement","src":"5740:98:63","trueBody":{"id":42022,"nodeType":"Block","src":"5774:64:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42019,"name":"ParentFinalityAlreadyCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37498,"src":"5795:30:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5795:32:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42021,"nodeType":"RevertStatement","src":"5788:39:63"}]}},{"expression":{"id":42029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42024,"name":"lastFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42001,"src":"5847:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42025,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42005,"src":"5862:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5864:13:63","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42923,"src":"5862:15:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49871_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":42028,"indexExpression":{"id":42027,"name":"lastHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42011,"src":"5878:10:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5862:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage","typeString":"struct ParentFinality storage ref"}},"src":"5847:42:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"id":42030,"nodeType":"ExpressionStatement","src":"5847:42:63"},{"expression":{"id":42038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":42031,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42005,"src":"5900:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5902:13:63","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42923,"src":"5900:15:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49871_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":42036,"indexExpression":{"expression":{"id":42033,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41997,"src":"5916:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":42034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5925:6:63","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49868,"src":"5916:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5900:32:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage","typeString":"struct ParentFinality storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42037,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41997,"src":"5935:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_calldata_ptr","typeString":"struct ParentFinality calldata"}},"src":"5900:43:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage","typeString":"struct ParentFinality storage ref"}},"id":42039,"nodeType":"ExpressionStatement","src":"5900:43:63"},{"expression":{"id":42045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42040,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42005,"src":"5953:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5955:18:63","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42926,"src":"5953:20:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42043,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41997,"src":"5976:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":42044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5985:6:63","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49868,"src":"5976:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5953:38:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42046,"nodeType":"ExpressionStatement","src":"5953:38:63"}]},"documentation":{"id":41994,"nodeType":"StructuredDocumentation","src":"5354:110:63","text":"@notice commit the ipc parent finality into storage\n @param finality - the finality to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitParentFinality","nameLocation":"5478:20:63","parameters":{"id":41998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41997,"mutability":"mutable","name":"finality","nameLocation":"5532:8:63","nodeType":"VariableDeclaration","scope":42048,"src":"5508:32:63","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":41996,"nodeType":"UserDefinedTypeName","pathNode":{"id":41995,"name":"ParentFinality","nameLocations":["5508:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"5508:14:63"},"referencedDeclaration":49871,"src":"5508:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5498:48:63"},"returnParameters":{"id":42002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42001,"mutability":"mutable","name":"lastFinality","nameLocation":"5587:12:63","nodeType":"VariableDeclaration","scope":42048,"src":"5565:34:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":42000,"nodeType":"UserDefinedTypeName","pathNode":{"id":41999,"name":"ParentFinality","nameLocations":["5565:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"5565:14:63"},"referencedDeclaration":49871,"src":"5565:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5564:36:63"},"scope":42888,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42202,"nodeType":"FunctionDefinition","src":"6087:1976:63","nodes":[],"body":{"id":42201,"nodeType":"Block","src":"6152:1911:63","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":42056,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42052,"src":"6185:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}],"id":42055,"name":"MembershipUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41686,"src":"6167:17:63","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_struct$_Membership_$50171_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":42057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6167:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42058,"nodeType":"EmitStatement","src":"6162:34:63"},{"assignments":[42061],"declarations":[{"constant":false,"id":42061,"mutability":"mutable","name":"s","nameLocation":"6235:1:63","nodeType":"VariableDeclaration","scope":42201,"src":"6207:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42060,"nodeType":"UserDefinedTypeName","pathNode":{"id":42059,"name":"GatewayActorStorage","nameLocations":["6207:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"6207:19:63"},"referencedDeclaration":43012,"src":"6207:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42062,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"6239:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6262:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"6239:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6239:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6207:67:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42066,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"6344:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6346:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42936,"src":"6344:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"id":42068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6364:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50170,"src":"6344:39:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":42069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6344:44:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42100,"nodeType":"IfStatement","src":"6340:621:63","trueBody":{"id":42099,"nodeType":"Block","src":"6390:571:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42071,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42052,"src":"6408:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6419:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50170,"src":"6408:30:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":42073,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"6442:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6444:14:63","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42940,"src":"6442:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"id":42075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6459:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50170,"src":"6442:36:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6408:70:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42079,"nodeType":"IfStatement","src":"6404:115:63","trueBody":{"id":42078,"nodeType":"Block","src":"6480:39:63","statements":[{"functionReturnParameters":42054,"id":42077,"nodeType":"Return","src":"6498:7:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42080,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42052,"src":"6632:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6643:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50170,"src":"6632:30:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":42082,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"6665:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6667:14:63","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42940,"src":"6665:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"id":42084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6682:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50170,"src":"6665:36:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6632:69:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42090,"nodeType":"IfStatement","src":"6628:139:63","trueBody":{"id":42089,"nodeType":"Block","src":"6703:64:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42086,"name":"OldConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37492,"src":"6728:22:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6728:24:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42088,"nodeType":"RevertStatement","src":"6721:31:63"}]}},{"condition":{"arguments":[{"id":42092,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42052,"src":"6878:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},{"expression":{"id":42093,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"6890:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6892:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42936,"src":"6890:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"},{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}],"id":42091,"name":"membershipEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42311,"src":"6862:15:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$50171_memory_ptr_$_t_struct$_Membership_$50171_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Membership memory,struct Membership memory) pure returns (bool)"}},"id":42095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6862:48:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42098,"nodeType":"IfStatement","src":"6858:93:63","trueBody":{"id":42097,"nodeType":"Block","src":"6912:39:63","statements":[{"functionReturnParameters":42054,"id":42096,"nodeType":"Return","src":"6930:7:63"}]}}]}},{"expression":{"id":42106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42101,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"6971:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6973:14:63","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42940,"src":"6971:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42104,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"6990:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6992:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42936,"src":"6990:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"src":"6971:38:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"id":42107,"nodeType":"ExpressionStatement","src":"6971:38:63"},{"assignments":[42109],"declarations":[{"constant":false,"id":42109,"mutability":"mutable","name":"inputLength","nameLocation":"7028:11:63","nodeType":"VariableDeclaration","scope":42201,"src":"7020:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42108,"name":"uint256","nodeType":"ElementaryTypeName","src":"7020:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42113,"initialValue":{"expression":{"expression":{"id":42110,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42052,"src":"7042:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7053:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"7042:21:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7064:6:63","memberName":"length","nodeType":"MemberAccess","src":"7042:28:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7020:50:63"},{"assignments":[42115],"declarations":[{"constant":false,"id":42115,"mutability":"mutable","name":"storeLength","nameLocation":"7088:11:63","nodeType":"VariableDeclaration","scope":42201,"src":"7080:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42114,"name":"uint256","nodeType":"ElementaryTypeName","src":"7080:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42120,"initialValue":{"expression":{"expression":{"expression":{"id":42116,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"7102:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7104:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42936,"src":"7102:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"id":42118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7122:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"7102:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7133:6:63","memberName":"length","nodeType":"MemberAccess","src":"7102:37:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7080:59:63"},{"body":{"id":42163,"nodeType":"Block","src":"7336:297:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42127,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42122,"src":"7354:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42128,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42115,"src":"7358:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7354:15:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42157,"nodeType":"Block","src":"7470:94:63","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":42151,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42052,"src":"7524:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7535:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"7524:21:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42154,"indexExpression":{"id":42153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42122,"src":"7546:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7524:24:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"expression":{"id":42144,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"7488:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7490:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42936,"src":"7488:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"id":42149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7508:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"7488:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7519:4:63","memberName":"push","nodeType":"MemberAccess","src":"7488:35:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50164_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":42155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7488:61:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42156,"nodeType":"ExpressionStatement","src":"7488:61:63"}]},"id":42158,"nodeType":"IfStatement","src":"7350:214:63","trueBody":{"id":42143,"nodeType":"Block","src":"7371:93:63","statements":[{"expression":{"id":42141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":42130,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"7389:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7391:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42936,"src":"7389:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"id":42135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7409:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"7389:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42136,"indexExpression":{"id":42133,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42122,"src":"7420:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7389:33:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage","typeString":"struct Validator storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42137,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42052,"src":"7425:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7436:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"7425:21:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42140,"indexExpression":{"id":42139,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42122,"src":"7447:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7425:24:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}},"src":"7389:60:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage","typeString":"struct Validator storage ref"}},"id":42142,"nodeType":"ExpressionStatement","src":"7389:60:63"}]}},{"id":42162,"nodeType":"UncheckedBlock","src":"7577:46:63","statements":[{"expression":{"id":42160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7605:3:63","subExpression":{"id":42159,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42122,"src":"7607:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42161,"nodeType":"ExpressionStatement","src":"7605:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42124,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42122,"src":"7317:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42125,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42109,"src":"7321:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7317:15:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42164,"initializationExpression":{"assignments":[42122],"declarations":[{"constant":false,"id":42122,"mutability":"mutable","name":"i","nameLocation":"7314:1:63","nodeType":"VariableDeclaration","scope":42164,"src":"7306:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42121,"name":"uint256","nodeType":"ElementaryTypeName","src":"7306:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42123,"nodeType":"VariableDeclarationStatement","src":"7306:9:63"},"nodeType":"ForStatement","src":"7301:332:63"},{"expression":{"id":42172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":42165,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"7642:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7644:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42936,"src":"7642:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"id":42169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7662:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50170,"src":"7642:39:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42170,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42052,"src":"7684:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7695:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50170,"src":"7684:30:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7642:72:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42173,"nodeType":"ExpressionStatement","src":"7642:72:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42174,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42115,"src":"7817:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":42175,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42109,"src":"7831:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7817:25:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42200,"nodeType":"IfStatement","src":"7813:244:63","trueBody":{"id":42199,"nodeType":"Block","src":"7844:213:63","statements":[{"body":{"id":42197,"nodeType":"Block","src":"7907:140:63","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":42184,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"7925:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7927:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42936,"src":"7925:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage","typeString":"struct Membership storage ref"}},"id":42189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7945:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"7925:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7956:3:63","memberName":"pop","nodeType":"MemberAccess","src":"7925:34:63","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer)"}},"id":42191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7925:36:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42192,"nodeType":"ExpressionStatement","src":"7925:36:63"},{"id":42196,"nodeType":"UncheckedBlock","src":"7979:54:63","statements":[{"expression":{"id":42194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8011:3:63","subExpression":{"id":42193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"8013:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42195,"nodeType":"ExpressionStatement","src":"8011:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42181,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7888:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42182,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42115,"src":"7892:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7888:15:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42198,"initializationExpression":{"assignments":[42178],"declarations":[{"constant":false,"id":42178,"mutability":"mutable","name":"i","nameLocation":"7871:1:63","nodeType":"VariableDeclaration","scope":42198,"src":"7863:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42177,"name":"uint256","nodeType":"ElementaryTypeName","src":"7863:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42180,"initialValue":{"id":42179,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42109,"src":"7875:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7863:23:63"},"nodeType":"ForStatement","src":"7858:189:63"}]}}]},"documentation":{"id":42049,"nodeType":"StructuredDocumentation","src":"6004:78:63","text":"@notice set the next membership\n @param membership - new membership"},"implemented":true,"kind":"function","modifiers":[],"name":"updateMembership","nameLocation":"6096:16:63","parameters":{"id":42053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42052,"mutability":"mutable","name":"membership","nameLocation":"6131:10:63","nodeType":"VariableDeclaration","scope":42202,"src":"6113:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42051,"nodeType":"UserDefinedTypeName","pathNode":{"id":42050,"name":"Membership","nameLocations":["6113:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"6113:10:63"},"referencedDeclaration":50171,"src":"6113:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"6112:30:63"},"returnParameters":{"id":42054,"nodeType":"ParameterList","parameters":[],"src":"6152:0:63"},"scope":42888,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42243,"nodeType":"FunctionDefinition","src":"8132:387:63","nodes":[],"body":{"id":42242,"nodeType":"Block","src":"8219:300:63","nodes":[],"statements":[{"assignments":[42212],"declarations":[{"constant":false,"id":42212,"mutability":"mutable","name":"len","nameLocation":"8237:3:63","nodeType":"VariableDeclaration","scope":42242,"src":"8229:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42211,"name":"uint256","nodeType":"ElementaryTypeName","src":"8229:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42216,"initialValue":{"expression":{"expression":{"id":42213,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42206,"src":"8243:4:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8248:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"8243:15:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8259:6:63","memberName":"length","nodeType":"MemberAccess","src":"8243:22:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8229:36:63"},{"assignments":[42218],"declarations":[{"constant":false,"id":42218,"mutability":"mutable","name":"totalValidatorsWeight","nameLocation":"8283:21:63","nodeType":"VariableDeclaration","scope":42242,"src":"8275:29:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42217,"name":"uint256","nodeType":"ElementaryTypeName","src":"8275:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42219,"nodeType":"VariableDeclarationStatement","src":"8275:29:63"},{"body":{"id":42238,"nodeType":"Block","src":"8341:134:63","statements":[{"expression":{"id":42232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42226,"name":"totalValidatorsWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42218,"src":"8355:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":42227,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42206,"src":"8380:4:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8385:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"8380:15:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42230,"indexExpression":{"id":42229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42221,"src":"8396:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8380:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}},"id":42231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8399:6:63","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":50159,"src":"8380:25:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8355:50:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42233,"nodeType":"ExpressionStatement","src":"8355:50:63"},{"id":42237,"nodeType":"UncheckedBlock","src":"8419:46:63","statements":[{"expression":{"id":42235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8447:3:63","subExpression":{"id":42234,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42221,"src":"8449:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42236,"nodeType":"ExpressionStatement","src":"8447:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42223,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42221,"src":"8330:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42224,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42212,"src":"8334:3:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8330:7:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42239,"initializationExpression":{"assignments":[42221],"declarations":[{"constant":false,"id":42221,"mutability":"mutable","name":"i","nameLocation":"8327:1:63","nodeType":"VariableDeclaration","scope":42239,"src":"8319:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42220,"name":"uint256","nodeType":"ElementaryTypeName","src":"8319:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42222,"nodeType":"VariableDeclarationStatement","src":"8319:9:63"},"nodeType":"ForStatement","src":"8314:161:63"},{"expression":{"id":42240,"name":"totalValidatorsWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42218,"src":"8491:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":42210,"id":42241,"nodeType":"Return","src":"8484:28:63"}]},"documentation":{"id":42203,"nodeType":"StructuredDocumentation","src":"8069:58:63","text":"@dev - Computes total weight for a specific membership"},"implemented":true,"kind":"function","modifiers":[],"name":"membershipTotalWeight","nameLocation":"8141:21:63","parameters":{"id":42207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42206,"mutability":"mutable","name":"self","nameLocation":"8181:4:63","nodeType":"VariableDeclaration","scope":42243,"src":"8163:22:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42205,"nodeType":"UserDefinedTypeName","pathNode":{"id":42204,"name":"Membership","nameLocations":["8163:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"8163:10:63"},"referencedDeclaration":50171,"src":"8163:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"8162:24:63"},"returnParameters":{"id":42210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42209,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42243,"src":"8210:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42208,"name":"uint256","nodeType":"ElementaryTypeName","src":"8210:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8209:9:63"},"scope":42888,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42311,"nodeType":"FunctionDefinition","src":"8598:561:63","nodes":[],"body":{"id":42310,"nodeType":"Block","src":"8698:461:63","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42255,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42247,"src":"8712:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8716:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50170,"src":"8712:23:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":42257,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42250,"src":"8739:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8743:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50170,"src":"8739:23:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8712:50:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42263,"nodeType":"IfStatement","src":"8708:93:63","trueBody":{"id":42262,"nodeType":"Block","src":"8764:37:63","statements":[{"expression":{"hexValue":"66616c7365","id":42260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8785:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":42254,"id":42261,"nodeType":"Return","src":"8778:12:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":42265,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42247,"src":"8836:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}],"id":42264,"name":"membershipTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42243,"src":"8814:21:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$50171_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct Membership memory) pure returns (uint256)"}},"id":42266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":42268,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42250,"src":"8866:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}],"id":42267,"name":"membershipTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42243,"src":"8844:21:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$50171_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct Membership memory) pure returns (uint256)"}},"id":42269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8844:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8814:56:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42274,"nodeType":"IfStatement","src":"8810:99:63","trueBody":{"id":42273,"nodeType":"Block","src":"8872:37:63","statements":[{"expression":{"hexValue":"66616c7365","id":42271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8893:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":42254,"id":42272,"nodeType":"Return","src":"8886:12:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42275,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42247,"src":"8922:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8926:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"8922:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8937:6:63","memberName":"length","nodeType":"MemberAccess","src":"8922:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":42278,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42250,"src":"8947:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42279,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8951:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"8947:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8962:6:63","memberName":"length","nodeType":"MemberAccess","src":"8947:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8922:46:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42285,"nodeType":"IfStatement","src":"8918:89:63","trueBody":{"id":42284,"nodeType":"Block","src":"8970:37:63","statements":[{"expression":{"hexValue":"66616c7365","id":42282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8991:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":42254,"id":42283,"nodeType":"Return","src":"8984:12:63"}]}},{"assignments":[42287],"declarations":[{"constant":false,"id":42287,"mutability":"mutable","name":"h1","nameLocation":"9024:2:63","nodeType":"VariableDeclaration","scope":42310,"src":"9016:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42286,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9016:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42295,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":42291,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42247,"src":"9050:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9054:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"9050:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"expression":{"id":42289,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9039:3:63","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9043:6:63","memberName":"encode","nodeType":"MemberAccess","src":"9039:10:63","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":42293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9039:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42288,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9029:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":42294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9029:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9016:50:63"},{"assignments":[42297],"declarations":[{"constant":false,"id":42297,"mutability":"mutable","name":"h2","nameLocation":"9084:2:63","nodeType":"VariableDeclaration","scope":42310,"src":"9076:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9076:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42305,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":42301,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42250,"src":"9110:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}},"id":42302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9114:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50168,"src":"9110:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"expression":{"id":42299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9099:3:63","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9103:6:63","memberName":"encode","nodeType":"MemberAccess","src":"9099:10:63","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":42303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9099:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42298,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9089:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":42304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9089:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9076:50:63"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":42308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42306,"name":"h1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42287,"src":"9144:2:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":42307,"name":"h2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42297,"src":"9150:2:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9144:8:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":42254,"id":42309,"nodeType":"Return","src":"9137:15:63"}]},"documentation":{"id":42244,"nodeType":"StructuredDocumentation","src":"8525:68:63","text":"@dev compares two memberships and returns true if they are equal"},"implemented":true,"kind":"function","modifiers":[],"name":"membershipEqual","nameLocation":"8607:15:63","parameters":{"id":42251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42247,"mutability":"mutable","name":"mb1","nameLocation":"8641:3:63","nodeType":"VariableDeclaration","scope":42311,"src":"8623:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42246,"nodeType":"UserDefinedTypeName","pathNode":{"id":42245,"name":"Membership","nameLocations":["8623:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"8623:10:63"},"referencedDeclaration":50171,"src":"8623:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42250,"mutability":"mutable","name":"mb2","nameLocation":"8664:3:63","nodeType":"VariableDeclaration","scope":42311,"src":"8646:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42249,"nodeType":"UserDefinedTypeName","pathNode":{"id":42248,"name":"Membership","nameLocations":["8646:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"8646:10:63"},"referencedDeclaration":50171,"src":"8646:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"8622:46:63"},"returnParameters":{"id":42254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42253,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42311,"src":"8692:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42252,"name":"bool","nodeType":"ElementaryTypeName","src":"8692:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8691:6:63"},"scope":42888,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42390,"nodeType":"FunctionDefinition","src":"9363:689:63","nodes":[],"body":{"id":42389,"nodeType":"Block","src":"9428:624:63","nodes":[],"statements":[{"assignments":[42320],"declarations":[{"constant":false,"id":42320,"mutability":"mutable","name":"s","nameLocation":"9466:1:63","nodeType":"VariableDeclaration","scope":42389,"src":"9438:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42319,"nodeType":"UserDefinedTypeName","pathNode":{"id":42318,"name":"GatewayActorStorage","nameLocations":["9438:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"9438:19:63"},"referencedDeclaration":43012,"src":"9438:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42324,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42321,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"9470:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9493:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"9470:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9470:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9438:67:63"},{"assignments":[42327],"declarations":[{"constant":false,"id":42327,"mutability":"mutable","name":"subnetId","nameLocation":"9531:8:63","nodeType":"VariableDeclaration","scope":42389,"src":"9515:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42326,"nodeType":"UserDefinedTypeName","pathNode":{"id":42325,"name":"SubnetID","nameLocations":["9515:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"9515:8:63"},"referencedDeclaration":50030,"src":"9515:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":42336,"initialValue":{"arguments":[{"expression":{"id":42333,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42320,"src":"9580:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9582:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"9580:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":42328,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42315,"src":"9542:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9555:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"9542:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9563:2:63","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49933,"src":"9542:23:63","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},"id":42331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9566:8:63","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9542:32:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":42332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9575:4:63","memberName":"down","nodeType":"MemberAccess","referencedDeclaration":48004,"src":"9542:37:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":42335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9542:52:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"9515:79:63"},{"assignments":[42338,42341],"declarations":[{"constant":false,"id":42338,"mutability":"mutable","name":"registered","nameLocation":"9611:10:63","nodeType":"VariableDeclaration","scope":42389,"src":"9606:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42337,"name":"bool","nodeType":"ElementaryTypeName","src":"9606:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42341,"mutability":"mutable","name":"subnet","nameLocation":"9638:6:63","nodeType":"VariableDeclaration","scope":42389,"src":"9623:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42340,"nodeType":"UserDefinedTypeName","pathNode":{"id":42339,"name":"Subnet","nameLocations":["9623:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"9623:6:63"},"referencedDeclaration":50044,"src":"9623:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":42345,"initialValue":{"arguments":[{"id":42343,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42327,"src":"9658:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"id":42342,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[42599,42636],"referencedDeclaration":42636,"src":"9648:9:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":42344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9648:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"9605:62:63"},{"condition":{"id":42347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9682:11:63","subExpression":{"id":42346,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42338,"src":"9683:10:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42352,"nodeType":"IfStatement","src":"9678:70:63","trueBody":{"id":42351,"nodeType":"Block","src":"9695:53:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42348,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"9716:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9716:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42350,"nodeType":"RevertStatement","src":"9709:28:63"}]}},{"assignments":[42354],"declarations":[{"constant":false,"id":42354,"mutability":"mutable","name":"topDownNonce","nameLocation":"9765:12:63","nodeType":"VariableDeclaration","scope":42389,"src":"9758:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42353,"name":"uint64","nodeType":"ElementaryTypeName","src":"9758:6:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":42357,"initialValue":{"expression":{"id":42355,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42341,"src":"9780:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9787:12:63","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"9780:19:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"9758:41:63"},{"expression":{"id":42364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":42358,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42315,"src":"9810:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9823:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"9810:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9831:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49937,"src":"9810:26:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42363,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42354,"src":"9839:12:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9810:41:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42365,"nodeType":"ExpressionStatement","src":"9810:41:63"},{"expression":{"id":42372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42366,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42341,"src":"9861:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9868:12:63","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"9861:19:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42369,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42354,"src":"9883:12:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":42370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9898:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9883:16:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9861:38:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42373,"nodeType":"ExpressionStatement","src":"9861:38:63"},{"expression":{"id":42380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42374,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42341,"src":"9909:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9916:10:63","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"9909:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"id":42377,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42315,"src":"9930:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9943:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"9930:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9951:5:63","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49935,"src":"9930:26:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9909:47:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42381,"nodeType":"ExpressionStatement","src":"9909:47:63"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42383,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42327,"src":"9999:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":42384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10008:10:63","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47464,"src":"9999:19:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":42385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9999:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42386,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42315,"src":"10031:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"id":42382,"name":"NewTopDownMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41694,"src":"9972:17:63","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$__$","typeString":"function (address,struct CrossMsg memory)"}},"id":42387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9991:6:63","10022:7:63"],"names":["subnet","message"],"nodeType":"FunctionCall","src":"9972:73:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42388,"nodeType":"EmitStatement","src":"9967:78:63"}]},"documentation":{"id":42312,"nodeType":"StructuredDocumentation","src":"9165:193:63","text":"@notice commit topdown messages for their execution in the subnet. Adds the message to the subnet struct for future execution\n @param crossMessage - the cross message to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitTopDownMsg","nameLocation":"9372:16:63","parameters":{"id":42316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42315,"mutability":"mutable","name":"crossMessage","nameLocation":"9405:12:63","nodeType":"VariableDeclaration","scope":42390,"src":"9389:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":42314,"nodeType":"UserDefinedTypeName","pathNode":{"id":42313,"name":"CrossMsg","nameLocations":["9389:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"9389:8:63"},"referencedDeclaration":49927,"src":"9389:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"9388:30:63"},"returnParameters":{"id":42317,"nodeType":"ParameterList","parameters":[],"src":"9428:0:63"},"scope":42888,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42556,"nodeType":"FunctionDefinition","src":"10203:2248:63","nodes":[],"body":{"id":42555,"nodeType":"Block","src":"10269:2182:63","nodes":[],"statements":[{"assignments":[42399],"declarations":[{"constant":false,"id":42399,"mutability":"mutable","name":"s","nameLocation":"10307:1:63","nodeType":"VariableDeclaration","scope":42555,"src":"10279:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42398,"nodeType":"UserDefinedTypeName","pathNode":{"id":42397,"name":"GatewayActorStorage","nameLocations":["10279:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"10279:19:63"},"referencedDeclaration":43012,"src":"10279:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42403,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42400,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"10311:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10334:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"10311:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10311:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10279:67:63"},{"assignments":[42405],"declarations":[{"constant":false,"id":42405,"mutability":"mutable","name":"epoch","nameLocation":"10364:5:63","nodeType":"VariableDeclaration","scope":42555,"src":"10356:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42404,"name":"uint256","nodeType":"ElementaryTypeName","src":"10356:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42412,"initialValue":{"arguments":[{"expression":{"id":42407,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10385:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":42408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10391:6:63","memberName":"number","nodeType":"MemberAccess","src":"10385:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":42409,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42399,"src":"10399:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10401:22:63","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":42989,"src":"10399:24:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42406,"name":"getNextEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"10372:12:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":42411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10372:52:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10356:68:63"},{"expression":{"id":42420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":42413,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42394,"src":"10475:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10488:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"10475:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10496:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49937,"src":"10475:26:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42418,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42399,"src":"10504:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10506:13:63","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":42977,"src":"10504:15:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10475:44:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42421,"nodeType":"ExpressionStatement","src":"10475:44:63"},{"expression":{"id":42426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42422,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42399,"src":"10529:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10531:13:63","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":42977,"src":"10529:15:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":42425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10548:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10529:20:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42427,"nodeType":"ExpressionStatement","src":"10529:20:63"},{"assignments":[42429,42432],"declarations":[{"constant":false,"id":42429,"mutability":"mutable","name":"exists","nameLocation":"10611:6:63","nodeType":"VariableDeclaration","scope":42555,"src":"10606:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42428,"name":"bool","nodeType":"ElementaryTypeName","src":"10606:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42432,"mutability":"mutable","name":"batch","nameLocation":"10644:5:63","nodeType":"VariableDeclaration","scope":42555,"src":"10619:30:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":42431,"nodeType":"UserDefinedTypeName","pathNode":{"id":42430,"name":"BottomUpMsgBatch","nameLocations":["10619:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"10619:16:63"},"referencedDeclaration":49898,"src":"10619:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":42437,"initialValue":{"arguments":[{"id":42435,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42405,"src":"10684:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42433,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"10653:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":42434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10664:19:63","memberName":"getBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41812,"src":"10653:30:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpMsgBatch_$49898_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpMsgBatch storage pointer)"}},"id":42436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10653:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpMsgBatch_$49898_storage_ptr_$","typeString":"tuple(bool,struct BottomUpMsgBatch storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"10605:85:63"},{"condition":{"id":42439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10704:7:63","subExpression":{"id":42438,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42429,"src":"10705:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42553,"nodeType":"Block","src":"10921:1524:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42462,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42432,"src":"11079:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11085:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"11079:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11090:6:63","memberName":"length","nodeType":"MemberAccess","src":"11079:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":42465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42399,"src":"11100:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11102:23:63","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"11100:25:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11079:46:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42551,"nodeType":"Block","src":"12232:203:63","statements":[{"expression":{"arguments":[{"id":42548,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42394,"src":"12407:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42543,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42432,"src":"12391:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12397:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"12391:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:4:63","memberName":"push","nodeType":"MemberAccess","src":"12391:15:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49927_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12391:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42550,"nodeType":"ExpressionStatement","src":"12391:29:63"}]},"id":42552,"nodeType":"IfStatement","src":"11075:1360:63","trueBody":{"id":42542,"nodeType":"Block","src":"11126:1100:63","statements":[{"assignments":[42469],"declarations":[{"constant":false,"id":42469,"mutability":"mutable","name":"epochCut","nameLocation":"11222:8:63","nodeType":"VariableDeclaration","scope":42542,"src":"11214:16:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42468,"name":"uint256","nodeType":"ElementaryTypeName","src":"11214:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42472,"initialValue":{"expression":{"id":42470,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"11233:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":42471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11239:6:63","memberName":"number","nodeType":"MemberAccess","src":"11233:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11214:31:63"},{"assignments":[42475],"declarations":[{"constant":false,"id":42475,"mutability":"mutable","name":"newBatch","nameLocation":"11287:8:63","nodeType":"VariableDeclaration","scope":42542,"src":"11263:32:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":42474,"nodeType":"UserDefinedTypeName","pathNode":{"id":42473,"name":"BottomUpMsgBatch","nameLocations":["11263:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"11263:16:63"},"referencedDeclaration":49898,"src":"11263:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":42489,"initialValue":{"arguments":[{"expression":{"id":42477,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42399,"src":"11347:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11349:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"11347:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},{"id":42479,"name":"epochCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42469,"src":"11395:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"expression":{"id":42484,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42432,"src":"11446:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11452:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"11446:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11457:6:63","memberName":"length","nodeType":"MemberAccess","src":"11446:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11431:14:63","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":42481,"nodeType":"UserDefinedTypeName","pathNode":{"id":42480,"name":"CrossMsg","nameLocations":["11435:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"11435:8:63"},"referencedDeclaration":49927,"src":"11435:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":42482,"nodeType":"ArrayTypeName","src":"11435:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":42487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11431:33:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"id":42476,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49898,"src":"11298:16:63","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpMsgBatch_$49898_storage_ptr_$","typeString":"type(struct BottomUpMsgBatch storage pointer)"}},"id":42488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11337:8:63","11382:11:63","11425:4:63"],"names":["subnetID","blockHeight","msgs"],"nodeType":"FunctionCall","src":"11298:185:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"VariableDeclarationStatement","src":"11263:220:63"},{"assignments":[42491],"declarations":[{"constant":false,"id":42491,"mutability":"mutable","name":"msgLength","nameLocation":"11509:9:63","nodeType":"VariableDeclaration","scope":42542,"src":"11501:17:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42490,"name":"uint256","nodeType":"ElementaryTypeName","src":"11501:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42495,"initialValue":{"expression":{"expression":{"id":42492,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42432,"src":"11521:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11527:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"11521:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11532:6:63","memberName":"length","nodeType":"MemberAccess","src":"11521:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11501:37:63"},{"body":{"id":42517,"nodeType":"Block","src":"11588:156:63","statements":[{"expression":{"id":42511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":42502,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42475,"src":"11610:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":42505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11619:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"11610:13:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42506,"indexExpression":{"id":42504,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42497,"src":"11624:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11610:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42507,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42432,"src":"11629:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11635:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"11629:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42510,"indexExpression":{"id":42509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42497,"src":"11640:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11629:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage","typeString":"struct CrossMsg storage ref"}},"src":"11610:32:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42512,"nodeType":"ExpressionStatement","src":"11610:32:63"},{"id":42516,"nodeType":"UncheckedBlock","src":"11664:62:63","statements":[{"expression":{"id":42514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11700:3:63","subExpression":{"id":42513,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42497,"src":"11702:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42515,"nodeType":"ExpressionStatement","src":"11700:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42499,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42497,"src":"11572:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42500,"name":"msgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42491,"src":"11576:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11572:13:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42518,"initializationExpression":{"assignments":[42497],"declarations":[{"constant":false,"id":42497,"mutability":"mutable","name":"i","nameLocation":"11569:1:63","nodeType":"VariableDeclaration","scope":42518,"src":"11561:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42496,"name":"uint256","nodeType":"ElementaryTypeName","src":"11561:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42498,"nodeType":"VariableDeclarationStatement","src":"11561:9:63"},"nodeType":"ForStatement","src":"11556:188:63"},{"eventCall":{"arguments":[{"id":42520,"name":"epochCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42469,"src":"11863:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42521,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42475,"src":"11872:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}],"id":42519,"name":"NewBottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41702,"src":"11843:19:63","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$returns$__$","typeString":"function (uint256,struct BottomUpMsgBatch memory)"}},"id":42522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11843:38:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42523,"nodeType":"EmitStatement","src":"11838:43:63"},{"expression":{"id":42526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"12010:17:63","subExpression":{"expression":{"id":42524,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42432,"src":"12017:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12023:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"12017:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42527,"nodeType":"ExpressionStatement","src":"12010:17:63"},{"expression":{"arguments":[{"id":42533,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42394,"src":"12137:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42528,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42432,"src":"12121:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12127:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"12121:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12132:4:63","memberName":"push","nodeType":"MemberAccess","src":"12121:15:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49927_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12121:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42535,"nodeType":"ExpressionStatement","src":"12121:29:63"},{"expression":{"arguments":[{"id":42539,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42475,"src":"12202:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}],"expression":{"id":42536,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"12169:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":42538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12180:21:63","memberName":"storeBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41951,"src":"12169:32:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory)"}},"id":42540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12169:42:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42541,"nodeType":"ExpressionStatement","src":"12169:42:63"}]}}]},"id":42554,"nodeType":"IfStatement","src":"10700:1745:63","trueBody":{"id":42461,"nodeType":"Block","src":"10713:202:63","statements":[{"expression":{"id":42445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42440,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42432,"src":"10727:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10733:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49889,"src":"10727:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42443,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42399,"src":"10744:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10746:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"10744:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"src":"10727:30:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":42446,"nodeType":"ExpressionStatement","src":"10727:30:63"},{"expression":{"id":42451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42447,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42432,"src":"10771:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10777:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"10771:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42450,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42405,"src":"10791:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10771:25:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42452,"nodeType":"ExpressionStatement","src":"10771:25:63"},{"expression":{"arguments":[{"id":42458,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42394,"src":"10891:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42453,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42432,"src":"10875:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10881:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"10875:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10886:4:63","memberName":"push","nodeType":"MemberAccess","src":"10875:15:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49927_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10875:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42460,"nodeType":"ExpressionStatement","src":"10875:29:63"}]}}]},"documentation":{"id":42391,"nodeType":"StructuredDocumentation","src":"10058:140:63","text":"@notice Commits a new cross-net message to a message batch for execution\n @param crossMessage - the cross message to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitBottomUpMsg","nameLocation":"10212:17:63","parameters":{"id":42395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42394,"mutability":"mutable","name":"crossMessage","nameLocation":"10246:12:63","nodeType":"VariableDeclaration","scope":42556,"src":"10230:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":42393,"nodeType":"UserDefinedTypeName","pathNode":{"id":42392,"name":"CrossMsg","nameLocations":["10230:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"10230:8:63"},"referencedDeclaration":49927,"src":"10230:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"10229:30:63"},"returnParameters":{"id":42396,"nodeType":"ParameterList","parameters":[],"src":"10269:0:63"},"scope":42888,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42599,"nodeType":"FunctionDefinition","src":"12666:372:63","nodes":[],"body":{"id":42598,"nodeType":"Block","src":"12758:280:63","nodes":[],"statements":[{"assignments":[42569],"declarations":[{"constant":false,"id":42569,"mutability":"mutable","name":"s","nameLocation":"12796:1:63","nodeType":"VariableDeclaration","scope":42598,"src":"12768:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42568,"nodeType":"UserDefinedTypeName","pathNode":{"id":42567,"name":"GatewayActorStorage","nameLocations":["12768:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"12768:19:63"},"referencedDeclaration":43012,"src":"12768:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42573,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42570,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"12800:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12823:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"12800:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12800:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12768:67:63"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":42579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42574,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42559,"src":"12849:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":42577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12866:1:63","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":42576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12858:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42575,"name":"address","nodeType":"ElementaryTypeName","src":"12858:7:63","typeDescriptions":{}}},"id":42578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12858:10:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12849:19:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42584,"nodeType":"IfStatement","src":"12845:78:63","trueBody":{"id":42583,"nodeType":"Block","src":"12870:53:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42580,"name":"InvalidActorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37402,"src":"12891:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12891:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42582,"nodeType":"RevertStatement","src":"12884:28:63"}]}},{"assignments":[42587],"declarations":[{"constant":false,"id":42587,"mutability":"mutable","name":"subnetId","nameLocation":"12948:8:63","nodeType":"VariableDeclaration","scope":42598,"src":"12932:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42586,"nodeType":"UserDefinedTypeName","pathNode":{"id":42585,"name":"SubnetID","nameLocations":["12932:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"12932:8:63"},"referencedDeclaration":50030,"src":"12932:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":42593,"initialValue":{"arguments":[{"id":42591,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42559,"src":"12988:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":42588,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42569,"src":"12959:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12961:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"12959:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":42590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12973:14:63","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"12959:28:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":42592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12959:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"12932:62:63"},{"expression":{"arguments":[{"id":42595,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42587,"src":"13022:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"id":42594,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[42599,42636],"referencedDeclaration":42636,"src":"13012:9:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":42596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13012:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"functionReturnParameters":42566,"id":42597,"nodeType":"Return","src":"13005:26:63"}]},"documentation":{"id":42557,"nodeType":"StructuredDocumentation","src":"12457:204:63","text":"@notice returns the subnet created by a validator\n @param actor the validator that created the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"12675:9:63","parameters":{"id":42560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42559,"mutability":"mutable","name":"actor","nameLocation":"12693:5:63","nodeType":"VariableDeclaration","scope":42599,"src":"12685:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42558,"name":"address","nodeType":"ElementaryTypeName","src":"12685:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12684:15:63"},"returnParameters":{"id":42566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42562,"mutability":"mutable","name":"found","nameLocation":"12728:5:63","nodeType":"VariableDeclaration","scope":42599,"src":"12723:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42561,"name":"bool","nodeType":"ElementaryTypeName","src":"12723:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42565,"mutability":"mutable","name":"subnet","nameLocation":"12750:6:63","nodeType":"VariableDeclaration","scope":42599,"src":"12735:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42564,"nodeType":"UserDefinedTypeName","pathNode":{"id":42563,"name":"Subnet","nameLocations":["12735:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"12735:6:63"},"referencedDeclaration":50044,"src":"12735:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"12722:35:63"},"scope":42888,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42636,"nodeType":"FunctionDefinition","src":"13234:272:63","nodes":[],"body":{"id":42635,"nodeType":"Block","src":"13337:169:63","nodes":[],"statements":[{"assignments":[42613],"declarations":[{"constant":false,"id":42613,"mutability":"mutable","name":"s","nameLocation":"13375:1:63","nodeType":"VariableDeclaration","scope":42635,"src":"13347:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42612,"nodeType":"UserDefinedTypeName","pathNode":{"id":42611,"name":"GatewayActorStorage","nameLocations":["13347:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"13347:19:63"},"referencedDeclaration":43012,"src":"13347:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42617,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42614,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"13379:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13402:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"13379:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13379:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13347:67:63"},{"expression":{"id":42625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42618,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42609,"src":"13424:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42619,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42613,"src":"13433:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13435:7:63","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42917,"src":"13433:9:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50044_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":42624,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42621,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42603,"src":"13443:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":42622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13452:6:63","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"13443:15:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":42623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13443:17:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13433:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage","typeString":"struct Subnet storage ref"}},"src":"13424:37:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42626,"nodeType":"ExpressionStatement","src":"13424:37:63"},{"expression":{"id":42633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42627,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42606,"src":"13471:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13479:20:63","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":42628,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42609,"src":"13480:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13487:2:63","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"13480:9:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":42630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13490:7:63","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48024,"src":"13480:17:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":42631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13471:28:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42634,"nodeType":"ExpressionStatement","src":"13471:28:63"}]},"documentation":{"id":42600,"nodeType":"StructuredDocumentation","src":"13044:185:63","text":"@notice returns the subnet with the given id\n @param subnetId the id of the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"13243:9:63","parameters":{"id":42604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42603,"mutability":"mutable","name":"subnetId","nameLocation":"13269:8:63","nodeType":"VariableDeclaration","scope":42636,"src":"13253:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42602,"nodeType":"UserDefinedTypeName","pathNode":{"id":42601,"name":"SubnetID","nameLocations":["13253:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"13253:8:63"},"referencedDeclaration":50030,"src":"13253:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"13252:26:63"},"returnParameters":{"id":42610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42606,"mutability":"mutable","name":"found","nameLocation":"13307:5:63","nodeType":"VariableDeclaration","scope":42636,"src":"13302:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42605,"name":"bool","nodeType":"ElementaryTypeName","src":"13302:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42609,"mutability":"mutable","name":"subnet","nameLocation":"13329:6:63","nodeType":"VariableDeclaration","scope":42636,"src":"13314:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42608,"nodeType":"UserDefinedTypeName","pathNode":{"id":42607,"name":"Subnet","nameLocations":["13314:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"13314:6:63"},"referencedDeclaration":50044,"src":"13314:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"13301:35:63"},"scope":42888,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42660,"nodeType":"FunctionDefinition","src":"13686:175:63","nodes":[],"body":{"id":42659,"nodeType":"Block","src":"13782:79:63","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":42648,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42639,"src":"13808:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13801:6:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":42646,"name":"uint64","nodeType":"ElementaryTypeName","src":"13801:6:63","typeDescriptions":{}}},"id":42649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13801:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":42650,"name":"checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42641,"src":"13823:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13801:33:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":42652,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13800:35:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":42653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13838:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13800:39:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":42655,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13799:41:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":42656,"name":"checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42641,"src":"13843:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13799:55:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":42645,"id":42658,"nodeType":"Return","src":"13792:62:63"}]},"documentation":{"id":42637,"nodeType":"StructuredDocumentation","src":"13512:169:63","text":"@notice method that gives the epoch for a given block number and checkpoint period\n @return epoch - the epoch for the given block number and checkpoint period"},"implemented":true,"kind":"function","modifiers":[],"name":"getNextEpoch","nameLocation":"13695:12:63","parameters":{"id":42642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42639,"mutability":"mutable","name":"blockNumber","nameLocation":"13716:11:63","nodeType":"VariableDeclaration","scope":42660,"src":"13708:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42638,"name":"uint256","nodeType":"ElementaryTypeName","src":"13708:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42641,"mutability":"mutable","name":"checkPeriod","nameLocation":"13737:11:63","nodeType":"VariableDeclaration","scope":42660,"src":"13729:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42640,"name":"uint256","nodeType":"ElementaryTypeName","src":"13729:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13707:42:63"},"returnParameters":{"id":42645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42660,"src":"13773:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42643,"name":"uint256","nodeType":"ElementaryTypeName","src":"13773:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13772:9:63"},"scope":42888,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42696,"nodeType":"FunctionDefinition","src":"14225:318:63","nodes":[],"body":{"id":42695,"nodeType":"Block","src":"14316:227:63","nodes":[],"statements":[{"assignments":[42672],"declarations":[{"constant":false,"id":42672,"mutability":"mutable","name":"crossMsgsLength","nameLocation":"14334:15:63","nodeType":"VariableDeclaration","scope":42695,"src":"14326:23:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42671,"name":"uint256","nodeType":"ElementaryTypeName","src":"14326:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42675,"initialValue":{"expression":{"id":42673,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42668,"src":"14352:9:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14362:6:63","memberName":"length","nodeType":"MemberAccess","src":"14352:16:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14326:42:63"},{"body":{"id":42693,"nodeType":"Block","src":"14417:120:63","statements":[{"expression":{"arguments":[{"id":42683,"name":"arrivingFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42664,"src":"14440:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"baseExpression":{"id":42684,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42668,"src":"14454:9:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42686,"indexExpression":{"id":42685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42677,"src":"14464:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14454:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}],"id":42682,"name":"applyMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42851,"src":"14431:8:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory)"}},"id":42687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14431:36:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42688,"nodeType":"ExpressionStatement","src":"14431:36:63"},{"id":42692,"nodeType":"UncheckedBlock","src":"14481:46:63","statements":[{"expression":{"id":42690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14509:3:63","subExpression":{"id":42689,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42677,"src":"14511:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42691,"nodeType":"ExpressionStatement","src":"14509:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42679,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42677,"src":"14394:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42680,"name":"crossMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42672,"src":"14398:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14394:19:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42694,"initializationExpression":{"assignments":[42677],"declarations":[{"constant":false,"id":42677,"mutability":"mutable","name":"i","nameLocation":"14391:1:63","nodeType":"VariableDeclaration","scope":42694,"src":"14383:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42676,"name":"uint256","nodeType":"ElementaryTypeName","src":"14383:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42678,"nodeType":"VariableDeclarationStatement","src":"14383:9:63"},"nodeType":"ForStatement","src":"14378:159:63"}]},"documentation":{"id":42661,"nodeType":"StructuredDocumentation","src":"13867:353:63","text":"@notice applies a cross-net messages coming from some other subnet.\n The forwarder argument determines the previous subnet that submitted the checkpoint triggering the cross-net message execution.\n @param arrivingFrom - the immediate subnet from which this message is arriving\n @param crossMsgs - the cross-net messages to apply"},"implemented":true,"kind":"function","modifiers":[],"name":"applyMessages","nameLocation":"14234:13:63","parameters":{"id":42669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42664,"mutability":"mutable","name":"arrivingFrom","nameLocation":"14264:12:63","nodeType":"VariableDeclaration","scope":42696,"src":"14248:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42663,"nodeType":"UserDefinedTypeName","pathNode":{"id":42662,"name":"SubnetID","nameLocations":["14248:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"14248:8:63"},"referencedDeclaration":50030,"src":"14248:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":42668,"mutability":"mutable","name":"crossMsgs","nameLocation":"14296:9:63","nodeType":"VariableDeclaration","scope":42696,"src":"14278:27:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":42666,"nodeType":"UserDefinedTypeName","pathNode":{"id":42665,"name":"CrossMsg","nameLocations":["14278:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"14278:8:63"},"referencedDeclaration":49927,"src":"14278:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":42667,"nodeType":"ArrayTypeName","src":"14278:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"14247:59:63"},"returnParameters":{"id":42670,"nodeType":"ParameterList","parameters":[],"src":"14316:0:63"},"scope":42888,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42851,"nodeType":"FunctionDefinition","src":"14837:2300:63","nodes":[],"body":{"id":42850,"nodeType":"Block","src":"14920:2217:63","nodes":[],"statements":[{"assignments":[42708],"declarations":[{"constant":false,"id":42708,"mutability":"mutable","name":"s","nameLocation":"14958:1:63","nodeType":"VariableDeclaration","scope":42850,"src":"14930:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42707,"nodeType":"UserDefinedTypeName","pathNode":{"id":42706,"name":"GatewayActorStorage","nameLocations":["14930:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"14930:19:63"},"referencedDeclaration":43012,"src":"14930:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42712,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42709,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"14962:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14985:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"14962:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14962:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14930:67:63"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"expression":{"id":42713,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42703,"src":"15012:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"15012:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15029:2:63","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49933,"src":"15012:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},"id":42716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15032:8:63","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"15012:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":42717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15041:7:63","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48024,"src":"15012:36:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":42718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15012:38:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42723,"nodeType":"IfStatement","src":"15008:102:63","trueBody":{"id":42722,"nodeType":"Block","src":"15052:58:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42719,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"15073:24:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15073:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42721,"nodeType":"RevertStatement","src":"15066:33:63"}]}},{"condition":{"id":42732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15291:51:63","subExpression":{"arguments":[{"expression":{"id":42729,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42708,"src":"15328:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15330:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"15328:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":42724,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42703,"src":"15292:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15301:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"15292:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15309:2:63","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49933,"src":"15292:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},"id":42727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15312:8:63","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"15292:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":42728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15321:6:63","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47778,"src":"15292:35:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":42731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15292:50:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42749,"nodeType":"IfStatement","src":"15287:172:63","trueBody":{"id":42748,"nodeType":"Block","src":"15344:115:63","statements":[{"assignments":[42734],"declarations":[{"constant":false,"id":42734,"mutability":"mutable","name":"cid","nameLocation":"15366:3:63","nodeType":"VariableDeclaration","scope":42748,"src":"15358:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42733,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15358:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42738,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42735,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42703,"src":"15372:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15381:6:63","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40534,"src":"15372:15:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49927_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49927_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":42737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15372:17:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15358:31:63"},{"expression":{"id":42745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":42739,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42708,"src":"15403:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15405:7:63","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42932,"src":"15403:9:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49927_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":42743,"indexExpression":{"id":42741,"name":"cid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42734,"src":"15413:3:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15403:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage","typeString":"struct CrossMsg storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42744,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42703,"src":"15420:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"15403:25:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage","typeString":"struct CrossMsg storage ref"}},"id":42746,"nodeType":"ExpressionStatement","src":"15403:25:63"},{"functionReturnParameters":42705,"id":42747,"nodeType":"Return","src":"15442:7:63"}]}},{"assignments":[42752],"declarations":[{"constant":false,"id":42752,"mutability":"mutable","name":"supplySource","nameLocation":"15633:12:63","nodeType":"VariableDeclaration","scope":42850,"src":"15613:32:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":42751,"nodeType":"UserDefinedTypeName","pathNode":{"id":42750,"name":"SupplySource","nameLocations":["15613:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"15613:12:63"},"referencedDeclaration":50179,"src":"15613:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":42753,"nodeType":"VariableDeclarationStatement","src":"15613:32:63"},{"assignments":[42756],"declarations":[{"constant":false,"id":42756,"mutability":"mutable","name":"applyType","nameLocation":"15666:9:63","nodeType":"VariableDeclaration","scope":42850,"src":"15655:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"typeName":{"id":42755,"nodeType":"UserDefinedTypeName","pathNode":{"id":42754,"name":"IPCMsgType","nameLocations":["15655:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":37364,"src":"15655:10:63"},"referencedDeclaration":37364,"src":"15655:10:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"id":42763,"initialValue":{"arguments":[{"expression":{"id":42760,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42708,"src":"15705:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15707:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"15705:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":42757,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42703,"src":"15678:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15687:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"15678:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15695:9:63","memberName":"applyType","nodeType":"MemberAccess","referencedDeclaration":47397,"src":"15678:26:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_StorableMsg_$49944_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_enum$_IPCMsgType_$37364_$attached_to$_t_struct$_StorableMsg_$49944_memory_ptr_$","typeString":"function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)"}},"id":42762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15678:41:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"VariableDeclarationStatement","src":"15655:64:63"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":42767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42764,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42756,"src":"15733:9:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":42765,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"15746:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":42766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15757:8:63","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":37363,"src":"15746:19:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"15733:32:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":42817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42814,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42756,"src":"16510:9:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":42815,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"16523:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":42816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16534:7:63","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"16523:18:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"16510:31:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42842,"nodeType":"IfStatement","src":"16506:533:63","trueBody":{"id":42841,"nodeType":"Block","src":"16543:496:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42818,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42708,"src":"16677:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16679:19:63","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":42980,"src":"16677:21:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":42820,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42703,"src":"16702:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16711:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"16702:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16719:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49937,"src":"16702:22:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16677:47:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42828,"nodeType":"IfStatement","src":"16673:115:63","trueBody":{"id":42827,"nodeType":"Block","src":"16726:62:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42824,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"16751:20:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16751:22:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42826,"nodeType":"RevertStatement","src":"16744:29:63"}]}},{"expression":{"id":42833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42829,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42708,"src":"16801:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16803:19:63","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":42980,"src":"16801:21:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":42832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16826:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16801:26:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42834,"nodeType":"ExpressionStatement","src":"16801:26:63"},{"expression":{"id":42839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42835,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42752,"src":"16986:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42836,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"17001:18:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":42837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17020:6:63","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"17001:25:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":42838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17001:27:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"src":"16986:42:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":42840,"nodeType":"ExpressionStatement","src":"16986:42:63"}]}},"id":42843,"nodeType":"IfStatement","src":"15729:1310:63","trueBody":{"id":42813,"nodeType":"Block","src":"15767:733:63","statements":[{"assignments":[42769,42772],"declarations":[{"constant":false,"id":42769,"mutability":"mutable","name":"registered","nameLocation":"15908:10:63","nodeType":"VariableDeclaration","scope":42813,"src":"15903:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42768,"name":"bool","nodeType":"ElementaryTypeName","src":"15903:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42772,"mutability":"mutable","name":"subnet","nameLocation":"15935:6:63","nodeType":"VariableDeclaration","scope":42813,"src":"15920:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42771,"nodeType":"UserDefinedTypeName","pathNode":{"id":42770,"name":"Subnet","nameLocations":["15920:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"15920:6:63"},"referencedDeclaration":50044,"src":"15920:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":42777,"initialValue":{"arguments":[{"id":42775,"name":"arrivingFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42700,"src":"15966:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":42773,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"15945:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":42774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15956:9:63","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42636,"src":"15945:20:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":42776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15945:34:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50044_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"15902:77:63"},{"condition":{"id":42779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15997:11:63","subExpression":{"id":42778,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42769,"src":"15998:10:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42784,"nodeType":"IfStatement","src":"15993:78:63","trueBody":{"id":42783,"nodeType":"Block","src":"16010:61:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42780,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"16035:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16035:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42782,"nodeType":"RevertStatement","src":"16028:28:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42785,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42772,"src":"16088:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16095:20:63","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"16088:27:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":42787,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42703,"src":"16119:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16128:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49924,"src":"16119:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16136:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49937,"src":"16119:22:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16088:53:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42795,"nodeType":"IfStatement","src":"16084:121:63","trueBody":{"id":42794,"nodeType":"Block","src":"16143:62:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42791,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"16168:20:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16168:22:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42793,"nodeType":"RevertStatement","src":"16161:29:63"}]}},{"expression":{"id":42800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42796,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42772,"src":"16218:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16225:20:63","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"16218:27:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":42799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16249:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16218:32:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42801,"nodeType":"ExpressionStatement","src":"16218:32:63"},{"expression":{"id":42811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42802,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42752,"src":"16415:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":42804,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42772,"src":"16453:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16460:2:63","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"16453:9:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":42806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16463:8:63","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47718,"src":"16453:18:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":42807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:20:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42803,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"16430:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":42808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16430:44:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":42809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16475:12:63","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":51234,"src":"16430:57:63","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":42810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16430:59:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"src":"16415:74:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":42812,"nodeType":"ExpressionStatement","src":"16415:74:63"}]}},{"expression":{"arguments":[{"id":42847,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42752,"src":"17117:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":42844,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42703,"src":"17100:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17109:7:63","memberName":"execute","nodeType":"MemberAccess","referencedDeclaration":40668,"src":"17100:16:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_CrossMsg_$49927_memory_ptr_$_t_struct$_SupplySource_$50179_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CrossMsg_$49927_memory_ptr_$","typeString":"function (struct CrossMsg memory,struct SupplySource memory) returns (bytes memory)"}},"id":42848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:30:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":42849,"nodeType":"ExpressionStatement","src":"17100:30:63"}]},"documentation":{"id":42697,"nodeType":"StructuredDocumentation","src":"14549:283:63","text":"@notice executes a cross message if its destination is the current network, otherwise adds it to the postbox to be propagated further\n @param arrivingFrom - the immediate subnet from which this message is arriving\n @param crossMsg - the cross message to be executed"},"implemented":true,"kind":"function","modifiers":[],"name":"applyMsg","nameLocation":"14846:8:63","parameters":{"id":42704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42700,"mutability":"mutable","name":"arrivingFrom","nameLocation":"14871:12:63","nodeType":"VariableDeclaration","scope":42851,"src":"14855:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42699,"nodeType":"UserDefinedTypeName","pathNode":{"id":42698,"name":"SubnetID","nameLocations":["14855:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"14855:8:63"},"referencedDeclaration":50030,"src":"14855:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":42703,"mutability":"mutable","name":"crossMsg","nameLocation":"14901:8:63","nodeType":"VariableDeclaration","scope":42851,"src":"14885:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":42702,"nodeType":"UserDefinedTypeName","pathNode":{"id":42701,"name":"CrossMsg","nameLocations":["14885:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"14885:8:63"},"referencedDeclaration":49927,"src":"14885:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"14854:56:63"},"returnParameters":{"id":42705,"nodeType":"ParameterList","parameters":[],"src":"14920:0:63"},"scope":42888,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42887,"nodeType":"FunctionDefinition","src":"17298:361:63","nodes":[],"body":{"id":42886,"nodeType":"Block","src":"17367:292:63","nodes":[],"statements":[{"assignments":[42860],"declarations":[{"constant":false,"id":42860,"mutability":"mutable","name":"s","nameLocation":"17405:1:63","nodeType":"VariableDeclaration","scope":42886,"src":"17377:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42859,"nodeType":"UserDefinedTypeName","pathNode":{"id":42858,"name":"GatewayActorStorage","nameLocations":["17377:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"17377:19:63"},"referencedDeclaration":43012,"src":"17377:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42864,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42861,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"17409:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43023_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17432:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43022,"src":"17409:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43012_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17409:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17377:67:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42865,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42855,"src":"17459:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":42866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17465:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"17459:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17470:6:63","memberName":"length","nodeType":"MemberAccess","src":"17459:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":42868,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42860,"src":"17479:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17481:23:63","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"17479:25:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17459:45:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42875,"nodeType":"IfStatement","src":"17455:108:63","trueBody":{"id":42874,"nodeType":"Block","src":"17506:57:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42871,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"17527:23:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17527:25:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42873,"nodeType":"RevertStatement","src":"17520:32:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42876,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42855,"src":"17576:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":42877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17582:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"17576:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17587:6:63","memberName":"length","nodeType":"MemberAccess","src":"17576:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":42879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17597:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17576:22:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42885,"nodeType":"IfStatement","src":"17572:81:63","trueBody":{"id":42884,"nodeType":"Block","src":"17600:53:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42881,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"17621:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17621:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42883,"nodeType":"RevertStatement","src":"17614:28:63"}]}}]},"documentation":{"id":42852,"nodeType":"StructuredDocumentation","src":"17143:150:63","text":"@notice Checks the length of a message batch, ensuring it is in (0, maxMsgsPerBottomUpBatch).\n @param batch The batch of messages to check."},"implemented":true,"kind":"function","modifiers":[],"name":"checkMsgLength","nameLocation":"17307:14:63","parameters":{"id":42856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42855,"mutability":"mutable","name":"batch","nameLocation":"17346:5:63","nodeType":"VariableDeclaration","scope":42887,"src":"17322:29:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":42854,"nodeType":"UserDefinedTypeName","pathNode":{"id":42853,"name":"BottomUpMsgBatch","nameLocations":["17322:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"17322:16:63"},"referencedDeclaration":49898,"src":"17322:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"17321:31:63"},"returnParameters":{"id":42857,"nodeType":"ParameterList","parameters":[],"src":"17367:0:63"},"scope":42888,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGateway","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[42888],"name":"LibGateway","nameLocation":"1037:10:63","scope":42889,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":63} \ No newline at end of file diff --git a/.out/LibGatewayActorStorage.sol/GatewayActorModifiers.json b/.out/LibGatewayActorStorage.sol/GatewayActorModifiers.json index 95e714723..930027705 100644 --- a/.out/LibGatewayActorStorage.sol/GatewayActorModifiers.json +++ b/.out/LibGatewayActorStorage.sol/GatewayActorModifiers.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220bfc9ff56ae3390d566c245da4127227bb9dd0b8bd8d282fb16bf946b60b9a4b864736f6c63430008130033","sourceMap":"4020:629:64:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220bfc9ff56ae3390d566c245da4127227bb9dd0b8bd8d282fb16bf946b60b9a4b864736f6c63430008130033","sourceMap":"4020:629:64:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGatewayActorStorage.sol\":\"GatewayActorModifiers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGatewayActorStorage.sol":"GatewayActorModifiers"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGatewayActorStorage.sol","id":43138,"exportedSymbols":{"AccountHelper":[40447],"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"CrossMsg":[49974],"FilAddress":[1428],"GatewayActorModifiers":[43137],"GatewayActorStorage":[43068],"LibGatewayActorStorage":[43079],"Membership":[50218],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotSystemActor":[37486],"ParentFinality":[49918],"ParentValidatorsTracker":[50197],"QuorumMap":[50059],"Subnet":[50091],"SubnetID":[50077]},"nodeType":"SourceUnit","src":"46:4604:64","nodes":[{"id":42946,"nodeType":"PragmaDirective","src":"46:23:64","nodes":[],"literals":["solidity","0.8",".19"]},{"id":42950,"nodeType":"ImportDirective","src":"71:85:64","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":42947,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"79:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42948,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"93:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42949,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"109:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42952,"nodeType":"ImportDirective","src":"157:48:64","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":42951,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50059,"src":"165:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42957,"nodeType":"ImportDirective","src":"206:103:64","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":42953,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"214:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42954,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"234:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42955,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"252:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42956,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"262:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42961,"nodeType":"ImportDirective","src":"310:80:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":42958,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"318:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42959,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"328:6:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42960,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"336:23:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42963,"nodeType":"ImportDirective","src":"391:49:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":42962,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"399:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42965,"nodeType":"ImportDirective","src":"441:55:64","nodes":[],"absolutePath":"src/lib/AccountHelper.sol","file":"../lib/AccountHelper.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":40448,"symbolAliases":[{"foreign":{"id":42964,"name":"AccountHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40447,"src":"449:13:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42967,"nodeType":"ImportDirective","src":"497:56:64","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":42966,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"505:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43068,"nodeType":"StructDefinition","src":"555:3265:64","nodes":[],"canonicalName":"GatewayActorStorage","members":[{"constant":false,"id":42973,"mutability":"mutable","name":"subnets","nameLocation":"674:7:64","nodeType":"VariableDeclaration","scope":43068,"src":"647:34:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"typeName":{"id":42972,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"655:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"647:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42971,"nodeType":"UserDefinedTypeName","pathNode":{"id":42970,"name":"Subnet","nameLocations":["666:6:64"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"666:6:64"},"referencedDeclaration":50091,"src":"666:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}}},"visibility":"internal"},{"constant":false,"id":42979,"mutability":"mutable","name":"finalitiesMap","nameLocation":"816:13:64","nodeType":"VariableDeclaration","scope":43068,"src":"781:48:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"typeName":{"id":42978,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42975,"name":"uint256","nodeType":"ElementaryTypeName","src":"789:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"781:34:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42977,"nodeType":"UserDefinedTypeName","pathNode":{"id":42976,"name":"ParentFinality","nameLocations":["800:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"800:14:64"},"referencedDeclaration":49918,"src":"800:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}}},"visibility":"internal"},{"constant":false,"id":42982,"mutability":"mutable","name":"latestParentHeight","nameLocation":"895:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"887:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42981,"name":"uint256","nodeType":"ElementaryTypeName","src":"887:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42988,"mutability":"mutable","name":"postbox","nameLocation":"1143:7:64","nodeType":"VariableDeclaration","scope":43068,"src":"1114:36:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"typeName":{"id":42987,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1122:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1114:28:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42986,"nodeType":"UserDefinedTypeName","pathNode":{"id":42985,"name":"CrossMsg","nameLocations":["1133:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1133:8:64"},"referencedDeclaration":49974,"src":"1133:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},"visibility":"internal"},{"constant":false,"id":42992,"mutability":"mutable","name":"currentMembership","nameLocation":"1226:17:64","nodeType":"VariableDeclaration","scope":43068,"src":"1215:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42991,"nodeType":"UserDefinedTypeName","pathNode":{"id":42990,"name":"Membership","nameLocations":["1215:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"1215:10:64"},"referencedDeclaration":50218,"src":"1215:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42996,"mutability":"mutable","name":"lastMembership","nameLocation":"1333:14:64","nodeType":"VariableDeclaration","scope":43068,"src":"1322:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42995,"nodeType":"UserDefinedTypeName","pathNode":{"id":42994,"name":"Membership","nameLocations":["1322:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"1322:10:64"},"referencedDeclaration":50218,"src":"1322:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":43002,"mutability":"mutable","name":"bottomUpCheckpoints","nameLocation":"1513:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"1474:58:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":43001,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42998,"name":"uint256","nodeType":"ElementaryTypeName","src":"1482:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1474:38:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":43000,"nodeType":"UserDefinedTypeName","pathNode":{"id":42999,"name":"BottomUpCheckpoint","nameLocations":["1493:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1493:18:64"},"referencedDeclaration":49932,"src":"1493:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":43008,"mutability":"mutable","name":"bottomUpMsgBatches","nameLocation":"1699:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"1662:55:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"typeName":{"id":43007,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":43004,"name":"uint256","nodeType":"ElementaryTypeName","src":"1670:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1662:36:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":43006,"nodeType":"UserDefinedTypeName","pathNode":{"id":43005,"name":"BottomUpMsgBatch","nameLocations":["1681:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"1681:16:64"},"referencedDeclaration":49945,"src":"1681:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}}},"visibility":"internal"},{"constant":false,"id":43012,"mutability":"mutable","name":"checkpointQuorumMap","nameLocation":"1784:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"1774:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43011,"nodeType":"UserDefinedTypeName","pathNode":{"id":43010,"name":"QuorumMap","nameLocations":["1774:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"1774:9:64"},"referencedDeclaration":50059,"src":"1774:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43016,"mutability":"mutable","name":"bottomUpMsgBatchQuorumMap","nameLocation":"1880:25:64","nodeType":"VariableDeclaration","scope":43068,"src":"1870:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43015,"nodeType":"UserDefinedTypeName","pathNode":{"id":43014,"name":"QuorumMap","nameLocations":["1870:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"1870:9:64"},"referencedDeclaration":50059,"src":"1870:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43020,"mutability":"mutable","name":"subnetKeys","nameLocation":"2000:10:64","nodeType":"VariableDeclaration","scope":43068,"src":"1990:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":43018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1990:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":43019,"nodeType":"ArrayTypeName","src":"1990:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":43024,"mutability":"mutable","name":"networkName","nameLocation":"2069:11:64","nodeType":"VariableDeclaration","scope":43068,"src":"2060:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":43023,"nodeType":"UserDefinedTypeName","pathNode":{"id":43022,"name":"SubnetID","nameLocations":["2060:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2060:8:64"},"referencedDeclaration":50077,"src":"2060:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":43027,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2155:14:64","nodeType":"VariableDeclaration","scope":43068,"src":"2147:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43026,"name":"uint256","nodeType":"ElementaryTypeName","src":"2147:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43030,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2261:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"2255:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43029,"name":"uint8","nodeType":"ElementaryTypeName","src":"2255:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":43033,"mutability":"mutable","name":"bottomUpNonce","nameLocation":"2337:13:64","nodeType":"VariableDeclaration","scope":43068,"src":"2330:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43032,"name":"uint64","nodeType":"ElementaryTypeName","src":"2330:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43036,"mutability":"mutable","name":"appliedTopDownNonce","nameLocation":"2500:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"2493:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43035,"name":"uint64","nodeType":"ElementaryTypeName","src":"2493:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43039,"mutability":"mutable","name":"totalSubnets","nameLocation":"2595:12:64","nodeType":"VariableDeclaration","scope":43068,"src":"2588:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43038,"name":"uint64","nodeType":"ElementaryTypeName","src":"2588:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43042,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"2689:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"2681:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43041,"name":"uint256","nodeType":"ElementaryTypeName","src":"2681:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43045,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"2804:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"2796:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43044,"name":"uint256","nodeType":"ElementaryTypeName","src":"2796:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43048,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"2892:23:64","nodeType":"VariableDeclaration","scope":43068,"src":"2885:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43047,"name":"uint64","nodeType":"ElementaryTypeName","src":"2885:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43052,"mutability":"mutable","name":"validatorsTracker","nameLocation":"3008:17:64","nodeType":"VariableDeclaration","scope":43068,"src":"2984:41:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":43051,"nodeType":"UserDefinedTypeName","pathNode":{"id":43050,"name":"ParentValidatorsTracker","nameLocations":["2984:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"2984:23:64"},"referencedDeclaration":50197,"src":"2984:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":43055,"mutability":"mutable","name":"maxTreeDepth","nameLocation":"3348:12:64","nodeType":"VariableDeclaration","scope":43068,"src":"3342:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43054,"name":"uint8","nodeType":"ElementaryTypeName","src":"3342:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":43058,"mutability":"mutable","name":"generalPurposeCrossMsg","nameLocation":"3449:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"3444:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43057,"name":"bool","nodeType":"ElementaryTypeName","src":"3444:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43061,"mutability":"mutable","name":"multiLevelCrossMsg","nameLocation":"3556:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"3551:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43060,"name":"bool","nodeType":"ElementaryTypeName","src":"3551:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43064,"mutability":"mutable","name":"checkpointRelayerRewards","nameLocation":"3670:24:64","nodeType":"VariableDeclaration","scope":43068,"src":"3665:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43063,"name":"bool","nodeType":"ElementaryTypeName","src":"3665:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43067,"mutability":"mutable","name":"crossMsgRelayerRewards","nameLocation":"3795:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"3790:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43066,"name":"bool","nodeType":"ElementaryTypeName","src":"3790:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"GatewayActorStorage","nameLocation":"562:19:64","scope":43138,"visibility":"public"},{"id":43079,"nodeType":"ContractDefinition","src":"3822:196:64","nodes":[{"id":43078,"nodeType":"FunctionDefinition","src":"3859:157:64","nodes":[],"body":{"id":43077,"nodeType":"Block","src":"3936:80:64","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3955:36:64","statements":[{"nodeType":"YulAssignment","src":"3969:12:64","value":{"kind":"number","nodeType":"YulLiteral","src":"3980:1:64","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3969:7:64"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":43072,"isOffset":false,"isSlot":true,"src":"3969:7:64","suffix":"slot","valueSize":1}],"id":43074,"nodeType":"InlineAssembly","src":"3946:45:64"},{"expression":{"id":43075,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43072,"src":"4007:2:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"functionReturnParameters":43073,"id":43076,"nodeType":"Return","src":"4000:9:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3868:10:64","parameters":{"id":43069,"nodeType":"ParameterList","parameters":[],"src":"3878:2:64"},"returnParameters":{"id":43073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43072,"mutability":"mutable","name":"ds","nameLocation":"3932:2:64","nodeType":"VariableDeclaration","scope":43078,"src":"3904:30:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":43071,"nodeType":"UserDefinedTypeName","pathNode":{"id":43070,"name":"GatewayActorStorage","nameLocations":["3904:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"3904:19:64"},"referencedDeclaration":43068,"src":"3904:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"src":"3903:32:64"},"scope":43079,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGatewayActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43079],"name":"LibGatewayActorStorage","nameLocation":"3830:22:64","scope":43138,"usedErrors":[]},{"id":43137,"nodeType":"ContractDefinition","src":"4020:629:64","nodes":[{"id":43082,"nodeType":"VariableDeclaration","src":"4057:30:64","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"4086:1:64","scope":43137,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":43081,"nodeType":"UserDefinedTypeName","pathNode":{"id":43080,"name":"GatewayActorStorage","nameLocations":["4057:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"4057:19:64"},"referencedDeclaration":43068,"src":"4057:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":43085,"nodeType":"UsingForDirective","src":"4094:29:64","nodes":[],"global":false,"libraryName":{"id":43083,"name":"FilAddress","nameLocations":["4100:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4100:10:64"},"typeName":{"id":43084,"name":"address","nodeType":"ElementaryTypeName","src":"4115:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43088,"nodeType":"UsingForDirective","src":"4128:37:64","nodes":[],"global":false,"libraryName":{"id":43086,"name":"FilAddress","nameLocations":["4134:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4134:10:64"},"typeName":{"id":43087,"name":"address","nodeType":"ElementaryTypeName","src":"4149:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":43091,"nodeType":"UsingForDirective","src":"4170:32:64","nodes":[],"global":false,"libraryName":{"id":43089,"name":"AccountHelper","nameLocations":["4176:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":40447,"src":"4176:13:64"},"typeName":{"id":43090,"name":"address","nodeType":"ElementaryTypeName","src":"4194:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43115,"nodeType":"FunctionDefinition","src":"4208:216:64","nodes":[],"body":{"id":43114,"nodeType":"Block","src":"4256:168:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43096,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43093,"src":"4270:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43097,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4276:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":43098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4278:14:64","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":43027,"src":"4276:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4270:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43104,"nodeType":"IfStatement","src":"4266:74:64","trueBody":{"id":43103,"nodeType":"Block","src":"4294:46:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43100,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"4315:12:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4315:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43102,"nodeType":"RevertStatement","src":"4308:21:64"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43105,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4353:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4357:5:64","memberName":"value","nodeType":"MemberAccess","src":"4353:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43107,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43093,"src":"4365:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4353:15:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43113,"nodeType":"IfStatement","src":"4349:69:64","trueBody":{"id":43112,"nodeType":"Block","src":"4370:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43109,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"4391:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4391:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43111,"nodeType":"RevertStatement","src":"4384:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateFee","nameLocation":"4217:11:64","parameters":{"id":43094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43093,"mutability":"mutable","name":"fee","nameLocation":"4237:3:64","nodeType":"VariableDeclaration","scope":43115,"src":"4229:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43092,"name":"uint256","nodeType":"ElementaryTypeName","src":"4229:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4228:13:64"},"returnParameters":{"id":43095,"nodeType":"ParameterList","parameters":[],"src":"4256:0:64"},"scope":43137,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43129,"nodeType":"FunctionDefinition","src":"4430:138:64","nodes":[],"body":{"id":43128,"nodeType":"Block","src":"4471:97:64","nodes":[],"statements":[{"condition":{"id":43122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4485:27:64","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43118,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4486:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4490:6:64","memberName":"sender","nodeType":"MemberAccess","src":"4486:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4497:13:64","memberName":"isSystemActor","nodeType":"MemberAccess","referencedDeclaration":40446,"src":"4486:24:64","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) pure returns (bool)"}},"id":43121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4486:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43127,"nodeType":"IfStatement","src":"4481:81:64","trueBody":{"id":43126,"nodeType":"Block","src":"4514:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43123,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"4535:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4535:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43125,"nodeType":"RevertStatement","src":"4528:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_systemActorOnly","nameLocation":"4439:16:64","parameters":{"id":43116,"nodeType":"ParameterList","parameters":[],"src":"4455:2:64"},"returnParameters":{"id":43117,"nodeType":"ParameterList","parameters":[],"src":"4471:0:64"},"scope":43137,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":43136,"nodeType":"ModifierDefinition","src":"4574:73:64","nodes":[],"body":{"id":43135,"nodeType":"Block","src":"4601:46:64","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43131,"name":"_systemActorOnly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43129,"src":"4611:16:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43133,"nodeType":"ExpressionStatement","src":"4611:18:64"},{"id":43134,"nodeType":"PlaceholderStatement","src":"4639:1:64"}]},"name":"systemActorOnly","nameLocation":"4583:15:64","parameters":{"id":43130,"nodeType":"ParameterList","parameters":[],"src":"4598:2:64"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[43137],"name":"GatewayActorModifiers","nameLocation":"4029:21:64","scope":43138,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":64} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220bfc9ff56ae3390d566c245da4127227bb9dd0b8bd8d282fb16bf946b60b9a4b864736f6c63430008130033","sourceMap":"4020:629:64:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220bfc9ff56ae3390d566c245da4127227bb9dd0b8bd8d282fb16bf946b60b9a4b864736f6c63430008130033","sourceMap":"4020:629:64:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGatewayActorStorage.sol\":\"GatewayActorModifiers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGatewayActorStorage.sol":"GatewayActorModifiers"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGatewayActorStorage.sol","id":43082,"exportedSymbols":{"AccountHelper":[40391],"BottomUpCheckpoint":[49885],"BottomUpMsgBatch":[49898],"CrossMsg":[49927],"FilAddress":[1428],"GatewayActorModifiers":[43081],"GatewayActorStorage":[43012],"LibGatewayActorStorage":[43023],"Membership":[50171],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotSystemActor":[37486],"ParentFinality":[49871],"ParentValidatorsTracker":[50150],"QuorumMap":[50012],"Subnet":[50044],"SubnetID":[50030]},"nodeType":"SourceUnit","src":"46:4604:64","nodes":[{"id":42890,"nodeType":"PragmaDirective","src":"46:23:64","nodes":[],"literals":["solidity","0.8",".19"]},{"id":42894,"nodeType":"ImportDirective","src":"71:85:64","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":42891,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"79:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42892,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"93:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42893,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"109:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42896,"nodeType":"ImportDirective","src":"157:48:64","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":50013,"symbolAliases":[{"foreign":{"id":42895,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"165:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42901,"nodeType":"ImportDirective","src":"206:103:64","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":42897,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"214:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42898,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49898,"src":"234:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42899,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"252:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42900,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"262:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42905,"nodeType":"ImportDirective","src":"310:80:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":42902,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"318:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42903,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"328:6:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42904,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"336:23:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42907,"nodeType":"ImportDirective","src":"391:49:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":42906,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50171,"src":"399:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42909,"nodeType":"ImportDirective","src":"441:55:64","nodes":[],"absolutePath":"src/lib/AccountHelper.sol","file":"../lib/AccountHelper.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":40392,"symbolAliases":[{"foreign":{"id":42908,"name":"AccountHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40391,"src":"449:13:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42911,"nodeType":"ImportDirective","src":"497:56:64","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":42910,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"505:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43012,"nodeType":"StructDefinition","src":"555:3265:64","nodes":[],"canonicalName":"GatewayActorStorage","members":[{"constant":false,"id":42917,"mutability":"mutable","name":"subnets","nameLocation":"674:7:64","nodeType":"VariableDeclaration","scope":43012,"src":"647:34:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50044_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"typeName":{"id":42916,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"655:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"647:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50044_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42915,"nodeType":"UserDefinedTypeName","pathNode":{"id":42914,"name":"Subnet","nameLocations":["666:6:64"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"666:6:64"},"referencedDeclaration":50044,"src":"666:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}}},"visibility":"internal"},{"constant":false,"id":42923,"mutability":"mutable","name":"finalitiesMap","nameLocation":"816:13:64","nodeType":"VariableDeclaration","scope":43012,"src":"781:48:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49871_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"typeName":{"id":42922,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42919,"name":"uint256","nodeType":"ElementaryTypeName","src":"789:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"781:34:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49871_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42921,"nodeType":"UserDefinedTypeName","pathNode":{"id":42920,"name":"ParentFinality","nameLocations":["800:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"800:14:64"},"referencedDeclaration":49871,"src":"800:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}}},"visibility":"internal"},{"constant":false,"id":42926,"mutability":"mutable","name":"latestParentHeight","nameLocation":"895:18:64","nodeType":"VariableDeclaration","scope":43012,"src":"887:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42925,"name":"uint256","nodeType":"ElementaryTypeName","src":"887:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42932,"mutability":"mutable","name":"postbox","nameLocation":"1143:7:64","nodeType":"VariableDeclaration","scope":43012,"src":"1114:36:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49927_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"typeName":{"id":42931,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1122:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1114:28:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49927_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42930,"nodeType":"UserDefinedTypeName","pathNode":{"id":42929,"name":"CrossMsg","nameLocations":["1133:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"1133:8:64"},"referencedDeclaration":49927,"src":"1133:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},"visibility":"internal"},{"constant":false,"id":42936,"mutability":"mutable","name":"currentMembership","nameLocation":"1226:17:64","nodeType":"VariableDeclaration","scope":43012,"src":"1215:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42935,"nodeType":"UserDefinedTypeName","pathNode":{"id":42934,"name":"Membership","nameLocations":["1215:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"1215:10:64"},"referencedDeclaration":50171,"src":"1215:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42940,"mutability":"mutable","name":"lastMembership","nameLocation":"1333:14:64","nodeType":"VariableDeclaration","scope":43012,"src":"1322:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42939,"nodeType":"UserDefinedTypeName","pathNode":{"id":42938,"name":"Membership","nameLocations":["1322:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"1322:10:64"},"referencedDeclaration":50171,"src":"1322:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42946,"mutability":"mutable","name":"bottomUpCheckpoints","nameLocation":"1513:19:64","nodeType":"VariableDeclaration","scope":43012,"src":"1474:58:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":42945,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42942,"name":"uint256","nodeType":"ElementaryTypeName","src":"1482:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1474:38:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42944,"nodeType":"UserDefinedTypeName","pathNode":{"id":42943,"name":"BottomUpCheckpoint","nameLocations":["1493:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"1493:18:64"},"referencedDeclaration":49885,"src":"1493:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":42952,"mutability":"mutable","name":"bottomUpMsgBatches","nameLocation":"1699:18:64","nodeType":"VariableDeclaration","scope":43012,"src":"1662:55:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"typeName":{"id":42951,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1670:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1662:36:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42950,"nodeType":"UserDefinedTypeName","pathNode":{"id":42949,"name":"BottomUpMsgBatch","nameLocations":["1681:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"1681:16:64"},"referencedDeclaration":49898,"src":"1681:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}}},"visibility":"internal"},{"constant":false,"id":42956,"mutability":"mutable","name":"checkpointQuorumMap","nameLocation":"1784:19:64","nodeType":"VariableDeclaration","scope":43012,"src":"1774:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":42955,"nodeType":"UserDefinedTypeName","pathNode":{"id":42954,"name":"QuorumMap","nameLocations":["1774:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"1774:9:64"},"referencedDeclaration":50012,"src":"1774:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":42960,"mutability":"mutable","name":"bottomUpMsgBatchQuorumMap","nameLocation":"1880:25:64","nodeType":"VariableDeclaration","scope":43012,"src":"1870:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":42959,"nodeType":"UserDefinedTypeName","pathNode":{"id":42958,"name":"QuorumMap","nameLocations":["1870:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"1870:9:64"},"referencedDeclaration":50012,"src":"1870:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":42964,"mutability":"mutable","name":"subnetKeys","nameLocation":"2000:10:64","nodeType":"VariableDeclaration","scope":43012,"src":"1990:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":42962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1990:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":42963,"nodeType":"ArrayTypeName","src":"1990:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":42968,"mutability":"mutable","name":"networkName","nameLocation":"2069:11:64","nodeType":"VariableDeclaration","scope":43012,"src":"2060:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":42967,"nodeType":"UserDefinedTypeName","pathNode":{"id":42966,"name":"SubnetID","nameLocations":["2060:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"2060:8:64"},"referencedDeclaration":50030,"src":"2060:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":42971,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2155:14:64","nodeType":"VariableDeclaration","scope":43012,"src":"2147:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42970,"name":"uint256","nodeType":"ElementaryTypeName","src":"2147:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42974,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2261:18:64","nodeType":"VariableDeclaration","scope":43012,"src":"2255:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":42973,"name":"uint8","nodeType":"ElementaryTypeName","src":"2255:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":42977,"mutability":"mutable","name":"bottomUpNonce","nameLocation":"2337:13:64","nodeType":"VariableDeclaration","scope":43012,"src":"2330:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42976,"name":"uint64","nodeType":"ElementaryTypeName","src":"2330:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42980,"mutability":"mutable","name":"appliedTopDownNonce","nameLocation":"2500:19:64","nodeType":"VariableDeclaration","scope":43012,"src":"2493:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42979,"name":"uint64","nodeType":"ElementaryTypeName","src":"2493:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42983,"mutability":"mutable","name":"totalSubnets","nameLocation":"2595:12:64","nodeType":"VariableDeclaration","scope":43012,"src":"2588:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42982,"name":"uint64","nodeType":"ElementaryTypeName","src":"2588:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42986,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"2689:19:64","nodeType":"VariableDeclaration","scope":43012,"src":"2681:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42985,"name":"uint256","nodeType":"ElementaryTypeName","src":"2681:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42989,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"2804:22:64","nodeType":"VariableDeclaration","scope":43012,"src":"2796:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42988,"name":"uint256","nodeType":"ElementaryTypeName","src":"2796:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42992,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"2892:23:64","nodeType":"VariableDeclaration","scope":43012,"src":"2885:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42991,"name":"uint64","nodeType":"ElementaryTypeName","src":"2885:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42996,"mutability":"mutable","name":"validatorsTracker","nameLocation":"3008:17:64","nodeType":"VariableDeclaration","scope":43012,"src":"2984:41:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":42995,"nodeType":"UserDefinedTypeName","pathNode":{"id":42994,"name":"ParentValidatorsTracker","nameLocations":["2984:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2984:23:64"},"referencedDeclaration":50150,"src":"2984:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":42999,"mutability":"mutable","name":"maxTreeDepth","nameLocation":"3348:12:64","nodeType":"VariableDeclaration","scope":43012,"src":"3342:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":42998,"name":"uint8","nodeType":"ElementaryTypeName","src":"3342:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":43002,"mutability":"mutable","name":"generalPurposeCrossMsg","nameLocation":"3449:22:64","nodeType":"VariableDeclaration","scope":43012,"src":"3444:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43001,"name":"bool","nodeType":"ElementaryTypeName","src":"3444:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43005,"mutability":"mutable","name":"multiLevelCrossMsg","nameLocation":"3556:18:64","nodeType":"VariableDeclaration","scope":43012,"src":"3551:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43004,"name":"bool","nodeType":"ElementaryTypeName","src":"3551:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43008,"mutability":"mutable","name":"checkpointRelayerRewards","nameLocation":"3670:24:64","nodeType":"VariableDeclaration","scope":43012,"src":"3665:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43007,"name":"bool","nodeType":"ElementaryTypeName","src":"3665:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43011,"mutability":"mutable","name":"crossMsgRelayerRewards","nameLocation":"3795:22:64","nodeType":"VariableDeclaration","scope":43012,"src":"3790:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43010,"name":"bool","nodeType":"ElementaryTypeName","src":"3790:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"GatewayActorStorage","nameLocation":"562:19:64","scope":43082,"visibility":"public"},{"id":43023,"nodeType":"ContractDefinition","src":"3822:196:64","nodes":[{"id":43022,"nodeType":"FunctionDefinition","src":"3859:157:64","nodes":[],"body":{"id":43021,"nodeType":"Block","src":"3936:80:64","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3955:36:64","statements":[{"nodeType":"YulAssignment","src":"3969:12:64","value":{"kind":"number","nodeType":"YulLiteral","src":"3980:1:64","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3969:7:64"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":43016,"isOffset":false,"isSlot":true,"src":"3969:7:64","suffix":"slot","valueSize":1}],"id":43018,"nodeType":"InlineAssembly","src":"3946:45:64"},{"expression":{"id":43019,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43016,"src":"4007:2:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"functionReturnParameters":43017,"id":43020,"nodeType":"Return","src":"4000:9:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3868:10:64","parameters":{"id":43013,"nodeType":"ParameterList","parameters":[],"src":"3878:2:64"},"returnParameters":{"id":43017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43016,"mutability":"mutable","name":"ds","nameLocation":"3932:2:64","nodeType":"VariableDeclaration","scope":43022,"src":"3904:30:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":43015,"nodeType":"UserDefinedTypeName","pathNode":{"id":43014,"name":"GatewayActorStorage","nameLocations":["3904:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"3904:19:64"},"referencedDeclaration":43012,"src":"3904:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"src":"3903:32:64"},"scope":43023,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGatewayActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43023],"name":"LibGatewayActorStorage","nameLocation":"3830:22:64","scope":43082,"usedErrors":[]},{"id":43081,"nodeType":"ContractDefinition","src":"4020:629:64","nodes":[{"id":43026,"nodeType":"VariableDeclaration","src":"4057:30:64","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"4086:1:64","scope":43081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":43025,"nodeType":"UserDefinedTypeName","pathNode":{"id":43024,"name":"GatewayActorStorage","nameLocations":["4057:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"4057:19:64"},"referencedDeclaration":43012,"src":"4057:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":43029,"nodeType":"UsingForDirective","src":"4094:29:64","nodes":[],"global":false,"libraryName":{"id":43027,"name":"FilAddress","nameLocations":["4100:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4100:10:64"},"typeName":{"id":43028,"name":"address","nodeType":"ElementaryTypeName","src":"4115:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43032,"nodeType":"UsingForDirective","src":"4128:37:64","nodes":[],"global":false,"libraryName":{"id":43030,"name":"FilAddress","nameLocations":["4134:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4134:10:64"},"typeName":{"id":43031,"name":"address","nodeType":"ElementaryTypeName","src":"4149:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":43035,"nodeType":"UsingForDirective","src":"4170:32:64","nodes":[],"global":false,"libraryName":{"id":43033,"name":"AccountHelper","nameLocations":["4176:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":40391,"src":"4176:13:64"},"typeName":{"id":43034,"name":"address","nodeType":"ElementaryTypeName","src":"4194:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43059,"nodeType":"FunctionDefinition","src":"4208:216:64","nodes":[],"body":{"id":43058,"nodeType":"Block","src":"4256:168:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43040,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43037,"src":"4270:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43041,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"4276:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":43042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4278:14:64","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":42971,"src":"4276:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4270:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43048,"nodeType":"IfStatement","src":"4266:74:64","trueBody":{"id":43047,"nodeType":"Block","src":"4294:46:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43044,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"4315:12:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4315:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43046,"nodeType":"RevertStatement","src":"4308:21:64"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43049,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4353:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4357:5:64","memberName":"value","nodeType":"MemberAccess","src":"4353:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43051,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43037,"src":"4365:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4353:15:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43057,"nodeType":"IfStatement","src":"4349:69:64","trueBody":{"id":43056,"nodeType":"Block","src":"4370:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43053,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"4391:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4391:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43055,"nodeType":"RevertStatement","src":"4384:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateFee","nameLocation":"4217:11:64","parameters":{"id":43038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43037,"mutability":"mutable","name":"fee","nameLocation":"4237:3:64","nodeType":"VariableDeclaration","scope":43059,"src":"4229:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43036,"name":"uint256","nodeType":"ElementaryTypeName","src":"4229:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4228:13:64"},"returnParameters":{"id":43039,"nodeType":"ParameterList","parameters":[],"src":"4256:0:64"},"scope":43081,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43073,"nodeType":"FunctionDefinition","src":"4430:138:64","nodes":[],"body":{"id":43072,"nodeType":"Block","src":"4471:97:64","nodes":[],"statements":[{"condition":{"id":43066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4485:27:64","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43062,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4486:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4490:6:64","memberName":"sender","nodeType":"MemberAccess","src":"4486:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4497:13:64","memberName":"isSystemActor","nodeType":"MemberAccess","referencedDeclaration":40390,"src":"4486:24:64","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) pure returns (bool)"}},"id":43065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4486:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43071,"nodeType":"IfStatement","src":"4481:81:64","trueBody":{"id":43070,"nodeType":"Block","src":"4514:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43067,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"4535:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4535:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43069,"nodeType":"RevertStatement","src":"4528:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_systemActorOnly","nameLocation":"4439:16:64","parameters":{"id":43060,"nodeType":"ParameterList","parameters":[],"src":"4455:2:64"},"returnParameters":{"id":43061,"nodeType":"ParameterList","parameters":[],"src":"4471:0:64"},"scope":43081,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":43080,"nodeType":"ModifierDefinition","src":"4574:73:64","nodes":[],"body":{"id":43079,"nodeType":"Block","src":"4601:46:64","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43075,"name":"_systemActorOnly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43073,"src":"4611:16:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43077,"nodeType":"ExpressionStatement","src":"4611:18:64"},{"id":43078,"nodeType":"PlaceholderStatement","src":"4639:1:64"}]},"name":"systemActorOnly","nameLocation":"4583:15:64","parameters":{"id":43074,"nodeType":"ParameterList","parameters":[],"src":"4598:2:64"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[43081],"name":"GatewayActorModifiers","nameLocation":"4029:21:64","scope":43082,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":64} \ No newline at end of file diff --git a/.out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json b/.out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json index bad28c949..905974654 100644 --- a/.out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json +++ b/.out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220252e788b4beecbbfa67d5317f306aa612cba27fc7f141c3ae508dd97f6061ec064736f6c63430008130033","sourceMap":"3822:196:64:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220252e788b4beecbbfa67d5317f306aa612cba27fc7f141c3ae508dd97f6061ec064736f6c63430008130033","sourceMap":"3822:196:64:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGatewayActorStorage.sol\":\"LibGatewayActorStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGatewayActorStorage.sol":"LibGatewayActorStorage"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGatewayActorStorage.sol","id":43138,"exportedSymbols":{"AccountHelper":[40447],"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"CrossMsg":[49974],"FilAddress":[1428],"GatewayActorModifiers":[43137],"GatewayActorStorage":[43068],"LibGatewayActorStorage":[43079],"Membership":[50218],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotSystemActor":[37486],"ParentFinality":[49918],"ParentValidatorsTracker":[50197],"QuorumMap":[50059],"Subnet":[50091],"SubnetID":[50077]},"nodeType":"SourceUnit","src":"46:4604:64","nodes":[{"id":42946,"nodeType":"PragmaDirective","src":"46:23:64","nodes":[],"literals":["solidity","0.8",".19"]},{"id":42950,"nodeType":"ImportDirective","src":"71:85:64","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":42947,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"79:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42948,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"93:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42949,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"109:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42952,"nodeType":"ImportDirective","src":"157:48:64","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":42951,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50059,"src":"165:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42957,"nodeType":"ImportDirective","src":"206:103:64","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":42953,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"214:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42954,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"234:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42955,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"252:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42956,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"262:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42961,"nodeType":"ImportDirective","src":"310:80:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":42958,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"318:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42959,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"328:6:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42960,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"336:23:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42963,"nodeType":"ImportDirective","src":"391:49:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":42962,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"399:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42965,"nodeType":"ImportDirective","src":"441:55:64","nodes":[],"absolutePath":"src/lib/AccountHelper.sol","file":"../lib/AccountHelper.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":40448,"symbolAliases":[{"foreign":{"id":42964,"name":"AccountHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40447,"src":"449:13:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42967,"nodeType":"ImportDirective","src":"497:56:64","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":42966,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"505:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43068,"nodeType":"StructDefinition","src":"555:3265:64","nodes":[],"canonicalName":"GatewayActorStorage","members":[{"constant":false,"id":42973,"mutability":"mutable","name":"subnets","nameLocation":"674:7:64","nodeType":"VariableDeclaration","scope":43068,"src":"647:34:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"typeName":{"id":42972,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"655:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"647:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42971,"nodeType":"UserDefinedTypeName","pathNode":{"id":42970,"name":"Subnet","nameLocations":["666:6:64"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"666:6:64"},"referencedDeclaration":50091,"src":"666:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}}},"visibility":"internal"},{"constant":false,"id":42979,"mutability":"mutable","name":"finalitiesMap","nameLocation":"816:13:64","nodeType":"VariableDeclaration","scope":43068,"src":"781:48:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"typeName":{"id":42978,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42975,"name":"uint256","nodeType":"ElementaryTypeName","src":"789:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"781:34:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42977,"nodeType":"UserDefinedTypeName","pathNode":{"id":42976,"name":"ParentFinality","nameLocations":["800:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"800:14:64"},"referencedDeclaration":49918,"src":"800:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}}},"visibility":"internal"},{"constant":false,"id":42982,"mutability":"mutable","name":"latestParentHeight","nameLocation":"895:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"887:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42981,"name":"uint256","nodeType":"ElementaryTypeName","src":"887:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42988,"mutability":"mutable","name":"postbox","nameLocation":"1143:7:64","nodeType":"VariableDeclaration","scope":43068,"src":"1114:36:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"typeName":{"id":42987,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1122:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1114:28:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42986,"nodeType":"UserDefinedTypeName","pathNode":{"id":42985,"name":"CrossMsg","nameLocations":["1133:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1133:8:64"},"referencedDeclaration":49974,"src":"1133:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},"visibility":"internal"},{"constant":false,"id":42992,"mutability":"mutable","name":"currentMembership","nameLocation":"1226:17:64","nodeType":"VariableDeclaration","scope":43068,"src":"1215:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42991,"nodeType":"UserDefinedTypeName","pathNode":{"id":42990,"name":"Membership","nameLocations":["1215:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"1215:10:64"},"referencedDeclaration":50218,"src":"1215:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42996,"mutability":"mutable","name":"lastMembership","nameLocation":"1333:14:64","nodeType":"VariableDeclaration","scope":43068,"src":"1322:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42995,"nodeType":"UserDefinedTypeName","pathNode":{"id":42994,"name":"Membership","nameLocations":["1322:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"1322:10:64"},"referencedDeclaration":50218,"src":"1322:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":43002,"mutability":"mutable","name":"bottomUpCheckpoints","nameLocation":"1513:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"1474:58:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":43001,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42998,"name":"uint256","nodeType":"ElementaryTypeName","src":"1482:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1474:38:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":43000,"nodeType":"UserDefinedTypeName","pathNode":{"id":42999,"name":"BottomUpCheckpoint","nameLocations":["1493:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1493:18:64"},"referencedDeclaration":49932,"src":"1493:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":43008,"mutability":"mutable","name":"bottomUpMsgBatches","nameLocation":"1699:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"1662:55:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"typeName":{"id":43007,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":43004,"name":"uint256","nodeType":"ElementaryTypeName","src":"1670:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1662:36:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":43006,"nodeType":"UserDefinedTypeName","pathNode":{"id":43005,"name":"BottomUpMsgBatch","nameLocations":["1681:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"1681:16:64"},"referencedDeclaration":49945,"src":"1681:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}}},"visibility":"internal"},{"constant":false,"id":43012,"mutability":"mutable","name":"checkpointQuorumMap","nameLocation":"1784:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"1774:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43011,"nodeType":"UserDefinedTypeName","pathNode":{"id":43010,"name":"QuorumMap","nameLocations":["1774:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"1774:9:64"},"referencedDeclaration":50059,"src":"1774:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43016,"mutability":"mutable","name":"bottomUpMsgBatchQuorumMap","nameLocation":"1880:25:64","nodeType":"VariableDeclaration","scope":43068,"src":"1870:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43015,"nodeType":"UserDefinedTypeName","pathNode":{"id":43014,"name":"QuorumMap","nameLocations":["1870:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"1870:9:64"},"referencedDeclaration":50059,"src":"1870:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43020,"mutability":"mutable","name":"subnetKeys","nameLocation":"2000:10:64","nodeType":"VariableDeclaration","scope":43068,"src":"1990:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":43018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1990:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":43019,"nodeType":"ArrayTypeName","src":"1990:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":43024,"mutability":"mutable","name":"networkName","nameLocation":"2069:11:64","nodeType":"VariableDeclaration","scope":43068,"src":"2060:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":43023,"nodeType":"UserDefinedTypeName","pathNode":{"id":43022,"name":"SubnetID","nameLocations":["2060:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2060:8:64"},"referencedDeclaration":50077,"src":"2060:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":43027,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2155:14:64","nodeType":"VariableDeclaration","scope":43068,"src":"2147:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43026,"name":"uint256","nodeType":"ElementaryTypeName","src":"2147:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43030,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2261:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"2255:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43029,"name":"uint8","nodeType":"ElementaryTypeName","src":"2255:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":43033,"mutability":"mutable","name":"bottomUpNonce","nameLocation":"2337:13:64","nodeType":"VariableDeclaration","scope":43068,"src":"2330:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43032,"name":"uint64","nodeType":"ElementaryTypeName","src":"2330:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43036,"mutability":"mutable","name":"appliedTopDownNonce","nameLocation":"2500:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"2493:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43035,"name":"uint64","nodeType":"ElementaryTypeName","src":"2493:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43039,"mutability":"mutable","name":"totalSubnets","nameLocation":"2595:12:64","nodeType":"VariableDeclaration","scope":43068,"src":"2588:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43038,"name":"uint64","nodeType":"ElementaryTypeName","src":"2588:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43042,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"2689:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"2681:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43041,"name":"uint256","nodeType":"ElementaryTypeName","src":"2681:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43045,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"2804:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"2796:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43044,"name":"uint256","nodeType":"ElementaryTypeName","src":"2796:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43048,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"2892:23:64","nodeType":"VariableDeclaration","scope":43068,"src":"2885:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43047,"name":"uint64","nodeType":"ElementaryTypeName","src":"2885:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43052,"mutability":"mutable","name":"validatorsTracker","nameLocation":"3008:17:64","nodeType":"VariableDeclaration","scope":43068,"src":"2984:41:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":43051,"nodeType":"UserDefinedTypeName","pathNode":{"id":43050,"name":"ParentValidatorsTracker","nameLocations":["2984:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"2984:23:64"},"referencedDeclaration":50197,"src":"2984:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":43055,"mutability":"mutable","name":"maxTreeDepth","nameLocation":"3348:12:64","nodeType":"VariableDeclaration","scope":43068,"src":"3342:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43054,"name":"uint8","nodeType":"ElementaryTypeName","src":"3342:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":43058,"mutability":"mutable","name":"generalPurposeCrossMsg","nameLocation":"3449:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"3444:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43057,"name":"bool","nodeType":"ElementaryTypeName","src":"3444:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43061,"mutability":"mutable","name":"multiLevelCrossMsg","nameLocation":"3556:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"3551:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43060,"name":"bool","nodeType":"ElementaryTypeName","src":"3551:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43064,"mutability":"mutable","name":"checkpointRelayerRewards","nameLocation":"3670:24:64","nodeType":"VariableDeclaration","scope":43068,"src":"3665:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43063,"name":"bool","nodeType":"ElementaryTypeName","src":"3665:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43067,"mutability":"mutable","name":"crossMsgRelayerRewards","nameLocation":"3795:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"3790:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43066,"name":"bool","nodeType":"ElementaryTypeName","src":"3790:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"GatewayActorStorage","nameLocation":"562:19:64","scope":43138,"visibility":"public"},{"id":43079,"nodeType":"ContractDefinition","src":"3822:196:64","nodes":[{"id":43078,"nodeType":"FunctionDefinition","src":"3859:157:64","nodes":[],"body":{"id":43077,"nodeType":"Block","src":"3936:80:64","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3955:36:64","statements":[{"nodeType":"YulAssignment","src":"3969:12:64","value":{"kind":"number","nodeType":"YulLiteral","src":"3980:1:64","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3969:7:64"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":43072,"isOffset":false,"isSlot":true,"src":"3969:7:64","suffix":"slot","valueSize":1}],"id":43074,"nodeType":"InlineAssembly","src":"3946:45:64"},{"expression":{"id":43075,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43072,"src":"4007:2:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"functionReturnParameters":43073,"id":43076,"nodeType":"Return","src":"4000:9:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3868:10:64","parameters":{"id":43069,"nodeType":"ParameterList","parameters":[],"src":"3878:2:64"},"returnParameters":{"id":43073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43072,"mutability":"mutable","name":"ds","nameLocation":"3932:2:64","nodeType":"VariableDeclaration","scope":43078,"src":"3904:30:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":43071,"nodeType":"UserDefinedTypeName","pathNode":{"id":43070,"name":"GatewayActorStorage","nameLocations":["3904:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"3904:19:64"},"referencedDeclaration":43068,"src":"3904:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"src":"3903:32:64"},"scope":43079,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGatewayActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43079],"name":"LibGatewayActorStorage","nameLocation":"3830:22:64","scope":43138,"usedErrors":[]},{"id":43137,"nodeType":"ContractDefinition","src":"4020:629:64","nodes":[{"id":43082,"nodeType":"VariableDeclaration","src":"4057:30:64","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"4086:1:64","scope":43137,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":43081,"nodeType":"UserDefinedTypeName","pathNode":{"id":43080,"name":"GatewayActorStorage","nameLocations":["4057:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"4057:19:64"},"referencedDeclaration":43068,"src":"4057:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":43085,"nodeType":"UsingForDirective","src":"4094:29:64","nodes":[],"global":false,"libraryName":{"id":43083,"name":"FilAddress","nameLocations":["4100:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4100:10:64"},"typeName":{"id":43084,"name":"address","nodeType":"ElementaryTypeName","src":"4115:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43088,"nodeType":"UsingForDirective","src":"4128:37:64","nodes":[],"global":false,"libraryName":{"id":43086,"name":"FilAddress","nameLocations":["4134:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4134:10:64"},"typeName":{"id":43087,"name":"address","nodeType":"ElementaryTypeName","src":"4149:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":43091,"nodeType":"UsingForDirective","src":"4170:32:64","nodes":[],"global":false,"libraryName":{"id":43089,"name":"AccountHelper","nameLocations":["4176:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":40447,"src":"4176:13:64"},"typeName":{"id":43090,"name":"address","nodeType":"ElementaryTypeName","src":"4194:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43115,"nodeType":"FunctionDefinition","src":"4208:216:64","nodes":[],"body":{"id":43114,"nodeType":"Block","src":"4256:168:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43096,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43093,"src":"4270:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43097,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4276:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":43098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4278:14:64","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":43027,"src":"4276:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4270:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43104,"nodeType":"IfStatement","src":"4266:74:64","trueBody":{"id":43103,"nodeType":"Block","src":"4294:46:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43100,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"4315:12:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4315:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43102,"nodeType":"RevertStatement","src":"4308:21:64"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43105,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4353:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4357:5:64","memberName":"value","nodeType":"MemberAccess","src":"4353:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43107,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43093,"src":"4365:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4353:15:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43113,"nodeType":"IfStatement","src":"4349:69:64","trueBody":{"id":43112,"nodeType":"Block","src":"4370:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43109,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"4391:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4391:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43111,"nodeType":"RevertStatement","src":"4384:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateFee","nameLocation":"4217:11:64","parameters":{"id":43094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43093,"mutability":"mutable","name":"fee","nameLocation":"4237:3:64","nodeType":"VariableDeclaration","scope":43115,"src":"4229:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43092,"name":"uint256","nodeType":"ElementaryTypeName","src":"4229:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4228:13:64"},"returnParameters":{"id":43095,"nodeType":"ParameterList","parameters":[],"src":"4256:0:64"},"scope":43137,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43129,"nodeType":"FunctionDefinition","src":"4430:138:64","nodes":[],"body":{"id":43128,"nodeType":"Block","src":"4471:97:64","nodes":[],"statements":[{"condition":{"id":43122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4485:27:64","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43118,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4486:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4490:6:64","memberName":"sender","nodeType":"MemberAccess","src":"4486:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4497:13:64","memberName":"isSystemActor","nodeType":"MemberAccess","referencedDeclaration":40446,"src":"4486:24:64","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) pure returns (bool)"}},"id":43121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4486:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43127,"nodeType":"IfStatement","src":"4481:81:64","trueBody":{"id":43126,"nodeType":"Block","src":"4514:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43123,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"4535:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4535:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43125,"nodeType":"RevertStatement","src":"4528:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_systemActorOnly","nameLocation":"4439:16:64","parameters":{"id":43116,"nodeType":"ParameterList","parameters":[],"src":"4455:2:64"},"returnParameters":{"id":43117,"nodeType":"ParameterList","parameters":[],"src":"4471:0:64"},"scope":43137,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":43136,"nodeType":"ModifierDefinition","src":"4574:73:64","nodes":[],"body":{"id":43135,"nodeType":"Block","src":"4601:46:64","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43131,"name":"_systemActorOnly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43129,"src":"4611:16:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43133,"nodeType":"ExpressionStatement","src":"4611:18:64"},{"id":43134,"nodeType":"PlaceholderStatement","src":"4639:1:64"}]},"name":"systemActorOnly","nameLocation":"4583:15:64","parameters":{"id":43130,"nodeType":"ParameterList","parameters":[],"src":"4598:2:64"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[43137],"name":"GatewayActorModifiers","nameLocation":"4029:21:64","scope":43138,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":64} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220252e788b4beecbbfa67d5317f306aa612cba27fc7f141c3ae508dd97f6061ec064736f6c63430008130033","sourceMap":"3822:196:64:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220252e788b4beecbbfa67d5317f306aa612cba27fc7f141c3ae508dd97f6061ec064736f6c63430008130033","sourceMap":"3822:196:64:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGatewayActorStorage.sol\":\"LibGatewayActorStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGatewayActorStorage.sol":"LibGatewayActorStorage"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGatewayActorStorage.sol","id":43082,"exportedSymbols":{"AccountHelper":[40391],"BottomUpCheckpoint":[49885],"BottomUpMsgBatch":[49898],"CrossMsg":[49927],"FilAddress":[1428],"GatewayActorModifiers":[43081],"GatewayActorStorage":[43012],"LibGatewayActorStorage":[43023],"Membership":[50171],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotSystemActor":[37486],"ParentFinality":[49871],"ParentValidatorsTracker":[50150],"QuorumMap":[50012],"Subnet":[50044],"SubnetID":[50030]},"nodeType":"SourceUnit","src":"46:4604:64","nodes":[{"id":42890,"nodeType":"PragmaDirective","src":"46:23:64","nodes":[],"literals":["solidity","0.8",".19"]},{"id":42894,"nodeType":"ImportDirective","src":"71:85:64","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":42891,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"79:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42892,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"93:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42893,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"109:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42896,"nodeType":"ImportDirective","src":"157:48:64","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":50013,"symbolAliases":[{"foreign":{"id":42895,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"165:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42901,"nodeType":"ImportDirective","src":"206:103:64","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":42897,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"214:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42898,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49898,"src":"234:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42899,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"252:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42900,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"262:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42905,"nodeType":"ImportDirective","src":"310:80:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":42902,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"318:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42903,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"328:6:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42904,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"336:23:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42907,"nodeType":"ImportDirective","src":"391:49:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":42906,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50171,"src":"399:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42909,"nodeType":"ImportDirective","src":"441:55:64","nodes":[],"absolutePath":"src/lib/AccountHelper.sol","file":"../lib/AccountHelper.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":40392,"symbolAliases":[{"foreign":{"id":42908,"name":"AccountHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40391,"src":"449:13:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42911,"nodeType":"ImportDirective","src":"497:56:64","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":43082,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":42910,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"505:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43012,"nodeType":"StructDefinition","src":"555:3265:64","nodes":[],"canonicalName":"GatewayActorStorage","members":[{"constant":false,"id":42917,"mutability":"mutable","name":"subnets","nameLocation":"674:7:64","nodeType":"VariableDeclaration","scope":43012,"src":"647:34:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50044_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"typeName":{"id":42916,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"655:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"647:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50044_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42915,"nodeType":"UserDefinedTypeName","pathNode":{"id":42914,"name":"Subnet","nameLocations":["666:6:64"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"666:6:64"},"referencedDeclaration":50044,"src":"666:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}}},"visibility":"internal"},{"constant":false,"id":42923,"mutability":"mutable","name":"finalitiesMap","nameLocation":"816:13:64","nodeType":"VariableDeclaration","scope":43012,"src":"781:48:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49871_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"typeName":{"id":42922,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42919,"name":"uint256","nodeType":"ElementaryTypeName","src":"789:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"781:34:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49871_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42921,"nodeType":"UserDefinedTypeName","pathNode":{"id":42920,"name":"ParentFinality","nameLocations":["800:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"800:14:64"},"referencedDeclaration":49871,"src":"800:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}}},"visibility":"internal"},{"constant":false,"id":42926,"mutability":"mutable","name":"latestParentHeight","nameLocation":"895:18:64","nodeType":"VariableDeclaration","scope":43012,"src":"887:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42925,"name":"uint256","nodeType":"ElementaryTypeName","src":"887:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42932,"mutability":"mutable","name":"postbox","nameLocation":"1143:7:64","nodeType":"VariableDeclaration","scope":43012,"src":"1114:36:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49927_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"typeName":{"id":42931,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1122:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1114:28:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49927_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42930,"nodeType":"UserDefinedTypeName","pathNode":{"id":42929,"name":"CrossMsg","nameLocations":["1133:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"1133:8:64"},"referencedDeclaration":49927,"src":"1133:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},"visibility":"internal"},{"constant":false,"id":42936,"mutability":"mutable","name":"currentMembership","nameLocation":"1226:17:64","nodeType":"VariableDeclaration","scope":43012,"src":"1215:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42935,"nodeType":"UserDefinedTypeName","pathNode":{"id":42934,"name":"Membership","nameLocations":["1215:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"1215:10:64"},"referencedDeclaration":50171,"src":"1215:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42940,"mutability":"mutable","name":"lastMembership","nameLocation":"1333:14:64","nodeType":"VariableDeclaration","scope":43012,"src":"1322:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42939,"nodeType":"UserDefinedTypeName","pathNode":{"id":42938,"name":"Membership","nameLocations":["1322:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50171,"src":"1322:10:64"},"referencedDeclaration":50171,"src":"1322:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42946,"mutability":"mutable","name":"bottomUpCheckpoints","nameLocation":"1513:19:64","nodeType":"VariableDeclaration","scope":43012,"src":"1474:58:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":42945,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42942,"name":"uint256","nodeType":"ElementaryTypeName","src":"1482:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1474:38:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42944,"nodeType":"UserDefinedTypeName","pathNode":{"id":42943,"name":"BottomUpCheckpoint","nameLocations":["1493:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"1493:18:64"},"referencedDeclaration":49885,"src":"1493:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":42952,"mutability":"mutable","name":"bottomUpMsgBatches","nameLocation":"1699:18:64","nodeType":"VariableDeclaration","scope":43012,"src":"1662:55:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"typeName":{"id":42951,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1670:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1662:36:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49898_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42950,"nodeType":"UserDefinedTypeName","pathNode":{"id":42949,"name":"BottomUpMsgBatch","nameLocations":["1681:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"1681:16:64"},"referencedDeclaration":49898,"src":"1681:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}}},"visibility":"internal"},{"constant":false,"id":42956,"mutability":"mutable","name":"checkpointQuorumMap","nameLocation":"1784:19:64","nodeType":"VariableDeclaration","scope":43012,"src":"1774:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":42955,"nodeType":"UserDefinedTypeName","pathNode":{"id":42954,"name":"QuorumMap","nameLocations":["1774:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"1774:9:64"},"referencedDeclaration":50012,"src":"1774:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":42960,"mutability":"mutable","name":"bottomUpMsgBatchQuorumMap","nameLocation":"1880:25:64","nodeType":"VariableDeclaration","scope":43012,"src":"1870:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":42959,"nodeType":"UserDefinedTypeName","pathNode":{"id":42958,"name":"QuorumMap","nameLocations":["1870:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"1870:9:64"},"referencedDeclaration":50012,"src":"1870:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":42964,"mutability":"mutable","name":"subnetKeys","nameLocation":"2000:10:64","nodeType":"VariableDeclaration","scope":43012,"src":"1990:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":42962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1990:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":42963,"nodeType":"ArrayTypeName","src":"1990:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":42968,"mutability":"mutable","name":"networkName","nameLocation":"2069:11:64","nodeType":"VariableDeclaration","scope":43012,"src":"2060:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":42967,"nodeType":"UserDefinedTypeName","pathNode":{"id":42966,"name":"SubnetID","nameLocations":["2060:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"2060:8:64"},"referencedDeclaration":50030,"src":"2060:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":42971,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2155:14:64","nodeType":"VariableDeclaration","scope":43012,"src":"2147:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42970,"name":"uint256","nodeType":"ElementaryTypeName","src":"2147:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42974,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2261:18:64","nodeType":"VariableDeclaration","scope":43012,"src":"2255:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":42973,"name":"uint8","nodeType":"ElementaryTypeName","src":"2255:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":42977,"mutability":"mutable","name":"bottomUpNonce","nameLocation":"2337:13:64","nodeType":"VariableDeclaration","scope":43012,"src":"2330:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42976,"name":"uint64","nodeType":"ElementaryTypeName","src":"2330:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42980,"mutability":"mutable","name":"appliedTopDownNonce","nameLocation":"2500:19:64","nodeType":"VariableDeclaration","scope":43012,"src":"2493:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42979,"name":"uint64","nodeType":"ElementaryTypeName","src":"2493:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42983,"mutability":"mutable","name":"totalSubnets","nameLocation":"2595:12:64","nodeType":"VariableDeclaration","scope":43012,"src":"2588:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42982,"name":"uint64","nodeType":"ElementaryTypeName","src":"2588:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42986,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"2689:19:64","nodeType":"VariableDeclaration","scope":43012,"src":"2681:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42985,"name":"uint256","nodeType":"ElementaryTypeName","src":"2681:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42989,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"2804:22:64","nodeType":"VariableDeclaration","scope":43012,"src":"2796:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42988,"name":"uint256","nodeType":"ElementaryTypeName","src":"2796:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42992,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"2892:23:64","nodeType":"VariableDeclaration","scope":43012,"src":"2885:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42991,"name":"uint64","nodeType":"ElementaryTypeName","src":"2885:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42996,"mutability":"mutable","name":"validatorsTracker","nameLocation":"3008:17:64","nodeType":"VariableDeclaration","scope":43012,"src":"2984:41:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":42995,"nodeType":"UserDefinedTypeName","pathNode":{"id":42994,"name":"ParentValidatorsTracker","nameLocations":["2984:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2984:23:64"},"referencedDeclaration":50150,"src":"2984:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":42999,"mutability":"mutable","name":"maxTreeDepth","nameLocation":"3348:12:64","nodeType":"VariableDeclaration","scope":43012,"src":"3342:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":42998,"name":"uint8","nodeType":"ElementaryTypeName","src":"3342:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":43002,"mutability":"mutable","name":"generalPurposeCrossMsg","nameLocation":"3449:22:64","nodeType":"VariableDeclaration","scope":43012,"src":"3444:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43001,"name":"bool","nodeType":"ElementaryTypeName","src":"3444:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43005,"mutability":"mutable","name":"multiLevelCrossMsg","nameLocation":"3556:18:64","nodeType":"VariableDeclaration","scope":43012,"src":"3551:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43004,"name":"bool","nodeType":"ElementaryTypeName","src":"3551:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43008,"mutability":"mutable","name":"checkpointRelayerRewards","nameLocation":"3670:24:64","nodeType":"VariableDeclaration","scope":43012,"src":"3665:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43007,"name":"bool","nodeType":"ElementaryTypeName","src":"3665:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43011,"mutability":"mutable","name":"crossMsgRelayerRewards","nameLocation":"3795:22:64","nodeType":"VariableDeclaration","scope":43012,"src":"3790:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43010,"name":"bool","nodeType":"ElementaryTypeName","src":"3790:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"GatewayActorStorage","nameLocation":"562:19:64","scope":43082,"visibility":"public"},{"id":43023,"nodeType":"ContractDefinition","src":"3822:196:64","nodes":[{"id":43022,"nodeType":"FunctionDefinition","src":"3859:157:64","nodes":[],"body":{"id":43021,"nodeType":"Block","src":"3936:80:64","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3955:36:64","statements":[{"nodeType":"YulAssignment","src":"3969:12:64","value":{"kind":"number","nodeType":"YulLiteral","src":"3980:1:64","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3969:7:64"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":43016,"isOffset":false,"isSlot":true,"src":"3969:7:64","suffix":"slot","valueSize":1}],"id":43018,"nodeType":"InlineAssembly","src":"3946:45:64"},{"expression":{"id":43019,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43016,"src":"4007:2:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"functionReturnParameters":43017,"id":43020,"nodeType":"Return","src":"4000:9:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3868:10:64","parameters":{"id":43013,"nodeType":"ParameterList","parameters":[],"src":"3878:2:64"},"returnParameters":{"id":43017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43016,"mutability":"mutable","name":"ds","nameLocation":"3932:2:64","nodeType":"VariableDeclaration","scope":43022,"src":"3904:30:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":43015,"nodeType":"UserDefinedTypeName","pathNode":{"id":43014,"name":"GatewayActorStorage","nameLocations":["3904:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"3904:19:64"},"referencedDeclaration":43012,"src":"3904:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"src":"3903:32:64"},"scope":43023,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGatewayActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43023],"name":"LibGatewayActorStorage","nameLocation":"3830:22:64","scope":43082,"usedErrors":[]},{"id":43081,"nodeType":"ContractDefinition","src":"4020:629:64","nodes":[{"id":43026,"nodeType":"VariableDeclaration","src":"4057:30:64","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"4086:1:64","scope":43081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":43025,"nodeType":"UserDefinedTypeName","pathNode":{"id":43024,"name":"GatewayActorStorage","nameLocations":["4057:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43012,"src":"4057:19:64"},"referencedDeclaration":43012,"src":"4057:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":43029,"nodeType":"UsingForDirective","src":"4094:29:64","nodes":[],"global":false,"libraryName":{"id":43027,"name":"FilAddress","nameLocations":["4100:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4100:10:64"},"typeName":{"id":43028,"name":"address","nodeType":"ElementaryTypeName","src":"4115:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43032,"nodeType":"UsingForDirective","src":"4128:37:64","nodes":[],"global":false,"libraryName":{"id":43030,"name":"FilAddress","nameLocations":["4134:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4134:10:64"},"typeName":{"id":43031,"name":"address","nodeType":"ElementaryTypeName","src":"4149:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":43035,"nodeType":"UsingForDirective","src":"4170:32:64","nodes":[],"global":false,"libraryName":{"id":43033,"name":"AccountHelper","nameLocations":["4176:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":40391,"src":"4176:13:64"},"typeName":{"id":43034,"name":"address","nodeType":"ElementaryTypeName","src":"4194:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43059,"nodeType":"FunctionDefinition","src":"4208:216:64","nodes":[],"body":{"id":43058,"nodeType":"Block","src":"4256:168:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43040,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43037,"src":"4270:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43041,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"4276:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":43042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4278:14:64","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":42971,"src":"4276:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4270:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43048,"nodeType":"IfStatement","src":"4266:74:64","trueBody":{"id":43047,"nodeType":"Block","src":"4294:46:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43044,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"4315:12:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4315:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43046,"nodeType":"RevertStatement","src":"4308:21:64"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43049,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4353:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4357:5:64","memberName":"value","nodeType":"MemberAccess","src":"4353:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43051,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43037,"src":"4365:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4353:15:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43057,"nodeType":"IfStatement","src":"4349:69:64","trueBody":{"id":43056,"nodeType":"Block","src":"4370:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43053,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"4391:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4391:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43055,"nodeType":"RevertStatement","src":"4384:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateFee","nameLocation":"4217:11:64","parameters":{"id":43038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43037,"mutability":"mutable","name":"fee","nameLocation":"4237:3:64","nodeType":"VariableDeclaration","scope":43059,"src":"4229:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43036,"name":"uint256","nodeType":"ElementaryTypeName","src":"4229:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4228:13:64"},"returnParameters":{"id":43039,"nodeType":"ParameterList","parameters":[],"src":"4256:0:64"},"scope":43081,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43073,"nodeType":"FunctionDefinition","src":"4430:138:64","nodes":[],"body":{"id":43072,"nodeType":"Block","src":"4471:97:64","nodes":[],"statements":[{"condition":{"id":43066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4485:27:64","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43062,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4486:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4490:6:64","memberName":"sender","nodeType":"MemberAccess","src":"4486:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4497:13:64","memberName":"isSystemActor","nodeType":"MemberAccess","referencedDeclaration":40390,"src":"4486:24:64","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) pure returns (bool)"}},"id":43065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4486:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43071,"nodeType":"IfStatement","src":"4481:81:64","trueBody":{"id":43070,"nodeType":"Block","src":"4514:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43067,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"4535:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4535:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43069,"nodeType":"RevertStatement","src":"4528:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_systemActorOnly","nameLocation":"4439:16:64","parameters":{"id":43060,"nodeType":"ParameterList","parameters":[],"src":"4455:2:64"},"returnParameters":{"id":43061,"nodeType":"ParameterList","parameters":[],"src":"4471:0:64"},"scope":43081,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":43080,"nodeType":"ModifierDefinition","src":"4574:73:64","nodes":[],"body":{"id":43079,"nodeType":"Block","src":"4601:46:64","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43075,"name":"_systemActorOnly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43073,"src":"4611:16:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43077,"nodeType":"ExpressionStatement","src":"4611:18:64"},{"id":43078,"nodeType":"PlaceholderStatement","src":"4639:1:64"}]},"name":"systemActorOnly","nameLocation":"4583:15:64","parameters":{"id":43074,"nodeType":"ParameterList","parameters":[],"src":"4598:2:64"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[43081],"name":"GatewayActorModifiers","nameLocation":"4029:21:64","scope":43082,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":64} \ No newline at end of file diff --git a/.out/LibMaxPQ.sol/LibMaxPQ.json b/.out/LibMaxPQ.sol/LibMaxPQ.json index d4b17328f..38f3f4c9d 100644 --- a/.out/LibMaxPQ.sol/LibMaxPQ.json +++ b/.out/LibMaxPQ.sol/LibMaxPQ.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220a5dded6b847158724a34e02cf20abd48562a9aed63aed00b85ac85b8c046cc9064736f6c63430008130033","sourceMap":"368:6310:77:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220a5dded6b847158724a34e02cf20abd48562a9aed63aed00b85ac85b8c046cc9064736f6c63430008130033","sourceMap":"368:6310:77:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The max index priority queue for staking. The same implementation as LibMinPQ, just order compare is reversed.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibMaxPQ.sol\":\"LibMaxPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibMaxPQ.sol":"LibMaxPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibMaxPQ.sol","id":49017,"exportedSymbols":{"LibMaxPQ":[49016],"LibPQ":[49900],"LibValidatorSet":[45293],"MaxPQ":[48411],"PQ":[49658],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:6632:77","nodes":[{"id":48400,"nodeType":"PragmaDirective","src":"46:23:77","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48402,"nodeType":"ImportDirective","src":"71:50:77","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":49017,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":48401,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"79:15:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48404,"nodeType":"ImportDirective","src":"122:54:77","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":49017,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":48403,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"130:12:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48407,"nodeType":"ImportDirective","src":"177:38:77","nodes":[],"absolutePath":"src/lib/priority/LibPQ.sol","file":"./LibPQ.sol","nameLocation":"-1:-1:-1","scope":49017,"sourceUnit":49901,"symbolAliases":[{"foreign":{"id":48405,"name":"PQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49658,"src":"185:2:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48406,"name":"LibPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49900,"src":"189:5:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48411,"nodeType":"StructDefinition","src":"217:30:77","nodes":[],"canonicalName":"MaxPQ","members":[{"constant":false,"id":48410,"mutability":"mutable","name":"inner","nameLocation":"239:5:77","nodeType":"VariableDeclaration","scope":48411,"src":"236:8:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48409,"nodeType":"UserDefinedTypeName","pathNode":{"id":48408,"name":"PQ","nameLocations":["236:2:77"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"236:2:77"},"referencedDeclaration":49658,"src":"236:2:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"name":"MaxPQ","nameLocation":"224:5:77","scope":49017,"visibility":"public"},{"id":49016,"nodeType":"ContractDefinition","src":"368:6310:77","nodes":[{"id":48416,"nodeType":"UsingForDirective","src":"391:19:77","nodes":[],"global":false,"libraryName":{"id":48413,"name":"LibPQ","nameLocations":["397:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":49900,"src":"397:5:77"},"typeName":{"id":48415,"nodeType":"UserDefinedTypeName","pathNode":{"id":48414,"name":"PQ","nameLocations":["407:2:77"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"407:2:77"},"referencedDeclaration":49658,"src":"407:2:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}}},{"id":48420,"nodeType":"UsingForDirective","src":"415:39:77","nodes":[],"global":false,"libraryName":{"id":48417,"name":"LibValidatorSet","nameLocations":["421:15:77"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"421:15:77"},"typeName":{"id":48419,"nodeType":"UserDefinedTypeName","pathNode":{"id":48418,"name":"ValidatorSet","nameLocations":["441:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"441:12:77"},"referencedDeclaration":50190,"src":"441:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":48433,"nodeType":"FunctionDefinition","src":"460:107:77","nodes":[],"body":{"id":48432,"nodeType":"Block","src":"528:39:77","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":48428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"545:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"550:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"545:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"556:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"545:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":48427,"id":48431,"nodeType":"Return","src":"538:22:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"469:7:77","parameters":{"id":48424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48423,"mutability":"mutable","name":"self","nameLocation":"491:4:77","nodeType":"VariableDeclaration","scope":48433,"src":"477:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48422,"nodeType":"UserDefinedTypeName","pathNode":{"id":48421,"name":"MaxPQ","nameLocations":["477:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"477:5:77"},"referencedDeclaration":48411,"src":"477:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"}],"src":"476:20:77"},"returnParameters":{"id":48427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48433,"src":"520:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48425,"name":"uint16","nodeType":"ElementaryTypeName","src":"520:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"519:8:77"},"scope":49016,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48450,"nodeType":"FunctionDefinition","src":"573:132:77","nodes":[],"body":{"id":48449,"nodeType":"Block","src":"655:50:77","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":48443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48436,"src":"672:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"677:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"672:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"683:12:77","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"672:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48447,"indexExpression":{"id":48446,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48438,"src":"696:1:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"672:26:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":48442,"id":48448,"nodeType":"Return","src":"665:33:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"582:10:77","parameters":{"id":48439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48436,"mutability":"mutable","name":"self","nameLocation":"607:4:77","nodeType":"VariableDeclaration","scope":48450,"src":"593:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48435,"nodeType":"UserDefinedTypeName","pathNode":{"id":48434,"name":"MaxPQ","nameLocations":["593:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"593:5:77"},"referencedDeclaration":48411,"src":"593:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48438,"mutability":"mutable","name":"i","nameLocation":"620:1:77","nodeType":"VariableDeclaration","scope":48450,"src":"613:8:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48437,"name":"uint16","nodeType":"ElementaryTypeName","src":"613:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"592:30:77"},"returnParameters":{"id":48442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48450,"src":"646:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48440,"name":"address","nodeType":"ElementaryTypeName","src":"646:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"645:9:77"},"scope":49016,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48467,"nodeType":"FunctionDefinition","src":"711:140:77","nodes":[],"body":{"id":48466,"nodeType":"Block","src":"797:54:77","nodes":[],"statements":[{"expression":{"arguments":[{"id":48463,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48455,"src":"834:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48460,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48453,"src":"814:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"819:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"814:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"825:8:77","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49722,"src":"814:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (bool)"}},"id":48464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"814:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48459,"id":48465,"nodeType":"Return","src":"807:37:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"720:8:77","parameters":{"id":48456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48453,"mutability":"mutable","name":"self","nameLocation":"743:4:77","nodeType":"VariableDeclaration","scope":48467,"src":"729:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48452,"nodeType":"UserDefinedTypeName","pathNode":{"id":48451,"name":"MaxPQ","nameLocations":["729:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"729:5:77"},"referencedDeclaration":48411,"src":"729:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48455,"mutability":"mutable","name":"validator","nameLocation":"757:9:77","nodeType":"VariableDeclaration","scope":48467,"src":"749:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48454,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"728:39:77"},"returnParameters":{"id":48459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48467,"src":"791:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48457,"name":"bool","nodeType":"ElementaryTypeName","src":"791:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"790:6:77"},"scope":49016,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48530,"nodeType":"FunctionDefinition","src":"998:417:77","nodes":[],"body":{"id":48529,"nodeType":"Block","src":"1095:320:77","nodes":[],"statements":[{"assignments":[48480],"declarations":[{"constant":false,"id":48480,"mutability":"mutable","name":"size","nameLocation":"1112:4:77","nodeType":"VariableDeclaration","scope":48529,"src":"1105:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48479,"name":"uint16","nodeType":"ElementaryTypeName","src":"1105:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48486,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":48481,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48471,"src":"1119:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1124:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1119:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1130:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1119:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":48484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1137:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1119:19:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1105:33:77"},{"expression":{"id":48495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":48487,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48471,"src":"1149:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1154:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1149:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1160:12:77","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"1149:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":48493,"indexExpression":{"id":48490,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"1173:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1149:34:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48494,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48480,"src":"1186:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1149:41:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48496,"nodeType":"ExpressionStatement","src":"1149:41:77"},{"expression":{"id":48505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":48497,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48471,"src":"1200:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1205:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1200:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1211:12:77","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"1200:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48503,"indexExpression":{"id":48500,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48480,"src":"1224:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1200:29:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48504,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"1232:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1200:41:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48506,"nodeType":"ExpressionStatement","src":"1200:41:77"},{"expression":{"id":48513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":48507,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48471,"src":"1252:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1257:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1252:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1263:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1252:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48512,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48480,"src":"1270:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1252:22:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48514,"nodeType":"ExpressionStatement","src":"1252:22:77"},{"assignments":[48516],"declarations":[{"constant":false,"id":48516,"mutability":"mutable","name":"power","nameLocation":"1293:5:77","nodeType":"VariableDeclaration","scope":48529,"src":"1285:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48515,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48521,"initialValue":{"arguments":[{"id":48519,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"1321:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48517,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48474,"src":"1301:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1312:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"1301:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1301:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1285:46:77"},{"expression":{"arguments":[{"id":48523,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48471,"src":"1353:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48524,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48474,"src":"1371:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48525,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48480,"src":"1388:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48526,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48516,"src":"1401:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48522,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48861,"src":"1341:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1347:4:77","1359:10:77","1383:3:77","1394:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1341:67:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48528,"nodeType":"ExpressionStatement","src":"1341:67:77"}]},"documentation":{"id":48468,"nodeType":"StructuredDocumentation","src":"857:136:77","text":"@notice Insert the validator address into this PQ.\n NOTE that caller should ensure the valdiator is not already in the queue."},"implemented":true,"kind":"function","modifiers":[],"name":"insert","nameLocation":"1007:6:77","parameters":{"id":48477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48471,"mutability":"mutable","name":"self","nameLocation":"1028:4:77","nodeType":"VariableDeclaration","scope":48530,"src":"1014:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48470,"nodeType":"UserDefinedTypeName","pathNode":{"id":48469,"name":"MaxPQ","nameLocations":["1014:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"1014:5:77"},"referencedDeclaration":48411,"src":"1014:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48474,"mutability":"mutable","name":"validators","nameLocation":"1055:10:77","nodeType":"VariableDeclaration","scope":48530,"src":"1034:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48473,"nodeType":"UserDefinedTypeName","pathNode":{"id":48472,"name":"ValidatorSet","nameLocations":["1034:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1034:12:77"},"referencedDeclaration":50190,"src":"1034:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48476,"mutability":"mutable","name":"validator","nameLocation":"1075:9:77","nodeType":"VariableDeclaration","scope":48530,"src":"1067:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48475,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1013:72:77"},"returnParameters":{"id":48478,"nodeType":"ParameterList","parameters":[],"src":"1095:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48597,"nodeType":"FunctionDefinition","src":"1545:401:77","nodes":[],"body":{"id":48596,"nodeType":"Block","src":"1620:326:77","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":48540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1630:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1635:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1630:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1641:15:77","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49692,"src":"1630:26:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":48545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1630:28:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48546,"nodeType":"ExpressionStatement","src":"1630:28:77"},{"assignments":[48548],"declarations":[{"constant":false,"id":48548,"mutability":"mutable","name":"size","nameLocation":"1676:4:77","nodeType":"VariableDeclaration","scope":48596,"src":"1669:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48547,"name":"uint16","nodeType":"ElementaryTypeName","src":"1669:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48552,"initialValue":{"expression":{"expression":{"id":48549,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1683:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1688:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1683:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1694:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1683:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1669:29:77"},{"expression":{"arguments":[{"hexValue":"31","id":48558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1729:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":48559,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48548,"src":"1732:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1709:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1714:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1709:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1720:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"1709:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1709:28:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48561,"nodeType":"ExpressionStatement","src":"1709:28:77"},{"expression":{"id":48570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":48562,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1748:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1753:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1748:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1759:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1748:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48567,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48548,"src":"1766:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":48568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1773:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1766:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1748:26:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48571,"nodeType":"ExpressionStatement","src":"1748:26:77"},{"expression":{"arguments":[{"id":48577,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48548,"src":"1799:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48572,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1784:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1789:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1784:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1795:3:77","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49776,"src":"1784:14:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":48578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1784:20:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48579,"nodeType":"ExpressionStatement","src":"1784:20:77"},{"assignments":[48581],"declarations":[{"constant":false,"id":48581,"mutability":"mutable","name":"power","nameLocation":"1823:5:77","nodeType":"VariableDeclaration","scope":48596,"src":"1815:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48580,"name":"uint256","nodeType":"ElementaryTypeName","src":"1815:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48588,"initialValue":{"arguments":[{"id":48585,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48537,"src":"1851:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":48586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1863:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":48582,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1831:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1836:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1831:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1842:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"1831:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1831:34:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1815:50:77"},{"expression":{"arguments":[{"id":48590,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1887:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48591,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48537,"src":"1905:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":48592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":48593,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48581,"src":"1932:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48589,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48950,"src":"1875:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1881:4:77","1893:10:77","1917:3:77","1925:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1875:64:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48595,"nodeType":"ExpressionStatement","src":"1875:64:77"}]},"documentation":{"id":48531,"nodeType":"StructuredDocumentation","src":"1421:119:77","text":"@notice Pop the minimal value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"pop","nameLocation":"1554:3:77","parameters":{"id":48538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48534,"mutability":"mutable","name":"self","nameLocation":"1572:4:77","nodeType":"VariableDeclaration","scope":48597,"src":"1558:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48533,"nodeType":"UserDefinedTypeName","pathNode":{"id":48532,"name":"MaxPQ","nameLocations":["1558:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"1558:5:77"},"referencedDeclaration":48411,"src":"1558:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48537,"mutability":"mutable","name":"validators","nameLocation":"1599:10:77","nodeType":"VariableDeclaration","scope":48597,"src":"1578:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48536,"nodeType":"UserDefinedTypeName","pathNode":{"id":48535,"name":"ValidatorSet","nameLocations":["1578:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1578:12:77"},"referencedDeclaration":50190,"src":"1578:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"1557:53:77"},"returnParameters":{"id":48539,"nodeType":"ParameterList","parameters":[],"src":"1620:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48689,"nodeType":"FunctionDefinition","src":"2081:787:77","nodes":[],"body":{"id":48688,"nodeType":"Block","src":"2187:681:77","nodes":[],"statements":[{"assignments":[48610],"declarations":[{"constant":false,"id":48610,"mutability":"mutable","name":"pos","nameLocation":"2204:3:77","nodeType":"VariableDeclaration","scope":48688,"src":"2197:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48609,"name":"uint16","nodeType":"ElementaryTypeName","src":"2197:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48616,"initialValue":{"arguments":[{"id":48614,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48606,"src":"2236:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48611,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2210:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2215:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2210:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2221:14:77","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"2210:25:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":48615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2197:49:77"},{"assignments":[48618],"declarations":[{"constant":false,"id":48618,"mutability":"mutable","name":"size","nameLocation":"2263:4:77","nodeType":"VariableDeclaration","scope":48688,"src":"2256:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48617,"name":"uint16","nodeType":"ElementaryTypeName","src":"2256:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48622,"initialValue":{"expression":{"expression":{"id":48619,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2270:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2275:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2270:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2281:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2270:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2256:29:77"},{"expression":{"arguments":[{"id":48628,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2316:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48629,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48618,"src":"2321:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48623,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2296:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2301:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2296:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2307:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"2296:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2296:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48631,"nodeType":"ExpressionStatement","src":"2296:30:77"},{"expression":{"id":48640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":48632,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2364:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2369:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2364:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2375:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2364:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48637,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48618,"src":"2382:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":48638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2389:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2382:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2364:26:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48641,"nodeType":"ExpressionStatement","src":"2364:26:77"},{"expression":{"arguments":[{"id":48647,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48618,"src":"2415:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48642,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2400:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2405:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2400:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2411:3:77","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49776,"src":"2400:14:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":48648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2400:20:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48649,"nodeType":"ExpressionStatement","src":"2400:20:77"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48650,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48618,"src":"2435:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":48651,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2443:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2435:11:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48655,"nodeType":"IfStatement","src":"2431:48:77","trueBody":{"id":48654,"nodeType":"Block","src":"2448:31:77","statements":[{"functionReturnParameters":48608,"id":48653,"nodeType":"Return","src":"2462:7:77"}]}},{"assignments":[48657],"declarations":[{"constant":false,"id":48657,"mutability":"mutable","name":"power","nameLocation":"2555:5:77","nodeType":"VariableDeclaration","scope":48688,"src":"2547:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48656,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48664,"initialValue":{"arguments":[{"id":48661,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48604,"src":"2583:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48662,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2595:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48658,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2563:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2568:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2563:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2574:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"2563:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2563:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2547:52:77"},{"expression":{"arguments":[{"id":48666,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2621:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48667,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48604,"src":"2639:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48668,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2656:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48669,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"2668:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48665,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48861,"src":"2609:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2615:4:77","2627:10:77","2651:3:77","2661:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2609:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48671,"nodeType":"ExpressionStatement","src":"2609:66:77"},{"expression":{"id":48679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48672,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"2741:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48676,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48604,"src":"2769:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48677,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2781:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48673,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2749:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2754:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2749:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2760:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"2749:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2749:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2741:44:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48680,"nodeType":"ExpressionStatement","src":"2741:44:77"},{"expression":{"arguments":[{"id":48682,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2807:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48604,"src":"2825:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48684,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2842:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48685,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"2854:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48681,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48950,"src":"2795:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2801:4:77","2813:10:77","2837:3:77","2847:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2795:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48687,"nodeType":"ExpressionStatement","src":"2795:66:77"}]},"documentation":{"id":48598,"nodeType":"StructuredDocumentation","src":"1952:124:77","text":"@notice Reheapify the heap when the validator is deleted.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"deleteReheapify","nameLocation":"2090:15:77","parameters":{"id":48607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48601,"mutability":"mutable","name":"self","nameLocation":"2120:4:77","nodeType":"VariableDeclaration","scope":48689,"src":"2106:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48600,"nodeType":"UserDefinedTypeName","pathNode":{"id":48599,"name":"MaxPQ","nameLocations":["2106:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"2106:5:77"},"referencedDeclaration":48411,"src":"2106:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48604,"mutability":"mutable","name":"validators","nameLocation":"2147:10:77","nodeType":"VariableDeclaration","scope":48689,"src":"2126:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48603,"nodeType":"UserDefinedTypeName","pathNode":{"id":48602,"name":"ValidatorSet","nameLocations":["2126:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"2126:12:77"},"referencedDeclaration":50190,"src":"2126:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48606,"mutability":"mutable","name":"validator","nameLocation":"2167:9:77","nodeType":"VariableDeclaration","scope":48689,"src":"2159:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48605,"name":"address","nodeType":"ElementaryTypeName","src":"2159:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2105:72:77"},"returnParameters":{"id":48608,"nodeType":"ParameterList","parameters":[],"src":"2187:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48724,"nodeType":"FunctionDefinition","src":"3016:306:77","nodes":[],"body":{"id":48723,"nodeType":"Block","src":"3124:198:77","nodes":[],"statements":[{"assignments":[48702],"declarations":[{"constant":false,"id":48702,"mutability":"mutable","name":"pos","nameLocation":"3141:3:77","nodeType":"VariableDeclaration","scope":48723,"src":"3134:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48701,"name":"uint16","nodeType":"ElementaryTypeName","src":"3134:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48708,"initialValue":{"arguments":[{"id":48706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48698,"src":"3173:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48703,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48693,"src":"3147:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3152:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"3147:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3158:14:77","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"3147:25:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":48707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3147:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3134:49:77"},{"assignments":[48710],"declarations":[{"constant":false,"id":48710,"mutability":"mutable","name":"power","nameLocation":"3201:5:77","nodeType":"VariableDeclaration","scope":48723,"src":"3193:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48709,"name":"uint256","nodeType":"ElementaryTypeName","src":"3193:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48715,"initialValue":{"arguments":[{"id":48713,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48698,"src":"3229:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48711,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48696,"src":"3209:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3220:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"3209:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3209:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3193:46:77"},{"expression":{"arguments":[{"id":48717,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48693,"src":"3261:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48718,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48696,"src":"3279:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48719,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48702,"src":"3296:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48720,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48710,"src":"3308:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48716,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48861,"src":"3249:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3255:4:77","3267:10:77","3291:3:77","3301:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3249:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48722,"nodeType":"ExpressionStatement","src":"3249:66:77"}]},"documentation":{"id":48690,"nodeType":"StructuredDocumentation","src":"2874:137:77","text":"@notice Reheapify the heap when the collateral of a key has increased.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReheapify","nameLocation":"3025:17:77","parameters":{"id":48699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48693,"mutability":"mutable","name":"self","nameLocation":"3057:4:77","nodeType":"VariableDeclaration","scope":48724,"src":"3043:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48692,"nodeType":"UserDefinedTypeName","pathNode":{"id":48691,"name":"MaxPQ","nameLocations":["3043:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3043:5:77"},"referencedDeclaration":48411,"src":"3043:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48696,"mutability":"mutable","name":"validators","nameLocation":"3084:10:77","nodeType":"VariableDeclaration","scope":48724,"src":"3063:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48695,"nodeType":"UserDefinedTypeName","pathNode":{"id":48694,"name":"ValidatorSet","nameLocations":["3063:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"3063:12:77"},"referencedDeclaration":50190,"src":"3063:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48698,"mutability":"mutable","name":"validator","nameLocation":"3104:9:77","nodeType":"VariableDeclaration","scope":48724,"src":"3096:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48697,"name":"address","nodeType":"ElementaryTypeName","src":"3096:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3042:72:77"},"returnParameters":{"id":48700,"nodeType":"ParameterList","parameters":[],"src":"3124:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48759,"nodeType":"FunctionDefinition","src":"3470:306:77","nodes":[],"body":{"id":48758,"nodeType":"Block","src":"3578:198:77","nodes":[],"statements":[{"assignments":[48737],"declarations":[{"constant":false,"id":48737,"mutability":"mutable","name":"pos","nameLocation":"3595:3:77","nodeType":"VariableDeclaration","scope":48758,"src":"3588:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48736,"name":"uint16","nodeType":"ElementaryTypeName","src":"3588:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48743,"initialValue":{"arguments":[{"id":48741,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48733,"src":"3627:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48738,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48728,"src":"3601:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3606:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"3601:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3612:14:77","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"3601:25:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":48742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3588:49:77"},{"assignments":[48745],"declarations":[{"constant":false,"id":48745,"mutability":"mutable","name":"power","nameLocation":"3655:5:77","nodeType":"VariableDeclaration","scope":48758,"src":"3647:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48744,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48750,"initialValue":{"arguments":[{"id":48748,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48733,"src":"3683:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48746,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48731,"src":"3663:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3674:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"3663:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3663:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3647:46:77"},{"expression":{"arguments":[{"id":48752,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48728,"src":"3715:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48753,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48731,"src":"3733:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48754,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48737,"src":"3750:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48755,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48745,"src":"3762:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48751,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48950,"src":"3703:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3709:4:77","3721:10:77","3745:3:77","3755:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3703:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48757,"nodeType":"ExpressionStatement","src":"3703:66:77"}]},"documentation":{"id":48725,"nodeType":"StructuredDocumentation","src":"3328:137:77","text":"@notice Reheapify the heap when the collateral of a key has decreased.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"decreaseReheapify","nameLocation":"3479:17:77","parameters":{"id":48734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48728,"mutability":"mutable","name":"self","nameLocation":"3511:4:77","nodeType":"VariableDeclaration","scope":48759,"src":"3497:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48727,"nodeType":"UserDefinedTypeName","pathNode":{"id":48726,"name":"MaxPQ","nameLocations":["3497:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3497:5:77"},"referencedDeclaration":48411,"src":"3497:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48731,"mutability":"mutable","name":"validators","nameLocation":"3538:10:77","nodeType":"VariableDeclaration","scope":48759,"src":"3517:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48730,"nodeType":"UserDefinedTypeName","pathNode":{"id":48729,"name":"ValidatorSet","nameLocations":["3517:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"3517:12:77"},"referencedDeclaration":50190,"src":"3517:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48733,"mutability":"mutable","name":"validator","nameLocation":"3558:9:77","nodeType":"VariableDeclaration","scope":48759,"src":"3550:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48732,"name":"address","nodeType":"ElementaryTypeName","src":"3550:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3496:72:77"},"returnParameters":{"id":48735,"nodeType":"ParameterList","parameters":[],"src":"3578:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48800,"nodeType":"FunctionDefinition","src":"3906:285:77","nodes":[],"body":{"id":48799,"nodeType":"Block","src":"4013:178:77","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":48773,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"4023:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4028:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"4023:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4034:15:77","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49692,"src":"4023:26:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":48778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4023:28:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48779,"nodeType":"ExpressionStatement","src":"4023:28:77"},{"assignments":[48781],"declarations":[{"constant":false,"id":48781,"mutability":"mutable","name":"addr","nameLocation":"4070:4:77","nodeType":"VariableDeclaration","scope":48799,"src":"4062:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48780,"name":"address","nodeType":"ElementaryTypeName","src":"4062:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48787,"initialValue":{"baseExpression":{"expression":{"expression":{"id":48782,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"4077:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4082:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"4077:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4088:12:77","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"4077:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48786,"indexExpression":{"hexValue":"31","id":48785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4101:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4077:26:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4062:41:77"},{"assignments":[48789],"declarations":[{"constant":false,"id":48789,"mutability":"mutable","name":"power","nameLocation":"4121:5:77","nodeType":"VariableDeclaration","scope":48799,"src":"4113:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48788,"name":"uint256","nodeType":"ElementaryTypeName","src":"4113:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48794,"initialValue":{"arguments":[{"id":48792,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48781,"src":"4149:4:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48790,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48766,"src":"4129:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4140:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"4129:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4129:25:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4113:41:77"},{"expression":{"components":[{"id":48795,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48781,"src":"4172:4:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48796,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48789,"src":"4178:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48797,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4171:13:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":48772,"id":48798,"nodeType":"Return","src":"4164:20:77"}]},"documentation":{"id":48760,"nodeType":"StructuredDocumentation","src":"3782:119:77","text":"@notice Get the maximum value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"3915:3:77","parameters":{"id":48767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48763,"mutability":"mutable","name":"self","nameLocation":"3933:4:77","nodeType":"VariableDeclaration","scope":48800,"src":"3919:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48762,"nodeType":"UserDefinedTypeName","pathNode":{"id":48761,"name":"MaxPQ","nameLocations":["3919:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3919:5:77"},"referencedDeclaration":48411,"src":"3919:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48766,"mutability":"mutable","name":"validators","nameLocation":"3960:10:77","nodeType":"VariableDeclaration","scope":48800,"src":"3939:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48765,"nodeType":"UserDefinedTypeName","pathNode":{"id":48764,"name":"ValidatorSet","nameLocations":["3939:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"3939:12:77"},"referencedDeclaration":50190,"src":"3939:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"3918:53:77"},"returnParameters":{"id":48772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48800,"src":"3995:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48768,"name":"address","nodeType":"ElementaryTypeName","src":"3995:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48800,"src":"4004:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48770,"name":"uint256","nodeType":"ElementaryTypeName","src":"4004:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3994:18:77"},"scope":49016,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48861,"nodeType":"FunctionDefinition","src":"4443:598:77","nodes":[],"body":{"id":48860,"nodeType":"Block","src":"4546:495:77","nodes":[],"statements":[{"assignments":[48814],"declarations":[{"constant":false,"id":48814,"mutability":"mutable","name":"parentPos","nameLocation":"4563:9:77","nodeType":"VariableDeclaration","scope":48860,"src":"4556:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48813,"name":"uint16","nodeType":"ElementaryTypeName","src":"4556:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48815,"nodeType":"VariableDeclarationStatement","src":"4556:16:77"},{"assignments":[48817],"declarations":[{"constant":false,"id":48817,"mutability":"mutable","name":"parentPower","nameLocation":"4590:11:77","nodeType":"VariableDeclaration","scope":48860,"src":"4582:19:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48816,"name":"uint256","nodeType":"ElementaryTypeName","src":"4582:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48818,"nodeType":"VariableDeclarationStatement","src":"4582:19:77"},{"body":{"id":48858,"nodeType":"Block","src":"4628:407:77","statements":[{"expression":{"id":48826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48822,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"4642:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48823,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"4654:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":48824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4661:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4654:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4642:20:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48827,"nodeType":"ExpressionStatement","src":"4642:20:77"},{"expression":{"id":48835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48828,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48817,"src":"4699:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48832,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48806,"src":"4733:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48833,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"4745:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48829,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48803,"src":"4713:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4718:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"4713:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4724:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"4713:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4713:42:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4699:56:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48836,"nodeType":"ExpressionStatement","src":"4699:56:77"},{"condition":{"id":48841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4868:38:77","subExpression":{"arguments":[{"id":48838,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48817,"src":"4887:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48839,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48810,"src":"4900:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48837,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49015,"src":"4869:17:77","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":48840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4869:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48844,"nodeType":"IfStatement","src":"4864:82:77","trueBody":{"id":48843,"nodeType":"Block","src":"4908:38:77","statements":[{"id":48842,"nodeType":"Break","src":"4926:5:77"}]}},{"expression":{"arguments":[{"id":48850,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"4980:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48851,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"4991:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48845,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48803,"src":"4960:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4965:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"4960:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4971:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"4960:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4960:35:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48853,"nodeType":"ExpressionStatement","src":"4960:35:77"},{"expression":{"id":48856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48854,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"5009:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48855,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"5015:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5009:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48857,"nodeType":"ExpressionStatement","src":"5009:15:77"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48819,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"4619:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":48820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4625:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4619:7:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48859,"nodeType":"WhileStatement","src":"4612:423:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"swim","nameLocation":"4452:4:77","parameters":{"id":48811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48803,"mutability":"mutable","name":"self","nameLocation":"4471:4:77","nodeType":"VariableDeclaration","scope":48861,"src":"4457:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48802,"nodeType":"UserDefinedTypeName","pathNode":{"id":48801,"name":"MaxPQ","nameLocations":["4457:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"4457:5:77"},"referencedDeclaration":48411,"src":"4457:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48806,"mutability":"mutable","name":"validators","nameLocation":"4498:10:77","nodeType":"VariableDeclaration","scope":48861,"src":"4477:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48805,"nodeType":"UserDefinedTypeName","pathNode":{"id":48804,"name":"ValidatorSet","nameLocations":["4477:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4477:12:77"},"referencedDeclaration":50190,"src":"4477:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48808,"mutability":"mutable","name":"pos","nameLocation":"4517:3:77","nodeType":"VariableDeclaration","scope":48861,"src":"4510:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48807,"name":"uint16","nodeType":"ElementaryTypeName","src":"4510:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48810,"mutability":"mutable","name":"value","nameLocation":"4530:5:77","nodeType":"VariableDeclaration","scope":48861,"src":"4522:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48809,"name":"uint256","nodeType":"ElementaryTypeName","src":"4522:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4456:80:77"},"returnParameters":{"id":48812,"nodeType":"ParameterList","parameters":[],"src":"4546:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48950,"nodeType":"FunctionDefinition","src":"5047:1009:77","nodes":[],"body":{"id":48949,"nodeType":"Block","src":"5150:906:77","nodes":[],"statements":[{"assignments":[48875],"declarations":[{"constant":false,"id":48875,"mutability":"mutable","name":"childPos","nameLocation":"5167:8:77","nodeType":"VariableDeclaration","scope":48949,"src":"5160:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48874,"name":"uint16","nodeType":"ElementaryTypeName","src":"5160:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48879,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48876,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48869,"src":"5178:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":48877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5185:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5178:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5160:26:77"},{"assignments":[48881],"declarations":[{"constant":false,"id":48881,"mutability":"mutable","name":"childPower","nameLocation":"5226:10:77","nodeType":"VariableDeclaration","scope":48949,"src":"5218:18:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48880,"name":"uint256","nodeType":"ElementaryTypeName","src":"5218:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48882,"nodeType":"VariableDeclarationStatement","src":"5218:18:77"},{"assignments":[48884],"declarations":[{"constant":false,"id":48884,"mutability":"mutable","name":"size","nameLocation":"5254:4:77","nodeType":"VariableDeclaration","scope":48949,"src":"5247:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48883,"name":"uint16","nodeType":"ElementaryTypeName","src":"5247:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48888,"initialValue":{"expression":{"expression":{"id":48885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48864,"src":"5261:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5266:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"5261:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5272:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"5261:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5247:29:77"},{"body":{"id":48947,"nodeType":"Block","src":"5312:738:77","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48892,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5330:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":48893,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48884,"src":"5341:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5330:15:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48918,"nodeType":"Block","src":"5651:87:77","statements":[{"expression":{"id":48916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48909,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48881,"src":"5669:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48913,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48867,"src":"5702:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48914,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5714:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48910,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48864,"src":"5682:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5687:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"5682:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5693:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"5682:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5682:41:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5669:54:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48917,"nodeType":"ExpressionStatement","src":"5669:54:77"}]},"id":48919,"nodeType":"IfStatement","src":"5326:412:77","trueBody":{"id":48908,"nodeType":"Block","src":"5347:298:77","statements":[{"expression":{"id":48906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":48895,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5420:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48896,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48881,"src":"5430:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48897,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5419:22:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48899,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48864,"src":"5487:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48900,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48867,"src":"5525:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48901,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5563:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48902,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5599:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":48903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5610:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5599:12:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":48898,"name":"largerPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49001,"src":"5444:14:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint16_$returns$_t_uint16_$_t_uint256_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint16) view returns (uint16,uint256)"}},"id":48905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5481:4:77","5513:10:77","5557:4:77","5593:4:77"],"names":["self","validators","pos1","pos2"],"nodeType":"FunctionCall","src":"5444:186:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"src":"5419:211:77","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48907,"nodeType":"ExpressionStatement","src":"5419:211:77"}]}},{"condition":{"id":48924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5854:37:77","subExpression":{"arguments":[{"id":48921,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48871,"src":"5873:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48922,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48881,"src":"5880:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48920,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49015,"src":"5855:17:77","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":48923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5855:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48927,"nodeType":"IfStatement","src":"5850:81:77","trueBody":{"id":48926,"nodeType":"Block","src":"5893:38:77","statements":[{"id":48925,"nodeType":"Break","src":"5911:5:77"}]}},{"expression":{"arguments":[{"id":48933,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5965:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48934,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48869,"src":"5975:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48928,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48864,"src":"5945:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5950:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"5945:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5956:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"5945:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5945:34:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48936,"nodeType":"ExpressionStatement","src":"5945:34:77"},{"expression":{"id":48939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48937,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48869,"src":"5993:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48938,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5999:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5993:14:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48940,"nodeType":"ExpressionStatement","src":"5993:14:77"},{"expression":{"id":48945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48941,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"6021:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48942,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48869,"src":"6032:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":48943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6038:1:77","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6032:7:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6021:18:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48946,"nodeType":"ExpressionStatement","src":"6021:18:77"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48889,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5294:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":48890,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48884,"src":"5306:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5294:16:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48948,"nodeType":"WhileStatement","src":"5287:763:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sink","nameLocation":"5056:4:77","parameters":{"id":48872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48864,"mutability":"mutable","name":"self","nameLocation":"5075:4:77","nodeType":"VariableDeclaration","scope":48950,"src":"5061:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48863,"nodeType":"UserDefinedTypeName","pathNode":{"id":48862,"name":"MaxPQ","nameLocations":["5061:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"5061:5:77"},"referencedDeclaration":48411,"src":"5061:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48867,"mutability":"mutable","name":"validators","nameLocation":"5102:10:77","nodeType":"VariableDeclaration","scope":48950,"src":"5081:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48866,"nodeType":"UserDefinedTypeName","pathNode":{"id":48865,"name":"ValidatorSet","nameLocations":["5081:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5081:12:77"},"referencedDeclaration":50190,"src":"5081:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48869,"mutability":"mutable","name":"pos","nameLocation":"5121:3:77","nodeType":"VariableDeclaration","scope":48950,"src":"5114:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48868,"name":"uint16","nodeType":"ElementaryTypeName","src":"5114:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48871,"mutability":"mutable","name":"value","nameLocation":"5134:5:77","nodeType":"VariableDeclaration","scope":48950,"src":"5126:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48870,"name":"uint256","nodeType":"ElementaryTypeName","src":"5126:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5060:80:77"},"returnParameters":{"id":48873,"nodeType":"ParameterList","parameters":[],"src":"5150:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49001,"nodeType":"FunctionDefinition","src":"6117:442:77","nodes":[],"body":{"id":49000,"nodeType":"Block","src":"6298:261:77","nodes":[],"statements":[{"assignments":[48969],"declarations":[{"constant":false,"id":48969,"mutability":"mutable","name":"power1","nameLocation":"6316:6:77","nodeType":"VariableDeclaration","scope":49000,"src":"6308:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48968,"name":"uint256","nodeType":"ElementaryTypeName","src":"6308:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48976,"initialValue":{"arguments":[{"id":48973,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48957,"src":"6345:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48974,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"6357:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48970,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48954,"src":"6325:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6330:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"6325:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6336:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"6325:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6325:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6308:54:77"},{"assignments":[48978],"declarations":[{"constant":false,"id":48978,"mutability":"mutable","name":"power2","nameLocation":"6380:6:77","nodeType":"VariableDeclaration","scope":49000,"src":"6372:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48977,"name":"uint256","nodeType":"ElementaryTypeName","src":"6372:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48985,"initialValue":{"arguments":[{"id":48982,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48957,"src":"6409:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48983,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48961,"src":"6421:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48979,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48954,"src":"6389:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6394:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"6389:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6400:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"6389:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6389:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6372:54:77"},{"condition":{"arguments":[{"id":48987,"name":"power1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48969,"src":"6459:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48988,"name":"power2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48978,"src":"6467:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48986,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49015,"src":"6441:17:77","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":48989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:33:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48995,"nodeType":"IfStatement","src":"6437:85:77","trueBody":{"id":48994,"nodeType":"Block","src":"6476:46:77","statements":[{"expression":{"components":[{"id":48990,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48961,"src":"6498:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48991,"name":"power2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48978,"src":"6504:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48992,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6497:14:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":48967,"id":48993,"nodeType":"Return","src":"6490:21:77"}]}},{"expression":{"components":[{"id":48996,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"6539:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48997,"name":"power1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48969,"src":"6545:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48998,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6538:14:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":48967,"id":48999,"nodeType":"Return","src":"6531:21:77"}]},"documentation":{"id":48951,"nodeType":"StructuredDocumentation","src":"6062:50:77","text":"@notice Get the larger index of pos1 and pos2."},"implemented":true,"kind":"function","modifiers":[],"name":"largerPosition","nameLocation":"6126:14:77","parameters":{"id":48962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48954,"mutability":"mutable","name":"self","nameLocation":"6164:4:77","nodeType":"VariableDeclaration","scope":49001,"src":"6150:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48953,"nodeType":"UserDefinedTypeName","pathNode":{"id":48952,"name":"MaxPQ","nameLocations":["6150:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"6150:5:77"},"referencedDeclaration":48411,"src":"6150:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48957,"mutability":"mutable","name":"validators","nameLocation":"6199:10:77","nodeType":"VariableDeclaration","scope":49001,"src":"6178:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48956,"nodeType":"UserDefinedTypeName","pathNode":{"id":48955,"name":"ValidatorSet","nameLocations":["6178:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6178:12:77"},"referencedDeclaration":50190,"src":"6178:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48959,"mutability":"mutable","name":"pos1","nameLocation":"6226:4:77","nodeType":"VariableDeclaration","scope":49001,"src":"6219:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48958,"name":"uint16","nodeType":"ElementaryTypeName","src":"6219:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48961,"mutability":"mutable","name":"pos2","nameLocation":"6247:4:77","nodeType":"VariableDeclaration","scope":49001,"src":"6240:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48960,"name":"uint16","nodeType":"ElementaryTypeName","src":"6240:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"6140:117:77"},"returnParameters":{"id":48967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49001,"src":"6281:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48963,"name":"uint16","nodeType":"ElementaryTypeName","src":"6281:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49001,"src":"6289:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48965,"name":"uint256","nodeType":"ElementaryTypeName","src":"6289:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6280:17:77"},"scope":49016,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49015,"nodeType":"FunctionDefinition","src":"6565:111:77","nodes":[],"body":{"id":49014,"nodeType":"Block","src":"6645:31:77","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49010,"name":"v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49003,"src":"6662:2:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":49011,"name":"v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49005,"src":"6667:2:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6662:7:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49009,"id":49013,"nodeType":"Return","src":"6655:14:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"firstValueSmaller","nameLocation":"6574:17:77","parameters":{"id":49006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49003,"mutability":"mutable","name":"v1","nameLocation":"6600:2:77","nodeType":"VariableDeclaration","scope":49015,"src":"6592:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49002,"name":"uint256","nodeType":"ElementaryTypeName","src":"6592:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49005,"mutability":"mutable","name":"v2","nameLocation":"6612:2:77","nodeType":"VariableDeclaration","scope":49015,"src":"6604:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49004,"name":"uint256","nodeType":"ElementaryTypeName","src":"6604:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6591:24:77"},"returnParameters":{"id":49009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49015,"src":"6639:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49007,"name":"bool","nodeType":"ElementaryTypeName","src":"6639:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6638:6:77"},"scope":49016,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibMaxPQ","contractDependencies":[],"contractKind":"library","documentation":{"id":48412,"nodeType":"StructuredDocumentation","src":"249:119:77","text":"The max index priority queue for staking. The same implementation as LibMinPQ, just order compare\n is reversed."},"fullyImplemented":true,"linearizedBaseContracts":[49016],"name":"LibMaxPQ","nameLocation":"376:8:77","scope":49017,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":77} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220a5dded6b847158724a34e02cf20abd48562a9aed63aed00b85ac85b8c046cc9064736f6c63430008130033","sourceMap":"368:6310:77:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220a5dded6b847158724a34e02cf20abd48562a9aed63aed00b85ac85b8c046cc9064736f6c63430008130033","sourceMap":"368:6310:77:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The max index priority queue for staking. The same implementation as LibMinPQ, just order compare is reversed.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibMaxPQ.sol\":\"LibMaxPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibMaxPQ.sol":"LibMaxPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibMaxPQ.sol","id":48970,"exportedSymbols":{"LibMaxPQ":[48969],"LibPQ":[49853],"LibValidatorSet":[45246],"MaxPQ":[48364],"PQ":[49611],"ValidatorSet":[50143]},"nodeType":"SourceUnit","src":"46:6632:77","nodes":[{"id":48353,"nodeType":"PragmaDirective","src":"46:23:77","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48355,"nodeType":"ImportDirective","src":"71:50:77","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":48970,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":48354,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45246,"src":"79:15:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48357,"nodeType":"ImportDirective","src":"122:54:77","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":48970,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":48356,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"130:12:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48360,"nodeType":"ImportDirective","src":"177:38:77","nodes":[],"absolutePath":"src/lib/priority/LibPQ.sol","file":"./LibPQ.sol","nameLocation":"-1:-1:-1","scope":48970,"sourceUnit":49854,"symbolAliases":[{"foreign":{"id":48358,"name":"PQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49611,"src":"185:2:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48359,"name":"LibPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49853,"src":"189:5:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48364,"nodeType":"StructDefinition","src":"217:30:77","nodes":[],"canonicalName":"MaxPQ","members":[{"constant":false,"id":48363,"mutability":"mutable","name":"inner","nameLocation":"239:5:77","nodeType":"VariableDeclaration","scope":48364,"src":"236:8:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48362,"nodeType":"UserDefinedTypeName","pathNode":{"id":48361,"name":"PQ","nameLocations":["236:2:77"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"236:2:77"},"referencedDeclaration":49611,"src":"236:2:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"name":"MaxPQ","nameLocation":"224:5:77","scope":48970,"visibility":"public"},{"id":48969,"nodeType":"ContractDefinition","src":"368:6310:77","nodes":[{"id":48369,"nodeType":"UsingForDirective","src":"391:19:77","nodes":[],"global":false,"libraryName":{"id":48366,"name":"LibPQ","nameLocations":["397:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":49853,"src":"397:5:77"},"typeName":{"id":48368,"nodeType":"UserDefinedTypeName","pathNode":{"id":48367,"name":"PQ","nameLocations":["407:2:77"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"407:2:77"},"referencedDeclaration":49611,"src":"407:2:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}}},{"id":48373,"nodeType":"UsingForDirective","src":"415:39:77","nodes":[],"global":false,"libraryName":{"id":48370,"name":"LibValidatorSet","nameLocations":["421:15:77"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"421:15:77"},"typeName":{"id":48372,"nodeType":"UserDefinedTypeName","pathNode":{"id":48371,"name":"ValidatorSet","nameLocations":["441:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"441:12:77"},"referencedDeclaration":50143,"src":"441:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":48386,"nodeType":"FunctionDefinition","src":"460:107:77","nodes":[],"body":{"id":48385,"nodeType":"Block","src":"528:39:77","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":48381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48376,"src":"545:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"550:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"545:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"556:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"545:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":48380,"id":48384,"nodeType":"Return","src":"538:22:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"469:7:77","parameters":{"id":48377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48376,"mutability":"mutable","name":"self","nameLocation":"491:4:77","nodeType":"VariableDeclaration","scope":48386,"src":"477:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48375,"nodeType":"UserDefinedTypeName","pathNode":{"id":48374,"name":"MaxPQ","nameLocations":["477:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"477:5:77"},"referencedDeclaration":48364,"src":"477:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"}],"src":"476:20:77"},"returnParameters":{"id":48380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48386,"src":"520:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48378,"name":"uint16","nodeType":"ElementaryTypeName","src":"520:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"519:8:77"},"scope":48969,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48403,"nodeType":"FunctionDefinition","src":"573:132:77","nodes":[],"body":{"id":48402,"nodeType":"Block","src":"655:50:77","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":48396,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48389,"src":"672:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"677:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"672:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"683:12:77","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"672:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48400,"indexExpression":{"id":48399,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48391,"src":"696:1:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"672:26:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":48395,"id":48401,"nodeType":"Return","src":"665:33:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"582:10:77","parameters":{"id":48392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48389,"mutability":"mutable","name":"self","nameLocation":"607:4:77","nodeType":"VariableDeclaration","scope":48403,"src":"593:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48388,"nodeType":"UserDefinedTypeName","pathNode":{"id":48387,"name":"MaxPQ","nameLocations":["593:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"593:5:77"},"referencedDeclaration":48364,"src":"593:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48391,"mutability":"mutable","name":"i","nameLocation":"620:1:77","nodeType":"VariableDeclaration","scope":48403,"src":"613:8:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48390,"name":"uint16","nodeType":"ElementaryTypeName","src":"613:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"592:30:77"},"returnParameters":{"id":48395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48403,"src":"646:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48393,"name":"address","nodeType":"ElementaryTypeName","src":"646:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"645:9:77"},"scope":48969,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48420,"nodeType":"FunctionDefinition","src":"711:140:77","nodes":[],"body":{"id":48419,"nodeType":"Block","src":"797:54:77","nodes":[],"statements":[{"expression":{"arguments":[{"id":48416,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48408,"src":"834:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48413,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48406,"src":"814:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"819:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"814:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"825:8:77","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49675,"src":"814:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (bool)"}},"id":48417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"814:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48412,"id":48418,"nodeType":"Return","src":"807:37:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"720:8:77","parameters":{"id":48409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48406,"mutability":"mutable","name":"self","nameLocation":"743:4:77","nodeType":"VariableDeclaration","scope":48420,"src":"729:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48405,"nodeType":"UserDefinedTypeName","pathNode":{"id":48404,"name":"MaxPQ","nameLocations":["729:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"729:5:77"},"referencedDeclaration":48364,"src":"729:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48408,"mutability":"mutable","name":"validator","nameLocation":"757:9:77","nodeType":"VariableDeclaration","scope":48420,"src":"749:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48407,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"728:39:77"},"returnParameters":{"id":48412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48411,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48420,"src":"791:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48410,"name":"bool","nodeType":"ElementaryTypeName","src":"791:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"790:6:77"},"scope":48969,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48483,"nodeType":"FunctionDefinition","src":"998:417:77","nodes":[],"body":{"id":48482,"nodeType":"Block","src":"1095:320:77","nodes":[],"statements":[{"assignments":[48433],"declarations":[{"constant":false,"id":48433,"mutability":"mutable","name":"size","nameLocation":"1112:4:77","nodeType":"VariableDeclaration","scope":48482,"src":"1105:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48432,"name":"uint16","nodeType":"ElementaryTypeName","src":"1105:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48439,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":48434,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48424,"src":"1119:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1124:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"1119:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1130:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"1119:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":48437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1137:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1119:19:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1105:33:77"},{"expression":{"id":48448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":48440,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48424,"src":"1149:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1154:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"1149:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1160:12:77","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49605,"src":"1149:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":48446,"indexExpression":{"id":48443,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48429,"src":"1173:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1149:34:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48447,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48433,"src":"1186:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1149:41:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48449,"nodeType":"ExpressionStatement","src":"1149:41:77"},{"expression":{"id":48458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":48450,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48424,"src":"1200:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1205:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"1200:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1211:12:77","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"1200:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48456,"indexExpression":{"id":48453,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48433,"src":"1224:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1200:29:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48457,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48429,"src":"1232:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1200:41:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48459,"nodeType":"ExpressionStatement","src":"1200:41:77"},{"expression":{"id":48466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":48460,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48424,"src":"1252:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1257:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"1252:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1263:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"1252:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48465,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48433,"src":"1270:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1252:22:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48467,"nodeType":"ExpressionStatement","src":"1252:22:77"},{"assignments":[48469],"declarations":[{"constant":false,"id":48469,"mutability":"mutable","name":"power","nameLocation":"1293:5:77","nodeType":"VariableDeclaration","scope":48482,"src":"1285:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48468,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48474,"initialValue":{"arguments":[{"id":48472,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48429,"src":"1321:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48470,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48427,"src":"1301:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1312:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"1301:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1301:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1285:46:77"},{"expression":{"arguments":[{"id":48476,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48424,"src":"1353:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48477,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48427,"src":"1371:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48478,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48433,"src":"1388:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48479,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"1401:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48475,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"1341:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1347:4:77","1359:10:77","1383:3:77","1394:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1341:67:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48481,"nodeType":"ExpressionStatement","src":"1341:67:77"}]},"documentation":{"id":48421,"nodeType":"StructuredDocumentation","src":"857:136:77","text":"@notice Insert the validator address into this PQ.\n NOTE that caller should ensure the valdiator is not already in the queue."},"implemented":true,"kind":"function","modifiers":[],"name":"insert","nameLocation":"1007:6:77","parameters":{"id":48430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48424,"mutability":"mutable","name":"self","nameLocation":"1028:4:77","nodeType":"VariableDeclaration","scope":48483,"src":"1014:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48423,"nodeType":"UserDefinedTypeName","pathNode":{"id":48422,"name":"MaxPQ","nameLocations":["1014:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"1014:5:77"},"referencedDeclaration":48364,"src":"1014:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48427,"mutability":"mutable","name":"validators","nameLocation":"1055:10:77","nodeType":"VariableDeclaration","scope":48483,"src":"1034:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48426,"nodeType":"UserDefinedTypeName","pathNode":{"id":48425,"name":"ValidatorSet","nameLocations":["1034:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"1034:12:77"},"referencedDeclaration":50143,"src":"1034:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48429,"mutability":"mutable","name":"validator","nameLocation":"1075:9:77","nodeType":"VariableDeclaration","scope":48483,"src":"1067:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48428,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1013:72:77"},"returnParameters":{"id":48431,"nodeType":"ParameterList","parameters":[],"src":"1095:0:77"},"scope":48969,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48550,"nodeType":"FunctionDefinition","src":"1545:401:77","nodes":[],"body":{"id":48549,"nodeType":"Block","src":"1620:326:77","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":48493,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48487,"src":"1630:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1635:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"1630:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1641:15:77","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49645,"src":"1630:26:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":48498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1630:28:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48499,"nodeType":"ExpressionStatement","src":"1630:28:77"},{"assignments":[48501],"declarations":[{"constant":false,"id":48501,"mutability":"mutable","name":"size","nameLocation":"1676:4:77","nodeType":"VariableDeclaration","scope":48549,"src":"1669:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48500,"name":"uint16","nodeType":"ElementaryTypeName","src":"1669:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48505,"initialValue":{"expression":{"expression":{"id":48502,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48487,"src":"1683:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1688:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"1683:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1694:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"1683:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1669:29:77"},{"expression":{"arguments":[{"hexValue":"31","id":48511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1729:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":48512,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48501,"src":"1732:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48506,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48487,"src":"1709:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1714:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"1709:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1720:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49852,"src":"1709:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1709:28:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48514,"nodeType":"ExpressionStatement","src":"1709:28:77"},{"expression":{"id":48523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":48515,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48487,"src":"1748:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1753:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"1748:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1759:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"1748:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48520,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48501,"src":"1766:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":48521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1773:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1766:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1748:26:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48524,"nodeType":"ExpressionStatement","src":"1748:26:77"},{"expression":{"arguments":[{"id":48530,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48501,"src":"1799:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48525,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48487,"src":"1784:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1789:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"1784:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1795:3:77","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49729,"src":"1784:14:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":48531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1784:20:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48532,"nodeType":"ExpressionStatement","src":"1784:20:77"},{"assignments":[48534],"declarations":[{"constant":false,"id":48534,"mutability":"mutable","name":"power","nameLocation":"1823:5:77","nodeType":"VariableDeclaration","scope":48549,"src":"1815:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48533,"name":"uint256","nodeType":"ElementaryTypeName","src":"1815:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48541,"initialValue":{"arguments":[{"id":48538,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48490,"src":"1851:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":48539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1863:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":48535,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48487,"src":"1831:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1836:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"1831:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1842:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"1831:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1831:34:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1815:50:77"},{"expression":{"arguments":[{"id":48543,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48487,"src":"1887:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48544,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48490,"src":"1905:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":48545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":48546,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1932:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48542,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48903,"src":"1875:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1881:4:77","1893:10:77","1917:3:77","1925:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1875:64:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48548,"nodeType":"ExpressionStatement","src":"1875:64:77"}]},"documentation":{"id":48484,"nodeType":"StructuredDocumentation","src":"1421:119:77","text":"@notice Pop the minimal value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"pop","nameLocation":"1554:3:77","parameters":{"id":48491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48487,"mutability":"mutable","name":"self","nameLocation":"1572:4:77","nodeType":"VariableDeclaration","scope":48550,"src":"1558:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48486,"nodeType":"UserDefinedTypeName","pathNode":{"id":48485,"name":"MaxPQ","nameLocations":["1558:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"1558:5:77"},"referencedDeclaration":48364,"src":"1558:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48490,"mutability":"mutable","name":"validators","nameLocation":"1599:10:77","nodeType":"VariableDeclaration","scope":48550,"src":"1578:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48489,"nodeType":"UserDefinedTypeName","pathNode":{"id":48488,"name":"ValidatorSet","nameLocations":["1578:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"1578:12:77"},"referencedDeclaration":50143,"src":"1578:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"1557:53:77"},"returnParameters":{"id":48492,"nodeType":"ParameterList","parameters":[],"src":"1620:0:77"},"scope":48969,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48642,"nodeType":"FunctionDefinition","src":"2081:787:77","nodes":[],"body":{"id":48641,"nodeType":"Block","src":"2187:681:77","nodes":[],"statements":[{"assignments":[48563],"declarations":[{"constant":false,"id":48563,"mutability":"mutable","name":"pos","nameLocation":"2204:3:77","nodeType":"VariableDeclaration","scope":48641,"src":"2197:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48562,"name":"uint16","nodeType":"ElementaryTypeName","src":"2197:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48569,"initialValue":{"arguments":[{"id":48567,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48559,"src":"2236:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48564,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48554,"src":"2210:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2215:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"2210:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2221:14:77","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49701,"src":"2210:25:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":48568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2197:49:77"},{"assignments":[48571],"declarations":[{"constant":false,"id":48571,"mutability":"mutable","name":"size","nameLocation":"2263:4:77","nodeType":"VariableDeclaration","scope":48641,"src":"2256:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48570,"name":"uint16","nodeType":"ElementaryTypeName","src":"2256:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48575,"initialValue":{"expression":{"expression":{"id":48572,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48554,"src":"2270:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2275:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"2270:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2281:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"2270:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2256:29:77"},{"expression":{"arguments":[{"id":48581,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48563,"src":"2316:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48582,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48571,"src":"2321:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48576,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48554,"src":"2296:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2301:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"2296:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2307:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49852,"src":"2296:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2296:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48584,"nodeType":"ExpressionStatement","src":"2296:30:77"},{"expression":{"id":48593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":48585,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48554,"src":"2364:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2369:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"2364:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2375:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"2364:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48590,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48571,"src":"2382:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":48591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2389:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2382:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2364:26:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48594,"nodeType":"ExpressionStatement","src":"2364:26:77"},{"expression":{"arguments":[{"id":48600,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48571,"src":"2415:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48595,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48554,"src":"2400:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2405:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"2400:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2411:3:77","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49729,"src":"2400:14:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":48601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2400:20:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48602,"nodeType":"ExpressionStatement","src":"2400:20:77"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48603,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48571,"src":"2435:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":48604,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48563,"src":"2443:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2435:11:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48608,"nodeType":"IfStatement","src":"2431:48:77","trueBody":{"id":48607,"nodeType":"Block","src":"2448:31:77","statements":[{"functionReturnParameters":48561,"id":48606,"nodeType":"Return","src":"2462:7:77"}]}},{"assignments":[48610],"declarations":[{"constant":false,"id":48610,"mutability":"mutable","name":"power","nameLocation":"2555:5:77","nodeType":"VariableDeclaration","scope":48641,"src":"2547:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48609,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48617,"initialValue":{"arguments":[{"id":48614,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"2583:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48615,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48563,"src":"2595:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48611,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48554,"src":"2563:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2568:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"2563:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2574:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"2563:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2563:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2547:52:77"},{"expression":{"arguments":[{"id":48619,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48554,"src":"2621:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48620,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"2639:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48621,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48563,"src":"2656:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48622,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2668:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48618,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"2609:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2615:4:77","2627:10:77","2651:3:77","2661:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2609:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48624,"nodeType":"ExpressionStatement","src":"2609:66:77"},{"expression":{"id":48632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48625,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2741:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48629,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"2769:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48630,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48563,"src":"2781:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48626,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48554,"src":"2749:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2754:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"2749:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2760:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"2749:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2749:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2741:44:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48633,"nodeType":"ExpressionStatement","src":"2741:44:77"},{"expression":{"arguments":[{"id":48635,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48554,"src":"2807:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48636,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"2825:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48637,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48563,"src":"2842:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48638,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2854:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48634,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48903,"src":"2795:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2801:4:77","2813:10:77","2837:3:77","2847:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2795:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48640,"nodeType":"ExpressionStatement","src":"2795:66:77"}]},"documentation":{"id":48551,"nodeType":"StructuredDocumentation","src":"1952:124:77","text":"@notice Reheapify the heap when the validator is deleted.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"deleteReheapify","nameLocation":"2090:15:77","parameters":{"id":48560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48554,"mutability":"mutable","name":"self","nameLocation":"2120:4:77","nodeType":"VariableDeclaration","scope":48642,"src":"2106:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48553,"nodeType":"UserDefinedTypeName","pathNode":{"id":48552,"name":"MaxPQ","nameLocations":["2106:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"2106:5:77"},"referencedDeclaration":48364,"src":"2106:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48557,"mutability":"mutable","name":"validators","nameLocation":"2147:10:77","nodeType":"VariableDeclaration","scope":48642,"src":"2126:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48556,"nodeType":"UserDefinedTypeName","pathNode":{"id":48555,"name":"ValidatorSet","nameLocations":["2126:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"2126:12:77"},"referencedDeclaration":50143,"src":"2126:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48559,"mutability":"mutable","name":"validator","nameLocation":"2167:9:77","nodeType":"VariableDeclaration","scope":48642,"src":"2159:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48558,"name":"address","nodeType":"ElementaryTypeName","src":"2159:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2105:72:77"},"returnParameters":{"id":48561,"nodeType":"ParameterList","parameters":[],"src":"2187:0:77"},"scope":48969,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48677,"nodeType":"FunctionDefinition","src":"3016:306:77","nodes":[],"body":{"id":48676,"nodeType":"Block","src":"3124:198:77","nodes":[],"statements":[{"assignments":[48655],"declarations":[{"constant":false,"id":48655,"mutability":"mutable","name":"pos","nameLocation":"3141:3:77","nodeType":"VariableDeclaration","scope":48676,"src":"3134:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48654,"name":"uint16","nodeType":"ElementaryTypeName","src":"3134:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48661,"initialValue":{"arguments":[{"id":48659,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48651,"src":"3173:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48656,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48646,"src":"3147:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3152:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"3147:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3158:14:77","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49701,"src":"3147:25:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":48660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3147:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3134:49:77"},{"assignments":[48663],"declarations":[{"constant":false,"id":48663,"mutability":"mutable","name":"power","nameLocation":"3201:5:77","nodeType":"VariableDeclaration","scope":48676,"src":"3193:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48662,"name":"uint256","nodeType":"ElementaryTypeName","src":"3193:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48668,"initialValue":{"arguments":[{"id":48666,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48651,"src":"3229:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48664,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48649,"src":"3209:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3220:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"3209:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3209:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3193:46:77"},{"expression":{"arguments":[{"id":48670,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48646,"src":"3261:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48671,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48649,"src":"3279:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48672,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48655,"src":"3296:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48673,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48663,"src":"3308:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48669,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"3249:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3255:4:77","3267:10:77","3291:3:77","3301:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3249:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48675,"nodeType":"ExpressionStatement","src":"3249:66:77"}]},"documentation":{"id":48643,"nodeType":"StructuredDocumentation","src":"2874:137:77","text":"@notice Reheapify the heap when the collateral of a key has increased.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReheapify","nameLocation":"3025:17:77","parameters":{"id":48652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48646,"mutability":"mutable","name":"self","nameLocation":"3057:4:77","nodeType":"VariableDeclaration","scope":48677,"src":"3043:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48645,"nodeType":"UserDefinedTypeName","pathNode":{"id":48644,"name":"MaxPQ","nameLocations":["3043:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"3043:5:77"},"referencedDeclaration":48364,"src":"3043:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48649,"mutability":"mutable","name":"validators","nameLocation":"3084:10:77","nodeType":"VariableDeclaration","scope":48677,"src":"3063:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48648,"nodeType":"UserDefinedTypeName","pathNode":{"id":48647,"name":"ValidatorSet","nameLocations":["3063:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"3063:12:77"},"referencedDeclaration":50143,"src":"3063:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48651,"mutability":"mutable","name":"validator","nameLocation":"3104:9:77","nodeType":"VariableDeclaration","scope":48677,"src":"3096:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48650,"name":"address","nodeType":"ElementaryTypeName","src":"3096:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3042:72:77"},"returnParameters":{"id":48653,"nodeType":"ParameterList","parameters":[],"src":"3124:0:77"},"scope":48969,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48712,"nodeType":"FunctionDefinition","src":"3470:306:77","nodes":[],"body":{"id":48711,"nodeType":"Block","src":"3578:198:77","nodes":[],"statements":[{"assignments":[48690],"declarations":[{"constant":false,"id":48690,"mutability":"mutable","name":"pos","nameLocation":"3595:3:77","nodeType":"VariableDeclaration","scope":48711,"src":"3588:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48689,"name":"uint16","nodeType":"ElementaryTypeName","src":"3588:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48696,"initialValue":{"arguments":[{"id":48694,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48686,"src":"3627:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48691,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48681,"src":"3601:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3606:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"3601:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3612:14:77","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49701,"src":"3601:25:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":48695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3588:49:77"},{"assignments":[48698],"declarations":[{"constant":false,"id":48698,"mutability":"mutable","name":"power","nameLocation":"3655:5:77","nodeType":"VariableDeclaration","scope":48711,"src":"3647:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48697,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48703,"initialValue":{"arguments":[{"id":48701,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48686,"src":"3683:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48699,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48684,"src":"3663:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3674:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"3663:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3663:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3647:46:77"},{"expression":{"arguments":[{"id":48705,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48681,"src":"3715:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48706,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48684,"src":"3733:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48707,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48690,"src":"3750:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48708,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48698,"src":"3762:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48704,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48903,"src":"3703:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3709:4:77","3721:10:77","3745:3:77","3755:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3703:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48710,"nodeType":"ExpressionStatement","src":"3703:66:77"}]},"documentation":{"id":48678,"nodeType":"StructuredDocumentation","src":"3328:137:77","text":"@notice Reheapify the heap when the collateral of a key has decreased.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"decreaseReheapify","nameLocation":"3479:17:77","parameters":{"id":48687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48681,"mutability":"mutable","name":"self","nameLocation":"3511:4:77","nodeType":"VariableDeclaration","scope":48712,"src":"3497:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48680,"nodeType":"UserDefinedTypeName","pathNode":{"id":48679,"name":"MaxPQ","nameLocations":["3497:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"3497:5:77"},"referencedDeclaration":48364,"src":"3497:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48684,"mutability":"mutable","name":"validators","nameLocation":"3538:10:77","nodeType":"VariableDeclaration","scope":48712,"src":"3517:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48683,"nodeType":"UserDefinedTypeName","pathNode":{"id":48682,"name":"ValidatorSet","nameLocations":["3517:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"3517:12:77"},"referencedDeclaration":50143,"src":"3517:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48686,"mutability":"mutable","name":"validator","nameLocation":"3558:9:77","nodeType":"VariableDeclaration","scope":48712,"src":"3550:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48685,"name":"address","nodeType":"ElementaryTypeName","src":"3550:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3496:72:77"},"returnParameters":{"id":48688,"nodeType":"ParameterList","parameters":[],"src":"3578:0:77"},"scope":48969,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48753,"nodeType":"FunctionDefinition","src":"3906:285:77","nodes":[],"body":{"id":48752,"nodeType":"Block","src":"4013:178:77","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":48726,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48716,"src":"4023:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4028:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"4023:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4034:15:77","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49645,"src":"4023:26:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":48731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4023:28:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48732,"nodeType":"ExpressionStatement","src":"4023:28:77"},{"assignments":[48734],"declarations":[{"constant":false,"id":48734,"mutability":"mutable","name":"addr","nameLocation":"4070:4:77","nodeType":"VariableDeclaration","scope":48752,"src":"4062:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48733,"name":"address","nodeType":"ElementaryTypeName","src":"4062:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48740,"initialValue":{"baseExpression":{"expression":{"expression":{"id":48735,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48716,"src":"4077:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4082:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"4077:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4088:12:77","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"4077:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48739,"indexExpression":{"hexValue":"31","id":48738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4101:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4077:26:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4062:41:77"},{"assignments":[48742],"declarations":[{"constant":false,"id":48742,"mutability":"mutable","name":"power","nameLocation":"4121:5:77","nodeType":"VariableDeclaration","scope":48752,"src":"4113:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48741,"name":"uint256","nodeType":"ElementaryTypeName","src":"4113:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48747,"initialValue":{"arguments":[{"id":48745,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48734,"src":"4149:4:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48743,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48719,"src":"4129:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4140:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"4129:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4129:25:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4113:41:77"},{"expression":{"components":[{"id":48748,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48734,"src":"4172:4:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48749,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48742,"src":"4178:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48750,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4171:13:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":48725,"id":48751,"nodeType":"Return","src":"4164:20:77"}]},"documentation":{"id":48713,"nodeType":"StructuredDocumentation","src":"3782:119:77","text":"@notice Get the maximum value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"3915:3:77","parameters":{"id":48720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48716,"mutability":"mutable","name":"self","nameLocation":"3933:4:77","nodeType":"VariableDeclaration","scope":48753,"src":"3919:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48715,"nodeType":"UserDefinedTypeName","pathNode":{"id":48714,"name":"MaxPQ","nameLocations":["3919:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"3919:5:77"},"referencedDeclaration":48364,"src":"3919:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48719,"mutability":"mutable","name":"validators","nameLocation":"3960:10:77","nodeType":"VariableDeclaration","scope":48753,"src":"3939:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48718,"nodeType":"UserDefinedTypeName","pathNode":{"id":48717,"name":"ValidatorSet","nameLocations":["3939:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"3939:12:77"},"referencedDeclaration":50143,"src":"3939:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"3918:53:77"},"returnParameters":{"id":48725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48753,"src":"3995:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48721,"name":"address","nodeType":"ElementaryTypeName","src":"3995:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48753,"src":"4004:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48723,"name":"uint256","nodeType":"ElementaryTypeName","src":"4004:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3994:18:77"},"scope":48969,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48814,"nodeType":"FunctionDefinition","src":"4443:598:77","nodes":[],"body":{"id":48813,"nodeType":"Block","src":"4546:495:77","nodes":[],"statements":[{"assignments":[48767],"declarations":[{"constant":false,"id":48767,"mutability":"mutable","name":"parentPos","nameLocation":"4563:9:77","nodeType":"VariableDeclaration","scope":48813,"src":"4556:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48766,"name":"uint16","nodeType":"ElementaryTypeName","src":"4556:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48768,"nodeType":"VariableDeclarationStatement","src":"4556:16:77"},{"assignments":[48770],"declarations":[{"constant":false,"id":48770,"mutability":"mutable","name":"parentPower","nameLocation":"4590:11:77","nodeType":"VariableDeclaration","scope":48813,"src":"4582:19:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48769,"name":"uint256","nodeType":"ElementaryTypeName","src":"4582:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48771,"nodeType":"VariableDeclarationStatement","src":"4582:19:77"},{"body":{"id":48811,"nodeType":"Block","src":"4628:407:77","statements":[{"expression":{"id":48779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48775,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48767,"src":"4642:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48776,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48761,"src":"4654:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":48777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4661:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4654:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4642:20:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48780,"nodeType":"ExpressionStatement","src":"4642:20:77"},{"expression":{"id":48788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48781,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48770,"src":"4699:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48785,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48759,"src":"4733:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48786,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48767,"src":"4745:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48782,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48756,"src":"4713:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4718:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"4713:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4724:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"4713:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4713:42:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4699:56:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48789,"nodeType":"ExpressionStatement","src":"4699:56:77"},{"condition":{"id":48794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4868:38:77","subExpression":{"arguments":[{"id":48791,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48770,"src":"4887:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48792,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"4900:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48790,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48968,"src":"4869:17:77","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":48793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4869:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48797,"nodeType":"IfStatement","src":"4864:82:77","trueBody":{"id":48796,"nodeType":"Block","src":"4908:38:77","statements":[{"id":48795,"nodeType":"Break","src":"4926:5:77"}]}},{"expression":{"arguments":[{"id":48803,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48767,"src":"4980:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48804,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48761,"src":"4991:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48798,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48756,"src":"4960:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4965:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"4960:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4971:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49852,"src":"4960:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4960:35:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48806,"nodeType":"ExpressionStatement","src":"4960:35:77"},{"expression":{"id":48809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48807,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48761,"src":"5009:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48808,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48767,"src":"5015:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5009:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48810,"nodeType":"ExpressionStatement","src":"5009:15:77"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48772,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48761,"src":"4619:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":48773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4625:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4619:7:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48812,"nodeType":"WhileStatement","src":"4612:423:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"swim","nameLocation":"4452:4:77","parameters":{"id":48764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48756,"mutability":"mutable","name":"self","nameLocation":"4471:4:77","nodeType":"VariableDeclaration","scope":48814,"src":"4457:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48755,"nodeType":"UserDefinedTypeName","pathNode":{"id":48754,"name":"MaxPQ","nameLocations":["4457:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"4457:5:77"},"referencedDeclaration":48364,"src":"4457:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48759,"mutability":"mutable","name":"validators","nameLocation":"4498:10:77","nodeType":"VariableDeclaration","scope":48814,"src":"4477:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48758,"nodeType":"UserDefinedTypeName","pathNode":{"id":48757,"name":"ValidatorSet","nameLocations":["4477:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"4477:12:77"},"referencedDeclaration":50143,"src":"4477:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48761,"mutability":"mutable","name":"pos","nameLocation":"4517:3:77","nodeType":"VariableDeclaration","scope":48814,"src":"4510:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48760,"name":"uint16","nodeType":"ElementaryTypeName","src":"4510:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48763,"mutability":"mutable","name":"value","nameLocation":"4530:5:77","nodeType":"VariableDeclaration","scope":48814,"src":"4522:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48762,"name":"uint256","nodeType":"ElementaryTypeName","src":"4522:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4456:80:77"},"returnParameters":{"id":48765,"nodeType":"ParameterList","parameters":[],"src":"4546:0:77"},"scope":48969,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48903,"nodeType":"FunctionDefinition","src":"5047:1009:77","nodes":[],"body":{"id":48902,"nodeType":"Block","src":"5150:906:77","nodes":[],"statements":[{"assignments":[48828],"declarations":[{"constant":false,"id":48828,"mutability":"mutable","name":"childPos","nameLocation":"5167:8:77","nodeType":"VariableDeclaration","scope":48902,"src":"5160:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48827,"name":"uint16","nodeType":"ElementaryTypeName","src":"5160:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48832,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48829,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48822,"src":"5178:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":48830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5185:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5178:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5160:26:77"},{"assignments":[48834],"declarations":[{"constant":false,"id":48834,"mutability":"mutable","name":"childPower","nameLocation":"5226:10:77","nodeType":"VariableDeclaration","scope":48902,"src":"5218:18:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48833,"name":"uint256","nodeType":"ElementaryTypeName","src":"5218:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48835,"nodeType":"VariableDeclarationStatement","src":"5218:18:77"},{"assignments":[48837],"declarations":[{"constant":false,"id":48837,"mutability":"mutable","name":"size","nameLocation":"5254:4:77","nodeType":"VariableDeclaration","scope":48902,"src":"5247:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48836,"name":"uint16","nodeType":"ElementaryTypeName","src":"5247:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48841,"initialValue":{"expression":{"expression":{"id":48838,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48817,"src":"5261:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5266:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"5261:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5272:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"5261:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5247:29:77"},{"body":{"id":48900,"nodeType":"Block","src":"5312:738:77","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48845,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48828,"src":"5330:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":48846,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48837,"src":"5341:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5330:15:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48871,"nodeType":"Block","src":"5651:87:77","statements":[{"expression":{"id":48869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48862,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48834,"src":"5669:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48866,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48820,"src":"5702:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48867,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48828,"src":"5714:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48863,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48817,"src":"5682:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5687:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"5682:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5693:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"5682:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5682:41:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5669:54:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48870,"nodeType":"ExpressionStatement","src":"5669:54:77"}]},"id":48872,"nodeType":"IfStatement","src":"5326:412:77","trueBody":{"id":48861,"nodeType":"Block","src":"5347:298:77","statements":[{"expression":{"id":48859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":48848,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48828,"src":"5420:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48849,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48834,"src":"5430:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48850,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5419:22:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48852,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48817,"src":"5487:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48853,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48820,"src":"5525:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48854,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48828,"src":"5563:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48855,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48828,"src":"5599:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":48856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5610:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5599:12:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":48851,"name":"largerPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48954,"src":"5444:14:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint16_$returns$_t_uint16_$_t_uint256_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint16) view returns (uint16,uint256)"}},"id":48858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5481:4:77","5513:10:77","5557:4:77","5593:4:77"],"names":["self","validators","pos1","pos2"],"nodeType":"FunctionCall","src":"5444:186:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"src":"5419:211:77","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48860,"nodeType":"ExpressionStatement","src":"5419:211:77"}]}},{"condition":{"id":48877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5854:37:77","subExpression":{"arguments":[{"id":48874,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48824,"src":"5873:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48875,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48834,"src":"5880:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48873,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48968,"src":"5855:17:77","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":48876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5855:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48880,"nodeType":"IfStatement","src":"5850:81:77","trueBody":{"id":48879,"nodeType":"Block","src":"5893:38:77","statements":[{"id":48878,"nodeType":"Break","src":"5911:5:77"}]}},{"expression":{"arguments":[{"id":48886,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48828,"src":"5965:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48887,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48822,"src":"5975:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48881,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48817,"src":"5945:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5950:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"5945:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5956:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49852,"src":"5945:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5945:34:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48889,"nodeType":"ExpressionStatement","src":"5945:34:77"},{"expression":{"id":48892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48890,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48822,"src":"5993:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48891,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48828,"src":"5999:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5993:14:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48893,"nodeType":"ExpressionStatement","src":"5993:14:77"},{"expression":{"id":48898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48894,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48828,"src":"6021:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48895,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48822,"src":"6032:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":48896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6038:1:77","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6032:7:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6021:18:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48899,"nodeType":"ExpressionStatement","src":"6021:18:77"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48842,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48828,"src":"5294:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":48843,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48837,"src":"5306:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5294:16:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48901,"nodeType":"WhileStatement","src":"5287:763:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sink","nameLocation":"5056:4:77","parameters":{"id":48825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48817,"mutability":"mutable","name":"self","nameLocation":"5075:4:77","nodeType":"VariableDeclaration","scope":48903,"src":"5061:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48816,"nodeType":"UserDefinedTypeName","pathNode":{"id":48815,"name":"MaxPQ","nameLocations":["5061:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"5061:5:77"},"referencedDeclaration":48364,"src":"5061:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48820,"mutability":"mutable","name":"validators","nameLocation":"5102:10:77","nodeType":"VariableDeclaration","scope":48903,"src":"5081:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48819,"nodeType":"UserDefinedTypeName","pathNode":{"id":48818,"name":"ValidatorSet","nameLocations":["5081:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5081:12:77"},"referencedDeclaration":50143,"src":"5081:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48822,"mutability":"mutable","name":"pos","nameLocation":"5121:3:77","nodeType":"VariableDeclaration","scope":48903,"src":"5114:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48821,"name":"uint16","nodeType":"ElementaryTypeName","src":"5114:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48824,"mutability":"mutable","name":"value","nameLocation":"5134:5:77","nodeType":"VariableDeclaration","scope":48903,"src":"5126:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48823,"name":"uint256","nodeType":"ElementaryTypeName","src":"5126:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5060:80:77"},"returnParameters":{"id":48826,"nodeType":"ParameterList","parameters":[],"src":"5150:0:77"},"scope":48969,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48954,"nodeType":"FunctionDefinition","src":"6117:442:77","nodes":[],"body":{"id":48953,"nodeType":"Block","src":"6298:261:77","nodes":[],"statements":[{"assignments":[48922],"declarations":[{"constant":false,"id":48922,"mutability":"mutable","name":"power1","nameLocation":"6316:6:77","nodeType":"VariableDeclaration","scope":48953,"src":"6308:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48921,"name":"uint256","nodeType":"ElementaryTypeName","src":"6308:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48929,"initialValue":{"arguments":[{"id":48926,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48910,"src":"6345:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48927,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48912,"src":"6357:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48923,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48907,"src":"6325:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6330:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"6325:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6336:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"6325:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6325:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6308:54:77"},{"assignments":[48931],"declarations":[{"constant":false,"id":48931,"mutability":"mutable","name":"power2","nameLocation":"6380:6:77","nodeType":"VariableDeclaration","scope":48953,"src":"6372:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48930,"name":"uint256","nodeType":"ElementaryTypeName","src":"6372:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48938,"initialValue":{"arguments":[{"id":48935,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48910,"src":"6409:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48936,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48914,"src":"6421:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48907,"src":"6389:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6394:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48363,"src":"6389:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":48934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6400:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"6389:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6389:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6372:54:77"},{"condition":{"arguments":[{"id":48940,"name":"power1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48922,"src":"6459:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48941,"name":"power2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48931,"src":"6467:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48939,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48968,"src":"6441:17:77","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":48942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:33:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48948,"nodeType":"IfStatement","src":"6437:85:77","trueBody":{"id":48947,"nodeType":"Block","src":"6476:46:77","statements":[{"expression":{"components":[{"id":48943,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48914,"src":"6498:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48944,"name":"power2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48931,"src":"6504:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48945,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6497:14:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":48920,"id":48946,"nodeType":"Return","src":"6490:21:77"}]}},{"expression":{"components":[{"id":48949,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48912,"src":"6539:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48950,"name":"power1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48922,"src":"6545:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48951,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6538:14:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":48920,"id":48952,"nodeType":"Return","src":"6531:21:77"}]},"documentation":{"id":48904,"nodeType":"StructuredDocumentation","src":"6062:50:77","text":"@notice Get the larger index of pos1 and pos2."},"implemented":true,"kind":"function","modifiers":[],"name":"largerPosition","nameLocation":"6126:14:77","parameters":{"id":48915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48907,"mutability":"mutable","name":"self","nameLocation":"6164:4:77","nodeType":"VariableDeclaration","scope":48954,"src":"6150:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48906,"nodeType":"UserDefinedTypeName","pathNode":{"id":48905,"name":"MaxPQ","nameLocations":["6150:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"6150:5:77"},"referencedDeclaration":48364,"src":"6150:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48910,"mutability":"mutable","name":"validators","nameLocation":"6199:10:77","nodeType":"VariableDeclaration","scope":48954,"src":"6178:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48909,"nodeType":"UserDefinedTypeName","pathNode":{"id":48908,"name":"ValidatorSet","nameLocations":["6178:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"6178:12:77"},"referencedDeclaration":50143,"src":"6178:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48912,"mutability":"mutable","name":"pos1","nameLocation":"6226:4:77","nodeType":"VariableDeclaration","scope":48954,"src":"6219:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48911,"name":"uint16","nodeType":"ElementaryTypeName","src":"6219:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48914,"mutability":"mutable","name":"pos2","nameLocation":"6247:4:77","nodeType":"VariableDeclaration","scope":48954,"src":"6240:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48913,"name":"uint16","nodeType":"ElementaryTypeName","src":"6240:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"6140:117:77"},"returnParameters":{"id":48920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48954,"src":"6281:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48916,"name":"uint16","nodeType":"ElementaryTypeName","src":"6281:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48954,"src":"6289:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48918,"name":"uint256","nodeType":"ElementaryTypeName","src":"6289:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6280:17:77"},"scope":48969,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48968,"nodeType":"FunctionDefinition","src":"6565:111:77","nodes":[],"body":{"id":48967,"nodeType":"Block","src":"6645:31:77","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48963,"name":"v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48956,"src":"6662:2:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":48964,"name":"v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48958,"src":"6667:2:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6662:7:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48962,"id":48966,"nodeType":"Return","src":"6655:14:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"firstValueSmaller","nameLocation":"6574:17:77","parameters":{"id":48959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48956,"mutability":"mutable","name":"v1","nameLocation":"6600:2:77","nodeType":"VariableDeclaration","scope":48968,"src":"6592:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48955,"name":"uint256","nodeType":"ElementaryTypeName","src":"6592:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48958,"mutability":"mutable","name":"v2","nameLocation":"6612:2:77","nodeType":"VariableDeclaration","scope":48968,"src":"6604:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48957,"name":"uint256","nodeType":"ElementaryTypeName","src":"6604:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6591:24:77"},"returnParameters":{"id":48962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48968,"src":"6639:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48960,"name":"bool","nodeType":"ElementaryTypeName","src":"6639:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6638:6:77"},"scope":48969,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibMaxPQ","contractDependencies":[],"contractKind":"library","documentation":{"id":48365,"nodeType":"StructuredDocumentation","src":"249:119:77","text":"The max index priority queue for staking. The same implementation as LibMinPQ, just order compare\n is reversed."},"fullyImplemented":true,"linearizedBaseContracts":[48969],"name":"LibMaxPQ","nameLocation":"376:8:77","scope":48970,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":77} \ No newline at end of file diff --git a/.out/LibMinPQ.sol/LibMinPQ.json b/.out/LibMinPQ.sol/LibMinPQ.json index 1d051e646..f1f7f7e72 100644 --- a/.out/LibMinPQ.sol/LibMinPQ.json +++ b/.out/LibMinPQ.sol/LibMinPQ.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ec8dd754bd9c619ffe74ea350074efa3ec13c36354933629735d68fb82e293b564736f6c63430008130033","sourceMap":"294:6030:78:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220ec8dd754bd9c619ffe74ea350074efa3ec13c36354933629735d68fb82e293b564736f6c63430008130033","sourceMap":"294:6030:78:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The min index priority queue for staking\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibMinPQ.sol\":\"LibMinPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibMinPQ.sol":"LibMinPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibMinPQ.sol","id":49636,"exportedSymbols":{"LibMinPQ":[49635],"LibPQ":[49900],"LibValidatorSet":[45293],"MinPQ":[49029],"PQ":[49658],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:6278:78","nodes":[{"id":49018,"nodeType":"PragmaDirective","src":"46:23:78","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49020,"nodeType":"ImportDirective","src":"71:50:78","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":49636,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":49019,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"79:15:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49022,"nodeType":"ImportDirective","src":"122:54:78","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":49636,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":49021,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"130:12:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49025,"nodeType":"ImportDirective","src":"177:38:78","nodes":[],"absolutePath":"src/lib/priority/LibPQ.sol","file":"./LibPQ.sol","nameLocation":"-1:-1:-1","scope":49636,"sourceUnit":49901,"symbolAliases":[{"foreign":{"id":49023,"name":"PQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49658,"src":"185:2:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49024,"name":"LibPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49900,"src":"189:5:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49029,"nodeType":"StructDefinition","src":"217:30:78","nodes":[],"canonicalName":"MinPQ","members":[{"constant":false,"id":49028,"mutability":"mutable","name":"inner","nameLocation":"239:5:78","nodeType":"VariableDeclaration","scope":49029,"src":"236:8:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49027,"nodeType":"UserDefinedTypeName","pathNode":{"id":49026,"name":"PQ","nameLocations":["236:2:78"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"236:2:78"},"referencedDeclaration":49658,"src":"236:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"name":"MinPQ","nameLocation":"224:5:78","scope":49636,"visibility":"public"},{"id":49635,"nodeType":"ContractDefinition","src":"294:6030:78","nodes":[{"id":49034,"nodeType":"UsingForDirective","src":"317:19:78","nodes":[],"global":false,"libraryName":{"id":49031,"name":"LibPQ","nameLocations":["323:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49900,"src":"323:5:78"},"typeName":{"id":49033,"nodeType":"UserDefinedTypeName","pathNode":{"id":49032,"name":"PQ","nameLocations":["333:2:78"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"333:2:78"},"referencedDeclaration":49658,"src":"333:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}}},{"id":49038,"nodeType":"UsingForDirective","src":"341:39:78","nodes":[],"global":false,"libraryName":{"id":49035,"name":"LibValidatorSet","nameLocations":["347:15:78"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"347:15:78"},"typeName":{"id":49037,"nodeType":"UserDefinedTypeName","pathNode":{"id":49036,"name":"ValidatorSet","nameLocations":["367:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"367:12:78"},"referencedDeclaration":50190,"src":"367:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":49051,"nodeType":"FunctionDefinition","src":"386:107:78","nodes":[],"body":{"id":49050,"nodeType":"Block","src":"454:39:78","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":49046,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49041,"src":"471:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"476:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"471:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"482:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"471:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":49045,"id":49049,"nodeType":"Return","src":"464:22:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"395:7:78","parameters":{"id":49042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49041,"mutability":"mutable","name":"self","nameLocation":"417:4:78","nodeType":"VariableDeclaration","scope":49051,"src":"403:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49040,"nodeType":"UserDefinedTypeName","pathNode":{"id":49039,"name":"MinPQ","nameLocations":["403:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"403:5:78"},"referencedDeclaration":49029,"src":"403:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"}],"src":"402:20:78"},"returnParameters":{"id":49045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49044,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49051,"src":"446:6:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49043,"name":"uint16","nodeType":"ElementaryTypeName","src":"446:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"445:8:78"},"scope":49635,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49068,"nodeType":"FunctionDefinition","src":"499:132:78","nodes":[],"body":{"id":49067,"nodeType":"Block","src":"581:50:78","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":49061,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49054,"src":"598:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"603:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"598:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"609:12:78","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"598:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49065,"indexExpression":{"id":49064,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49056,"src":"622:1:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"598:26:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":49060,"id":49066,"nodeType":"Return","src":"591:33:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"508:10:78","parameters":{"id":49057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49054,"mutability":"mutable","name":"self","nameLocation":"533:4:78","nodeType":"VariableDeclaration","scope":49068,"src":"519:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49053,"nodeType":"UserDefinedTypeName","pathNode":{"id":49052,"name":"MinPQ","nameLocations":["519:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"519:5:78"},"referencedDeclaration":49029,"src":"519:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49056,"mutability":"mutable","name":"i","nameLocation":"546:1:78","nodeType":"VariableDeclaration","scope":49068,"src":"539:8:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49055,"name":"uint16","nodeType":"ElementaryTypeName","src":"539:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"518:30:78"},"returnParameters":{"id":49060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49068,"src":"572:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49058,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"571:9:78"},"scope":49635,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49085,"nodeType":"FunctionDefinition","src":"637:140:78","nodes":[],"body":{"id":49084,"nodeType":"Block","src":"723:54:78","nodes":[],"statements":[{"expression":{"arguments":[{"id":49081,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49073,"src":"760:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49078,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49071,"src":"740:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"745:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"740:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"751:8:78","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49722,"src":"740:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (bool)"}},"id":49082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"740:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49077,"id":49083,"nodeType":"Return","src":"733:37:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"646:8:78","parameters":{"id":49074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49071,"mutability":"mutable","name":"self","nameLocation":"669:4:78","nodeType":"VariableDeclaration","scope":49085,"src":"655:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49070,"nodeType":"UserDefinedTypeName","pathNode":{"id":49069,"name":"MinPQ","nameLocations":["655:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"655:5:78"},"referencedDeclaration":49029,"src":"655:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49073,"mutability":"mutable","name":"validator","nameLocation":"683:9:78","nodeType":"VariableDeclaration","scope":49085,"src":"675:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49072,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"654:39:78"},"returnParameters":{"id":49077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49085,"src":"717:4:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49075,"name":"bool","nodeType":"ElementaryTypeName","src":"717:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"716:6:78"},"scope":49635,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49148,"nodeType":"FunctionDefinition","src":"924:417:78","nodes":[],"body":{"id":49147,"nodeType":"Block","src":"1021:320:78","nodes":[],"statements":[{"assignments":[49098],"declarations":[{"constant":false,"id":49098,"mutability":"mutable","name":"size","nameLocation":"1038:4:78","nodeType":"VariableDeclaration","scope":49147,"src":"1031:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1031:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49104,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":49099,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"1045:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1050:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1045:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1056:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1045:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":49102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1063:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1045:19:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1031:33:78"},{"expression":{"id":49113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":49105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"1075:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1080:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1075:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1086:12:78","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"1075:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49111,"indexExpression":{"id":49108,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49094,"src":"1099:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1075:34:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49112,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"1112:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1075:41:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49114,"nodeType":"ExpressionStatement","src":"1075:41:78"},{"expression":{"id":49123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":49115,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"1126:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1131:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1126:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1137:12:78","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"1126:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49121,"indexExpression":{"id":49118,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"1150:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1126:29:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49094,"src":"1158:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1126:41:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49124,"nodeType":"ExpressionStatement","src":"1126:41:78"},{"expression":{"id":49131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":49125,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"1178:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1183:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1178:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1189:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1178:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49130,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"1196:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1178:22:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49132,"nodeType":"ExpressionStatement","src":"1178:22:78"},{"assignments":[49134],"declarations":[{"constant":false,"id":49134,"mutability":"mutable","name":"power","nameLocation":"1219:5:78","nodeType":"VariableDeclaration","scope":49147,"src":"1211:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49133,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49139,"initialValue":{"arguments":[{"id":49137,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49094,"src":"1247:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49135,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49092,"src":"1227:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1238:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"1227:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1227:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1211:46:78"},{"expression":{"arguments":[{"id":49141,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"1279:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49142,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49092,"src":"1297:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49143,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"1314:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49144,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49134,"src":"1327:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49140,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49479,"src":"1267:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1273:4:78","1285:10:78","1309:3:78","1320:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1267:67:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49146,"nodeType":"ExpressionStatement","src":"1267:67:78"}]},"documentation":{"id":49086,"nodeType":"StructuredDocumentation","src":"783:136:78","text":"@notice Insert the validator address into this PQ.\n NOTE that caller should ensure the validator is not already in the queue."},"implemented":true,"kind":"function","modifiers":[],"name":"insert","nameLocation":"933:6:78","parameters":{"id":49095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49089,"mutability":"mutable","name":"self","nameLocation":"954:4:78","nodeType":"VariableDeclaration","scope":49148,"src":"940:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49088,"nodeType":"UserDefinedTypeName","pathNode":{"id":49087,"name":"MinPQ","nameLocations":["940:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"940:5:78"},"referencedDeclaration":49029,"src":"940:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49092,"mutability":"mutable","name":"validators","nameLocation":"981:10:78","nodeType":"VariableDeclaration","scope":49148,"src":"960:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49091,"nodeType":"UserDefinedTypeName","pathNode":{"id":49090,"name":"ValidatorSet","nameLocations":["960:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"960:12:78"},"referencedDeclaration":50190,"src":"960:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49094,"mutability":"mutable","name":"validator","nameLocation":"1001:9:78","nodeType":"VariableDeclaration","scope":49148,"src":"993:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49093,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"939:72:78"},"returnParameters":{"id":49096,"nodeType":"ParameterList","parameters":[],"src":"1021:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49215,"nodeType":"FunctionDefinition","src":"1408:401:78","nodes":[],"body":{"id":49214,"nodeType":"Block","src":"1483:326:78","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":49158,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1493:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1498:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1493:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1504:15:78","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49692,"src":"1493:26:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":49163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49164,"nodeType":"ExpressionStatement","src":"1493:28:78"},{"assignments":[49166],"declarations":[{"constant":false,"id":49166,"mutability":"mutable","name":"size","nameLocation":"1539:4:78","nodeType":"VariableDeclaration","scope":49214,"src":"1532:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49165,"name":"uint16","nodeType":"ElementaryTypeName","src":"1532:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49170,"initialValue":{"expression":{"expression":{"id":49167,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1546:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1551:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1546:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1557:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1546:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1532:29:78"},{"expression":{"arguments":[{"hexValue":"31","id":49176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1592:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":49177,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49166,"src":"1595:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1572:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1577:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1572:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1583:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"1572:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1572:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49179,"nodeType":"ExpressionStatement","src":"1572:28:78"},{"expression":{"id":49188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":49180,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1611:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1616:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1611:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1622:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1611:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49185,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49166,"src":"1629:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":49186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1636:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1629:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1611:26:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49189,"nodeType":"ExpressionStatement","src":"1611:26:78"},{"expression":{"arguments":[{"id":49195,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49166,"src":"1662:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49190,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1647:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1652:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1647:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1658:3:78","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49776,"src":"1647:14:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":49196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:20:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49197,"nodeType":"ExpressionStatement","src":"1647:20:78"},{"assignments":[49199],"declarations":[{"constant":false,"id":49199,"mutability":"mutable","name":"power","nameLocation":"1686:5:78","nodeType":"VariableDeclaration","scope":49214,"src":"1678:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49198,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49206,"initialValue":{"arguments":[{"id":49203,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49155,"src":"1714:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":49204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1726:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":49200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1694:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1699:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1694:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1705:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"1694:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1694:34:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1678:50:78"},{"expression":{"arguments":[{"id":49208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1750:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49209,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49155,"src":"1768:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":49210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1785:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":49211,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49199,"src":"1795:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49207,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49568,"src":"1738:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1744:4:78","1756:10:78","1780:3:78","1788:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1738:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49213,"nodeType":"ExpressionStatement","src":"1738:64:78"}]},"documentation":{"id":49149,"nodeType":"StructuredDocumentation","src":"1347:56:78","text":"@notice Pop the minimal value in the priority queue."},"implemented":true,"kind":"function","modifiers":[],"name":"pop","nameLocation":"1417:3:78","parameters":{"id":49156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49152,"mutability":"mutable","name":"self","nameLocation":"1435:4:78","nodeType":"VariableDeclaration","scope":49215,"src":"1421:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49151,"nodeType":"UserDefinedTypeName","pathNode":{"id":49150,"name":"MinPQ","nameLocations":["1421:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"1421:5:78"},"referencedDeclaration":49029,"src":"1421:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49155,"mutability":"mutable","name":"validators","nameLocation":"1462:10:78","nodeType":"VariableDeclaration","scope":49215,"src":"1441:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49154,"nodeType":"UserDefinedTypeName","pathNode":{"id":49153,"name":"ValidatorSet","nameLocations":["1441:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1441:12:78"},"referencedDeclaration":50190,"src":"1441:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"1420:53:78"},"returnParameters":{"id":49157,"nodeType":"ParameterList","parameters":[],"src":"1483:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49307,"nodeType":"FunctionDefinition","src":"1881:779:78","nodes":[],"body":{"id":49306,"nodeType":"Block","src":"1987:673:78","nodes":[],"statements":[{"assignments":[49228],"declarations":[{"constant":false,"id":49228,"mutability":"mutable","name":"pos","nameLocation":"2004:3:78","nodeType":"VariableDeclaration","scope":49306,"src":"1997:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49227,"name":"uint16","nodeType":"ElementaryTypeName","src":"1997:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49234,"initialValue":{"arguments":[{"id":49232,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49224,"src":"2036:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2010:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2015:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2010:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2021:14:78","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"2010:25:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":49233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1997:49:78"},{"assignments":[49236],"declarations":[{"constant":false,"id":49236,"mutability":"mutable","name":"size","nameLocation":"2063:4:78","nodeType":"VariableDeclaration","scope":49306,"src":"2056:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49235,"name":"uint16","nodeType":"ElementaryTypeName","src":"2056:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49240,"initialValue":{"expression":{"expression":{"id":49237,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2070:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2075:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2070:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2081:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2070:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2056:29:78"},{"expression":{"arguments":[{"id":49246,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2116:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49247,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49236,"src":"2121:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2096:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2101:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2096:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2107:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"2096:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2096:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49249,"nodeType":"ExpressionStatement","src":"2096:30:78"},{"expression":{"id":49258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":49250,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2164:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2169:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2164:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2175:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2164:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49255,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49236,"src":"2182:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":49256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2182:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2164:26:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49259,"nodeType":"ExpressionStatement","src":"2164:26:78"},{"expression":{"arguments":[{"id":49265,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49236,"src":"2215:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2200:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2205:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2200:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2211:3:78","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49776,"src":"2200:14:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":49266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:20:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49267,"nodeType":"ExpressionStatement","src":"2200:20:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49268,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49236,"src":"2235:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":49269,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2243:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2235:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49273,"nodeType":"IfStatement","src":"2231:48:78","trueBody":{"id":49272,"nodeType":"Block","src":"2248:31:78","statements":[{"functionReturnParameters":49226,"id":49271,"nodeType":"Return","src":"2262:7:78"}]}},{"assignments":[49275],"declarations":[{"constant":false,"id":49275,"mutability":"mutable","name":"val","nameLocation":"2355:3:78","nodeType":"VariableDeclaration","scope":49306,"src":"2347:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49274,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49282,"initialValue":{"arguments":[{"id":49279,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49222,"src":"2381:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49280,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2393:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49276,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2361:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2366:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2361:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2372:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"2361:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2361:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2347:50:78"},{"expression":{"arguments":[{"id":49284,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2419:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49285,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49222,"src":"2437:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49286,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2454:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49287,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49275,"src":"2466:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49283,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49479,"src":"2407:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2413:4:78","2425:10:78","2449:3:78","2459:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2407:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49289,"nodeType":"ExpressionStatement","src":"2407:64:78"},{"expression":{"id":49297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49290,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49275,"src":"2537:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49294,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49222,"src":"2563:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49295,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2575:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49291,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2543:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2548:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2543:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2554:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"2543:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2543:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2537:42:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49298,"nodeType":"ExpressionStatement","src":"2537:42:78"},{"expression":{"arguments":[{"id":49300,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2601:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49301,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49222,"src":"2619:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49302,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2636:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49303,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49275,"src":"2648:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49299,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49568,"src":"2589:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2595:4:78","2607:10:78","2631:3:78","2641:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2589:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49305,"nodeType":"ExpressionStatement","src":"2589:64:78"}]},"documentation":{"id":49216,"nodeType":"StructuredDocumentation","src":"1815:61:78","text":"@notice Reheapify the heap when the validator is deleted."},"implemented":true,"kind":"function","modifiers":[],"name":"deleteReheapify","nameLocation":"1890:15:78","parameters":{"id":49225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49219,"mutability":"mutable","name":"self","nameLocation":"1920:4:78","nodeType":"VariableDeclaration","scope":49307,"src":"1906:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49218,"nodeType":"UserDefinedTypeName","pathNode":{"id":49217,"name":"MinPQ","nameLocations":["1906:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"1906:5:78"},"referencedDeclaration":49029,"src":"1906:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49222,"mutability":"mutable","name":"validators","nameLocation":"1947:10:78","nodeType":"VariableDeclaration","scope":49307,"src":"1926:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49221,"nodeType":"UserDefinedTypeName","pathNode":{"id":49220,"name":"ValidatorSet","nameLocations":["1926:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1926:12:78"},"referencedDeclaration":50190,"src":"1926:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49224,"mutability":"mutable","name":"validator","nameLocation":"1967:9:78","nodeType":"VariableDeclaration","scope":49307,"src":"1959:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49223,"name":"address","nodeType":"ElementaryTypeName","src":"1959:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1905:72:78"},"returnParameters":{"id":49226,"nodeType":"ParameterList","parameters":[],"src":"1987:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49342,"nodeType":"FunctionDefinition","src":"2745:302:78","nodes":[],"body":{"id":49341,"nodeType":"Block","src":"2853:194:78","nodes":[],"statements":[{"assignments":[49320],"declarations":[{"constant":false,"id":49320,"mutability":"mutable","name":"pos","nameLocation":"2870:3:78","nodeType":"VariableDeclaration","scope":49341,"src":"2863:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49319,"name":"uint16","nodeType":"ElementaryTypeName","src":"2863:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49326,"initialValue":{"arguments":[{"id":49324,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49316,"src":"2902:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49321,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49311,"src":"2876:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2881:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2876:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2887:14:78","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"2876:25:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":49325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2876:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2863:49:78"},{"assignments":[49328],"declarations":[{"constant":false,"id":49328,"mutability":"mutable","name":"val","nameLocation":"2930:3:78","nodeType":"VariableDeclaration","scope":49341,"src":"2922:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49327,"name":"uint256","nodeType":"ElementaryTypeName","src":"2922:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49333,"initialValue":{"arguments":[{"id":49331,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49316,"src":"2956:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49329,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49314,"src":"2936:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2947:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"2936:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2936:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2922:44:78"},{"expression":{"arguments":[{"id":49335,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49311,"src":"2988:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49336,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49314,"src":"3006:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49337,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49320,"src":"3023:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49338,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49328,"src":"3035:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49334,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49568,"src":"2976:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2982:4:78","2994:10:78","3018:3:78","3028:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2976:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49340,"nodeType":"ExpressionStatement","src":"2976:64:78"}]},"documentation":{"id":49308,"nodeType":"StructuredDocumentation","src":"2666:74:78","text":"@notice Reheapify the heap when the collateral of a key has increased."},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReheapify","nameLocation":"2754:17:78","parameters":{"id":49317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49311,"mutability":"mutable","name":"self","nameLocation":"2786:4:78","nodeType":"VariableDeclaration","scope":49342,"src":"2772:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49310,"nodeType":"UserDefinedTypeName","pathNode":{"id":49309,"name":"MinPQ","nameLocations":["2772:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"2772:5:78"},"referencedDeclaration":49029,"src":"2772:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49314,"mutability":"mutable","name":"validators","nameLocation":"2813:10:78","nodeType":"VariableDeclaration","scope":49342,"src":"2792:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49313,"nodeType":"UserDefinedTypeName","pathNode":{"id":49312,"name":"ValidatorSet","nameLocations":["2792:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"2792:12:78"},"referencedDeclaration":50190,"src":"2792:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49316,"mutability":"mutable","name":"validator","nameLocation":"2833:9:78","nodeType":"VariableDeclaration","scope":49342,"src":"2825:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49315,"name":"address","nodeType":"ElementaryTypeName","src":"2825:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2771:72:78"},"returnParameters":{"id":49318,"nodeType":"ParameterList","parameters":[],"src":"2853:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49377,"nodeType":"FunctionDefinition","src":"3132:302:78","nodes":[],"body":{"id":49376,"nodeType":"Block","src":"3240:194:78","nodes":[],"statements":[{"assignments":[49355],"declarations":[{"constant":false,"id":49355,"mutability":"mutable","name":"pos","nameLocation":"3257:3:78","nodeType":"VariableDeclaration","scope":49376,"src":"3250:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49354,"name":"uint16","nodeType":"ElementaryTypeName","src":"3250:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49361,"initialValue":{"arguments":[{"id":49359,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49351,"src":"3289:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49356,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49346,"src":"3263:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3268:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"3263:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3274:14:78","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"3263:25:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":49360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3263:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3250:49:78"},{"assignments":[49363],"declarations":[{"constant":false,"id":49363,"mutability":"mutable","name":"val","nameLocation":"3317:3:78","nodeType":"VariableDeclaration","scope":49376,"src":"3309:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49362,"name":"uint256","nodeType":"ElementaryTypeName","src":"3309:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49368,"initialValue":{"arguments":[{"id":49366,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49351,"src":"3343:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49364,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49349,"src":"3323:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3334:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"3323:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3309:44:78"},{"expression":{"arguments":[{"id":49370,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49346,"src":"3375:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49371,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49349,"src":"3393:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49372,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49355,"src":"3410:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49373,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49363,"src":"3422:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49369,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49479,"src":"3363:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3369:4:78","3381:10:78","3405:3:78","3415:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3363:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49375,"nodeType":"ExpressionStatement","src":"3363:64:78"}]},"documentation":{"id":49343,"nodeType":"StructuredDocumentation","src":"3053:74:78","text":"@notice Reheapify the heap when the collateral of a key has decreased."},"implemented":true,"kind":"function","modifiers":[],"name":"decreaseReheapify","nameLocation":"3141:17:78","parameters":{"id":49352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49346,"mutability":"mutable","name":"self","nameLocation":"3173:4:78","nodeType":"VariableDeclaration","scope":49377,"src":"3159:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49345,"nodeType":"UserDefinedTypeName","pathNode":{"id":49344,"name":"MinPQ","nameLocations":["3159:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3159:5:78"},"referencedDeclaration":49029,"src":"3159:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49349,"mutability":"mutable","name":"validators","nameLocation":"3200:10:78","nodeType":"VariableDeclaration","scope":49377,"src":"3179:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49348,"nodeType":"UserDefinedTypeName","pathNode":{"id":49347,"name":"ValidatorSet","nameLocations":["3179:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"3179:12:78"},"referencedDeclaration":50190,"src":"3179:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49351,"mutability":"mutable","name":"validator","nameLocation":"3220:9:78","nodeType":"VariableDeclaration","scope":49377,"src":"3212:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49350,"name":"address","nodeType":"ElementaryTypeName","src":"3212:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3158:72:78"},"returnParameters":{"id":49353,"nodeType":"ParameterList","parameters":[],"src":"3240:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49418,"nodeType":"FunctionDefinition","src":"3564:285:78","nodes":[],"body":{"id":49417,"nodeType":"Block","src":"3671:178:78","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":49391,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49381,"src":"3681:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3686:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"3681:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3692:15:78","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49692,"src":"3681:26:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":49396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3681:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49397,"nodeType":"ExpressionStatement","src":"3681:28:78"},{"assignments":[49399],"declarations":[{"constant":false,"id":49399,"mutability":"mutable","name":"addr","nameLocation":"3728:4:78","nodeType":"VariableDeclaration","scope":49417,"src":"3720:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49398,"name":"address","nodeType":"ElementaryTypeName","src":"3720:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49405,"initialValue":{"baseExpression":{"expression":{"expression":{"id":49400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49381,"src":"3735:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3740:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"3735:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3746:12:78","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"3735:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49404,"indexExpression":{"hexValue":"31","id":49403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3759:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3735:26:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3720:41:78"},{"assignments":[49407],"declarations":[{"constant":false,"id":49407,"mutability":"mutable","name":"power","nameLocation":"3779:5:78","nodeType":"VariableDeclaration","scope":49417,"src":"3771:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49406,"name":"uint256","nodeType":"ElementaryTypeName","src":"3771:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49412,"initialValue":{"arguments":[{"id":49410,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49399,"src":"3807:4:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49408,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49384,"src":"3787:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3798:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"3787:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3787:25:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3771:41:78"},{"expression":{"components":[{"id":49413,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49399,"src":"3830:4:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49414,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49407,"src":"3836:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49415,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3829:13:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":49390,"id":49416,"nodeType":"Return","src":"3822:20:78"}]},"documentation":{"id":49378,"nodeType":"StructuredDocumentation","src":"3440:119:78","text":"@notice Get the minimal value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"3573:3:78","parameters":{"id":49385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49381,"mutability":"mutable","name":"self","nameLocation":"3591:4:78","nodeType":"VariableDeclaration","scope":49418,"src":"3577:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49380,"nodeType":"UserDefinedTypeName","pathNode":{"id":49379,"name":"MinPQ","nameLocations":["3577:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3577:5:78"},"referencedDeclaration":49029,"src":"3577:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49384,"mutability":"mutable","name":"validators","nameLocation":"3618:10:78","nodeType":"VariableDeclaration","scope":49418,"src":"3597:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49383,"nodeType":"UserDefinedTypeName","pathNode":{"id":49382,"name":"ValidatorSet","nameLocations":["3597:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"3597:12:78"},"referencedDeclaration":50190,"src":"3597:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"3576:53:78"},"returnParameters":{"id":49390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49418,"src":"3653:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49386,"name":"address","nodeType":"ElementaryTypeName","src":"3653:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49418,"src":"3662:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49388,"name":"uint256","nodeType":"ElementaryTypeName","src":"3662:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3652:18:78"},"scope":49635,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49479,"nodeType":"FunctionDefinition","src":"4101:608:78","nodes":[],"body":{"id":49478,"nodeType":"Block","src":"4204:505:78","nodes":[],"statements":[{"assignments":[49432],"declarations":[{"constant":false,"id":49432,"mutability":"mutable","name":"parentPos","nameLocation":"4221:9:78","nodeType":"VariableDeclaration","scope":49478,"src":"4214:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49431,"name":"uint16","nodeType":"ElementaryTypeName","src":"4214:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49433,"nodeType":"VariableDeclarationStatement","src":"4214:16:78"},{"assignments":[49435],"declarations":[{"constant":false,"id":49435,"mutability":"mutable","name":"parentPower","nameLocation":"4248:11:78","nodeType":"VariableDeclaration","scope":49478,"src":"4240:19:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49434,"name":"uint256","nodeType":"ElementaryTypeName","src":"4240:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49436,"nodeType":"VariableDeclarationStatement","src":"4240:19:78"},{"body":{"id":49476,"nodeType":"Block","src":"4286:417:78","statements":[{"expression":{"id":49444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49440,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49432,"src":"4336:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49441,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49426,"src":"4348:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":49442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4355:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4348:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4336:20:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49445,"nodeType":"ExpressionStatement","src":"4336:20:78"},{"expression":{"id":49453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49446,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49435,"src":"4370:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49450,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49424,"src":"4404:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49451,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49432,"src":"4416:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49447,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49421,"src":"4384:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4389:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"4384:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4395:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"4384:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4384:42:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4370:56:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49454,"nodeType":"ExpressionStatement","src":"4370:56:78"},{"condition":{"id":49459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4537:37:78","subExpression":{"arguments":[{"id":49456,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49435,"src":"4555:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49457,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49428,"src":"4568:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49455,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49634,"src":"4538:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":49458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4538:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49462,"nodeType":"IfStatement","src":"4533:81:78","trueBody":{"id":49461,"nodeType":"Block","src":"4576:38:78","statements":[{"id":49460,"nodeType":"Break","src":"4594:5:78"}]}},{"expression":{"arguments":[{"id":49468,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49432,"src":"4648:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49469,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49426,"src":"4659:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49463,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49421,"src":"4628:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4633:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"4628:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4639:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"4628:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4628:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49471,"nodeType":"ExpressionStatement","src":"4628:35:78"},{"expression":{"id":49474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49472,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49426,"src":"4677:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49473,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49432,"src":"4683:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4677:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49475,"nodeType":"ExpressionStatement","src":"4677:15:78"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49437,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49426,"src":"4277:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":49438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4283:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4277:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49477,"nodeType":"WhileStatement","src":"4270:433:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"swim","nameLocation":"4110:4:78","parameters":{"id":49429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49421,"mutability":"mutable","name":"self","nameLocation":"4129:4:78","nodeType":"VariableDeclaration","scope":49479,"src":"4115:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49420,"nodeType":"UserDefinedTypeName","pathNode":{"id":49419,"name":"MinPQ","nameLocations":["4115:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"4115:5:78"},"referencedDeclaration":49029,"src":"4115:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49424,"mutability":"mutable","name":"validators","nameLocation":"4156:10:78","nodeType":"VariableDeclaration","scope":49479,"src":"4135:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49423,"nodeType":"UserDefinedTypeName","pathNode":{"id":49422,"name":"ValidatorSet","nameLocations":["4135:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4135:12:78"},"referencedDeclaration":50190,"src":"4135:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49426,"mutability":"mutable","name":"pos","nameLocation":"4175:3:78","nodeType":"VariableDeclaration","scope":49479,"src":"4168:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49425,"name":"uint16","nodeType":"ElementaryTypeName","src":"4168:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49428,"mutability":"mutable","name":"value","nameLocation":"4188:5:78","nodeType":"VariableDeclaration","scope":49479,"src":"4180:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49427,"name":"uint256","nodeType":"ElementaryTypeName","src":"4180:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4114:80:78"},"returnParameters":{"id":49430,"nodeType":"ParameterList","parameters":[],"src":"4204:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49568,"nodeType":"FunctionDefinition","src":"4715:986:78","nodes":[],"body":{"id":49567,"nodeType":"Block","src":"4818:883:78","nodes":[],"statements":[{"assignments":[49493],"declarations":[{"constant":false,"id":49493,"mutability":"mutable","name":"childPos","nameLocation":"4835:8:78","nodeType":"VariableDeclaration","scope":49567,"src":"4828:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49492,"name":"uint16","nodeType":"ElementaryTypeName","src":"4828:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49497,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49494,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49487,"src":"4846:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":49495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4852:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4846:7:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4828:25:78"},{"assignments":[49499],"declarations":[{"constant":false,"id":49499,"mutability":"mutable","name":"childPower","nameLocation":"4871:10:78","nodeType":"VariableDeclaration","scope":49567,"src":"4863:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49498,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49500,"nodeType":"VariableDeclarationStatement","src":"4863:18:78"},{"assignments":[49502],"declarations":[{"constant":false,"id":49502,"mutability":"mutable","name":"size","nameLocation":"4899:4:78","nodeType":"VariableDeclaration","scope":49567,"src":"4892:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49501,"name":"uint16","nodeType":"ElementaryTypeName","src":"4892:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49506,"initialValue":{"expression":{"expression":{"id":49503,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49482,"src":"4906:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4911:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"4906:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4917:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"4906:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4892:29:78"},{"body":{"id":49565,"nodeType":"Block","src":"4957:738:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49510,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"4975:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":49511,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49502,"src":"4986:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4975:15:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49536,"nodeType":"Block","src":"5297:87:78","statements":[{"expression":{"id":49534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49527,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49499,"src":"5315:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49531,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49485,"src":"5348:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49532,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5360:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49528,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49482,"src":"5328:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5333:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"5328:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"5328:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:41:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5315:54:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49535,"nodeType":"ExpressionStatement","src":"5315:54:78"}]},"id":49537,"nodeType":"IfStatement","src":"4971:413:78","trueBody":{"id":49526,"nodeType":"Block","src":"4992:299:78","statements":[{"expression":{"id":49524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":49513,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5065:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49514,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49499,"src":"5075:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49515,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5064:22:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49517,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49482,"src":"5133:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49518,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49485,"src":"5171:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49519,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5209:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49520,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5245:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":49521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5256:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5245:12:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":49516,"name":"smallerPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49620,"src":"5089:15:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint16_$returns$_t_uint16_$_t_uint256_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint16) view returns (uint16,uint256)"}},"id":49523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5127:4:78","5159:10:78","5203:4:78","5239:4:78"],"names":["self","validators","pos1","pos2"],"nodeType":"FunctionCall","src":"5089:187:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"src":"5064:212:78","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49525,"nodeType":"ExpressionStatement","src":"5064:212:78"}]}},{"condition":{"id":49542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5500:36:78","subExpression":{"arguments":[{"id":49539,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49489,"src":"5518:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49540,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49499,"src":"5525:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49538,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49634,"src":"5501:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":49541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5501:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49545,"nodeType":"IfStatement","src":"5496:80:78","trueBody":{"id":49544,"nodeType":"Block","src":"5538:38:78","statements":[{"id":49543,"nodeType":"Break","src":"5556:5:78"}]}},{"expression":{"arguments":[{"id":49551,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5610:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49552,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49487,"src":"5620:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49546,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49482,"src":"5590:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5595:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"5590:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5601:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"5590:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5590:34:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49554,"nodeType":"ExpressionStatement","src":"5590:34:78"},{"expression":{"id":49557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49555,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49487,"src":"5638:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49556,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5644:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5638:14:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49558,"nodeType":"ExpressionStatement","src":"5638:14:78"},{"expression":{"id":49563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49559,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5666:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49560,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49487,"src":"5677:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":49561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5683:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5677:7:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5666:18:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49564,"nodeType":"ExpressionStatement","src":"5666:18:78"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49507,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"4939:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":49508,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49502,"src":"4951:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4939:16:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49566,"nodeType":"WhileStatement","src":"4932:763:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sink","nameLocation":"4724:4:78","parameters":{"id":49490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49482,"mutability":"mutable","name":"self","nameLocation":"4743:4:78","nodeType":"VariableDeclaration","scope":49568,"src":"4729:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49481,"nodeType":"UserDefinedTypeName","pathNode":{"id":49480,"name":"MinPQ","nameLocations":["4729:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"4729:5:78"},"referencedDeclaration":49029,"src":"4729:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49485,"mutability":"mutable","name":"validators","nameLocation":"4770:10:78","nodeType":"VariableDeclaration","scope":49568,"src":"4749:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49484,"nodeType":"UserDefinedTypeName","pathNode":{"id":49483,"name":"ValidatorSet","nameLocations":["4749:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4749:12:78"},"referencedDeclaration":50190,"src":"4749:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49487,"mutability":"mutable","name":"pos","nameLocation":"4789:3:78","nodeType":"VariableDeclaration","scope":49568,"src":"4782:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49486,"name":"uint16","nodeType":"ElementaryTypeName","src":"4782:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49489,"mutability":"mutable","name":"value","nameLocation":"4802:5:78","nodeType":"VariableDeclaration","scope":49568,"src":"4794:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49488,"name":"uint256","nodeType":"ElementaryTypeName","src":"4794:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4728:80:78"},"returnParameters":{"id":49491,"nodeType":"ParameterList","parameters":[],"src":"4818:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49620,"nodeType":"FunctionDefinition","src":"5763:443:78","nodes":[],"body":{"id":49619,"nodeType":"Block","src":"5945:261:78","nodes":[],"statements":[{"assignments":[49587],"declarations":[{"constant":false,"id":49587,"mutability":"mutable","name":"value1","nameLocation":"5963:6:78","nodeType":"VariableDeclaration","scope":49619,"src":"5955:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49586,"name":"uint256","nodeType":"ElementaryTypeName","src":"5955:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49594,"initialValue":{"arguments":[{"id":49591,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49575,"src":"5992:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49592,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49577,"src":"6004:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49588,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49572,"src":"5972:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5977:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"5972:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5983:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"5972:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5972:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5955:54:78"},{"assignments":[49596],"declarations":[{"constant":false,"id":49596,"mutability":"mutable","name":"value2","nameLocation":"6027:6:78","nodeType":"VariableDeclaration","scope":49619,"src":"6019:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49595,"name":"uint256","nodeType":"ElementaryTypeName","src":"6019:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49603,"initialValue":{"arguments":[{"id":49600,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49575,"src":"6056:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49601,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49579,"src":"6068:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49597,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49572,"src":"6036:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6041:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"6036:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6047:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"6036:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6036:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6019:54:78"},{"condition":{"id":49608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6088:33:78","subExpression":{"arguments":[{"id":49605,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49587,"src":"6106:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49606,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49596,"src":"6114:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49604,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49634,"src":"6089:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":49607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6089:32:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49614,"nodeType":"IfStatement","src":"6084:85:78","trueBody":{"id":49613,"nodeType":"Block","src":"6123:46:78","statements":[{"expression":{"components":[{"id":49609,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49577,"src":"6145:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49610,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49587,"src":"6151:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49611,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6144:14:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":49585,"id":49612,"nodeType":"Return","src":"6137:21:78"}]}},{"expression":{"components":[{"id":49615,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49579,"src":"6186:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49616,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49596,"src":"6192:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49617,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6185:14:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":49585,"id":49618,"nodeType":"Return","src":"6178:21:78"}]},"documentation":{"id":49569,"nodeType":"StructuredDocumentation","src":"5707:51:78","text":"@notice Get the smaller index of pos1 and pos2."},"implemented":true,"kind":"function","modifiers":[],"name":"smallerPosition","nameLocation":"5772:15:78","parameters":{"id":49580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49572,"mutability":"mutable","name":"self","nameLocation":"5811:4:78","nodeType":"VariableDeclaration","scope":49620,"src":"5797:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49571,"nodeType":"UserDefinedTypeName","pathNode":{"id":49570,"name":"MinPQ","nameLocations":["5797:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"5797:5:78"},"referencedDeclaration":49029,"src":"5797:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49575,"mutability":"mutable","name":"validators","nameLocation":"5846:10:78","nodeType":"VariableDeclaration","scope":49620,"src":"5825:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49574,"nodeType":"UserDefinedTypeName","pathNode":{"id":49573,"name":"ValidatorSet","nameLocations":["5825:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5825:12:78"},"referencedDeclaration":50190,"src":"5825:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49577,"mutability":"mutable","name":"pos1","nameLocation":"5873:4:78","nodeType":"VariableDeclaration","scope":49620,"src":"5866:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49576,"name":"uint16","nodeType":"ElementaryTypeName","src":"5866:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49579,"mutability":"mutable","name":"pos2","nameLocation":"5894:4:78","nodeType":"VariableDeclaration","scope":49620,"src":"5887:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49578,"name":"uint16","nodeType":"ElementaryTypeName","src":"5887:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5787:117:78"},"returnParameters":{"id":49585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49620,"src":"5928:6:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49581,"name":"uint16","nodeType":"ElementaryTypeName","src":"5928:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49620,"src":"5936:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49583,"name":"uint256","nodeType":"ElementaryTypeName","src":"5936:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5927:17:78"},"scope":49635,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49634,"nodeType":"FunctionDefinition","src":"6212:110:78","nodes":[],"body":{"id":49633,"nodeType":"Block","src":"6291:31:78","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49629,"name":"v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49622,"src":"6308:2:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":49630,"name":"v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49624,"src":"6313:2:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6308:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49628,"id":49632,"nodeType":"Return","src":"6301:14:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"firstValueLarger","nameLocation":"6221:16:78","parameters":{"id":49625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49622,"mutability":"mutable","name":"v1","nameLocation":"6246:2:78","nodeType":"VariableDeclaration","scope":49634,"src":"6238:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49621,"name":"uint256","nodeType":"ElementaryTypeName","src":"6238:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49624,"mutability":"mutable","name":"v2","nameLocation":"6258:2:78","nodeType":"VariableDeclaration","scope":49634,"src":"6250:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49623,"name":"uint256","nodeType":"ElementaryTypeName","src":"6250:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6237:24:78"},"returnParameters":{"id":49628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49627,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49634,"src":"6285:4:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49626,"name":"bool","nodeType":"ElementaryTypeName","src":"6285:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6284:6:78"},"scope":49635,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibMinPQ","contractDependencies":[],"contractKind":"library","documentation":{"id":49030,"nodeType":"StructuredDocumentation","src":"249:45:78","text":"The min index priority queue for staking"},"fullyImplemented":true,"linearizedBaseContracts":[49635],"name":"LibMinPQ","nameLocation":"302:8:78","scope":49636,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":78} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ec8dd754bd9c619ffe74ea350074efa3ec13c36354933629735d68fb82e293b564736f6c63430008130033","sourceMap":"294:6030:78:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220ec8dd754bd9c619ffe74ea350074efa3ec13c36354933629735d68fb82e293b564736f6c63430008130033","sourceMap":"294:6030:78:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The min index priority queue for staking\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibMinPQ.sol\":\"LibMinPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibMinPQ.sol":"LibMinPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibMinPQ.sol","id":49589,"exportedSymbols":{"LibMinPQ":[49588],"LibPQ":[49853],"LibValidatorSet":[45246],"MinPQ":[48982],"PQ":[49611],"ValidatorSet":[50143]},"nodeType":"SourceUnit","src":"46:6278:78","nodes":[{"id":48971,"nodeType":"PragmaDirective","src":"46:23:78","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48973,"nodeType":"ImportDirective","src":"71:50:78","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":49589,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":48972,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45246,"src":"79:15:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48975,"nodeType":"ImportDirective","src":"122:54:78","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":49589,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":48974,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"130:12:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48978,"nodeType":"ImportDirective","src":"177:38:78","nodes":[],"absolutePath":"src/lib/priority/LibPQ.sol","file":"./LibPQ.sol","nameLocation":"-1:-1:-1","scope":49589,"sourceUnit":49854,"symbolAliases":[{"foreign":{"id":48976,"name":"PQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49611,"src":"185:2:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48977,"name":"LibPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49853,"src":"189:5:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48982,"nodeType":"StructDefinition","src":"217:30:78","nodes":[],"canonicalName":"MinPQ","members":[{"constant":false,"id":48981,"mutability":"mutable","name":"inner","nameLocation":"239:5:78","nodeType":"VariableDeclaration","scope":48982,"src":"236:8:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48980,"nodeType":"UserDefinedTypeName","pathNode":{"id":48979,"name":"PQ","nameLocations":["236:2:78"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"236:2:78"},"referencedDeclaration":49611,"src":"236:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"name":"MinPQ","nameLocation":"224:5:78","scope":49589,"visibility":"public"},{"id":49588,"nodeType":"ContractDefinition","src":"294:6030:78","nodes":[{"id":48987,"nodeType":"UsingForDirective","src":"317:19:78","nodes":[],"global":false,"libraryName":{"id":48984,"name":"LibPQ","nameLocations":["323:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49853,"src":"323:5:78"},"typeName":{"id":48986,"nodeType":"UserDefinedTypeName","pathNode":{"id":48985,"name":"PQ","nameLocations":["333:2:78"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"333:2:78"},"referencedDeclaration":49611,"src":"333:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}}},{"id":48991,"nodeType":"UsingForDirective","src":"341:39:78","nodes":[],"global":false,"libraryName":{"id":48988,"name":"LibValidatorSet","nameLocations":["347:15:78"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"347:15:78"},"typeName":{"id":48990,"nodeType":"UserDefinedTypeName","pathNode":{"id":48989,"name":"ValidatorSet","nameLocations":["367:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"367:12:78"},"referencedDeclaration":50143,"src":"367:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":49004,"nodeType":"FunctionDefinition","src":"386:107:78","nodes":[],"body":{"id":49003,"nodeType":"Block","src":"454:39:78","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":48999,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48994,"src":"471:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"476:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"471:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"482:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"471:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":48998,"id":49002,"nodeType":"Return","src":"464:22:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"395:7:78","parameters":{"id":48995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48994,"mutability":"mutable","name":"self","nameLocation":"417:4:78","nodeType":"VariableDeclaration","scope":49004,"src":"403:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":48993,"nodeType":"UserDefinedTypeName","pathNode":{"id":48992,"name":"MinPQ","nameLocations":["403:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"403:5:78"},"referencedDeclaration":48982,"src":"403:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"}],"src":"402:20:78"},"returnParameters":{"id":48998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49004,"src":"446:6:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48996,"name":"uint16","nodeType":"ElementaryTypeName","src":"446:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"445:8:78"},"scope":49588,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49021,"nodeType":"FunctionDefinition","src":"499:132:78","nodes":[],"body":{"id":49020,"nodeType":"Block","src":"581:50:78","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":49014,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49007,"src":"598:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"603:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"598:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"609:12:78","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"598:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49018,"indexExpression":{"id":49017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49009,"src":"622:1:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"598:26:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":49013,"id":49019,"nodeType":"Return","src":"591:33:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"508:10:78","parameters":{"id":49010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49007,"mutability":"mutable","name":"self","nameLocation":"533:4:78","nodeType":"VariableDeclaration","scope":49021,"src":"519:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49006,"nodeType":"UserDefinedTypeName","pathNode":{"id":49005,"name":"MinPQ","nameLocations":["519:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"519:5:78"},"referencedDeclaration":48982,"src":"519:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49009,"mutability":"mutable","name":"i","nameLocation":"546:1:78","nodeType":"VariableDeclaration","scope":49021,"src":"539:8:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49008,"name":"uint16","nodeType":"ElementaryTypeName","src":"539:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"518:30:78"},"returnParameters":{"id":49013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49021,"src":"572:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49011,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"571:9:78"},"scope":49588,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49038,"nodeType":"FunctionDefinition","src":"637:140:78","nodes":[],"body":{"id":49037,"nodeType":"Block","src":"723:54:78","nodes":[],"statements":[{"expression":{"arguments":[{"id":49034,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49026,"src":"760:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49031,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"740:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"745:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"740:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"751:8:78","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49675,"src":"740:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (bool)"}},"id":49035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"740:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49030,"id":49036,"nodeType":"Return","src":"733:37:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"646:8:78","parameters":{"id":49027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49024,"mutability":"mutable","name":"self","nameLocation":"669:4:78","nodeType":"VariableDeclaration","scope":49038,"src":"655:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49023,"nodeType":"UserDefinedTypeName","pathNode":{"id":49022,"name":"MinPQ","nameLocations":["655:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"655:5:78"},"referencedDeclaration":48982,"src":"655:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49026,"mutability":"mutable","name":"validator","nameLocation":"683:9:78","nodeType":"VariableDeclaration","scope":49038,"src":"675:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49025,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"654:39:78"},"returnParameters":{"id":49030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49038,"src":"717:4:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49028,"name":"bool","nodeType":"ElementaryTypeName","src":"717:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"716:6:78"},"scope":49588,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49101,"nodeType":"FunctionDefinition","src":"924:417:78","nodes":[],"body":{"id":49100,"nodeType":"Block","src":"1021:320:78","nodes":[],"statements":[{"assignments":[49051],"declarations":[{"constant":false,"id":49051,"mutability":"mutable","name":"size","nameLocation":"1038:4:78","nodeType":"VariableDeclaration","scope":49100,"src":"1031:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49050,"name":"uint16","nodeType":"ElementaryTypeName","src":"1031:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49057,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":49052,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49042,"src":"1045:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1050:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"1045:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1056:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"1045:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":49055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1063:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1045:19:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1031:33:78"},{"expression":{"id":49066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":49058,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49042,"src":"1075:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1080:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"1075:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1086:12:78","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49605,"src":"1075:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49064,"indexExpression":{"id":49061,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49047,"src":"1099:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1075:34:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49065,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49051,"src":"1112:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1075:41:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49067,"nodeType":"ExpressionStatement","src":"1075:41:78"},{"expression":{"id":49076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":49068,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49042,"src":"1126:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1131:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"1126:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1137:12:78","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"1126:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49074,"indexExpression":{"id":49071,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49051,"src":"1150:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1126:29:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49075,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49047,"src":"1158:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1126:41:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49077,"nodeType":"ExpressionStatement","src":"1126:41:78"},{"expression":{"id":49084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":49078,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49042,"src":"1178:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1183:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"1178:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1189:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"1178:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49083,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49051,"src":"1196:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1178:22:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49085,"nodeType":"ExpressionStatement","src":"1178:22:78"},{"assignments":[49087],"declarations":[{"constant":false,"id":49087,"mutability":"mutable","name":"power","nameLocation":"1219:5:78","nodeType":"VariableDeclaration","scope":49100,"src":"1211:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49086,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49092,"initialValue":{"arguments":[{"id":49090,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49047,"src":"1247:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49088,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49045,"src":"1227:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1238:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"1227:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1227:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1211:46:78"},{"expression":{"arguments":[{"id":49094,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49042,"src":"1279:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49095,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49045,"src":"1297:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49096,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49051,"src":"1314:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49097,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49087,"src":"1327:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49093,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49432,"src":"1267:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1273:4:78","1285:10:78","1309:3:78","1320:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1267:67:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49099,"nodeType":"ExpressionStatement","src":"1267:67:78"}]},"documentation":{"id":49039,"nodeType":"StructuredDocumentation","src":"783:136:78","text":"@notice Insert the validator address into this PQ.\n NOTE that caller should ensure the validator is not already in the queue."},"implemented":true,"kind":"function","modifiers":[],"name":"insert","nameLocation":"933:6:78","parameters":{"id":49048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49042,"mutability":"mutable","name":"self","nameLocation":"954:4:78","nodeType":"VariableDeclaration","scope":49101,"src":"940:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49041,"nodeType":"UserDefinedTypeName","pathNode":{"id":49040,"name":"MinPQ","nameLocations":["940:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"940:5:78"},"referencedDeclaration":48982,"src":"940:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49045,"mutability":"mutable","name":"validators","nameLocation":"981:10:78","nodeType":"VariableDeclaration","scope":49101,"src":"960:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49044,"nodeType":"UserDefinedTypeName","pathNode":{"id":49043,"name":"ValidatorSet","nameLocations":["960:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"960:12:78"},"referencedDeclaration":50143,"src":"960:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49047,"mutability":"mutable","name":"validator","nameLocation":"1001:9:78","nodeType":"VariableDeclaration","scope":49101,"src":"993:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49046,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"939:72:78"},"returnParameters":{"id":49049,"nodeType":"ParameterList","parameters":[],"src":"1021:0:78"},"scope":49588,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49168,"nodeType":"FunctionDefinition","src":"1408:401:78","nodes":[],"body":{"id":49167,"nodeType":"Block","src":"1483:326:78","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":49111,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49105,"src":"1493:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1498:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"1493:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1504:15:78","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49645,"src":"1493:26:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":49116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49117,"nodeType":"ExpressionStatement","src":"1493:28:78"},{"assignments":[49119],"declarations":[{"constant":false,"id":49119,"mutability":"mutable","name":"size","nameLocation":"1539:4:78","nodeType":"VariableDeclaration","scope":49167,"src":"1532:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49118,"name":"uint16","nodeType":"ElementaryTypeName","src":"1532:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49123,"initialValue":{"expression":{"expression":{"id":49120,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49105,"src":"1546:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1551:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"1546:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1557:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"1546:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1532:29:78"},{"expression":{"arguments":[{"hexValue":"31","id":49129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1592:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":49130,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49119,"src":"1595:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49124,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49105,"src":"1572:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1577:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"1572:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1583:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49852,"src":"1572:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1572:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49132,"nodeType":"ExpressionStatement","src":"1572:28:78"},{"expression":{"id":49141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":49133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49105,"src":"1611:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1616:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"1611:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1622:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"1611:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49138,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49119,"src":"1629:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":49139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1636:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1629:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1611:26:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49142,"nodeType":"ExpressionStatement","src":"1611:26:78"},{"expression":{"arguments":[{"id":49148,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49119,"src":"1662:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49143,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49105,"src":"1647:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1652:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"1647:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1658:3:78","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49729,"src":"1647:14:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":49149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:20:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49150,"nodeType":"ExpressionStatement","src":"1647:20:78"},{"assignments":[49152],"declarations":[{"constant":false,"id":49152,"mutability":"mutable","name":"power","nameLocation":"1686:5:78","nodeType":"VariableDeclaration","scope":49167,"src":"1678:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49151,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49159,"initialValue":{"arguments":[{"id":49156,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49108,"src":"1714:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":49157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1726:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":49153,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49105,"src":"1694:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1699:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"1694:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1705:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"1694:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1694:34:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1678:50:78"},{"expression":{"arguments":[{"id":49161,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49105,"src":"1750:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49162,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49108,"src":"1768:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":49163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1785:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":49164,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1795:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49160,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49521,"src":"1738:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1744:4:78","1756:10:78","1780:3:78","1788:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1738:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49166,"nodeType":"ExpressionStatement","src":"1738:64:78"}]},"documentation":{"id":49102,"nodeType":"StructuredDocumentation","src":"1347:56:78","text":"@notice Pop the minimal value in the priority queue."},"implemented":true,"kind":"function","modifiers":[],"name":"pop","nameLocation":"1417:3:78","parameters":{"id":49109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49105,"mutability":"mutable","name":"self","nameLocation":"1435:4:78","nodeType":"VariableDeclaration","scope":49168,"src":"1421:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49104,"nodeType":"UserDefinedTypeName","pathNode":{"id":49103,"name":"MinPQ","nameLocations":["1421:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"1421:5:78"},"referencedDeclaration":48982,"src":"1421:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49108,"mutability":"mutable","name":"validators","nameLocation":"1462:10:78","nodeType":"VariableDeclaration","scope":49168,"src":"1441:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49107,"nodeType":"UserDefinedTypeName","pathNode":{"id":49106,"name":"ValidatorSet","nameLocations":["1441:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"1441:12:78"},"referencedDeclaration":50143,"src":"1441:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"1420:53:78"},"returnParameters":{"id":49110,"nodeType":"ParameterList","parameters":[],"src":"1483:0:78"},"scope":49588,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49260,"nodeType":"FunctionDefinition","src":"1881:779:78","nodes":[],"body":{"id":49259,"nodeType":"Block","src":"1987:673:78","nodes":[],"statements":[{"assignments":[49181],"declarations":[{"constant":false,"id":49181,"mutability":"mutable","name":"pos","nameLocation":"2004:3:78","nodeType":"VariableDeclaration","scope":49259,"src":"1997:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49180,"name":"uint16","nodeType":"ElementaryTypeName","src":"1997:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49187,"initialValue":{"arguments":[{"id":49185,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49177,"src":"2036:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49182,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49172,"src":"2010:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2015:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"2010:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2021:14:78","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49701,"src":"2010:25:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":49186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1997:49:78"},{"assignments":[49189],"declarations":[{"constant":false,"id":49189,"mutability":"mutable","name":"size","nameLocation":"2063:4:78","nodeType":"VariableDeclaration","scope":49259,"src":"2056:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49188,"name":"uint16","nodeType":"ElementaryTypeName","src":"2056:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49193,"initialValue":{"expression":{"expression":{"id":49190,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49172,"src":"2070:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2075:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"2070:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2081:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"2070:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2056:29:78"},{"expression":{"arguments":[{"id":49199,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49181,"src":"2116:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49200,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49189,"src":"2121:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49194,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49172,"src":"2096:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2101:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"2096:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2107:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49852,"src":"2096:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2096:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49202,"nodeType":"ExpressionStatement","src":"2096:30:78"},{"expression":{"id":49211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":49203,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49172,"src":"2164:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2169:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"2164:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2175:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"2164:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49208,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49189,"src":"2182:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":49209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2182:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2164:26:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49212,"nodeType":"ExpressionStatement","src":"2164:26:78"},{"expression":{"arguments":[{"id":49218,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49189,"src":"2215:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49213,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49172,"src":"2200:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2205:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"2200:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2211:3:78","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49729,"src":"2200:14:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":49219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:20:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49220,"nodeType":"ExpressionStatement","src":"2200:20:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49221,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49189,"src":"2235:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":49222,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49181,"src":"2243:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2235:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49226,"nodeType":"IfStatement","src":"2231:48:78","trueBody":{"id":49225,"nodeType":"Block","src":"2248:31:78","statements":[{"functionReturnParameters":49179,"id":49224,"nodeType":"Return","src":"2262:7:78"}]}},{"assignments":[49228],"declarations":[{"constant":false,"id":49228,"mutability":"mutable","name":"val","nameLocation":"2355:3:78","nodeType":"VariableDeclaration","scope":49259,"src":"2347:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49227,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49235,"initialValue":{"arguments":[{"id":49232,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49175,"src":"2381:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49233,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49181,"src":"2393:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49172,"src":"2361:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2366:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"2361:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2372:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"2361:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2361:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2347:50:78"},{"expression":{"arguments":[{"id":49237,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49172,"src":"2419:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49175,"src":"2437:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49239,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49181,"src":"2454:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49240,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2466:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49236,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49432,"src":"2407:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2413:4:78","2425:10:78","2449:3:78","2459:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2407:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49242,"nodeType":"ExpressionStatement","src":"2407:64:78"},{"expression":{"id":49250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49243,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2537:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49247,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49175,"src":"2563:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49248,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49181,"src":"2575:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49172,"src":"2543:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2548:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"2543:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2554:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"2543:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2543:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2537:42:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49251,"nodeType":"ExpressionStatement","src":"2537:42:78"},{"expression":{"arguments":[{"id":49253,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49172,"src":"2601:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49254,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49175,"src":"2619:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49255,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49181,"src":"2636:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49256,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2648:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49252,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49521,"src":"2589:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2595:4:78","2607:10:78","2631:3:78","2641:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2589:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49258,"nodeType":"ExpressionStatement","src":"2589:64:78"}]},"documentation":{"id":49169,"nodeType":"StructuredDocumentation","src":"1815:61:78","text":"@notice Reheapify the heap when the validator is deleted."},"implemented":true,"kind":"function","modifiers":[],"name":"deleteReheapify","nameLocation":"1890:15:78","parameters":{"id":49178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49172,"mutability":"mutable","name":"self","nameLocation":"1920:4:78","nodeType":"VariableDeclaration","scope":49260,"src":"1906:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49171,"nodeType":"UserDefinedTypeName","pathNode":{"id":49170,"name":"MinPQ","nameLocations":["1906:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"1906:5:78"},"referencedDeclaration":48982,"src":"1906:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49175,"mutability":"mutable","name":"validators","nameLocation":"1947:10:78","nodeType":"VariableDeclaration","scope":49260,"src":"1926:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49174,"nodeType":"UserDefinedTypeName","pathNode":{"id":49173,"name":"ValidatorSet","nameLocations":["1926:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"1926:12:78"},"referencedDeclaration":50143,"src":"1926:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49177,"mutability":"mutable","name":"validator","nameLocation":"1967:9:78","nodeType":"VariableDeclaration","scope":49260,"src":"1959:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49176,"name":"address","nodeType":"ElementaryTypeName","src":"1959:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1905:72:78"},"returnParameters":{"id":49179,"nodeType":"ParameterList","parameters":[],"src":"1987:0:78"},"scope":49588,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49295,"nodeType":"FunctionDefinition","src":"2745:302:78","nodes":[],"body":{"id":49294,"nodeType":"Block","src":"2853:194:78","nodes":[],"statements":[{"assignments":[49273],"declarations":[{"constant":false,"id":49273,"mutability":"mutable","name":"pos","nameLocation":"2870:3:78","nodeType":"VariableDeclaration","scope":49294,"src":"2863:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49272,"name":"uint16","nodeType":"ElementaryTypeName","src":"2863:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49279,"initialValue":{"arguments":[{"id":49277,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49269,"src":"2902:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49274,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49264,"src":"2876:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2881:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"2876:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2887:14:78","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49701,"src":"2876:25:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":49278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2876:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2863:49:78"},{"assignments":[49281],"declarations":[{"constant":false,"id":49281,"mutability":"mutable","name":"val","nameLocation":"2930:3:78","nodeType":"VariableDeclaration","scope":49294,"src":"2922:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49280,"name":"uint256","nodeType":"ElementaryTypeName","src":"2922:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49286,"initialValue":{"arguments":[{"id":49284,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49269,"src":"2956:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49282,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49267,"src":"2936:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2947:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"2936:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2936:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2922:44:78"},{"expression":{"arguments":[{"id":49288,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49264,"src":"2988:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49289,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49267,"src":"3006:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49290,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49273,"src":"3023:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49291,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49281,"src":"3035:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49287,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49521,"src":"2976:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2982:4:78","2994:10:78","3018:3:78","3028:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2976:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49293,"nodeType":"ExpressionStatement","src":"2976:64:78"}]},"documentation":{"id":49261,"nodeType":"StructuredDocumentation","src":"2666:74:78","text":"@notice Reheapify the heap when the collateral of a key has increased."},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReheapify","nameLocation":"2754:17:78","parameters":{"id":49270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49264,"mutability":"mutable","name":"self","nameLocation":"2786:4:78","nodeType":"VariableDeclaration","scope":49295,"src":"2772:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49263,"nodeType":"UserDefinedTypeName","pathNode":{"id":49262,"name":"MinPQ","nameLocations":["2772:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"2772:5:78"},"referencedDeclaration":48982,"src":"2772:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49267,"mutability":"mutable","name":"validators","nameLocation":"2813:10:78","nodeType":"VariableDeclaration","scope":49295,"src":"2792:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49266,"nodeType":"UserDefinedTypeName","pathNode":{"id":49265,"name":"ValidatorSet","nameLocations":["2792:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"2792:12:78"},"referencedDeclaration":50143,"src":"2792:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49269,"mutability":"mutable","name":"validator","nameLocation":"2833:9:78","nodeType":"VariableDeclaration","scope":49295,"src":"2825:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49268,"name":"address","nodeType":"ElementaryTypeName","src":"2825:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2771:72:78"},"returnParameters":{"id":49271,"nodeType":"ParameterList","parameters":[],"src":"2853:0:78"},"scope":49588,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49330,"nodeType":"FunctionDefinition","src":"3132:302:78","nodes":[],"body":{"id":49329,"nodeType":"Block","src":"3240:194:78","nodes":[],"statements":[{"assignments":[49308],"declarations":[{"constant":false,"id":49308,"mutability":"mutable","name":"pos","nameLocation":"3257:3:78","nodeType":"VariableDeclaration","scope":49329,"src":"3250:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49307,"name":"uint16","nodeType":"ElementaryTypeName","src":"3250:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49314,"initialValue":{"arguments":[{"id":49312,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49304,"src":"3289:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49309,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49299,"src":"3263:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3268:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"3263:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3274:14:78","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49701,"src":"3263:25:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":49313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3263:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3250:49:78"},{"assignments":[49316],"declarations":[{"constant":false,"id":49316,"mutability":"mutable","name":"val","nameLocation":"3317:3:78","nodeType":"VariableDeclaration","scope":49329,"src":"3309:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49315,"name":"uint256","nodeType":"ElementaryTypeName","src":"3309:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49321,"initialValue":{"arguments":[{"id":49319,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49304,"src":"3343:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49317,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49302,"src":"3323:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3334:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"3323:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3309:44:78"},{"expression":{"arguments":[{"id":49323,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49299,"src":"3375:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49324,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49302,"src":"3393:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49325,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49308,"src":"3410:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49326,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49316,"src":"3422:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49322,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49432,"src":"3363:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3369:4:78","3381:10:78","3405:3:78","3415:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3363:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49328,"nodeType":"ExpressionStatement","src":"3363:64:78"}]},"documentation":{"id":49296,"nodeType":"StructuredDocumentation","src":"3053:74:78","text":"@notice Reheapify the heap when the collateral of a key has decreased."},"implemented":true,"kind":"function","modifiers":[],"name":"decreaseReheapify","nameLocation":"3141:17:78","parameters":{"id":49305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49299,"mutability":"mutable","name":"self","nameLocation":"3173:4:78","nodeType":"VariableDeclaration","scope":49330,"src":"3159:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49298,"nodeType":"UserDefinedTypeName","pathNode":{"id":49297,"name":"MinPQ","nameLocations":["3159:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"3159:5:78"},"referencedDeclaration":48982,"src":"3159:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49302,"mutability":"mutable","name":"validators","nameLocation":"3200:10:78","nodeType":"VariableDeclaration","scope":49330,"src":"3179:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49301,"nodeType":"UserDefinedTypeName","pathNode":{"id":49300,"name":"ValidatorSet","nameLocations":["3179:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"3179:12:78"},"referencedDeclaration":50143,"src":"3179:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49304,"mutability":"mutable","name":"validator","nameLocation":"3220:9:78","nodeType":"VariableDeclaration","scope":49330,"src":"3212:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49303,"name":"address","nodeType":"ElementaryTypeName","src":"3212:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3158:72:78"},"returnParameters":{"id":49306,"nodeType":"ParameterList","parameters":[],"src":"3240:0:78"},"scope":49588,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49371,"nodeType":"FunctionDefinition","src":"3564:285:78","nodes":[],"body":{"id":49370,"nodeType":"Block","src":"3671:178:78","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":49344,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49334,"src":"3681:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3686:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"3681:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3692:15:78","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49645,"src":"3681:26:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":49349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3681:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49350,"nodeType":"ExpressionStatement","src":"3681:28:78"},{"assignments":[49352],"declarations":[{"constant":false,"id":49352,"mutability":"mutable","name":"addr","nameLocation":"3728:4:78","nodeType":"VariableDeclaration","scope":49370,"src":"3720:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49351,"name":"address","nodeType":"ElementaryTypeName","src":"3720:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49358,"initialValue":{"baseExpression":{"expression":{"expression":{"id":49353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49334,"src":"3735:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3740:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"3735:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3746:12:78","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"3735:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49357,"indexExpression":{"hexValue":"31","id":49356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3759:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3735:26:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3720:41:78"},{"assignments":[49360],"declarations":[{"constant":false,"id":49360,"mutability":"mutable","name":"power","nameLocation":"3779:5:78","nodeType":"VariableDeclaration","scope":49370,"src":"3771:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49359,"name":"uint256","nodeType":"ElementaryTypeName","src":"3771:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49365,"initialValue":{"arguments":[{"id":49363,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49352,"src":"3807:4:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49361,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49337,"src":"3787:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3798:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"3787:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3787:25:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3771:41:78"},{"expression":{"components":[{"id":49366,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49352,"src":"3830:4:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49367,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49360,"src":"3836:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49368,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3829:13:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":49343,"id":49369,"nodeType":"Return","src":"3822:20:78"}]},"documentation":{"id":49331,"nodeType":"StructuredDocumentation","src":"3440:119:78","text":"@notice Get the minimal value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"3573:3:78","parameters":{"id":49338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49334,"mutability":"mutable","name":"self","nameLocation":"3591:4:78","nodeType":"VariableDeclaration","scope":49371,"src":"3577:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49333,"nodeType":"UserDefinedTypeName","pathNode":{"id":49332,"name":"MinPQ","nameLocations":["3577:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"3577:5:78"},"referencedDeclaration":48982,"src":"3577:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49337,"mutability":"mutable","name":"validators","nameLocation":"3618:10:78","nodeType":"VariableDeclaration","scope":49371,"src":"3597:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49336,"nodeType":"UserDefinedTypeName","pathNode":{"id":49335,"name":"ValidatorSet","nameLocations":["3597:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"3597:12:78"},"referencedDeclaration":50143,"src":"3597:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"3576:53:78"},"returnParameters":{"id":49343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49340,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49371,"src":"3653:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49339,"name":"address","nodeType":"ElementaryTypeName","src":"3653:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49371,"src":"3662:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49341,"name":"uint256","nodeType":"ElementaryTypeName","src":"3662:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3652:18:78"},"scope":49588,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49432,"nodeType":"FunctionDefinition","src":"4101:608:78","nodes":[],"body":{"id":49431,"nodeType":"Block","src":"4204:505:78","nodes":[],"statements":[{"assignments":[49385],"declarations":[{"constant":false,"id":49385,"mutability":"mutable","name":"parentPos","nameLocation":"4221:9:78","nodeType":"VariableDeclaration","scope":49431,"src":"4214:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49384,"name":"uint16","nodeType":"ElementaryTypeName","src":"4214:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49386,"nodeType":"VariableDeclarationStatement","src":"4214:16:78"},{"assignments":[49388],"declarations":[{"constant":false,"id":49388,"mutability":"mutable","name":"parentPower","nameLocation":"4248:11:78","nodeType":"VariableDeclaration","scope":49431,"src":"4240:19:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49387,"name":"uint256","nodeType":"ElementaryTypeName","src":"4240:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49389,"nodeType":"VariableDeclarationStatement","src":"4240:19:78"},{"body":{"id":49429,"nodeType":"Block","src":"4286:417:78","statements":[{"expression":{"id":49397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49393,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49385,"src":"4336:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49394,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49379,"src":"4348:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":49395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4355:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4348:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4336:20:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49398,"nodeType":"ExpressionStatement","src":"4336:20:78"},{"expression":{"id":49406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49399,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49388,"src":"4370:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49403,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49377,"src":"4404:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49404,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49385,"src":"4416:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49374,"src":"4384:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4389:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"4384:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4395:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"4384:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4384:42:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4370:56:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49407,"nodeType":"ExpressionStatement","src":"4370:56:78"},{"condition":{"id":49412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4537:37:78","subExpression":{"arguments":[{"id":49409,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49388,"src":"4555:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49410,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49381,"src":"4568:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49408,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49587,"src":"4538:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":49411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4538:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49415,"nodeType":"IfStatement","src":"4533:81:78","trueBody":{"id":49414,"nodeType":"Block","src":"4576:38:78","statements":[{"id":49413,"nodeType":"Break","src":"4594:5:78"}]}},{"expression":{"arguments":[{"id":49421,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49385,"src":"4648:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49422,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49379,"src":"4659:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49416,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49374,"src":"4628:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4633:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"4628:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4639:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49852,"src":"4628:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4628:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49424,"nodeType":"ExpressionStatement","src":"4628:35:78"},{"expression":{"id":49427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49425,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49379,"src":"4677:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49426,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49385,"src":"4683:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4677:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49428,"nodeType":"ExpressionStatement","src":"4677:15:78"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49390,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49379,"src":"4277:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":49391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4283:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4277:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49430,"nodeType":"WhileStatement","src":"4270:433:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"swim","nameLocation":"4110:4:78","parameters":{"id":49382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49374,"mutability":"mutable","name":"self","nameLocation":"4129:4:78","nodeType":"VariableDeclaration","scope":49432,"src":"4115:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49373,"nodeType":"UserDefinedTypeName","pathNode":{"id":49372,"name":"MinPQ","nameLocations":["4115:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"4115:5:78"},"referencedDeclaration":48982,"src":"4115:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49377,"mutability":"mutable","name":"validators","nameLocation":"4156:10:78","nodeType":"VariableDeclaration","scope":49432,"src":"4135:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49376,"nodeType":"UserDefinedTypeName","pathNode":{"id":49375,"name":"ValidatorSet","nameLocations":["4135:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"4135:12:78"},"referencedDeclaration":50143,"src":"4135:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49379,"mutability":"mutable","name":"pos","nameLocation":"4175:3:78","nodeType":"VariableDeclaration","scope":49432,"src":"4168:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49378,"name":"uint16","nodeType":"ElementaryTypeName","src":"4168:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49381,"mutability":"mutable","name":"value","nameLocation":"4188:5:78","nodeType":"VariableDeclaration","scope":49432,"src":"4180:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49380,"name":"uint256","nodeType":"ElementaryTypeName","src":"4180:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4114:80:78"},"returnParameters":{"id":49383,"nodeType":"ParameterList","parameters":[],"src":"4204:0:78"},"scope":49588,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49521,"nodeType":"FunctionDefinition","src":"4715:986:78","nodes":[],"body":{"id":49520,"nodeType":"Block","src":"4818:883:78","nodes":[],"statements":[{"assignments":[49446],"declarations":[{"constant":false,"id":49446,"mutability":"mutable","name":"childPos","nameLocation":"4835:8:78","nodeType":"VariableDeclaration","scope":49520,"src":"4828:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49445,"name":"uint16","nodeType":"ElementaryTypeName","src":"4828:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49450,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49447,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49440,"src":"4846:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":49448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4852:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4846:7:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4828:25:78"},{"assignments":[49452],"declarations":[{"constant":false,"id":49452,"mutability":"mutable","name":"childPower","nameLocation":"4871:10:78","nodeType":"VariableDeclaration","scope":49520,"src":"4863:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49451,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49453,"nodeType":"VariableDeclarationStatement","src":"4863:18:78"},{"assignments":[49455],"declarations":[{"constant":false,"id":49455,"mutability":"mutable","name":"size","nameLocation":"4899:4:78","nodeType":"VariableDeclaration","scope":49520,"src":"4892:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49454,"name":"uint16","nodeType":"ElementaryTypeName","src":"4892:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49459,"initialValue":{"expression":{"expression":{"id":49456,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49435,"src":"4906:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4911:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"4906:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4917:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"4906:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4892:29:78"},{"body":{"id":49518,"nodeType":"Block","src":"4957:738:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49463,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49446,"src":"4975:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":49464,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49455,"src":"4986:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4975:15:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49489,"nodeType":"Block","src":"5297:87:78","statements":[{"expression":{"id":49487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49480,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49452,"src":"5315:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49484,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49438,"src":"5348:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49485,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49446,"src":"5360:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49481,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49435,"src":"5328:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5333:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"5328:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"5328:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:41:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5315:54:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49488,"nodeType":"ExpressionStatement","src":"5315:54:78"}]},"id":49490,"nodeType":"IfStatement","src":"4971:413:78","trueBody":{"id":49479,"nodeType":"Block","src":"4992:299:78","statements":[{"expression":{"id":49477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":49466,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49446,"src":"5065:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49467,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49452,"src":"5075:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49468,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5064:22:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49470,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49435,"src":"5133:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49471,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49438,"src":"5171:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49472,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49446,"src":"5209:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49473,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49446,"src":"5245:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":49474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5256:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5245:12:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":49469,"name":"smallerPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49573,"src":"5089:15:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$_t_uint16_$returns$_t_uint16_$_t_uint256_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint16) view returns (uint16,uint256)"}},"id":49476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5127:4:78","5159:10:78","5203:4:78","5239:4:78"],"names":["self","validators","pos1","pos2"],"nodeType":"FunctionCall","src":"5089:187:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"src":"5064:212:78","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49478,"nodeType":"ExpressionStatement","src":"5064:212:78"}]}},{"condition":{"id":49495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5500:36:78","subExpression":{"arguments":[{"id":49492,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49442,"src":"5518:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49493,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49452,"src":"5525:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49491,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49587,"src":"5501:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":49494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5501:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49498,"nodeType":"IfStatement","src":"5496:80:78","trueBody":{"id":49497,"nodeType":"Block","src":"5538:38:78","statements":[{"id":49496,"nodeType":"Break","src":"5556:5:78"}]}},{"expression":{"arguments":[{"id":49504,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49446,"src":"5610:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49505,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49440,"src":"5620:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49499,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49435,"src":"5590:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5595:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"5590:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5601:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49852,"src":"5590:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49611_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5590:34:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49507,"nodeType":"ExpressionStatement","src":"5590:34:78"},{"expression":{"id":49510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49508,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49440,"src":"5638:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49509,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49446,"src":"5644:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5638:14:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49511,"nodeType":"ExpressionStatement","src":"5638:14:78"},{"expression":{"id":49516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49512,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49446,"src":"5666:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49513,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49440,"src":"5677:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":49514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5683:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5677:7:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5666:18:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49517,"nodeType":"ExpressionStatement","src":"5666:18:78"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49460,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49446,"src":"4939:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":49461,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49455,"src":"4951:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4939:16:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49519,"nodeType":"WhileStatement","src":"4932:763:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sink","nameLocation":"4724:4:78","parameters":{"id":49443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49435,"mutability":"mutable","name":"self","nameLocation":"4743:4:78","nodeType":"VariableDeclaration","scope":49521,"src":"4729:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49434,"nodeType":"UserDefinedTypeName","pathNode":{"id":49433,"name":"MinPQ","nameLocations":["4729:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"4729:5:78"},"referencedDeclaration":48982,"src":"4729:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49438,"mutability":"mutable","name":"validators","nameLocation":"4770:10:78","nodeType":"VariableDeclaration","scope":49521,"src":"4749:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49437,"nodeType":"UserDefinedTypeName","pathNode":{"id":49436,"name":"ValidatorSet","nameLocations":["4749:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"4749:12:78"},"referencedDeclaration":50143,"src":"4749:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49440,"mutability":"mutable","name":"pos","nameLocation":"4789:3:78","nodeType":"VariableDeclaration","scope":49521,"src":"4782:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49439,"name":"uint16","nodeType":"ElementaryTypeName","src":"4782:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49442,"mutability":"mutable","name":"value","nameLocation":"4802:5:78","nodeType":"VariableDeclaration","scope":49521,"src":"4794:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49441,"name":"uint256","nodeType":"ElementaryTypeName","src":"4794:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4728:80:78"},"returnParameters":{"id":49444,"nodeType":"ParameterList","parameters":[],"src":"4818:0:78"},"scope":49588,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49573,"nodeType":"FunctionDefinition","src":"5763:443:78","nodes":[],"body":{"id":49572,"nodeType":"Block","src":"5945:261:78","nodes":[],"statements":[{"assignments":[49540],"declarations":[{"constant":false,"id":49540,"mutability":"mutable","name":"value1","nameLocation":"5963:6:78","nodeType":"VariableDeclaration","scope":49572,"src":"5955:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49539,"name":"uint256","nodeType":"ElementaryTypeName","src":"5955:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49547,"initialValue":{"arguments":[{"id":49544,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49528,"src":"5992:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49545,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49530,"src":"6004:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49541,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49525,"src":"5972:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5977:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"5972:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5983:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"5972:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5972:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5955:54:78"},{"assignments":[49549],"declarations":[{"constant":false,"id":49549,"mutability":"mutable","name":"value2","nameLocation":"6027:6:78","nodeType":"VariableDeclaration","scope":49572,"src":"6019:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49548,"name":"uint256","nodeType":"ElementaryTypeName","src":"6019:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49556,"initialValue":{"arguments":[{"id":49553,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49528,"src":"6056:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49554,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49532,"src":"6068:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49550,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49525,"src":"6036:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6041:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48981,"src":"6036:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage","typeString":"struct PQ storage ref"}},"id":49552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6047:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49755,"src":"6036:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49611_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49611_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6036:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6019:54:78"},{"condition":{"id":49561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6088:33:78","subExpression":{"arguments":[{"id":49558,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49540,"src":"6106:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49559,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49549,"src":"6114:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49557,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49587,"src":"6089:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":49560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6089:32:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49567,"nodeType":"IfStatement","src":"6084:85:78","trueBody":{"id":49566,"nodeType":"Block","src":"6123:46:78","statements":[{"expression":{"components":[{"id":49562,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49530,"src":"6145:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49563,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49540,"src":"6151:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49564,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6144:14:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":49538,"id":49565,"nodeType":"Return","src":"6137:21:78"}]}},{"expression":{"components":[{"id":49568,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49532,"src":"6186:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49569,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49549,"src":"6192:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49570,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6185:14:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":49538,"id":49571,"nodeType":"Return","src":"6178:21:78"}]},"documentation":{"id":49522,"nodeType":"StructuredDocumentation","src":"5707:51:78","text":"@notice Get the smaller index of pos1 and pos2."},"implemented":true,"kind":"function","modifiers":[],"name":"smallerPosition","nameLocation":"5772:15:78","parameters":{"id":49533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49525,"mutability":"mutable","name":"self","nameLocation":"5811:4:78","nodeType":"VariableDeclaration","scope":49573,"src":"5797:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49524,"nodeType":"UserDefinedTypeName","pathNode":{"id":49523,"name":"MinPQ","nameLocations":["5797:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"5797:5:78"},"referencedDeclaration":48982,"src":"5797:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49528,"mutability":"mutable","name":"validators","nameLocation":"5846:10:78","nodeType":"VariableDeclaration","scope":49573,"src":"5825:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49527,"nodeType":"UserDefinedTypeName","pathNode":{"id":49526,"name":"ValidatorSet","nameLocations":["5825:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5825:12:78"},"referencedDeclaration":50143,"src":"5825:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49530,"mutability":"mutable","name":"pos1","nameLocation":"5873:4:78","nodeType":"VariableDeclaration","scope":49573,"src":"5866:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49529,"name":"uint16","nodeType":"ElementaryTypeName","src":"5866:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49532,"mutability":"mutable","name":"pos2","nameLocation":"5894:4:78","nodeType":"VariableDeclaration","scope":49573,"src":"5887:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49531,"name":"uint16","nodeType":"ElementaryTypeName","src":"5887:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5787:117:78"},"returnParameters":{"id":49538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49573,"src":"5928:6:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49534,"name":"uint16","nodeType":"ElementaryTypeName","src":"5928:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49573,"src":"5936:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49536,"name":"uint256","nodeType":"ElementaryTypeName","src":"5936:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5927:17:78"},"scope":49588,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49587,"nodeType":"FunctionDefinition","src":"6212:110:78","nodes":[],"body":{"id":49586,"nodeType":"Block","src":"6291:31:78","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49582,"name":"v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49575,"src":"6308:2:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":49583,"name":"v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49577,"src":"6313:2:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6308:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49581,"id":49585,"nodeType":"Return","src":"6301:14:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"firstValueLarger","nameLocation":"6221:16:78","parameters":{"id":49578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49575,"mutability":"mutable","name":"v1","nameLocation":"6246:2:78","nodeType":"VariableDeclaration","scope":49587,"src":"6238:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49574,"name":"uint256","nodeType":"ElementaryTypeName","src":"6238:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49577,"mutability":"mutable","name":"v2","nameLocation":"6258:2:78","nodeType":"VariableDeclaration","scope":49587,"src":"6250:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49576,"name":"uint256","nodeType":"ElementaryTypeName","src":"6250:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6237:24:78"},"returnParameters":{"id":49581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49587,"src":"6285:4:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49579,"name":"bool","nodeType":"ElementaryTypeName","src":"6285:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6284:6:78"},"scope":49588,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibMinPQ","contractDependencies":[],"contractKind":"library","documentation":{"id":48983,"nodeType":"StructuredDocumentation","src":"249:45:78","text":"The min index priority queue for staking"},"fullyImplemented":true,"linearizedBaseContracts":[49588],"name":"LibMinPQ","nameLocation":"302:8:78","scope":49589,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":78} \ No newline at end of file diff --git a/.out/LibMultisignatureChecker.sol/MultisignatureChecker.json b/.out/LibMultisignatureChecker.sol/MultisignatureChecker.json index 798c77d8b..5dc3dce62 100644 --- a/.out/LibMultisignatureChecker.sol/MultisignatureChecker.json +++ b/.out/LibMultisignatureChecker.sol/MultisignatureChecker.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212207ee0a2ecef0324af9a4799cb314fef85d9f4832348c7179630b22706995d7d8564736f6c63430008130033","sourceMap":"201:2369:65:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212207ee0a2ecef0324af9a4799cb314fef85d9f4832348c7179630b22706995d7d8564736f6c63430008130033","sourceMap":"201:2369:65:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Multi-signature ECDSA verification helper.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibMultisignatureChecker.sol\":\"MultisignatureChecker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibMultisignatureChecker.sol":"MultisignatureChecker"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibMultisignatureChecker.sol","id":43292,"exportedSymbols":{"ECDSA":[33525],"MultisignatureChecker":[43291]},"nodeType":"SourceUnit","src":"46:2525:65","nodes":[{"id":43139,"nodeType":"PragmaDirective","src":"46:23:65","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43141,"nodeType":"ImportDirective","src":"71:74:65","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"openzeppelin-contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":43292,"sourceUnit":33526,"symbolAliases":[{"foreign":{"id":43140,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"79:5:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43291,"nodeType":"ContractDefinition","src":"201:2369:65","nodes":[{"id":43145,"nodeType":"VariableDeclaration","src":"237:44:65","nodes":[],"constant":true,"mutability":"constant","name":"SIGNATURE_LENGTH","nameLocation":"260:16:65","scope":43291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43143,"name":"uint8","nodeType":"ElementaryTypeName","src":"237:5:65","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3635","id":43144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"279:2:65","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"visibility":"private"},{"id":43152,"nodeType":"EnumDefinition","src":"288:172:65","nodes":[],"canonicalName":"MultisignatureChecker.Error","members":[{"id":43146,"name":"Nil","nameLocation":"309:3:65","nodeType":"EnumValue","src":"309:3:65"},{"id":43147,"name":"InvalidArrayLength","nameLocation":"322:18:65","nodeType":"EnumValue","src":"322:18:65"},{"id":43148,"name":"EmptySignatures","nameLocation":"350:15:65","nodeType":"EnumValue","src":"350:15:65"},{"id":43149,"name":"InvalidSignatory","nameLocation":"375:16:65","nodeType":"EnumValue","src":"375:16:65"},{"id":43150,"name":"InvalidSignature","nameLocation":"401:16:65","nodeType":"EnumValue","src":"401:16:65"},{"id":43151,"name":"WeightsSumLessThanThreshold","nameLocation":"427:27:65","nodeType":"EnumValue","src":"427:27:65"}],"name":"Error","nameLocation":"293:5:65"},{"id":43290,"nodeType":"FunctionDefinition","src":"1239:1329:65","nodes":[],"body":{"id":43289,"nodeType":"Block","src":"1476:1092:65","nodes":[],"statements":[{"assignments":[43175],"declarations":[{"constant":false,"id":43175,"mutability":"mutable","name":"valid","nameLocation":"1491:5:65","nodeType":"VariableDeclaration","scope":43289,"src":"1486:10:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43174,"name":"bool","nodeType":"ElementaryTypeName","src":"1486:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43177,"initialValue":{"hexValue":"74727565","id":43176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1499:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"1486:17:65"},{"assignments":[43179],"declarations":[{"constant":false,"id":43179,"mutability":"mutable","name":"weight","nameLocation":"1521:6:65","nodeType":"VariableDeclaration","scope":43289,"src":"1513:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43178,"name":"uint256","nodeType":"ElementaryTypeName","src":"1513:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43180,"nodeType":"VariableDeclarationStatement","src":"1513:14:65"},{"assignments":[43182],"declarations":[{"constant":false,"id":43182,"mutability":"mutable","name":"signaturesNumber","nameLocation":"1546:16:65","nodeType":"VariableDeclaration","scope":43289,"src":"1538:24:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43181,"name":"uint256","nodeType":"ElementaryTypeName","src":"1538:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43185,"initialValue":{"expression":{"id":43183,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43166,"src":"1565:10:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1576:6:65","memberName":"length","nodeType":"MemberAccess","src":"1565:17:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1538:44:65"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43186,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43182,"src":"1596:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1616:1:65","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1596:21:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43196,"nodeType":"IfStatement","src":"1592:90:65","trueBody":{"id":43195,"nodeType":"Block","src":"1619:63:65","statements":[{"expression":{"components":[{"id":43190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1641:6:65","subExpression":{"id":43189,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"1642:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43191,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"1649:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1655:15:65","memberName":"EmptySignatures","nodeType":"MemberAccess","referencedDeclaration":43148,"src":"1649:21:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43193,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1640:31:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43194,"nodeType":"Return","src":"1633:38:65"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":43205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43197,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43182,"src":"1696:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":43198,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43156,"src":"1716:11:65","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1728:6:65","memberName":"length","nodeType":"MemberAccess","src":"1716:18:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:38:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43201,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43182,"src":"1738:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":43202,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43159,"src":"1758:7:65","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":43203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1766:6:65","memberName":"length","nodeType":"MemberAccess","src":"1758:14:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1738:34:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1696:76:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43213,"nodeType":"IfStatement","src":"1692:148:65","trueBody":{"id":43212,"nodeType":"Block","src":"1774:66:65","statements":[{"expression":{"components":[{"id":43207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1796:6:65","subExpression":{"id":43206,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"1797:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43208,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"1804:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1810:18:65","memberName":"InvalidArrayLength","nodeType":"MemberAccess","referencedDeclaration":43147,"src":"1804:24:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43210,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1795:34:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43211,"nodeType":"Return","src":"1788:41:65"}]}},{"body":{"id":43271,"nodeType":"Block","src":"1890:528:65","statements":[{"assignments":[43221,43224,null],"declarations":[{"constant":false,"id":43221,"mutability":"mutable","name":"recovered","nameLocation":"1913:9:65","nodeType":"VariableDeclaration","scope":43271,"src":"1905:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43220,"name":"address","nodeType":"ElementaryTypeName","src":"1905:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43224,"mutability":"mutable","name":"ecdsaErr","nameLocation":"1943:8:65","nodeType":"VariableDeclaration","scope":43271,"src":"1924:27:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":43223,"nodeType":"UserDefinedTypeName","pathNode":{"id":43222,"name":"ECDSA.RecoverError","nameLocations":["1924:5:65","1930:12:65"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"1924:18:65"},"referencedDeclaration":33122,"src":"1924:18:65","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},null],"id":43232,"initialValue":{"arguments":[{"id":43227,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43163,"src":"1998:4:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":43228,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43166,"src":"2031:10:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43230,"indexExpression":{"id":43229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43215,"src":"2042:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2031:13:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":43225,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"1957:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1963:10:65","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":33236,"src":"1957:16:65","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":43231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1992:4:65","2020:9:65"],"names":["hash","signature"],"nodeType":"FunctionCall","src":"1957:102:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"1904:155:65"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"id":43237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43233,"name":"ecdsaErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43224,"src":"2077:8:65","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":43234,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"2089:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2095:12:65","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":33122,"src":"2089:18:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":43236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2108:7:65","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":33118,"src":"2089:26:65","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"src":"2077:38:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43245,"nodeType":"IfStatement","src":"2073:116:65","trueBody":{"id":43244,"nodeType":"Block","src":"2117:72:65","statements":[{"expression":{"components":[{"id":43239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2143:6:65","subExpression":{"id":43238,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"2144:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43240,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"2151:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2157:16:65","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":43150,"src":"2151:22:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43242,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2142:32:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43243,"nodeType":"Return","src":"2135:39:65"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":43250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43246,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43221,"src":"2206:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":43247,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43156,"src":"2219:11:65","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43249,"indexExpression":{"id":43248,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43215,"src":"2231:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2219:14:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2206:27:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43258,"nodeType":"IfStatement","src":"2202:105:65","trueBody":{"id":43257,"nodeType":"Block","src":"2235:72:65","statements":[{"expression":{"components":[{"id":43252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2261:6:65","subExpression":{"id":43251,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"2262:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43253,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"2269:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2275:16:65","memberName":"InvalidSignatory","nodeType":"MemberAccess","referencedDeclaration":43149,"src":"2269:22:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43255,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2260:32:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43256,"nodeType":"Return","src":"2253:39:65"}]}},{"expression":{"id":43265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43259,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43179,"src":"2320:6:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43260,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43179,"src":"2329:6:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"id":43261,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43159,"src":"2338:7:65","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":43263,"indexExpression":{"id":43262,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43215,"src":"2346:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2338:10:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2329:19:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2320:28:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43266,"nodeType":"ExpressionStatement","src":"2320:28:65"},{"id":43270,"nodeType":"UncheckedBlock","src":"2362:46:65","statements":[{"expression":{"id":43268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2390:3:65","subExpression":{"id":43267,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43215,"src":"2392:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43269,"nodeType":"ExpressionStatement","src":"2390:3:65"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43217,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43215,"src":"1866:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43218,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43182,"src":"1870:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1866:20:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43272,"initializationExpression":{"assignments":[43215],"declarations":[{"constant":false,"id":43215,"mutability":"mutable","name":"i","nameLocation":"1863:1:65","nodeType":"VariableDeclaration","scope":43272,"src":"1855:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43214,"name":"uint256","nodeType":"ElementaryTypeName","src":"1855:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43216,"nodeType":"VariableDeclarationStatement","src":"1855:9:65"},"nodeType":"ForStatement","src":"1850:568:65"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43273,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43179,"src":"2431:6:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":43274,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43161,"src":"2441:9:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2431:19:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43282,"nodeType":"IfStatement","src":"2427:75:65","trueBody":{"id":43281,"nodeType":"Block","src":"2452:50:65","statements":[{"expression":{"components":[{"id":43276,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"2474:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43277,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"2481:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2487:3:65","memberName":"Nil","nodeType":"MemberAccess","referencedDeclaration":43146,"src":"2481:9:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43279,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2473:18:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43280,"nodeType":"Return","src":"2466:25:65"}]}},{"expression":{"components":[{"id":43284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2519:6:65","subExpression":{"id":43283,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"2520:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43285,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"2527:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2533:27:65","memberName":"WeightsSumLessThanThreshold","nodeType":"MemberAccess","referencedDeclaration":43151,"src":"2527:33:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43287,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2518:43:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43288,"nodeType":"Return","src":"2511:50:65"}]},"documentation":{"id":43153,"nodeType":"StructuredDocumentation","src":"466:768:65","text":" @notice Checks if a weighted multi-signature is valid for a given message hash, set of signatories, set of weights, and set of signatures.\n @dev Signatures are validated using `ECDSA.recover`.\n The multi-signature fails if the sum of the signatory weights is less than the threshold.\n Signatories in `signatories` and signatures in `signatures` must have the same order.\n @param signatories The addresses of the signatories.\n @param weights The weights of the signatories.\n @param threshold The number that must be reach to consider `signatures` valid.\n @param hash of the verified data.\n @param signatures Packed signatures. Each signature is in `({bytes32 r}{bytes32 s}{uint8 v})` format."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidWeightedMultiSignature","nameLocation":"1248:29:65","parameters":{"id":43167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43156,"mutability":"mutable","name":"signatories","nameLocation":"1304:11:65","nodeType":"VariableDeclaration","scope":43290,"src":"1287:28:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43154,"name":"address","nodeType":"ElementaryTypeName","src":"1287:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43155,"nodeType":"ArrayTypeName","src":"1287:9:65","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":43159,"mutability":"mutable","name":"weights","nameLocation":"1342:7:65","nodeType":"VariableDeclaration","scope":43290,"src":"1325:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43157,"name":"uint256","nodeType":"ElementaryTypeName","src":"1325:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43158,"nodeType":"ArrayTypeName","src":"1325:9:65","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":43161,"mutability":"mutable","name":"threshold","nameLocation":"1367:9:65","nodeType":"VariableDeclaration","scope":43290,"src":"1359:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43160,"name":"uint256","nodeType":"ElementaryTypeName","src":"1359:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43163,"mutability":"mutable","name":"hash","nameLocation":"1394:4:65","nodeType":"VariableDeclaration","scope":43290,"src":"1386:12:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1386:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43166,"mutability":"mutable","name":"signatures","nameLocation":"1423:10:65","nodeType":"VariableDeclaration","scope":43290,"src":"1408:25:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":43164,"name":"bytes","nodeType":"ElementaryTypeName","src":"1408:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":43165,"nodeType":"ArrayTypeName","src":"1408:7:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1277:162:65"},"returnParameters":{"id":43173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43290,"src":"1463:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43168,"name":"bool","nodeType":"ElementaryTypeName","src":"1463:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43290,"src":"1469:5:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"},"typeName":{"id":43171,"nodeType":"UserDefinedTypeName","pathNode":{"id":43170,"name":"Error","nameLocations":["1469:5:65"],"nodeType":"IdentifierPath","referencedDeclaration":43152,"src":"1469:5:65"},"referencedDeclaration":43152,"src":"1469:5:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}},"visibility":"internal"}],"src":"1462:13:65"},"scope":43291,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"MultisignatureChecker","contractDependencies":[],"contractKind":"library","documentation":{"id":43142,"nodeType":"StructuredDocumentation","src":"147:54:65","text":"@title Multi-signature ECDSA verification helper."},"fullyImplemented":true,"linearizedBaseContracts":[43291],"name":"MultisignatureChecker","nameLocation":"209:21:65","scope":43292,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":65} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212207ee0a2ecef0324af9a4799cb314fef85d9f4832348c7179630b22706995d7d8564736f6c63430008130033","sourceMap":"201:2369:65:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212207ee0a2ecef0324af9a4799cb314fef85d9f4832348c7179630b22706995d7d8564736f6c63430008130033","sourceMap":"201:2369:65:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Multi-signature ECDSA verification helper.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibMultisignatureChecker.sol\":\"MultisignatureChecker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibMultisignatureChecker.sol":"MultisignatureChecker"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibMultisignatureChecker.sol","id":43236,"exportedSymbols":{"ECDSA":[33525],"MultisignatureChecker":[43235]},"nodeType":"SourceUnit","src":"46:2525:65","nodes":[{"id":43083,"nodeType":"PragmaDirective","src":"46:23:65","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43085,"nodeType":"ImportDirective","src":"71:74:65","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"openzeppelin-contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":43236,"sourceUnit":33526,"symbolAliases":[{"foreign":{"id":43084,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"79:5:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43235,"nodeType":"ContractDefinition","src":"201:2369:65","nodes":[{"id":43089,"nodeType":"VariableDeclaration","src":"237:44:65","nodes":[],"constant":true,"mutability":"constant","name":"SIGNATURE_LENGTH","nameLocation":"260:16:65","scope":43235,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43087,"name":"uint8","nodeType":"ElementaryTypeName","src":"237:5:65","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3635","id":43088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"279:2:65","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"visibility":"private"},{"id":43096,"nodeType":"EnumDefinition","src":"288:172:65","nodes":[],"canonicalName":"MultisignatureChecker.Error","members":[{"id":43090,"name":"Nil","nameLocation":"309:3:65","nodeType":"EnumValue","src":"309:3:65"},{"id":43091,"name":"InvalidArrayLength","nameLocation":"322:18:65","nodeType":"EnumValue","src":"322:18:65"},{"id":43092,"name":"EmptySignatures","nameLocation":"350:15:65","nodeType":"EnumValue","src":"350:15:65"},{"id":43093,"name":"InvalidSignatory","nameLocation":"375:16:65","nodeType":"EnumValue","src":"375:16:65"},{"id":43094,"name":"InvalidSignature","nameLocation":"401:16:65","nodeType":"EnumValue","src":"401:16:65"},{"id":43095,"name":"WeightsSumLessThanThreshold","nameLocation":"427:27:65","nodeType":"EnumValue","src":"427:27:65"}],"name":"Error","nameLocation":"293:5:65"},{"id":43234,"nodeType":"FunctionDefinition","src":"1239:1329:65","nodes":[],"body":{"id":43233,"nodeType":"Block","src":"1476:1092:65","nodes":[],"statements":[{"assignments":[43119],"declarations":[{"constant":false,"id":43119,"mutability":"mutable","name":"valid","nameLocation":"1491:5:65","nodeType":"VariableDeclaration","scope":43233,"src":"1486:10:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43118,"name":"bool","nodeType":"ElementaryTypeName","src":"1486:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43121,"initialValue":{"hexValue":"74727565","id":43120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1499:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"1486:17:65"},{"assignments":[43123],"declarations":[{"constant":false,"id":43123,"mutability":"mutable","name":"weight","nameLocation":"1521:6:65","nodeType":"VariableDeclaration","scope":43233,"src":"1513:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1513:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43124,"nodeType":"VariableDeclarationStatement","src":"1513:14:65"},{"assignments":[43126],"declarations":[{"constant":false,"id":43126,"mutability":"mutable","name":"signaturesNumber","nameLocation":"1546:16:65","nodeType":"VariableDeclaration","scope":43233,"src":"1538:24:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43125,"name":"uint256","nodeType":"ElementaryTypeName","src":"1538:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43129,"initialValue":{"expression":{"id":43127,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43110,"src":"1565:10:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1576:6:65","memberName":"length","nodeType":"MemberAccess","src":"1565:17:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1538:44:65"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43130,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43126,"src":"1596:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1616:1:65","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1596:21:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43140,"nodeType":"IfStatement","src":"1592:90:65","trueBody":{"id":43139,"nodeType":"Block","src":"1619:63:65","statements":[{"expression":{"components":[{"id":43134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1641:6:65","subExpression":{"id":43133,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43119,"src":"1642:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43135,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43096,"src":"1649:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43096_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1655:15:65","memberName":"EmptySignatures","nodeType":"MemberAccess","referencedDeclaration":43092,"src":"1649:21:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"}}],"id":43137,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1640:31:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43096_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43117,"id":43138,"nodeType":"Return","src":"1633:38:65"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":43149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43141,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43126,"src":"1696:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":43142,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43100,"src":"1716:11:65","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1728:6:65","memberName":"length","nodeType":"MemberAccess","src":"1716:18:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:38:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43145,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43126,"src":"1738:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":43146,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43103,"src":"1758:7:65","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":43147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1766:6:65","memberName":"length","nodeType":"MemberAccess","src":"1758:14:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1738:34:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1696:76:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43157,"nodeType":"IfStatement","src":"1692:148:65","trueBody":{"id":43156,"nodeType":"Block","src":"1774:66:65","statements":[{"expression":{"components":[{"id":43151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1796:6:65","subExpression":{"id":43150,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43119,"src":"1797:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43152,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43096,"src":"1804:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43096_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1810:18:65","memberName":"InvalidArrayLength","nodeType":"MemberAccess","referencedDeclaration":43091,"src":"1804:24:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"}}],"id":43154,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1795:34:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43096_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43117,"id":43155,"nodeType":"Return","src":"1788:41:65"}]}},{"body":{"id":43215,"nodeType":"Block","src":"1890:528:65","statements":[{"assignments":[43165,43168,null],"declarations":[{"constant":false,"id":43165,"mutability":"mutable","name":"recovered","nameLocation":"1913:9:65","nodeType":"VariableDeclaration","scope":43215,"src":"1905:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43164,"name":"address","nodeType":"ElementaryTypeName","src":"1905:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43168,"mutability":"mutable","name":"ecdsaErr","nameLocation":"1943:8:65","nodeType":"VariableDeclaration","scope":43215,"src":"1924:27:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":43167,"nodeType":"UserDefinedTypeName","pathNode":{"id":43166,"name":"ECDSA.RecoverError","nameLocations":["1924:5:65","1930:12:65"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"1924:18:65"},"referencedDeclaration":33122,"src":"1924:18:65","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},null],"id":43176,"initialValue":{"arguments":[{"id":43171,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43107,"src":"1998:4:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":43172,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43110,"src":"2031:10:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43174,"indexExpression":{"id":43173,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43159,"src":"2042:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2031:13:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":43169,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"1957:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1963:10:65","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":33236,"src":"1957:16:65","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":43175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1992:4:65","2020:9:65"],"names":["hash","signature"],"nodeType":"FunctionCall","src":"1957:102:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"1904:155:65"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"id":43181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43177,"name":"ecdsaErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43168,"src":"2077:8:65","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":43178,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"2089:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2095:12:65","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":33122,"src":"2089:18:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":43180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2108:7:65","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":33118,"src":"2089:26:65","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"src":"2077:38:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43189,"nodeType":"IfStatement","src":"2073:116:65","trueBody":{"id":43188,"nodeType":"Block","src":"2117:72:65","statements":[{"expression":{"components":[{"id":43183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2143:6:65","subExpression":{"id":43182,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43119,"src":"2144:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43184,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43096,"src":"2151:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43096_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2157:16:65","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":43094,"src":"2151:22:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"}}],"id":43186,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2142:32:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43096_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43117,"id":43187,"nodeType":"Return","src":"2135:39:65"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":43194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43190,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43165,"src":"2206:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":43191,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43100,"src":"2219:11:65","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43193,"indexExpression":{"id":43192,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43159,"src":"2231:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2219:14:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2206:27:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43202,"nodeType":"IfStatement","src":"2202:105:65","trueBody":{"id":43201,"nodeType":"Block","src":"2235:72:65","statements":[{"expression":{"components":[{"id":43196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2261:6:65","subExpression":{"id":43195,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43119,"src":"2262:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43197,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43096,"src":"2269:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43096_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2275:16:65","memberName":"InvalidSignatory","nodeType":"MemberAccess","referencedDeclaration":43093,"src":"2269:22:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"}}],"id":43199,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2260:32:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43096_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43117,"id":43200,"nodeType":"Return","src":"2253:39:65"}]}},{"expression":{"id":43209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43203,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43123,"src":"2320:6:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43204,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43123,"src":"2329:6:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"id":43205,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43103,"src":"2338:7:65","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":43207,"indexExpression":{"id":43206,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43159,"src":"2346:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2338:10:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2329:19:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2320:28:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43210,"nodeType":"ExpressionStatement","src":"2320:28:65"},{"id":43214,"nodeType":"UncheckedBlock","src":"2362:46:65","statements":[{"expression":{"id":43212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2390:3:65","subExpression":{"id":43211,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43159,"src":"2392:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43213,"nodeType":"ExpressionStatement","src":"2390:3:65"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43161,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43159,"src":"1866:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43162,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43126,"src":"1870:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1866:20:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43216,"initializationExpression":{"assignments":[43159],"declarations":[{"constant":false,"id":43159,"mutability":"mutable","name":"i","nameLocation":"1863:1:65","nodeType":"VariableDeclaration","scope":43216,"src":"1855:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43158,"name":"uint256","nodeType":"ElementaryTypeName","src":"1855:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43160,"nodeType":"VariableDeclarationStatement","src":"1855:9:65"},"nodeType":"ForStatement","src":"1850:568:65"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43217,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43123,"src":"2431:6:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":43218,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43105,"src":"2441:9:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2431:19:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43226,"nodeType":"IfStatement","src":"2427:75:65","trueBody":{"id":43225,"nodeType":"Block","src":"2452:50:65","statements":[{"expression":{"components":[{"id":43220,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43119,"src":"2474:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43221,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43096,"src":"2481:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43096_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2487:3:65","memberName":"Nil","nodeType":"MemberAccess","referencedDeclaration":43090,"src":"2481:9:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"}}],"id":43223,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2473:18:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43096_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43117,"id":43224,"nodeType":"Return","src":"2466:25:65"}]}},{"expression":{"components":[{"id":43228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2519:6:65","subExpression":{"id":43227,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43119,"src":"2520:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43229,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43096,"src":"2527:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43096_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2533:27:65","memberName":"WeightsSumLessThanThreshold","nodeType":"MemberAccess","referencedDeclaration":43095,"src":"2527:33:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"}}],"id":43231,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2518:43:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43096_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43117,"id":43232,"nodeType":"Return","src":"2511:50:65"}]},"documentation":{"id":43097,"nodeType":"StructuredDocumentation","src":"466:768:65","text":" @notice Checks if a weighted multi-signature is valid for a given message hash, set of signatories, set of weights, and set of signatures.\n @dev Signatures are validated using `ECDSA.recover`.\n The multi-signature fails if the sum of the signatory weights is less than the threshold.\n Signatories in `signatories` and signatures in `signatures` must have the same order.\n @param signatories The addresses of the signatories.\n @param weights The weights of the signatories.\n @param threshold The number that must be reach to consider `signatures` valid.\n @param hash of the verified data.\n @param signatures Packed signatures. Each signature is in `({bytes32 r}{bytes32 s}{uint8 v})` format."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidWeightedMultiSignature","nameLocation":"1248:29:65","parameters":{"id":43111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43100,"mutability":"mutable","name":"signatories","nameLocation":"1304:11:65","nodeType":"VariableDeclaration","scope":43234,"src":"1287:28:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43098,"name":"address","nodeType":"ElementaryTypeName","src":"1287:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43099,"nodeType":"ArrayTypeName","src":"1287:9:65","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":43103,"mutability":"mutable","name":"weights","nameLocation":"1342:7:65","nodeType":"VariableDeclaration","scope":43234,"src":"1325:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43101,"name":"uint256","nodeType":"ElementaryTypeName","src":"1325:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43102,"nodeType":"ArrayTypeName","src":"1325:9:65","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":43105,"mutability":"mutable","name":"threshold","nameLocation":"1367:9:65","nodeType":"VariableDeclaration","scope":43234,"src":"1359:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43104,"name":"uint256","nodeType":"ElementaryTypeName","src":"1359:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43107,"mutability":"mutable","name":"hash","nameLocation":"1394:4:65","nodeType":"VariableDeclaration","scope":43234,"src":"1386:12:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43106,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1386:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43110,"mutability":"mutable","name":"signatures","nameLocation":"1423:10:65","nodeType":"VariableDeclaration","scope":43234,"src":"1408:25:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":43108,"name":"bytes","nodeType":"ElementaryTypeName","src":"1408:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":43109,"nodeType":"ArrayTypeName","src":"1408:7:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1277:162:65"},"returnParameters":{"id":43117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43234,"src":"1463:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43112,"name":"bool","nodeType":"ElementaryTypeName","src":"1463:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43234,"src":"1469:5:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"},"typeName":{"id":43115,"nodeType":"UserDefinedTypeName","pathNode":{"id":43114,"name":"Error","nameLocations":["1469:5:65"],"nodeType":"IdentifierPath","referencedDeclaration":43096,"src":"1469:5:65"},"referencedDeclaration":43096,"src":"1469:5:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"}},"visibility":"internal"}],"src":"1462:13:65"},"scope":43235,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"MultisignatureChecker","contractDependencies":[],"contractKind":"library","documentation":{"id":43086,"nodeType":"StructuredDocumentation","src":"147:54:65","text":"@title Multi-signature ECDSA verification helper."},"fullyImplemented":true,"linearizedBaseContracts":[43235],"name":"MultisignatureChecker","nameLocation":"209:21:65","scope":43236,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":65} \ No newline at end of file diff --git a/.out/LibPQ.sol/LibPQ.json b/.out/LibPQ.sol/LibPQ.json index 494be26bb..f9ed4483c 100644 --- a/.out/LibPQ.sol/LibPQ.json +++ b/.out/LibPQ.sol/LibPQ.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220b85e80d5b7746711e519a4004c6fe280c0ad58f39a03e27a1c7b16bde1c6099a64736f6c63430008130033","sourceMap":"802:1913:79:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220b85e80d5b7746711e519a4004c6fe280c0ad58f39a03e27a1c7b16bde1c6099a64736f6c63430008130033","sourceMap":"802:1913:79:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibPQ.sol\":\"LibPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibPQ.sol":"LibPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibPQ.sol","id":49901,"exportedSymbols":{"LibPQ":[49900],"LibValidatorSet":[45293],"PQ":[49658],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:2669:79","nodes":[{"id":49637,"nodeType":"PragmaDirective","src":"46:23:79","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49639,"nodeType":"ImportDirective","src":"71:50:79","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":49901,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":49638,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"79:15:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49641,"nodeType":"ImportDirective","src":"122:54:79","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":49901,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":49640,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"130:12:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49644,"nodeType":"ImportDirective","src":"177:76:79","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":49901,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":49642,"name":"PQEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37496,"src":"185:7:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49643,"name":"PQDoesNotContainAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37494,"src":"194:23:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49658,"nodeType":"StructDefinition","src":"431:369:79","nodes":[],"canonicalName":"PQ","members":[{"constant":false,"id":49647,"mutability":"mutable","name":"size","nameLocation":"493:4:79","nodeType":"VariableDeclaration","scope":49658,"src":"486:11:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49646,"name":"uint16","nodeType":"ElementaryTypeName","src":"486:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49652,"mutability":"mutable","name":"addressToPos","nameLocation":"650:12:79","nodeType":"VariableDeclaration","scope":49658,"src":"623:39:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"},"typeName":{"id":49651,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49649,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"623:26:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49650,"name":"uint16","nodeType":"ElementaryTypeName","src":"642:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}},"visibility":"internal"},{"constant":false,"id":49657,"mutability":"mutable","name":"posToAddress","nameLocation":"785:12:79","nodeType":"VariableDeclaration","scope":49658,"src":"758:39:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"},"typeName":{"id":49656,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49654,"name":"uint16","nodeType":"ElementaryTypeName","src":"766:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"758:26:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49655,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"}],"name":"PQ","nameLocation":"438:2:79","scope":49901,"visibility":"public"},{"id":49900,"nodeType":"ContractDefinition","src":"802:1913:79","nodes":[{"id":49662,"nodeType":"UsingForDirective","src":"822:39:79","nodes":[],"global":false,"libraryName":{"id":49659,"name":"LibValidatorSet","nameLocations":["828:15:79"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"828:15:79"},"typeName":{"id":49661,"nodeType":"UserDefinedTypeName","pathNode":{"id":49660,"name":"ValidatorSet","nameLocations":["848:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"848:12:79"},"referencedDeclaration":50190,"src":"848:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":49676,"nodeType":"FunctionDefinition","src":"867:101:79","nodes":[],"body":{"id":49675,"nodeType":"Block","src":"930:38:79","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49670,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49665,"src":"947:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"952:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"947:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"960:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"947:14:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49669,"id":49674,"nodeType":"Return","src":"940:21:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"876:7:79","parameters":{"id":49666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49665,"mutability":"mutable","name":"self","nameLocation":"895:4:79","nodeType":"VariableDeclaration","scope":49676,"src":"884:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49664,"nodeType":"UserDefinedTypeName","pathNode":{"id":49663,"name":"PQ","nameLocations":["884:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"884:2:79"},"referencedDeclaration":49658,"src":"884:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"883:17:79"},"returnParameters":{"id":49669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49676,"src":"924:4:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49667,"name":"bool","nodeType":"ElementaryTypeName","src":"924:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"923:6:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49692,"nodeType":"FunctionDefinition","src":"974:133:79","nodes":[],"body":{"id":49691,"nodeType":"Block","src":"1030:77:79","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49682,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49679,"src":"1044:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1049:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1044:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1057:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1044:14:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49690,"nodeType":"IfStatement","src":"1040:61:79","trueBody":{"id":49689,"nodeType":"Block","src":"1060:41:79","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49686,"name":"PQEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37496,"src":"1081:7:79","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1081:9:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49688,"nodeType":"RevertStatement","src":"1074:16:79"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"requireNotEmpty","nameLocation":"983:15:79","parameters":{"id":49680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49679,"mutability":"mutable","name":"self","nameLocation":"1010:4:79","nodeType":"VariableDeclaration","scope":49692,"src":"999:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49678,"nodeType":"UserDefinedTypeName","pathNode":{"id":49677,"name":"PQ","nameLocations":["999:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"999:2:79"},"referencedDeclaration":49658,"src":"999:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"998:17:79"},"returnParameters":{"id":49681,"nodeType":"ParameterList","parameters":[],"src":"1030:0:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49704,"nodeType":"FunctionDefinition","src":"1113:98:79","nodes":[],"body":{"id":49703,"nodeType":"Block","src":"1178:33:79","nodes":[],"statements":[{"expression":{"expression":{"id":49700,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49695,"src":"1195:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1200:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1195:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":49699,"id":49702,"nodeType":"Return","src":"1188:16:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"1122:7:79","parameters":{"id":49696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49695,"mutability":"mutable","name":"self","nameLocation":"1141:4:79","nodeType":"VariableDeclaration","scope":49704,"src":"1130:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49694,"nodeType":"UserDefinedTypeName","pathNode":{"id":49693,"name":"PQ","nameLocations":["1130:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1130:2:79"},"referencedDeclaration":49658,"src":"1130:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"1129:17:79"},"returnParameters":{"id":49699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49704,"src":"1170:6:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49697,"name":"uint16","nodeType":"ElementaryTypeName","src":"1170:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1169:8:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49722,"nodeType":"FunctionDefinition","src":"1217:140:79","nodes":[],"body":{"id":49721,"nodeType":"Block","src":"1300:57:79","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":49714,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49707,"src":"1317:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1322:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"1317:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49717,"indexExpression":{"id":49716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49709,"src":"1335:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1317:28:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":49718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1349:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1317:33:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49713,"id":49720,"nodeType":"Return","src":"1310:40:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"1226:8:79","parameters":{"id":49710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49707,"mutability":"mutable","name":"self","nameLocation":"1246:4:79","nodeType":"VariableDeclaration","scope":49722,"src":"1235:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49706,"nodeType":"UserDefinedTypeName","pathNode":{"id":49705,"name":"PQ","nameLocations":["1235:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1235:2:79"},"referencedDeclaration":49658,"src":"1235:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49709,"mutability":"mutable","name":"validator","nameLocation":"1260:9:79","nodeType":"VariableDeclaration","scope":49722,"src":"1252:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49708,"name":"address","nodeType":"ElementaryTypeName","src":"1252:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1234:36:79"},"returnParameters":{"id":49713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49722,"src":"1294:4:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49711,"name":"bool","nodeType":"ElementaryTypeName","src":"1294:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1293:6:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49748,"nodeType":"FunctionDefinition","src":"1363:226:79","nodes":[],"body":{"id":49747,"nodeType":"Block","src":"1458:131:79","nodes":[],"statements":[{"expression":{"id":49737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49732,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49730,"src":"1468:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":49733,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49725,"src":"1474:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1479:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"1474:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49736,"indexExpression":{"id":49735,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49727,"src":"1492:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1474:28:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1468:34:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49738,"nodeType":"ExpressionStatement","src":"1468:34:79"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49739,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49730,"src":"1516:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1523:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1516:8:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49746,"nodeType":"IfStatement","src":"1512:71:79","trueBody":{"id":49745,"nodeType":"Block","src":"1526:57:79","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49742,"name":"PQDoesNotContainAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37494,"src":"1547:23:79","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1547:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49744,"nodeType":"RevertStatement","src":"1540:32:79"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPosOrRevert","nameLocation":"1372:14:79","parameters":{"id":49728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49725,"mutability":"mutable","name":"self","nameLocation":"1398:4:79","nodeType":"VariableDeclaration","scope":49748,"src":"1387:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49724,"nodeType":"UserDefinedTypeName","pathNode":{"id":49723,"name":"PQ","nameLocations":["1387:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1387:2:79"},"referencedDeclaration":49658,"src":"1387:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49727,"mutability":"mutable","name":"validator","nameLocation":"1412:9:79","nodeType":"VariableDeclaration","scope":49748,"src":"1404:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49726,"name":"address","nodeType":"ElementaryTypeName","src":"1404:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1386:36:79"},"returnParameters":{"id":49731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49730,"mutability":"mutable","name":"pos","nameLocation":"1453:3:79","nodeType":"VariableDeclaration","scope":49748,"src":"1446:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49729,"name":"uint16","nodeType":"ElementaryTypeName","src":"1446:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1445:12:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49776,"nodeType":"FunctionDefinition","src":"1595:184:79","nodes":[],"body":{"id":49775,"nodeType":"Block","src":"1646:133:79","nodes":[],"statements":[{"assignments":[49757],"declarations":[{"constant":false,"id":49757,"mutability":"mutable","name":"addr","nameLocation":"1664:4:79","nodeType":"VariableDeclaration","scope":49775,"src":"1656:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49756,"name":"address","nodeType":"ElementaryTypeName","src":"1656:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49762,"initialValue":{"baseExpression":{"expression":{"id":49758,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49751,"src":"1671:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1676:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"1671:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49761,"indexExpression":{"id":49760,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49753,"src":"1689:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1671:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1656:37:79"},{"expression":{"id":49767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1703:29:79","subExpression":{"baseExpression":{"expression":{"id":49763,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49751,"src":"1710:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1715:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"1710:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49766,"indexExpression":{"id":49765,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49753,"src":"1728:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1710:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49768,"nodeType":"ExpressionStatement","src":"1703:29:79"},{"expression":{"id":49773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1742:30:79","subExpression":{"baseExpression":{"expression":{"id":49769,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49751,"src":"1749:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1754:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"1749:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49772,"indexExpression":{"id":49771,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49757,"src":"1767:4:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1749:23:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49774,"nodeType":"ExpressionStatement","src":"1742:30:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"del","nameLocation":"1604:3:79","parameters":{"id":49754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49751,"mutability":"mutable","name":"self","nameLocation":"1619:4:79","nodeType":"VariableDeclaration","scope":49776,"src":"1608:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49750,"nodeType":"UserDefinedTypeName","pathNode":{"id":49749,"name":"PQ","nameLocations":["1608:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1608:2:79"},"referencedDeclaration":49658,"src":"1608:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49753,"mutability":"mutable","name":"pos","nameLocation":"1632:3:79","nodeType":"VariableDeclaration","scope":49776,"src":"1625:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49752,"name":"uint16","nodeType":"ElementaryTypeName","src":"1625:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1607:29:79"},"returnParameters":{"id":49755,"nodeType":"ParameterList","parameters":[],"src":"1646:0:79"},"scope":49900,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49802,"nodeType":"FunctionDefinition","src":"1785:238:79","nodes":[],"body":{"id":49801,"nodeType":"Block","src":"1927:96:79","nodes":[],"statements":[{"assignments":[49790],"declarations":[{"constant":false,"id":49790,"mutability":"mutable","name":"addr","nameLocation":"1945:4:79","nodeType":"VariableDeclaration","scope":49801,"src":"1937:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49789,"name":"address","nodeType":"ElementaryTypeName","src":"1937:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49795,"initialValue":{"baseExpression":{"expression":{"id":49791,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49779,"src":"1952:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1957:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"1952:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49794,"indexExpression":{"id":49793,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49784,"src":"1970:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1952:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1937:37:79"},{"expression":{"arguments":[{"id":49798,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49790,"src":"2011:4:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49796,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49782,"src":"1991:10:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2002:8:79","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"1991:19:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49788,"id":49800,"nodeType":"Return","src":"1984:32:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"1794:8:79","parameters":{"id":49785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49779,"mutability":"mutable","name":"self","nameLocation":"1823:4:79","nodeType":"VariableDeclaration","scope":49802,"src":"1812:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49778,"nodeType":"UserDefinedTypeName","pathNode":{"id":49777,"name":"PQ","nameLocations":["1812:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1812:2:79"},"referencedDeclaration":49658,"src":"1812:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49782,"mutability":"mutable","name":"validators","nameLocation":"1858:10:79","nodeType":"VariableDeclaration","scope":49802,"src":"1837:31:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49781,"nodeType":"UserDefinedTypeName","pathNode":{"id":49780,"name":"ValidatorSet","nameLocations":["1837:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1837:12:79"},"referencedDeclaration":50190,"src":"1837:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49784,"mutability":"mutable","name":"pos","nameLocation":"1885:3:79","nodeType":"VariableDeclaration","scope":49802,"src":"1878:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49783,"name":"uint16","nodeType":"ElementaryTypeName","src":"1878:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1802:92:79"},"returnParameters":{"id":49788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49802,"src":"1918:7:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49786,"name":"uint256","nodeType":"ElementaryTypeName","src":"1918:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1917:9:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49828,"nodeType":"FunctionDefinition","src":"2029:266:79","nodes":[],"body":{"id":49827,"nodeType":"Block","src":"2185:110:79","nodes":[],"statements":[{"assignments":[49816],"declarations":[{"constant":false,"id":49816,"mutability":"mutable","name":"addr","nameLocation":"2203:4:79","nodeType":"VariableDeclaration","scope":49827,"src":"2195:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49815,"name":"address","nodeType":"ElementaryTypeName","src":"2195:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49821,"initialValue":{"baseExpression":{"expression":{"id":49817,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49805,"src":"2210:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2215:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"2210:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49820,"indexExpression":{"id":49819,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49810,"src":"2228:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2210:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2195:37:79"},{"expression":{"arguments":[{"id":49824,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49816,"src":"2283:4:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49808,"src":"2249:10:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2260:22:79","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44437,"src":"2249:33:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2249:39:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49814,"id":49826,"nodeType":"Return","src":"2242:46:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"2038:22:79","parameters":{"id":49811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49805,"mutability":"mutable","name":"self","nameLocation":"2081:4:79","nodeType":"VariableDeclaration","scope":49828,"src":"2070:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49804,"nodeType":"UserDefinedTypeName","pathNode":{"id":49803,"name":"PQ","nameLocations":["2070:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"2070:2:79"},"referencedDeclaration":49658,"src":"2070:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49808,"mutability":"mutable","name":"validators","nameLocation":"2116:10:79","nodeType":"VariableDeclaration","scope":49828,"src":"2095:31:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49807,"nodeType":"UserDefinedTypeName","pathNode":{"id":49806,"name":"ValidatorSet","nameLocations":["2095:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"2095:12:79"},"referencedDeclaration":50190,"src":"2095:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49810,"mutability":"mutable","name":"pos","nameLocation":"2143:3:79","nodeType":"VariableDeclaration","scope":49828,"src":"2136:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49809,"name":"uint16","nodeType":"ElementaryTypeName","src":"2136:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2060:92:79"},"returnParameters":{"id":49814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49813,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49828,"src":"2176:7:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49812,"name":"uint256","nodeType":"ElementaryTypeName","src":"2176:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2175:9:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49899,"nodeType":"FunctionDefinition","src":"2301:412:79","nodes":[],"body":{"id":49898,"nodeType":"Block","src":"2371:342:79","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49839,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"2388:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":49840,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2396:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2401:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2396:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2388:17:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":49838,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2381:6:79","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":49843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2381:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49844,"nodeType":"ExpressionStatement","src":"2381:25:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49846,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49835,"src":"2423:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":49847,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2431:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2436:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2431:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2423:17:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":49845,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2416:6:79","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":49850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2416:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49851,"nodeType":"ExpressionStatement","src":"2416:25:79"},{"assignments":[49853],"declarations":[{"constant":false,"id":49853,"mutability":"mutable","name":"addr1","nameLocation":"2460:5:79","nodeType":"VariableDeclaration","scope":49898,"src":"2452:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49852,"name":"address","nodeType":"ElementaryTypeName","src":"2452:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49858,"initialValue":{"baseExpression":{"expression":{"id":49854,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2468:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2473:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"2468:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49857,"indexExpression":{"id":49856,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"2486:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2468:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2452:39:79"},{"assignments":[49860],"declarations":[{"constant":false,"id":49860,"mutability":"mutable","name":"addr2","nameLocation":"2509:5:79","nodeType":"VariableDeclaration","scope":49898,"src":"2501:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49859,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49865,"initialValue":{"baseExpression":{"expression":{"id":49861,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2517:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2522:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"2517:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49864,"indexExpression":{"id":49863,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49835,"src":"2535:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2517:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2501:39:79"},{"expression":{"id":49872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49866,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2551:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2556:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"2551:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49870,"indexExpression":{"id":49868,"name":"addr1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49853,"src":"2569:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2551:24:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49871,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49835,"src":"2578:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2551:31:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49873,"nodeType":"ExpressionStatement","src":"2551:31:79"},{"expression":{"id":49880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49874,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2592:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2597:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"2592:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49878,"indexExpression":{"id":49876,"name":"addr2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49860,"src":"2610:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2592:24:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49879,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"2619:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2592:31:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49881,"nodeType":"ExpressionStatement","src":"2592:31:79"},{"expression":{"id":49888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49882,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2634:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2639:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"2634:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49886,"indexExpression":{"id":49884,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49835,"src":"2652:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2634:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49887,"name":"addr1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49853,"src":"2660:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2634:31:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49889,"nodeType":"ExpressionStatement","src":"2634:31:79"},{"expression":{"id":49896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49890,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2675:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2680:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"2675:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49894,"indexExpression":{"id":49892,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"2693:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2675:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49895,"name":"addr2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49860,"src":"2701:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2675:31:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49897,"nodeType":"ExpressionStatement","src":"2675:31:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"exchange","nameLocation":"2310:8:79","parameters":{"id":49836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49831,"mutability":"mutable","name":"self","nameLocation":"2330:4:79","nodeType":"VariableDeclaration","scope":49899,"src":"2319:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49830,"nodeType":"UserDefinedTypeName","pathNode":{"id":49829,"name":"PQ","nameLocations":["2319:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"2319:2:79"},"referencedDeclaration":49658,"src":"2319:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49833,"mutability":"mutable","name":"pos1","nameLocation":"2343:4:79","nodeType":"VariableDeclaration","scope":49899,"src":"2336:11:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49832,"name":"uint16","nodeType":"ElementaryTypeName","src":"2336:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49835,"mutability":"mutable","name":"pos2","nameLocation":"2356:4:79","nodeType":"VariableDeclaration","scope":49899,"src":"2349:11:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49834,"name":"uint16","nodeType":"ElementaryTypeName","src":"2349:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2318:43:79"},"returnParameters":{"id":49837,"nodeType":"ParameterList","parameters":[],"src":"2371:0:79"},"scope":49900,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibPQ","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[49900],"name":"LibPQ","nameLocation":"810:5:79","scope":49901,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":79} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220b85e80d5b7746711e519a4004c6fe280c0ad58f39a03e27a1c7b16bde1c6099a64736f6c63430008130033","sourceMap":"802:1913:79:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220b85e80d5b7746711e519a4004c6fe280c0ad58f39a03e27a1c7b16bde1c6099a64736f6c63430008130033","sourceMap":"802:1913:79:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibPQ.sol\":\"LibPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibPQ.sol":"LibPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibPQ.sol","id":49854,"exportedSymbols":{"LibPQ":[49853],"LibValidatorSet":[45246],"PQ":[49611],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ValidatorSet":[50143]},"nodeType":"SourceUnit","src":"46:2669:79","nodes":[{"id":49590,"nodeType":"PragmaDirective","src":"46:23:79","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49592,"nodeType":"ImportDirective","src":"71:50:79","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":49854,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":49591,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45246,"src":"79:15:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49594,"nodeType":"ImportDirective","src":"122:54:79","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":49854,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":49593,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"130:12:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49597,"nodeType":"ImportDirective","src":"177:76:79","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":49854,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":49595,"name":"PQEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37496,"src":"185:7:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49596,"name":"PQDoesNotContainAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37494,"src":"194:23:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49611,"nodeType":"StructDefinition","src":"431:369:79","nodes":[],"canonicalName":"PQ","members":[{"constant":false,"id":49600,"mutability":"mutable","name":"size","nameLocation":"493:4:79","nodeType":"VariableDeclaration","scope":49611,"src":"486:11:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49599,"name":"uint16","nodeType":"ElementaryTypeName","src":"486:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49605,"mutability":"mutable","name":"addressToPos","nameLocation":"650:12:79","nodeType":"VariableDeclaration","scope":49611,"src":"623:39:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"},"typeName":{"id":49604,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49602,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"623:26:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49603,"name":"uint16","nodeType":"ElementaryTypeName","src":"642:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}},"visibility":"internal"},{"constant":false,"id":49610,"mutability":"mutable","name":"posToAddress","nameLocation":"785:12:79","nodeType":"VariableDeclaration","scope":49611,"src":"758:39:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"},"typeName":{"id":49609,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49607,"name":"uint16","nodeType":"ElementaryTypeName","src":"766:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"758:26:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49608,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"}],"name":"PQ","nameLocation":"438:2:79","scope":49854,"visibility":"public"},{"id":49853,"nodeType":"ContractDefinition","src":"802:1913:79","nodes":[{"id":49615,"nodeType":"UsingForDirective","src":"822:39:79","nodes":[],"global":false,"libraryName":{"id":49612,"name":"LibValidatorSet","nameLocations":["828:15:79"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"828:15:79"},"typeName":{"id":49614,"nodeType":"UserDefinedTypeName","pathNode":{"id":49613,"name":"ValidatorSet","nameLocations":["848:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"848:12:79"},"referencedDeclaration":50143,"src":"848:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":49629,"nodeType":"FunctionDefinition","src":"867:101:79","nodes":[],"body":{"id":49628,"nodeType":"Block","src":"930:38:79","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49623,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49618,"src":"947:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"952:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"947:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"960:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"947:14:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49622,"id":49627,"nodeType":"Return","src":"940:21:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"876:7:79","parameters":{"id":49619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49618,"mutability":"mutable","name":"self","nameLocation":"895:4:79","nodeType":"VariableDeclaration","scope":49629,"src":"884:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49617,"nodeType":"UserDefinedTypeName","pathNode":{"id":49616,"name":"PQ","nameLocations":["884:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"884:2:79"},"referencedDeclaration":49611,"src":"884:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"883:17:79"},"returnParameters":{"id":49622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49629,"src":"924:4:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49620,"name":"bool","nodeType":"ElementaryTypeName","src":"924:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"923:6:79"},"scope":49853,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49645,"nodeType":"FunctionDefinition","src":"974:133:79","nodes":[],"body":{"id":49644,"nodeType":"Block","src":"1030:77:79","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49635,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49632,"src":"1044:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1049:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"1044:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1057:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1044:14:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49643,"nodeType":"IfStatement","src":"1040:61:79","trueBody":{"id":49642,"nodeType":"Block","src":"1060:41:79","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49639,"name":"PQEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37496,"src":"1081:7:79","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1081:9:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49641,"nodeType":"RevertStatement","src":"1074:16:79"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"requireNotEmpty","nameLocation":"983:15:79","parameters":{"id":49633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49632,"mutability":"mutable","name":"self","nameLocation":"1010:4:79","nodeType":"VariableDeclaration","scope":49645,"src":"999:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49631,"nodeType":"UserDefinedTypeName","pathNode":{"id":49630,"name":"PQ","nameLocations":["999:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"999:2:79"},"referencedDeclaration":49611,"src":"999:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"998:17:79"},"returnParameters":{"id":49634,"nodeType":"ParameterList","parameters":[],"src":"1030:0:79"},"scope":49853,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49657,"nodeType":"FunctionDefinition","src":"1113:98:79","nodes":[],"body":{"id":49656,"nodeType":"Block","src":"1178:33:79","nodes":[],"statements":[{"expression":{"expression":{"id":49653,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49648,"src":"1195:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1200:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"1195:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":49652,"id":49655,"nodeType":"Return","src":"1188:16:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"1122:7:79","parameters":{"id":49649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49648,"mutability":"mutable","name":"self","nameLocation":"1141:4:79","nodeType":"VariableDeclaration","scope":49657,"src":"1130:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49647,"nodeType":"UserDefinedTypeName","pathNode":{"id":49646,"name":"PQ","nameLocations":["1130:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"1130:2:79"},"referencedDeclaration":49611,"src":"1130:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"1129:17:79"},"returnParameters":{"id":49652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49657,"src":"1170:6:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49650,"name":"uint16","nodeType":"ElementaryTypeName","src":"1170:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1169:8:79"},"scope":49853,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49675,"nodeType":"FunctionDefinition","src":"1217:140:79","nodes":[],"body":{"id":49674,"nodeType":"Block","src":"1300:57:79","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":49667,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49660,"src":"1317:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1322:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49605,"src":"1317:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49670,"indexExpression":{"id":49669,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49662,"src":"1335:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1317:28:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":49671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1349:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1317:33:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49666,"id":49673,"nodeType":"Return","src":"1310:40:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"1226:8:79","parameters":{"id":49663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49660,"mutability":"mutable","name":"self","nameLocation":"1246:4:79","nodeType":"VariableDeclaration","scope":49675,"src":"1235:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49659,"nodeType":"UserDefinedTypeName","pathNode":{"id":49658,"name":"PQ","nameLocations":["1235:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"1235:2:79"},"referencedDeclaration":49611,"src":"1235:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49662,"mutability":"mutable","name":"validator","nameLocation":"1260:9:79","nodeType":"VariableDeclaration","scope":49675,"src":"1252:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49661,"name":"address","nodeType":"ElementaryTypeName","src":"1252:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1234:36:79"},"returnParameters":{"id":49666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49675,"src":"1294:4:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49664,"name":"bool","nodeType":"ElementaryTypeName","src":"1294:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1293:6:79"},"scope":49853,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49701,"nodeType":"FunctionDefinition","src":"1363:226:79","nodes":[],"body":{"id":49700,"nodeType":"Block","src":"1458:131:79","nodes":[],"statements":[{"expression":{"id":49690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49685,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49683,"src":"1468:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":49686,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49678,"src":"1474:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1479:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49605,"src":"1474:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49689,"indexExpression":{"id":49688,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49680,"src":"1492:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1474:28:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1468:34:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49691,"nodeType":"ExpressionStatement","src":"1468:34:79"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49692,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49683,"src":"1516:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1523:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1516:8:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49699,"nodeType":"IfStatement","src":"1512:71:79","trueBody":{"id":49698,"nodeType":"Block","src":"1526:57:79","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49695,"name":"PQDoesNotContainAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37494,"src":"1547:23:79","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1547:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49697,"nodeType":"RevertStatement","src":"1540:32:79"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPosOrRevert","nameLocation":"1372:14:79","parameters":{"id":49681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49678,"mutability":"mutable","name":"self","nameLocation":"1398:4:79","nodeType":"VariableDeclaration","scope":49701,"src":"1387:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49677,"nodeType":"UserDefinedTypeName","pathNode":{"id":49676,"name":"PQ","nameLocations":["1387:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"1387:2:79"},"referencedDeclaration":49611,"src":"1387:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49680,"mutability":"mutable","name":"validator","nameLocation":"1412:9:79","nodeType":"VariableDeclaration","scope":49701,"src":"1404:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49679,"name":"address","nodeType":"ElementaryTypeName","src":"1404:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1386:36:79"},"returnParameters":{"id":49684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49683,"mutability":"mutable","name":"pos","nameLocation":"1453:3:79","nodeType":"VariableDeclaration","scope":49701,"src":"1446:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49682,"name":"uint16","nodeType":"ElementaryTypeName","src":"1446:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1445:12:79"},"scope":49853,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49729,"nodeType":"FunctionDefinition","src":"1595:184:79","nodes":[],"body":{"id":49728,"nodeType":"Block","src":"1646:133:79","nodes":[],"statements":[{"assignments":[49710],"declarations":[{"constant":false,"id":49710,"mutability":"mutable","name":"addr","nameLocation":"1664:4:79","nodeType":"VariableDeclaration","scope":49728,"src":"1656:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49709,"name":"address","nodeType":"ElementaryTypeName","src":"1656:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49715,"initialValue":{"baseExpression":{"expression":{"id":49711,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49704,"src":"1671:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1676:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"1671:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49714,"indexExpression":{"id":49713,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49706,"src":"1689:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1671:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1656:37:79"},{"expression":{"id":49720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1703:29:79","subExpression":{"baseExpression":{"expression":{"id":49716,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49704,"src":"1710:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1715:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"1710:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49719,"indexExpression":{"id":49718,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49706,"src":"1728:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1710:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49721,"nodeType":"ExpressionStatement","src":"1703:29:79"},{"expression":{"id":49726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1742:30:79","subExpression":{"baseExpression":{"expression":{"id":49722,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49704,"src":"1749:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1754:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49605,"src":"1749:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49725,"indexExpression":{"id":49724,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49710,"src":"1767:4:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1749:23:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49727,"nodeType":"ExpressionStatement","src":"1742:30:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"del","nameLocation":"1604:3:79","parameters":{"id":49707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49704,"mutability":"mutable","name":"self","nameLocation":"1619:4:79","nodeType":"VariableDeclaration","scope":49729,"src":"1608:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49703,"nodeType":"UserDefinedTypeName","pathNode":{"id":49702,"name":"PQ","nameLocations":["1608:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"1608:2:79"},"referencedDeclaration":49611,"src":"1608:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49706,"mutability":"mutable","name":"pos","nameLocation":"1632:3:79","nodeType":"VariableDeclaration","scope":49729,"src":"1625:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49705,"name":"uint16","nodeType":"ElementaryTypeName","src":"1625:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1607:29:79"},"returnParameters":{"id":49708,"nodeType":"ParameterList","parameters":[],"src":"1646:0:79"},"scope":49853,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49755,"nodeType":"FunctionDefinition","src":"1785:238:79","nodes":[],"body":{"id":49754,"nodeType":"Block","src":"1927:96:79","nodes":[],"statements":[{"assignments":[49743],"declarations":[{"constant":false,"id":49743,"mutability":"mutable","name":"addr","nameLocation":"1945:4:79","nodeType":"VariableDeclaration","scope":49754,"src":"1937:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49742,"name":"address","nodeType":"ElementaryTypeName","src":"1937:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49748,"initialValue":{"baseExpression":{"expression":{"id":49744,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49732,"src":"1952:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1957:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"1952:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49747,"indexExpression":{"id":49746,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49737,"src":"1970:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1952:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1937:37:79"},{"expression":{"arguments":[{"id":49751,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49743,"src":"2011:4:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49749,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49735,"src":"1991:10:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2002:8:79","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"1991:19:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49741,"id":49753,"nodeType":"Return","src":"1984:32:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"1794:8:79","parameters":{"id":49738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49732,"mutability":"mutable","name":"self","nameLocation":"1823:4:79","nodeType":"VariableDeclaration","scope":49755,"src":"1812:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49731,"nodeType":"UserDefinedTypeName","pathNode":{"id":49730,"name":"PQ","nameLocations":["1812:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"1812:2:79"},"referencedDeclaration":49611,"src":"1812:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49735,"mutability":"mutable","name":"validators","nameLocation":"1858:10:79","nodeType":"VariableDeclaration","scope":49755,"src":"1837:31:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49734,"nodeType":"UserDefinedTypeName","pathNode":{"id":49733,"name":"ValidatorSet","nameLocations":["1837:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"1837:12:79"},"referencedDeclaration":50143,"src":"1837:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49737,"mutability":"mutable","name":"pos","nameLocation":"1885:3:79","nodeType":"VariableDeclaration","scope":49755,"src":"1878:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49736,"name":"uint16","nodeType":"ElementaryTypeName","src":"1878:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1802:92:79"},"returnParameters":{"id":49741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49740,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49755,"src":"1918:7:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49739,"name":"uint256","nodeType":"ElementaryTypeName","src":"1918:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1917:9:79"},"scope":49853,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49781,"nodeType":"FunctionDefinition","src":"2029:266:79","nodes":[],"body":{"id":49780,"nodeType":"Block","src":"2185:110:79","nodes":[],"statements":[{"assignments":[49769],"declarations":[{"constant":false,"id":49769,"mutability":"mutable","name":"addr","nameLocation":"2203:4:79","nodeType":"VariableDeclaration","scope":49780,"src":"2195:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49768,"name":"address","nodeType":"ElementaryTypeName","src":"2195:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49774,"initialValue":{"baseExpression":{"expression":{"id":49770,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49758,"src":"2210:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2215:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"2210:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49773,"indexExpression":{"id":49772,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49763,"src":"2228:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2210:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2195:37:79"},{"expression":{"arguments":[{"id":49777,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49769,"src":"2283:4:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49775,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49761,"src":"2249:10:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2260:22:79","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44390,"src":"2249:33:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2249:39:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49767,"id":49779,"nodeType":"Return","src":"2242:46:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"2038:22:79","parameters":{"id":49764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49758,"mutability":"mutable","name":"self","nameLocation":"2081:4:79","nodeType":"VariableDeclaration","scope":49781,"src":"2070:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49757,"nodeType":"UserDefinedTypeName","pathNode":{"id":49756,"name":"PQ","nameLocations":["2070:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"2070:2:79"},"referencedDeclaration":49611,"src":"2070:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49761,"mutability":"mutable","name":"validators","nameLocation":"2116:10:79","nodeType":"VariableDeclaration","scope":49781,"src":"2095:31:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49760,"nodeType":"UserDefinedTypeName","pathNode":{"id":49759,"name":"ValidatorSet","nameLocations":["2095:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"2095:12:79"},"referencedDeclaration":50143,"src":"2095:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49763,"mutability":"mutable","name":"pos","nameLocation":"2143:3:79","nodeType":"VariableDeclaration","scope":49781,"src":"2136:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49762,"name":"uint16","nodeType":"ElementaryTypeName","src":"2136:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2060:92:79"},"returnParameters":{"id":49767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49781,"src":"2176:7:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49765,"name":"uint256","nodeType":"ElementaryTypeName","src":"2176:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2175:9:79"},"scope":49853,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49852,"nodeType":"FunctionDefinition","src":"2301:412:79","nodes":[],"body":{"id":49851,"nodeType":"Block","src":"2371:342:79","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49792,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49786,"src":"2388:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":49793,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49784,"src":"2396:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2401:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"2396:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2388:17:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":49791,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2381:6:79","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":49796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2381:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49797,"nodeType":"ExpressionStatement","src":"2381:25:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49799,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49788,"src":"2423:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":49800,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49784,"src":"2431:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2436:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49600,"src":"2431:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2423:17:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":49798,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2416:6:79","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":49803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2416:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49804,"nodeType":"ExpressionStatement","src":"2416:25:79"},{"assignments":[49806],"declarations":[{"constant":false,"id":49806,"mutability":"mutable","name":"addr1","nameLocation":"2460:5:79","nodeType":"VariableDeclaration","scope":49851,"src":"2452:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49805,"name":"address","nodeType":"ElementaryTypeName","src":"2452:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49811,"initialValue":{"baseExpression":{"expression":{"id":49807,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49784,"src":"2468:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2473:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"2468:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49810,"indexExpression":{"id":49809,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49786,"src":"2486:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2468:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2452:39:79"},{"assignments":[49813],"declarations":[{"constant":false,"id":49813,"mutability":"mutable","name":"addr2","nameLocation":"2509:5:79","nodeType":"VariableDeclaration","scope":49851,"src":"2501:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49812,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49818,"initialValue":{"baseExpression":{"expression":{"id":49814,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49784,"src":"2517:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2522:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"2517:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49817,"indexExpression":{"id":49816,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49788,"src":"2535:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2517:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2501:39:79"},{"expression":{"id":49825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49819,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49784,"src":"2551:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2556:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49605,"src":"2551:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49823,"indexExpression":{"id":49821,"name":"addr1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49806,"src":"2569:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2551:24:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49824,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49788,"src":"2578:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2551:31:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49826,"nodeType":"ExpressionStatement","src":"2551:31:79"},{"expression":{"id":49833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49827,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49784,"src":"2592:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2597:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49605,"src":"2592:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49831,"indexExpression":{"id":49829,"name":"addr2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49813,"src":"2610:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2592:24:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49832,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49786,"src":"2619:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2592:31:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49834,"nodeType":"ExpressionStatement","src":"2592:31:79"},{"expression":{"id":49841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49835,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49784,"src":"2634:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2639:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"2634:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49839,"indexExpression":{"id":49837,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49788,"src":"2652:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2634:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49840,"name":"addr1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49806,"src":"2660:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2634:31:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49842,"nodeType":"ExpressionStatement","src":"2634:31:79"},{"expression":{"id":49849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49843,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49784,"src":"2675:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2680:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49610,"src":"2675:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49847,"indexExpression":{"id":49845,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49786,"src":"2693:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2675:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49848,"name":"addr2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49813,"src":"2701:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2675:31:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49850,"nodeType":"ExpressionStatement","src":"2675:31:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"exchange","nameLocation":"2310:8:79","parameters":{"id":49789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49784,"mutability":"mutable","name":"self","nameLocation":"2330:4:79","nodeType":"VariableDeclaration","scope":49852,"src":"2319:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49783,"nodeType":"UserDefinedTypeName","pathNode":{"id":49782,"name":"PQ","nameLocations":["2319:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"2319:2:79"},"referencedDeclaration":49611,"src":"2319:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49611_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49786,"mutability":"mutable","name":"pos1","nameLocation":"2343:4:79","nodeType":"VariableDeclaration","scope":49852,"src":"2336:11:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49785,"name":"uint16","nodeType":"ElementaryTypeName","src":"2336:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49788,"mutability":"mutable","name":"pos2","nameLocation":"2356:4:79","nodeType":"VariableDeclaration","scope":49852,"src":"2349:11:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49787,"name":"uint16","nodeType":"ElementaryTypeName","src":"2349:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2318:43:79"},"returnParameters":{"id":49790,"nodeType":"ParameterList","parameters":[],"src":"2371:0:79"},"scope":49853,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibPQ","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[49853],"name":"LibPQ","nameLocation":"810:5:79","scope":49854,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":79} \ No newline at end of file diff --git a/.out/LibPausable.sol/Pausable.json b/.out/LibPausable.sol/Pausable.json index 570124ee7..dbcb0c500 100644 --- a/.out/LibPausable.sol/Pausable.json +++ b/.out/LibPausable.sol/Pausable.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{},\"title\":\"Pausable Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"paused()\":{\"notice\":\"sets if to pause the contract\"}},\"notice\":\"Abstract contract that enables contract to pause marked operations\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibPausable.sol\":\"Pausable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"paused()":{"notice":"sets if to pause the contract"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibPausable.sol":"Pausable"},"libraries":{},"viaIR":true},"sources":{"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibPausable.sol","id":43433,"exportedSymbols":{"Pausable":[43432]},"nodeType":"SourceUnit","src":"46:2497:66","nodes":[{"id":43293,"nodeType":"PragmaDirective","src":"46:23:66","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43432,"nodeType":"ContractDefinition","src":"178:2364:66","nodes":[{"id":43299,"nodeType":"VariableDeclaration","src":"211:78:66","nodes":[],"constant":true,"mutability":"constant","name":"NAMESPACE","nameLocation":"236:9:66","scope":43432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"211:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"7061757361626c652e6c69622e6469616d6f6e642e73746f72616765","id":43297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"258:30:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_c451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863","typeString":"literal_string \"pausable.lib.diamond.storage\""},"value":"pausable.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863","typeString":"literal_string \"pausable.lib.diamond.storage\""}],"id":43296,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"248:9:66","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248:41:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":43302,"nodeType":"StructDefinition","src":"296:51:66","nodes":[],"canonicalName":"Pausable.PausableStorage","members":[{"constant":false,"id":43301,"mutability":"mutable","name":"paused","nameLocation":"334:6:66","nodeType":"VariableDeclaration","scope":43302,"src":"329:11:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43300,"name":"bool","nodeType":"ElementaryTypeName","src":"329:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"PausableStorage","nameLocation":"303:15:66","scope":43432,"visibility":"public"},{"id":43307,"nodeType":"EventDefinition","src":"431:30:66","nodes":[],"anonymous":false,"documentation":{"id":43303,"nodeType":"StructuredDocumentation","src":"353:73:66","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","name":"Paused","nameLocation":"437:6:66","parameters":{"id":43306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43305,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"452:7:66","nodeType":"VariableDeclaration","scope":43307,"src":"444:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43304,"name":"address","nodeType":"ElementaryTypeName","src":"444:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"443:17:66"}},{"id":43312,"nodeType":"EventDefinition","src":"542:32:66","nodes":[],"anonymous":false,"documentation":{"id":43308,"nodeType":"StructuredDocumentation","src":"467:70:66","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","name":"Unpaused","nameLocation":"548:8:66","parameters":{"id":43311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43310,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"565:7:66","nodeType":"VariableDeclaration","scope":43312,"src":"557:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43309,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"556:17:66"}},{"id":43315,"nodeType":"ErrorDefinition","src":"661:22:66","nodes":[],"documentation":{"id":43313,"nodeType":"StructuredDocumentation","src":"580:76:66","text":" @dev The operation failed because the contract is paused."},"errorSelector":"d93c0665","name":"EnforcedPause","nameLocation":"667:13:66","parameters":{"id":43314,"nodeType":"ParameterList","parameters":[],"src":"680:2:66"}},{"id":43318,"nodeType":"ErrorDefinition","src":"774:22:66","nodes":[],"documentation":{"id":43316,"nodeType":"StructuredDocumentation","src":"689:80:66","text":" @dev The operation failed because the contract is not paused."},"errorSelector":"8dfc202b","name":"ExpectedPause","nameLocation":"780:13:66","parameters":{"id":43317,"nodeType":"ParameterList","parameters":[],"src":"793:2:66"}},{"id":43326,"nodeType":"ModifierDefinition","src":"982:72:66","nodes":[],"body":{"id":43325,"nodeType":"Block","src":"1007:47:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43321,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43338,"src":"1017:17:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:19:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43323,"nodeType":"ExpressionStatement","src":"1017:19:66"},{"id":43324,"nodeType":"PlaceholderStatement","src":"1046:1:66"}]},"documentation":{"id":43319,"nodeType":"StructuredDocumentation","src":"802:175:66","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"name":"whenNotPaused","nameLocation":"991:13:66","parameters":{"id":43320,"nodeType":"ParameterList","parameters":[],"src":"1004:2:66"},"virtual":false,"visibility":"internal"},{"id":43338,"nodeType":"FunctionDefinition","src":"1122:128:66","nodes":[],"body":{"id":43337,"nodeType":"Block","src":"1173:77:66","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":43330,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43367,"src":"1187:6:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":43331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1187:8:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43336,"nodeType":"IfStatement","src":"1183:61:66","trueBody":{"id":43335,"nodeType":"Block","src":"1197:47:66","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43332,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43315,"src":"1218:13:66","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1218:15:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43334,"nodeType":"RevertStatement","src":"1211:22:66"}]}}]},"documentation":{"id":43327,"nodeType":"StructuredDocumentation","src":"1060:57:66","text":" @dev Throws if the contract is paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1131:17:66","parameters":{"id":43328,"nodeType":"ParameterList","parameters":[],"src":"1148:2:66"},"returnParameters":{"id":43329,"nodeType":"ParameterList","parameters":[],"src":"1173:0:66"},"scope":43432,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":43351,"nodeType":"FunctionDefinition","src":"1322:126:66","nodes":[],"body":{"id":43350,"nodeType":"Block","src":"1370:78:66","nodes":[],"statements":[{"condition":{"id":43344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1384:9:66","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":43342,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43367,"src":"1385:6:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":43343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:8:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43349,"nodeType":"IfStatement","src":"1380:62:66","trueBody":{"id":43348,"nodeType":"Block","src":"1395:47:66","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43345,"name":"ExpectedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43318,"src":"1416:13:66","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1416:15:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43347,"nodeType":"RevertStatement","src":"1409:22:66"}]}}]},"documentation":{"id":43339,"nodeType":"StructuredDocumentation","src":"1256:61:66","text":" @dev Throws if the contract is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1331:14:66","parameters":{"id":43340,"nodeType":"ParameterList","parameters":[],"src":"1345:2:66"},"returnParameters":{"id":43341,"nodeType":"ParameterList","parameters":[],"src":"1370:0:66"},"scope":43432,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":43367,"nodeType":"FunctionDefinition","src":"1500:131:66","nodes":[],"body":{"id":43366,"nodeType":"Block","src":"1544:87:66","nodes":[],"statements":[{"assignments":[43359],"declarations":[{"constant":false,"id":43359,"mutability":"mutable","name":"s","nameLocation":"1578:1:66","nodeType":"VariableDeclaration","scope":43366,"src":"1554:25:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43358,"nodeType":"UserDefinedTypeName","pathNode":{"id":43357,"name":"PausableStorage","nameLocations":["1554:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43302,"src":"1554:15:66"},"referencedDeclaration":43302,"src":"1554:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":43362,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43360,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43431,"src":"1582:15:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$43302_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":43361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1582:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1554:45:66"},{"expression":{"expression":{"id":43363,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43359,"src":"1616:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":43364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1618:6:66","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43301,"src":"1616:8:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":43356,"id":43365,"nodeType":"Return","src":"1609:15:66"}]},"documentation":{"id":43352,"nodeType":"StructuredDocumentation","src":"1454:41:66","text":"@notice sets if to pause the contract"},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1509:6:66","parameters":{"id":43353,"nodeType":"ParameterList","parameters":[],"src":"1515:2:66"},"returnParameters":{"id":43356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43367,"src":"1538:4:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43354,"name":"bool","nodeType":"ElementaryTypeName","src":"1538:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1537:6:66"},"scope":43432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":43391,"nodeType":"FunctionDefinition","src":"1766:163:66","nodes":[],"body":{"id":43390,"nodeType":"Block","src":"1807:122:66","nodes":[],"statements":[{"assignments":[43375],"declarations":[{"constant":false,"id":43375,"mutability":"mutable","name":"s","nameLocation":"1841:1:66","nodeType":"VariableDeclaration","scope":43390,"src":"1817:25:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43374,"nodeType":"UserDefinedTypeName","pathNode":{"id":43373,"name":"PausableStorage","nameLocations":["1817:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43302,"src":"1817:15:66"},"referencedDeclaration":43302,"src":"1817:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":43378,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43376,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43431,"src":"1845:15:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$43302_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":43377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1845:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1817:45:66"},{"expression":{"id":43383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43379,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43375,"src":"1872:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":43381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1874:6:66","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43301,"src":"1872:8:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":43382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1883:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1872:15:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43384,"nodeType":"ExpressionStatement","src":"1872:15:66"},{"eventCall":{"arguments":[{"expression":{"id":43386,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1911:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1915:6:66","memberName":"sender","nodeType":"MemberAccess","src":"1911:10:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43385,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43312,"src":"1902:8:66","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":43388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1902:20:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43389,"nodeType":"EmitStatement","src":"1897:25:66"}]},"documentation":{"id":43368,"nodeType":"StructuredDocumentation","src":"1637:124:66","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"implemented":true,"kind":"function","modifiers":[{"id":43371,"kind":"modifierInvocation","modifierName":{"id":43370,"name":"whenNotPaused","nameLocations":["1793:13:66"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"1793:13:66"},"nodeType":"ModifierInvocation","src":"1793:13:66"}],"name":"_pause","nameLocation":"1775:6:66","parameters":{"id":43369,"nodeType":"ParameterList","parameters":[],"src":"1781:2:66"},"returnParameters":{"id":43372,"nodeType":"ParameterList","parameters":[],"src":"1807:0:66"},"scope":43432,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43416,"nodeType":"FunctionDefinition","src":"2061:178:66","nodes":[],"body":{"id":43415,"nodeType":"Block","src":"2090:149:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43395,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43351,"src":"2100:14:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2100:16:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43397,"nodeType":"ExpressionStatement","src":"2100:16:66"},{"assignments":[43400],"declarations":[{"constant":false,"id":43400,"mutability":"mutable","name":"s","nameLocation":"2150:1:66","nodeType":"VariableDeclaration","scope":43415,"src":"2126:25:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43399,"nodeType":"UserDefinedTypeName","pathNode":{"id":43398,"name":"PausableStorage","nameLocations":["2126:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43302,"src":"2126:15:66"},"referencedDeclaration":43302,"src":"2126:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":43403,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43401,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43431,"src":"2154:15:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$43302_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":43402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2126:45:66"},{"expression":{"id":43408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43404,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43400,"src":"2181:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":43406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2183:6:66","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43301,"src":"2181:8:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":43407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2192:5:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2181:16:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43409,"nodeType":"ExpressionStatement","src":"2181:16:66"},{"eventCall":{"arguments":[{"expression":{"id":43411,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2221:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2225:6:66","memberName":"sender","nodeType":"MemberAccess","src":"2221:10:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43410,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43312,"src":"2212:8:66","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":43413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:20:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43414,"nodeType":"EmitStatement","src":"2207:25:66"}]},"documentation":{"id":43392,"nodeType":"StructuredDocumentation","src":"1935:121:66","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_unpause","nameLocation":"2070:8:66","parameters":{"id":43393,"nodeType":"ParameterList","parameters":[],"src":"2078:2:66"},"returnParameters":{"id":43394,"nodeType":"ParameterList","parameters":[],"src":"2090:0:66"},"scope":43432,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43431,"nodeType":"FunctionDefinition","src":"2282:258:66","nodes":[],"body":{"id":43430,"nodeType":"Block","src":"2359:181:66","nodes":[],"statements":[{"assignments":[43424],"declarations":[{"constant":false,"id":43424,"mutability":"mutable","name":"position","nameLocation":"2377:8:66","nodeType":"VariableDeclaration","scope":43430,"src":"2369:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2369:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43426,"initialValue":{"id":43425,"name":"NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43299,"src":"2388:9:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2369:28:66"},{"AST":{"nodeType":"YulBlock","src":"2472:43:66","statements":[{"nodeType":"YulAssignment","src":"2486:19:66","value":{"name":"position","nodeType":"YulIdentifier","src":"2497:8:66"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2486:7:66"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":43421,"isOffset":false,"isSlot":true,"src":"2486:7:66","suffix":"slot","valueSize":1},{"declaration":43424,"isOffset":false,"isSlot":false,"src":"2497:8:66","valueSize":1}],"id":43427,"nodeType":"InlineAssembly","src":"2463:52:66"},{"expression":{"id":43428,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2531:2:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"functionReturnParameters":43422,"id":43429,"nodeType":"Return","src":"2524:9:66"}]},"documentation":{"id":43417,"nodeType":"StructuredDocumentation","src":"2245:32:66","text":"@notice get the storage slot"},"implemented":true,"kind":"function","modifiers":[],"name":"pausableStorage","nameLocation":"2291:15:66","parameters":{"id":43418,"nodeType":"ParameterList","parameters":[],"src":"2306:2:66"},"returnParameters":{"id":43422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43421,"mutability":"mutable","name":"ds","nameLocation":"2355:2:66","nodeType":"VariableDeclaration","scope":43431,"src":"2331:26:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43420,"nodeType":"UserDefinedTypeName","pathNode":{"id":43419,"name":"PausableStorage","nameLocations":["2331:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43302,"src":"2331:15:66"},"referencedDeclaration":43302,"src":"2331:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"src":"2330:28:66"},"scope":43432,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"Pausable","contractDependencies":[],"contractKind":"contract","documentation":{"id":43294,"nodeType":"StructuredDocumentation","src":"71:107:66","text":"@title Pausable Library\n @notice Abstract contract that enables contract to pause marked operations"},"fullyImplemented":true,"linearizedBaseContracts":[43432],"name":"Pausable","nameLocation":"196:8:66","scope":43433,"usedErrors":[43315,43318]}],"license":"MIT OR Apache-2.0"},"id":66} \ No newline at end of file +{"abi":[{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the unpause is triggered by `account`.\"}},\"kind\":\"dev\",\"methods\":{},\"title\":\"Pausable Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Abstract contract that enables contract to pause marked operations\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibPausable.sol\":\"Pausable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibPausable.sol":"Pausable"},"libraries":{},"viaIR":true},"sources":{"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibPausable.sol","id":43386,"exportedSymbols":{"Pausable":[43385]},"nodeType":"SourceUnit","src":"46:2758:66","nodes":[{"id":43237,"nodeType":"PragmaDirective","src":"46:23:66","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43385,"nodeType":"ContractDefinition","src":"178:2625:66","nodes":[{"id":43243,"nodeType":"VariableDeclaration","src":"211:78:66","nodes":[],"constant":true,"mutability":"constant","name":"NAMESPACE","nameLocation":"236:9:66","scope":43385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"211:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"7061757361626c652e6c69622e6469616d6f6e642e73746f72616765","id":43241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"258:30:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_c451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863","typeString":"literal_string \"pausable.lib.diamond.storage\""},"value":"pausable.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863","typeString":"literal_string \"pausable.lib.diamond.storage\""}],"id":43240,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"248:9:66","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248:41:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":43246,"nodeType":"StructDefinition","src":"296:51:66","nodes":[],"canonicalName":"Pausable.PausableStorage","members":[{"constant":false,"id":43245,"mutability":"mutable","name":"paused","nameLocation":"334:6:66","nodeType":"VariableDeclaration","scope":43246,"src":"329:11:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43244,"name":"bool","nodeType":"ElementaryTypeName","src":"329:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"PausableStorage","nameLocation":"303:15:66","scope":43385,"visibility":"public"},{"id":43251,"nodeType":"EventDefinition","src":"431:30:66","nodes":[],"anonymous":false,"documentation":{"id":43247,"nodeType":"StructuredDocumentation","src":"353:73:66","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","name":"Paused","nameLocation":"437:6:66","parameters":{"id":43250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43249,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"452:7:66","nodeType":"VariableDeclaration","scope":43251,"src":"444:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43248,"name":"address","nodeType":"ElementaryTypeName","src":"444:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"443:17:66"}},{"id":43256,"nodeType":"EventDefinition","src":"547:32:66","nodes":[],"anonymous":false,"documentation":{"id":43252,"nodeType":"StructuredDocumentation","src":"467:75:66","text":" @dev Emitted when the unpause is triggered by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","name":"Unpaused","nameLocation":"553:8:66","parameters":{"id":43255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43254,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"570:7:66","nodeType":"VariableDeclaration","scope":43256,"src":"562:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43253,"name":"address","nodeType":"ElementaryTypeName","src":"562:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"561:17:66"}},{"id":43259,"nodeType":"ErrorDefinition","src":"666:22:66","nodes":[],"documentation":{"id":43257,"nodeType":"StructuredDocumentation","src":"585:76:66","text":" @dev The operation failed because the contract is paused."},"errorSelector":"d93c0665","name":"EnforcedPause","nameLocation":"672:13:66","parameters":{"id":43258,"nodeType":"ParameterList","parameters":[],"src":"685:2:66"}},{"id":43262,"nodeType":"ErrorDefinition","src":"779:22:66","nodes":[],"documentation":{"id":43260,"nodeType":"StructuredDocumentation","src":"694:80:66","text":" @dev The operation failed because the contract is not paused."},"errorSelector":"8dfc202b","name":"ExpectedPause","nameLocation":"785:13:66","parameters":{"id":43261,"nodeType":"ParameterList","parameters":[],"src":"798:2:66"}},{"id":43270,"nodeType":"ModifierDefinition","src":"987:72:66","nodes":[],"body":{"id":43269,"nodeType":"Block","src":"1012:47:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43265,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43290,"src":"1022:17:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1022:19:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43267,"nodeType":"ExpressionStatement","src":"1022:19:66"},{"id":43268,"nodeType":"PlaceholderStatement","src":"1051:1:66"}]},"documentation":{"id":43263,"nodeType":"StructuredDocumentation","src":"807:175:66","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"name":"whenNotPaused","nameLocation":"996:13:66","parameters":{"id":43264,"nodeType":"ParameterList","parameters":[],"src":"1009:2:66"},"virtual":false,"visibility":"internal"},{"id":43278,"nodeType":"ModifierDefinition","src":"1237:66:66","nodes":[],"body":{"id":43277,"nodeType":"Block","src":"1259:44:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43273,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43303,"src":"1269:14:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1269:16:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43275,"nodeType":"ExpressionStatement","src":"1269:16:66"},{"id":43276,"nodeType":"PlaceholderStatement","src":"1295:1:66"}]},"documentation":{"id":43271,"nodeType":"StructuredDocumentation","src":"1065:167:66","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"name":"whenPaused","nameLocation":"1246:10:66","parameters":{"id":43272,"nodeType":"ParameterList","parameters":[],"src":"1256:2:66"},"virtual":false,"visibility":"internal"},{"id":43290,"nodeType":"FunctionDefinition","src":"1371:121:66","nodes":[],"body":{"id":43289,"nodeType":"Block","src":"1414:78:66","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":43282,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43319,"src":"1428:7:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":43283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1428:9:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43288,"nodeType":"IfStatement","src":"1424:62:66","trueBody":{"id":43287,"nodeType":"Block","src":"1439:47:66","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43284,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43259,"src":"1460:13:66","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1460:15:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43286,"nodeType":"RevertStatement","src":"1453:22:66"}]}}]},"documentation":{"id":43279,"nodeType":"StructuredDocumentation","src":"1309:57:66","text":" @dev Throws if the contract is paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1380:17:66","parameters":{"id":43280,"nodeType":"ParameterList","parameters":[],"src":"1397:2:66"},"returnParameters":{"id":43281,"nodeType":"ParameterList","parameters":[],"src":"1414:0:66"},"scope":43385,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43303,"nodeType":"FunctionDefinition","src":"1564:119:66","nodes":[],"body":{"id":43302,"nodeType":"Block","src":"1604:79:66","nodes":[],"statements":[{"condition":{"id":43296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1618:10:66","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":43294,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43319,"src":"1619:7:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":43295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1619:9:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43301,"nodeType":"IfStatement","src":"1614:63:66","trueBody":{"id":43300,"nodeType":"Block","src":"1630:47:66","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43297,"name":"ExpectedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43262,"src":"1651:13:66","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1651:15:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43299,"nodeType":"RevertStatement","src":"1644:22:66"}]}}]},"documentation":{"id":43291,"nodeType":"StructuredDocumentation","src":"1498:61:66","text":" @dev Throws if the contract is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1573:14:66","parameters":{"id":43292,"nodeType":"ParameterList","parameters":[],"src":"1587:2:66"},"returnParameters":{"id":43293,"nodeType":"ParameterList","parameters":[],"src":"1604:0:66"},"scope":43385,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43319,"nodeType":"FunctionDefinition","src":"1744:134:66","nodes":[],"body":{"id":43318,"nodeType":"Block","src":"1791:87:66","nodes":[],"statements":[{"assignments":[43311],"declarations":[{"constant":false,"id":43311,"mutability":"mutable","name":"s","nameLocation":"1825:1:66","nodeType":"VariableDeclaration","scope":43318,"src":"1801:25:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43310,"nodeType":"UserDefinedTypeName","pathNode":{"id":43309,"name":"PausableStorage","nameLocations":["1801:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43246,"src":"1801:15:66"},"referencedDeclaration":43246,"src":"1801:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":43314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43312,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43384,"src":"1829:15:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$43246_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":43313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1829:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1801:45:66"},{"expression":{"expression":{"id":43315,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43311,"src":"1863:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":43316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1865:6:66","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43245,"src":"1863:8:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":43308,"id":43317,"nodeType":"Return","src":"1856:15:66"}]},"documentation":{"id":43304,"nodeType":"StructuredDocumentation","src":"1689:50:66","text":"@notice returns true if the contract is paused"},"implemented":true,"kind":"function","modifiers":[],"name":"_paused","nameLocation":"1753:7:66","parameters":{"id":43305,"nodeType":"ParameterList","parameters":[],"src":"1760:2:66"},"returnParameters":{"id":43308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43307,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43319,"src":"1785:4:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43306,"name":"bool","nodeType":"ElementaryTypeName","src":"1785:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1784:6:66"},"scope":43385,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43344,"nodeType":"FunctionDefinition","src":"2013:176:66","nodes":[],"body":{"id":43343,"nodeType":"Block","src":"2040:149:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43323,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43290,"src":"2050:17:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2050:19:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43325,"nodeType":"ExpressionStatement","src":"2050:19:66"},{"assignments":[43328],"declarations":[{"constant":false,"id":43328,"mutability":"mutable","name":"s","nameLocation":"2103:1:66","nodeType":"VariableDeclaration","scope":43343,"src":"2079:25:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43327,"nodeType":"UserDefinedTypeName","pathNode":{"id":43326,"name":"PausableStorage","nameLocations":["2079:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43246,"src":"2079:15:66"},"referencedDeclaration":43246,"src":"2079:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":43331,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43329,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43384,"src":"2107:15:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$43246_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":43330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2107:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2079:45:66"},{"expression":{"id":43336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43332,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43328,"src":"2134:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":43334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2136:6:66","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43245,"src":"2134:8:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":43335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2145:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2134:15:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43337,"nodeType":"ExpressionStatement","src":"2134:15:66"},{"eventCall":{"arguments":[{"expression":{"id":43339,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2171:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2175:6:66","memberName":"sender","nodeType":"MemberAccess","src":"2171:10:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43338,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43251,"src":"2164:6:66","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":43341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2164:18:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43342,"nodeType":"EmitStatement","src":"2159:23:66"}]},"documentation":{"id":43320,"nodeType":"StructuredDocumentation","src":"1884:124:66","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_pause","nameLocation":"2022:6:66","parameters":{"id":43321,"nodeType":"ParameterList","parameters":[],"src":"2028:2:66"},"returnParameters":{"id":43322,"nodeType":"ParameterList","parameters":[],"src":"2040:0:66"},"scope":43385,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43369,"nodeType":"FunctionDefinition","src":"2321:179:66","nodes":[],"body":{"id":43368,"nodeType":"Block","src":"2351:149:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43348,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43303,"src":"2361:14:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2361:16:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43350,"nodeType":"ExpressionStatement","src":"2361:16:66"},{"assignments":[43353],"declarations":[{"constant":false,"id":43353,"mutability":"mutable","name":"s","nameLocation":"2411:1:66","nodeType":"VariableDeclaration","scope":43368,"src":"2387:25:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43352,"nodeType":"UserDefinedTypeName","pathNode":{"id":43351,"name":"PausableStorage","nameLocations":["2387:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43246,"src":"2387:15:66"},"referencedDeclaration":43246,"src":"2387:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":43356,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43354,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43384,"src":"2415:15:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$43246_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":43355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2415:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2387:45:66"},{"expression":{"id":43361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43357,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43353,"src":"2442:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":43359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2444:6:66","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43245,"src":"2442:8:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":43360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2453:5:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2442:16:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43362,"nodeType":"ExpressionStatement","src":"2442:16:66"},{"eventCall":{"arguments":[{"expression":{"id":43364,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2482:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2486:6:66","memberName":"sender","nodeType":"MemberAccess","src":"2482:10:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43363,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43256,"src":"2473:8:66","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":43366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2473:20:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43367,"nodeType":"EmitStatement","src":"2468:25:66"}]},"documentation":{"id":43345,"nodeType":"StructuredDocumentation","src":"2195:121:66","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_unpause","nameLocation":"2330:8:66","parameters":{"id":43346,"nodeType":"ParameterList","parameters":[],"src":"2338:2:66"},"returnParameters":{"id":43347,"nodeType":"ParameterList","parameters":[],"src":"2351:0:66"},"scope":43385,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43384,"nodeType":"FunctionDefinition","src":"2543:258:66","nodes":[],"body":{"id":43383,"nodeType":"Block","src":"2620:181:66","nodes":[],"statements":[{"assignments":[43377],"declarations":[{"constant":false,"id":43377,"mutability":"mutable","name":"position","nameLocation":"2638:8:66","nodeType":"VariableDeclaration","scope":43383,"src":"2630:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43376,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2630:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43379,"initialValue":{"id":43378,"name":"NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43243,"src":"2649:9:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2630:28:66"},{"AST":{"nodeType":"YulBlock","src":"2733:43:66","statements":[{"nodeType":"YulAssignment","src":"2747:19:66","value":{"name":"position","nodeType":"YulIdentifier","src":"2758:8:66"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2747:7:66"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":43374,"isOffset":false,"isSlot":true,"src":"2747:7:66","suffix":"slot","valueSize":1},{"declaration":43377,"isOffset":false,"isSlot":false,"src":"2758:8:66","valueSize":1}],"id":43380,"nodeType":"InlineAssembly","src":"2724:52:66"},{"expression":{"id":43381,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43374,"src":"2792:2:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"functionReturnParameters":43375,"id":43382,"nodeType":"Return","src":"2785:9:66"}]},"documentation":{"id":43370,"nodeType":"StructuredDocumentation","src":"2506:32:66","text":"@notice get the storage slot"},"implemented":true,"kind":"function","modifiers":[],"name":"pausableStorage","nameLocation":"2552:15:66","parameters":{"id":43371,"nodeType":"ParameterList","parameters":[],"src":"2567:2:66"},"returnParameters":{"id":43375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43374,"mutability":"mutable","name":"ds","nameLocation":"2616:2:66","nodeType":"VariableDeclaration","scope":43384,"src":"2592:26:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43373,"nodeType":"UserDefinedTypeName","pathNode":{"id":43372,"name":"PausableStorage","nameLocations":["2592:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43246,"src":"2592:15:66"},"referencedDeclaration":43246,"src":"2592:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43246_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"src":"2591:28:66"},"scope":43385,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"Pausable","contractDependencies":[],"contractKind":"contract","documentation":{"id":43238,"nodeType":"StructuredDocumentation","src":"71:107:66","text":"@title Pausable Library\n @notice Abstract contract that enables contract to pause marked operations"},"fullyImplemented":true,"linearizedBaseContracts":[43385],"name":"Pausable","nameLocation":"196:8:66","scope":43386,"usedErrors":[43259,43262]}],"license":"MIT OR Apache-2.0"},"id":66} \ No newline at end of file diff --git a/.out/LibQuorum.sol/LibQuorum.json b/.out/LibQuorum.sol/LibQuorum.json index 3efbbadb3..0baeb663d 100644 --- a/.out/LibQuorum.sol/LibQuorum.json +++ b/.out/LibQuorum.sol/LibQuorum.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"QuorumReached","inputs":[{"name":"objKind","type":"uint8","indexed":false,"internalType":"enum QuorumObjKind"},{"name":"height","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"quorumWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"QuorumWeightUpdated","inputs":[{"name":"objKind","type":"uint8","indexed":false,"internalType":"enum QuorumObjKind"},{"name":"height","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"newWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461001a576104519081610020823930815050f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c6308a6ad251461002857600080fd5b604036600319011261038057608081610042600093610385565b8281528260208201528260408201528260608201520152602435600052600260043501602052604060002060ff60046040519261007e84610385565b8054845260018101546020850152600281015460408501526003810154606085015201541615156080820152602435600052600560043501602052604060002090604051908182602085549283815201809560005260206000209260005b8181106103675750506100f1925003836103b7565b8151906100fd826103d9565b9161010b60405193846103b7565b808352610117816103d9565b60005b601f198201811061035657505060005b81811061023657505060405192608060e08501928051865260208101516020870152604081015160408701526060810151606087015201511515608085015260e060a0850152518091526101008301939060005b8181106102175750505081830360c0830152805180845260208401906020808260051b8701019301916000955b8287106101b85785850386f35b90919293601f19828203018352845180519081835260005b82811061020257505060208083836000838096600198010152601f8019910116010196019301960195909291926101ab565b806020809284010151828287010152016101d0565b82516001600160a01b031686526020958601959092019160010161017e565b6024356000908152600435600601602052604090206001600160a01b0361025d83886103f1565b51166000526020526040600020604051906000908054908160011c91600181161561034c575b602083106001821614610336578285526001811690811561030f57506001146102d5575b5050906102b9816001949303826103b7565b6102c382876103f1565b526102ce81866103f1565b500161012a565b6000908152602081209092505b8183106102f957505081016020016102b9826102a7565b60018160209254838688010152019201916102e2565b60ff191660208087019190915292151560051b850190920192506102b991508390506102a7565b634e487b7160e01b600052602260045260246000fd5b91607f1691610283565b80606060208093880101520161011a565b84548352600194850194879450602090930192016100dc565b600080fd5b60a0810190811067ffffffffffffffff8211176103a157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176103a157604052565b67ffffffffffffffff81116103a15760051b60200190565b80518210156104055760209160051b010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212209ed2f9ce15a873f1f365bbc4e26fc3aa06f06555dff574f2541a76689361b5e964736f6c63430008130033","sourceMap":"633:7463:67:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c6308a6ad251461002857600080fd5b604036600319011261038057608081610042600093610385565b8281528260208201528260408201528260608201520152602435600052600260043501602052604060002060ff60046040519261007e84610385565b8054845260018101546020850152600281015460408501526003810154606085015201541615156080820152602435600052600560043501602052604060002090604051908182602085549283815201809560005260206000209260005b8181106103675750506100f1925003836103b7565b8151906100fd826103d9565b9161010b60405193846103b7565b808352610117816103d9565b60005b601f198201811061035657505060005b81811061023657505060405192608060e08501928051865260208101516020870152604081015160408701526060810151606087015201511515608085015260e060a0850152518091526101008301939060005b8181106102175750505081830360c0830152805180845260208401906020808260051b8701019301916000955b8287106101b85785850386f35b90919293601f19828203018352845180519081835260005b82811061020257505060208083836000838096600198010152601f8019910116010196019301960195909291926101ab565b806020809284010151828287010152016101d0565b82516001600160a01b031686526020958601959092019160010161017e565b6024356000908152600435600601602052604090206001600160a01b0361025d83886103f1565b51166000526020526040600020604051906000908054908160011c91600181161561034c575b602083106001821614610336578285526001811690811561030f57506001146102d5575b5050906102b9816001949303826103b7565b6102c382876103f1565b526102ce81866103f1565b500161012a565b6000908152602081209092505b8183106102f957505081016020016102b9826102a7565b60018160209254838688010152019201916102e2565b60ff191660208087019190915292151560051b850190920192506102b991508390506102a7565b634e487b7160e01b600052602260045260246000fd5b91607f1691610283565b80606060208093880101520161011a565b84548352600194850194879450602090930192016100dc565b600080fd5b60a0810190811067ffffffffffffffff8211176103a157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176103a157604052565b67ffffffffffffffff81116103a15760051b60200190565b80518210156104055760209160051b010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212209ed2f9ce15a873f1f365bbc4e26fc3aa06f06555dff574f2541a76689361b5e964736f6c63430008130033","sourceMap":"633:7463:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;633:7463:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7704:15;633:7463;;7704:15;633:7463;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7704:15;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;7746:27;633:7463;;7746:27;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;633:7463:67;;;;;;7879:9;;633:7463;7890:5;;;;;;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7746:27;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;633:7463:67;;;;;;;;;;;;;;;;7879:9;633:7463;;;;;;;;7929:21;;633:7463;;;;;-1:-1:-1;;;;;7954:14:67;;;;:::i;:::-;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;7879:9;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7913:56;;;;:::i;:::-;;;;;;:::i;:::-;;633:7463;7879:9;;633:7463;;;;;;;;;;-1:-1:-1;633:7463:67;;;;;;-1:-1:-1;;633:7463:67;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;633:7463:67;;;;;;;;;;;;7746:27;633:7463;;;;;;;-1:-1:-1;633:7463:67;;-1:-1:-1;633:7463:67;;-1:-1:-1;633:7463:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;633:7463:67;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getSignatureBundle(QuorumMap storage,uint256)":"08a6ad25"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum QuorumObjKind\",\"name\":\"objKind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"objHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumWeight\",\"type\":\"uint256\"}],\"name\":\"QuorumReached\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum QuorumObjKind\",\"name\":\"objKind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"objHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWeight\",\"type\":\"uint256\"}],\"name\":\"QuorumWeightUpdated\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSignatureBundle(QuorumMap storage,uint256)\":{\"notice\":\"get quorum signature bundle consisting of the info, signatories and the corresponding signatures.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibQuorum.sol\":\"LibQuorum\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum QuorumObjKind","name":"objKind","type":"uint8","indexed":false},{"internalType":"uint256","name":"height","type":"uint256","indexed":false},{"internalType":"bytes32","name":"objHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"quorumWeight","type":"uint256","indexed":false}],"type":"event","name":"QuorumReached","anonymous":false},{"inputs":[{"internalType":"enum QuorumObjKind","name":"objKind","type":"uint8","indexed":false},{"internalType":"uint256","name":"height","type":"uint256","indexed":false},{"internalType":"bytes32","name":"objHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"newWeight","type":"uint256","indexed":false}],"type":"event","name":"QuorumWeightUpdated","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getSignatureBundle(QuorumMap storage,uint256)":{"notice":"get quorum signature bundle consisting of the info, signatories and the corresponding signatures."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibQuorum.sol":"LibQuorum"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibQuorum.sol","id":43949,"exportedSymbols":{"ECDSA":[33525],"EnumerableSet":[35815],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"LibQuorum":[43948],"MerkleProof":[34060],"NotAuthorized":[37458],"QuorumAlreadyProcessed":[37384],"QuorumInfo":[50028],"QuorumMap":[50059],"QuorumObjKind":[50012],"SignatureReplay":[37502],"ZeroMembershipWeight":[37512]},"nodeType":"SourceUnit","src":"46:8051:67","nodes":[{"id":43434,"nodeType":"PragmaDirective","src":"46:23:67","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43438,"nodeType":"ImportDirective","src":"71:75:67","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":43949,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":43435,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50059,"src":"79:9:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43436,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50028,"src":"90:10:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43437,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"102:13:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43448,"nodeType":"ImportDirective","src":"147:236:67","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":43949,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":43439,"name":"InvalidRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37432,"src":"155:22:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43440,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37384,"src":"179:22:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43441,"name":"FailedAddSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37396,"src":"203:18:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43442,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37434,"src":"223:16:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43443,"name":"SignatureReplay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37502,"src":"241:15:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43444,"name":"NotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37458,"src":"258:13:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43445,"name":"FailedRemoveIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37398,"src":"273:28:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43446,"name":"ZeroMembershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37512,"src":"303:20:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43447,"name":"FailedAddIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37394,"src":"325:25:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43450,"nodeType":"ImportDirective","src":"384:86:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol","file":"openzeppelin-contracts/utils/cryptography/MerkleProof.sol","nameLocation":"-1:-1:-1","scope":43949,"sourceUnit":34061,"symbolAliases":[{"foreign":{"id":43449,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34060,"src":"392:11:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43452,"nodeType":"ImportDirective","src":"471:74:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"openzeppelin-contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":43949,"sourceUnit":33526,"symbolAliases":[{"foreign":{"id":43451,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"479:5:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43454,"nodeType":"ImportDirective","src":"546:85:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":43949,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":43453,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"554:13:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43948,"nodeType":"ContractDefinition","src":"633:7463:67","nodes":[{"id":43458,"nodeType":"UsingForDirective","src":"657:46:67","nodes":[],"global":false,"libraryName":{"id":43455,"name":"EnumerableSet","nameLocations":["663:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"663:13:67"},"typeName":{"id":43457,"nodeType":"UserDefinedTypeName","pathNode":{"id":43456,"name":"EnumerableSet.UintSet","nameLocations":["681:13:67","695:7:67"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"681:21:67"},"referencedDeclaration":35685,"src":"681:21:67","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"id":43462,"nodeType":"UsingForDirective","src":"708:49:67","nodes":[],"global":false,"libraryName":{"id":43459,"name":"EnumerableSet","nameLocations":["714:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"714:13:67"},"typeName":{"id":43461,"nodeType":"UserDefinedTypeName","pathNode":{"id":43460,"name":"EnumerableSet.AddressSet","nameLocations":["732:13:67","746:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"732:24:67"},"referencedDeclaration":35528,"src":"732:24:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":43473,"nodeType":"EventDefinition","src":"763:98:67","nodes":[],"anonymous":false,"eventSelector":"c08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494","name":"QuorumReached","nameLocation":"769:13:67","parameters":{"id":43472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43465,"indexed":false,"mutability":"mutable","name":"objKind","nameLocation":"797:7:67","nodeType":"VariableDeclaration","scope":43473,"src":"783:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"typeName":{"id":43464,"nodeType":"UserDefinedTypeName","pathNode":{"id":43463,"name":"QuorumObjKind","nameLocations":["783:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"783:13:67"},"referencedDeclaration":50012,"src":"783:13:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":43467,"indexed":false,"mutability":"mutable","name":"height","nameLocation":"814:6:67","nodeType":"VariableDeclaration","scope":43473,"src":"806:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43466,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43469,"indexed":false,"mutability":"mutable","name":"objHash","nameLocation":"830:7:67","nodeType":"VariableDeclaration","scope":43473,"src":"822:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43468,"name":"bytes32","nodeType":"ElementaryTypeName","src":"822:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43471,"indexed":false,"mutability":"mutable","name":"quorumWeight","nameLocation":"847:12:67","nodeType":"VariableDeclaration","scope":43473,"src":"839:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43470,"name":"uint256","nodeType":"ElementaryTypeName","src":"839:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"782:78:67"}},{"id":43484,"nodeType":"EventDefinition","src":"866:101:67","nodes":[],"anonymous":false,"eventSelector":"103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc","name":"QuorumWeightUpdated","nameLocation":"872:19:67","parameters":{"id":43483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43476,"indexed":false,"mutability":"mutable","name":"objKind","nameLocation":"906:7:67","nodeType":"VariableDeclaration","scope":43484,"src":"892:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"typeName":{"id":43475,"nodeType":"UserDefinedTypeName","pathNode":{"id":43474,"name":"QuorumObjKind","nameLocations":["892:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"892:13:67"},"referencedDeclaration":50012,"src":"892:13:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":43478,"indexed":false,"mutability":"mutable","name":"height","nameLocation":"923:6:67","nodeType":"VariableDeclaration","scope":43484,"src":"915:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43477,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43480,"indexed":false,"mutability":"mutable","name":"objHash","nameLocation":"939:7:67","nodeType":"VariableDeclaration","scope":43484,"src":"931:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"931:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43482,"indexed":false,"mutability":"mutable","name":"newWeight","nameLocation":"956:9:67","nodeType":"VariableDeclaration","scope":43484,"src":"948:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43481,"name":"uint256","nodeType":"ElementaryTypeName","src":"948:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:75:67"}},{"id":43664,"nodeType":"FunctionDefinition","src":"1539:2472:67","nodes":[],"body":{"id":43663,"nodeType":"Block","src":"1736:2275:67","nodes":[],"statements":[{"assignments":[43502],"declarations":[{"constant":false,"id":43502,"mutability":"mutable","name":"info","nameLocation":"1803:4:67","nodeType":"VariableDeclaration","scope":43663,"src":"1784:23:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":43501,"nodeType":"UserDefinedTypeName","pathNode":{"id":43500,"name":"QuorumInfo","nameLocations":["1784:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"1784:10:67"},"referencedDeclaration":50028,"src":"1784:10:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"id":43507,"initialValue":{"baseExpression":{"expression":{"id":43503,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"1810:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1815:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"1810:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43506,"indexExpression":{"id":43505,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"1826:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1810:23:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1784:49:67"},{"assignments":[43509,43512,null],"declarations":[{"constant":false,"id":43509,"mutability":"mutable","name":"recoveredSignatory","nameLocation":"1904:18:67","nodeType":"VariableDeclaration","scope":43663,"src":"1896:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43508,"name":"address","nodeType":"ElementaryTypeName","src":"1896:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43512,"mutability":"mutable","name":"err","nameLocation":"1943:3:67","nodeType":"VariableDeclaration","scope":43663,"src":"1924:22:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":43511,"nodeType":"UserDefinedTypeName","pathNode":{"id":43510,"name":"ECDSA.RecoverError","nameLocations":["1924:5:67","1930:12:67"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"1924:18:67"},"referencedDeclaration":33122,"src":"1924:18:67","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},null],"id":43519,"initialValue":{"arguments":[{"expression":{"id":43515,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"1969:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1974:4:67","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":50015,"src":"1969:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43517,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43497,"src":"1980:9:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":43513,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"1952:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1958:10:67","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":33236,"src":"1952:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":43518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1952:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"1895:95:67"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"id":43524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43520,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43512,"src":"2004:3:67","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":43521,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"2011:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2017:12:67","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":33122,"src":"2011:18:67","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":43523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2030:7:67","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":33118,"src":"2011:26:67","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"src":"2004:33:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43529,"nodeType":"IfStatement","src":"2000:89:67","trueBody":{"id":43528,"nodeType":"Block","src":"2039:50:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43525,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37434,"src":"2060:16:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43527,"nodeType":"RevertStatement","src":"2053:25:67"}]}},{"condition":{"arguments":[{"id":43535,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43509,"src":"2222:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":43530,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"2177:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2182:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50051,"src":"2177:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43533,"indexExpression":{"id":43532,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"2205:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2177:35:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2213:8:67","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35609,"src":"2177:44:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":43536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2177:64:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43541,"nodeType":"IfStatement","src":"2173:119:67","trueBody":{"id":43540,"nodeType":"Block","src":"2243:49:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43537,"name":"SignatureReplay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37502,"src":"2264:15:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2264:17:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43539,"nodeType":"RevertStatement","src":"2257:24:67"}]}},{"assignments":[43543],"declarations":[{"constant":false,"id":43543,"mutability":"mutable","name":"validatorLeaf","nameLocation":"2499:13:67","nodeType":"VariableDeclaration","scope":43663,"src":"2491:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2491:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43557,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":43551,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43509,"src":"2559:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43552,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43495,"src":"2579:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43549,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2548:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2552:6:67","memberName":"encode","nodeType":"MemberAccess","src":"2548:10:67","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":43553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2548:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43548,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2538:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2538:49:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":43546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2525:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":43545,"name":"bytes","nodeType":"ElementaryTypeName","src":"2525:5:67","typeDescriptions":{}}},"id":43547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2531:6:67","memberName":"concat","nodeType":"MemberAccess","src":"2525:12:67","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":43555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2525:63:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43544,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2515:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2515:74:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2491:98:67"},{"assignments":[43559],"declarations":[{"constant":false,"id":43559,"mutability":"mutable","name":"valid","nameLocation":"2604:5:67","nodeType":"VariableDeclaration","scope":43663,"src":"2599:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43558,"name":"bool","nodeType":"ElementaryTypeName","src":"2599:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43567,"initialValue":{"arguments":[{"id":43562,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43493,"src":"2639:15:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"expression":{"id":43563,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"2662:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2667:8:67","memberName":"rootHash","nodeType":"MemberAccess","referencedDeclaration":50018,"src":"2662:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43565,"name":"validatorLeaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43543,"src":"2683:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":43560,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34060,"src":"2612:11:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$34060_$","typeString":"type(library MerkleProof)"}},"id":43561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2624:6:67","memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":33552,"src":"2612:18:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"}},"id":43566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2632:5:67","2656:4:67","2677:4:67"],"names":["proof","root","leaf"],"nodeType":"FunctionCall","src":"2612:86:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2599:99:67"},{"condition":{"id":43569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2712:6:67","subExpression":{"id":43568,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43559,"src":"2713:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43575,"nodeType":"IfStatement","src":"2708:77:67","trueBody":{"id":43574,"nodeType":"Block","src":"2720:65:67","statements":[{"errorCall":{"arguments":[{"id":43571,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43509,"src":"2755:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43570,"name":"NotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37458,"src":"2741:13:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":43572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2741:33:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43573,"nodeType":"RevertStatement","src":"2734:40:67"}]}},{"assignments":[43577],"declarations":[{"constant":false,"id":43577,"mutability":"mutable","name":"ok","nameLocation":"2880:2:67","nodeType":"VariableDeclaration","scope":43663,"src":"2875:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43576,"name":"bool","nodeType":"ElementaryTypeName","src":"2875:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43585,"initialValue":{"arguments":[{"id":43583,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43509,"src":"2925:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":43578,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"2885:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2890:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50051,"src":"2885:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43581,"indexExpression":{"id":43580,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"2913:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2885:35:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2921:3:67","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"2885:39:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":43584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2875:69:67"},{"condition":{"id":43587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2958:3:67","subExpression":{"id":43586,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43577,"src":"2959:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43592,"nodeType":"IfStatement","src":"2954:61:67","trueBody":{"id":43591,"nodeType":"Block","src":"2963:52:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43588,"name":"FailedAddSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37396,"src":"2984:18:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2984:20:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43590,"nodeType":"RevertStatement","src":"2977:27:67"}]}},{"expression":{"id":43601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":43593,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"3024:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3029:16:67","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":50058,"src":"3024:21:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":43598,"indexExpression":{"id":43595,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"3046:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3024:29:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":43599,"indexExpression":{"id":43596,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43509,"src":"3054:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3024:49:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43600,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43497,"src":"3076:9:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3024:61:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":43602,"nodeType":"ExpressionStatement","src":"3024:61:67"},{"expression":{"id":43607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43603,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3095:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3100:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"3095:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":43606,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43495,"src":"3117:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3095:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43608,"nodeType":"ExpressionStatement","src":"3095:28:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43609,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3138:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3143:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"3138:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":43611,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3160:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3165:9:67","memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":50021,"src":"3160:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3138:36:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43662,"nodeType":"IfStatement","src":"3134:871:67","trueBody":{"id":43661,"nodeType":"Block","src":"3176:829:67","statements":[{"condition":{"id":43616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3194:13:67","subExpression":{"expression":{"id":43614,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3195:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3200:7:67","memberName":"reached","nodeType":"MemberAccess","referencedDeclaration":50027,"src":"3195:12:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43659,"nodeType":"Block","src":"3742:253:67","statements":[{"eventCall":{"arguments":[{"expression":{"id":43650,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"3816:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3821:13:67","memberName":"quorumObjKind","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"3816:18:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},{"id":43652,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"3864:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43653,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3901:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3906:4:67","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":50015,"src":"3901:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":43655,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3943:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3948:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"3943:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43649,"name":"QuorumWeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43484,"src":"3765:19:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_QuorumObjKind_$50012_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (enum QuorumObjKind,uint256,bytes32,uint256)"}},"id":43657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3807:7:67","3856:6:67","3892:7:67","3932:9:67"],"names":["objKind","height","objHash","newWeight"],"nodeType":"FunctionCall","src":"3765:215:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43658,"nodeType":"EmitStatement","src":"3760:220:67"}]},"id":43660,"nodeType":"IfStatement","src":"3190:805:67","trueBody":{"id":43648,"nodeType":"Block","src":"3209:527:67","statements":[{"expression":{"id":43621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43617,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3227:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3232:7:67","memberName":"reached","nodeType":"MemberAccess","referencedDeclaration":50027,"src":"3227:12:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":43620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3242:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3227:19:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43622,"nodeType":"ExpressionStatement","src":"3227:19:67"},{"expression":{"id":43629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43623,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43577,"src":"3340:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43627,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"3375:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":43624,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"3345:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3350:17:67","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"3345:22:67","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":43626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3368:6:67","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35727,"src":"3345:29:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$35685_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":43628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3345:37:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3340:42:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43630,"nodeType":"ExpressionStatement","src":"3340:42:67"},{"condition":{"id":43632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3404:3:67","subExpression":{"id":43631,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43577,"src":"3405:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43637,"nodeType":"IfStatement","src":"3400:87:67","trueBody":{"id":43636,"nodeType":"Block","src":"3409:78:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43633,"name":"FailedRemoveIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37398,"src":"3438:28:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3438:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43635,"nodeType":"RevertStatement","src":"3431:37:67"}]}},{"eventCall":{"arguments":[{"expression":{"id":43639,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"3554:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3559:13:67","memberName":"quorumObjKind","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"3554:18:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},{"id":43641,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"3602:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43642,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3639:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3644:4:67","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":50015,"src":"3639:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":43644,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3684:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3689:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"3684:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43638,"name":"QuorumReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43473,"src":"3509:13:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_QuorumObjKind_$50012_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (enum QuorumObjKind,uint256,bytes32,uint256)"}},"id":43646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3545:7:67","3594:6:67","3630:7:67","3670:12:67"],"names":["objKind","height","objHash","quorumWeight"],"nodeType":"FunctionCall","src":"3509:212:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43647,"nodeType":"EmitStatement","src":"3504:217:67"}]}}]}}]},"documentation":{"id":43485,"nodeType":"StructuredDocumentation","src":"973:561:67","text":"@notice checks whether the provided quorum signature for the block at height `height` is valid and accumulates that it\n @dev If adding the signature leads to reaching the threshold, then the info is removed from `incompleteQuorums`\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the object we are agreen on"},"implemented":true,"kind":"function","modifiers":[],"name":"addQuorumSignature","nameLocation":"1548:18:67","parameters":{"id":43498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43488,"mutability":"mutable","name":"self","nameLocation":"1594:4:67","nodeType":"VariableDeclaration","scope":43664,"src":"1576:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43487,"nodeType":"UserDefinedTypeName","pathNode":{"id":43486,"name":"QuorumMap","nameLocations":["1576:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"1576:9:67"},"referencedDeclaration":50059,"src":"1576:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43490,"mutability":"mutable","name":"height","nameLocation":"1616:6:67","nodeType":"VariableDeclaration","scope":43664,"src":"1608:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43489,"name":"uint256","nodeType":"ElementaryTypeName","src":"1608:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43493,"mutability":"mutable","name":"membershipProof","nameLocation":"1649:15:67","nodeType":"VariableDeclaration","scope":43664,"src":"1632:32:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":43491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1632:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":43492,"nodeType":"ArrayTypeName","src":"1632:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":43495,"mutability":"mutable","name":"weight","nameLocation":"1682:6:67","nodeType":"VariableDeclaration","scope":43664,"src":"1674:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1674:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43497,"mutability":"mutable","name":"signature","nameLocation":"1711:9:67","nodeType":"VariableDeclaration","scope":43664,"src":"1698:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43496,"name":"bytes","nodeType":"ElementaryTypeName","src":"1698:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1566:160:67"},"returnParameters":{"id":43499,"nodeType":"ParameterList","parameters":[],"src":"1736:0:67"},"scope":43948,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43740,"nodeType":"FunctionDefinition","src":"4454:976:67","nodes":[],"body":{"id":43739,"nodeType":"Block","src":"4685:745:67","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43681,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"4699:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43682,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43668,"src":"4711:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4716:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"4711:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4699:32:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43689,"nodeType":"IfStatement","src":"4695:94:67","trueBody":{"id":43688,"nodeType":"Block","src":"4733:56:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43685,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37384,"src":"4754:22:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4754:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43687,"nodeType":"RevertStatement","src":"4747:31:67"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43690,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43676,"src":"4803:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4823:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4803:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43697,"nodeType":"IfStatement","src":"4799:81:67","trueBody":{"id":43696,"nodeType":"Block","src":"4826:54:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43693,"name":"ZeroMembershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37512,"src":"4847:20:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43695,"nodeType":"RevertStatement","src":"4840:29:67"}]}},{"assignments":[43699],"declarations":[{"constant":false,"id":43699,"mutability":"mutable","name":"threshold","nameLocation":"4898:9:67","nodeType":"VariableDeclaration","scope":43739,"src":"4890:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43698,"name":"uint256","nodeType":"ElementaryTypeName","src":"4890:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43704,"initialValue":{"arguments":[{"id":43701,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43676,"src":"4923:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43702,"name":"majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43678,"src":"4941:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43700,"name":"weightNeeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43869,"src":"4910:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":43703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4910:50:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4890:70:67"},{"assignments":[43706],"declarations":[{"constant":false,"id":43706,"mutability":"mutable","name":"ok","nameLocation":"5010:2:67","nodeType":"VariableDeclaration","scope":43739,"src":"5005:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43705,"name":"bool","nodeType":"ElementaryTypeName","src":"5005:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43712,"initialValue":{"arguments":[{"id":43710,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"5042:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":43707,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43668,"src":"5015:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5020:17:67","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"5015:22:67","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":43709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5038:3:67","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35706,"src":"5015:26:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$35685_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":43711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5015:37:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5005:47:67"},{"condition":{"id":43714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5066:3:67","subExpression":{"id":43713,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43706,"src":"5067:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43719,"nodeType":"IfStatement","src":"5062:68:67","trueBody":{"id":43718,"nodeType":"Block","src":"5071:59:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43715,"name":"FailedAddIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37394,"src":"5092:25:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5092:27:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43717,"nodeType":"RevertStatement","src":"5085:34:67"}]}},{"assignments":[43722],"declarations":[{"constant":false,"id":43722,"mutability":"mutable","name":"info","nameLocation":"5158:4:67","nodeType":"VariableDeclaration","scope":43739,"src":"5140:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":43721,"nodeType":"UserDefinedTypeName","pathNode":{"id":43720,"name":"QuorumInfo","nameLocations":["5140:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"5140:10:67"},"referencedDeclaration":50028,"src":"5140:10:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"id":43730,"initialValue":{"arguments":[{"id":43724,"name":"objHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43672,"src":"5196:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43725,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43674,"src":"5227:18:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43726,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43699,"src":"5270:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":43727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5308:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"66616c7365","id":43728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5332:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":43723,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50028,"src":"5165:10:67","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_QuorumInfo_$50028_storage_ptr_$","typeString":"type(struct QuorumInfo storage pointer)"}},"id":43729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5190:4:67","5217:8:67","5259:9:67","5293:13:67","5323:7:67"],"names":["hash","rootHash","threshold","currentWeight","reached"],"nodeType":"FunctionCall","src":"5165:183:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"5140:208:67"},{"expression":{"id":43737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":43731,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43668,"src":"5390:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5395:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"5390:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43735,"indexExpression":{"id":43733,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"5406:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5390:26:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43736,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43722,"src":"5419:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},"src":"5390:33:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"id":43738,"nodeType":"ExpressionStatement","src":"5390:33:67"}]},"documentation":{"id":43665,"nodeType":"StructuredDocumentation","src":"4017:432:67","text":"@notice creates the quorum info from a quorum object.\n @param objHeight - height of the quorum object\n @param objHash - hash of the object\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership\n @param majorityPercentage - the majorityPercentage required to reach quorum"},"implemented":true,"kind":"function","modifiers":[],"name":"createQuorumInfo","nameLocation":"4463:16:67","parameters":{"id":43679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43668,"mutability":"mutable","name":"self","nameLocation":"4507:4:67","nodeType":"VariableDeclaration","scope":43740,"src":"4489:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43667,"nodeType":"UserDefinedTypeName","pathNode":{"id":43666,"name":"QuorumMap","nameLocations":["4489:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"4489:9:67"},"referencedDeclaration":50059,"src":"4489:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43670,"mutability":"mutable","name":"objHeight","nameLocation":"4529:9:67","nodeType":"VariableDeclaration","scope":43740,"src":"4521:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43669,"name":"uint256","nodeType":"ElementaryTypeName","src":"4521:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43672,"mutability":"mutable","name":"objHash","nameLocation":"4556:7:67","nodeType":"VariableDeclaration","scope":43740,"src":"4548:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4548:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43674,"mutability":"mutable","name":"membershipRootHash","nameLocation":"4581:18:67","nodeType":"VariableDeclaration","scope":43740,"src":"4573:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43673,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4573:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43676,"mutability":"mutable","name":"membershipWeight","nameLocation":"4617:16:67","nodeType":"VariableDeclaration","scope":43740,"src":"4609:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43675,"name":"uint256","nodeType":"ElementaryTypeName","src":"4609:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43678,"mutability":"mutable","name":"majorityPercentage","nameLocation":"4651:18:67","nodeType":"VariableDeclaration","scope":43740,"src":"4643:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43677,"name":"uint256","nodeType":"ElementaryTypeName","src":"4643:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4479:196:67"},"returnParameters":{"id":43680,"nodeType":"ParameterList","parameters":[],"src":"4685:0:67"},"scope":43948,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43833,"nodeType":"FunctionDefinition","src":"5907:864:67","nodes":[],"body":{"id":43832,"nodeType":"Block","src":"5990:781:67","nodes":[],"statements":[{"assignments":[43750],"declarations":[{"constant":false,"id":43750,"mutability":"mutable","name":"oldRetentionHeight","nameLocation":"6009:18:67","nodeType":"VariableDeclaration","scope":43832,"src":"6001:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43749,"name":"uint256","nodeType":"ElementaryTypeName","src":"6001:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43753,"initialValue":{"expression":{"id":43751,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6030:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6035:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"6030:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6001:49:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43754,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43746,"src":"6065:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43755,"name":"oldRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43750,"src":"6087:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6065:40:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43761,"nodeType":"IfStatement","src":"6061:102:67","trueBody":{"id":43760,"nodeType":"Block","src":"6107:56:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43757,"name":"InvalidRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37432,"src":"6128:22:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6128:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43759,"nodeType":"RevertStatement","src":"6121:31:67"}]}},{"body":{"id":43824,"nodeType":"Block","src":"6236:477:67","statements":[{"expression":{"id":43773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6250:25:67","subExpression":{"baseExpression":{"expression":{"id":43769,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6257:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6262:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"6257:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43772,"indexExpression":{"id":43771,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6273:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6257:18:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43774,"nodeType":"ExpressionStatement","src":"6250:25:67"},{"expression":{"id":43779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6289:37:67","subExpression":{"baseExpression":{"expression":{"id":43775,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6296:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6301:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50051,"src":"6296:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43778,"indexExpression":{"id":43777,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6324:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6296:30:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43780,"nodeType":"ExpressionStatement","src":"6289:37:67"},{"assignments":[43785],"declarations":[{"constant":false,"id":43785,"mutability":"mutable","name":"validators","nameLocation":"6358:10:67","nodeType":"VariableDeclaration","scope":43824,"src":"6341:27:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43783,"name":"address","nodeType":"ElementaryTypeName","src":"6341:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43784,"nodeType":"ArrayTypeName","src":"6341:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":43792,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43786,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6371:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43787,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6376:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50051,"src":"6371:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43789,"indexExpression":{"id":43788,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6399:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6371:30:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6402:6:67","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"6371:37:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":43791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6371:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6341:69:67"},{"assignments":[43794],"declarations":[{"constant":false,"id":43794,"mutability":"mutable","name":"n","nameLocation":"6432:1:67","nodeType":"VariableDeclaration","scope":43824,"src":"6424:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43793,"name":"uint256","nodeType":"ElementaryTypeName","src":"6424:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43797,"initialValue":{"expression":{"id":43795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43785,"src":"6436:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6447:6:67","memberName":"length","nodeType":"MemberAccess","src":"6436:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6424:29:67"},{"body":{"id":43818,"nodeType":"Block","src":"6493:150:67","statements":[{"expression":{"id":43812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6511:46:67","subExpression":{"baseExpression":{"baseExpression":{"expression":{"id":43804,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6518:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6523:16:67","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":50058,"src":"6518:21:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":43807,"indexExpression":{"id":43806,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6540:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6518:24:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":43811,"indexExpression":{"baseExpression":{"id":43808,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43785,"src":"6543:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43810,"indexExpression":{"id":43809,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43799,"src":"6554:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6543:13:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6518:39:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43813,"nodeType":"ExpressionStatement","src":"6511:46:67"},{"id":43817,"nodeType":"UncheckedBlock","src":"6575:54:67","statements":[{"expression":{"id":43815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6607:3:67","subExpression":{"id":43814,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43799,"src":"6609:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43816,"nodeType":"ExpressionStatement","src":"6607:3:67"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43801,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43799,"src":"6484:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43802,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6488:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6484:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43819,"initializationExpression":{"assignments":[43799],"declarations":[{"constant":false,"id":43799,"mutability":"mutable","name":"i","nameLocation":"6481:1:67","nodeType":"VariableDeclaration","scope":43819,"src":"6473:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43798,"name":"uint256","nodeType":"ElementaryTypeName","src":"6473:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43800,"nodeType":"VariableDeclarationStatement","src":"6473:9:67"},"nodeType":"ForStatement","src":"6468:175:67"},{"id":43823,"nodeType":"UncheckedBlock","src":"6657:46:67","statements":[{"expression":{"id":43821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6685:3:67","subExpression":{"id":43820,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6687:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43822,"nodeType":"ExpressionStatement","src":"6685:3:67"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43766,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6210:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43767,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43746,"src":"6214:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6210:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43825,"initializationExpression":{"assignments":[43763],"declarations":[{"constant":false,"id":43763,"mutability":"mutable","name":"h","nameLocation":"6186:1:67","nodeType":"VariableDeclaration","scope":43825,"src":"6178:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43762,"name":"uint256","nodeType":"ElementaryTypeName","src":"6178:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43765,"initialValue":{"id":43764,"name":"oldRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43750,"src":"6190:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6178:30:67"},"nodeType":"ForStatement","src":"6173:540:67"},{"expression":{"id":43830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43826,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6723:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6728:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"6723:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43829,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43746,"src":"6746:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6723:41:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43831,"nodeType":"ExpressionStatement","src":"6723:41:67"}]},"documentation":{"id":43741,"nodeType":"StructuredDocumentation","src":"5436:466:67","text":"@notice Set a new retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\n @dev `retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing.\n All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\n @param newRetentionHeight - the height of the oldest checkpoint to keep"},"implemented":true,"kind":"function","modifiers":[],"name":"pruneQuorums","nameLocation":"5916:12:67","parameters":{"id":43747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43744,"mutability":"mutable","name":"self","nameLocation":"5947:4:67","nodeType":"VariableDeclaration","scope":43833,"src":"5929:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43743,"nodeType":"UserDefinedTypeName","pathNode":{"id":43742,"name":"QuorumMap","nameLocations":["5929:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"5929:9:67"},"referencedDeclaration":50059,"src":"5929:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43746,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"5961:18:67","nodeType":"VariableDeclaration","scope":43833,"src":"5953:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43745,"name":"uint256","nodeType":"ElementaryTypeName","src":"5953:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5928:52:67"},"returnParameters":{"id":43748,"nodeType":"ParameterList","parameters":[],"src":"5990:0:67"},"scope":43948,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43851,"nodeType":"FunctionDefinition","src":"6777:217:67","nodes":[],"body":{"id":43850,"nodeType":"Block","src":"6887:107:67","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43841,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43838,"src":"6901:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43842,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43836,"src":"6910:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6915:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"6910:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6901:29:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43849,"nodeType":"IfStatement","src":"6897:91:67","trueBody":{"id":43848,"nodeType":"Block","src":"6932:56:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43845,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37384,"src":"6953:22:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6953:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43847,"nodeType":"RevertStatement","src":"6946:31:67"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"isHeightAlreadyProcessed","nameLocation":"6786:24:67","parameters":{"id":43839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43836,"mutability":"mutable","name":"self","nameLocation":"6838:4:67","nodeType":"VariableDeclaration","scope":43851,"src":"6820:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43835,"nodeType":"UserDefinedTypeName","pathNode":{"id":43834,"name":"QuorumMap","nameLocations":["6820:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"6820:9:67"},"referencedDeclaration":50059,"src":"6820:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43838,"mutability":"mutable","name":"height","nameLocation":"6860:6:67","nodeType":"VariableDeclaration","scope":43851,"src":"6852:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43837,"name":"uint256","nodeType":"ElementaryTypeName","src":"6852:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6810:62:67"},"returnParameters":{"id":43840,"nodeType":"ParameterList","parameters":[],"src":"6887:0:67"},"scope":43948,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43869,"nodeType":"FunctionDefinition","src":"7146:157:67","nodes":[],"body":{"id":43868,"nodeType":"Block","src":"7244:59:67","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43861,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43854,"src":"7262:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":43862,"name":"majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43856,"src":"7271:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7262:27:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":43864,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7261:29:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":43865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7293:3:67","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"7261:35:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":43860,"id":43867,"nodeType":"Return","src":"7254:42:67"}]},"documentation":{"id":43852,"nodeType":"StructuredDocumentation","src":"7000:141:67","text":"@notice returns the needed weight value corresponding to the majority percentage\n @dev `majorityPercentage` must be a valid number"},"implemented":true,"kind":"function","modifiers":[],"name":"weightNeeded","nameLocation":"7155:12:67","parameters":{"id":43857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43854,"mutability":"mutable","name":"weight","nameLocation":"7176:6:67","nodeType":"VariableDeclaration","scope":43869,"src":"7168:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43853,"name":"uint256","nodeType":"ElementaryTypeName","src":"7168:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43856,"mutability":"mutable","name":"majorityPercentage","nameLocation":"7192:18:67","nodeType":"VariableDeclaration","scope":43869,"src":"7184:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43855,"name":"uint256","nodeType":"ElementaryTypeName","src":"7184:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7167:44:67"},"returnParameters":{"id":43860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43859,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43869,"src":"7235:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43858,"name":"uint256","nodeType":"ElementaryTypeName","src":"7235:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7234:9:67"},"scope":43948,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43947,"nodeType":"FunctionDefinition","src":"7424:670:67","nodes":[],"body":{"id":43946,"nodeType":"Block","src":"7687:407:67","nodes":[],"statements":[{"expression":{"id":43892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43887,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43879,"src":"7697:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":43888,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43873,"src":"7704:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7709:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"7704:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43891,"indexExpression":{"id":43890,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43875,"src":"7720:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7704:18:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"src":"7697:25:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},"id":43893,"nodeType":"ExpressionStatement","src":"7697:25:67"},{"expression":{"id":43901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43894,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43882,"src":"7732:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43895,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43873,"src":"7746:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7751:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50051,"src":"7746:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43898,"indexExpression":{"id":43897,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43875,"src":"7774:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7746:30:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7777:6:67","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"7746:37:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":43900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7746:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"7732:53:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43902,"nodeType":"ExpressionStatement","src":"7732:53:67"},{"assignments":[43904],"declarations":[{"constant":false,"id":43904,"mutability":"mutable","name":"n","nameLocation":"7803:1:67","nodeType":"VariableDeclaration","scope":43946,"src":"7795:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43903,"name":"uint256","nodeType":"ElementaryTypeName","src":"7795:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43907,"initialValue":{"expression":{"id":43905,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43882,"src":"7807:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7819:6:67","memberName":"length","nodeType":"MemberAccess","src":"7807:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7795:30:67"},{"expression":{"id":43914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43908,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43885,"src":"7836:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43912,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43904,"src":"7861:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7849:11:67","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":43909,"name":"bytes","nodeType":"ElementaryTypeName","src":"7853:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":43910,"nodeType":"ArrayTypeName","src":"7853:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":43913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7849:14:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"7836:27:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43915,"nodeType":"ExpressionStatement","src":"7836:27:67"},{"body":{"id":43939,"nodeType":"Block","src":"7899:140:67","statements":[{"expression":{"id":43933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43922,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43885,"src":"7913:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43924,"indexExpression":{"id":43923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43917,"src":"7924:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7913:13:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":43925,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43873,"src":"7929:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7934:16:67","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":50058,"src":"7929:21:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":43928,"indexExpression":{"id":43927,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43875,"src":"7951:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7929:24:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":43932,"indexExpression":{"baseExpression":{"id":43929,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43882,"src":"7954:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43931,"indexExpression":{"id":43930,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43917,"src":"7966:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7954:14:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7929:40:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"7913:56:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":43934,"nodeType":"ExpressionStatement","src":"7913:56:67"},{"id":43938,"nodeType":"UncheckedBlock","src":"7983:46:67","statements":[{"expression":{"id":43936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8011:3:67","subExpression":{"id":43935,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43917,"src":"8013:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43937,"nodeType":"ExpressionStatement","src":"8011:3:67"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43919,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43917,"src":"7890:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43920,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43904,"src":"7894:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43940,"initializationExpression":{"assignments":[43917],"declarations":[{"constant":false,"id":43917,"mutability":"mutable","name":"i","nameLocation":"7887:1:67","nodeType":"VariableDeclaration","scope":43940,"src":"7879:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43916,"name":"uint256","nodeType":"ElementaryTypeName","src":"7879:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43918,"nodeType":"VariableDeclarationStatement","src":"7879:9:67"},"nodeType":"ForStatement","src":"7874:165:67"},{"expression":{"components":[{"id":43941,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43879,"src":"8057:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":43942,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43882,"src":"8063:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":43943,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43885,"src":"8076:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":43944,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8056:31:67","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":43886,"id":43945,"nodeType":"Return","src":"8049:38:67"}]},"documentation":{"id":43870,"nodeType":"StructuredDocumentation","src":"7310:109:67","text":"@notice get quorum signature bundle consisting of the info, signatories and the corresponding signatures."},"functionSelector":"08a6ad25","implemented":true,"kind":"function","modifiers":[],"name":"getSignatureBundle","nameLocation":"7433:18:67","parameters":{"id":43876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43873,"mutability":"mutable","name":"self","nameLocation":"7479:4:67","nodeType":"VariableDeclaration","scope":43947,"src":"7461:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43872,"nodeType":"UserDefinedTypeName","pathNode":{"id":43871,"name":"QuorumMap","nameLocations":["7461:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"7461:9:67"},"referencedDeclaration":50059,"src":"7461:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43875,"mutability":"mutable","name":"h","nameLocation":"7501:1:67","nodeType":"VariableDeclaration","scope":43947,"src":"7493:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43874,"name":"uint256","nodeType":"ElementaryTypeName","src":"7493:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7451:57:67"},"returnParameters":{"id":43886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43879,"mutability":"mutable","name":"info","nameLocation":"7587:4:67","nodeType":"VariableDeclaration","scope":43947,"src":"7569:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":43878,"nodeType":"UserDefinedTypeName","pathNode":{"id":43877,"name":"QuorumInfo","nameLocations":["7569:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"7569:10:67"},"referencedDeclaration":50028,"src":"7569:10:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":43882,"mutability":"mutable","name":"signatories","nameLocation":"7622:11:67","nodeType":"VariableDeclaration","scope":43947,"src":"7605:28:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43880,"name":"address","nodeType":"ElementaryTypeName","src":"7605:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43881,"nodeType":"ArrayTypeName","src":"7605:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":43885,"mutability":"mutable","name":"signatures","nameLocation":"7662:10:67","nodeType":"VariableDeclaration","scope":43947,"src":"7647:25:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":43883,"name":"bytes","nodeType":"ElementaryTypeName","src":"7647:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":43884,"nodeType":"ArrayTypeName","src":"7647:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"7555:127:67"},"scope":43948,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"LibQuorum","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43948],"name":"LibQuorum","nameLocation":"641:9:67","scope":43949,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":67} \ No newline at end of file +{"abi":[{"type":"event","name":"QuorumReached","inputs":[{"name":"objKind","type":"uint8","indexed":false,"internalType":"enum QuorumObjKind"},{"name":"height","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"quorumWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"QuorumWeightUpdated","inputs":[{"name":"objKind","type":"uint8","indexed":false,"internalType":"enum QuorumObjKind"},{"name":"height","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"newWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461001a576104519081610020823930815050f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c6308a6ad251461002857600080fd5b604036600319011261038057608081610042600093610385565b8281528260208201528260408201528260608201520152602435600052600260043501602052604060002060ff60046040519261007e84610385565b8054845260018101546020850152600281015460408501526003810154606085015201541615156080820152602435600052600560043501602052604060002090604051908182602085549283815201809560005260206000209260005b8181106103675750506100f1925003836103b7565b8151906100fd826103d9565b9161010b60405193846103b7565b808352610117816103d9565b60005b601f198201811061035657505060005b81811061023657505060405192608060e08501928051865260208101516020870152604081015160408701526060810151606087015201511515608085015260e060a0850152518091526101008301939060005b8181106102175750505081830360c0830152805180845260208401906020808260051b8701019301916000955b8287106101b85785850386f35b90919293601f19828203018352845180519081835260005b82811061020257505060208083836000838096600198010152601f8019910116010196019301960195909291926101ab565b806020809284010151828287010152016101d0565b82516001600160a01b031686526020958601959092019160010161017e565b6024356000908152600435600601602052604090206001600160a01b0361025d83886103f1565b51166000526020526040600020604051906000908054908160011c91600181161561034c575b602083106001821614610336578285526001811690811561030f57506001146102d5575b5050906102b9816001949303826103b7565b6102c382876103f1565b526102ce81866103f1565b500161012a565b6000908152602081209092505b8183106102f957505081016020016102b9826102a7565b60018160209254838688010152019201916102e2565b60ff191660208087019190915292151560051b850190920192506102b991508390506102a7565b634e487b7160e01b600052602260045260246000fd5b91607f1691610283565b80606060208093880101520161011a565b84548352600194850194879450602090930192016100dc565b600080fd5b60a0810190811067ffffffffffffffff8211176103a157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176103a157604052565b67ffffffffffffffff81116103a15760051b60200190565b80518210156104055760209160051b010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212209ed2f9ce15a873f1f365bbc4e26fc3aa06f06555dff574f2541a76689361b5e964736f6c63430008130033","sourceMap":"633:7463:67:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c6308a6ad251461002857600080fd5b604036600319011261038057608081610042600093610385565b8281528260208201528260408201528260608201520152602435600052600260043501602052604060002060ff60046040519261007e84610385565b8054845260018101546020850152600281015460408501526003810154606085015201541615156080820152602435600052600560043501602052604060002090604051908182602085549283815201809560005260206000209260005b8181106103675750506100f1925003836103b7565b8151906100fd826103d9565b9161010b60405193846103b7565b808352610117816103d9565b60005b601f198201811061035657505060005b81811061023657505060405192608060e08501928051865260208101516020870152604081015160408701526060810151606087015201511515608085015260e060a0850152518091526101008301939060005b8181106102175750505081830360c0830152805180845260208401906020808260051b8701019301916000955b8287106101b85785850386f35b90919293601f19828203018352845180519081835260005b82811061020257505060208083836000838096600198010152601f8019910116010196019301960195909291926101ab565b806020809284010151828287010152016101d0565b82516001600160a01b031686526020958601959092019160010161017e565b6024356000908152600435600601602052604090206001600160a01b0361025d83886103f1565b51166000526020526040600020604051906000908054908160011c91600181161561034c575b602083106001821614610336578285526001811690811561030f57506001146102d5575b5050906102b9816001949303826103b7565b6102c382876103f1565b526102ce81866103f1565b500161012a565b6000908152602081209092505b8183106102f957505081016020016102b9826102a7565b60018160209254838688010152019201916102e2565b60ff191660208087019190915292151560051b850190920192506102b991508390506102a7565b634e487b7160e01b600052602260045260246000fd5b91607f1691610283565b80606060208093880101520161011a565b84548352600194850194879450602090930192016100dc565b600080fd5b60a0810190811067ffffffffffffffff8211176103a157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176103a157604052565b67ffffffffffffffff81116103a15760051b60200190565b80518210156104055760209160051b010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212209ed2f9ce15a873f1f365bbc4e26fc3aa06f06555dff574f2541a76689361b5e964736f6c63430008130033","sourceMap":"633:7463:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;633:7463:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7704:15;633:7463;;7704:15;633:7463;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7704:15;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;7746:27;633:7463;;7746:27;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;633:7463:67;;;;;;7879:9;;633:7463;7890:5;;;;;;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7746:27;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;633:7463:67;;;;;;;;;;;;;;;;7879:9;633:7463;;;;;;;;7929:21;;633:7463;;;;;-1:-1:-1;;;;;7954:14:67;;;;:::i;:::-;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;7879:9;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7913:56;;;;:::i;:::-;;;;;;:::i;:::-;;633:7463;7879:9;;633:7463;;;;;;;;;;-1:-1:-1;633:7463:67;;;;;;-1:-1:-1;;633:7463:67;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;633:7463:67;;;;;;;;;;;;7746:27;633:7463;;;;;;;-1:-1:-1;633:7463:67;;-1:-1:-1;633:7463:67;;-1:-1:-1;633:7463:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;633:7463:67;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getSignatureBundle(QuorumMap storage,uint256)":"08a6ad25"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum QuorumObjKind\",\"name\":\"objKind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"objHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumWeight\",\"type\":\"uint256\"}],\"name\":\"QuorumReached\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum QuorumObjKind\",\"name\":\"objKind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"objHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWeight\",\"type\":\"uint256\"}],\"name\":\"QuorumWeightUpdated\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSignatureBundle(QuorumMap storage,uint256)\":{\"notice\":\"get quorum signature bundle consisting of the info, signatories and the corresponding signatures.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibQuorum.sol\":\"LibQuorum\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum QuorumObjKind","name":"objKind","type":"uint8","indexed":false},{"internalType":"uint256","name":"height","type":"uint256","indexed":false},{"internalType":"bytes32","name":"objHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"quorumWeight","type":"uint256","indexed":false}],"type":"event","name":"QuorumReached","anonymous":false},{"inputs":[{"internalType":"enum QuorumObjKind","name":"objKind","type":"uint8","indexed":false},{"internalType":"uint256","name":"height","type":"uint256","indexed":false},{"internalType":"bytes32","name":"objHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"newWeight","type":"uint256","indexed":false}],"type":"event","name":"QuorumWeightUpdated","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getSignatureBundle(QuorumMap storage,uint256)":{"notice":"get quorum signature bundle consisting of the info, signatories and the corresponding signatures."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibQuorum.sol":"LibQuorum"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibQuorum.sol","id":43902,"exportedSymbols":{"ECDSA":[33525],"EnumerableSet":[35815],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"LibQuorum":[43901],"MerkleProof":[34060],"NotAuthorized":[37458],"QuorumAlreadyProcessed":[37384],"QuorumInfo":[49981],"QuorumMap":[50012],"QuorumObjKind":[49965],"SignatureReplay":[37502],"ZeroMembershipWeight":[37512]},"nodeType":"SourceUnit","src":"46:8051:67","nodes":[{"id":43387,"nodeType":"PragmaDirective","src":"46:23:67","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43391,"nodeType":"ImportDirective","src":"71:75:67","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":43902,"sourceUnit":50013,"symbolAliases":[{"foreign":{"id":43388,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"79:9:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43389,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49981,"src":"90:10:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43390,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49965,"src":"102:13:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43401,"nodeType":"ImportDirective","src":"147:236:67","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":43902,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":43392,"name":"InvalidRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37432,"src":"155:22:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43393,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37384,"src":"179:22:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43394,"name":"FailedAddSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37396,"src":"203:18:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43395,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37434,"src":"223:16:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43396,"name":"SignatureReplay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37502,"src":"241:15:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43397,"name":"NotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37458,"src":"258:13:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43398,"name":"FailedRemoveIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37398,"src":"273:28:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43399,"name":"ZeroMembershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37512,"src":"303:20:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43400,"name":"FailedAddIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37394,"src":"325:25:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43403,"nodeType":"ImportDirective","src":"384:86:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol","file":"openzeppelin-contracts/utils/cryptography/MerkleProof.sol","nameLocation":"-1:-1:-1","scope":43902,"sourceUnit":34061,"symbolAliases":[{"foreign":{"id":43402,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34060,"src":"392:11:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43405,"nodeType":"ImportDirective","src":"471:74:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"openzeppelin-contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":43902,"sourceUnit":33526,"symbolAliases":[{"foreign":{"id":43404,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"479:5:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43407,"nodeType":"ImportDirective","src":"546:85:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":43902,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":43406,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"554:13:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43901,"nodeType":"ContractDefinition","src":"633:7463:67","nodes":[{"id":43411,"nodeType":"UsingForDirective","src":"657:46:67","nodes":[],"global":false,"libraryName":{"id":43408,"name":"EnumerableSet","nameLocations":["663:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"663:13:67"},"typeName":{"id":43410,"nodeType":"UserDefinedTypeName","pathNode":{"id":43409,"name":"EnumerableSet.UintSet","nameLocations":["681:13:67","695:7:67"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"681:21:67"},"referencedDeclaration":35685,"src":"681:21:67","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"id":43415,"nodeType":"UsingForDirective","src":"708:49:67","nodes":[],"global":false,"libraryName":{"id":43412,"name":"EnumerableSet","nameLocations":["714:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"714:13:67"},"typeName":{"id":43414,"nodeType":"UserDefinedTypeName","pathNode":{"id":43413,"name":"EnumerableSet.AddressSet","nameLocations":["732:13:67","746:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"732:24:67"},"referencedDeclaration":35528,"src":"732:24:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":43426,"nodeType":"EventDefinition","src":"763:98:67","nodes":[],"anonymous":false,"eventSelector":"c08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494","name":"QuorumReached","nameLocation":"769:13:67","parameters":{"id":43425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43418,"indexed":false,"mutability":"mutable","name":"objKind","nameLocation":"797:7:67","nodeType":"VariableDeclaration","scope":43426,"src":"783:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"},"typeName":{"id":43417,"nodeType":"UserDefinedTypeName","pathNode":{"id":43416,"name":"QuorumObjKind","nameLocations":["783:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":49965,"src":"783:13:67"},"referencedDeclaration":49965,"src":"783:13:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":43420,"indexed":false,"mutability":"mutable","name":"height","nameLocation":"814:6:67","nodeType":"VariableDeclaration","scope":43426,"src":"806:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43419,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43422,"indexed":false,"mutability":"mutable","name":"objHash","nameLocation":"830:7:67","nodeType":"VariableDeclaration","scope":43426,"src":"822:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"822:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43424,"indexed":false,"mutability":"mutable","name":"quorumWeight","nameLocation":"847:12:67","nodeType":"VariableDeclaration","scope":43426,"src":"839:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43423,"name":"uint256","nodeType":"ElementaryTypeName","src":"839:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"782:78:67"}},{"id":43437,"nodeType":"EventDefinition","src":"866:101:67","nodes":[],"anonymous":false,"eventSelector":"103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc","name":"QuorumWeightUpdated","nameLocation":"872:19:67","parameters":{"id":43436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43429,"indexed":false,"mutability":"mutable","name":"objKind","nameLocation":"906:7:67","nodeType":"VariableDeclaration","scope":43437,"src":"892:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"},"typeName":{"id":43428,"nodeType":"UserDefinedTypeName","pathNode":{"id":43427,"name":"QuorumObjKind","nameLocations":["892:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":49965,"src":"892:13:67"},"referencedDeclaration":49965,"src":"892:13:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":43431,"indexed":false,"mutability":"mutable","name":"height","nameLocation":"923:6:67","nodeType":"VariableDeclaration","scope":43437,"src":"915:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43430,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43433,"indexed":false,"mutability":"mutable","name":"objHash","nameLocation":"939:7:67","nodeType":"VariableDeclaration","scope":43437,"src":"931:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"931:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43435,"indexed":false,"mutability":"mutable","name":"newWeight","nameLocation":"956:9:67","nodeType":"VariableDeclaration","scope":43437,"src":"948:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43434,"name":"uint256","nodeType":"ElementaryTypeName","src":"948:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:75:67"}},{"id":43617,"nodeType":"FunctionDefinition","src":"1539:2472:67","nodes":[],"body":{"id":43616,"nodeType":"Block","src":"1736:2275:67","nodes":[],"statements":[{"assignments":[43455],"declarations":[{"constant":false,"id":43455,"mutability":"mutable","name":"info","nameLocation":"1803:4:67","nodeType":"VariableDeclaration","scope":43616,"src":"1784:23:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":43454,"nodeType":"UserDefinedTypeName","pathNode":{"id":43453,"name":"QuorumInfo","nameLocations":["1784:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":49981,"src":"1784:10:67"},"referencedDeclaration":49981,"src":"1784:10:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"id":43460,"initialValue":{"baseExpression":{"expression":{"id":43456,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43441,"src":"1810:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1815:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":49994,"src":"1810:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$49981_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43459,"indexExpression":{"id":43458,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"1826:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1810:23:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage","typeString":"struct QuorumInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1784:49:67"},{"assignments":[43462,43465,null],"declarations":[{"constant":false,"id":43462,"mutability":"mutable","name":"recoveredSignatory","nameLocation":"1904:18:67","nodeType":"VariableDeclaration","scope":43616,"src":"1896:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43461,"name":"address","nodeType":"ElementaryTypeName","src":"1896:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43465,"mutability":"mutable","name":"err","nameLocation":"1943:3:67","nodeType":"VariableDeclaration","scope":43616,"src":"1924:22:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":43464,"nodeType":"UserDefinedTypeName","pathNode":{"id":43463,"name":"ECDSA.RecoverError","nameLocations":["1924:5:67","1930:12:67"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"1924:18:67"},"referencedDeclaration":33122,"src":"1924:18:67","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},null],"id":43472,"initialValue":{"arguments":[{"expression":{"id":43468,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43455,"src":"1969:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1974:4:67","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":49968,"src":"1969:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43470,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43450,"src":"1980:9:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":43466,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"1952:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1958:10:67","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":33236,"src":"1952:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":43471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1952:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"1895:95:67"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"id":43477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43473,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43465,"src":"2004:3:67","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":43474,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"2011:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2017:12:67","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":33122,"src":"2011:18:67","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":43476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2030:7:67","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":33118,"src":"2011:26:67","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"src":"2004:33:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43482,"nodeType":"IfStatement","src":"2000:89:67","trueBody":{"id":43481,"nodeType":"Block","src":"2039:50:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43478,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37434,"src":"2060:16:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43480,"nodeType":"RevertStatement","src":"2053:25:67"}]}},{"condition":{"arguments":[{"id":43488,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43462,"src":"2222:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":43483,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43441,"src":"2177:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2182:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50004,"src":"2177:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43486,"indexExpression":{"id":43485,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"2205:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2177:35:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2213:8:67","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35609,"src":"2177:44:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":43489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2177:64:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43494,"nodeType":"IfStatement","src":"2173:119:67","trueBody":{"id":43493,"nodeType":"Block","src":"2243:49:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43490,"name":"SignatureReplay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37502,"src":"2264:15:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2264:17:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43492,"nodeType":"RevertStatement","src":"2257:24:67"}]}},{"assignments":[43496],"declarations":[{"constant":false,"id":43496,"mutability":"mutable","name":"validatorLeaf","nameLocation":"2499:13:67","nodeType":"VariableDeclaration","scope":43616,"src":"2491:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43495,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2491:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43510,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":43504,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43462,"src":"2559:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43505,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43448,"src":"2579:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43502,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2548:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2552:6:67","memberName":"encode","nodeType":"MemberAccess","src":"2548:10:67","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":43506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2548:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43501,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2538:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2538:49:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":43499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2525:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":43498,"name":"bytes","nodeType":"ElementaryTypeName","src":"2525:5:67","typeDescriptions":{}}},"id":43500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2531:6:67","memberName":"concat","nodeType":"MemberAccess","src":"2525:12:67","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":43508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2525:63:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43497,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2515:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2515:74:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2491:98:67"},{"assignments":[43512],"declarations":[{"constant":false,"id":43512,"mutability":"mutable","name":"valid","nameLocation":"2604:5:67","nodeType":"VariableDeclaration","scope":43616,"src":"2599:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43511,"name":"bool","nodeType":"ElementaryTypeName","src":"2599:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43520,"initialValue":{"arguments":[{"id":43515,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43446,"src":"2639:15:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"expression":{"id":43516,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43455,"src":"2662:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2667:8:67","memberName":"rootHash","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2662:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43518,"name":"validatorLeaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43496,"src":"2683:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":43513,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34060,"src":"2612:11:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$34060_$","typeString":"type(library MerkleProof)"}},"id":43514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2624:6:67","memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":33552,"src":"2612:18:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"}},"id":43519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2632:5:67","2656:4:67","2677:4:67"],"names":["proof","root","leaf"],"nodeType":"FunctionCall","src":"2612:86:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2599:99:67"},{"condition":{"id":43522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2712:6:67","subExpression":{"id":43521,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43512,"src":"2713:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43528,"nodeType":"IfStatement","src":"2708:77:67","trueBody":{"id":43527,"nodeType":"Block","src":"2720:65:67","statements":[{"errorCall":{"arguments":[{"id":43524,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43462,"src":"2755:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43523,"name":"NotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37458,"src":"2741:13:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":43525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2741:33:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43526,"nodeType":"RevertStatement","src":"2734:40:67"}]}},{"assignments":[43530],"declarations":[{"constant":false,"id":43530,"mutability":"mutable","name":"ok","nameLocation":"2880:2:67","nodeType":"VariableDeclaration","scope":43616,"src":"2875:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43529,"name":"bool","nodeType":"ElementaryTypeName","src":"2875:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43538,"initialValue":{"arguments":[{"id":43536,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43462,"src":"2925:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":43531,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43441,"src":"2885:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2890:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50004,"src":"2885:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43534,"indexExpression":{"id":43533,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"2913:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2885:35:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2921:3:67","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"2885:39:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":43537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2875:69:67"},{"condition":{"id":43540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2958:3:67","subExpression":{"id":43539,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43530,"src":"2959:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43545,"nodeType":"IfStatement","src":"2954:61:67","trueBody":{"id":43544,"nodeType":"Block","src":"2963:52:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43541,"name":"FailedAddSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37396,"src":"2984:18:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2984:20:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43543,"nodeType":"RevertStatement","src":"2977:27:67"}]}},{"expression":{"id":43554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":43546,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43441,"src":"3024:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3029:16:67","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":50011,"src":"3024:21:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":43551,"indexExpression":{"id":43548,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3046:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3024:29:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":43552,"indexExpression":{"id":43549,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43462,"src":"3054:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3024:49:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43553,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43450,"src":"3076:9:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3024:61:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":43555,"nodeType":"ExpressionStatement","src":"3024:61:67"},{"expression":{"id":43560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43556,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43455,"src":"3095:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3100:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"3095:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":43559,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43448,"src":"3117:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3095:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43561,"nodeType":"ExpressionStatement","src":"3095:28:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43562,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43455,"src":"3138:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3143:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"3138:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":43564,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43455,"src":"3160:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3165:9:67","memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":49974,"src":"3160:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3138:36:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43615,"nodeType":"IfStatement","src":"3134:871:67","trueBody":{"id":43614,"nodeType":"Block","src":"3176:829:67","statements":[{"condition":{"id":43569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3194:13:67","subExpression":{"expression":{"id":43567,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43455,"src":"3195:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3200:7:67","memberName":"reached","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"3195:12:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43612,"nodeType":"Block","src":"3742:253:67","statements":[{"eventCall":{"arguments":[{"expression":{"id":43603,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43441,"src":"3816:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3821:13:67","memberName":"quorumObjKind","nodeType":"MemberAccess","referencedDeclaration":49985,"src":"3816:18:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}},{"id":43605,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3864:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43606,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43455,"src":"3901:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3906:4:67","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":49968,"src":"3901:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":43608,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43455,"src":"3943:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3948:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"3943:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43602,"name":"QuorumWeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43437,"src":"3765:19:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_QuorumObjKind_$49965_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (enum QuorumObjKind,uint256,bytes32,uint256)"}},"id":43610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3807:7:67","3856:6:67","3892:7:67","3932:9:67"],"names":["objKind","height","objHash","newWeight"],"nodeType":"FunctionCall","src":"3765:215:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43611,"nodeType":"EmitStatement","src":"3760:220:67"}]},"id":43613,"nodeType":"IfStatement","src":"3190:805:67","trueBody":{"id":43601,"nodeType":"Block","src":"3209:527:67","statements":[{"expression":{"id":43574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43570,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43455,"src":"3227:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3232:7:67","memberName":"reached","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"3227:12:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":43573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3242:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3227:19:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43575,"nodeType":"ExpressionStatement","src":"3227:19:67"},{"expression":{"id":43582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43576,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43530,"src":"3340:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43580,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3375:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":43577,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43441,"src":"3345:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3350:17:67","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":49998,"src":"3345:22:67","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":43579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3368:6:67","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35727,"src":"3345:29:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$35685_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":43581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3345:37:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3340:42:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43583,"nodeType":"ExpressionStatement","src":"3340:42:67"},{"condition":{"id":43585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3404:3:67","subExpression":{"id":43584,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43530,"src":"3405:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43590,"nodeType":"IfStatement","src":"3400:87:67","trueBody":{"id":43589,"nodeType":"Block","src":"3409:78:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43586,"name":"FailedRemoveIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37398,"src":"3438:28:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3438:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43588,"nodeType":"RevertStatement","src":"3431:37:67"}]}},{"eventCall":{"arguments":[{"expression":{"id":43592,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43441,"src":"3554:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3559:13:67","memberName":"quorumObjKind","nodeType":"MemberAccess","referencedDeclaration":49985,"src":"3554:18:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}},{"id":43594,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3602:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43595,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43455,"src":"3639:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3644:4:67","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":49968,"src":"3639:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":43597,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43455,"src":"3684:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3689:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"3684:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43591,"name":"QuorumReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43426,"src":"3509:13:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_QuorumObjKind_$49965_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (enum QuorumObjKind,uint256,bytes32,uint256)"}},"id":43599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3545:7:67","3594:6:67","3630:7:67","3670:12:67"],"names":["objKind","height","objHash","quorumWeight"],"nodeType":"FunctionCall","src":"3509:212:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43600,"nodeType":"EmitStatement","src":"3504:217:67"}]}}]}}]},"documentation":{"id":43438,"nodeType":"StructuredDocumentation","src":"973:561:67","text":"@notice checks whether the provided quorum signature for the block at height `height` is valid and accumulates that it\n @dev If adding the signature leads to reaching the threshold, then the info is removed from `incompleteQuorums`\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the object we are agreen on"},"implemented":true,"kind":"function","modifiers":[],"name":"addQuorumSignature","nameLocation":"1548:18:67","parameters":{"id":43451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43441,"mutability":"mutable","name":"self","nameLocation":"1594:4:67","nodeType":"VariableDeclaration","scope":43617,"src":"1576:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43440,"nodeType":"UserDefinedTypeName","pathNode":{"id":43439,"name":"QuorumMap","nameLocations":["1576:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"1576:9:67"},"referencedDeclaration":50012,"src":"1576:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43443,"mutability":"mutable","name":"height","nameLocation":"1616:6:67","nodeType":"VariableDeclaration","scope":43617,"src":"1608:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43442,"name":"uint256","nodeType":"ElementaryTypeName","src":"1608:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43446,"mutability":"mutable","name":"membershipProof","nameLocation":"1649:15:67","nodeType":"VariableDeclaration","scope":43617,"src":"1632:32:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":43444,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1632:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":43445,"nodeType":"ArrayTypeName","src":"1632:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":43448,"mutability":"mutable","name":"weight","nameLocation":"1682:6:67","nodeType":"VariableDeclaration","scope":43617,"src":"1674:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43447,"name":"uint256","nodeType":"ElementaryTypeName","src":"1674:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43450,"mutability":"mutable","name":"signature","nameLocation":"1711:9:67","nodeType":"VariableDeclaration","scope":43617,"src":"1698:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43449,"name":"bytes","nodeType":"ElementaryTypeName","src":"1698:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1566:160:67"},"returnParameters":{"id":43452,"nodeType":"ParameterList","parameters":[],"src":"1736:0:67"},"scope":43901,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43693,"nodeType":"FunctionDefinition","src":"4454:976:67","nodes":[],"body":{"id":43692,"nodeType":"Block","src":"4685:745:67","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43634,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43623,"src":"4699:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43635,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43621,"src":"4711:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4716:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"4711:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4699:32:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43642,"nodeType":"IfStatement","src":"4695:94:67","trueBody":{"id":43641,"nodeType":"Block","src":"4733:56:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43638,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37384,"src":"4754:22:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4754:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43640,"nodeType":"RevertStatement","src":"4747:31:67"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43643,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43629,"src":"4803:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4823:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4803:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43650,"nodeType":"IfStatement","src":"4799:81:67","trueBody":{"id":43649,"nodeType":"Block","src":"4826:54:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43646,"name":"ZeroMembershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37512,"src":"4847:20:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43648,"nodeType":"RevertStatement","src":"4840:29:67"}]}},{"assignments":[43652],"declarations":[{"constant":false,"id":43652,"mutability":"mutable","name":"threshold","nameLocation":"4898:9:67","nodeType":"VariableDeclaration","scope":43692,"src":"4890:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43651,"name":"uint256","nodeType":"ElementaryTypeName","src":"4890:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43657,"initialValue":{"arguments":[{"id":43654,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43629,"src":"4923:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43655,"name":"majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43631,"src":"4941:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43653,"name":"weightNeeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43822,"src":"4910:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":43656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4910:50:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4890:70:67"},{"assignments":[43659],"declarations":[{"constant":false,"id":43659,"mutability":"mutable","name":"ok","nameLocation":"5010:2:67","nodeType":"VariableDeclaration","scope":43692,"src":"5005:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43658,"name":"bool","nodeType":"ElementaryTypeName","src":"5005:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43665,"initialValue":{"arguments":[{"id":43663,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43623,"src":"5042:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":43660,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43621,"src":"5015:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5020:17:67","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":49998,"src":"5015:22:67","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":43662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5038:3:67","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35706,"src":"5015:26:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$35685_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":43664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5015:37:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5005:47:67"},{"condition":{"id":43667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5066:3:67","subExpression":{"id":43666,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"5067:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43672,"nodeType":"IfStatement","src":"5062:68:67","trueBody":{"id":43671,"nodeType":"Block","src":"5071:59:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43668,"name":"FailedAddIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37394,"src":"5092:25:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5092:27:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43670,"nodeType":"RevertStatement","src":"5085:34:67"}]}},{"assignments":[43675],"declarations":[{"constant":false,"id":43675,"mutability":"mutable","name":"info","nameLocation":"5158:4:67","nodeType":"VariableDeclaration","scope":43692,"src":"5140:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":43674,"nodeType":"UserDefinedTypeName","pathNode":{"id":43673,"name":"QuorumInfo","nameLocations":["5140:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":49981,"src":"5140:10:67"},"referencedDeclaration":49981,"src":"5140:10:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"id":43683,"initialValue":{"arguments":[{"id":43677,"name":"objHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43625,"src":"5196:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43678,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43627,"src":"5227:18:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43679,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43652,"src":"5270:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":43680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5308:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"66616c7365","id":43681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5332:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":43676,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49981,"src":"5165:10:67","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_QuorumInfo_$49981_storage_ptr_$","typeString":"type(struct QuorumInfo storage pointer)"}},"id":43682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5190:4:67","5217:8:67","5259:9:67","5293:13:67","5323:7:67"],"names":["hash","rootHash","threshold","currentWeight","reached"],"nodeType":"FunctionCall","src":"5165:183:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"5140:208:67"},{"expression":{"id":43690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":43684,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43621,"src":"5390:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5395:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":49994,"src":"5390:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$49981_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43688,"indexExpression":{"id":43686,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43623,"src":"5406:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5390:26:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage","typeString":"struct QuorumInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43689,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43675,"src":"5419:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo memory"}},"src":"5390:33:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage","typeString":"struct QuorumInfo storage ref"}},"id":43691,"nodeType":"ExpressionStatement","src":"5390:33:67"}]},"documentation":{"id":43618,"nodeType":"StructuredDocumentation","src":"4017:432:67","text":"@notice creates the quorum info from a quorum object.\n @param objHeight - height of the quorum object\n @param objHash - hash of the object\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership\n @param majorityPercentage - the majorityPercentage required to reach quorum"},"implemented":true,"kind":"function","modifiers":[],"name":"createQuorumInfo","nameLocation":"4463:16:67","parameters":{"id":43632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43621,"mutability":"mutable","name":"self","nameLocation":"4507:4:67","nodeType":"VariableDeclaration","scope":43693,"src":"4489:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43620,"nodeType":"UserDefinedTypeName","pathNode":{"id":43619,"name":"QuorumMap","nameLocations":["4489:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"4489:9:67"},"referencedDeclaration":50012,"src":"4489:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43623,"mutability":"mutable","name":"objHeight","nameLocation":"4529:9:67","nodeType":"VariableDeclaration","scope":43693,"src":"4521:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43622,"name":"uint256","nodeType":"ElementaryTypeName","src":"4521:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43625,"mutability":"mutable","name":"objHash","nameLocation":"4556:7:67","nodeType":"VariableDeclaration","scope":43693,"src":"4548:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4548:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43627,"mutability":"mutable","name":"membershipRootHash","nameLocation":"4581:18:67","nodeType":"VariableDeclaration","scope":43693,"src":"4573:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43626,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4573:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43629,"mutability":"mutable","name":"membershipWeight","nameLocation":"4617:16:67","nodeType":"VariableDeclaration","scope":43693,"src":"4609:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43628,"name":"uint256","nodeType":"ElementaryTypeName","src":"4609:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43631,"mutability":"mutable","name":"majorityPercentage","nameLocation":"4651:18:67","nodeType":"VariableDeclaration","scope":43693,"src":"4643:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43630,"name":"uint256","nodeType":"ElementaryTypeName","src":"4643:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4479:196:67"},"returnParameters":{"id":43633,"nodeType":"ParameterList","parameters":[],"src":"4685:0:67"},"scope":43901,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43786,"nodeType":"FunctionDefinition","src":"5907:864:67","nodes":[],"body":{"id":43785,"nodeType":"Block","src":"5990:781:67","nodes":[],"statements":[{"assignments":[43703],"declarations":[{"constant":false,"id":43703,"mutability":"mutable","name":"oldRetentionHeight","nameLocation":"6009:18:67","nodeType":"VariableDeclaration","scope":43785,"src":"6001:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43702,"name":"uint256","nodeType":"ElementaryTypeName","src":"6001:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43706,"initialValue":{"expression":{"id":43704,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43697,"src":"6030:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6035:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"6030:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6001:49:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43707,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43699,"src":"6065:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43708,"name":"oldRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43703,"src":"6087:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6065:40:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43714,"nodeType":"IfStatement","src":"6061:102:67","trueBody":{"id":43713,"nodeType":"Block","src":"6107:56:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43710,"name":"InvalidRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37432,"src":"6128:22:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6128:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43712,"nodeType":"RevertStatement","src":"6121:31:67"}]}},{"body":{"id":43777,"nodeType":"Block","src":"6236:477:67","statements":[{"expression":{"id":43726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6250:25:67","subExpression":{"baseExpression":{"expression":{"id":43722,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43697,"src":"6257:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6262:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":49994,"src":"6257:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$49981_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43725,"indexExpression":{"id":43724,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43716,"src":"6273:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6257:18:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage","typeString":"struct QuorumInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43727,"nodeType":"ExpressionStatement","src":"6250:25:67"},{"expression":{"id":43732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6289:37:67","subExpression":{"baseExpression":{"expression":{"id":43728,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43697,"src":"6296:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6301:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50004,"src":"6296:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43731,"indexExpression":{"id":43730,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43716,"src":"6324:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6296:30:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43733,"nodeType":"ExpressionStatement","src":"6289:37:67"},{"assignments":[43738],"declarations":[{"constant":false,"id":43738,"mutability":"mutable","name":"validators","nameLocation":"6358:10:67","nodeType":"VariableDeclaration","scope":43777,"src":"6341:27:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43736,"name":"address","nodeType":"ElementaryTypeName","src":"6341:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43737,"nodeType":"ArrayTypeName","src":"6341:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":43745,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43739,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43697,"src":"6371:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6376:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50004,"src":"6371:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43742,"indexExpression":{"id":43741,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43716,"src":"6399:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6371:30:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6402:6:67","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"6371:37:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":43744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6371:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6341:69:67"},{"assignments":[43747],"declarations":[{"constant":false,"id":43747,"mutability":"mutable","name":"n","nameLocation":"6432:1:67","nodeType":"VariableDeclaration","scope":43777,"src":"6424:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43746,"name":"uint256","nodeType":"ElementaryTypeName","src":"6424:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43750,"initialValue":{"expression":{"id":43748,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43738,"src":"6436:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6447:6:67","memberName":"length","nodeType":"MemberAccess","src":"6436:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6424:29:67"},{"body":{"id":43771,"nodeType":"Block","src":"6493:150:67","statements":[{"expression":{"id":43765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6511:46:67","subExpression":{"baseExpression":{"baseExpression":{"expression":{"id":43757,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43697,"src":"6518:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6523:16:67","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":50011,"src":"6518:21:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":43760,"indexExpression":{"id":43759,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43716,"src":"6540:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6518:24:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":43764,"indexExpression":{"baseExpression":{"id":43761,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43738,"src":"6543:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43763,"indexExpression":{"id":43762,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43752,"src":"6554:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6543:13:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6518:39:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43766,"nodeType":"ExpressionStatement","src":"6511:46:67"},{"id":43770,"nodeType":"UncheckedBlock","src":"6575:54:67","statements":[{"expression":{"id":43768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6607:3:67","subExpression":{"id":43767,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43752,"src":"6609:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43769,"nodeType":"ExpressionStatement","src":"6607:3:67"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43754,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43752,"src":"6484:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43755,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43747,"src":"6488:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6484:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43772,"initializationExpression":{"assignments":[43752],"declarations":[{"constant":false,"id":43752,"mutability":"mutable","name":"i","nameLocation":"6481:1:67","nodeType":"VariableDeclaration","scope":43772,"src":"6473:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43751,"name":"uint256","nodeType":"ElementaryTypeName","src":"6473:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43753,"nodeType":"VariableDeclarationStatement","src":"6473:9:67"},"nodeType":"ForStatement","src":"6468:175:67"},{"id":43776,"nodeType":"UncheckedBlock","src":"6657:46:67","statements":[{"expression":{"id":43774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6685:3:67","subExpression":{"id":43773,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43716,"src":"6687:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43775,"nodeType":"ExpressionStatement","src":"6685:3:67"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43719,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43716,"src":"6210:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43720,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43699,"src":"6214:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6210:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43778,"initializationExpression":{"assignments":[43716],"declarations":[{"constant":false,"id":43716,"mutability":"mutable","name":"h","nameLocation":"6186:1:67","nodeType":"VariableDeclaration","scope":43778,"src":"6178:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43715,"name":"uint256","nodeType":"ElementaryTypeName","src":"6178:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43718,"initialValue":{"id":43717,"name":"oldRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43703,"src":"6190:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6178:30:67"},"nodeType":"ForStatement","src":"6173:540:67"},{"expression":{"id":43783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43779,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43697,"src":"6723:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6728:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"6723:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43782,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43699,"src":"6746:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6723:41:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43784,"nodeType":"ExpressionStatement","src":"6723:41:67"}]},"documentation":{"id":43694,"nodeType":"StructuredDocumentation","src":"5436:466:67","text":"@notice Set a new retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\n @dev `retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing.\n All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\n @param newRetentionHeight - the height of the oldest checkpoint to keep"},"implemented":true,"kind":"function","modifiers":[],"name":"pruneQuorums","nameLocation":"5916:12:67","parameters":{"id":43700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43697,"mutability":"mutable","name":"self","nameLocation":"5947:4:67","nodeType":"VariableDeclaration","scope":43786,"src":"5929:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43696,"nodeType":"UserDefinedTypeName","pathNode":{"id":43695,"name":"QuorumMap","nameLocations":["5929:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"5929:9:67"},"referencedDeclaration":50012,"src":"5929:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43699,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"5961:18:67","nodeType":"VariableDeclaration","scope":43786,"src":"5953:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43698,"name":"uint256","nodeType":"ElementaryTypeName","src":"5953:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5928:52:67"},"returnParameters":{"id":43701,"nodeType":"ParameterList","parameters":[],"src":"5990:0:67"},"scope":43901,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43804,"nodeType":"FunctionDefinition","src":"6777:217:67","nodes":[],"body":{"id":43803,"nodeType":"Block","src":"6887:107:67","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43794,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43791,"src":"6901:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43795,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43789,"src":"6910:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6915:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"6910:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6901:29:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43802,"nodeType":"IfStatement","src":"6897:91:67","trueBody":{"id":43801,"nodeType":"Block","src":"6932:56:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43798,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37384,"src":"6953:22:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6953:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43800,"nodeType":"RevertStatement","src":"6946:31:67"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"isHeightAlreadyProcessed","nameLocation":"6786:24:67","parameters":{"id":43792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43789,"mutability":"mutable","name":"self","nameLocation":"6838:4:67","nodeType":"VariableDeclaration","scope":43804,"src":"6820:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43788,"nodeType":"UserDefinedTypeName","pathNode":{"id":43787,"name":"QuorumMap","nameLocations":["6820:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"6820:9:67"},"referencedDeclaration":50012,"src":"6820:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43791,"mutability":"mutable","name":"height","nameLocation":"6860:6:67","nodeType":"VariableDeclaration","scope":43804,"src":"6852:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43790,"name":"uint256","nodeType":"ElementaryTypeName","src":"6852:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6810:62:67"},"returnParameters":{"id":43793,"nodeType":"ParameterList","parameters":[],"src":"6887:0:67"},"scope":43901,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43822,"nodeType":"FunctionDefinition","src":"7146:157:67","nodes":[],"body":{"id":43821,"nodeType":"Block","src":"7244:59:67","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43814,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"7262:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":43815,"name":"majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43809,"src":"7271:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7262:27:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":43817,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7261:29:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":43818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7293:3:67","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"7261:35:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":43813,"id":43820,"nodeType":"Return","src":"7254:42:67"}]},"documentation":{"id":43805,"nodeType":"StructuredDocumentation","src":"7000:141:67","text":"@notice returns the needed weight value corresponding to the majority percentage\n @dev `majorityPercentage` must be a valid number"},"implemented":true,"kind":"function","modifiers":[],"name":"weightNeeded","nameLocation":"7155:12:67","parameters":{"id":43810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43807,"mutability":"mutable","name":"weight","nameLocation":"7176:6:67","nodeType":"VariableDeclaration","scope":43822,"src":"7168:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43806,"name":"uint256","nodeType":"ElementaryTypeName","src":"7168:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43809,"mutability":"mutable","name":"majorityPercentage","nameLocation":"7192:18:67","nodeType":"VariableDeclaration","scope":43822,"src":"7184:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43808,"name":"uint256","nodeType":"ElementaryTypeName","src":"7184:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7167:44:67"},"returnParameters":{"id":43813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43822,"src":"7235:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43811,"name":"uint256","nodeType":"ElementaryTypeName","src":"7235:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7234:9:67"},"scope":43901,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43900,"nodeType":"FunctionDefinition","src":"7424:670:67","nodes":[],"body":{"id":43899,"nodeType":"Block","src":"7687:407:67","nodes":[],"statements":[{"expression":{"id":43845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43840,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43832,"src":"7697:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":43841,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43826,"src":"7704:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7709:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":49994,"src":"7704:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$49981_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43844,"indexExpression":{"id":43843,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43828,"src":"7720:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7704:18:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage","typeString":"struct QuorumInfo storage ref"}},"src":"7697:25:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo memory"}},"id":43846,"nodeType":"ExpressionStatement","src":"7697:25:67"},{"expression":{"id":43854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43847,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43835,"src":"7732:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43848,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43826,"src":"7746:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7751:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50004,"src":"7746:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43851,"indexExpression":{"id":43850,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43828,"src":"7774:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7746:30:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7777:6:67","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"7746:37:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":43853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7746:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"7732:53:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43855,"nodeType":"ExpressionStatement","src":"7732:53:67"},{"assignments":[43857],"declarations":[{"constant":false,"id":43857,"mutability":"mutable","name":"n","nameLocation":"7803:1:67","nodeType":"VariableDeclaration","scope":43899,"src":"7795:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43856,"name":"uint256","nodeType":"ElementaryTypeName","src":"7795:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43860,"initialValue":{"expression":{"id":43858,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43835,"src":"7807:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7819:6:67","memberName":"length","nodeType":"MemberAccess","src":"7807:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7795:30:67"},{"expression":{"id":43867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43861,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43838,"src":"7836:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43865,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43857,"src":"7861:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7849:11:67","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":43862,"name":"bytes","nodeType":"ElementaryTypeName","src":"7853:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":43863,"nodeType":"ArrayTypeName","src":"7853:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":43866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7849:14:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"7836:27:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43868,"nodeType":"ExpressionStatement","src":"7836:27:67"},{"body":{"id":43892,"nodeType":"Block","src":"7899:140:67","statements":[{"expression":{"id":43886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43875,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43838,"src":"7913:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43877,"indexExpression":{"id":43876,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"7924:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7913:13:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":43878,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43826,"src":"7929:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7934:16:67","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":50011,"src":"7929:21:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":43881,"indexExpression":{"id":43880,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43828,"src":"7951:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7929:24:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":43885,"indexExpression":{"baseExpression":{"id":43882,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43835,"src":"7954:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43884,"indexExpression":{"id":43883,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"7966:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7954:14:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7929:40:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"7913:56:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":43887,"nodeType":"ExpressionStatement","src":"7913:56:67"},{"id":43891,"nodeType":"UncheckedBlock","src":"7983:46:67","statements":[{"expression":{"id":43889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8011:3:67","subExpression":{"id":43888,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"8013:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43890,"nodeType":"ExpressionStatement","src":"8011:3:67"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43872,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"7890:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43873,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43857,"src":"7894:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43893,"initializationExpression":{"assignments":[43870],"declarations":[{"constant":false,"id":43870,"mutability":"mutable","name":"i","nameLocation":"7887:1:67","nodeType":"VariableDeclaration","scope":43893,"src":"7879:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43869,"name":"uint256","nodeType":"ElementaryTypeName","src":"7879:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43871,"nodeType":"VariableDeclarationStatement","src":"7879:9:67"},"nodeType":"ForStatement","src":"7874:165:67"},{"expression":{"components":[{"id":43894,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43832,"src":"8057:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":43895,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43835,"src":"8063:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":43896,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43838,"src":"8076:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":43897,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8056:31:67","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$49981_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":43839,"id":43898,"nodeType":"Return","src":"8049:38:67"}]},"documentation":{"id":43823,"nodeType":"StructuredDocumentation","src":"7310:109:67","text":"@notice get quorum signature bundle consisting of the info, signatories and the corresponding signatures."},"functionSelector":"08a6ad25","implemented":true,"kind":"function","modifiers":[],"name":"getSignatureBundle","nameLocation":"7433:18:67","parameters":{"id":43829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43826,"mutability":"mutable","name":"self","nameLocation":"7479:4:67","nodeType":"VariableDeclaration","scope":43900,"src":"7461:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43825,"nodeType":"UserDefinedTypeName","pathNode":{"id":43824,"name":"QuorumMap","nameLocations":["7461:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"7461:9:67"},"referencedDeclaration":50012,"src":"7461:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50012_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43828,"mutability":"mutable","name":"h","nameLocation":"7501:1:67","nodeType":"VariableDeclaration","scope":43900,"src":"7493:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43827,"name":"uint256","nodeType":"ElementaryTypeName","src":"7493:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7451:57:67"},"returnParameters":{"id":43839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43832,"mutability":"mutable","name":"info","nameLocation":"7587:4:67","nodeType":"VariableDeclaration","scope":43900,"src":"7569:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":43831,"nodeType":"UserDefinedTypeName","pathNode":{"id":43830,"name":"QuorumInfo","nameLocations":["7569:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":49981,"src":"7569:10:67"},"referencedDeclaration":49981,"src":"7569:10:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":43835,"mutability":"mutable","name":"signatories","nameLocation":"7622:11:67","nodeType":"VariableDeclaration","scope":43900,"src":"7605:28:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43833,"name":"address","nodeType":"ElementaryTypeName","src":"7605:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43834,"nodeType":"ArrayTypeName","src":"7605:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":43838,"mutability":"mutable","name":"signatures","nameLocation":"7662:10:67","nodeType":"VariableDeclaration","scope":43900,"src":"7647:25:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":43836,"name":"bytes","nodeType":"ElementaryTypeName","src":"7647:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":43837,"nodeType":"ArrayTypeName","src":"7647:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"7555:127:67"},"scope":43901,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"LibQuorum","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43901],"name":"LibQuorum","nameLocation":"641:9:67","scope":43902,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":67} \ No newline at end of file diff --git a/.out/LibReentrancyGuard.sol/ReentrancyGuard.json b/.out/LibReentrancyGuard.sol/ReentrancyGuard.json index 6b20a470c..2a2126aa3 100644 --- a/.out/LibReentrancyGuard.sol/ReentrancyGuard.json +++ b/.out/LibReentrancyGuard.sol/ReentrancyGuard.json @@ -1 +1 @@ -{"abi":[{"type":"error","name":"ReentrancyError","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Reentrancy Guard\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Abstract contract to provide protection against reentrancy\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyError"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibReentrancyGuard.sol":"ReentrancyGuard"},"libraries":{},"viaIR":true},"sources":{"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibReentrancyGuard.sol","id":44014,"exportedSymbols":{"ReentrancyGuard":[44013]},"nodeType":"SourceUnit","src":"46:966:68","nodes":[{"id":43950,"nodeType":"PragmaDirective","src":"46:23:68","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44013,"nodeType":"ContractDefinition","src":"170:841:68","nodes":[{"id":43956,"nodeType":"VariableDeclaration","src":"210:85:68","nodes":[],"constant":true,"mutability":"constant","name":"NAMESPACE","nameLocation":"235:9:68","scope":44013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43952,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"7265656e7472616e637967756172642e6c69622e6469616d6f6e642e73746f72616765","id":43954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"257:37:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095","typeString":"literal_string \"reentrancyguard.lib.diamond.storage\""},"value":"reentrancyguard.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095","typeString":"literal_string \"reentrancyguard.lib.diamond.storage\""}],"id":43953,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"247:9:68","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247:48:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":43959,"nodeType":"StructDefinition","src":"302:56:68","nodes":[],"canonicalName":"ReentrancyGuard.ReentrancyStorage","members":[{"constant":false,"id":43958,"mutability":"mutable","name":"status","nameLocation":"345:6:68","nodeType":"VariableDeclaration","scope":43959,"src":"337:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43957,"name":"uint256","nodeType":"ElementaryTypeName","src":"337:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ReentrancyStorage","nameLocation":"309:17:68","scope":44013,"visibility":"public"},{"id":43961,"nodeType":"ErrorDefinition","src":"364:24:68","nodes":[],"errorSelector":"29f745a7","name":"ReentrancyError","nameLocation":"370:15:68","parameters":{"id":43960,"nodeType":"ParameterList","parameters":[],"src":"385:2:68"}},{"id":43964,"nodeType":"VariableDeclaration","src":"394:41:68","nodes":[],"constant":true,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"419:12:68","scope":44013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43962,"name":"uint256","nodeType":"ElementaryTypeName","src":"394:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":43963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"434:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":43967,"nodeType":"VariableDeclaration","src":"441:37:68","nodes":[],"constant":true,"mutability":"constant","name":"_ENTERED","nameLocation":"466:8:68","scope":44013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43965,"name":"uint256","nodeType":"ElementaryTypeName","src":"441:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":43966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"477:1:68","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":43997,"nodeType":"ModifierDefinition","src":"485:223:68","nodes":[],"body":{"id":43996,"nodeType":"Block","src":"509:199:68","nodes":[],"statements":[{"assignments":[43971],"declarations":[{"constant":false,"id":43971,"mutability":"mutable","name":"s","nameLocation":"545:1:68","nodeType":"VariableDeclaration","scope":43996,"src":"519:27:68","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"},"typeName":{"id":43970,"nodeType":"UserDefinedTypeName","pathNode":{"id":43969,"name":"ReentrancyStorage","nameLocations":["519:17:68"],"nodeType":"IdentifierPath","referencedDeclaration":43959,"src":"519:17:68"},"referencedDeclaration":43959,"src":"519:17:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"}},"visibility":"internal"}],"id":43974,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43972,"name":"reentrancyStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44012,"src":"549:17:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ReentrancyStorage_$43959_storage_ptr_$","typeString":"function () pure returns (struct ReentrancyGuard.ReentrancyStorage storage pointer)"}},"id":43973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"549:19:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"519:49:68"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43975,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43971,"src":"582:1:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"584:6:68","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43958,"src":"582:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":43977,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43967,"src":"594:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"582:20:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43982,"nodeType":"IfStatement","src":"578:50:68","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43979,"name":"ReentrancyError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43961,"src":"611:15:68","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"611:17:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43981,"nodeType":"RevertStatement","src":"604:24:68"}},{"expression":{"id":43987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43983,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43971,"src":"638:1:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"640:6:68","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43958,"src":"638:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43986,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43967,"src":"649:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"638:19:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43988,"nodeType":"ExpressionStatement","src":"638:19:68"},{"id":43989,"nodeType":"PlaceholderStatement","src":"667:1:68"},{"expression":{"id":43994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43990,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43971,"src":"678:1:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"680:6:68","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43958,"src":"678:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43993,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43964,"src":"689:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"678:23:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43995,"nodeType":"ExpressionStatement","src":"678:23:68"}]},"name":"nonReentrant","nameLocation":"494:12:68","parameters":{"id":43968,"nodeType":"ParameterList","parameters":[],"src":"506:2:68"},"virtual":false,"visibility":"internal"},{"id":44012,"nodeType":"FunctionDefinition","src":"747:262:68","nodes":[],"body":{"id":44011,"nodeType":"Block","src":"828:181:68","nodes":[],"statements":[{"assignments":[44005],"declarations":[{"constant":false,"id":44005,"mutability":"mutable","name":"position","nameLocation":"846:8:68","nodeType":"VariableDeclaration","scope":44011,"src":"838:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"838:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44007,"initialValue":{"id":44006,"name":"NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43956,"src":"857:9:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"838:28:68"},{"AST":{"nodeType":"YulBlock","src":"941:43:68","statements":[{"nodeType":"YulAssignment","src":"955:19:68","value":{"name":"position","nodeType":"YulIdentifier","src":"966:8:68"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"955:7:68"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":44002,"isOffset":false,"isSlot":true,"src":"955:7:68","suffix":"slot","valueSize":1},{"declaration":44005,"isOffset":false,"isSlot":false,"src":"966:8:68","valueSize":1}],"id":44008,"nodeType":"InlineAssembly","src":"932:52:68"},{"expression":{"id":44009,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44002,"src":"1000:2:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"functionReturnParameters":44003,"id":44010,"nodeType":"Return","src":"993:9:68"}]},"documentation":{"id":43998,"nodeType":"StructuredDocumentation","src":"714:28:68","text":"@dev fetch local storage"},"implemented":true,"kind":"function","modifiers":[],"name":"reentrancyStorage","nameLocation":"756:17:68","parameters":{"id":43999,"nodeType":"ParameterList","parameters":[],"src":"773:2:68"},"returnParameters":{"id":44003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44002,"mutability":"mutable","name":"ds","nameLocation":"824:2:68","nodeType":"VariableDeclaration","scope":44012,"src":"798:28:68","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"},"typeName":{"id":44001,"nodeType":"UserDefinedTypeName","pathNode":{"id":44000,"name":"ReentrancyStorage","nameLocations":["798:17:68"],"nodeType":"IdentifierPath","referencedDeclaration":43959,"src":"798:17:68"},"referencedDeclaration":43959,"src":"798:17:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"}},"visibility":"internal"}],"src":"797:30:68"},"scope":44013,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":43951,"nodeType":"StructuredDocumentation","src":"71:99:68","text":"@title Reentrancy Guard\n @notice Abstract contract to provide protection against reentrancy"},"fullyImplemented":true,"linearizedBaseContracts":[44013],"name":"ReentrancyGuard","nameLocation":"188:15:68","scope":44014,"usedErrors":[43961]}],"license":"MIT OR Apache-2.0"},"id":68} \ No newline at end of file +{"abi":[{"type":"error","name":"ReentrancyError","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Reentrancy Guard\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Abstract contract to provide protection against reentrancy\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyError"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibReentrancyGuard.sol":"ReentrancyGuard"},"libraries":{},"viaIR":true},"sources":{"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibReentrancyGuard.sol","id":43967,"exportedSymbols":{"ReentrancyGuard":[43966]},"nodeType":"SourceUnit","src":"46:966:68","nodes":[{"id":43903,"nodeType":"PragmaDirective","src":"46:23:68","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43966,"nodeType":"ContractDefinition","src":"170:841:68","nodes":[{"id":43909,"nodeType":"VariableDeclaration","src":"210:85:68","nodes":[],"constant":true,"mutability":"constant","name":"NAMESPACE","nameLocation":"235:9:68","scope":43966,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43905,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"7265656e7472616e637967756172642e6c69622e6469616d6f6e642e73746f72616765","id":43907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"257:37:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095","typeString":"literal_string \"reentrancyguard.lib.diamond.storage\""},"value":"reentrancyguard.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095","typeString":"literal_string \"reentrancyguard.lib.diamond.storage\""}],"id":43906,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"247:9:68","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247:48:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":43912,"nodeType":"StructDefinition","src":"302:56:68","nodes":[],"canonicalName":"ReentrancyGuard.ReentrancyStorage","members":[{"constant":false,"id":43911,"mutability":"mutable","name":"status","nameLocation":"345:6:68","nodeType":"VariableDeclaration","scope":43912,"src":"337:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43910,"name":"uint256","nodeType":"ElementaryTypeName","src":"337:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ReentrancyStorage","nameLocation":"309:17:68","scope":43966,"visibility":"public"},{"id":43914,"nodeType":"ErrorDefinition","src":"364:24:68","nodes":[],"errorSelector":"29f745a7","name":"ReentrancyError","nameLocation":"370:15:68","parameters":{"id":43913,"nodeType":"ParameterList","parameters":[],"src":"385:2:68"}},{"id":43917,"nodeType":"VariableDeclaration","src":"394:41:68","nodes":[],"constant":true,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"419:12:68","scope":43966,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43915,"name":"uint256","nodeType":"ElementaryTypeName","src":"394:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":43916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"434:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":43920,"nodeType":"VariableDeclaration","src":"441:37:68","nodes":[],"constant":true,"mutability":"constant","name":"_ENTERED","nameLocation":"466:8:68","scope":43966,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43918,"name":"uint256","nodeType":"ElementaryTypeName","src":"441:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":43919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"477:1:68","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":43950,"nodeType":"ModifierDefinition","src":"485:223:68","nodes":[],"body":{"id":43949,"nodeType":"Block","src":"509:199:68","nodes":[],"statements":[{"assignments":[43924],"declarations":[{"constant":false,"id":43924,"mutability":"mutable","name":"s","nameLocation":"545:1:68","nodeType":"VariableDeclaration","scope":43949,"src":"519:27:68","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43912_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"},"typeName":{"id":43923,"nodeType":"UserDefinedTypeName","pathNode":{"id":43922,"name":"ReentrancyStorage","nameLocations":["519:17:68"],"nodeType":"IdentifierPath","referencedDeclaration":43912,"src":"519:17:68"},"referencedDeclaration":43912,"src":"519:17:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43912_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"}},"visibility":"internal"}],"id":43927,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43925,"name":"reentrancyStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43965,"src":"549:17:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ReentrancyStorage_$43912_storage_ptr_$","typeString":"function () pure returns (struct ReentrancyGuard.ReentrancyStorage storage pointer)"}},"id":43926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"549:19:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43912_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"519:49:68"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43928,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43924,"src":"582:1:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43912_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"584:6:68","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43911,"src":"582:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":43930,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43920,"src":"594:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"582:20:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43935,"nodeType":"IfStatement","src":"578:50:68","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43932,"name":"ReentrancyError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43914,"src":"611:15:68","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"611:17:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43934,"nodeType":"RevertStatement","src":"604:24:68"}},{"expression":{"id":43940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43936,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43924,"src":"638:1:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43912_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"640:6:68","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43911,"src":"638:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43939,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43920,"src":"649:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"638:19:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43941,"nodeType":"ExpressionStatement","src":"638:19:68"},{"id":43942,"nodeType":"PlaceholderStatement","src":"667:1:68"},{"expression":{"id":43947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43943,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43924,"src":"678:1:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43912_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"680:6:68","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43911,"src":"678:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43946,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43917,"src":"689:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"678:23:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43948,"nodeType":"ExpressionStatement","src":"678:23:68"}]},"name":"nonReentrant","nameLocation":"494:12:68","parameters":{"id":43921,"nodeType":"ParameterList","parameters":[],"src":"506:2:68"},"virtual":false,"visibility":"internal"},{"id":43965,"nodeType":"FunctionDefinition","src":"747:262:68","nodes":[],"body":{"id":43964,"nodeType":"Block","src":"828:181:68","nodes":[],"statements":[{"assignments":[43958],"declarations":[{"constant":false,"id":43958,"mutability":"mutable","name":"position","nameLocation":"846:8:68","nodeType":"VariableDeclaration","scope":43964,"src":"838:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"838:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43960,"initialValue":{"id":43959,"name":"NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43909,"src":"857:9:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"838:28:68"},{"AST":{"nodeType":"YulBlock","src":"941:43:68","statements":[{"nodeType":"YulAssignment","src":"955:19:68","value":{"name":"position","nodeType":"YulIdentifier","src":"966:8:68"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"955:7:68"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":43955,"isOffset":false,"isSlot":true,"src":"955:7:68","suffix":"slot","valueSize":1},{"declaration":43958,"isOffset":false,"isSlot":false,"src":"966:8:68","valueSize":1}],"id":43961,"nodeType":"InlineAssembly","src":"932:52:68"},{"expression":{"id":43962,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43955,"src":"1000:2:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43912_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"functionReturnParameters":43956,"id":43963,"nodeType":"Return","src":"993:9:68"}]},"documentation":{"id":43951,"nodeType":"StructuredDocumentation","src":"714:28:68","text":"@dev fetch local storage"},"implemented":true,"kind":"function","modifiers":[],"name":"reentrancyStorage","nameLocation":"756:17:68","parameters":{"id":43952,"nodeType":"ParameterList","parameters":[],"src":"773:2:68"},"returnParameters":{"id":43956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43955,"mutability":"mutable","name":"ds","nameLocation":"824:2:68","nodeType":"VariableDeclaration","scope":43965,"src":"798:28:68","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43912_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"},"typeName":{"id":43954,"nodeType":"UserDefinedTypeName","pathNode":{"id":43953,"name":"ReentrancyStorage","nameLocations":["798:17:68"],"nodeType":"IdentifierPath","referencedDeclaration":43912,"src":"798:17:68"},"referencedDeclaration":43912,"src":"798:17:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43912_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"}},"visibility":"internal"}],"src":"797:30:68"},"scope":43966,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":43904,"nodeType":"StructuredDocumentation","src":"71:99:68","text":"@title Reentrancy Guard\n @notice Abstract contract to provide protection against reentrancy"},"fullyImplemented":true,"linearizedBaseContracts":[43966],"name":"ReentrancyGuard","nameLocation":"188:15:68","scope":43967,"usedErrors":[43914]}],"license":"MIT OR Apache-2.0"},"id":68} \ No newline at end of file diff --git a/.out/LibStaking.sol/LibAddressStakingReleases.json b/.out/LibStaking.sol/LibAddressStakingReleases.json index f5a25d512..f1f4bd873 100644 --- a/.out/LibStaking.sol/LibAddressStakingReleases.json +++ b/.out/LibStaking.sol/LibAddressStakingReleases.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220eea0c5d3633d95e1224489046147a4df6f721c816a69a56563b673dd9fdc05c264736f6c63430008130033","sourceMap":"902:1635:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220eea0c5d3633d95e1224489046147a4df6f721c816a69a56563b673dd9fdc05c264736f6c63430008130033","sourceMap":"902:1635:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibAddressStakingReleases\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibAddressStakingReleases"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46441,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50140],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44183],"LibMaxPQ":[49016],"LibMinPQ":[49635],"LibStaking":[46176],"LibStakingChangeLog":[46678],"LibStakingReleaseQueue":[44302],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"MaxPQ":[48411],"MinPQ":[49029],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"SubnetActorStorage":[47281],"Validator":[50211],"ValidatorSet":[50190],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":44015,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44017,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":44016,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44020,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":44018,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44019,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44023,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":44021,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49016,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44022,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44026,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":44024,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49635,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44025,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44028,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":46679,"symbolAliases":[{"foreign":{"id":44027,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46678,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44040,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":44029,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44030,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44031,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44032,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44033,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44034,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44035,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44036,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44037,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50140,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44038,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44039,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44048,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":44041,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44042,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44043,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44044,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44045,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44046,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44047,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44050,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44049,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44183,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44089,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44088,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44061],"declarations":[{"constant":false,"id":44061,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44088,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44060,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44064,"initialValue":{"expression":{"id":44062,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44066],"declarations":[{"constant":false,"id":44066,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44088,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44065,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44067,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44069,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44072,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44076,"indexExpression":{"id":44074,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44066,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44077,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44057,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"id":44079,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44080,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44083,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44087,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44051,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44054,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44089,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44053,"nodeType":"UserDefinedTypeName","pathNode":{"id":44052,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1132:22:69"},"referencedDeclaration":50140,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44057,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44089,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44056,"nodeType":"UserDefinedTypeName","pathNode":{"id":44055,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1169:14:69"},"referencedDeclaration":50130,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44059,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44182,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44181,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44101],"declarations":[{"constant":false,"id":44101,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44100,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44104,"initialValue":{"expression":{"id":44102,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44113,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44112,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44109,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44111,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44115],"declarations":[{"constant":false,"id":44115,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44181,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44114,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44118,"initialValue":{"expression":{"id":44116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44181,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44119,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44122,"initialValue":{"id":44121,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44124],"declarations":[{"constant":false,"id":44124,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44125,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44163,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44131],"declarations":[{"constant":false,"id":44131,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44163,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44130,"nodeType":"UserDefinedTypeName","pathNode":{"id":44129,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1987:14:69"},"referencedDeclaration":50130,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44136,"initialValue":{"baseExpression":{"expression":{"id":44132,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44135,"indexExpression":{"id":44134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44137,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50126,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44139,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44144,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44143,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44142,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44145,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44146,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50129,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44149,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44153,"indexExpression":{"id":44152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44155,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44162,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44158,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44159,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44161,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44127,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44164,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44170,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44174,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44176,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44178,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44099,"id":44180,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44090,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44093,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44182,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44092,"nodeType":"UserDefinedTypeName","pathNode":{"id":44091,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1654:22:69"},"referencedDeclaration":50140,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44183],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46441,"usedErrors":[]},{"id":44302,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44187,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44185,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44186,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44191,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44188,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44183,"src":"2668:25:69"},"typeName":{"id":44190,"nodeType":"UserDefinedTypeName","pathNode":{"id":44189,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2698:22:69"},"referencedDeclaration":50140,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44199,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44193,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44199,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44192,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44195,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44199,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44197,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44199,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44214,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44213,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44207,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44202,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44210,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44204,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44212,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44202,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44214,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44201,"nodeType":"UserDefinedTypeName","pathNode":{"id":44200,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2842:19:69"},"referencedDeclaration":50150,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44204,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44214,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44206,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44257,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44256,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44226],"declarations":[{"constant":false,"id":44226,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44256,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44232,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44227,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44235],"declarations":[{"constant":false,"id":44235,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44256,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44234,"nodeType":"UserDefinedTypeName","pathNode":{"id":44233,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"3192:14:69"},"referencedDeclaration":50130,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44240,"initialValue":{"arguments":[{"id":44237,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44236,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50130_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44247,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44235,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44245,"indexExpression":{"id":44243,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44089,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$_t_struct$_StakingRelease_$50130_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44249,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44251,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44253,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44250,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44199,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44255,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44215,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44218,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44257,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44217,"nodeType":"UserDefinedTypeName","pathNode":{"id":44216,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3039:19:69"},"referencedDeclaration":50150,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44220,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44257,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44219,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44257,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44224,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44301,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44300,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44269,44271],"declarations":[{"constant":false,"id":44269,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44300,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44271,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44300,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44272,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44275,"indexExpression":{"id":44274,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44182,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44279,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44271,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44289,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44288,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44285,"indexExpression":{"id":44284,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44287,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44295,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44292,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44290,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44297,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44298,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44267,"id":44299,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44258,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44261,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44301,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44260,"nodeType":"UserDefinedTypeName","pathNode":{"id":44259,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3531:19:69"},"referencedDeclaration":50150,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44263,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44301,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44262,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44301,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44184,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44302],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46441,"usedErrors":[]},{"id":45293,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44307,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44304,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"3936:8:69"},"typeName":{"id":44306,"nodeType":"UserDefinedTypeName","pathNode":{"id":44305,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3949:5:69"},"referencedDeclaration":49029,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":44311,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44308,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"3966:8:69"},"typeName":{"id":44310,"nodeType":"UserDefinedTypeName","pathNode":{"id":44309,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3979:5:69"},"referencedDeclaration":48411,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44317,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44313,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44317,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44312,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44315,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44317,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44323,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44319,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44323,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44318,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44321,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44323,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44320,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44329,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44329,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44324,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44327,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44329,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44335,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44331,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44335,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44330,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44333,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44335,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44341,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44337,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44336,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44339,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44338,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44345,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44343,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44345,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44342,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44349,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44347,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44349,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44346,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44385,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44384,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":44364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44360,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44362,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":44363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44382,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44374,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44375,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44378,"indexExpression":{"id":44377,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44381,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44383,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44373,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44365,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44366,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44369,"indexExpression":{"id":44368,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44372,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44350,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44353,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44385,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44352,"nodeType":"UserDefinedTypeName","pathNode":{"id":44351,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4552:12:69"},"referencedDeclaration":50190,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44355,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44385,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44354,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44358,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44385,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44357,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44400,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44399,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44394,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44392,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44395,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44389,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44398,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44386,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44389,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44388,"nodeType":"UserDefinedTypeName","pathNode":{"id":44387,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5013:12:69"},"referencedDeclaration":50190,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44392,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44417,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44416,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44409,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44407,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44410,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44404,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44415,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44401,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44404,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44417,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44403,"nodeType":"UserDefinedTypeName","pathNode":{"id":44402,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5240:12:69"},"referencedDeclaration":50190,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44407,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44417,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44406,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44437,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44436,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44428,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44429,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44421,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44432,"indexExpression":{"id":44431,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44423,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44435,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44418,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44421,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44420,"nodeType":"UserDefinedTypeName","pathNode":{"id":44419,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5482:12:69"},"referencedDeclaration":50190,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44423,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44437,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44422,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44426,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44489,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44488,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44447],"declarations":[{"constant":false,"id":44447,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44488,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44446,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44452,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44448,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44453,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44454,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44455,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44460,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44484,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44468,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44472,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44473,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44479,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44466,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44462],"declarations":[{"constant":false,"id":44462,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44461,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44464,"initialValue":{"hexValue":"31","id":44463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44486,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44445,"id":44487,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44440,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44489,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44439,"nodeType":"UserDefinedTypeName","pathNode":{"id":44438,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5708:12:69"},"referencedDeclaration":50190,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44444,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44489,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44442,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44443,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44534,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44533,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44499],"declarations":[{"constant":false,"id":44499,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44533,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44498,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44531,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44513],"declarations":[{"constant":false,"id":44513,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44531,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44512,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44519,"initialValue":{"arguments":[{"id":44517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44514,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44520,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44496,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44522,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44523,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44521,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44526,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44530,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44529,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44510,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44499,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44532,"initializationExpression":{"assignments":[44506],"declarations":[{"constant":false,"id":44506,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44532,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44505,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44508,"initialValue":{"hexValue":"31","id":44507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44490,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44493,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44492,"nodeType":"UserDefinedTypeName","pathNode":{"id":44491,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6212:12:69"},"referencedDeclaration":50190,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44496,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44495,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44585,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44584,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44544],"declarations":[{"constant":false,"id":44544,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44584,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44543,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44549,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44545,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44576,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44558],"declarations":[{"constant":false,"id":44558,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44576,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44557,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44564,"initialValue":{"arguments":[{"id":44562,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44559,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48450,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44565,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44567,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44568,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44558,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44566,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44437,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44571,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44575,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44574,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44554,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44555,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44544,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44577,"initializationExpression":{"assignments":[44551],"declarations":[{"constant":false,"id":44551,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44577,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44550,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44553,"initialValue":{"hexValue":"31","id":44552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44578,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44580,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44579,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44583,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44535,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44538,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44537,"nodeType":"UserDefinedTypeName","pathNode":{"id":44536,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6718:12:69"},"referencedDeclaration":50190,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44541,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44540,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44655,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44654,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44599],"declarations":[{"constant":false,"id":44599,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44654,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44602,"initialValue":{"expression":{"id":44600,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44607],"declarations":[{"constant":false,"id":44607,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44654,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44606,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44613,"initialValue":{"arguments":[{"id":44611,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44609,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44650,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44621,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44622,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44624,"indexExpression":{"id":44623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44620,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44672,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44634,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44633,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44628,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44630,"indexExpression":{"id":44629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44627,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44632,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44635,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44637,"indexExpression":{"id":44636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44639,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44640,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44642,"indexExpression":{"id":44641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44638,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44645,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44649,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44648,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44617,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44618,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44651,"initializationExpression":{"assignments":[44615],"declarations":[{"constant":false,"id":44615,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44651,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44614,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44616,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44652,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44597,"id":44653,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44586,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44589,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44655,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44588,"nodeType":"UserDefinedTypeName","pathNode":{"id":44587,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7383:12:69"},"referencedDeclaration":50190,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44592,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44655,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44590,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44591,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44655,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44594,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44595,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44672,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44671,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44668,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44660,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44665,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44658,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44664,"id":44670,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44658,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44672,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44657,"nodeType":"UserDefinedTypeName","pathNode":{"id":44656,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7984:12:69"},"referencedDeclaration":50190,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44660,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44672,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44659,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44672,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44662,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44693,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44692,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44676,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44687,"indexExpression":{"id":44685,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44678,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44689,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44680,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44691,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44673,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44676,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44693,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44675,"nodeType":"UserDefinedTypeName","pathNode":{"id":44674,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8186:12:69"},"referencedDeclaration":50190,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44678,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44693,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44677,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44680,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44693,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44679,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44682,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44714,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44713,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44704,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44697,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44708,"indexExpression":{"id":44706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44699,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44701,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44712,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44694,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44697,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44714,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44696,"nodeType":"UserDefinedTypeName","pathNode":{"id":44695,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8671:12:69"},"referencedDeclaration":50190,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44699,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44714,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44698,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44701,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44714,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44700,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44703,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44755,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44754,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44726],"declarations":[{"constant":false,"id":44726,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44754,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44725,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44732,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44730,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44733,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44740,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44739,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44736,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44738,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44741,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44742,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44744,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44745,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44749,"indexExpression":{"id":44747,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44751,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44753,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44715,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44718,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44755,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44717,"nodeType":"UserDefinedTypeName","pathNode":{"id":44716,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8919:12:69"},"referencedDeclaration":50190,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44720,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44755,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44719,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44722,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44755,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44721,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44808,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44807,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44767],"declarations":[{"constant":false,"id":44767,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44807,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44773,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44768,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44771,"indexExpression":{"id":44770,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44774,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44778,"indexExpression":{"id":44776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44780,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44782,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44783,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44784,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44788,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44789,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44804,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44799,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44800,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44801,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44798,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44803,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44805,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44797,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44792,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44793,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44794,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44791,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44796,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44806,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44787,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44765,"id":44786,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44756,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44759,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44808,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44758,"nodeType":"UserDefinedTypeName","pathNode":{"id":44757,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9361:12:69"},"referencedDeclaration":50190,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44761,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44808,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44760,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44763,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44808,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44762,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44765,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44819],"declarations":[{"constant":false,"id":44819,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44849,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44818,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44827,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44823,"indexExpression":{"id":44822,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44825,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44828,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44832,"indexExpression":{"id":44830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44834,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44836,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44840,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44842,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44844,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44843,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44811,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44850,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44810,"nodeType":"UserDefinedTypeName","pathNode":{"id":44809,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9900:12:69"},"referencedDeclaration":50190,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44813,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44850,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44812,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44815,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44850,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44814,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44817,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44916,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44915,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44861],"declarations":[{"constant":false,"id":44861,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44915,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44869,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44865,"indexExpression":{"id":44864,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44867,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44871],"declarations":[{"constant":false,"id":44871,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44915,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44870,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44877,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44872,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44875,"indexExpression":{"id":44874,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44878,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44881,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44871,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44901,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44896,"indexExpression":{"id":44894,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44898,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44900,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44902,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44891,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44888,"indexExpression":{"id":44887,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44890,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44905,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44906,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44903,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44908,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44914,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44916,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44852,"nodeType":"UserDefinedTypeName","pathNode":{"id":44851,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"10311:12:69"},"referencedDeclaration":50190,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44916,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44854,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44857,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44916,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45081,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45080,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44930,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44927,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44948,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44947,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44937,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44938,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49342,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44940,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44942,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44943,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44941,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44945,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44926,"id":44946,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44950],"declarations":[{"constant":false,"id":44950,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45080,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44949,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44953,"initialValue":{"expression":{"id":44951,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44955],"declarations":[{"constant":false,"id":44955,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44954,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44960,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44956,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44961,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44950,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44962,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44955,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44979,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44969,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44970,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44972,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44974,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44975,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44973,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44977,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44926,"id":44978,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44982,44984],"declarations":[{"constant":false,"id":44982,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44981,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44984,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45080,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44983,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44990,"initialValue":{"arguments":[{"id":44988,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44991,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44984,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44992,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45043,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":45042,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44999,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44994,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45001,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":45005,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45017,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":45016,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":45012,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45013,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":45023,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45024,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45026,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":45032,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45033,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45027,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45035,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":45037,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45038,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45036,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45040,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44926,"id":45041,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45047,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45044,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45065,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45064,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45054,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45055,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48724,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45057,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45059,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45060,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45058,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45062,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44926,"id":45063,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45071,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45072,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45066,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45074,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45076,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45077,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45075,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44335,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45079,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44917,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44920,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45081,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44919,"nodeType":"UserDefinedTypeName","pathNode":{"id":44918,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"11035:12:69"},"referencedDeclaration":50190,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44922,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45081,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44921,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44924,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45081,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44923,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44926,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45292,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45291,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45095,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45132,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45131,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45115,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45114,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44349,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45091,"id":45113,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48759,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45124,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45127,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45125,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45129,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45091,"id":45130,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45136,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45143,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45142,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45139,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45141,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45144,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45201,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45152,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45153,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45147,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49307,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45155,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45157,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45156,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45159,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45199,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45198,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45167,45169],"declarations":[{"constant":false,"id":45167,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45198,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45166,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45169,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45198,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45168,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45175,"initialValue":{"arguments":[{"id":45173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45170,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45176,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45183,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45189,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45190,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45184,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45192,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45194,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45195,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45169,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45193,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45197,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45091,"id":45200,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45209,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45203,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49377,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45211,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45212,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45220,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45219,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45091,"id":45218,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45222,45224],"declarations":[{"constant":false,"id":45222,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45291,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45224,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45291,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45223,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45230,"initialValue":{"arguments":[{"id":45228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45232,45234],"declarations":[{"constant":false,"id":45232,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45291,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45231,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45234,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45291,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45233,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45240,"initialValue":{"arguments":[{"id":45238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45241,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45224,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45242,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45234,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45285,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45284,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45249,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45251,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45259,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45266,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45268,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45274,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45275,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45277,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45279,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45280,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45278,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45282,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45091,"id":45283,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45287,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45288,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45286,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45290,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45082,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45085,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45292,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45084,"nodeType":"UserDefinedTypeName","pathNode":{"id":45083,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"13345:12:69"},"referencedDeclaration":50190,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45087,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45292,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45086,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45089,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45292,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45088,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45091,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45293],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46441,"usedErrors":[]},{"id":46176,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45297,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45294,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44302,"src":"15369:22:69"},"typeName":{"id":45296,"nodeType":"UserDefinedTypeName","pathNode":{"id":45295,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"15396:19:69"},"referencedDeclaration":50150,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45301,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45298,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"15427:19:69"},"typeName":{"id":45300,"nodeType":"UserDefinedTypeName","pathNode":{"id":45299,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"15451:16:69"},"referencedDeclaration":50123,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45305,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45302,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"15479:15:69"},"typeName":{"id":45304,"nodeType":"UserDefinedTypeName","pathNode":{"id":45303,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"15499:12:69"},"referencedDeclaration":50190,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45309,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45306,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"15523:8:69"},"typeName":{"id":45308,"nodeType":"UserDefinedTypeName","pathNode":{"id":45307,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"15536:5:69"},"referencedDeclaration":48411,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45313,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45310,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"15553:8:69"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"15566:5:69"},"referencedDeclaration":49029,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":45316,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45314,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45315,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45319,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46176,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45317,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45323,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45321,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45323,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45320,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45329,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45329,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45324,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45327,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45329,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45326,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45350,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45349,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45338],"declarations":[{"constant":false,"id":45338,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45349,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45337,"nodeType":"UserDefinedTypeName","pathNode":{"id":45336,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"15944:18:69"},"referencedDeclaration":47281,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45339,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45346,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45331,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45338,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45335,"id":45348,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45331,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45350,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45330,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45334,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45350,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45333,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45373,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45372,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45360],"declarations":[{"constant":false,"id":45360,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45372,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45359,"nodeType":"UserDefinedTypeName","pathNode":{"id":45358,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16221:18:69"},"referencedDeclaration":47281,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45364,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45361,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45353,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45365,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45360,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45357,"id":45371,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45351,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45353,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45373,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45352,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45373,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45355,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45396,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45395,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45383],"declarations":[{"constant":false,"id":45383,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45395,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45382,"nodeType":"UserDefinedTypeName","pathNode":{"id":45381,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16516:18:69"},"referencedDeclaration":47281,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45387,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45384,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45376,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45383,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45380,"id":45394,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45374,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45376,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45396,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45375,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45396,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45378,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45409,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45408,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45405,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45399,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45404,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45434,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45403,"id":45407,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45397,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45399,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45409,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45398,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45409,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45401,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45434,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45433,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45419],"declarations":[{"constant":false,"id":45419,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45433,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45418,"nodeType":"UserDefinedTypeName","pathNode":{"id":45417,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17294:18:69"},"referencedDeclaration":47281,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45420,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45419,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45428,"indexExpression":{"id":45427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45412,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45416,"id":45432,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45410,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45412,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45434,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45411,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45434,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45414,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45452,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45451,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45441],"declarations":[{"constant":false,"id":45441,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45451,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45440,"nodeType":"UserDefinedTypeName","pathNode":{"id":45439,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17577:18:69"},"referencedDeclaration":47281,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45445,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45442,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45441,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44417,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45438,"id":45450,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45435,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45452,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45436,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45478,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45477,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45460],"declarations":[{"constant":false,"id":45460,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45477,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45459,"nodeType":"UserDefinedTypeName","pathNode":{"id":45458,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17860:18:69"},"referencedDeclaration":47281,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45461,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45470,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45457,"id":45476,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45453,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45454,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45478,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45455,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45496,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45495,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45485],"declarations":[{"constant":false,"id":45485,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45495,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45484,"nodeType":"UserDefinedTypeName","pathNode":{"id":45483,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18122:18:69"},"referencedDeclaration":47281,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45486,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45490,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45485,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45482,"id":45494,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45479,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45496,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45480,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45514,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45513,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45503],"declarations":[{"constant":false,"id":45503,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45513,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45502,"nodeType":"UserDefinedTypeName","pathNode":{"id":45501,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18333:18:69"},"referencedDeclaration":47281,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45504,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45508,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45503,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45500,"id":45512,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45514,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45498,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45537,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45536,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45524],"declarations":[{"constant":false,"id":45524,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45536,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45523,"nodeType":"UserDefinedTypeName","pathNode":{"id":45522,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18636:18:69"},"referencedDeclaration":47281,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45528,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45525,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45529,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45524,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45533,"indexExpression":{"id":45532,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45517,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45521,"id":45535,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45515,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45517,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45537,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45516,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45537,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45519,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45562,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45561,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45547],"declarations":[{"constant":false,"id":45547,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45561,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45546,"nodeType":"UserDefinedTypeName","pathNode":{"id":45545,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19028:18:69"},"referencedDeclaration":47281,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45551,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45548,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45557,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45540,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45558,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45542,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45552,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45547,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45560,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45538,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45540,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45562,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45539,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45542,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45562,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45541,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45544,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45587,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45586,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45572],"declarations":[{"constant":false,"id":45572,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45586,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45571,"nodeType":"UserDefinedTypeName","pathNode":{"id":45570,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19346:18:69"},"referencedDeclaration":47281,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45576,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45573,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45582,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45565,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45583,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45577,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45572,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44693,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45585,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45563,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45565,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45587,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45564,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45567,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45587,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45566,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45569,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45696,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45695,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45597],"declarations":[{"constant":false,"id":45597,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45695,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45596,"nodeType":"UserDefinedTypeName","pathNode":{"id":45595,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19655:18:69"},"referencedDeclaration":47281,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45598,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45607,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45608,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45602,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45610,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45616,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45611,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45619,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45620,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45694,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45693,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45693,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45623,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45625,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45627],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45693,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45626,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45631,"initialValue":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45656,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45638,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45641,"indexExpression":{"id":45640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":45642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50208,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45643,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45651,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45650,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45645,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45648,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45649,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45655,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45654,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45635,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45636,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45657,"initializationExpression":{"assignments":[45633],"declarations":[{"constant":false,"id":45633,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45657,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45632,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45634,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45658,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45692,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45691,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45661],"declarations":[{"constant":false,"id":45661,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45691,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45660,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45668,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45666,"indexExpression":{"id":45665,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45671],"declarations":[{"constant":false,"id":45671,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45691,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45670,"nodeType":"UserDefinedTypeName","pathNode":{"id":45669,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"20624:9:69"},"referencedDeclaration":50211,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45682,"initialValue":{"arguments":[{"id":45673,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45674,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45661,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45679,"indexExpression":{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45672,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45688,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45671,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45683,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45690,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45588,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45590,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45696,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45589,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45592,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45696,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45591,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45594,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45738,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45737,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45706],"declarations":[{"constant":false,"id":45706,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45737,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45705,"nodeType":"UserDefinedTypeName","pathNode":{"id":45704,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21181:18:69"},"referencedDeclaration":47281,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45710,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45707,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45711,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45719,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45725,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45720,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45728,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45731,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45729,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45736,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45697,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45699,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45738,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45698,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45701,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45738,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45700,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45703,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45766,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45765,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45750],"declarations":[{"constant":false,"id":45750,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45765,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45749,"nodeType":"UserDefinedTypeName","pathNode":{"id":45748,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21838:18:69"},"referencedDeclaration":47281,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45754,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45751,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45760,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45741,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45761,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45743,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45745,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45755,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46528,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45764,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45739,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45741,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45766,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45740,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45743,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45766,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45742,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45745,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45766,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45744,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45747,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45791,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45790,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45776],"declarations":[{"constant":false,"id":45776,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45790,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45775,"nodeType":"UserDefinedTypeName","pathNode":{"id":45774,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22154:18:69"},"referencedDeclaration":47281,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45777,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45786,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45769,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45787,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45771,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46488,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45789,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45767,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45769,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45791,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45768,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45771,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45791,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45770,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45773,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45825,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45824,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45801],"declarations":[{"constant":false,"id":45801,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45824,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45800,"nodeType":"UserDefinedTypeName","pathNode":{"id":45799,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22400:18:69"},"referencedDeclaration":47281,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45802,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45806,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46602,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45814,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45815,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45823,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45792,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45794,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45825,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45793,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45796,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45825,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45795,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45798,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45859,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45858,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45858,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45834,"nodeType":"UserDefinedTypeName","pathNode":{"id":45833,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22703:18:69"},"referencedDeclaration":47281,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46565,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45848,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45854,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45855,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45849,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45857,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45826,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45828,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45859,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45827,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45830,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45859,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45832,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45886,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45885,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45867],"declarations":[{"constant":false,"id":45867,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45885,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45866,"nodeType":"UserDefinedTypeName","pathNode":{"id":45865,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23062:18:69"},"referencedDeclaration":47281,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45868,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45873],"declarations":[{"constant":false,"id":45873,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45885,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45872,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45879,"initialValue":{"arguments":[{"id":45877,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45867,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44301,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45881,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45882,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45873,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45880,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45884,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45860,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45862,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45886,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45861,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45864,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45942,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45941,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45894],"declarations":[{"constant":false,"id":45894,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45941,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45893,"nodeType":"UserDefinedTypeName","pathNode":{"id":45892,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23424:18:69"},"referencedDeclaration":47281,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45895,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45900],"declarations":[{"constant":false,"id":45900,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45941,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45899,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45906,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45901,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45905,"indexExpression":{"id":45904,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45914,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45913,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45910,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45912,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45921,"indexExpression":{"id":45918,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45924,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45925,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45932,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45935,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45933,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45940,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45887,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45889,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45942,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45888,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45891,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45965,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45964,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45951],"declarations":[{"constant":false,"id":45951,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45964,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45950,"nodeType":"UserDefinedTypeName","pathNode":{"id":45949,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23885:18:69"},"referencedDeclaration":47281,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45952,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45956,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45959,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45948,"id":45963,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45943,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45944,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45946,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46175,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46174,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45973],"declarations":[{"constant":false,"id":45973,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46174,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45972,"nodeType":"UserDefinedTypeName","pathNode":{"id":45971,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"24247:18:69"},"referencedDeclaration":47281,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45977,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45974,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45980],"declarations":[{"constant":false,"id":45980,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46174,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45979,"nodeType":"UserDefinedTypeName","pathNode":{"id":45978,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"24322:16:69"},"referencedDeclaration":50123,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45983,"initialValue":{"expression":{"id":45981,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45984,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45985,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45992,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45993,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45998,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45997,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45970,"id":45996,"nodeType":"Return","src":"24585:7:69"}]}},"id":45999,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45991,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45988,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45990,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[46001],"declarations":[{"constant":false,"id":46001,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46174,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46000,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46004,"initialValue":{"expression":{"id":46002,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46160,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[46014],"declarations":[{"constant":false,"id":46014,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46160,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46013,"nodeType":"UserDefinedTypeName","pathNode":{"id":46012,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"24736:13:69"},"referencedDeclaration":50104,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46019,"initialValue":{"arguments":[{"id":46017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46015,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[46021],"declarations":[{"constant":false,"id":46021,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46160,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46020,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46024,"initialValue":{"expression":{"id":46022,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46025,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46027,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46043,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46045,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46147,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46085],"declarations":[{"constant":false,"id":46085,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46147,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46084,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46094,"initialValue":{"arguments":[{"expression":{"id":46088,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46090,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46095,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46097,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46145,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46132,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46133,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46136,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46144,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46146,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46126,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46105,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46100,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46114,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44257,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46117,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46123,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46118,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46125,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46148,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46083,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46049,46051],"declarations":[{"constant":false,"id":46049,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46083,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46048,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46051,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46083,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46050,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46062,"initialValue":{"arguments":[{"expression":{"id":46054,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46056,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46058,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46069,"indexExpression":{"id":46066,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46071,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46049,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46073,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46080,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46051,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46074,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46082,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46149,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":46042,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":46040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46036,"indexExpression":{"id":46033,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46038,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46041,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46155,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46159,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46158,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46010,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46161,"initializationExpression":{"assignments":[46006],"declarations":[{"constant":false,"id":46006,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46161,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46005,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46008,"initialValue":{"id":46007,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46001,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46162,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46165,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46169,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46171,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46170,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45323,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46173,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45966,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45968,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46175,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45967,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45970,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46176],"name":"LibStaking","nameLocation":"15346:10:69","scope":46441,"usedErrors":[32461,32469,37450]},{"id":46440,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46181,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46178,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"26321:15:69"},"typeName":{"id":46180,"nodeType":"UserDefinedTypeName","pathNode":{"id":46179,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"26341:12:69"},"referencedDeclaration":50190,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46185,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46182,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"26365:19:69"},"typeName":{"id":46184,"nodeType":"UserDefinedTypeName","pathNode":{"id":46183,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"26389:16:69"},"referencedDeclaration":50123,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46220,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46219,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46219,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46194,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46209,"initialValue":{"arguments":[{"expression":{"expression":{"id":46199,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46202,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46205,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46196,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46188,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46644,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46210,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46211,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50109,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46218,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46217,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46214,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46216,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46188,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46220,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46187,"nodeType":"UserDefinedTypeName","pathNode":{"id":46186,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26433:23:69"},"referencedDeclaration":50197,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46191,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46220,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46190,"nodeType":"UserDefinedTypeName","pathNode":{"id":46189,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26471:20:69"},"referencedDeclaration":50110,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46193,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46261,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46260,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46231],"declarations":[{"constant":false,"id":46231,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46260,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46230,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46234,"initialValue":{"expression":{"id":46232,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46235,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46240,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46239,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46229,"id":46238,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46258,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46248,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46223,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46249,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46251,"indexExpression":{"id":46250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46247,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46253,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46257,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46256,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46259,"initializationExpression":{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46259,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46241,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46243,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46223,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46261,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46222,"nodeType":"UserDefinedTypeName","pathNode":{"id":46221,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26928:23:69"},"referencedDeclaration":50197,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46227,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46261,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46225,"nodeType":"UserDefinedTypeName","pathNode":{"id":46224,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26974:20:69"},"referencedDeclaration":50110,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46226,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46229,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46439,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46438,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46270,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46271,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46279,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46280,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46286,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46285,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46269,"id":46284,"nodeType":"Return","src":"27697:7:69"}]}},"id":46287,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46278,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46275,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46277,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46289],"declarations":[{"constant":false,"id":46289,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46438,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46288,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46293,"initialValue":{"expression":{"expression":{"id":46290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46426,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46303],"declarations":[{"constant":false,"id":46303,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46426,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46302,"nodeType":"UserDefinedTypeName","pathNode":{"id":46301,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"27852:13:69"},"referencedDeclaration":50104,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46309,"initialValue":{"arguments":[{"id":46307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46304,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46311],"declarations":[{"constant":false,"id":46311,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46426,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46310,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46314,"initialValue":{"expression":{"id":46312,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46315,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46317,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46333,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46411,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46375],"declarations":[{"constant":false,"id":46375,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46411,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46374,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46384,"initialValue":{"arguments":[{"expression":{"id":46378,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46380,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46385,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46387,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46409,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46405,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46406,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46408,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46410,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46399,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46395,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46398,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46412,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46373,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46339,46341],"declarations":[{"constant":false,"id":46339,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46373,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46338,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46341,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46373,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46340,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46352,"initialValue":{"arguments":[{"expression":{"id":46344,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46346,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46348,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46359,"indexExpression":{"id":46356,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46361,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46339,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46363,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46370,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46341,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46372,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46413,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46332,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46320,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46326,"indexExpression":{"id":46323,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46328,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46331,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46414,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46421,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46425,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46424,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46299,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46427,"initializationExpression":{"assignments":[46295],"declarations":[{"constant":false,"id":46295,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46427,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46294,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46297,"initialValue":{"id":46296,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46289,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46433,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46437,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46262,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46265,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46439,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46264,"nodeType":"UserDefinedTypeName","pathNode":{"id":46263,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"27402:23:69"},"referencedDeclaration":50197,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46267,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46439,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46266,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46269,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46177,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46440],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46441,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220eea0c5d3633d95e1224489046147a4df6f721c816a69a56563b673dd9fdc05c264736f6c63430008130033","sourceMap":"902:1635:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220eea0c5d3633d95e1224489046147a4df6f721c816a69a56563b673dd9fdc05c264736f6c63430008130033","sourceMap":"902:1635:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibAddressStakingReleases\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibAddressStakingReleases"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46394,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50093],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44136],"LibMaxPQ":[48969],"LibMinPQ":[49588],"LibStaking":[46129],"LibStakingChangeLog":[46631],"LibStakingReleaseQueue":[44255],"LibSubnetActorStorage":[47245],"LibValidatorSet":[45246],"LibValidatorTracking":[46393],"MaxPQ":[48364],"MinPQ":[48982],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50150],"PermissionMode":[50118],"StakingChange":[50057],"StakingChangeLog":[50076],"StakingChangeRequest":[50063],"StakingOperation":[50049],"StakingRelease":[50083],"StakingReleaseQueue":[50103],"SubnetActorStorage":[47234],"Validator":[50164],"ValidatorSet":[50143],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":43968,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43970,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":43969,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43973,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":43971,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43972,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47234,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43976,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":48970,"symbolAliases":[{"foreign":{"id":43974,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48969,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43975,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48364,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43979,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":49589,"symbolAliases":[{"foreign":{"id":43977,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49588,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43978,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48982,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43981,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":46632,"symbolAliases":[{"foreign":{"id":43980,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46631,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43993,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":43982,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43983,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50103,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43984,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50076,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43985,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50057,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43986,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50063,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43987,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43988,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50083,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43989,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43990,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50093,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43991,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43992,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44001,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":43994,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43995,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43996,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43997,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43998,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43999,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44000,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44003,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44002,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44136,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44042,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44041,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44014],"declarations":[{"constant":false,"id":44014,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44041,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44013,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44017,"initialValue":{"expression":{"id":44015,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44019],"declarations":[{"constant":false,"id":44019,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44041,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44018,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44024,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44020,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44022,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44014,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44025,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44029,"indexExpression":{"id":44027,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44030,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44010,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"id":44032,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44033,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44036,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44014,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44040,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44004,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44007,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44042,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44006,"nodeType":"UserDefinedTypeName","pathNode":{"id":44005,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"1132:22:69"},"referencedDeclaration":50093,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44010,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44042,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44009,"nodeType":"UserDefinedTypeName","pathNode":{"id":44008,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"1169:14:69"},"referencedDeclaration":50083,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44012,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44136,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44135,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44134,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44054],"declarations":[{"constant":false,"id":44054,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44134,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44053,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44057,"initialValue":{"expression":{"id":44055,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44058,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44066,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44065,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44062,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44064,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44068],"declarations":[{"constant":false,"id":44068,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44134,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44067,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"expression":{"id":44069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44073],"declarations":[{"constant":false,"id":44073,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44134,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44072,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44075,"initialValue":{"id":44074,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44077],"declarations":[{"constant":false,"id":44077,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44134,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44076,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44078,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44116,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44084],"declarations":[{"constant":false,"id":44084,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44116,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44083,"nodeType":"UserDefinedTypeName","pathNode":{"id":44082,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"1987:14:69"},"referencedDeclaration":50083,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44089,"initialValue":{"baseExpression":{"expression":{"id":44085,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44088,"indexExpression":{"id":44087,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44090,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44084,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44092,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44097,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44096,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44095,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44098,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44099,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44084,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50082,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44102,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44103,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44106,"indexExpression":{"id":44105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44108,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44115,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44111,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44112,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44114,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44079,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44080,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44117,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44118,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44121,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44123,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44124,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44127,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44129,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44130,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44131,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44052,"id":44133,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44043,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44046,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44135,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44045,"nodeType":"UserDefinedTypeName","pathNode":{"id":44044,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"1654:22:69"},"referencedDeclaration":50093,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44135,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44048,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44135,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44050,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44136,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44136],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46394,"usedErrors":[]},{"id":44255,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44140,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44138,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44139,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44144,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44141,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44136,"src":"2668:25:69"},"typeName":{"id":44143,"nodeType":"UserDefinedTypeName","pathNode":{"id":44142,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"2698:22:69"},"referencedDeclaration":50093,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44152,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44146,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44152,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44145,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44148,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44152,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44147,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44150,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44152,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44149,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44167,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44166,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44155,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50096,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44163,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44157,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44165,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44155,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44167,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44154,"nodeType":"UserDefinedTypeName","pathNode":{"id":44153,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"2842:19:69"},"referencedDeclaration":50103,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44157,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44167,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44156,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44159,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44210,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44209,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44179],"declarations":[{"constant":false,"id":44179,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44209,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44178,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44185,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44180,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44182,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44171,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50096,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44188],"declarations":[{"constant":false,"id":44188,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44209,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44187,"nodeType":"UserDefinedTypeName","pathNode":{"id":44186,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"3192:14:69"},"referencedDeclaration":50083,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44193,"initialValue":{"arguments":[{"id":44190,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44191,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44175,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44189,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50083,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50083_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44200,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44188,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44194,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44171,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44198,"indexExpression":{"id":44196,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44173,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44042,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$_t_struct$_StakingRelease_$50083_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44202,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44204,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44173,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44205,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44175,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44206,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44203,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44152,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44208,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44168,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44171,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44210,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44170,"nodeType":"UserDefinedTypeName","pathNode":{"id":44169,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"3039:19:69"},"referencedDeclaration":50103,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44173,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44210,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44172,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44175,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44210,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44174,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44177,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44254,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44253,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44222,44224],"declarations":[{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44253,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44224,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44253,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44223,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44214,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44228,"indexExpression":{"id":44227,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44135,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44232,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44224,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44242,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44241,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44214,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44238,"indexExpression":{"id":44237,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44240,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44248,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44245,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44243,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44250,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44251,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44220,"id":44252,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44211,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44214,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44254,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44213,"nodeType":"UserDefinedTypeName","pathNode":{"id":44212,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"3531:19:69"},"referencedDeclaration":50103,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44216,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44254,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44215,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44254,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44218,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44137,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44255],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46394,"usedErrors":[]},{"id":45246,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44260,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44257,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49588,"src":"3936:8:69"},"typeName":{"id":44259,"nodeType":"UserDefinedTypeName","pathNode":{"id":44258,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"3949:5:69"},"referencedDeclaration":48982,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}}},{"id":44264,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44261,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48969,"src":"3966:8:69"},"typeName":{"id":44263,"nodeType":"UserDefinedTypeName","pathNode":{"id":44262,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"3979:5:69"},"referencedDeclaration":48364,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44270,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44270,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44265,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44268,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44270,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44267,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44276,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44272,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44276,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44271,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44274,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44276,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44273,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44282,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44278,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44282,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44277,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44280,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44282,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44279,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44288,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44284,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44288,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44283,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44286,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44288,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44285,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44294,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44290,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44294,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44289,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44292,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44294,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44291,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44298,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44296,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44298,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44295,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44302,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44300,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44302,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44299,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44338,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44337,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"id":44317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44313,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44315,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":44316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44335,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44327,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44311,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44328,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44331,"indexExpression":{"id":44330,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44308,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44334,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44336,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44326,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44318,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44311,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44319,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44322,"indexExpression":{"id":44321,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44308,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44325,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44306,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44338,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44305,"nodeType":"UserDefinedTypeName","pathNode":{"id":44304,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"4552:12:69"},"referencedDeclaration":50143,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44308,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44338,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44307,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44311,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44338,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44310,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44353,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44352,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44347,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44348,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44342,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44351,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44339,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44342,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44353,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44341,"nodeType":"UserDefinedTypeName","pathNode":{"id":44340,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5013:12:69"},"referencedDeclaration":50143,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44345,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44353,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44344,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44370,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44369,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44362,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44360,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44363,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44357,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44368,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44354,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44357,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44370,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44356,"nodeType":"UserDefinedTypeName","pathNode":{"id":44355,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5240:12:69"},"referencedDeclaration":50143,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44360,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44370,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44359,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44390,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44389,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44381,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44379,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44382,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44374,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44385,"indexExpression":{"id":44384,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44376,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44388,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44371,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44374,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44390,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44373,"nodeType":"UserDefinedTypeName","pathNode":{"id":44372,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5482:12:69"},"referencedDeclaration":50143,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44376,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44390,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44375,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44379,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44390,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44378,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44442,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44441,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44400],"declarations":[{"constant":false,"id":44400,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44441,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44399,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44405,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44401,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44393,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44406,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44410,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44407,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44408,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44413,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44437,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44421,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44425,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44429,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44426,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44393,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49021,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44432,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44436,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44435,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44418,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44419,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44438,"initializationExpression":{"assignments":[44415],"declarations":[{"constant":false,"id":44415,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44438,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44414,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44417,"initialValue":{"hexValue":"31","id":44416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44439,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44398,"id":44440,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44393,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44442,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44392,"nodeType":"UserDefinedTypeName","pathNode":{"id":44391,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5708:12:69"},"referencedDeclaration":50143,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44397,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44442,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44395,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44396,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44487,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44486,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44452],"declarations":[{"constant":false,"id":44452,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44486,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44451,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44457,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44453,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44484,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44466],"declarations":[{"constant":false,"id":44466,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44484,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44465,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44472,"initialValue":{"arguments":[{"id":44470,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44467,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49021,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44473,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44449,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44475,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44476,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44466,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44474,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44338,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44479,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44462,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44463,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44452,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44459],"declarations":[{"constant":false,"id":44459,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44458,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44461,"initialValue":{"hexValue":"31","id":44460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44443,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44446,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44487,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44445,"nodeType":"UserDefinedTypeName","pathNode":{"id":44444,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"6212:12:69"},"referencedDeclaration":50143,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44449,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44487,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44448,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44538,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44537,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44497],"declarations":[{"constant":false,"id":44497,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44537,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44496,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44502,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44498,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44529,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44511],"declarations":[{"constant":false,"id":44511,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44529,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44510,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44517,"initialValue":{"arguments":[{"id":44515,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44512,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44518,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44494,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44520,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44521,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44511,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44519,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44524,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44528,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44527,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44507,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44508,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44497,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44530,"initializationExpression":{"assignments":[44504],"declarations":[{"constant":false,"id":44504,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44530,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44503,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44506,"initialValue":{"hexValue":"31","id":44505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44531,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44494,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44533,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44532,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44536,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44488,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44491,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44538,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44490,"nodeType":"UserDefinedTypeName","pathNode":{"id":44489,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"6718:12:69"},"referencedDeclaration":50143,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44494,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44538,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44493,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44608,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44607,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44552],"declarations":[{"constant":false,"id":44552,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44607,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44551,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44555,"initialValue":{"expression":{"id":44553,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44560],"declarations":[{"constant":false,"id":44560,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44607,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44558,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44559,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44566,"initialValue":{"arguments":[{"id":44564,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44552,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44561,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44562,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44603,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44574,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44542,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44575,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44577,"indexExpression":{"id":44576,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44573,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44625,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44587,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44586,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44581,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44583,"indexExpression":{"id":44582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44580,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44585,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44588,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44560,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44590,"indexExpression":{"id":44589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44592,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44542,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44593,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44595,"indexExpression":{"id":44594,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44591,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44338,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44598,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44602,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44601,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44570,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44571,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44552,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44604,"initializationExpression":{"assignments":[44568],"declarations":[{"constant":false,"id":44568,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44604,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44567,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44569,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44605,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44560,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44550,"id":44606,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44539,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44542,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44608,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44541,"nodeType":"UserDefinedTypeName","pathNode":{"id":44540,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"7383:12:69"},"referencedDeclaration":50143,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44545,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44608,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44543,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44544,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44608,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44547,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44548,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44625,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44624,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44621,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44613,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44618,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44611,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44617,"id":44623,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44611,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44625,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44610,"nodeType":"UserDefinedTypeName","pathNode":{"id":44609,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"7984:12:69"},"referencedDeclaration":50143,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44613,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44625,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44612,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44625,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44615,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44646,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44645,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44636,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44629,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44640,"indexExpression":{"id":44638,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44631,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44642,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44633,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44644,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44626,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44629,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44646,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44628,"nodeType":"UserDefinedTypeName","pathNode":{"id":44627,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8186:12:69"},"referencedDeclaration":50143,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44631,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44646,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44630,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44633,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44646,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44632,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44635,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44667,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44666,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44657,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44650,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44661,"indexExpression":{"id":44659,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44652,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44663,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44654,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44665,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44647,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44650,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44667,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44649,"nodeType":"UserDefinedTypeName","pathNode":{"id":44648,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8671:12:69"},"referencedDeclaration":50143,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44652,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44667,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44651,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44654,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44667,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44653,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44656,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44708,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44707,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44679],"declarations":[{"constant":false,"id":44679,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44707,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44678,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44685,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44680,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44671,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44683,"indexExpression":{"id":44682,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44686,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44693,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44692,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44689,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44691,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44694,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44695,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44697,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44698,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44671,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44702,"indexExpression":{"id":44700,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44704,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44706,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44668,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44671,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44708,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44670,"nodeType":"UserDefinedTypeName","pathNode":{"id":44669,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8919:12:69"},"referencedDeclaration":50143,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44673,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44708,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44672,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44675,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44708,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44674,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44677,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44761,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44760,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44720],"declarations":[{"constant":false,"id":44720,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44760,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44719,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44726,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44721,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44724,"indexExpression":{"id":44723,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44731,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44733,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44735,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44736,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44737,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44741,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44742,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44757,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44752,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44753,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44754,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44751,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45245,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44756,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44758,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44750,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44745,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44746,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44747,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44744,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45034,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44749,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44759,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44740,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44718,"id":44739,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44709,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44712,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44761,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44711,"nodeType":"UserDefinedTypeName","pathNode":{"id":44710,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"9361:12:69"},"referencedDeclaration":50143,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44714,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44761,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44713,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44716,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44761,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44715,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44718,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44803,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44802,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44772],"declarations":[{"constant":false,"id":44772,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44802,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44771,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44780,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44773,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44776,"indexExpression":{"id":44775,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44778,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44768,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44781,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44785,"indexExpression":{"id":44783,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44787,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44772,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44789,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44790,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44793,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44768,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44795,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44797,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44798,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44799,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44772,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44796,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45034,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44801,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44764,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44803,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44763,"nodeType":"UserDefinedTypeName","pathNode":{"id":44762,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"9900:12:69"},"referencedDeclaration":50143,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44766,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44803,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44765,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44768,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44803,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44767,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44770,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44869,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44868,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44814],"declarations":[{"constant":false,"id":44814,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44868,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44813,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44822,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44815,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44818,"indexExpression":{"id":44817,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44820,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44810,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44824],"declarations":[{"constant":false,"id":44824,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44868,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44823,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44830,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44825,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44828,"indexExpression":{"id":44827,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44831,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44834,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44824,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44854,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44845,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44849,"indexExpression":{"id":44847,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44851,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44853,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44855,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44844,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44838,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44841,"indexExpression":{"id":44840,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44843,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44857,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44858,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44859,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44856,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45245,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44861,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44865,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44810,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44867,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44806,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44869,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44805,"nodeType":"UserDefinedTypeName","pathNode":{"id":44804,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"10311:12:69"},"referencedDeclaration":50143,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44808,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44869,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44807,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44810,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44869,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44809,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44812,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45034,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45033,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44883,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44880,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44901,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44900,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44890,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44891,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49295,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44893,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44895,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44896,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44894,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44270,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44898,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44879,"id":44899,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44903],"declarations":[{"constant":false,"id":44903,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45033,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44902,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44906,"initialValue":{"expression":{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50125,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44908],"declarations":[{"constant":false,"id":44908,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45033,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44907,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44913,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44914,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44903,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44915,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44908,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44933,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44932,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44922,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44923,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44917,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44925,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44927,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44928,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44926,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44282,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44930,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44879,"id":44931,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44935,44937],"declarations":[{"constant":false,"id":44935,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45033,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44934,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44937,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45033,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44936,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44943,"initialValue":{"arguments":[{"id":44941,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44938,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49371,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44944,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44937,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44945,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44996,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":44995,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44952,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44947,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49168,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44954,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":44958,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44955,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44970,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":44969,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":44965,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44966,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44960,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48642,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44968,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":44976,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44977,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44971,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44979,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44986,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44935,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44980,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44988,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":44990,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44935,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44991,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44989,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44294,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44993,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44879,"id":44994,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45000,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44997,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45018,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45017,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45008,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48677,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45010,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45012,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45013,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45011,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44276,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44879,"id":45016,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45024,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45025,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45019,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45027,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45029,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45030,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45028,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44288,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45032,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44870,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44873,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45034,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44872,"nodeType":"UserDefinedTypeName","pathNode":{"id":44871,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"11035:12:69"},"referencedDeclaration":50143,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44875,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45034,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44874,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44877,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45034,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44876,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44879,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45245,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45244,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45045,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45085,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45084,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45050,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45068,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45067,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45058,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45059,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45053,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48642,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45061,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45063,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45062,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44302,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45065,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45044,"id":45066,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45074,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45075,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48712,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45077,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45080,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45078,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44276,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45082,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45044,"id":45083,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45089,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45086,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45096,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45095,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45092,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45094,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45155,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45154,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49260,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44298,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45113,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45152,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45151,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45120,45122],"declarations":[{"constant":false,"id":45120,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45151,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45119,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45122,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45151,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45121,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45128,"initialValue":{"arguments":[{"id":45126,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45123,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48753,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45134,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45129,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48550,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45136,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45142,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45143,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45120,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45137,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45145,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45147,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45120,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45148,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45122,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45146,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44282,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45150,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45044,"id":45153,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45161,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45162,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45156,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49330,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45164,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45173,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45172,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45044,"id":45171,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45175,45177],"declarations":[{"constant":false,"id":45175,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45244,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45174,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45177,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45244,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45176,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45183,"initialValue":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45178,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49371,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45185,45187],"declarations":[{"constant":false,"id":45185,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45244,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45184,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45187,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45244,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45186,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45193,"initialValue":{"arguments":[{"id":45191,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45188,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48753,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45194,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45195,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45187,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45238,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45237,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45202,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45197,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49168,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45204,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48550,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45212,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45218,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45219,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45213,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45221,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45227,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45228,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45175,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45222,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45230,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45232,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45175,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45233,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45231,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44294,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45235,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45044,"id":45236,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45240,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45241,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45239,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44270,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45243,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45035,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45038,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45245,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45037,"nodeType":"UserDefinedTypeName","pathNode":{"id":45036,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"13345:12:69"},"referencedDeclaration":50143,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45040,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45245,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45039,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45042,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45245,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45041,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45044,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44256,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45246],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46394,"usedErrors":[]},{"id":46129,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45250,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45247,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44255,"src":"15369:22:69"},"typeName":{"id":45249,"nodeType":"UserDefinedTypeName","pathNode":{"id":45248,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"15396:19:69"},"referencedDeclaration":50103,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45254,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45251,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46631,"src":"15427:19:69"},"typeName":{"id":45253,"nodeType":"UserDefinedTypeName","pathNode":{"id":45252,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"15451:16:69"},"referencedDeclaration":50076,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45258,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45255,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"15479:15:69"},"typeName":{"id":45257,"nodeType":"UserDefinedTypeName","pathNode":{"id":45256,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"15499:12:69"},"referencedDeclaration":50143,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45262,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45259,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48969,"src":"15523:8:69"},"typeName":{"id":45261,"nodeType":"UserDefinedTypeName","pathNode":{"id":45260,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"15536:5:69"},"referencedDeclaration":48364,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45266,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45263,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49588,"src":"15553:8:69"},"typeName":{"id":45265,"nodeType":"UserDefinedTypeName","pathNode":{"id":45264,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"15566:5:69"},"referencedDeclaration":48982,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}}},{"id":45269,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45267,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45268,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45272,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46129,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45270,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45276,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45274,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45276,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45273,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45282,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45278,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45282,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45277,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45280,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45282,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45279,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45303,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45302,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45291],"declarations":[{"constant":false,"id":45291,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45302,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45290,"nodeType":"UserDefinedTypeName","pathNode":{"id":45289,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"15944:18:69"},"referencedDeclaration":47234,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45295,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45292,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45299,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45284,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45296,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45291,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45288,"id":45301,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45284,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45303,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45283,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45287,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45303,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45286,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45326,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45325,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45313],"declarations":[{"constant":false,"id":45313,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45325,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"16221:18:69"},"referencedDeclaration":47234,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45317,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45314,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45322,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45306,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45318,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45310,"id":45324,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45304,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45306,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45326,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45305,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45326,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45308,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45349,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45348,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45336],"declarations":[{"constant":false,"id":45336,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45348,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45335,"nodeType":"UserDefinedTypeName","pathNode":{"id":45334,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"16516:18:69"},"referencedDeclaration":47234,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45340,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45337,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45345,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45341,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45336,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45333,"id":45347,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45327,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45329,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45349,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45328,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45332,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45349,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45331,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45362,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45361,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45358,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45352,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45357,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45387,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45356,"id":45360,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45350,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45352,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45362,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45351,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45362,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45354,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45387,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45386,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45372],"declarations":[{"constant":false,"id":45372,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45386,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45371,"nodeType":"UserDefinedTypeName","pathNode":{"id":45370,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17294:18:69"},"referencedDeclaration":47234,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45376,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45373,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45377,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45372,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45381,"indexExpression":{"id":45380,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45365,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45369,"id":45385,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45363,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45365,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45387,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45364,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45387,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45367,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45405,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45404,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45394],"declarations":[{"constant":false,"id":45394,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45404,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45393,"nodeType":"UserDefinedTypeName","pathNode":{"id":45392,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17577:18:69"},"referencedDeclaration":47234,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45398,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45395,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45399,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45394,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44370,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45391,"id":45403,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45388,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45405,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45389,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45431,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45430,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45413],"declarations":[{"constant":false,"id":45413,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45430,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45412,"nodeType":"UserDefinedTypeName","pathNode":{"id":45411,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17860:18:69"},"referencedDeclaration":47234,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45417,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45414,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45418,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45413,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45423,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45413,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45410,"id":45429,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45406,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45407,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45431,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45408,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45449,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45448,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45438],"declarations":[{"constant":false,"id":45438,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45448,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45437,"nodeType":"UserDefinedTypeName","pathNode":{"id":45436,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18122:18:69"},"referencedDeclaration":47234,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45442,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45439,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45443,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45438,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44353,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45435,"id":45447,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45432,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45449,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45433,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45467,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45466,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45456],"declarations":[{"constant":false,"id":45456,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45466,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45455,"nodeType":"UserDefinedTypeName","pathNode":{"id":45454,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18333:18:69"},"referencedDeclaration":47234,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45460,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45457,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45461,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45456,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44353,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45453,"id":45465,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45450,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45467,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45451,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45490,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45489,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45477],"declarations":[{"constant":false,"id":45477,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45489,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45476,"nodeType":"UserDefinedTypeName","pathNode":{"id":45475,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18636:18:69"},"referencedDeclaration":47234,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45481,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45478,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45482,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45477,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45486,"indexExpression":{"id":45485,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45470,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45474,"id":45488,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45468,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45470,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45490,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45469,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45490,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45472,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45515,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45514,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45500],"declarations":[{"constant":false,"id":45500,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45514,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45499,"nodeType":"UserDefinedTypeName","pathNode":{"id":45498,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19028:18:69"},"referencedDeclaration":47234,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45501,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45493,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45511,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45495,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45500,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45513,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45491,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45493,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45515,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45492,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45495,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45515,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45494,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45540,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45539,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45525],"declarations":[{"constant":false,"id":45525,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45539,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45524,"nodeType":"UserDefinedTypeName","pathNode":{"id":45523,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19346:18:69"},"referencedDeclaration":47234,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45529,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45526,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45535,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45518,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45536,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45520,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45530,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45525,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44646,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45538,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45516,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45518,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45540,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45517,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45520,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45540,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45519,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45522,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45649,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45648,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45550],"declarations":[{"constant":false,"id":45550,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45648,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45549,"nodeType":"UserDefinedTypeName","pathNode":{"id":45548,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19655:18:69"},"referencedDeclaration":47234,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45554,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45551,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45560,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45561,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45545,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45555,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44667,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45563,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45569,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45545,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45564,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45572,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45573,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45647,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45646,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45577],"declarations":[{"constant":false,"id":45577,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45646,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45576,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45578,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45580],"declarations":[{"constant":false,"id":45580,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45646,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45579,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45584,"initialValue":{"expression":{"expression":{"id":45581,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45609,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45591,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45594,"indexExpression":{"id":45593,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage","typeString":"struct Validator storage ref"}},"id":45595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50161,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45596,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45604,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45603,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45598,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45601,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45602,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45608,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45607,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45588,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45589,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45580,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45610,"initializationExpression":{"assignments":[45586],"declarations":[{"constant":false,"id":45586,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45610,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45585,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45587,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45611,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45645,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45644,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45614],"declarations":[{"constant":false,"id":45614,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45644,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45613,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45621,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45615,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45619,"indexExpression":{"id":45618,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45644,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45623,"nodeType":"UserDefinedTypeName","pathNode":{"id":45622,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"20624:9:69"},"referencedDeclaration":50164,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45635,"initialValue":{"arguments":[{"id":45626,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45627,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45614,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45632,"indexExpression":{"id":45631,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45625,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50164_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45641,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45636,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50164_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45643,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45541,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45543,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45649,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45542,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45545,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45649,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45544,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45547,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45691,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45690,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45659],"declarations":[{"constant":false,"id":45659,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45690,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45658,"nodeType":"UserDefinedTypeName","pathNode":{"id":45657,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"21181:18:69"},"referencedDeclaration":47234,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45663,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45660,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45669,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45670,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45664,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45659,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44708,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45672,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45679,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45673,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45659,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45681,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45684,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45682,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45689,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45650,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45652,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45691,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45651,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45654,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45691,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45653,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45656,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45719,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45718,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45703],"declarations":[{"constant":false,"id":45703,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45718,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45702,"nodeType":"UserDefinedTypeName","pathNode":{"id":45701,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"21838:18:69"},"referencedDeclaration":47234,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45707,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45704,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45713,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45694,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45714,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45696,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45715,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45698,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45708,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45703,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46481,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45717,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45692,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45694,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45719,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45693,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45696,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45719,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45695,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45698,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45719,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45697,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45700,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45744,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45743,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45729],"declarations":[{"constant":false,"id":45729,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45743,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45728,"nodeType":"UserDefinedTypeName","pathNode":{"id":45727,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22154:18:69"},"referencedDeclaration":47234,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45730,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45739,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45722,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45740,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45724,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45734,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45729,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46441,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45742,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45720,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45722,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45744,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45721,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45724,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45744,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45723,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45726,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45778,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45777,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45754],"declarations":[{"constant":false,"id":45754,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45777,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45753,"nodeType":"UserDefinedTypeName","pathNode":{"id":45752,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22400:18:69"},"referencedDeclaration":47234,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45758,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45755,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45764,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45747,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45765,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45749,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45759,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46555,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45767,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45773,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45747,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45774,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45749,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45768,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44667,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45776,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45745,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45747,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45778,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45746,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45749,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45778,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45748,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45751,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45812,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45811,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45788],"declarations":[{"constant":false,"id":45788,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45811,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45787,"nodeType":"UserDefinedTypeName","pathNode":{"id":45786,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22703:18:69"},"referencedDeclaration":47234,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45792,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45789,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45798,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45781,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45799,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45783,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45793,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45788,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46518,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45801,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45807,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45781,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45808,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45783,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45802,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45788,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44708,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45810,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45779,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45781,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45812,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45780,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45783,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45812,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45782,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45785,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45839,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45838,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45820],"declarations":[{"constant":false,"id":45820,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45838,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45819,"nodeType":"UserDefinedTypeName","pathNode":{"id":45818,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23062:18:69"},"referencedDeclaration":47234,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45824,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45821,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45826],"declarations":[{"constant":false,"id":45826,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45838,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45825,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45832,"initialValue":{"arguments":[{"id":45830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45815,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45827,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45820,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47213,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44254,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45834,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45815,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45835,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45826,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45833,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45282,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45837,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45813,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45815,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45839,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45814,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45817,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45895,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45894,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45847],"declarations":[{"constant":false,"id":45847,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45894,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45846,"nodeType":"UserDefinedTypeName","pathNode":{"id":45845,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23424:18:69"},"referencedDeclaration":47234,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45851,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45848,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45853],"declarations":[{"constant":false,"id":45853,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45894,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45852,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45859,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45854,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45858,"indexExpression":{"id":45857,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45860,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45867,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45866,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45863,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45865,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45868,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45874,"indexExpression":{"id":45871,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45877,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45883,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45879,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45878,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45885,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45891,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45888,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45886,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45893,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45840,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45842,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45895,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45841,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45844,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45918,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45917,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45904],"declarations":[{"constant":false,"id":45904,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45917,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45903,"nodeType":"UserDefinedTypeName","pathNode":{"id":45902,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23885:18:69"},"referencedDeclaration":47234,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45908,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45905,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45909,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45912,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45915,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45901,"id":45916,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45896,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45918,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45897,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45918,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45899,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46128,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46127,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45926],"declarations":[{"constant":false,"id":45926,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46127,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45925,"nodeType":"UserDefinedTypeName","pathNode":{"id":45924,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"24247:18:69"},"referencedDeclaration":47234,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45930,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45927,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45933],"declarations":[{"constant":false,"id":45933,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46127,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45932,"nodeType":"UserDefinedTypeName","pathNode":{"id":45931,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"24322:16:69"},"referencedDeclaration":50076,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45936,"initialValue":{"expression":{"id":45934,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45937,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45938,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45945,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45946,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45951,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45950,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45923,"id":45949,"nodeType":"Return","src":"24585:7:69"}]}},"id":45952,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45944,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45941,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45943,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[45954],"declarations":[{"constant":false,"id":45954,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46127,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45953,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45957,"initialValue":{"expression":{"id":45955,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46113,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[45967],"declarations":[{"constant":false,"id":45967,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46113,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45966,"nodeType":"UserDefinedTypeName","pathNode":{"id":45965,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"24736:13:69"},"referencedDeclaration":50057,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45972,"initialValue":{"arguments":[{"id":45970,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45968,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46615,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50057_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[45974],"declarations":[{"constant":false,"id":45974,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46113,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45973,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45977,"initialValue":{"expression":{"id":45975,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":45982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45978,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45980,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":45981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45996,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45998,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":45999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46100,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46038],"declarations":[{"constant":false,"id":46038,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46100,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46037,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46047,"initialValue":{"arguments":[{"expression":{"id":46041,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46043,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46039,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46048,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46050,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46098,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46085,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46086,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46080,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46088,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46090,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46089,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46094,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46097,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46099,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46079,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46058,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46053,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46061,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46067,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46068,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46062,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47213,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44210,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46070,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46076,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46072,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46071,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46078,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46101,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46036,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46002,46004],"declarations":[{"constant":false,"id":46002,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46036,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46001,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46004,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46036,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46003,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46015,"initialValue":{"arguments":[{"expression":{"id":46007,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46009,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46011,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46013,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46005,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46016,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46022,"indexExpression":{"id":46019,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46024,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46002,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46026,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46032,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46033,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46004,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46027,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46035,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46102,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":45995,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":45993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45983,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45989,"indexExpression":{"id":45986,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45991,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45994,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46106,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46103,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46630,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46112,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46111,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45962,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45963,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46114,"initializationExpression":{"assignments":[45959],"declarations":[{"constant":false,"id":45959,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46114,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45958,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45961,"initialValue":{"id":45960,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45954,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46115,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46118,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46122,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46124,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46123,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45276,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46126,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45919,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45921,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46128,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45920,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45923,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46129],"name":"LibStaking","nameLocation":"15346:10:69","scope":46394,"usedErrors":[32461,32469,37450]},{"id":46393,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46134,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46131,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"26321:15:69"},"typeName":{"id":46133,"nodeType":"UserDefinedTypeName","pathNode":{"id":46132,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"26341:12:69"},"referencedDeclaration":50143,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46138,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46135,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46631,"src":"26365:19:69"},"typeName":{"id":46137,"nodeType":"UserDefinedTypeName","pathNode":{"id":46136,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"26389:16:69"},"referencedDeclaration":50076,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46173,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46172,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46148],"declarations":[{"constant":false,"id":46148,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46172,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46147,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46162,"initialValue":{"arguments":[{"expression":{"expression":{"id":46152,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46155,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46158,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46149,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46141,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46597,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50049_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46163,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46148,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46164,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50062,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46171,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46170,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46167,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46169,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46141,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46173,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46140,"nodeType":"UserDefinedTypeName","pathNode":{"id":46139,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"26433:23:69"},"referencedDeclaration":50150,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46144,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46173,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46143,"nodeType":"UserDefinedTypeName","pathNode":{"id":46142,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50063,"src":"26471:20:69"},"referencedDeclaration":50063,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46146,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46214,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46213,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46184],"declarations":[{"constant":false,"id":46184,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46213,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46183,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46187,"initialValue":{"expression":{"id":46185,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46180,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46188,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46184,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46193,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46192,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46182,"id":46191,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46211,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46201,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46202,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46180,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46204,"indexExpression":{"id":46203,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46200,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46173,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50150_storage_ptr_$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46206,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46210,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46207,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46209,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46197,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46198,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46184,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46212,"initializationExpression":{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46212,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46194,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46196,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46176,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46214,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46175,"nodeType":"UserDefinedTypeName","pathNode":{"id":46174,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"26928:23:69"},"referencedDeclaration":50150,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46180,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46214,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46178,"nodeType":"UserDefinedTypeName","pathNode":{"id":46177,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50063,"src":"26974:20:69"},"referencedDeclaration":50063,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46179,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46182,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46392,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46391,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46223,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46224,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46232,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46239,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46238,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46222,"id":46237,"nodeType":"Return","src":"27697:7:69"}]}},"id":46240,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46231,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46228,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46230,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46391,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46241,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46246,"initialValue":{"expression":{"expression":{"id":46243,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46379,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46256],"declarations":[{"constant":false,"id":46256,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46379,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46255,"nodeType":"UserDefinedTypeName","pathNode":{"id":46254,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"27852:13:69"},"referencedDeclaration":50057,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46262,"initialValue":{"arguments":[{"id":46260,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46615,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50057_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46264],"declarations":[{"constant":false,"id":46264,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46379,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46263,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46267,"initialValue":{"expression":{"id":46265,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46268,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46270,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46286,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46288,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46364,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46328],"declarations":[{"constant":false,"id":46328,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46364,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46327,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46337,"initialValue":{"arguments":[{"expression":{"id":46331,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46333,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46335,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46329,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46338,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46340,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46362,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46358,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46359,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46328,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46361,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46363,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46352,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46348,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46349,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46328,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46343,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46351,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46365,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46326,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46292,46294],"declarations":[{"constant":false,"id":46292,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46326,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46291,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46294,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46326,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46293,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46305,"initialValue":{"arguments":[{"expression":{"id":46297,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46299,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46301,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46303,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46295,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46306,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46312,"indexExpression":{"id":46309,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46314,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46292,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46316,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46322,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46323,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46294,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46317,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46325,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46366,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46285,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46273,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46279,"indexExpression":{"id":46276,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46281,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46284,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46630,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46374,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46378,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46375,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46377,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46251,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46252,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46380,"initializationExpression":{"assignments":[46248],"declarations":[{"constant":false,"id":46248,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46380,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46247,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46250,"initialValue":{"id":46249,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46386,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46390,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46215,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46218,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46392,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46217,"nodeType":"UserDefinedTypeName","pathNode":{"id":46216,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"27402:23:69"},"referencedDeclaration":50150,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46220,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46392,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46219,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46222,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46130,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46393],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46394,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file diff --git a/.out/LibStaking.sol/LibStaking.json b/.out/LibStaking.sol/LibStaking.json index bc4e46efe..877e5d0c1 100644 --- a/.out/LibStaking.sol/LibStaking.json +++ b/.out/LibStaking.sol/LibStaking.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"CollateralClaimed","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ConfigurationNumberConfirmed","inputs":[{"name":"number","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"NoRewardToWithdraw","inputs":[]}],"bytecode":{"object":"0x6080806040523461001c57610214908161002282393081602e0152f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c6382985e0b1461002b57600080fd5b307f0000000000000000000000000000000000000000000000000000000000000000146101da5760203660031901126101da5781356001600160a01b03808216908183036101d6576001600160a01b0383166000908152602160205260409020549283156101c6576001600160a01b03166000908152602160205260409020869055600e54869116803b156101c25781906024865180948193636c712ab960e11b8352888b8401525af180156101b85761018a575b50814710610174578480809381935af13d1561016f5767ffffffffffffffff3d81811161015c57835191601f8201601f19908116603f011683019081118382101761014757845281528460203d92013e5b1561013a578280f35b51630a12f52160e11b8152fd5b604186634e487b7160e01b6000525260246000fd5b634e487b7160e01b865260418552602486fd5b610131565b825163cd78605960e01b81523081860152602490fd5b67ffffffffffffffff81969296116101a557835293386100e0565b634e487b7160e01b825260418552602482fd5b84513d88823e3d90fd5b5080fd5b84516367300f9160e11b81528690fd5b8580fd5b8280fdfea2646970667358221220645b2cdeded347c45cb8ab1b33c2e5e03ace5874c3ee277d307b8ae83242105664736f6c63430008130033","sourceMap":"15338:10785:69:-:0;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260048036101561001457600080fd5b600091823560e01c6382985e0b1461002b57600080fd5b307f0000000000000000000000000000000000000000000000000000000000000000146101da5760203660031901126101da5781356001600160a01b03808216908183036101d6576001600160a01b0383166000908152602160205260409020549283156101c6576001600160a01b03166000908152602160205260409020869055600e54869116803b156101c25781906024865180948193636c712ab960e11b8352888b8401525af180156101b85761018a575b50814710610174578480809381935af13d1561016f5767ffffffffffffffff3d81811161015c57835191601f8201601f19908116603f011683019081118382101761014757845281528460203d92013e5b1561013a578280f35b51630a12f52160e11b8152fd5b604186634e487b7160e01b6000525260246000fd5b634e487b7160e01b865260418552602486fd5b610131565b825163cd78605960e01b81523081860152602490fd5b67ffffffffffffffff81969296116101a557835293386100e0565b634e487b7160e01b825260418552602482fd5b84513d88823e3d90fd5b5080fd5b84516367300f9160e11b81528690fd5b8580fd5b8280fdfea2646970667358221220645b2cdeded347c45cb8ab1b33c2e5e03ace5874c3ee277d307b8ae83242105664736f6c63430008130033","sourceMap":"15338:10785:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15338:10785:69;;;;;;-1:-1:-1;;;;;15338:10785:69;;;;;;;;;-1:-1:-1;;;;;15338:10785:69;;;;;;23516:16;15338:10785;;;;;;23564:11;;;23560:69;;-1:-1:-1;;;;;15338:10785:69;;;;;23516:16;15338:10785;;;;;;;;23695:16;15338:10785;23639:33;;15338:10785;23686:58;;;;;15338:10785;;;;;;;;;;;;23686:58;;;;;;15338:10785;23686:58;;;;;;;;15338:10785;1615:21:29;;;:30;1611:109;;1749:33;;;;;;;;15338:10785:69;;;;;;;;;;;;;;;;;-1:-1:-1;;15338:10785:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1796:8:29;1792:63;;15338:10785:69;;;1792:63:29;15338:10785:69;-1:-1:-1;;;1827:17:29;;;15338:10785:69;;;;;;;;;;;;;-1:-1:-1;;;15338:10785:69;;;;;;;;;;;1611:109:29;15338:10785:69;;-1:-1:-1;;;1668:41:29;;15338:10785:69;1668:41:29;;;15338:10785:69;;;1668:41:29;23686:58:69;15338:10785;;;;;;;;;;23686:58;;;;15338:10785;-1:-1:-1;;;15338:10785:69;;;;;;;;23686:58;15338:10785;;;;;;;;;23686:58;15338:10785;;;23560:69;15338:10785;;-1:-1:-1;;;23598:20:69;;15338:10785;;23598:20;15338:10785;;;;;;;","linkReferences":{},"immutableReferences":{"library_deploy_address":[{"start":46,"length":32}]}},"methodIdentifiers":{"claimRewardForRelayer(address)":"82985e0b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRewardToWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CollateralClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"number\",\"type\":\"uint64\"}],\"name\":\"ConfigurationNumberConfirmed\",\"type\":\"event\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"claimRewardForRelayer(address)\":{\"notice\":\"method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibStaking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"NoRewardToWithdraw"},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"CollateralClaimed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"number","type":"uint64","indexed":false}],"type":"event","name":"ConfigurationNumberConfirmed","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"claimRewardForRelayer(address)":{"notice":"method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibStaking"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46441,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50140],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44183],"LibMaxPQ":[49016],"LibMinPQ":[49635],"LibStaking":[46176],"LibStakingChangeLog":[46678],"LibStakingReleaseQueue":[44302],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"MaxPQ":[48411],"MinPQ":[49029],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"SubnetActorStorage":[47281],"Validator":[50211],"ValidatorSet":[50190],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":44015,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44017,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":44016,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44020,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":44018,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44019,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44023,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":44021,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49016,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44022,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44026,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":44024,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49635,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44025,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44028,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":46679,"symbolAliases":[{"foreign":{"id":44027,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46678,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44040,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":44029,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44030,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44031,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44032,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44033,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44034,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44035,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44036,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44037,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50140,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44038,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44039,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44048,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":44041,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44042,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44043,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44044,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44045,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44046,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44047,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44050,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44049,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44183,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44089,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44088,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44061],"declarations":[{"constant":false,"id":44061,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44088,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44060,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44064,"initialValue":{"expression":{"id":44062,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44066],"declarations":[{"constant":false,"id":44066,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44088,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44065,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44067,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44069,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44072,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44076,"indexExpression":{"id":44074,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44066,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44077,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44057,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"id":44079,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44080,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44083,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44087,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44051,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44054,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44089,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44053,"nodeType":"UserDefinedTypeName","pathNode":{"id":44052,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1132:22:69"},"referencedDeclaration":50140,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44057,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44089,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44056,"nodeType":"UserDefinedTypeName","pathNode":{"id":44055,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1169:14:69"},"referencedDeclaration":50130,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44059,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44182,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44181,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44101],"declarations":[{"constant":false,"id":44101,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44100,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44104,"initialValue":{"expression":{"id":44102,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44113,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44112,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44109,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44111,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44115],"declarations":[{"constant":false,"id":44115,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44181,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44114,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44118,"initialValue":{"expression":{"id":44116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44181,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44119,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44122,"initialValue":{"id":44121,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44124],"declarations":[{"constant":false,"id":44124,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44125,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44163,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44131],"declarations":[{"constant":false,"id":44131,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44163,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44130,"nodeType":"UserDefinedTypeName","pathNode":{"id":44129,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1987:14:69"},"referencedDeclaration":50130,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44136,"initialValue":{"baseExpression":{"expression":{"id":44132,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44135,"indexExpression":{"id":44134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44137,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50126,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44139,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44144,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44143,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44142,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44145,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44146,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50129,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44149,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44153,"indexExpression":{"id":44152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44155,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44162,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44158,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44159,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44161,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44127,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44164,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44170,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44174,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44176,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44178,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44099,"id":44180,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44090,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44093,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44182,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44092,"nodeType":"UserDefinedTypeName","pathNode":{"id":44091,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1654:22:69"},"referencedDeclaration":50140,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44183],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46441,"usedErrors":[]},{"id":44302,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44187,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44185,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44186,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44191,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44188,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44183,"src":"2668:25:69"},"typeName":{"id":44190,"nodeType":"UserDefinedTypeName","pathNode":{"id":44189,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2698:22:69"},"referencedDeclaration":50140,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44199,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44193,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44199,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44192,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44195,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44199,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44197,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44199,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44214,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44213,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44207,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44202,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44210,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44204,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44212,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44202,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44214,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44201,"nodeType":"UserDefinedTypeName","pathNode":{"id":44200,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2842:19:69"},"referencedDeclaration":50150,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44204,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44214,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44206,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44257,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44256,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44226],"declarations":[{"constant":false,"id":44226,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44256,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44232,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44227,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44235],"declarations":[{"constant":false,"id":44235,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44256,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44234,"nodeType":"UserDefinedTypeName","pathNode":{"id":44233,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"3192:14:69"},"referencedDeclaration":50130,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44240,"initialValue":{"arguments":[{"id":44237,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44236,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50130_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44247,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44235,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44245,"indexExpression":{"id":44243,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44089,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$_t_struct$_StakingRelease_$50130_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44249,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44251,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44253,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44250,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44199,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44255,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44215,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44218,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44257,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44217,"nodeType":"UserDefinedTypeName","pathNode":{"id":44216,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3039:19:69"},"referencedDeclaration":50150,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44220,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44257,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44219,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44257,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44224,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44301,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44300,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44269,44271],"declarations":[{"constant":false,"id":44269,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44300,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44271,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44300,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44272,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44275,"indexExpression":{"id":44274,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44182,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44279,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44271,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44289,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44288,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44285,"indexExpression":{"id":44284,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44287,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44295,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44292,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44290,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44297,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44298,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44267,"id":44299,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44258,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44261,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44301,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44260,"nodeType":"UserDefinedTypeName","pathNode":{"id":44259,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3531:19:69"},"referencedDeclaration":50150,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44263,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44301,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44262,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44301,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44184,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44302],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46441,"usedErrors":[]},{"id":45293,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44307,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44304,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"3936:8:69"},"typeName":{"id":44306,"nodeType":"UserDefinedTypeName","pathNode":{"id":44305,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3949:5:69"},"referencedDeclaration":49029,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":44311,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44308,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"3966:8:69"},"typeName":{"id":44310,"nodeType":"UserDefinedTypeName","pathNode":{"id":44309,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3979:5:69"},"referencedDeclaration":48411,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44317,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44313,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44317,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44312,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44315,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44317,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44323,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44319,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44323,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44318,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44321,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44323,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44320,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44329,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44329,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44324,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44327,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44329,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44335,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44331,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44335,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44330,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44333,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44335,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44341,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44337,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44336,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44339,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44338,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44345,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44343,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44345,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44342,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44349,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44347,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44349,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44346,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44385,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44384,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":44364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44360,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44362,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":44363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44382,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44374,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44375,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44378,"indexExpression":{"id":44377,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44381,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44383,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44373,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44365,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44366,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44369,"indexExpression":{"id":44368,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44372,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44350,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44353,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44385,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44352,"nodeType":"UserDefinedTypeName","pathNode":{"id":44351,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4552:12:69"},"referencedDeclaration":50190,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44355,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44385,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44354,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44358,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44385,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44357,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44400,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44399,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44394,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44392,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44395,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44389,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44398,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44386,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44389,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44388,"nodeType":"UserDefinedTypeName","pathNode":{"id":44387,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5013:12:69"},"referencedDeclaration":50190,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44392,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44417,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44416,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44409,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44407,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44410,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44404,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44415,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44401,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44404,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44417,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44403,"nodeType":"UserDefinedTypeName","pathNode":{"id":44402,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5240:12:69"},"referencedDeclaration":50190,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44407,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44417,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44406,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44437,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44436,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44428,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44429,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44421,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44432,"indexExpression":{"id":44431,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44423,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44435,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44418,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44421,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44420,"nodeType":"UserDefinedTypeName","pathNode":{"id":44419,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5482:12:69"},"referencedDeclaration":50190,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44423,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44437,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44422,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44426,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44489,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44488,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44447],"declarations":[{"constant":false,"id":44447,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44488,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44446,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44452,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44448,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44453,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44454,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44455,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44460,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44484,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44468,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44472,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44473,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44479,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44466,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44462],"declarations":[{"constant":false,"id":44462,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44461,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44464,"initialValue":{"hexValue":"31","id":44463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44486,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44445,"id":44487,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44440,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44489,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44439,"nodeType":"UserDefinedTypeName","pathNode":{"id":44438,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5708:12:69"},"referencedDeclaration":50190,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44444,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44489,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44442,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44443,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44534,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44533,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44499],"declarations":[{"constant":false,"id":44499,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44533,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44498,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44531,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44513],"declarations":[{"constant":false,"id":44513,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44531,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44512,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44519,"initialValue":{"arguments":[{"id":44517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44514,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44520,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44496,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44522,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44523,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44521,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44526,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44530,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44529,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44510,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44499,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44532,"initializationExpression":{"assignments":[44506],"declarations":[{"constant":false,"id":44506,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44532,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44505,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44508,"initialValue":{"hexValue":"31","id":44507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44490,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44493,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44492,"nodeType":"UserDefinedTypeName","pathNode":{"id":44491,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6212:12:69"},"referencedDeclaration":50190,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44496,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44495,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44585,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44584,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44544],"declarations":[{"constant":false,"id":44544,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44584,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44543,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44549,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44545,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44576,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44558],"declarations":[{"constant":false,"id":44558,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44576,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44557,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44564,"initialValue":{"arguments":[{"id":44562,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44559,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48450,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44565,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44567,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44568,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44558,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44566,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44437,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44571,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44575,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44574,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44554,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44555,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44544,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44577,"initializationExpression":{"assignments":[44551],"declarations":[{"constant":false,"id":44551,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44577,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44550,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44553,"initialValue":{"hexValue":"31","id":44552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44578,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44580,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44579,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44583,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44535,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44538,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44537,"nodeType":"UserDefinedTypeName","pathNode":{"id":44536,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6718:12:69"},"referencedDeclaration":50190,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44541,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44540,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44655,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44654,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44599],"declarations":[{"constant":false,"id":44599,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44654,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44602,"initialValue":{"expression":{"id":44600,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44607],"declarations":[{"constant":false,"id":44607,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44654,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44606,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44613,"initialValue":{"arguments":[{"id":44611,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44609,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44650,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44621,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44622,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44624,"indexExpression":{"id":44623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44620,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44672,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44634,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44633,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44628,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44630,"indexExpression":{"id":44629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44627,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44632,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44635,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44637,"indexExpression":{"id":44636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44639,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44640,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44642,"indexExpression":{"id":44641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44638,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44645,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44649,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44648,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44617,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44618,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44651,"initializationExpression":{"assignments":[44615],"declarations":[{"constant":false,"id":44615,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44651,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44614,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44616,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44652,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44597,"id":44653,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44586,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44589,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44655,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44588,"nodeType":"UserDefinedTypeName","pathNode":{"id":44587,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7383:12:69"},"referencedDeclaration":50190,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44592,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44655,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44590,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44591,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44655,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44594,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44595,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44672,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44671,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44668,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44660,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44665,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44658,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44664,"id":44670,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44658,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44672,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44657,"nodeType":"UserDefinedTypeName","pathNode":{"id":44656,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7984:12:69"},"referencedDeclaration":50190,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44660,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44672,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44659,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44672,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44662,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44693,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44692,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44676,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44687,"indexExpression":{"id":44685,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44678,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44689,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44680,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44691,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44673,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44676,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44693,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44675,"nodeType":"UserDefinedTypeName","pathNode":{"id":44674,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8186:12:69"},"referencedDeclaration":50190,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44678,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44693,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44677,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44680,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44693,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44679,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44682,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44714,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44713,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44704,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44697,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44708,"indexExpression":{"id":44706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44699,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44701,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44712,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44694,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44697,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44714,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44696,"nodeType":"UserDefinedTypeName","pathNode":{"id":44695,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8671:12:69"},"referencedDeclaration":50190,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44699,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44714,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44698,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44701,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44714,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44700,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44703,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44755,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44754,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44726],"declarations":[{"constant":false,"id":44726,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44754,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44725,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44732,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44730,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44733,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44740,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44739,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44736,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44738,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44741,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44742,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44744,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44745,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44749,"indexExpression":{"id":44747,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44751,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44753,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44715,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44718,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44755,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44717,"nodeType":"UserDefinedTypeName","pathNode":{"id":44716,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8919:12:69"},"referencedDeclaration":50190,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44720,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44755,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44719,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44722,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44755,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44721,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44808,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44807,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44767],"declarations":[{"constant":false,"id":44767,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44807,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44773,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44768,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44771,"indexExpression":{"id":44770,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44774,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44778,"indexExpression":{"id":44776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44780,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44782,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44783,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44784,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44788,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44789,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44804,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44799,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44800,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44801,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44798,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44803,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44805,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44797,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44792,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44793,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44794,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44791,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44796,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44806,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44787,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44765,"id":44786,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44756,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44759,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44808,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44758,"nodeType":"UserDefinedTypeName","pathNode":{"id":44757,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9361:12:69"},"referencedDeclaration":50190,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44761,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44808,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44760,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44763,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44808,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44762,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44765,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44819],"declarations":[{"constant":false,"id":44819,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44849,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44818,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44827,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44823,"indexExpression":{"id":44822,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44825,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44828,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44832,"indexExpression":{"id":44830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44834,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44836,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44840,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44842,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44844,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44843,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44811,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44850,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44810,"nodeType":"UserDefinedTypeName","pathNode":{"id":44809,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9900:12:69"},"referencedDeclaration":50190,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44813,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44850,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44812,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44815,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44850,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44814,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44817,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44916,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44915,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44861],"declarations":[{"constant":false,"id":44861,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44915,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44869,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44865,"indexExpression":{"id":44864,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44867,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44871],"declarations":[{"constant":false,"id":44871,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44915,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44870,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44877,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44872,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44875,"indexExpression":{"id":44874,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44878,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44881,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44871,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44901,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44896,"indexExpression":{"id":44894,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44898,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44900,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44902,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44891,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44888,"indexExpression":{"id":44887,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44890,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44905,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44906,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44903,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44908,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44914,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44916,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44852,"nodeType":"UserDefinedTypeName","pathNode":{"id":44851,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"10311:12:69"},"referencedDeclaration":50190,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44916,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44854,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44857,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44916,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45081,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45080,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44930,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44927,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44948,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44947,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44937,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44938,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49342,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44940,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44942,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44943,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44941,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44945,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44926,"id":44946,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44950],"declarations":[{"constant":false,"id":44950,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45080,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44949,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44953,"initialValue":{"expression":{"id":44951,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44955],"declarations":[{"constant":false,"id":44955,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44954,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44960,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44956,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44961,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44950,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44962,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44955,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44979,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44969,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44970,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44972,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44974,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44975,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44973,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44977,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44926,"id":44978,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44982,44984],"declarations":[{"constant":false,"id":44982,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44981,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44984,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45080,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44983,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44990,"initialValue":{"arguments":[{"id":44988,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44991,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44984,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44992,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45043,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":45042,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44999,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44994,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45001,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":45005,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45017,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":45016,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":45012,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45013,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":45023,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45024,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45026,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":45032,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45033,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45027,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45035,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":45037,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45038,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45036,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45040,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44926,"id":45041,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45047,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45044,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45065,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45064,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45054,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45055,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48724,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45057,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45059,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45060,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45058,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45062,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44926,"id":45063,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45071,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45072,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45066,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45074,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45076,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45077,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45075,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44335,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45079,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44917,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44920,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45081,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44919,"nodeType":"UserDefinedTypeName","pathNode":{"id":44918,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"11035:12:69"},"referencedDeclaration":50190,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44922,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45081,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44921,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44924,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45081,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44923,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44926,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45292,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45291,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45095,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45132,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45131,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45115,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45114,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44349,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45091,"id":45113,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48759,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45124,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45127,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45125,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45129,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45091,"id":45130,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45136,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45143,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45142,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45139,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45141,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45144,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45201,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45152,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45153,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45147,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49307,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45155,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45157,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45156,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45159,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45199,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45198,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45167,45169],"declarations":[{"constant":false,"id":45167,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45198,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45166,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45169,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45198,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45168,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45175,"initialValue":{"arguments":[{"id":45173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45170,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45176,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45183,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45189,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45190,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45184,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45192,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45194,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45195,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45169,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45193,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45197,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45091,"id":45200,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45209,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45203,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49377,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45211,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45212,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45220,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45219,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45091,"id":45218,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45222,45224],"declarations":[{"constant":false,"id":45222,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45291,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45224,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45291,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45223,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45230,"initialValue":{"arguments":[{"id":45228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45232,45234],"declarations":[{"constant":false,"id":45232,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45291,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45231,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45234,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45291,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45233,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45240,"initialValue":{"arguments":[{"id":45238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45241,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45224,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45242,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45234,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45285,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45284,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45249,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45251,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45259,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45266,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45268,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45274,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45275,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45277,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45279,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45280,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45278,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45282,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45091,"id":45283,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45287,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45288,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45286,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45290,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45082,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45085,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45292,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45084,"nodeType":"UserDefinedTypeName","pathNode":{"id":45083,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"13345:12:69"},"referencedDeclaration":50190,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45087,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45292,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45086,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45089,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45292,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45088,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45091,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45293],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46441,"usedErrors":[]},{"id":46176,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45297,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45294,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44302,"src":"15369:22:69"},"typeName":{"id":45296,"nodeType":"UserDefinedTypeName","pathNode":{"id":45295,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"15396:19:69"},"referencedDeclaration":50150,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45301,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45298,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"15427:19:69"},"typeName":{"id":45300,"nodeType":"UserDefinedTypeName","pathNode":{"id":45299,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"15451:16:69"},"referencedDeclaration":50123,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45305,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45302,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"15479:15:69"},"typeName":{"id":45304,"nodeType":"UserDefinedTypeName","pathNode":{"id":45303,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"15499:12:69"},"referencedDeclaration":50190,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45309,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45306,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"15523:8:69"},"typeName":{"id":45308,"nodeType":"UserDefinedTypeName","pathNode":{"id":45307,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"15536:5:69"},"referencedDeclaration":48411,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45313,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45310,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"15553:8:69"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"15566:5:69"},"referencedDeclaration":49029,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":45316,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45314,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45315,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45319,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46176,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45317,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45323,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45321,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45323,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45320,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45329,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45329,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45324,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45327,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45329,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45326,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45350,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45349,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45338],"declarations":[{"constant":false,"id":45338,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45349,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45337,"nodeType":"UserDefinedTypeName","pathNode":{"id":45336,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"15944:18:69"},"referencedDeclaration":47281,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45339,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45346,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45331,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45338,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45335,"id":45348,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45331,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45350,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45330,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45334,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45350,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45333,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45373,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45372,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45360],"declarations":[{"constant":false,"id":45360,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45372,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45359,"nodeType":"UserDefinedTypeName","pathNode":{"id":45358,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16221:18:69"},"referencedDeclaration":47281,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45364,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45361,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45353,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45365,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45360,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45357,"id":45371,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45351,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45353,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45373,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45352,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45373,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45355,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45396,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45395,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45383],"declarations":[{"constant":false,"id":45383,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45395,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45382,"nodeType":"UserDefinedTypeName","pathNode":{"id":45381,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16516:18:69"},"referencedDeclaration":47281,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45387,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45384,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45376,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45383,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45380,"id":45394,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45374,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45376,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45396,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45375,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45396,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45378,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45409,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45408,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45405,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45399,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45404,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45434,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45403,"id":45407,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45397,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45399,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45409,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45398,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45409,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45401,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45434,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45433,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45419],"declarations":[{"constant":false,"id":45419,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45433,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45418,"nodeType":"UserDefinedTypeName","pathNode":{"id":45417,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17294:18:69"},"referencedDeclaration":47281,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45420,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45419,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45428,"indexExpression":{"id":45427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45412,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45416,"id":45432,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45410,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45412,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45434,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45411,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45434,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45414,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45452,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45451,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45441],"declarations":[{"constant":false,"id":45441,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45451,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45440,"nodeType":"UserDefinedTypeName","pathNode":{"id":45439,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17577:18:69"},"referencedDeclaration":47281,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45445,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45442,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45441,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44417,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45438,"id":45450,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45435,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45452,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45436,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45478,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45477,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45460],"declarations":[{"constant":false,"id":45460,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45477,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45459,"nodeType":"UserDefinedTypeName","pathNode":{"id":45458,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17860:18:69"},"referencedDeclaration":47281,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45461,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45470,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45457,"id":45476,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45453,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45454,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45478,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45455,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45496,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45495,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45485],"declarations":[{"constant":false,"id":45485,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45495,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45484,"nodeType":"UserDefinedTypeName","pathNode":{"id":45483,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18122:18:69"},"referencedDeclaration":47281,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45486,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45490,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45485,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45482,"id":45494,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45479,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45496,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45480,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45514,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45513,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45503],"declarations":[{"constant":false,"id":45503,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45513,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45502,"nodeType":"UserDefinedTypeName","pathNode":{"id":45501,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18333:18:69"},"referencedDeclaration":47281,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45504,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45508,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45503,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45500,"id":45512,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45514,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45498,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45537,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45536,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45524],"declarations":[{"constant":false,"id":45524,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45536,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45523,"nodeType":"UserDefinedTypeName","pathNode":{"id":45522,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18636:18:69"},"referencedDeclaration":47281,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45528,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45525,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45529,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45524,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45533,"indexExpression":{"id":45532,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45517,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45521,"id":45535,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45515,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45517,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45537,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45516,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45537,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45519,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45562,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45561,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45547],"declarations":[{"constant":false,"id":45547,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45561,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45546,"nodeType":"UserDefinedTypeName","pathNode":{"id":45545,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19028:18:69"},"referencedDeclaration":47281,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45551,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45548,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45557,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45540,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45558,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45542,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45552,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45547,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45560,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45538,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45540,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45562,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45539,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45542,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45562,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45541,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45544,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45587,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45586,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45572],"declarations":[{"constant":false,"id":45572,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45586,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45571,"nodeType":"UserDefinedTypeName","pathNode":{"id":45570,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19346:18:69"},"referencedDeclaration":47281,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45576,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45573,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45582,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45565,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45583,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45577,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45572,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44693,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45585,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45563,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45565,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45587,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45564,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45567,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45587,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45566,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45569,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45696,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45695,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45597],"declarations":[{"constant":false,"id":45597,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45695,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45596,"nodeType":"UserDefinedTypeName","pathNode":{"id":45595,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19655:18:69"},"referencedDeclaration":47281,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45598,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45607,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45608,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45602,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45610,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45616,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45611,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45619,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45620,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45694,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45693,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45693,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45623,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45625,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45627],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45693,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45626,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45631,"initialValue":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45656,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45638,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45641,"indexExpression":{"id":45640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":45642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50208,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45643,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45651,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45650,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45645,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45648,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45649,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45655,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45654,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45635,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45636,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45657,"initializationExpression":{"assignments":[45633],"declarations":[{"constant":false,"id":45633,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45657,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45632,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45634,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45658,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45692,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45691,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45661],"declarations":[{"constant":false,"id":45661,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45691,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45660,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45668,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45666,"indexExpression":{"id":45665,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45671],"declarations":[{"constant":false,"id":45671,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45691,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45670,"nodeType":"UserDefinedTypeName","pathNode":{"id":45669,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"20624:9:69"},"referencedDeclaration":50211,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45682,"initialValue":{"arguments":[{"id":45673,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45674,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45661,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45679,"indexExpression":{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45672,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45688,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45671,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45683,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45690,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45588,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45590,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45696,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45589,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45592,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45696,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45591,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45594,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45738,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45737,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45706],"declarations":[{"constant":false,"id":45706,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45737,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45705,"nodeType":"UserDefinedTypeName","pathNode":{"id":45704,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21181:18:69"},"referencedDeclaration":47281,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45710,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45707,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45711,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45719,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45725,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45720,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45728,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45731,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45729,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45736,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45697,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45699,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45738,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45698,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45701,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45738,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45700,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45703,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45766,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45765,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45750],"declarations":[{"constant":false,"id":45750,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45765,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45749,"nodeType":"UserDefinedTypeName","pathNode":{"id":45748,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21838:18:69"},"referencedDeclaration":47281,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45754,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45751,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45760,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45741,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45761,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45743,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45745,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45755,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46528,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45764,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45739,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45741,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45766,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45740,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45743,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45766,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45742,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45745,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45766,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45744,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45747,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45791,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45790,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45776],"declarations":[{"constant":false,"id":45776,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45790,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45775,"nodeType":"UserDefinedTypeName","pathNode":{"id":45774,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22154:18:69"},"referencedDeclaration":47281,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45777,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45786,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45769,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45787,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45771,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46488,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45789,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45767,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45769,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45791,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45768,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45771,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45791,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45770,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45773,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45825,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45824,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45801],"declarations":[{"constant":false,"id":45801,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45824,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45800,"nodeType":"UserDefinedTypeName","pathNode":{"id":45799,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22400:18:69"},"referencedDeclaration":47281,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45802,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45806,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46602,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45814,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45815,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45823,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45792,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45794,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45825,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45793,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45796,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45825,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45795,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45798,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45859,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45858,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45858,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45834,"nodeType":"UserDefinedTypeName","pathNode":{"id":45833,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22703:18:69"},"referencedDeclaration":47281,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46565,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45848,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45854,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45855,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45849,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45857,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45826,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45828,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45859,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45827,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45830,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45859,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45832,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45886,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45885,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45867],"declarations":[{"constant":false,"id":45867,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45885,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45866,"nodeType":"UserDefinedTypeName","pathNode":{"id":45865,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23062:18:69"},"referencedDeclaration":47281,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45868,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45873],"declarations":[{"constant":false,"id":45873,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45885,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45872,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45879,"initialValue":{"arguments":[{"id":45877,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45867,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44301,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45881,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45882,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45873,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45880,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45884,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45860,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45862,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45886,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45861,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45864,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45942,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45941,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45894],"declarations":[{"constant":false,"id":45894,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45941,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45893,"nodeType":"UserDefinedTypeName","pathNode":{"id":45892,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23424:18:69"},"referencedDeclaration":47281,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45895,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45900],"declarations":[{"constant":false,"id":45900,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45941,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45899,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45906,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45901,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45905,"indexExpression":{"id":45904,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45914,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45913,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45910,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45912,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45921,"indexExpression":{"id":45918,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45924,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45925,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45932,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45935,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45933,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45940,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45887,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45889,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45942,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45888,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45891,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45965,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45964,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45951],"declarations":[{"constant":false,"id":45951,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45964,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45950,"nodeType":"UserDefinedTypeName","pathNode":{"id":45949,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23885:18:69"},"referencedDeclaration":47281,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45952,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45956,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45959,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45948,"id":45963,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45943,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45944,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45946,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46175,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46174,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45973],"declarations":[{"constant":false,"id":45973,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46174,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45972,"nodeType":"UserDefinedTypeName","pathNode":{"id":45971,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"24247:18:69"},"referencedDeclaration":47281,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45977,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45974,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45980],"declarations":[{"constant":false,"id":45980,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46174,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45979,"nodeType":"UserDefinedTypeName","pathNode":{"id":45978,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"24322:16:69"},"referencedDeclaration":50123,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45983,"initialValue":{"expression":{"id":45981,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45984,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45985,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45992,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45993,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45998,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45997,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45970,"id":45996,"nodeType":"Return","src":"24585:7:69"}]}},"id":45999,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45991,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45988,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45990,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[46001],"declarations":[{"constant":false,"id":46001,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46174,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46000,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46004,"initialValue":{"expression":{"id":46002,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46160,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[46014],"declarations":[{"constant":false,"id":46014,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46160,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46013,"nodeType":"UserDefinedTypeName","pathNode":{"id":46012,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"24736:13:69"},"referencedDeclaration":50104,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46019,"initialValue":{"arguments":[{"id":46017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46015,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[46021],"declarations":[{"constant":false,"id":46021,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46160,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46020,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46024,"initialValue":{"expression":{"id":46022,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46025,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46027,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46043,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46045,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46147,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46085],"declarations":[{"constant":false,"id":46085,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46147,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46084,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46094,"initialValue":{"arguments":[{"expression":{"id":46088,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46090,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46095,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46097,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46145,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46132,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46133,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46136,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46144,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46146,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46126,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46105,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46100,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46114,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44257,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46117,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46123,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46118,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46125,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46148,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46083,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46049,46051],"declarations":[{"constant":false,"id":46049,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46083,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46048,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46051,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46083,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46050,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46062,"initialValue":{"arguments":[{"expression":{"id":46054,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46056,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46058,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46069,"indexExpression":{"id":46066,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46071,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46049,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46073,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46080,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46051,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46074,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46082,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46149,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":46042,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":46040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46036,"indexExpression":{"id":46033,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46038,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46041,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46155,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46159,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46158,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46010,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46161,"initializationExpression":{"assignments":[46006],"declarations":[{"constant":false,"id":46006,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46161,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46005,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46008,"initialValue":{"id":46007,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46001,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46162,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46165,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46169,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46171,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46170,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45323,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46173,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45966,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45968,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46175,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45967,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45970,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46176],"name":"LibStaking","nameLocation":"15346:10:69","scope":46441,"usedErrors":[32461,32469,37450]},{"id":46440,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46181,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46178,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"26321:15:69"},"typeName":{"id":46180,"nodeType":"UserDefinedTypeName","pathNode":{"id":46179,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"26341:12:69"},"referencedDeclaration":50190,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46185,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46182,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"26365:19:69"},"typeName":{"id":46184,"nodeType":"UserDefinedTypeName","pathNode":{"id":46183,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"26389:16:69"},"referencedDeclaration":50123,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46220,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46219,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46219,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46194,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46209,"initialValue":{"arguments":[{"expression":{"expression":{"id":46199,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46202,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46205,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46196,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46188,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46644,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46210,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46211,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50109,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46218,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46217,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46214,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46216,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46188,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46220,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46187,"nodeType":"UserDefinedTypeName","pathNode":{"id":46186,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26433:23:69"},"referencedDeclaration":50197,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46191,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46220,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46190,"nodeType":"UserDefinedTypeName","pathNode":{"id":46189,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26471:20:69"},"referencedDeclaration":50110,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46193,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46261,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46260,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46231],"declarations":[{"constant":false,"id":46231,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46260,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46230,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46234,"initialValue":{"expression":{"id":46232,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46235,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46240,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46239,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46229,"id":46238,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46258,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46248,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46223,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46249,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46251,"indexExpression":{"id":46250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46247,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46253,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46257,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46256,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46259,"initializationExpression":{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46259,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46241,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46243,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46223,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46261,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46222,"nodeType":"UserDefinedTypeName","pathNode":{"id":46221,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26928:23:69"},"referencedDeclaration":50197,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46227,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46261,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46225,"nodeType":"UserDefinedTypeName","pathNode":{"id":46224,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26974:20:69"},"referencedDeclaration":50110,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46226,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46229,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46439,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46438,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46270,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46271,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46279,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46280,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46286,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46285,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46269,"id":46284,"nodeType":"Return","src":"27697:7:69"}]}},"id":46287,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46278,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46275,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46277,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46289],"declarations":[{"constant":false,"id":46289,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46438,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46288,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46293,"initialValue":{"expression":{"expression":{"id":46290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46426,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46303],"declarations":[{"constant":false,"id":46303,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46426,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46302,"nodeType":"UserDefinedTypeName","pathNode":{"id":46301,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"27852:13:69"},"referencedDeclaration":50104,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46309,"initialValue":{"arguments":[{"id":46307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46304,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46311],"declarations":[{"constant":false,"id":46311,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46426,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46310,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46314,"initialValue":{"expression":{"id":46312,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46315,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46317,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46333,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46411,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46375],"declarations":[{"constant":false,"id":46375,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46411,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46374,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46384,"initialValue":{"arguments":[{"expression":{"id":46378,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46380,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46385,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46387,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46409,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46405,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46406,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46408,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46410,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46399,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46395,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46398,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46412,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46373,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46339,46341],"declarations":[{"constant":false,"id":46339,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46373,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46338,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46341,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46373,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46340,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46352,"initialValue":{"arguments":[{"expression":{"id":46344,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46346,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46348,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46359,"indexExpression":{"id":46356,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46361,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46339,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46363,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46370,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46341,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46372,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46413,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46332,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46320,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46326,"indexExpression":{"id":46323,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46328,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46331,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46414,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46421,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46425,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46424,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46299,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46427,"initializationExpression":{"assignments":[46295],"declarations":[{"constant":false,"id":46295,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46427,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46294,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46297,"initialValue":{"id":46296,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46289,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46433,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46437,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46262,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46265,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46439,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46264,"nodeType":"UserDefinedTypeName","pathNode":{"id":46263,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"27402:23:69"},"referencedDeclaration":50197,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46267,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46439,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46266,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46269,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46177,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46440],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46441,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file +{"abi":[{"type":"event","name":"CollateralClaimed","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ConfigurationNumberConfirmed","inputs":[{"name":"number","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"NoRewardToWithdraw","inputs":[]}],"bytecode":{"object":"0x6080806040523461001c57610214908161002282393081602e0152f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c6382985e0b1461002b57600080fd5b307f0000000000000000000000000000000000000000000000000000000000000000146101da5760203660031901126101da5781356001600160a01b03808216908183036101d6576001600160a01b0383166000908152602160205260409020549283156101c6576001600160a01b03166000908152602160205260409020869055600e54869116803b156101c25781906024865180948193636c712ab960e11b8352888b8401525af180156101b85761018a575b50814710610174578480809381935af13d1561016f5767ffffffffffffffff3d81811161015c57835191601f8201601f19908116603f011683019081118382101761014757845281528460203d92013e5b1561013a578280f35b51630a12f52160e11b8152fd5b604186634e487b7160e01b6000525260246000fd5b634e487b7160e01b865260418552602486fd5b610131565b825163cd78605960e01b81523081860152602490fd5b67ffffffffffffffff81969296116101a557835293386100e0565b634e487b7160e01b825260418552602482fd5b84513d88823e3d90fd5b5080fd5b84516367300f9160e11b81528690fd5b8580fd5b8280fdfea2646970667358221220645b2cdeded347c45cb8ab1b33c2e5e03ace5874c3ee277d307b8ae83242105664736f6c63430008130033","sourceMap":"15338:10785:69:-:0;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260048036101561001457600080fd5b600091823560e01c6382985e0b1461002b57600080fd5b307f0000000000000000000000000000000000000000000000000000000000000000146101da5760203660031901126101da5781356001600160a01b03808216908183036101d6576001600160a01b0383166000908152602160205260409020549283156101c6576001600160a01b03166000908152602160205260409020869055600e54869116803b156101c25781906024865180948193636c712ab960e11b8352888b8401525af180156101b85761018a575b50814710610174578480809381935af13d1561016f5767ffffffffffffffff3d81811161015c57835191601f8201601f19908116603f011683019081118382101761014757845281528460203d92013e5b1561013a578280f35b51630a12f52160e11b8152fd5b604186634e487b7160e01b6000525260246000fd5b634e487b7160e01b865260418552602486fd5b610131565b825163cd78605960e01b81523081860152602490fd5b67ffffffffffffffff81969296116101a557835293386100e0565b634e487b7160e01b825260418552602482fd5b84513d88823e3d90fd5b5080fd5b84516367300f9160e11b81528690fd5b8580fd5b8280fdfea2646970667358221220645b2cdeded347c45cb8ab1b33c2e5e03ace5874c3ee277d307b8ae83242105664736f6c63430008130033","sourceMap":"15338:10785:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15338:10785:69;;;;;;-1:-1:-1;;;;;15338:10785:69;;;;;;;;;-1:-1:-1;;;;;15338:10785:69;;;;;;23516:16;15338:10785;;;;;;23564:11;;;23560:69;;-1:-1:-1;;;;;15338:10785:69;;;;;23516:16;15338:10785;;;;;;;;23695:16;15338:10785;23639:33;;15338:10785;23686:58;;;;;15338:10785;;;;;;;;;;;;23686:58;;;;;;15338:10785;23686:58;;;;;;;;15338:10785;1615:21:29;;;:30;1611:109;;1749:33;;;;;;;;15338:10785:69;;;;;;;;;;;;;;;;;-1:-1:-1;;15338:10785:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1796:8:29;1792:63;;15338:10785:69;;;1792:63:29;15338:10785:69;-1:-1:-1;;;1827:17:29;;;15338:10785:69;;;;;;;;;;;;;-1:-1:-1;;;15338:10785:69;;;;;;;;;;;1611:109:29;15338:10785:69;;-1:-1:-1;;;1668:41:29;;15338:10785:69;1668:41:29;;;15338:10785:69;;;1668:41:29;23686:58:69;15338:10785;;;;;;;;;;23686:58;;;;15338:10785;-1:-1:-1;;;15338:10785:69;;;;;;;;23686:58;15338:10785;;;;;;;;;23686:58;15338:10785;;;23560:69;15338:10785;;-1:-1:-1;;;23598:20:69;;15338:10785;;23598:20;15338:10785;;;;;;;","linkReferences":{},"immutableReferences":{"library_deploy_address":[{"start":46,"length":32}]}},"methodIdentifiers":{"claimRewardForRelayer(address)":"82985e0b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRewardToWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CollateralClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"number\",\"type\":\"uint64\"}],\"name\":\"ConfigurationNumberConfirmed\",\"type\":\"event\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"claimRewardForRelayer(address)\":{\"notice\":\"method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibStaking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"NoRewardToWithdraw"},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"CollateralClaimed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"number","type":"uint64","indexed":false}],"type":"event","name":"ConfigurationNumberConfirmed","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"claimRewardForRelayer(address)":{"notice":"method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibStaking"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46394,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50093],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44136],"LibMaxPQ":[48969],"LibMinPQ":[49588],"LibStaking":[46129],"LibStakingChangeLog":[46631],"LibStakingReleaseQueue":[44255],"LibSubnetActorStorage":[47245],"LibValidatorSet":[45246],"LibValidatorTracking":[46393],"MaxPQ":[48364],"MinPQ":[48982],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50150],"PermissionMode":[50118],"StakingChange":[50057],"StakingChangeLog":[50076],"StakingChangeRequest":[50063],"StakingOperation":[50049],"StakingRelease":[50083],"StakingReleaseQueue":[50103],"SubnetActorStorage":[47234],"Validator":[50164],"ValidatorSet":[50143],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":43968,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43970,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":43969,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43973,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":43971,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43972,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47234,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43976,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":48970,"symbolAliases":[{"foreign":{"id":43974,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48969,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43975,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48364,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43979,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":49589,"symbolAliases":[{"foreign":{"id":43977,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49588,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43978,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48982,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43981,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":46632,"symbolAliases":[{"foreign":{"id":43980,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46631,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43993,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":43982,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43983,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50103,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43984,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50076,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43985,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50057,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43986,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50063,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43987,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43988,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50083,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43989,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43990,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50093,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43991,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43992,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44001,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":43994,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43995,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43996,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43997,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43998,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43999,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44000,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44003,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44002,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44136,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44042,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44041,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44014],"declarations":[{"constant":false,"id":44014,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44041,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44013,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44017,"initialValue":{"expression":{"id":44015,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44019],"declarations":[{"constant":false,"id":44019,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44041,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44018,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44024,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44020,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44022,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44014,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44025,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44029,"indexExpression":{"id":44027,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44030,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44010,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"id":44032,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44033,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44036,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44014,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44040,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44004,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44007,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44042,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44006,"nodeType":"UserDefinedTypeName","pathNode":{"id":44005,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"1132:22:69"},"referencedDeclaration":50093,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44010,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44042,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44009,"nodeType":"UserDefinedTypeName","pathNode":{"id":44008,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"1169:14:69"},"referencedDeclaration":50083,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44012,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44136,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44135,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44134,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44054],"declarations":[{"constant":false,"id":44054,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44134,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44053,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44057,"initialValue":{"expression":{"id":44055,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44058,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44066,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44065,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44062,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44064,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44068],"declarations":[{"constant":false,"id":44068,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44134,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44067,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"expression":{"id":44069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44073],"declarations":[{"constant":false,"id":44073,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44134,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44072,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44075,"initialValue":{"id":44074,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44077],"declarations":[{"constant":false,"id":44077,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44134,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44076,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44078,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44116,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44084],"declarations":[{"constant":false,"id":44084,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44116,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44083,"nodeType":"UserDefinedTypeName","pathNode":{"id":44082,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"1987:14:69"},"referencedDeclaration":50083,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44089,"initialValue":{"baseExpression":{"expression":{"id":44085,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44088,"indexExpression":{"id":44087,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44090,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44084,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44092,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44097,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44096,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44095,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44098,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44099,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44084,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50082,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44102,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44103,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44106,"indexExpression":{"id":44105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44108,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44115,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44111,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44112,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44114,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44079,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44080,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44117,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44118,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44121,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44123,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44124,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44127,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44129,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44130,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44131,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44052,"id":44133,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44043,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44046,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44135,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44045,"nodeType":"UserDefinedTypeName","pathNode":{"id":44044,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"1654:22:69"},"referencedDeclaration":50093,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44135,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44048,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44135,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44050,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44136,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44136],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46394,"usedErrors":[]},{"id":44255,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44140,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44138,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44139,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44144,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44141,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44136,"src":"2668:25:69"},"typeName":{"id":44143,"nodeType":"UserDefinedTypeName","pathNode":{"id":44142,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"2698:22:69"},"referencedDeclaration":50093,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44152,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44146,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44152,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44145,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44148,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44152,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44147,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44150,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44152,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44149,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44167,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44166,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44155,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50096,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44163,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44157,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44165,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44155,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44167,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44154,"nodeType":"UserDefinedTypeName","pathNode":{"id":44153,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"2842:19:69"},"referencedDeclaration":50103,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44157,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44167,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44156,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44159,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44210,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44209,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44179],"declarations":[{"constant":false,"id":44179,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44209,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44178,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44185,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44180,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44182,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44171,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50096,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44188],"declarations":[{"constant":false,"id":44188,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44209,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44187,"nodeType":"UserDefinedTypeName","pathNode":{"id":44186,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"3192:14:69"},"referencedDeclaration":50083,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44193,"initialValue":{"arguments":[{"id":44190,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44191,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44175,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44189,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50083,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50083_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44200,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44188,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44194,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44171,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44198,"indexExpression":{"id":44196,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44173,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44042,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$_t_struct$_StakingRelease_$50083_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44202,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44204,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44173,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44205,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44175,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44206,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44203,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44152,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44208,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44168,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44171,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44210,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44170,"nodeType":"UserDefinedTypeName","pathNode":{"id":44169,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"3039:19:69"},"referencedDeclaration":50103,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44173,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44210,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44172,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44175,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44210,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44174,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44177,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44254,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44253,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44222,44224],"declarations":[{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44253,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44224,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44253,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44223,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44214,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44228,"indexExpression":{"id":44227,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44135,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44232,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44224,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44242,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44241,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44214,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44238,"indexExpression":{"id":44237,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44240,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44248,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44245,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44243,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44250,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44251,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44220,"id":44252,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44211,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44214,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44254,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44213,"nodeType":"UserDefinedTypeName","pathNode":{"id":44212,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"3531:19:69"},"referencedDeclaration":50103,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44216,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44254,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44215,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44254,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44218,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44137,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44255],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46394,"usedErrors":[]},{"id":45246,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44260,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44257,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49588,"src":"3936:8:69"},"typeName":{"id":44259,"nodeType":"UserDefinedTypeName","pathNode":{"id":44258,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"3949:5:69"},"referencedDeclaration":48982,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}}},{"id":44264,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44261,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48969,"src":"3966:8:69"},"typeName":{"id":44263,"nodeType":"UserDefinedTypeName","pathNode":{"id":44262,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"3979:5:69"},"referencedDeclaration":48364,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44270,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44270,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44265,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44268,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44270,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44267,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44276,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44272,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44276,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44271,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44274,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44276,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44273,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44282,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44278,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44282,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44277,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44280,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44282,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44279,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44288,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44284,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44288,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44283,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44286,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44288,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44285,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44294,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44290,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44294,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44289,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44292,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44294,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44291,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44298,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44296,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44298,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44295,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44302,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44300,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44302,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44299,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44338,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44337,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"id":44317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44313,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44315,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":44316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44335,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44327,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44311,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44328,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44331,"indexExpression":{"id":44330,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44308,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44334,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44336,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44326,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44318,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44311,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44319,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44322,"indexExpression":{"id":44321,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44308,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44325,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44306,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44338,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44305,"nodeType":"UserDefinedTypeName","pathNode":{"id":44304,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"4552:12:69"},"referencedDeclaration":50143,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44308,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44338,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44307,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44311,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44338,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44310,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44353,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44352,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44347,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44348,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44342,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44351,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44339,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44342,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44353,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44341,"nodeType":"UserDefinedTypeName","pathNode":{"id":44340,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5013:12:69"},"referencedDeclaration":50143,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44345,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44353,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44344,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44370,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44369,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44362,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44360,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44363,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44357,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44368,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44354,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44357,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44370,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44356,"nodeType":"UserDefinedTypeName","pathNode":{"id":44355,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5240:12:69"},"referencedDeclaration":50143,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44360,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44370,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44359,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44390,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44389,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44381,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44379,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44382,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44374,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44385,"indexExpression":{"id":44384,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44376,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44388,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44371,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44374,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44390,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44373,"nodeType":"UserDefinedTypeName","pathNode":{"id":44372,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5482:12:69"},"referencedDeclaration":50143,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44376,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44390,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44375,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44379,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44390,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44378,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44442,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44441,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44400],"declarations":[{"constant":false,"id":44400,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44441,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44399,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44405,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44401,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44393,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44406,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44410,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44407,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44408,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44413,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44437,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44421,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44425,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44429,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44426,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44393,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49021,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44432,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44436,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44435,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44418,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44419,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44438,"initializationExpression":{"assignments":[44415],"declarations":[{"constant":false,"id":44415,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44438,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44414,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44417,"initialValue":{"hexValue":"31","id":44416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44439,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44398,"id":44440,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44393,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44442,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44392,"nodeType":"UserDefinedTypeName","pathNode":{"id":44391,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5708:12:69"},"referencedDeclaration":50143,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44397,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44442,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44395,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44396,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44487,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44486,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44452],"declarations":[{"constant":false,"id":44452,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44486,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44451,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44457,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44453,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44484,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44466],"declarations":[{"constant":false,"id":44466,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44484,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44465,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44472,"initialValue":{"arguments":[{"id":44470,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44467,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49021,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44473,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44449,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44475,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44476,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44466,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44474,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44338,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44479,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44462,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44463,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44452,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44459],"declarations":[{"constant":false,"id":44459,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44458,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44461,"initialValue":{"hexValue":"31","id":44460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44443,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44446,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44487,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44445,"nodeType":"UserDefinedTypeName","pathNode":{"id":44444,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"6212:12:69"},"referencedDeclaration":50143,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44449,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44487,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44448,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44538,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44537,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44497],"declarations":[{"constant":false,"id":44497,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44537,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44496,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44502,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44498,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44529,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44511],"declarations":[{"constant":false,"id":44511,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44529,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44510,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44517,"initialValue":{"arguments":[{"id":44515,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44512,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44518,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44494,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44520,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44521,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44511,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44519,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44524,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44528,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44527,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44507,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44508,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44497,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44530,"initializationExpression":{"assignments":[44504],"declarations":[{"constant":false,"id":44504,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44530,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44503,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44506,"initialValue":{"hexValue":"31","id":44505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44531,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44494,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44533,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44532,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44536,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44488,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44491,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44538,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44490,"nodeType":"UserDefinedTypeName","pathNode":{"id":44489,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"6718:12:69"},"referencedDeclaration":50143,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44494,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44538,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44493,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44608,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44607,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44552],"declarations":[{"constant":false,"id":44552,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44607,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44551,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44555,"initialValue":{"expression":{"id":44553,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44560],"declarations":[{"constant":false,"id":44560,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44607,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44558,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44559,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44566,"initialValue":{"arguments":[{"id":44564,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44552,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44561,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44562,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44603,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44574,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44542,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44575,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44577,"indexExpression":{"id":44576,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44573,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44625,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44587,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44586,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44581,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44583,"indexExpression":{"id":44582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44580,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44585,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44588,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44560,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44590,"indexExpression":{"id":44589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44592,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44542,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44593,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44595,"indexExpression":{"id":44594,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44591,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44338,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44598,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44602,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44601,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44570,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44571,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44552,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44604,"initializationExpression":{"assignments":[44568],"declarations":[{"constant":false,"id":44568,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44604,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44567,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44569,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44605,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44560,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44550,"id":44606,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44539,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44542,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44608,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44541,"nodeType":"UserDefinedTypeName","pathNode":{"id":44540,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"7383:12:69"},"referencedDeclaration":50143,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44545,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44608,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44543,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44544,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44608,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44547,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44548,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44625,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44624,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44621,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44613,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44618,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44611,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44617,"id":44623,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44611,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44625,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44610,"nodeType":"UserDefinedTypeName","pathNode":{"id":44609,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"7984:12:69"},"referencedDeclaration":50143,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44613,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44625,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44612,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44625,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44615,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44646,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44645,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44636,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44629,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44640,"indexExpression":{"id":44638,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44631,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44642,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44633,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44644,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44626,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44629,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44646,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44628,"nodeType":"UserDefinedTypeName","pathNode":{"id":44627,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8186:12:69"},"referencedDeclaration":50143,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44631,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44646,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44630,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44633,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44646,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44632,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44635,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44667,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44666,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44657,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44650,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44661,"indexExpression":{"id":44659,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44652,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44663,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44654,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44665,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44647,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44650,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44667,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44649,"nodeType":"UserDefinedTypeName","pathNode":{"id":44648,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8671:12:69"},"referencedDeclaration":50143,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44652,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44667,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44651,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44654,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44667,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44653,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44656,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44708,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44707,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44679],"declarations":[{"constant":false,"id":44679,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44707,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44678,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44685,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44680,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44671,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44683,"indexExpression":{"id":44682,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44686,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44693,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44692,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44689,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44691,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44694,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44695,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44697,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44698,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44671,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44702,"indexExpression":{"id":44700,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44704,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44706,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44668,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44671,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44708,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44670,"nodeType":"UserDefinedTypeName","pathNode":{"id":44669,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8919:12:69"},"referencedDeclaration":50143,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44673,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44708,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44672,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44675,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44708,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44674,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44677,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44761,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44760,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44720],"declarations":[{"constant":false,"id":44720,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44760,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44719,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44726,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44721,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44724,"indexExpression":{"id":44723,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44731,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44733,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44735,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44736,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44737,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44741,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44742,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44757,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44752,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44753,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44754,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44751,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45245,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44756,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44758,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44750,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44745,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44746,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44747,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44744,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45034,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44749,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44759,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44740,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44718,"id":44739,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44709,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44712,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44761,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44711,"nodeType":"UserDefinedTypeName","pathNode":{"id":44710,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"9361:12:69"},"referencedDeclaration":50143,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44714,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44761,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44713,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44716,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44761,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44715,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44718,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44803,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44802,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44772],"declarations":[{"constant":false,"id":44772,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44802,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44771,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44780,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44773,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44776,"indexExpression":{"id":44775,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44778,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44768,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44781,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44785,"indexExpression":{"id":44783,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44787,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44772,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44789,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44790,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44793,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44768,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44795,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44797,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44798,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44799,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44772,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44796,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45034,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44801,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44764,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44803,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44763,"nodeType":"UserDefinedTypeName","pathNode":{"id":44762,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"9900:12:69"},"referencedDeclaration":50143,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44766,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44803,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44765,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44768,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44803,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44767,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44770,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44869,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44868,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44814],"declarations":[{"constant":false,"id":44814,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44868,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44813,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44822,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44815,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44818,"indexExpression":{"id":44817,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44820,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44810,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44824],"declarations":[{"constant":false,"id":44824,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44868,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44823,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44830,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44825,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44828,"indexExpression":{"id":44827,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44831,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44834,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44824,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44854,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44845,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44849,"indexExpression":{"id":44847,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44851,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44853,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44855,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44844,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44838,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44841,"indexExpression":{"id":44840,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44843,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44857,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44858,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44859,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44856,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45245,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44861,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44865,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44810,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44867,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44806,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44869,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44805,"nodeType":"UserDefinedTypeName","pathNode":{"id":44804,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"10311:12:69"},"referencedDeclaration":50143,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44808,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44869,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44807,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44810,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44869,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44809,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44812,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45034,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45033,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44883,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44880,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44901,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44900,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44890,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44891,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49295,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44893,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44895,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44896,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44894,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44270,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44898,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44879,"id":44899,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44903],"declarations":[{"constant":false,"id":44903,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45033,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44902,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44906,"initialValue":{"expression":{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50125,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44908],"declarations":[{"constant":false,"id":44908,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45033,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44907,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44913,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44914,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44903,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44915,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44908,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44933,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44932,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44922,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44923,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44917,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44925,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44927,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44928,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44926,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44282,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44930,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44879,"id":44931,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44935,44937],"declarations":[{"constant":false,"id":44935,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45033,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44934,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44937,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45033,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44936,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44943,"initialValue":{"arguments":[{"id":44941,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44938,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49371,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44944,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44937,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44945,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44996,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":44995,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44952,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44947,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49168,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44954,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":44958,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44955,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44970,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":44969,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":44965,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44966,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44960,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48642,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44968,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":44976,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44977,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44971,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44979,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44986,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44935,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44980,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44988,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":44990,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44935,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44991,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44989,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44294,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44993,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44879,"id":44994,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45000,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44997,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45018,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45017,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45008,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48677,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45010,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45012,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45013,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45011,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44276,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44879,"id":45016,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45024,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45025,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45019,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45027,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45029,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45030,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45028,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44288,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45032,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44870,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44873,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45034,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44872,"nodeType":"UserDefinedTypeName","pathNode":{"id":44871,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"11035:12:69"},"referencedDeclaration":50143,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44875,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45034,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44874,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44877,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45034,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44876,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44879,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45245,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45244,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45045,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45085,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45084,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45050,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45068,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45067,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45058,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45059,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45053,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48642,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45061,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45063,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45062,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44302,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45065,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45044,"id":45066,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45074,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45075,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48712,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45077,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45080,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45078,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44276,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45082,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45044,"id":45083,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45089,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45086,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45096,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45095,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45092,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45094,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45155,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45154,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49260,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44298,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45113,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45152,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45151,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45120,45122],"declarations":[{"constant":false,"id":45120,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45151,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45119,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45122,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45151,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45121,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45128,"initialValue":{"arguments":[{"id":45126,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45123,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48753,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45134,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45129,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48550,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45136,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45142,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45143,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45120,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45137,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45145,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45147,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45120,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45148,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45122,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45146,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44282,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45150,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45044,"id":45153,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45161,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45162,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45156,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49330,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45164,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45173,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45172,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45044,"id":45171,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45175,45177],"declarations":[{"constant":false,"id":45175,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45244,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45174,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45177,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45244,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45176,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45183,"initialValue":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45178,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49371,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45185,45187],"declarations":[{"constant":false,"id":45185,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45244,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45184,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45187,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45244,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45186,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45193,"initialValue":{"arguments":[{"id":45191,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45188,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48753,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45194,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45195,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45187,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45238,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45237,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45202,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45197,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49168,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45204,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48550,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45212,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45218,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45219,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45213,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45221,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45227,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45228,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45175,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45222,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45230,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45232,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45175,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45233,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45231,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44294,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45235,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45044,"id":45236,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45240,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45241,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45239,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44270,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45243,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45035,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45038,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45245,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45037,"nodeType":"UserDefinedTypeName","pathNode":{"id":45036,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"13345:12:69"},"referencedDeclaration":50143,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45040,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45245,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45039,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45042,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45245,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45041,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45044,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44256,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45246],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46394,"usedErrors":[]},{"id":46129,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45250,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45247,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44255,"src":"15369:22:69"},"typeName":{"id":45249,"nodeType":"UserDefinedTypeName","pathNode":{"id":45248,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"15396:19:69"},"referencedDeclaration":50103,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45254,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45251,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46631,"src":"15427:19:69"},"typeName":{"id":45253,"nodeType":"UserDefinedTypeName","pathNode":{"id":45252,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"15451:16:69"},"referencedDeclaration":50076,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45258,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45255,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"15479:15:69"},"typeName":{"id":45257,"nodeType":"UserDefinedTypeName","pathNode":{"id":45256,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"15499:12:69"},"referencedDeclaration":50143,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45262,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45259,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48969,"src":"15523:8:69"},"typeName":{"id":45261,"nodeType":"UserDefinedTypeName","pathNode":{"id":45260,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"15536:5:69"},"referencedDeclaration":48364,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45266,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45263,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49588,"src":"15553:8:69"},"typeName":{"id":45265,"nodeType":"UserDefinedTypeName","pathNode":{"id":45264,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"15566:5:69"},"referencedDeclaration":48982,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}}},{"id":45269,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45267,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45268,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45272,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46129,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45270,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45276,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45274,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45276,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45273,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45282,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45278,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45282,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45277,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45280,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45282,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45279,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45303,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45302,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45291],"declarations":[{"constant":false,"id":45291,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45302,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45290,"nodeType":"UserDefinedTypeName","pathNode":{"id":45289,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"15944:18:69"},"referencedDeclaration":47234,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45295,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45292,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45299,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45284,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45296,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45291,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45288,"id":45301,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45284,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45303,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45283,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45287,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45303,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45286,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45326,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45325,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45313],"declarations":[{"constant":false,"id":45313,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45325,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"16221:18:69"},"referencedDeclaration":47234,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45317,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45314,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45322,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45306,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45318,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45310,"id":45324,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45304,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45306,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45326,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45305,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45326,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45308,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45349,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45348,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45336],"declarations":[{"constant":false,"id":45336,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45348,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45335,"nodeType":"UserDefinedTypeName","pathNode":{"id":45334,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"16516:18:69"},"referencedDeclaration":47234,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45340,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45337,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45345,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45341,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45336,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45333,"id":45347,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45327,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45329,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45349,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45328,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45332,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45349,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45331,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45362,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45361,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45358,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45352,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45357,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45387,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45356,"id":45360,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45350,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45352,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45362,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45351,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45362,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45354,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45387,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45386,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45372],"declarations":[{"constant":false,"id":45372,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45386,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45371,"nodeType":"UserDefinedTypeName","pathNode":{"id":45370,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17294:18:69"},"referencedDeclaration":47234,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45376,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45373,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45377,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45372,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45381,"indexExpression":{"id":45380,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45365,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45369,"id":45385,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45363,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45365,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45387,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45364,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45387,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45367,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45405,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45404,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45394],"declarations":[{"constant":false,"id":45394,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45404,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45393,"nodeType":"UserDefinedTypeName","pathNode":{"id":45392,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17577:18:69"},"referencedDeclaration":47234,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45398,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45395,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45399,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45394,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44370,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45391,"id":45403,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45388,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45405,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45389,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45431,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45430,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45413],"declarations":[{"constant":false,"id":45413,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45430,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45412,"nodeType":"UserDefinedTypeName","pathNode":{"id":45411,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17860:18:69"},"referencedDeclaration":47234,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45417,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45414,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45418,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45413,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45423,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45413,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45410,"id":45429,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45406,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45407,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45431,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45408,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45449,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45448,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45438],"declarations":[{"constant":false,"id":45438,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45448,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45437,"nodeType":"UserDefinedTypeName","pathNode":{"id":45436,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18122:18:69"},"referencedDeclaration":47234,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45442,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45439,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45443,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45438,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44353,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45435,"id":45447,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45432,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45449,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45433,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45467,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45466,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45456],"declarations":[{"constant":false,"id":45456,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45466,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45455,"nodeType":"UserDefinedTypeName","pathNode":{"id":45454,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18333:18:69"},"referencedDeclaration":47234,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45460,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45457,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45461,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45456,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44353,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45453,"id":45465,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45450,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45467,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45451,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45490,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45489,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45477],"declarations":[{"constant":false,"id":45477,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45489,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45476,"nodeType":"UserDefinedTypeName","pathNode":{"id":45475,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18636:18:69"},"referencedDeclaration":47234,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45481,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45478,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45482,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45477,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45486,"indexExpression":{"id":45485,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45470,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45474,"id":45488,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45468,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45470,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45490,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45469,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45490,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45472,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45515,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45514,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45500],"declarations":[{"constant":false,"id":45500,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45514,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45499,"nodeType":"UserDefinedTypeName","pathNode":{"id":45498,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19028:18:69"},"referencedDeclaration":47234,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45501,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45493,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45511,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45495,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45500,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45513,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45491,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45493,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45515,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45492,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45495,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45515,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45494,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45540,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45539,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45525],"declarations":[{"constant":false,"id":45525,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45539,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45524,"nodeType":"UserDefinedTypeName","pathNode":{"id":45523,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19346:18:69"},"referencedDeclaration":47234,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45529,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45526,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45535,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45518,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45536,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45520,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45530,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45525,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44646,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45538,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45516,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45518,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45540,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45517,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45520,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45540,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45519,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45522,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45649,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45648,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45550],"declarations":[{"constant":false,"id":45550,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45648,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45549,"nodeType":"UserDefinedTypeName","pathNode":{"id":45548,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19655:18:69"},"referencedDeclaration":47234,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45554,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45551,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45560,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45561,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45545,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45555,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44667,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45563,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45569,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45545,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45564,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45572,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45573,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45647,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45646,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45577],"declarations":[{"constant":false,"id":45577,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45646,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45576,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45578,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45580],"declarations":[{"constant":false,"id":45580,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45646,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45579,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45584,"initialValue":{"expression":{"expression":{"id":45581,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45609,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45591,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45594,"indexExpression":{"id":45593,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage","typeString":"struct Validator storage ref"}},"id":45595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50161,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45596,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45604,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45603,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45598,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45601,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45602,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45608,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45607,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45588,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45589,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45580,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45610,"initializationExpression":{"assignments":[45586],"declarations":[{"constant":false,"id":45586,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45610,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45585,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45587,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45611,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45645,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45644,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45614],"declarations":[{"constant":false,"id":45614,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45644,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45613,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45621,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45615,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45619,"indexExpression":{"id":45618,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45644,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45623,"nodeType":"UserDefinedTypeName","pathNode":{"id":45622,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"20624:9:69"},"referencedDeclaration":50164,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45635,"initialValue":{"arguments":[{"id":45626,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45627,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45614,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45632,"indexExpression":{"id":45631,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45625,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50164_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45641,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45636,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50164_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45643,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45541,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45543,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45649,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45542,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45545,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45649,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45544,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45547,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45691,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45690,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45659],"declarations":[{"constant":false,"id":45659,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45690,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45658,"nodeType":"UserDefinedTypeName","pathNode":{"id":45657,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"21181:18:69"},"referencedDeclaration":47234,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45663,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45660,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45669,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45670,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45664,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45659,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44708,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45672,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45679,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45673,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45659,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45681,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45684,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45682,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45689,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45650,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45652,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45691,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45651,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45654,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45691,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45653,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45656,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45719,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45718,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45703],"declarations":[{"constant":false,"id":45703,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45718,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45702,"nodeType":"UserDefinedTypeName","pathNode":{"id":45701,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"21838:18:69"},"referencedDeclaration":47234,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45707,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45704,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45713,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45694,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45714,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45696,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45715,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45698,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45708,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45703,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46481,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45717,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45692,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45694,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45719,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45693,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45696,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45719,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45695,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45698,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45719,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45697,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45700,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45744,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45743,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45729],"declarations":[{"constant":false,"id":45729,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45743,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45728,"nodeType":"UserDefinedTypeName","pathNode":{"id":45727,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22154:18:69"},"referencedDeclaration":47234,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45730,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45739,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45722,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45740,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45724,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45734,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45729,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46441,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45742,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45720,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45722,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45744,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45721,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45724,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45744,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45723,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45726,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45778,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45777,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45754],"declarations":[{"constant":false,"id":45754,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45777,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45753,"nodeType":"UserDefinedTypeName","pathNode":{"id":45752,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22400:18:69"},"referencedDeclaration":47234,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45758,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45755,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45764,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45747,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45765,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45749,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45759,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46555,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45767,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45773,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45747,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45774,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45749,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45768,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44667,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45776,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45745,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45747,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45778,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45746,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45749,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45778,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45748,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45751,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45812,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45811,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45788],"declarations":[{"constant":false,"id":45788,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45811,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45787,"nodeType":"UserDefinedTypeName","pathNode":{"id":45786,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22703:18:69"},"referencedDeclaration":47234,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45792,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45789,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45798,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45781,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45799,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45783,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45793,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45788,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46518,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45801,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45807,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45781,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45808,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45783,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45802,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45788,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44708,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45810,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45779,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45781,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45812,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45780,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45783,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45812,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45782,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45785,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45839,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45838,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45820],"declarations":[{"constant":false,"id":45820,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45838,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45819,"nodeType":"UserDefinedTypeName","pathNode":{"id":45818,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23062:18:69"},"referencedDeclaration":47234,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45824,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45821,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45826],"declarations":[{"constant":false,"id":45826,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45838,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45825,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45832,"initialValue":{"arguments":[{"id":45830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45815,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45827,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45820,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47213,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44254,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45834,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45815,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45835,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45826,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45833,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45282,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45837,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45813,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45815,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45839,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45814,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45817,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45895,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45894,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45847],"declarations":[{"constant":false,"id":45847,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45894,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45846,"nodeType":"UserDefinedTypeName","pathNode":{"id":45845,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23424:18:69"},"referencedDeclaration":47234,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45851,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45848,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45853],"declarations":[{"constant":false,"id":45853,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45894,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45852,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45859,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45854,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45858,"indexExpression":{"id":45857,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45860,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45867,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45866,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45863,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45865,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45868,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45874,"indexExpression":{"id":45871,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45877,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45883,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45879,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45878,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45885,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45891,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45888,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45886,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45893,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45840,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45842,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45895,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45841,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45844,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45918,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45917,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45904],"declarations":[{"constant":false,"id":45904,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45917,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45903,"nodeType":"UserDefinedTypeName","pathNode":{"id":45902,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23885:18:69"},"referencedDeclaration":47234,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45908,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45905,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45909,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45912,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45915,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45901,"id":45916,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45896,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45918,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45897,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45918,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45899,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46128,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46127,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45926],"declarations":[{"constant":false,"id":45926,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46127,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45925,"nodeType":"UserDefinedTypeName","pathNode":{"id":45924,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"24247:18:69"},"referencedDeclaration":47234,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45930,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45927,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45933],"declarations":[{"constant":false,"id":45933,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46127,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45932,"nodeType":"UserDefinedTypeName","pathNode":{"id":45931,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"24322:16:69"},"referencedDeclaration":50076,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45936,"initialValue":{"expression":{"id":45934,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45937,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45938,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45945,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45946,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45951,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45950,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45923,"id":45949,"nodeType":"Return","src":"24585:7:69"}]}},"id":45952,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45944,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45941,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45943,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[45954],"declarations":[{"constant":false,"id":45954,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46127,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45953,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45957,"initialValue":{"expression":{"id":45955,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46113,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[45967],"declarations":[{"constant":false,"id":45967,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46113,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45966,"nodeType":"UserDefinedTypeName","pathNode":{"id":45965,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"24736:13:69"},"referencedDeclaration":50057,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45972,"initialValue":{"arguments":[{"id":45970,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45968,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46615,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50057_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[45974],"declarations":[{"constant":false,"id":45974,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46113,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45973,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45977,"initialValue":{"expression":{"id":45975,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":45982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45978,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45980,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":45981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45996,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45998,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":45999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46100,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46038],"declarations":[{"constant":false,"id":46038,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46100,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46037,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46047,"initialValue":{"arguments":[{"expression":{"id":46041,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46043,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46039,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46048,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46050,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46098,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46085,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46086,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46080,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46088,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46090,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46089,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46094,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46097,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46099,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46079,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46058,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46053,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46061,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46067,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46068,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46062,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47213,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44210,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46070,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46076,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46072,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46071,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46078,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46101,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46036,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46002,46004],"declarations":[{"constant":false,"id":46002,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46036,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46001,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46004,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46036,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46003,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46015,"initialValue":{"arguments":[{"expression":{"id":46007,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46009,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46011,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46013,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46005,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46016,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46022,"indexExpression":{"id":46019,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46024,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46002,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46026,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46032,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46033,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46004,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46027,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46035,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46102,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":45995,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":45993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45983,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45989,"indexExpression":{"id":45986,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45991,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45994,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46106,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46103,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46630,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46112,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46111,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45962,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45963,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46114,"initializationExpression":{"assignments":[45959],"declarations":[{"constant":false,"id":45959,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46114,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45958,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45961,"initialValue":{"id":45960,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45954,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46115,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46118,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46122,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46124,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46123,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45276,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46126,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45919,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45921,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46128,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45920,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45923,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46129],"name":"LibStaking","nameLocation":"15346:10:69","scope":46394,"usedErrors":[32461,32469,37450]},{"id":46393,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46134,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46131,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"26321:15:69"},"typeName":{"id":46133,"nodeType":"UserDefinedTypeName","pathNode":{"id":46132,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"26341:12:69"},"referencedDeclaration":50143,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46138,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46135,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46631,"src":"26365:19:69"},"typeName":{"id":46137,"nodeType":"UserDefinedTypeName","pathNode":{"id":46136,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"26389:16:69"},"referencedDeclaration":50076,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46173,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46172,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46148],"declarations":[{"constant":false,"id":46148,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46172,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46147,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46162,"initialValue":{"arguments":[{"expression":{"expression":{"id":46152,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46155,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46158,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46149,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46141,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46597,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50049_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46163,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46148,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46164,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50062,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46171,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46170,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46167,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46169,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46141,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46173,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46140,"nodeType":"UserDefinedTypeName","pathNode":{"id":46139,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"26433:23:69"},"referencedDeclaration":50150,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46144,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46173,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46143,"nodeType":"UserDefinedTypeName","pathNode":{"id":46142,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50063,"src":"26471:20:69"},"referencedDeclaration":50063,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46146,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46214,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46213,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46184],"declarations":[{"constant":false,"id":46184,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46213,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46183,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46187,"initialValue":{"expression":{"id":46185,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46180,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46188,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46184,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46193,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46192,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46182,"id":46191,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46211,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46201,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46202,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46180,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46204,"indexExpression":{"id":46203,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46200,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46173,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50150_storage_ptr_$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46206,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46210,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46207,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46209,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46197,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46198,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46184,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46212,"initializationExpression":{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46212,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46194,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46196,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46176,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46214,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46175,"nodeType":"UserDefinedTypeName","pathNode":{"id":46174,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"26928:23:69"},"referencedDeclaration":50150,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46180,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46214,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46178,"nodeType":"UserDefinedTypeName","pathNode":{"id":46177,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50063,"src":"26974:20:69"},"referencedDeclaration":50063,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46179,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46182,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46392,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46391,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46223,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46224,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46232,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46239,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46238,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46222,"id":46237,"nodeType":"Return","src":"27697:7:69"}]}},"id":46240,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46231,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46228,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46230,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46391,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46241,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46246,"initialValue":{"expression":{"expression":{"id":46243,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46379,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46256],"declarations":[{"constant":false,"id":46256,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46379,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46255,"nodeType":"UserDefinedTypeName","pathNode":{"id":46254,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"27852:13:69"},"referencedDeclaration":50057,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46262,"initialValue":{"arguments":[{"id":46260,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46615,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50057_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46264],"declarations":[{"constant":false,"id":46264,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46379,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46263,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46267,"initialValue":{"expression":{"id":46265,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46268,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46270,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46286,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46288,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46364,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46328],"declarations":[{"constant":false,"id":46328,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46364,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46327,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46337,"initialValue":{"arguments":[{"expression":{"id":46331,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46333,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46335,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46329,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46338,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46340,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46362,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46358,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46359,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46328,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46361,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46363,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46352,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46348,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46349,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46328,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46343,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46351,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46365,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46326,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46292,46294],"declarations":[{"constant":false,"id":46292,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46326,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46291,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46294,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46326,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46293,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46305,"initialValue":{"arguments":[{"expression":{"id":46297,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46299,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46301,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46303,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46295,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46306,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46312,"indexExpression":{"id":46309,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46314,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46292,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46316,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46322,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46323,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46294,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46317,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46325,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46366,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46285,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46273,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46279,"indexExpression":{"id":46276,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46281,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46284,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46630,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46374,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46378,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46375,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46377,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46251,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46252,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46380,"initializationExpression":{"assignments":[46248],"declarations":[{"constant":false,"id":46248,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46380,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46247,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46250,"initialValue":{"id":46249,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46386,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46390,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46215,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46218,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46392,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46217,"nodeType":"UserDefinedTypeName","pathNode":{"id":46216,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"27402:23:69"},"referencedDeclaration":50150,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46220,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46392,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46219,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46222,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46130,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46393],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46394,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file diff --git a/.out/LibStaking.sol/LibStakingReleaseQueue.json b/.out/LibStaking.sol/LibStakingReleaseQueue.json index 2d9b019ab..b07a81386 100644 --- a/.out/LibStaking.sol/LibStakingReleaseQueue.json +++ b/.out/LibStaking.sol/LibStakingReleaseQueue.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"NewCollateralRelease","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"releaseBlock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212204bb61d1d755e5cb50400e6f2b209bd9a026a768b3553a1518d793d6215dd210b64736f6c63430008130033","sourceMap":"2586:1272:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212204bb61d1d755e5cb50400e6f2b209bd9a026a768b3553a1518d793d6215dd210b64736f6c63430008130033","sourceMap":"2586:1272:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"releaseBlock\",\"type\":\"uint256\"}],\"name\":\"NewCollateralRelease\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `StakingReleaseQueue`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibStakingReleaseQueue\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"releaseBlock","type":"uint256","indexed":false}],"type":"event","name":"NewCollateralRelease","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibStakingReleaseQueue"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46441,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50140],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44183],"LibMaxPQ":[49016],"LibMinPQ":[49635],"LibStaking":[46176],"LibStakingChangeLog":[46678],"LibStakingReleaseQueue":[44302],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"MaxPQ":[48411],"MinPQ":[49029],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"SubnetActorStorage":[47281],"Validator":[50211],"ValidatorSet":[50190],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":44015,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44017,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":44016,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44020,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":44018,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44019,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44023,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":44021,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49016,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44022,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44026,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":44024,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49635,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44025,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44028,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":46679,"symbolAliases":[{"foreign":{"id":44027,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46678,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44040,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":44029,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44030,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44031,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44032,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44033,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44034,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44035,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44036,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44037,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50140,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44038,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44039,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44048,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":44041,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44042,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44043,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44044,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44045,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44046,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44047,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44050,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44049,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44183,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44089,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44088,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44061],"declarations":[{"constant":false,"id":44061,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44088,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44060,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44064,"initialValue":{"expression":{"id":44062,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44066],"declarations":[{"constant":false,"id":44066,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44088,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44065,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44067,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44069,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44072,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44076,"indexExpression":{"id":44074,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44066,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44077,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44057,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"id":44079,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44080,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44083,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44087,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44051,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44054,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44089,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44053,"nodeType":"UserDefinedTypeName","pathNode":{"id":44052,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1132:22:69"},"referencedDeclaration":50140,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44057,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44089,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44056,"nodeType":"UserDefinedTypeName","pathNode":{"id":44055,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1169:14:69"},"referencedDeclaration":50130,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44059,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44182,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44181,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44101],"declarations":[{"constant":false,"id":44101,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44100,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44104,"initialValue":{"expression":{"id":44102,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44113,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44112,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44109,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44111,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44115],"declarations":[{"constant":false,"id":44115,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44181,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44114,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44118,"initialValue":{"expression":{"id":44116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44181,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44119,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44122,"initialValue":{"id":44121,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44124],"declarations":[{"constant":false,"id":44124,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44125,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44163,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44131],"declarations":[{"constant":false,"id":44131,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44163,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44130,"nodeType":"UserDefinedTypeName","pathNode":{"id":44129,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1987:14:69"},"referencedDeclaration":50130,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44136,"initialValue":{"baseExpression":{"expression":{"id":44132,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44135,"indexExpression":{"id":44134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44137,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50126,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44139,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44144,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44143,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44142,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44145,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44146,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50129,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44149,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44153,"indexExpression":{"id":44152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44155,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44162,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44158,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44159,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44161,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44127,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44164,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44170,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44174,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44176,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44178,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44099,"id":44180,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44090,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44093,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44182,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44092,"nodeType":"UserDefinedTypeName","pathNode":{"id":44091,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1654:22:69"},"referencedDeclaration":50140,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44183],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46441,"usedErrors":[]},{"id":44302,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44187,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44185,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44186,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44191,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44188,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44183,"src":"2668:25:69"},"typeName":{"id":44190,"nodeType":"UserDefinedTypeName","pathNode":{"id":44189,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2698:22:69"},"referencedDeclaration":50140,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44199,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44193,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44199,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44192,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44195,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44199,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44197,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44199,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44214,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44213,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44207,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44202,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44210,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44204,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44212,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44202,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44214,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44201,"nodeType":"UserDefinedTypeName","pathNode":{"id":44200,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2842:19:69"},"referencedDeclaration":50150,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44204,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44214,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44206,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44257,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44256,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44226],"declarations":[{"constant":false,"id":44226,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44256,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44232,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44227,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44235],"declarations":[{"constant":false,"id":44235,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44256,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44234,"nodeType":"UserDefinedTypeName","pathNode":{"id":44233,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"3192:14:69"},"referencedDeclaration":50130,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44240,"initialValue":{"arguments":[{"id":44237,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44236,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50130_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44247,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44235,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44245,"indexExpression":{"id":44243,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44089,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$_t_struct$_StakingRelease_$50130_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44249,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44251,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44253,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44250,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44199,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44255,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44215,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44218,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44257,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44217,"nodeType":"UserDefinedTypeName","pathNode":{"id":44216,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3039:19:69"},"referencedDeclaration":50150,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44220,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44257,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44219,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44257,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44224,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44301,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44300,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44269,44271],"declarations":[{"constant":false,"id":44269,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44300,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44271,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44300,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44272,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44275,"indexExpression":{"id":44274,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44182,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44279,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44271,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44289,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44288,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44285,"indexExpression":{"id":44284,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44287,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44295,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44292,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44290,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44297,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44298,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44267,"id":44299,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44258,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44261,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44301,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44260,"nodeType":"UserDefinedTypeName","pathNode":{"id":44259,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3531:19:69"},"referencedDeclaration":50150,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44263,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44301,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44262,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44301,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44184,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44302],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46441,"usedErrors":[]},{"id":45293,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44307,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44304,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"3936:8:69"},"typeName":{"id":44306,"nodeType":"UserDefinedTypeName","pathNode":{"id":44305,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3949:5:69"},"referencedDeclaration":49029,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":44311,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44308,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"3966:8:69"},"typeName":{"id":44310,"nodeType":"UserDefinedTypeName","pathNode":{"id":44309,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3979:5:69"},"referencedDeclaration":48411,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44317,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44313,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44317,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44312,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44315,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44317,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44323,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44319,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44323,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44318,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44321,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44323,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44320,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44329,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44329,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44324,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44327,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44329,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44335,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44331,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44335,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44330,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44333,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44335,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44341,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44337,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44336,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44339,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44338,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44345,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44343,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44345,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44342,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44349,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44347,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44349,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44346,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44385,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44384,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":44364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44360,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44362,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":44363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44382,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44374,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44375,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44378,"indexExpression":{"id":44377,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44381,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44383,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44373,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44365,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44366,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44369,"indexExpression":{"id":44368,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44372,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44350,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44353,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44385,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44352,"nodeType":"UserDefinedTypeName","pathNode":{"id":44351,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4552:12:69"},"referencedDeclaration":50190,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44355,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44385,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44354,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44358,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44385,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44357,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44400,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44399,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44394,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44392,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44395,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44389,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44398,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44386,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44389,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44388,"nodeType":"UserDefinedTypeName","pathNode":{"id":44387,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5013:12:69"},"referencedDeclaration":50190,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44392,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44417,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44416,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44409,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44407,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44410,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44404,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44415,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44401,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44404,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44417,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44403,"nodeType":"UserDefinedTypeName","pathNode":{"id":44402,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5240:12:69"},"referencedDeclaration":50190,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44407,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44417,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44406,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44437,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44436,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44428,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44429,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44421,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44432,"indexExpression":{"id":44431,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44423,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44435,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44418,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44421,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44420,"nodeType":"UserDefinedTypeName","pathNode":{"id":44419,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5482:12:69"},"referencedDeclaration":50190,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44423,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44437,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44422,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44426,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44489,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44488,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44447],"declarations":[{"constant":false,"id":44447,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44488,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44446,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44452,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44448,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44453,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44454,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44455,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44460,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44484,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44468,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44472,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44473,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44479,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44466,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44462],"declarations":[{"constant":false,"id":44462,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44461,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44464,"initialValue":{"hexValue":"31","id":44463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44486,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44445,"id":44487,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44440,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44489,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44439,"nodeType":"UserDefinedTypeName","pathNode":{"id":44438,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5708:12:69"},"referencedDeclaration":50190,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44444,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44489,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44442,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44443,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44534,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44533,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44499],"declarations":[{"constant":false,"id":44499,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44533,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44498,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44531,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44513],"declarations":[{"constant":false,"id":44513,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44531,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44512,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44519,"initialValue":{"arguments":[{"id":44517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44514,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44520,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44496,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44522,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44523,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44521,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44526,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44530,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44529,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44510,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44499,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44532,"initializationExpression":{"assignments":[44506],"declarations":[{"constant":false,"id":44506,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44532,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44505,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44508,"initialValue":{"hexValue":"31","id":44507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44490,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44493,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44492,"nodeType":"UserDefinedTypeName","pathNode":{"id":44491,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6212:12:69"},"referencedDeclaration":50190,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44496,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44495,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44585,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44584,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44544],"declarations":[{"constant":false,"id":44544,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44584,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44543,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44549,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44545,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44576,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44558],"declarations":[{"constant":false,"id":44558,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44576,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44557,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44564,"initialValue":{"arguments":[{"id":44562,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44559,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48450,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44565,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44567,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44568,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44558,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44566,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44437,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44571,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44575,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44574,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44554,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44555,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44544,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44577,"initializationExpression":{"assignments":[44551],"declarations":[{"constant":false,"id":44551,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44577,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44550,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44553,"initialValue":{"hexValue":"31","id":44552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44578,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44580,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44579,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44583,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44535,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44538,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44537,"nodeType":"UserDefinedTypeName","pathNode":{"id":44536,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6718:12:69"},"referencedDeclaration":50190,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44541,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44540,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44655,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44654,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44599],"declarations":[{"constant":false,"id":44599,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44654,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44602,"initialValue":{"expression":{"id":44600,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44607],"declarations":[{"constant":false,"id":44607,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44654,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44606,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44613,"initialValue":{"arguments":[{"id":44611,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44609,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44650,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44621,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44622,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44624,"indexExpression":{"id":44623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44620,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44672,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44634,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44633,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44628,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44630,"indexExpression":{"id":44629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44627,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44632,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44635,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44637,"indexExpression":{"id":44636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44639,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44640,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44642,"indexExpression":{"id":44641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44638,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44645,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44649,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44648,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44617,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44618,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44651,"initializationExpression":{"assignments":[44615],"declarations":[{"constant":false,"id":44615,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44651,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44614,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44616,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44652,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44597,"id":44653,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44586,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44589,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44655,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44588,"nodeType":"UserDefinedTypeName","pathNode":{"id":44587,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7383:12:69"},"referencedDeclaration":50190,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44592,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44655,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44590,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44591,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44655,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44594,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44595,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44672,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44671,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44668,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44660,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44665,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44658,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44664,"id":44670,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44658,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44672,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44657,"nodeType":"UserDefinedTypeName","pathNode":{"id":44656,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7984:12:69"},"referencedDeclaration":50190,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44660,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44672,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44659,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44672,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44662,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44693,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44692,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44676,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44687,"indexExpression":{"id":44685,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44678,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44689,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44680,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44691,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44673,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44676,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44693,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44675,"nodeType":"UserDefinedTypeName","pathNode":{"id":44674,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8186:12:69"},"referencedDeclaration":50190,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44678,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44693,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44677,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44680,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44693,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44679,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44682,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44714,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44713,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44704,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44697,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44708,"indexExpression":{"id":44706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44699,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44701,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44712,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44694,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44697,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44714,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44696,"nodeType":"UserDefinedTypeName","pathNode":{"id":44695,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8671:12:69"},"referencedDeclaration":50190,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44699,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44714,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44698,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44701,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44714,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44700,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44703,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44755,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44754,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44726],"declarations":[{"constant":false,"id":44726,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44754,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44725,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44732,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44730,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44733,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44740,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44739,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44736,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44738,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44741,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44742,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44744,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44745,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44749,"indexExpression":{"id":44747,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44751,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44753,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44715,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44718,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44755,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44717,"nodeType":"UserDefinedTypeName","pathNode":{"id":44716,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8919:12:69"},"referencedDeclaration":50190,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44720,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44755,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44719,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44722,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44755,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44721,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44808,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44807,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44767],"declarations":[{"constant":false,"id":44767,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44807,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44773,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44768,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44771,"indexExpression":{"id":44770,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44774,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44778,"indexExpression":{"id":44776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44780,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44782,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44783,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44784,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44788,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44789,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44804,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44799,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44800,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44801,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44798,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44803,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44805,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44797,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44792,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44793,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44794,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44791,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44796,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44806,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44787,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44765,"id":44786,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44756,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44759,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44808,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44758,"nodeType":"UserDefinedTypeName","pathNode":{"id":44757,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9361:12:69"},"referencedDeclaration":50190,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44761,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44808,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44760,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44763,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44808,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44762,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44765,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44819],"declarations":[{"constant":false,"id":44819,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44849,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44818,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44827,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44823,"indexExpression":{"id":44822,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44825,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44828,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44832,"indexExpression":{"id":44830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44834,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44836,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44840,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44842,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44844,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44843,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44811,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44850,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44810,"nodeType":"UserDefinedTypeName","pathNode":{"id":44809,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9900:12:69"},"referencedDeclaration":50190,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44813,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44850,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44812,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44815,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44850,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44814,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44817,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44916,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44915,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44861],"declarations":[{"constant":false,"id":44861,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44915,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44869,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44865,"indexExpression":{"id":44864,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44867,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44871],"declarations":[{"constant":false,"id":44871,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44915,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44870,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44877,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44872,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44875,"indexExpression":{"id":44874,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44878,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44881,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44871,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44901,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44896,"indexExpression":{"id":44894,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44898,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44900,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44902,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44891,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44888,"indexExpression":{"id":44887,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44890,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44905,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44906,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44903,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44908,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44914,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44916,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44852,"nodeType":"UserDefinedTypeName","pathNode":{"id":44851,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"10311:12:69"},"referencedDeclaration":50190,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44916,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44854,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44857,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44916,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45081,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45080,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44930,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44927,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44948,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44947,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44937,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44938,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49342,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44940,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44942,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44943,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44941,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44945,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44926,"id":44946,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44950],"declarations":[{"constant":false,"id":44950,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45080,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44949,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44953,"initialValue":{"expression":{"id":44951,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44955],"declarations":[{"constant":false,"id":44955,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44954,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44960,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44956,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44961,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44950,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44962,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44955,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44979,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44969,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44970,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44972,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44974,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44975,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44973,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44977,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44926,"id":44978,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44982,44984],"declarations":[{"constant":false,"id":44982,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44981,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44984,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45080,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44983,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44990,"initialValue":{"arguments":[{"id":44988,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44991,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44984,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44992,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45043,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":45042,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44999,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44994,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45001,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":45005,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45017,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":45016,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":45012,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45013,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":45023,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45024,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45026,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":45032,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45033,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45027,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45035,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":45037,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45038,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45036,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45040,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44926,"id":45041,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45047,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45044,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45065,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45064,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45054,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45055,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48724,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45057,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45059,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45060,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45058,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45062,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44926,"id":45063,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45071,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45072,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45066,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45074,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45076,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45077,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45075,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44335,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45079,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44917,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44920,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45081,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44919,"nodeType":"UserDefinedTypeName","pathNode":{"id":44918,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"11035:12:69"},"referencedDeclaration":50190,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44922,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45081,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44921,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44924,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45081,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44923,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44926,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45292,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45291,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45095,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45132,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45131,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45115,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45114,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44349,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45091,"id":45113,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48759,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45124,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45127,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45125,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45129,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45091,"id":45130,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45136,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45143,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45142,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45139,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45141,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45144,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45201,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45152,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45153,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45147,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49307,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45155,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45157,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45156,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45159,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45199,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45198,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45167,45169],"declarations":[{"constant":false,"id":45167,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45198,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45166,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45169,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45198,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45168,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45175,"initialValue":{"arguments":[{"id":45173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45170,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45176,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45183,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45189,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45190,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45184,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45192,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45194,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45195,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45169,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45193,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45197,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45091,"id":45200,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45209,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45203,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49377,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45211,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45212,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45220,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45219,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45091,"id":45218,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45222,45224],"declarations":[{"constant":false,"id":45222,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45291,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45224,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45291,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45223,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45230,"initialValue":{"arguments":[{"id":45228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45232,45234],"declarations":[{"constant":false,"id":45232,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45291,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45231,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45234,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45291,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45233,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45240,"initialValue":{"arguments":[{"id":45238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45241,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45224,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45242,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45234,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45285,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45284,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45249,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45251,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45259,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45266,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45268,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45274,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45275,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45277,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45279,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45280,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45278,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45282,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45091,"id":45283,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45287,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45288,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45286,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45290,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45082,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45085,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45292,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45084,"nodeType":"UserDefinedTypeName","pathNode":{"id":45083,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"13345:12:69"},"referencedDeclaration":50190,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45087,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45292,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45086,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45089,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45292,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45088,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45091,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45293],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46441,"usedErrors":[]},{"id":46176,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45297,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45294,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44302,"src":"15369:22:69"},"typeName":{"id":45296,"nodeType":"UserDefinedTypeName","pathNode":{"id":45295,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"15396:19:69"},"referencedDeclaration":50150,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45301,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45298,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"15427:19:69"},"typeName":{"id":45300,"nodeType":"UserDefinedTypeName","pathNode":{"id":45299,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"15451:16:69"},"referencedDeclaration":50123,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45305,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45302,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"15479:15:69"},"typeName":{"id":45304,"nodeType":"UserDefinedTypeName","pathNode":{"id":45303,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"15499:12:69"},"referencedDeclaration":50190,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45309,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45306,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"15523:8:69"},"typeName":{"id":45308,"nodeType":"UserDefinedTypeName","pathNode":{"id":45307,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"15536:5:69"},"referencedDeclaration":48411,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45313,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45310,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"15553:8:69"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"15566:5:69"},"referencedDeclaration":49029,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":45316,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45314,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45315,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45319,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46176,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45317,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45323,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45321,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45323,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45320,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45329,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45329,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45324,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45327,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45329,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45326,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45350,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45349,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45338],"declarations":[{"constant":false,"id":45338,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45349,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45337,"nodeType":"UserDefinedTypeName","pathNode":{"id":45336,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"15944:18:69"},"referencedDeclaration":47281,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45339,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45346,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45331,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45338,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45335,"id":45348,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45331,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45350,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45330,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45334,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45350,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45333,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45373,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45372,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45360],"declarations":[{"constant":false,"id":45360,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45372,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45359,"nodeType":"UserDefinedTypeName","pathNode":{"id":45358,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16221:18:69"},"referencedDeclaration":47281,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45364,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45361,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45353,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45365,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45360,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45357,"id":45371,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45351,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45353,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45373,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45352,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45373,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45355,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45396,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45395,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45383],"declarations":[{"constant":false,"id":45383,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45395,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45382,"nodeType":"UserDefinedTypeName","pathNode":{"id":45381,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16516:18:69"},"referencedDeclaration":47281,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45387,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45384,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45376,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45383,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45380,"id":45394,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45374,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45376,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45396,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45375,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45396,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45378,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45409,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45408,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45405,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45399,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45404,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45434,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45403,"id":45407,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45397,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45399,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45409,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45398,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45409,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45401,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45434,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45433,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45419],"declarations":[{"constant":false,"id":45419,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45433,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45418,"nodeType":"UserDefinedTypeName","pathNode":{"id":45417,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17294:18:69"},"referencedDeclaration":47281,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45420,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45419,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45428,"indexExpression":{"id":45427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45412,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45416,"id":45432,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45410,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45412,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45434,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45411,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45434,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45414,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45452,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45451,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45441],"declarations":[{"constant":false,"id":45441,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45451,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45440,"nodeType":"UserDefinedTypeName","pathNode":{"id":45439,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17577:18:69"},"referencedDeclaration":47281,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45445,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45442,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45441,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44417,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45438,"id":45450,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45435,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45452,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45436,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45478,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45477,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45460],"declarations":[{"constant":false,"id":45460,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45477,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45459,"nodeType":"UserDefinedTypeName","pathNode":{"id":45458,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17860:18:69"},"referencedDeclaration":47281,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45461,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45470,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45457,"id":45476,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45453,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45454,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45478,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45455,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45496,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45495,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45485],"declarations":[{"constant":false,"id":45485,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45495,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45484,"nodeType":"UserDefinedTypeName","pathNode":{"id":45483,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18122:18:69"},"referencedDeclaration":47281,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45486,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45490,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45485,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45482,"id":45494,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45479,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45496,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45480,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45514,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45513,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45503],"declarations":[{"constant":false,"id":45503,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45513,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45502,"nodeType":"UserDefinedTypeName","pathNode":{"id":45501,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18333:18:69"},"referencedDeclaration":47281,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45504,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45508,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45503,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45500,"id":45512,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45514,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45498,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45537,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45536,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45524],"declarations":[{"constant":false,"id":45524,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45536,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45523,"nodeType":"UserDefinedTypeName","pathNode":{"id":45522,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18636:18:69"},"referencedDeclaration":47281,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45528,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45525,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45529,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45524,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45533,"indexExpression":{"id":45532,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45517,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45521,"id":45535,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45515,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45517,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45537,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45516,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45537,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45519,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45562,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45561,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45547],"declarations":[{"constant":false,"id":45547,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45561,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45546,"nodeType":"UserDefinedTypeName","pathNode":{"id":45545,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19028:18:69"},"referencedDeclaration":47281,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45551,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45548,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45557,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45540,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45558,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45542,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45552,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45547,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45560,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45538,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45540,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45562,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45539,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45542,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45562,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45541,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45544,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45587,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45586,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45572],"declarations":[{"constant":false,"id":45572,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45586,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45571,"nodeType":"UserDefinedTypeName","pathNode":{"id":45570,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19346:18:69"},"referencedDeclaration":47281,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45576,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45573,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45582,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45565,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45583,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45577,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45572,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44693,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45585,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45563,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45565,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45587,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45564,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45567,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45587,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45566,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45569,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45696,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45695,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45597],"declarations":[{"constant":false,"id":45597,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45695,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45596,"nodeType":"UserDefinedTypeName","pathNode":{"id":45595,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19655:18:69"},"referencedDeclaration":47281,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45598,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45607,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45608,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45602,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45610,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45616,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45611,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45619,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45620,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45694,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45693,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45693,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45623,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45625,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45627],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45693,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45626,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45631,"initialValue":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45656,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45638,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45641,"indexExpression":{"id":45640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":45642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50208,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45643,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45651,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45650,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45645,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45648,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45649,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45655,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45654,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45635,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45636,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45657,"initializationExpression":{"assignments":[45633],"declarations":[{"constant":false,"id":45633,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45657,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45632,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45634,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45658,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45692,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45691,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45661],"declarations":[{"constant":false,"id":45661,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45691,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45660,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45668,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45666,"indexExpression":{"id":45665,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45671],"declarations":[{"constant":false,"id":45671,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45691,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45670,"nodeType":"UserDefinedTypeName","pathNode":{"id":45669,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"20624:9:69"},"referencedDeclaration":50211,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45682,"initialValue":{"arguments":[{"id":45673,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45674,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45661,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45679,"indexExpression":{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45672,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45688,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45671,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45683,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45690,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45588,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45590,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45696,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45589,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45592,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45696,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45591,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45594,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45738,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45737,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45706],"declarations":[{"constant":false,"id":45706,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45737,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45705,"nodeType":"UserDefinedTypeName","pathNode":{"id":45704,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21181:18:69"},"referencedDeclaration":47281,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45710,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45707,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45711,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45719,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45725,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45720,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45728,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45731,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45729,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45736,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45697,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45699,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45738,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45698,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45701,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45738,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45700,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45703,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45766,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45765,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45750],"declarations":[{"constant":false,"id":45750,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45765,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45749,"nodeType":"UserDefinedTypeName","pathNode":{"id":45748,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21838:18:69"},"referencedDeclaration":47281,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45754,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45751,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45760,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45741,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45761,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45743,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45745,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45755,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46528,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45764,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45739,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45741,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45766,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45740,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45743,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45766,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45742,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45745,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45766,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45744,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45747,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45791,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45790,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45776],"declarations":[{"constant":false,"id":45776,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45790,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45775,"nodeType":"UserDefinedTypeName","pathNode":{"id":45774,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22154:18:69"},"referencedDeclaration":47281,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45777,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45786,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45769,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45787,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45771,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46488,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45789,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45767,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45769,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45791,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45768,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45771,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45791,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45770,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45773,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45825,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45824,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45801],"declarations":[{"constant":false,"id":45801,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45824,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45800,"nodeType":"UserDefinedTypeName","pathNode":{"id":45799,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22400:18:69"},"referencedDeclaration":47281,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45802,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45806,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46602,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45814,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45815,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45823,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45792,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45794,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45825,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45793,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45796,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45825,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45795,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45798,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45859,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45858,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45858,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45834,"nodeType":"UserDefinedTypeName","pathNode":{"id":45833,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22703:18:69"},"referencedDeclaration":47281,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46565,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45848,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45854,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45855,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45849,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45857,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45826,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45828,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45859,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45827,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45830,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45859,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45832,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45886,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45885,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45867],"declarations":[{"constant":false,"id":45867,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45885,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45866,"nodeType":"UserDefinedTypeName","pathNode":{"id":45865,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23062:18:69"},"referencedDeclaration":47281,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45868,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45873],"declarations":[{"constant":false,"id":45873,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45885,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45872,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45879,"initialValue":{"arguments":[{"id":45877,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45867,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44301,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45881,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45882,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45873,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45880,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45884,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45860,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45862,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45886,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45861,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45864,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45942,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45941,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45894],"declarations":[{"constant":false,"id":45894,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45941,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45893,"nodeType":"UserDefinedTypeName","pathNode":{"id":45892,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23424:18:69"},"referencedDeclaration":47281,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45895,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45900],"declarations":[{"constant":false,"id":45900,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45941,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45899,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45906,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45901,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45905,"indexExpression":{"id":45904,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45914,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45913,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45910,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45912,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45921,"indexExpression":{"id":45918,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45924,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45925,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45932,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45935,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45933,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45940,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45887,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45889,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45942,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45888,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45891,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45965,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45964,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45951],"declarations":[{"constant":false,"id":45951,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45964,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45950,"nodeType":"UserDefinedTypeName","pathNode":{"id":45949,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23885:18:69"},"referencedDeclaration":47281,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45952,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45956,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45959,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45948,"id":45963,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45943,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45944,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45946,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46175,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46174,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45973],"declarations":[{"constant":false,"id":45973,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46174,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45972,"nodeType":"UserDefinedTypeName","pathNode":{"id":45971,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"24247:18:69"},"referencedDeclaration":47281,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45977,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45974,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45980],"declarations":[{"constant":false,"id":45980,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46174,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45979,"nodeType":"UserDefinedTypeName","pathNode":{"id":45978,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"24322:16:69"},"referencedDeclaration":50123,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45983,"initialValue":{"expression":{"id":45981,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45984,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45985,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45992,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45993,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45998,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45997,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45970,"id":45996,"nodeType":"Return","src":"24585:7:69"}]}},"id":45999,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45991,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45988,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45990,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[46001],"declarations":[{"constant":false,"id":46001,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46174,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46000,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46004,"initialValue":{"expression":{"id":46002,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46160,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[46014],"declarations":[{"constant":false,"id":46014,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46160,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46013,"nodeType":"UserDefinedTypeName","pathNode":{"id":46012,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"24736:13:69"},"referencedDeclaration":50104,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46019,"initialValue":{"arguments":[{"id":46017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46015,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[46021],"declarations":[{"constant":false,"id":46021,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46160,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46020,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46024,"initialValue":{"expression":{"id":46022,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46025,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46027,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46043,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46045,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46147,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46085],"declarations":[{"constant":false,"id":46085,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46147,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46084,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46094,"initialValue":{"arguments":[{"expression":{"id":46088,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46090,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46095,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46097,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46145,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46132,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46133,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46136,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46144,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46146,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46126,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46105,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46100,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46114,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44257,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46117,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46123,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46118,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46125,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46148,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46083,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46049,46051],"declarations":[{"constant":false,"id":46049,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46083,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46048,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46051,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46083,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46050,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46062,"initialValue":{"arguments":[{"expression":{"id":46054,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46056,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46058,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46069,"indexExpression":{"id":46066,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46071,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46049,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46073,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46080,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46051,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46074,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46082,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46149,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":46042,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":46040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46036,"indexExpression":{"id":46033,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46038,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46041,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46155,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46159,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46158,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46010,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46161,"initializationExpression":{"assignments":[46006],"declarations":[{"constant":false,"id":46006,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46161,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46005,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46008,"initialValue":{"id":46007,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46001,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46162,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46165,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46169,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46171,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46170,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45323,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46173,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45966,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45968,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46175,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45967,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45970,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46176],"name":"LibStaking","nameLocation":"15346:10:69","scope":46441,"usedErrors":[32461,32469,37450]},{"id":46440,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46181,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46178,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"26321:15:69"},"typeName":{"id":46180,"nodeType":"UserDefinedTypeName","pathNode":{"id":46179,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"26341:12:69"},"referencedDeclaration":50190,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46185,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46182,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"26365:19:69"},"typeName":{"id":46184,"nodeType":"UserDefinedTypeName","pathNode":{"id":46183,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"26389:16:69"},"referencedDeclaration":50123,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46220,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46219,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46219,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46194,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46209,"initialValue":{"arguments":[{"expression":{"expression":{"id":46199,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46202,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46205,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46196,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46188,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46644,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46210,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46211,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50109,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46218,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46217,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46214,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46216,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46188,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46220,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46187,"nodeType":"UserDefinedTypeName","pathNode":{"id":46186,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26433:23:69"},"referencedDeclaration":50197,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46191,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46220,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46190,"nodeType":"UserDefinedTypeName","pathNode":{"id":46189,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26471:20:69"},"referencedDeclaration":50110,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46193,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46261,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46260,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46231],"declarations":[{"constant":false,"id":46231,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46260,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46230,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46234,"initialValue":{"expression":{"id":46232,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46235,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46240,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46239,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46229,"id":46238,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46258,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46248,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46223,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46249,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46251,"indexExpression":{"id":46250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46247,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46253,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46257,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46256,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46259,"initializationExpression":{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46259,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46241,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46243,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46223,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46261,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46222,"nodeType":"UserDefinedTypeName","pathNode":{"id":46221,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26928:23:69"},"referencedDeclaration":50197,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46227,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46261,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46225,"nodeType":"UserDefinedTypeName","pathNode":{"id":46224,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26974:20:69"},"referencedDeclaration":50110,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46226,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46229,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46439,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46438,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46270,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46271,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46279,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46280,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46286,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46285,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46269,"id":46284,"nodeType":"Return","src":"27697:7:69"}]}},"id":46287,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46278,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46275,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46277,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46289],"declarations":[{"constant":false,"id":46289,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46438,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46288,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46293,"initialValue":{"expression":{"expression":{"id":46290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46426,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46303],"declarations":[{"constant":false,"id":46303,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46426,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46302,"nodeType":"UserDefinedTypeName","pathNode":{"id":46301,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"27852:13:69"},"referencedDeclaration":50104,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46309,"initialValue":{"arguments":[{"id":46307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46304,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46311],"declarations":[{"constant":false,"id":46311,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46426,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46310,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46314,"initialValue":{"expression":{"id":46312,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46315,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46317,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46333,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46411,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46375],"declarations":[{"constant":false,"id":46375,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46411,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46374,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46384,"initialValue":{"arguments":[{"expression":{"id":46378,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46380,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46385,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46387,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46409,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46405,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46406,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46408,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46410,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46399,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46395,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46398,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46412,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46373,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46339,46341],"declarations":[{"constant":false,"id":46339,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46373,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46338,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46341,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46373,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46340,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46352,"initialValue":{"arguments":[{"expression":{"id":46344,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46346,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46348,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46359,"indexExpression":{"id":46356,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46361,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46339,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46363,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46370,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46341,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46372,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46413,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46332,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46320,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46326,"indexExpression":{"id":46323,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46328,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46331,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46414,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46421,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46425,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46424,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46299,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46427,"initializationExpression":{"assignments":[46295],"declarations":[{"constant":false,"id":46295,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46427,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46294,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46297,"initialValue":{"id":46296,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46289,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46433,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46437,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46262,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46265,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46439,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46264,"nodeType":"UserDefinedTypeName","pathNode":{"id":46263,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"27402:23:69"},"referencedDeclaration":50197,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46267,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46439,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46266,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46269,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46177,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46440],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46441,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file +{"abi":[{"type":"event","name":"NewCollateralRelease","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"releaseBlock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212204bb61d1d755e5cb50400e6f2b209bd9a026a768b3553a1518d793d6215dd210b64736f6c63430008130033","sourceMap":"2586:1272:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212204bb61d1d755e5cb50400e6f2b209bd9a026a768b3553a1518d793d6215dd210b64736f6c63430008130033","sourceMap":"2586:1272:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"releaseBlock\",\"type\":\"uint256\"}],\"name\":\"NewCollateralRelease\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `StakingReleaseQueue`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibStakingReleaseQueue\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"releaseBlock","type":"uint256","indexed":false}],"type":"event","name":"NewCollateralRelease","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibStakingReleaseQueue"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46394,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50093],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44136],"LibMaxPQ":[48969],"LibMinPQ":[49588],"LibStaking":[46129],"LibStakingChangeLog":[46631],"LibStakingReleaseQueue":[44255],"LibSubnetActorStorage":[47245],"LibValidatorSet":[45246],"LibValidatorTracking":[46393],"MaxPQ":[48364],"MinPQ":[48982],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50150],"PermissionMode":[50118],"StakingChange":[50057],"StakingChangeLog":[50076],"StakingChangeRequest":[50063],"StakingOperation":[50049],"StakingRelease":[50083],"StakingReleaseQueue":[50103],"SubnetActorStorage":[47234],"Validator":[50164],"ValidatorSet":[50143],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":43968,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43970,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":43969,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43973,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":43971,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43972,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47234,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43976,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":48970,"symbolAliases":[{"foreign":{"id":43974,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48969,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43975,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48364,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43979,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":49589,"symbolAliases":[{"foreign":{"id":43977,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49588,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43978,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48982,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43981,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":46632,"symbolAliases":[{"foreign":{"id":43980,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46631,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43993,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":43982,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43983,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50103,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43984,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50076,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43985,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50057,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43986,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50063,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43987,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43988,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50083,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43989,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43990,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50093,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43991,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43992,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44001,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":43994,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43995,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43996,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43997,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43998,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43999,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44000,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44003,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44002,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44136,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44042,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44041,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44014],"declarations":[{"constant":false,"id":44014,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44041,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44013,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44017,"initialValue":{"expression":{"id":44015,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44019],"declarations":[{"constant":false,"id":44019,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44041,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44018,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44024,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44020,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44022,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44014,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44025,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44029,"indexExpression":{"id":44027,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44030,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44010,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"id":44032,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44033,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44036,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44014,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44040,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44004,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44007,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44042,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44006,"nodeType":"UserDefinedTypeName","pathNode":{"id":44005,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"1132:22:69"},"referencedDeclaration":50093,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44010,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44042,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44009,"nodeType":"UserDefinedTypeName","pathNode":{"id":44008,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"1169:14:69"},"referencedDeclaration":50083,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44012,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44136,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44135,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44134,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44054],"declarations":[{"constant":false,"id":44054,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44134,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44053,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44057,"initialValue":{"expression":{"id":44055,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44058,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44066,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44065,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44062,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44064,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44068],"declarations":[{"constant":false,"id":44068,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44134,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44067,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"expression":{"id":44069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44073],"declarations":[{"constant":false,"id":44073,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44134,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44072,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44075,"initialValue":{"id":44074,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44077],"declarations":[{"constant":false,"id":44077,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44134,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44076,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44078,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44116,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44084],"declarations":[{"constant":false,"id":44084,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44116,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44083,"nodeType":"UserDefinedTypeName","pathNode":{"id":44082,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"1987:14:69"},"referencedDeclaration":50083,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44089,"initialValue":{"baseExpression":{"expression":{"id":44085,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44088,"indexExpression":{"id":44087,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44090,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44084,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44092,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44097,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44096,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44095,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44098,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44099,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44084,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50082,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44102,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44103,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44106,"indexExpression":{"id":44105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44108,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44115,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44111,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44112,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44114,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44079,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44080,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44117,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44118,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44121,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44123,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44124,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44127,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44129,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44130,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44131,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44052,"id":44133,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44043,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44046,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44135,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44045,"nodeType":"UserDefinedTypeName","pathNode":{"id":44044,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"1654:22:69"},"referencedDeclaration":50093,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44135,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44048,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44135,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44050,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44136,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44136],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46394,"usedErrors":[]},{"id":44255,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44140,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44138,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44139,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44144,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44141,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44136,"src":"2668:25:69"},"typeName":{"id":44143,"nodeType":"UserDefinedTypeName","pathNode":{"id":44142,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"2698:22:69"},"referencedDeclaration":50093,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44152,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44146,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44152,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44145,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44148,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44152,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44147,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44150,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44152,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44149,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44167,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44166,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44155,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50096,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44163,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44157,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44165,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44155,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44167,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44154,"nodeType":"UserDefinedTypeName","pathNode":{"id":44153,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"2842:19:69"},"referencedDeclaration":50103,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44157,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44167,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44156,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44159,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44210,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44209,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44179],"declarations":[{"constant":false,"id":44179,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44209,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44178,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44185,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44180,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44182,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44171,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50096,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44188],"declarations":[{"constant":false,"id":44188,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44209,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44187,"nodeType":"UserDefinedTypeName","pathNode":{"id":44186,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"3192:14:69"},"referencedDeclaration":50083,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44193,"initialValue":{"arguments":[{"id":44190,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44191,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44175,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44189,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50083,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50083_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44200,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44188,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44194,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44171,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44198,"indexExpression":{"id":44196,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44173,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44042,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$_t_struct$_StakingRelease_$50083_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44202,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44204,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44173,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44205,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44175,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44206,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44203,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44152,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44208,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44168,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44171,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44210,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44170,"nodeType":"UserDefinedTypeName","pathNode":{"id":44169,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"3039:19:69"},"referencedDeclaration":50103,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44173,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44210,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44172,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44175,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44210,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44174,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44177,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44254,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44253,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44222,44224],"declarations":[{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44253,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44224,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44253,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44223,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44214,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44228,"indexExpression":{"id":44227,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44135,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44232,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44224,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44242,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44241,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44214,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44238,"indexExpression":{"id":44237,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44240,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44248,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44245,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44243,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44250,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44251,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44220,"id":44252,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44211,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44214,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44254,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44213,"nodeType":"UserDefinedTypeName","pathNode":{"id":44212,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"3531:19:69"},"referencedDeclaration":50103,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44216,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44254,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44215,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44254,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44218,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44137,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44255],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46394,"usedErrors":[]},{"id":45246,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44260,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44257,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49588,"src":"3936:8:69"},"typeName":{"id":44259,"nodeType":"UserDefinedTypeName","pathNode":{"id":44258,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"3949:5:69"},"referencedDeclaration":48982,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}}},{"id":44264,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44261,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48969,"src":"3966:8:69"},"typeName":{"id":44263,"nodeType":"UserDefinedTypeName","pathNode":{"id":44262,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"3979:5:69"},"referencedDeclaration":48364,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44270,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44270,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44265,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44268,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44270,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44267,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44276,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44272,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44276,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44271,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44274,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44276,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44273,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44282,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44278,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44282,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44277,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44280,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44282,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44279,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44288,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44284,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44288,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44283,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44286,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44288,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44285,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44294,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44290,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44294,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44289,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44292,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44294,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44291,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44298,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44296,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44298,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44295,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44302,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44300,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44302,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44299,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44338,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44337,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"id":44317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44313,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44315,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":44316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44335,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44327,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44311,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44328,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44331,"indexExpression":{"id":44330,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44308,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44334,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44336,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44326,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44318,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44311,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44319,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44322,"indexExpression":{"id":44321,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44308,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44325,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44306,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44338,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44305,"nodeType":"UserDefinedTypeName","pathNode":{"id":44304,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"4552:12:69"},"referencedDeclaration":50143,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44308,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44338,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44307,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44311,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44338,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44310,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44353,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44352,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44347,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44348,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44342,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44351,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44339,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44342,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44353,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44341,"nodeType":"UserDefinedTypeName","pathNode":{"id":44340,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5013:12:69"},"referencedDeclaration":50143,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44345,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44353,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44344,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44370,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44369,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44362,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44360,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44363,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44357,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44368,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44354,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44357,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44370,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44356,"nodeType":"UserDefinedTypeName","pathNode":{"id":44355,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5240:12:69"},"referencedDeclaration":50143,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44360,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44370,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44359,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44390,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44389,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44381,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44379,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44382,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44374,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44385,"indexExpression":{"id":44384,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44376,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44388,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44371,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44374,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44390,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44373,"nodeType":"UserDefinedTypeName","pathNode":{"id":44372,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5482:12:69"},"referencedDeclaration":50143,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44376,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44390,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44375,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44379,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44390,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44378,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44442,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44441,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44400],"declarations":[{"constant":false,"id":44400,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44441,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44399,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44405,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44401,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44393,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44406,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44410,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44407,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44408,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44413,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44437,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44421,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44425,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44429,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44426,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44393,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49021,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44432,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44436,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44435,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44418,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44419,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44438,"initializationExpression":{"assignments":[44415],"declarations":[{"constant":false,"id":44415,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44438,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44414,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44417,"initialValue":{"hexValue":"31","id":44416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44439,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44398,"id":44440,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44393,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44442,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44392,"nodeType":"UserDefinedTypeName","pathNode":{"id":44391,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5708:12:69"},"referencedDeclaration":50143,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44397,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44442,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44395,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44396,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44487,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44486,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44452],"declarations":[{"constant":false,"id":44452,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44486,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44451,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44457,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44453,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44484,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44466],"declarations":[{"constant":false,"id":44466,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44484,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44465,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44472,"initialValue":{"arguments":[{"id":44470,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44467,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49021,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44473,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44449,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44475,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44476,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44466,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44474,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44338,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44479,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44462,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44463,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44452,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44459],"declarations":[{"constant":false,"id":44459,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44458,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44461,"initialValue":{"hexValue":"31","id":44460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44443,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44446,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44487,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44445,"nodeType":"UserDefinedTypeName","pathNode":{"id":44444,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"6212:12:69"},"referencedDeclaration":50143,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44449,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44487,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44448,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44538,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44537,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44497],"declarations":[{"constant":false,"id":44497,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44537,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44496,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44502,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44498,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44529,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44511],"declarations":[{"constant":false,"id":44511,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44529,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44510,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44517,"initialValue":{"arguments":[{"id":44515,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44512,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44518,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44494,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44520,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44521,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44511,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44519,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44524,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44528,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44527,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44507,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44508,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44497,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44530,"initializationExpression":{"assignments":[44504],"declarations":[{"constant":false,"id":44504,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44530,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44503,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44506,"initialValue":{"hexValue":"31","id":44505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44531,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44494,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44533,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44532,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44536,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44488,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44491,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44538,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44490,"nodeType":"UserDefinedTypeName","pathNode":{"id":44489,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"6718:12:69"},"referencedDeclaration":50143,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44494,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44538,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44493,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44608,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44607,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44552],"declarations":[{"constant":false,"id":44552,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44607,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44551,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44555,"initialValue":{"expression":{"id":44553,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44560],"declarations":[{"constant":false,"id":44560,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44607,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44558,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44559,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44566,"initialValue":{"arguments":[{"id":44564,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44552,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44561,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44562,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44603,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44574,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44542,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44575,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44577,"indexExpression":{"id":44576,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44573,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44625,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44587,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44586,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44581,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44583,"indexExpression":{"id":44582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44580,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44585,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44588,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44560,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44590,"indexExpression":{"id":44589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44592,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44542,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44593,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44595,"indexExpression":{"id":44594,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44591,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44338,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44598,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44602,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44601,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44570,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44571,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44552,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44604,"initializationExpression":{"assignments":[44568],"declarations":[{"constant":false,"id":44568,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44604,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44567,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44569,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44605,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44560,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44550,"id":44606,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44539,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44542,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44608,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44541,"nodeType":"UserDefinedTypeName","pathNode":{"id":44540,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"7383:12:69"},"referencedDeclaration":50143,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44545,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44608,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44543,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44544,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44608,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44547,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44548,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44625,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44624,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44621,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44613,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44618,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44611,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44617,"id":44623,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44611,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44625,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44610,"nodeType":"UserDefinedTypeName","pathNode":{"id":44609,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"7984:12:69"},"referencedDeclaration":50143,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44613,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44625,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44612,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44625,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44615,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44646,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44645,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44636,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44629,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44640,"indexExpression":{"id":44638,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44631,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44642,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44633,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44644,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44626,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44629,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44646,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44628,"nodeType":"UserDefinedTypeName","pathNode":{"id":44627,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8186:12:69"},"referencedDeclaration":50143,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44631,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44646,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44630,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44633,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44646,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44632,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44635,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44667,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44666,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44657,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44650,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44661,"indexExpression":{"id":44659,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44652,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44663,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44654,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44665,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44647,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44650,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44667,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44649,"nodeType":"UserDefinedTypeName","pathNode":{"id":44648,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8671:12:69"},"referencedDeclaration":50143,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44652,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44667,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44651,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44654,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44667,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44653,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44656,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44708,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44707,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44679],"declarations":[{"constant":false,"id":44679,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44707,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44678,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44685,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44680,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44671,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44683,"indexExpression":{"id":44682,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44686,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44693,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44692,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44689,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44691,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44694,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44695,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44697,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44698,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44671,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44702,"indexExpression":{"id":44700,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44704,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44706,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44668,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44671,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44708,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44670,"nodeType":"UserDefinedTypeName","pathNode":{"id":44669,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8919:12:69"},"referencedDeclaration":50143,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44673,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44708,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44672,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44675,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44708,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44674,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44677,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44761,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44760,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44720],"declarations":[{"constant":false,"id":44720,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44760,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44719,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44726,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44721,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44724,"indexExpression":{"id":44723,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44731,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44733,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44735,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44736,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44737,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44741,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44742,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44757,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44752,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44753,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44754,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44751,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45245,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44756,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44758,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44750,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44745,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44746,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44747,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44744,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45034,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44749,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44759,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44740,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44718,"id":44739,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44709,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44712,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44761,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44711,"nodeType":"UserDefinedTypeName","pathNode":{"id":44710,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"9361:12:69"},"referencedDeclaration":50143,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44714,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44761,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44713,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44716,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44761,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44715,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44718,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44803,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44802,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44772],"declarations":[{"constant":false,"id":44772,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44802,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44771,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44780,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44773,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44776,"indexExpression":{"id":44775,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44778,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44768,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44781,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44785,"indexExpression":{"id":44783,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44787,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44772,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44789,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44790,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44793,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44768,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44795,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44797,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44798,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44799,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44772,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44796,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45034,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44801,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44764,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44803,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44763,"nodeType":"UserDefinedTypeName","pathNode":{"id":44762,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"9900:12:69"},"referencedDeclaration":50143,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44766,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44803,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44765,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44768,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44803,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44767,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44770,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44869,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44868,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44814],"declarations":[{"constant":false,"id":44814,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44868,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44813,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44822,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44815,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44818,"indexExpression":{"id":44817,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44820,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44810,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44824],"declarations":[{"constant":false,"id":44824,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44868,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44823,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44830,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44825,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44828,"indexExpression":{"id":44827,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44831,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44834,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44824,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44854,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44845,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44849,"indexExpression":{"id":44847,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44851,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44853,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44855,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44844,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44838,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44841,"indexExpression":{"id":44840,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44843,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44857,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44858,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44859,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44856,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45245,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44861,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44865,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44810,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44867,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44806,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44869,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44805,"nodeType":"UserDefinedTypeName","pathNode":{"id":44804,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"10311:12:69"},"referencedDeclaration":50143,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44808,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44869,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44807,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44810,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44869,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44809,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44812,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45034,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45033,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44883,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44880,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44901,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44900,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44890,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44891,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49295,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44893,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44895,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44896,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44894,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44270,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44898,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44879,"id":44899,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44903],"declarations":[{"constant":false,"id":44903,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45033,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44902,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44906,"initialValue":{"expression":{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50125,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44908],"declarations":[{"constant":false,"id":44908,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45033,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44907,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44913,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44914,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44903,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44915,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44908,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44933,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44932,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44922,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44923,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44917,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44925,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44927,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44928,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44926,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44282,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44930,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44879,"id":44931,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44935,44937],"declarations":[{"constant":false,"id":44935,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45033,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44934,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44937,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45033,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44936,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44943,"initialValue":{"arguments":[{"id":44941,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44938,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49371,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44944,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44937,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44945,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44996,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":44995,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44952,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44947,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49168,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44954,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":44958,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44955,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44970,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":44969,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":44965,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44966,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44960,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48642,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44968,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":44976,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44977,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44971,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44979,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44986,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44935,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44980,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44988,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":44990,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44935,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44991,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44989,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44294,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44993,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44879,"id":44994,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45000,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44997,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45018,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45017,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45008,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48677,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45010,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45012,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45013,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45011,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44276,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44879,"id":45016,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45024,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45025,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45019,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45027,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45029,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45030,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45028,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44288,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45032,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44870,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44873,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45034,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44872,"nodeType":"UserDefinedTypeName","pathNode":{"id":44871,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"11035:12:69"},"referencedDeclaration":50143,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44875,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45034,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44874,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44877,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45034,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44876,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44879,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45245,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45244,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45045,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45085,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45084,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45050,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45068,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45067,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45058,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45059,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45053,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48642,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45061,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45063,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45062,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44302,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45065,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45044,"id":45066,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45074,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45075,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48712,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45077,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45080,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45078,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44276,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45082,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45044,"id":45083,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45089,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45086,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45096,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45095,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45092,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45094,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45155,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45154,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49260,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44298,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45113,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45152,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45151,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45120,45122],"declarations":[{"constant":false,"id":45120,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45151,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45119,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45122,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45151,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45121,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45128,"initialValue":{"arguments":[{"id":45126,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45123,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48753,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45134,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45129,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48550,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45136,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45142,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45143,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45120,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45137,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45145,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45147,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45120,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45148,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45122,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45146,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44282,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45150,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45044,"id":45153,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45161,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45162,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45156,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49330,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45164,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45173,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45172,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45044,"id":45171,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45175,45177],"declarations":[{"constant":false,"id":45175,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45244,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45174,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45177,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45244,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45176,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45183,"initialValue":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45178,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49371,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45185,45187],"declarations":[{"constant":false,"id":45185,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45244,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45184,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45187,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45244,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45186,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45193,"initialValue":{"arguments":[{"id":45191,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45188,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48753,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45194,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45195,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45187,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45238,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45237,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45202,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45197,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49168,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45204,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48550,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45212,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45218,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45219,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45213,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45221,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45227,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45228,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45175,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45222,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45230,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45232,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45175,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45233,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45231,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44294,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45235,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45044,"id":45236,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45240,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45241,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45239,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44270,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45243,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45035,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45038,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45245,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45037,"nodeType":"UserDefinedTypeName","pathNode":{"id":45036,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"13345:12:69"},"referencedDeclaration":50143,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45040,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45245,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45039,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45042,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45245,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45041,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45044,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44256,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45246],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46394,"usedErrors":[]},{"id":46129,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45250,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45247,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44255,"src":"15369:22:69"},"typeName":{"id":45249,"nodeType":"UserDefinedTypeName","pathNode":{"id":45248,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"15396:19:69"},"referencedDeclaration":50103,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45254,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45251,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46631,"src":"15427:19:69"},"typeName":{"id":45253,"nodeType":"UserDefinedTypeName","pathNode":{"id":45252,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"15451:16:69"},"referencedDeclaration":50076,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45258,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45255,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"15479:15:69"},"typeName":{"id":45257,"nodeType":"UserDefinedTypeName","pathNode":{"id":45256,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"15499:12:69"},"referencedDeclaration":50143,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45262,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45259,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48969,"src":"15523:8:69"},"typeName":{"id":45261,"nodeType":"UserDefinedTypeName","pathNode":{"id":45260,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"15536:5:69"},"referencedDeclaration":48364,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45266,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45263,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49588,"src":"15553:8:69"},"typeName":{"id":45265,"nodeType":"UserDefinedTypeName","pathNode":{"id":45264,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"15566:5:69"},"referencedDeclaration":48982,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}}},{"id":45269,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45267,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45268,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45272,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46129,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45270,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45276,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45274,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45276,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45273,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45282,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45278,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45282,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45277,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45280,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45282,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45279,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45303,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45302,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45291],"declarations":[{"constant":false,"id":45291,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45302,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45290,"nodeType":"UserDefinedTypeName","pathNode":{"id":45289,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"15944:18:69"},"referencedDeclaration":47234,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45295,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45292,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45299,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45284,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45296,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45291,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45288,"id":45301,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45284,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45303,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45283,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45287,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45303,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45286,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45326,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45325,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45313],"declarations":[{"constant":false,"id":45313,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45325,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"16221:18:69"},"referencedDeclaration":47234,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45317,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45314,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45322,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45306,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45318,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45310,"id":45324,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45304,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45306,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45326,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45305,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45326,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45308,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45349,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45348,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45336],"declarations":[{"constant":false,"id":45336,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45348,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45335,"nodeType":"UserDefinedTypeName","pathNode":{"id":45334,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"16516:18:69"},"referencedDeclaration":47234,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45340,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45337,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45345,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45341,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45336,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45333,"id":45347,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45327,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45329,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45349,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45328,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45332,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45349,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45331,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45362,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45361,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45358,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45352,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45357,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45387,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45356,"id":45360,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45350,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45352,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45362,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45351,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45362,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45354,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45387,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45386,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45372],"declarations":[{"constant":false,"id":45372,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45386,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45371,"nodeType":"UserDefinedTypeName","pathNode":{"id":45370,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17294:18:69"},"referencedDeclaration":47234,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45376,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45373,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45377,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45372,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45381,"indexExpression":{"id":45380,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45365,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45369,"id":45385,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45363,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45365,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45387,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45364,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45387,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45367,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45405,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45404,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45394],"declarations":[{"constant":false,"id":45394,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45404,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45393,"nodeType":"UserDefinedTypeName","pathNode":{"id":45392,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17577:18:69"},"referencedDeclaration":47234,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45398,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45395,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45399,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45394,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44370,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45391,"id":45403,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45388,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45405,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45389,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45431,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45430,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45413],"declarations":[{"constant":false,"id":45413,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45430,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45412,"nodeType":"UserDefinedTypeName","pathNode":{"id":45411,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17860:18:69"},"referencedDeclaration":47234,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45417,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45414,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45418,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45413,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45423,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45413,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45410,"id":45429,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45406,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45407,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45431,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45408,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45449,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45448,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45438],"declarations":[{"constant":false,"id":45438,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45448,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45437,"nodeType":"UserDefinedTypeName","pathNode":{"id":45436,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18122:18:69"},"referencedDeclaration":47234,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45442,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45439,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45443,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45438,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44353,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45435,"id":45447,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45432,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45449,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45433,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45467,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45466,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45456],"declarations":[{"constant":false,"id":45456,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45466,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45455,"nodeType":"UserDefinedTypeName","pathNode":{"id":45454,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18333:18:69"},"referencedDeclaration":47234,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45460,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45457,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45461,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45456,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44353,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45453,"id":45465,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45450,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45467,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45451,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45490,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45489,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45477],"declarations":[{"constant":false,"id":45477,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45489,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45476,"nodeType":"UserDefinedTypeName","pathNode":{"id":45475,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18636:18:69"},"referencedDeclaration":47234,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45481,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45478,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45482,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45477,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45486,"indexExpression":{"id":45485,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45470,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45474,"id":45488,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45468,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45470,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45490,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45469,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45490,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45472,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45515,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45514,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45500],"declarations":[{"constant":false,"id":45500,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45514,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45499,"nodeType":"UserDefinedTypeName","pathNode":{"id":45498,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19028:18:69"},"referencedDeclaration":47234,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45501,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45493,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45511,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45495,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45500,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45513,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45491,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45493,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45515,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45492,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45495,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45515,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45494,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45540,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45539,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45525],"declarations":[{"constant":false,"id":45525,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45539,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45524,"nodeType":"UserDefinedTypeName","pathNode":{"id":45523,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19346:18:69"},"referencedDeclaration":47234,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45529,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45526,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45535,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45518,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45536,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45520,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45530,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45525,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44646,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45538,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45516,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45518,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45540,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45517,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45520,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45540,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45519,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45522,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45649,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45648,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45550],"declarations":[{"constant":false,"id":45550,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45648,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45549,"nodeType":"UserDefinedTypeName","pathNode":{"id":45548,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19655:18:69"},"referencedDeclaration":47234,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45554,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45551,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45560,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45561,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45545,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45555,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44667,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45563,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45569,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45545,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45564,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45572,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45573,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45647,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45646,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45577],"declarations":[{"constant":false,"id":45577,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45646,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45576,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45578,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45580],"declarations":[{"constant":false,"id":45580,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45646,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45579,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45584,"initialValue":{"expression":{"expression":{"id":45581,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45609,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45591,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45594,"indexExpression":{"id":45593,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage","typeString":"struct Validator storage ref"}},"id":45595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50161,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45596,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45604,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45603,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45598,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45601,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45602,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45608,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45607,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45588,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45589,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45580,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45610,"initializationExpression":{"assignments":[45586],"declarations":[{"constant":false,"id":45586,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45610,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45585,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45587,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45611,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45645,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45644,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45614],"declarations":[{"constant":false,"id":45614,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45644,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45613,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45621,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45615,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45619,"indexExpression":{"id":45618,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45644,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45623,"nodeType":"UserDefinedTypeName","pathNode":{"id":45622,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"20624:9:69"},"referencedDeclaration":50164,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45635,"initialValue":{"arguments":[{"id":45626,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45627,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45614,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45632,"indexExpression":{"id":45631,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45625,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50164_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45641,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45636,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50164_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45643,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45541,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45543,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45649,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45542,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45545,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45649,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45544,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45547,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45691,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45690,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45659],"declarations":[{"constant":false,"id":45659,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45690,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45658,"nodeType":"UserDefinedTypeName","pathNode":{"id":45657,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"21181:18:69"},"referencedDeclaration":47234,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45663,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45660,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45669,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45670,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45664,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45659,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44708,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45672,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45679,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45673,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45659,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45681,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45684,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45682,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45689,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45650,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45652,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45691,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45651,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45654,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45691,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45653,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45656,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45719,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45718,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45703],"declarations":[{"constant":false,"id":45703,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45718,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45702,"nodeType":"UserDefinedTypeName","pathNode":{"id":45701,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"21838:18:69"},"referencedDeclaration":47234,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45707,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45704,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45713,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45694,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45714,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45696,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45715,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45698,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45708,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45703,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46481,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45717,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45692,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45694,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45719,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45693,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45696,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45719,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45695,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45698,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45719,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45697,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45700,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45744,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45743,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45729],"declarations":[{"constant":false,"id":45729,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45743,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45728,"nodeType":"UserDefinedTypeName","pathNode":{"id":45727,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22154:18:69"},"referencedDeclaration":47234,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45730,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45739,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45722,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45740,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45724,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45734,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45729,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46441,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45742,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45720,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45722,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45744,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45721,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45724,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45744,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45723,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45726,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45778,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45777,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45754],"declarations":[{"constant":false,"id":45754,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45777,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45753,"nodeType":"UserDefinedTypeName","pathNode":{"id":45752,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22400:18:69"},"referencedDeclaration":47234,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45758,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45755,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45764,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45747,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45765,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45749,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45759,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46555,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45767,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45773,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45747,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45774,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45749,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45768,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44667,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45776,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45745,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45747,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45778,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45746,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45749,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45778,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45748,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45751,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45812,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45811,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45788],"declarations":[{"constant":false,"id":45788,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45811,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45787,"nodeType":"UserDefinedTypeName","pathNode":{"id":45786,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22703:18:69"},"referencedDeclaration":47234,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45792,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45789,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45798,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45781,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45799,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45783,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45793,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45788,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46518,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45801,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45807,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45781,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45808,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45783,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45802,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45788,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44708,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45810,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45779,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45781,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45812,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45780,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45783,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45812,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45782,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45785,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45839,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45838,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45820],"declarations":[{"constant":false,"id":45820,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45838,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45819,"nodeType":"UserDefinedTypeName","pathNode":{"id":45818,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23062:18:69"},"referencedDeclaration":47234,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45824,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45821,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45826],"declarations":[{"constant":false,"id":45826,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45838,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45825,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45832,"initialValue":{"arguments":[{"id":45830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45815,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45827,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45820,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47213,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44254,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45834,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45815,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45835,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45826,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45833,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45282,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45837,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45813,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45815,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45839,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45814,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45817,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45895,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45894,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45847],"declarations":[{"constant":false,"id":45847,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45894,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45846,"nodeType":"UserDefinedTypeName","pathNode":{"id":45845,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23424:18:69"},"referencedDeclaration":47234,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45851,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45848,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45853],"declarations":[{"constant":false,"id":45853,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45894,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45852,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45859,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45854,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45858,"indexExpression":{"id":45857,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45860,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45867,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45866,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45863,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45865,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45868,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45874,"indexExpression":{"id":45871,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45877,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45883,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45879,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45878,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45885,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45891,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45888,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45886,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45893,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45840,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45842,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45895,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45841,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45844,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45918,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45917,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45904],"declarations":[{"constant":false,"id":45904,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45917,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45903,"nodeType":"UserDefinedTypeName","pathNode":{"id":45902,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23885:18:69"},"referencedDeclaration":47234,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45908,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45905,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45909,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45912,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45915,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45901,"id":45916,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45896,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45918,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45897,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45918,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45899,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46128,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46127,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45926],"declarations":[{"constant":false,"id":45926,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46127,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45925,"nodeType":"UserDefinedTypeName","pathNode":{"id":45924,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"24247:18:69"},"referencedDeclaration":47234,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45930,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45927,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45933],"declarations":[{"constant":false,"id":45933,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46127,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45932,"nodeType":"UserDefinedTypeName","pathNode":{"id":45931,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"24322:16:69"},"referencedDeclaration":50076,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45936,"initialValue":{"expression":{"id":45934,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45937,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45938,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45945,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45946,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45951,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45950,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45923,"id":45949,"nodeType":"Return","src":"24585:7:69"}]}},"id":45952,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45944,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45941,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45943,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[45954],"declarations":[{"constant":false,"id":45954,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46127,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45953,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45957,"initialValue":{"expression":{"id":45955,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46113,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[45967],"declarations":[{"constant":false,"id":45967,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46113,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45966,"nodeType":"UserDefinedTypeName","pathNode":{"id":45965,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"24736:13:69"},"referencedDeclaration":50057,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45972,"initialValue":{"arguments":[{"id":45970,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45968,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46615,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50057_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[45974],"declarations":[{"constant":false,"id":45974,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46113,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45973,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45977,"initialValue":{"expression":{"id":45975,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":45982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45978,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45980,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":45981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45996,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45998,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":45999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46100,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46038],"declarations":[{"constant":false,"id":46038,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46100,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46037,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46047,"initialValue":{"arguments":[{"expression":{"id":46041,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46043,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46039,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46048,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46050,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46098,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46085,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46086,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46080,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46088,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46090,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46089,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46094,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46097,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46099,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46079,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46058,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46053,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46061,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46067,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46068,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46062,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47213,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44210,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46070,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46076,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46072,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46071,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46078,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46101,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46036,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46002,46004],"declarations":[{"constant":false,"id":46002,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46036,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46001,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46004,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46036,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46003,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46015,"initialValue":{"arguments":[{"expression":{"id":46007,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46009,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46011,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46013,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46005,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46016,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46022,"indexExpression":{"id":46019,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46024,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46002,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46026,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46032,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46033,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46004,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46027,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46035,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46102,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":45995,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":45993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45983,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45989,"indexExpression":{"id":45986,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45991,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45994,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46106,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46103,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46630,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46112,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46111,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45962,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45963,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46114,"initializationExpression":{"assignments":[45959],"declarations":[{"constant":false,"id":45959,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46114,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45958,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45961,"initialValue":{"id":45960,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45954,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46115,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46118,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46122,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46124,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46123,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45276,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46126,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45919,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45921,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46128,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45920,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45923,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46129],"name":"LibStaking","nameLocation":"15346:10:69","scope":46394,"usedErrors":[32461,32469,37450]},{"id":46393,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46134,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46131,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"26321:15:69"},"typeName":{"id":46133,"nodeType":"UserDefinedTypeName","pathNode":{"id":46132,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"26341:12:69"},"referencedDeclaration":50143,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46138,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46135,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46631,"src":"26365:19:69"},"typeName":{"id":46137,"nodeType":"UserDefinedTypeName","pathNode":{"id":46136,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"26389:16:69"},"referencedDeclaration":50076,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46173,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46172,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46148],"declarations":[{"constant":false,"id":46148,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46172,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46147,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46162,"initialValue":{"arguments":[{"expression":{"expression":{"id":46152,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46155,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46158,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46149,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46141,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46597,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50049_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46163,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46148,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46164,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50062,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46171,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46170,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46167,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46169,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46141,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46173,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46140,"nodeType":"UserDefinedTypeName","pathNode":{"id":46139,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"26433:23:69"},"referencedDeclaration":50150,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46144,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46173,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46143,"nodeType":"UserDefinedTypeName","pathNode":{"id":46142,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50063,"src":"26471:20:69"},"referencedDeclaration":50063,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46146,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46214,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46213,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46184],"declarations":[{"constant":false,"id":46184,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46213,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46183,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46187,"initialValue":{"expression":{"id":46185,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46180,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46188,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46184,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46193,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46192,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46182,"id":46191,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46211,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46201,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46202,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46180,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46204,"indexExpression":{"id":46203,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46200,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46173,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50150_storage_ptr_$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46206,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46210,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46207,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46209,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46197,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46198,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46184,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46212,"initializationExpression":{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46212,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46194,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46196,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46176,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46214,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46175,"nodeType":"UserDefinedTypeName","pathNode":{"id":46174,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"26928:23:69"},"referencedDeclaration":50150,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46180,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46214,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46178,"nodeType":"UserDefinedTypeName","pathNode":{"id":46177,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50063,"src":"26974:20:69"},"referencedDeclaration":50063,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46179,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46182,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46392,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46391,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46223,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46224,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46232,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46239,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46238,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46222,"id":46237,"nodeType":"Return","src":"27697:7:69"}]}},"id":46240,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46231,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46228,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46230,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46391,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46241,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46246,"initialValue":{"expression":{"expression":{"id":46243,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46379,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46256],"declarations":[{"constant":false,"id":46256,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46379,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46255,"nodeType":"UserDefinedTypeName","pathNode":{"id":46254,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"27852:13:69"},"referencedDeclaration":50057,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46262,"initialValue":{"arguments":[{"id":46260,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46615,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50057_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46264],"declarations":[{"constant":false,"id":46264,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46379,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46263,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46267,"initialValue":{"expression":{"id":46265,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46268,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46270,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46286,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46288,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46364,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46328],"declarations":[{"constant":false,"id":46328,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46364,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46327,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46337,"initialValue":{"arguments":[{"expression":{"id":46331,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46333,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46335,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46329,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46338,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46340,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46362,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46358,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46359,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46328,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46361,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46363,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46352,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46348,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46349,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46328,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46343,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46351,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46365,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46326,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46292,46294],"declarations":[{"constant":false,"id":46292,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46326,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46291,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46294,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46326,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46293,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46305,"initialValue":{"arguments":[{"expression":{"id":46297,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46299,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46301,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46303,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46295,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46306,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46312,"indexExpression":{"id":46309,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46314,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46292,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46316,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46322,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46323,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46294,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46317,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46325,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46366,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46285,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46273,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46279,"indexExpression":{"id":46276,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46281,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46284,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46630,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46374,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46378,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46375,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46377,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46251,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46252,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46380,"initializationExpression":{"assignments":[46248],"declarations":[{"constant":false,"id":46248,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46380,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46247,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46250,"initialValue":{"id":46249,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46386,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46390,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46215,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46218,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46392,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46217,"nodeType":"UserDefinedTypeName","pathNode":{"id":46216,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"27402:23:69"},"referencedDeclaration":50150,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46220,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46392,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46219,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46222,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46130,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46393],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46394,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file diff --git a/.out/LibStaking.sol/LibValidatorSet.json b/.out/LibStaking.sol/LibValidatorSet.json index 856ec51c7..89c0c2725 100644 --- a/.out/LibStaking.sol/LibValidatorSet.json +++ b/.out/LibStaking.sol/LibValidatorSet.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"ActiveValidatorCollateralUpdated","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"newPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActiveValidatorLeft","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ActiveValidatorReplaced","inputs":[{"name":"oldValidator","type":"address","indexed":false,"internalType":"address"},{"name":"newValidator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NewActiveValidator","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"power","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NewWaitingValidator","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"power","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WaitingValidatorCollateralUpdated","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"newPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WaitingValidatorLeft","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122045f1bff0b9d22c2c30c7fcb6bbe5102e820c36c4824b43fc0dcf2bc2b3100ab264736f6c63430008130033","sourceMap":"3900:11436:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122045f1bff0b9d22c2c30c7fcb6bbe5102e820c36c4824b43fc0dcf2bc2b3100ab264736f6c63430008130033","sourceMap":"3900:11436:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPower\",\"type\":\"uint256\"}],\"name\":\"ActiveValidatorCollateralUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"ActiveValidatorLeft\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldValidator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newValidator\",\"type\":\"address\"}],\"name\":\"ActiveValidatorReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"name\":\"NewActiveValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"name\":\"NewWaitingValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPower\",\"type\":\"uint256\"}],\"name\":\"WaitingValidatorCollateralUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"WaitingValidatorLeft\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `ValidatorSet`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibValidatorSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"newPower","type":"uint256","indexed":false}],"type":"event","name":"ActiveValidatorCollateralUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false}],"type":"event","name":"ActiveValidatorLeft","anonymous":false},{"inputs":[{"internalType":"address","name":"oldValidator","type":"address","indexed":false},{"internalType":"address","name":"newValidator","type":"address","indexed":false}],"type":"event","name":"ActiveValidatorReplaced","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"power","type":"uint256","indexed":false}],"type":"event","name":"NewActiveValidator","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"power","type":"uint256","indexed":false}],"type":"event","name":"NewWaitingValidator","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"newPower","type":"uint256","indexed":false}],"type":"event","name":"WaitingValidatorCollateralUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false}],"type":"event","name":"WaitingValidatorLeft","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibValidatorSet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46441,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50140],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44183],"LibMaxPQ":[49016],"LibMinPQ":[49635],"LibStaking":[46176],"LibStakingChangeLog":[46678],"LibStakingReleaseQueue":[44302],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"MaxPQ":[48411],"MinPQ":[49029],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"SubnetActorStorage":[47281],"Validator":[50211],"ValidatorSet":[50190],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":44015,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44017,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":44016,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44020,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":44018,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44019,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44023,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":44021,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49016,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44022,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44026,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":44024,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49635,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44025,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44028,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":46679,"symbolAliases":[{"foreign":{"id":44027,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46678,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44040,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":44029,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44030,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44031,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44032,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44033,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44034,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44035,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44036,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44037,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50140,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44038,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44039,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44048,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":44041,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44042,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44043,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44044,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44045,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44046,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44047,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44050,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44049,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44183,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44089,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44088,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44061],"declarations":[{"constant":false,"id":44061,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44088,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44060,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44064,"initialValue":{"expression":{"id":44062,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44066],"declarations":[{"constant":false,"id":44066,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44088,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44065,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44067,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44069,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44072,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44076,"indexExpression":{"id":44074,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44066,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44077,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44057,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"id":44079,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44080,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44083,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44087,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44051,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44054,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44089,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44053,"nodeType":"UserDefinedTypeName","pathNode":{"id":44052,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1132:22:69"},"referencedDeclaration":50140,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44057,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44089,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44056,"nodeType":"UserDefinedTypeName","pathNode":{"id":44055,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1169:14:69"},"referencedDeclaration":50130,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44059,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44182,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44181,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44101],"declarations":[{"constant":false,"id":44101,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44100,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44104,"initialValue":{"expression":{"id":44102,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44113,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44112,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44109,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44111,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44115],"declarations":[{"constant":false,"id":44115,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44181,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44114,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44118,"initialValue":{"expression":{"id":44116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44181,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44119,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44122,"initialValue":{"id":44121,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44124],"declarations":[{"constant":false,"id":44124,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44125,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44163,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44131],"declarations":[{"constant":false,"id":44131,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44163,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44130,"nodeType":"UserDefinedTypeName","pathNode":{"id":44129,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1987:14:69"},"referencedDeclaration":50130,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44136,"initialValue":{"baseExpression":{"expression":{"id":44132,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44135,"indexExpression":{"id":44134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44137,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50126,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44139,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44144,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44143,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44142,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44145,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44146,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50129,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44149,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44153,"indexExpression":{"id":44152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44155,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44162,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44158,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44159,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44161,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44127,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44164,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44170,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44174,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44176,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44178,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44099,"id":44180,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44090,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44093,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44182,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44092,"nodeType":"UserDefinedTypeName","pathNode":{"id":44091,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1654:22:69"},"referencedDeclaration":50140,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44183],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46441,"usedErrors":[]},{"id":44302,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44187,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44185,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44186,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44191,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44188,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44183,"src":"2668:25:69"},"typeName":{"id":44190,"nodeType":"UserDefinedTypeName","pathNode":{"id":44189,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2698:22:69"},"referencedDeclaration":50140,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44199,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44193,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44199,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44192,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44195,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44199,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44197,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44199,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44214,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44213,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44207,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44202,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44210,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44204,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44212,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44202,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44214,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44201,"nodeType":"UserDefinedTypeName","pathNode":{"id":44200,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2842:19:69"},"referencedDeclaration":50150,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44204,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44214,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44206,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44257,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44256,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44226],"declarations":[{"constant":false,"id":44226,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44256,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44232,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44227,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44235],"declarations":[{"constant":false,"id":44235,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44256,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44234,"nodeType":"UserDefinedTypeName","pathNode":{"id":44233,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"3192:14:69"},"referencedDeclaration":50130,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44240,"initialValue":{"arguments":[{"id":44237,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44236,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50130_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44247,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44235,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44245,"indexExpression":{"id":44243,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44089,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$_t_struct$_StakingRelease_$50130_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44249,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44251,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44253,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44250,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44199,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44255,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44215,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44218,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44257,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44217,"nodeType":"UserDefinedTypeName","pathNode":{"id":44216,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3039:19:69"},"referencedDeclaration":50150,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44220,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44257,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44219,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44257,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44224,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44301,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44300,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44269,44271],"declarations":[{"constant":false,"id":44269,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44300,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44271,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44300,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44272,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44275,"indexExpression":{"id":44274,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44182,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44279,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44271,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44289,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44288,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44285,"indexExpression":{"id":44284,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44287,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44295,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44292,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44290,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44297,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44298,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44267,"id":44299,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44258,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44261,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44301,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44260,"nodeType":"UserDefinedTypeName","pathNode":{"id":44259,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3531:19:69"},"referencedDeclaration":50150,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44263,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44301,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44262,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44301,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44184,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44302],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46441,"usedErrors":[]},{"id":45293,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44307,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44304,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"3936:8:69"},"typeName":{"id":44306,"nodeType":"UserDefinedTypeName","pathNode":{"id":44305,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3949:5:69"},"referencedDeclaration":49029,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":44311,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44308,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"3966:8:69"},"typeName":{"id":44310,"nodeType":"UserDefinedTypeName","pathNode":{"id":44309,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3979:5:69"},"referencedDeclaration":48411,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44317,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44313,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44317,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44312,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44315,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44317,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44323,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44319,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44323,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44318,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44321,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44323,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44320,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44329,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44329,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44324,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44327,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44329,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44335,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44331,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44335,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44330,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44333,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44335,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44341,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44337,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44336,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44339,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44338,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44345,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44343,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44345,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44342,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44349,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44347,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44349,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44346,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44385,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44384,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":44364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44360,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44362,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":44363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44382,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44374,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44375,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44378,"indexExpression":{"id":44377,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44381,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44383,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44373,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44365,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44366,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44369,"indexExpression":{"id":44368,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44372,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44350,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44353,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44385,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44352,"nodeType":"UserDefinedTypeName","pathNode":{"id":44351,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4552:12:69"},"referencedDeclaration":50190,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44355,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44385,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44354,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44358,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44385,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44357,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44400,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44399,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44394,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44392,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44395,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44389,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44398,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44386,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44389,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44388,"nodeType":"UserDefinedTypeName","pathNode":{"id":44387,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5013:12:69"},"referencedDeclaration":50190,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44392,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44417,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44416,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44409,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44407,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44410,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44404,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44415,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44401,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44404,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44417,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44403,"nodeType":"UserDefinedTypeName","pathNode":{"id":44402,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5240:12:69"},"referencedDeclaration":50190,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44407,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44417,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44406,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44437,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44436,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44428,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44429,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44421,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44432,"indexExpression":{"id":44431,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44423,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44435,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44418,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44421,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44420,"nodeType":"UserDefinedTypeName","pathNode":{"id":44419,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5482:12:69"},"referencedDeclaration":50190,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44423,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44437,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44422,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44426,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44489,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44488,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44447],"declarations":[{"constant":false,"id":44447,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44488,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44446,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44452,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44448,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44453,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44454,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44455,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44460,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44484,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44468,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44472,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44473,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44479,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44466,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44462],"declarations":[{"constant":false,"id":44462,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44461,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44464,"initialValue":{"hexValue":"31","id":44463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44486,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44445,"id":44487,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44440,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44489,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44439,"nodeType":"UserDefinedTypeName","pathNode":{"id":44438,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5708:12:69"},"referencedDeclaration":50190,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44444,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44489,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44442,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44443,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44534,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44533,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44499],"declarations":[{"constant":false,"id":44499,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44533,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44498,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44531,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44513],"declarations":[{"constant":false,"id":44513,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44531,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44512,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44519,"initialValue":{"arguments":[{"id":44517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44514,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44520,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44496,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44522,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44523,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44521,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44526,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44530,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44529,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44510,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44499,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44532,"initializationExpression":{"assignments":[44506],"declarations":[{"constant":false,"id":44506,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44532,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44505,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44508,"initialValue":{"hexValue":"31","id":44507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44490,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44493,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44492,"nodeType":"UserDefinedTypeName","pathNode":{"id":44491,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6212:12:69"},"referencedDeclaration":50190,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44496,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44495,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44585,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44584,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44544],"declarations":[{"constant":false,"id":44544,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44584,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44543,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44549,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44545,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44576,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44558],"declarations":[{"constant":false,"id":44558,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44576,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44557,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44564,"initialValue":{"arguments":[{"id":44562,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44559,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48450,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44565,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44567,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44568,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44558,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44566,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44437,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44571,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44575,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44574,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44554,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44555,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44544,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44577,"initializationExpression":{"assignments":[44551],"declarations":[{"constant":false,"id":44551,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44577,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44550,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44553,"initialValue":{"hexValue":"31","id":44552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44578,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44580,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44579,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44583,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44535,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44538,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44537,"nodeType":"UserDefinedTypeName","pathNode":{"id":44536,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6718:12:69"},"referencedDeclaration":50190,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44541,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44540,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44655,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44654,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44599],"declarations":[{"constant":false,"id":44599,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44654,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44602,"initialValue":{"expression":{"id":44600,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44607],"declarations":[{"constant":false,"id":44607,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44654,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44606,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44613,"initialValue":{"arguments":[{"id":44611,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44609,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44650,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44621,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44622,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44624,"indexExpression":{"id":44623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44620,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44672,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44634,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44633,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44628,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44630,"indexExpression":{"id":44629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44627,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44632,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44635,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44637,"indexExpression":{"id":44636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44639,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44640,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44642,"indexExpression":{"id":44641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44638,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44645,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44649,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44648,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44617,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44618,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44651,"initializationExpression":{"assignments":[44615],"declarations":[{"constant":false,"id":44615,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44651,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44614,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44616,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44652,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44597,"id":44653,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44586,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44589,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44655,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44588,"nodeType":"UserDefinedTypeName","pathNode":{"id":44587,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7383:12:69"},"referencedDeclaration":50190,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44592,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44655,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44590,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44591,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44655,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44594,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44595,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44672,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44671,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44668,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44660,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44665,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44658,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44664,"id":44670,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44658,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44672,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44657,"nodeType":"UserDefinedTypeName","pathNode":{"id":44656,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7984:12:69"},"referencedDeclaration":50190,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44660,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44672,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44659,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44672,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44662,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44693,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44692,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44676,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44687,"indexExpression":{"id":44685,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44678,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44689,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44680,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44691,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44673,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44676,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44693,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44675,"nodeType":"UserDefinedTypeName","pathNode":{"id":44674,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8186:12:69"},"referencedDeclaration":50190,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44678,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44693,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44677,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44680,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44693,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44679,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44682,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44714,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44713,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44704,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44697,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44708,"indexExpression":{"id":44706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44699,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44701,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44712,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44694,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44697,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44714,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44696,"nodeType":"UserDefinedTypeName","pathNode":{"id":44695,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8671:12:69"},"referencedDeclaration":50190,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44699,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44714,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44698,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44701,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44714,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44700,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44703,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44755,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44754,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44726],"declarations":[{"constant":false,"id":44726,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44754,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44725,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44732,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44730,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44733,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44740,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44739,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44736,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44738,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44741,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44742,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44744,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44745,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44749,"indexExpression":{"id":44747,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44751,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44753,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44715,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44718,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44755,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44717,"nodeType":"UserDefinedTypeName","pathNode":{"id":44716,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8919:12:69"},"referencedDeclaration":50190,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44720,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44755,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44719,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44722,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44755,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44721,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44808,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44807,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44767],"declarations":[{"constant":false,"id":44767,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44807,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44773,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44768,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44771,"indexExpression":{"id":44770,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44774,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44778,"indexExpression":{"id":44776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44780,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44782,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44783,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44784,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44788,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44789,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44804,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44799,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44800,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44801,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44798,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44803,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44805,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44797,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44792,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44793,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44794,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44791,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44796,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44806,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44787,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44765,"id":44786,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44756,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44759,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44808,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44758,"nodeType":"UserDefinedTypeName","pathNode":{"id":44757,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9361:12:69"},"referencedDeclaration":50190,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44761,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44808,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44760,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44763,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44808,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44762,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44765,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44819],"declarations":[{"constant":false,"id":44819,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44849,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44818,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44827,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44823,"indexExpression":{"id":44822,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44825,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44828,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44832,"indexExpression":{"id":44830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44834,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44836,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44840,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44842,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44844,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44843,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44811,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44850,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44810,"nodeType":"UserDefinedTypeName","pathNode":{"id":44809,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9900:12:69"},"referencedDeclaration":50190,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44813,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44850,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44812,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44815,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44850,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44814,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44817,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44916,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44915,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44861],"declarations":[{"constant":false,"id":44861,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44915,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44869,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44865,"indexExpression":{"id":44864,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44867,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44871],"declarations":[{"constant":false,"id":44871,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44915,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44870,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44877,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44872,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44875,"indexExpression":{"id":44874,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44878,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44881,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44871,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44901,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44896,"indexExpression":{"id":44894,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44898,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44900,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44902,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44891,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44888,"indexExpression":{"id":44887,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44890,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44905,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44906,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44903,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44908,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44914,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44916,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44852,"nodeType":"UserDefinedTypeName","pathNode":{"id":44851,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"10311:12:69"},"referencedDeclaration":50190,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44916,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44854,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44857,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44916,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45081,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45080,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44930,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44927,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44948,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44947,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44937,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44938,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49342,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44940,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44942,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44943,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44941,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44945,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44926,"id":44946,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44950],"declarations":[{"constant":false,"id":44950,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45080,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44949,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44953,"initialValue":{"expression":{"id":44951,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44955],"declarations":[{"constant":false,"id":44955,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44954,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44960,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44956,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44961,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44950,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44962,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44955,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44979,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44969,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44970,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44972,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44974,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44975,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44973,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44977,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44926,"id":44978,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44982,44984],"declarations":[{"constant":false,"id":44982,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44981,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44984,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45080,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44983,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44990,"initialValue":{"arguments":[{"id":44988,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44991,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44984,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44992,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45043,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":45042,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44999,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44994,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45001,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":45005,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45017,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":45016,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":45012,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45013,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":45023,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45024,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45026,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":45032,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45033,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45027,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45035,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":45037,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45038,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45036,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45040,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44926,"id":45041,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45047,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45044,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45065,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45064,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45054,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45055,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48724,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45057,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45059,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45060,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45058,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45062,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44926,"id":45063,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45071,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45072,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45066,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45074,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45076,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45077,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45075,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44335,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45079,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44917,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44920,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45081,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44919,"nodeType":"UserDefinedTypeName","pathNode":{"id":44918,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"11035:12:69"},"referencedDeclaration":50190,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44922,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45081,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44921,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44924,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45081,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44923,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44926,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45292,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45291,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45095,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45132,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45131,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45115,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45114,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44349,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45091,"id":45113,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48759,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45124,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45127,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45125,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45129,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45091,"id":45130,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45136,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45143,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45142,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45139,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45141,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45144,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45201,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45152,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45153,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45147,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49307,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45155,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45157,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45156,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45159,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45199,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45198,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45167,45169],"declarations":[{"constant":false,"id":45167,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45198,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45166,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45169,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45198,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45168,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45175,"initialValue":{"arguments":[{"id":45173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45170,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45176,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45183,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45189,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45190,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45184,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45192,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45194,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45195,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45169,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45193,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45197,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45091,"id":45200,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45209,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45203,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49377,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45211,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45212,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45220,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45219,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45091,"id":45218,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45222,45224],"declarations":[{"constant":false,"id":45222,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45291,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45224,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45291,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45223,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45230,"initialValue":{"arguments":[{"id":45228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45232,45234],"declarations":[{"constant":false,"id":45232,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45291,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45231,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45234,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45291,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45233,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45240,"initialValue":{"arguments":[{"id":45238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45241,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45224,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45242,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45234,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45285,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45284,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45249,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45251,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45259,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45266,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45268,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45274,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45275,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45277,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45279,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45280,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45278,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45282,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45091,"id":45283,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45287,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45288,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45286,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45290,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45082,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45085,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45292,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45084,"nodeType":"UserDefinedTypeName","pathNode":{"id":45083,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"13345:12:69"},"referencedDeclaration":50190,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45087,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45292,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45086,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45089,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45292,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45088,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45091,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45293],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46441,"usedErrors":[]},{"id":46176,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45297,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45294,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44302,"src":"15369:22:69"},"typeName":{"id":45296,"nodeType":"UserDefinedTypeName","pathNode":{"id":45295,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"15396:19:69"},"referencedDeclaration":50150,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45301,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45298,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"15427:19:69"},"typeName":{"id":45300,"nodeType":"UserDefinedTypeName","pathNode":{"id":45299,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"15451:16:69"},"referencedDeclaration":50123,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45305,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45302,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"15479:15:69"},"typeName":{"id":45304,"nodeType":"UserDefinedTypeName","pathNode":{"id":45303,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"15499:12:69"},"referencedDeclaration":50190,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45309,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45306,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"15523:8:69"},"typeName":{"id":45308,"nodeType":"UserDefinedTypeName","pathNode":{"id":45307,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"15536:5:69"},"referencedDeclaration":48411,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45313,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45310,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"15553:8:69"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"15566:5:69"},"referencedDeclaration":49029,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":45316,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45314,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45315,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45319,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46176,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45317,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45323,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45321,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45323,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45320,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45329,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45329,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45324,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45327,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45329,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45326,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45350,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45349,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45338],"declarations":[{"constant":false,"id":45338,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45349,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45337,"nodeType":"UserDefinedTypeName","pathNode":{"id":45336,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"15944:18:69"},"referencedDeclaration":47281,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45339,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45346,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45331,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45338,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45335,"id":45348,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45331,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45350,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45330,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45334,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45350,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45333,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45373,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45372,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45360],"declarations":[{"constant":false,"id":45360,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45372,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45359,"nodeType":"UserDefinedTypeName","pathNode":{"id":45358,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16221:18:69"},"referencedDeclaration":47281,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45364,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45361,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45353,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45365,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45360,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45357,"id":45371,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45351,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45353,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45373,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45352,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45373,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45355,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45396,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45395,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45383],"declarations":[{"constant":false,"id":45383,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45395,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45382,"nodeType":"UserDefinedTypeName","pathNode":{"id":45381,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16516:18:69"},"referencedDeclaration":47281,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45387,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45384,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45376,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45383,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45380,"id":45394,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45374,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45376,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45396,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45375,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45396,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45378,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45409,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45408,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45405,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45399,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45404,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45434,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45403,"id":45407,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45397,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45399,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45409,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45398,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45409,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45401,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45434,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45433,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45419],"declarations":[{"constant":false,"id":45419,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45433,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45418,"nodeType":"UserDefinedTypeName","pathNode":{"id":45417,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17294:18:69"},"referencedDeclaration":47281,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45420,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45419,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45428,"indexExpression":{"id":45427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45412,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45416,"id":45432,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45410,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45412,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45434,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45411,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45434,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45414,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45452,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45451,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45441],"declarations":[{"constant":false,"id":45441,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45451,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45440,"nodeType":"UserDefinedTypeName","pathNode":{"id":45439,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17577:18:69"},"referencedDeclaration":47281,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45445,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45442,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45441,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44417,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45438,"id":45450,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45435,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45452,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45436,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45478,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45477,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45460],"declarations":[{"constant":false,"id":45460,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45477,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45459,"nodeType":"UserDefinedTypeName","pathNode":{"id":45458,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17860:18:69"},"referencedDeclaration":47281,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45461,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45470,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45457,"id":45476,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45453,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45454,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45478,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45455,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45496,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45495,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45485],"declarations":[{"constant":false,"id":45485,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45495,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45484,"nodeType":"UserDefinedTypeName","pathNode":{"id":45483,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18122:18:69"},"referencedDeclaration":47281,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45486,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45490,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45485,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45482,"id":45494,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45479,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45496,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45480,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45514,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45513,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45503],"declarations":[{"constant":false,"id":45503,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45513,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45502,"nodeType":"UserDefinedTypeName","pathNode":{"id":45501,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18333:18:69"},"referencedDeclaration":47281,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45504,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45508,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45503,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45500,"id":45512,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45514,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45498,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45537,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45536,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45524],"declarations":[{"constant":false,"id":45524,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45536,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45523,"nodeType":"UserDefinedTypeName","pathNode":{"id":45522,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18636:18:69"},"referencedDeclaration":47281,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45528,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45525,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45529,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45524,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45533,"indexExpression":{"id":45532,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45517,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45521,"id":45535,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45515,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45517,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45537,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45516,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45537,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45519,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45562,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45561,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45547],"declarations":[{"constant":false,"id":45547,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45561,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45546,"nodeType":"UserDefinedTypeName","pathNode":{"id":45545,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19028:18:69"},"referencedDeclaration":47281,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45551,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45548,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45557,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45540,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45558,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45542,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45552,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45547,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45560,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45538,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45540,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45562,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45539,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45542,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45562,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45541,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45544,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45587,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45586,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45572],"declarations":[{"constant":false,"id":45572,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45586,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45571,"nodeType":"UserDefinedTypeName","pathNode":{"id":45570,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19346:18:69"},"referencedDeclaration":47281,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45576,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45573,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45582,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45565,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45583,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45577,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45572,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44693,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45585,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45563,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45565,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45587,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45564,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45567,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45587,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45566,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45569,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45696,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45695,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45597],"declarations":[{"constant":false,"id":45597,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45695,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45596,"nodeType":"UserDefinedTypeName","pathNode":{"id":45595,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19655:18:69"},"referencedDeclaration":47281,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45598,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45607,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45608,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45602,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45610,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45616,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45611,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45619,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45620,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45694,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45693,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45693,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45623,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45625,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45627],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45693,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45626,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45631,"initialValue":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45656,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45638,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45641,"indexExpression":{"id":45640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":45642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50208,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45643,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45651,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45650,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45645,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45648,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45649,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45655,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45654,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45635,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45636,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45657,"initializationExpression":{"assignments":[45633],"declarations":[{"constant":false,"id":45633,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45657,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45632,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45634,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45658,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45692,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45691,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45661],"declarations":[{"constant":false,"id":45661,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45691,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45660,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45668,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45666,"indexExpression":{"id":45665,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45671],"declarations":[{"constant":false,"id":45671,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45691,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45670,"nodeType":"UserDefinedTypeName","pathNode":{"id":45669,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"20624:9:69"},"referencedDeclaration":50211,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45682,"initialValue":{"arguments":[{"id":45673,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45674,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45661,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45679,"indexExpression":{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45672,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45688,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45671,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45683,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45690,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45588,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45590,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45696,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45589,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45592,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45696,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45591,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45594,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45738,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45737,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45706],"declarations":[{"constant":false,"id":45706,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45737,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45705,"nodeType":"UserDefinedTypeName","pathNode":{"id":45704,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21181:18:69"},"referencedDeclaration":47281,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45710,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45707,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45711,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45719,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45725,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45720,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45728,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45731,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45729,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45736,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45697,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45699,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45738,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45698,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45701,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45738,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45700,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45703,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45766,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45765,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45750],"declarations":[{"constant":false,"id":45750,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45765,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45749,"nodeType":"UserDefinedTypeName","pathNode":{"id":45748,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21838:18:69"},"referencedDeclaration":47281,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45754,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45751,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45760,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45741,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45761,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45743,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45745,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45755,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46528,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45764,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45739,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45741,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45766,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45740,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45743,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45766,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45742,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45745,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45766,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45744,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45747,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45791,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45790,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45776],"declarations":[{"constant":false,"id":45776,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45790,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45775,"nodeType":"UserDefinedTypeName","pathNode":{"id":45774,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22154:18:69"},"referencedDeclaration":47281,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45777,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45786,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45769,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45787,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45771,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46488,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45789,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45767,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45769,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45791,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45768,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45771,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45791,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45770,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45773,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45825,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45824,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45801],"declarations":[{"constant":false,"id":45801,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45824,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45800,"nodeType":"UserDefinedTypeName","pathNode":{"id":45799,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22400:18:69"},"referencedDeclaration":47281,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45802,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45806,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46602,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45814,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45815,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45823,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45792,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45794,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45825,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45793,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45796,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45825,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45795,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45798,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45859,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45858,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45858,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45834,"nodeType":"UserDefinedTypeName","pathNode":{"id":45833,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22703:18:69"},"referencedDeclaration":47281,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46565,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45848,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45854,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45855,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45849,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45857,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45826,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45828,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45859,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45827,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45830,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45859,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45832,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45886,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45885,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45867],"declarations":[{"constant":false,"id":45867,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45885,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45866,"nodeType":"UserDefinedTypeName","pathNode":{"id":45865,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23062:18:69"},"referencedDeclaration":47281,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45868,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45873],"declarations":[{"constant":false,"id":45873,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45885,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45872,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45879,"initialValue":{"arguments":[{"id":45877,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45867,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44301,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45881,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45882,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45873,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45880,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45884,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45860,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45862,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45886,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45861,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45864,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45942,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45941,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45894],"declarations":[{"constant":false,"id":45894,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45941,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45893,"nodeType":"UserDefinedTypeName","pathNode":{"id":45892,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23424:18:69"},"referencedDeclaration":47281,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45895,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45900],"declarations":[{"constant":false,"id":45900,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45941,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45899,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45906,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45901,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45905,"indexExpression":{"id":45904,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45914,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45913,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45910,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45912,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45921,"indexExpression":{"id":45918,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45924,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45925,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45932,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45935,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45933,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45940,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45887,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45889,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45942,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45888,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45891,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45965,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45964,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45951],"declarations":[{"constant":false,"id":45951,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45964,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45950,"nodeType":"UserDefinedTypeName","pathNode":{"id":45949,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23885:18:69"},"referencedDeclaration":47281,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45952,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45956,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45959,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45948,"id":45963,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45943,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45944,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45946,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46175,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46174,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45973],"declarations":[{"constant":false,"id":45973,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46174,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45972,"nodeType":"UserDefinedTypeName","pathNode":{"id":45971,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"24247:18:69"},"referencedDeclaration":47281,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45977,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45974,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45980],"declarations":[{"constant":false,"id":45980,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46174,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45979,"nodeType":"UserDefinedTypeName","pathNode":{"id":45978,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"24322:16:69"},"referencedDeclaration":50123,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45983,"initialValue":{"expression":{"id":45981,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45984,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45985,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45992,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45993,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45998,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45997,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45970,"id":45996,"nodeType":"Return","src":"24585:7:69"}]}},"id":45999,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45991,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45988,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45990,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[46001],"declarations":[{"constant":false,"id":46001,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46174,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46000,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46004,"initialValue":{"expression":{"id":46002,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46160,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[46014],"declarations":[{"constant":false,"id":46014,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46160,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46013,"nodeType":"UserDefinedTypeName","pathNode":{"id":46012,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"24736:13:69"},"referencedDeclaration":50104,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46019,"initialValue":{"arguments":[{"id":46017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46015,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[46021],"declarations":[{"constant":false,"id":46021,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46160,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46020,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46024,"initialValue":{"expression":{"id":46022,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46025,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46027,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46043,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46045,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46147,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46085],"declarations":[{"constant":false,"id":46085,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46147,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46084,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46094,"initialValue":{"arguments":[{"expression":{"id":46088,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46090,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46095,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46097,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46145,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46132,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46133,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46136,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46144,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46146,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46126,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46105,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46100,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46114,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44257,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46117,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46123,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46118,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46125,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46148,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46083,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46049,46051],"declarations":[{"constant":false,"id":46049,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46083,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46048,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46051,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46083,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46050,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46062,"initialValue":{"arguments":[{"expression":{"id":46054,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46056,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46058,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46069,"indexExpression":{"id":46066,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46071,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46049,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46073,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46080,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46051,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46074,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46082,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46149,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":46042,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":46040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46036,"indexExpression":{"id":46033,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46038,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46041,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46155,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46159,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46158,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46010,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46161,"initializationExpression":{"assignments":[46006],"declarations":[{"constant":false,"id":46006,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46161,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46005,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46008,"initialValue":{"id":46007,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46001,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46162,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46165,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46169,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46171,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46170,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45323,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46173,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45966,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45968,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46175,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45967,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45970,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46176],"name":"LibStaking","nameLocation":"15346:10:69","scope":46441,"usedErrors":[32461,32469,37450]},{"id":46440,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46181,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46178,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"26321:15:69"},"typeName":{"id":46180,"nodeType":"UserDefinedTypeName","pathNode":{"id":46179,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"26341:12:69"},"referencedDeclaration":50190,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46185,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46182,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"26365:19:69"},"typeName":{"id":46184,"nodeType":"UserDefinedTypeName","pathNode":{"id":46183,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"26389:16:69"},"referencedDeclaration":50123,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46220,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46219,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46219,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46194,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46209,"initialValue":{"arguments":[{"expression":{"expression":{"id":46199,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46202,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46205,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46196,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46188,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46644,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46210,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46211,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50109,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46218,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46217,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46214,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46216,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46188,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46220,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46187,"nodeType":"UserDefinedTypeName","pathNode":{"id":46186,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26433:23:69"},"referencedDeclaration":50197,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46191,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46220,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46190,"nodeType":"UserDefinedTypeName","pathNode":{"id":46189,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26471:20:69"},"referencedDeclaration":50110,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46193,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46261,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46260,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46231],"declarations":[{"constant":false,"id":46231,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46260,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46230,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46234,"initialValue":{"expression":{"id":46232,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46235,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46240,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46239,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46229,"id":46238,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46258,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46248,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46223,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46249,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46251,"indexExpression":{"id":46250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46247,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46253,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46257,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46256,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46259,"initializationExpression":{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46259,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46241,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46243,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46223,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46261,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46222,"nodeType":"UserDefinedTypeName","pathNode":{"id":46221,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26928:23:69"},"referencedDeclaration":50197,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46227,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46261,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46225,"nodeType":"UserDefinedTypeName","pathNode":{"id":46224,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26974:20:69"},"referencedDeclaration":50110,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46226,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46229,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46439,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46438,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46270,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46271,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46279,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46280,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46286,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46285,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46269,"id":46284,"nodeType":"Return","src":"27697:7:69"}]}},"id":46287,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46278,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46275,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46277,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46289],"declarations":[{"constant":false,"id":46289,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46438,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46288,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46293,"initialValue":{"expression":{"expression":{"id":46290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46426,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46303],"declarations":[{"constant":false,"id":46303,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46426,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46302,"nodeType":"UserDefinedTypeName","pathNode":{"id":46301,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"27852:13:69"},"referencedDeclaration":50104,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46309,"initialValue":{"arguments":[{"id":46307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46304,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46311],"declarations":[{"constant":false,"id":46311,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46426,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46310,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46314,"initialValue":{"expression":{"id":46312,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46315,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46317,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46333,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46411,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46375],"declarations":[{"constant":false,"id":46375,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46411,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46374,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46384,"initialValue":{"arguments":[{"expression":{"id":46378,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46380,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46385,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46387,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46409,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46405,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46406,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46408,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46410,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46399,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46395,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46398,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46412,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46373,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46339,46341],"declarations":[{"constant":false,"id":46339,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46373,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46338,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46341,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46373,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46340,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46352,"initialValue":{"arguments":[{"expression":{"id":46344,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46346,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46348,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46359,"indexExpression":{"id":46356,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46361,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46339,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46363,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46370,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46341,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46372,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46413,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46332,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46320,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46326,"indexExpression":{"id":46323,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46328,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46331,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46414,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46421,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46425,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46424,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46299,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46427,"initializationExpression":{"assignments":[46295],"declarations":[{"constant":false,"id":46295,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46427,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46294,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46297,"initialValue":{"id":46296,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46289,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46433,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46437,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46262,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46265,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46439,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46264,"nodeType":"UserDefinedTypeName","pathNode":{"id":46263,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"27402:23:69"},"referencedDeclaration":50197,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46267,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46439,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46266,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46269,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46177,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46440],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46441,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file +{"abi":[{"type":"event","name":"ActiveValidatorCollateralUpdated","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"newPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActiveValidatorLeft","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ActiveValidatorReplaced","inputs":[{"name":"oldValidator","type":"address","indexed":false,"internalType":"address"},{"name":"newValidator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NewActiveValidator","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"power","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NewWaitingValidator","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"power","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WaitingValidatorCollateralUpdated","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"newPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WaitingValidatorLeft","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122045f1bff0b9d22c2c30c7fcb6bbe5102e820c36c4824b43fc0dcf2bc2b3100ab264736f6c63430008130033","sourceMap":"3900:11436:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122045f1bff0b9d22c2c30c7fcb6bbe5102e820c36c4824b43fc0dcf2bc2b3100ab264736f6c63430008130033","sourceMap":"3900:11436:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPower\",\"type\":\"uint256\"}],\"name\":\"ActiveValidatorCollateralUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"ActiveValidatorLeft\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldValidator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newValidator\",\"type\":\"address\"}],\"name\":\"ActiveValidatorReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"name\":\"NewActiveValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"name\":\"NewWaitingValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPower\",\"type\":\"uint256\"}],\"name\":\"WaitingValidatorCollateralUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"WaitingValidatorLeft\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `ValidatorSet`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibValidatorSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"newPower","type":"uint256","indexed":false}],"type":"event","name":"ActiveValidatorCollateralUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false}],"type":"event","name":"ActiveValidatorLeft","anonymous":false},{"inputs":[{"internalType":"address","name":"oldValidator","type":"address","indexed":false},{"internalType":"address","name":"newValidator","type":"address","indexed":false}],"type":"event","name":"ActiveValidatorReplaced","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"power","type":"uint256","indexed":false}],"type":"event","name":"NewActiveValidator","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"power","type":"uint256","indexed":false}],"type":"event","name":"NewWaitingValidator","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"newPower","type":"uint256","indexed":false}],"type":"event","name":"WaitingValidatorCollateralUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false}],"type":"event","name":"WaitingValidatorLeft","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibValidatorSet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46394,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50093],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44136],"LibMaxPQ":[48969],"LibMinPQ":[49588],"LibStaking":[46129],"LibStakingChangeLog":[46631],"LibStakingReleaseQueue":[44255],"LibSubnetActorStorage":[47245],"LibValidatorSet":[45246],"LibValidatorTracking":[46393],"MaxPQ":[48364],"MinPQ":[48982],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50150],"PermissionMode":[50118],"StakingChange":[50057],"StakingChangeLog":[50076],"StakingChangeRequest":[50063],"StakingOperation":[50049],"StakingRelease":[50083],"StakingReleaseQueue":[50103],"SubnetActorStorage":[47234],"Validator":[50164],"ValidatorSet":[50143],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":43968,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43970,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":43969,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43973,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":43971,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43972,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47234,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43976,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":48970,"symbolAliases":[{"foreign":{"id":43974,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48969,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43975,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48364,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43979,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":49589,"symbolAliases":[{"foreign":{"id":43977,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49588,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43978,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48982,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43981,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":46632,"symbolAliases":[{"foreign":{"id":43980,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46631,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43993,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":43982,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43983,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50103,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43984,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50076,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43985,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50057,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43986,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50063,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43987,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43988,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50083,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43989,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43990,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50093,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43991,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43992,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44001,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":43994,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43995,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43996,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43997,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43998,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43999,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44000,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44003,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44002,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44136,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44042,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44041,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44014],"declarations":[{"constant":false,"id":44014,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44041,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44013,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44017,"initialValue":{"expression":{"id":44015,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44019],"declarations":[{"constant":false,"id":44019,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44041,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44018,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44024,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44020,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44022,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44014,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44025,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44029,"indexExpression":{"id":44027,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44030,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44010,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"id":44032,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44033,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44036,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44014,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44040,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44004,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44007,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44042,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44006,"nodeType":"UserDefinedTypeName","pathNode":{"id":44005,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"1132:22:69"},"referencedDeclaration":50093,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44010,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44042,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44009,"nodeType":"UserDefinedTypeName","pathNode":{"id":44008,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"1169:14:69"},"referencedDeclaration":50083,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44012,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44136,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44135,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44134,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44054],"declarations":[{"constant":false,"id":44054,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44134,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44053,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44057,"initialValue":{"expression":{"id":44055,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44058,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44066,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44065,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44062,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44064,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44068],"declarations":[{"constant":false,"id":44068,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44134,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44067,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"expression":{"id":44069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44073],"declarations":[{"constant":false,"id":44073,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44134,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44072,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44075,"initialValue":{"id":44074,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44077],"declarations":[{"constant":false,"id":44077,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44134,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44076,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44078,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44116,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44084],"declarations":[{"constant":false,"id":44084,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44116,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44083,"nodeType":"UserDefinedTypeName","pathNode":{"id":44082,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"1987:14:69"},"referencedDeclaration":50083,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44089,"initialValue":{"baseExpression":{"expression":{"id":44085,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44088,"indexExpression":{"id":44087,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44090,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44084,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44092,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44097,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44096,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44095,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44098,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44099,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44084,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50082,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44102,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44103,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44106,"indexExpression":{"id":44105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44108,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44115,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44111,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44112,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44114,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44079,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44080,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44117,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44118,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44121,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44123,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44124,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44127,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44129,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44130,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44131,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44052,"id":44133,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44043,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44046,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44135,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44045,"nodeType":"UserDefinedTypeName","pathNode":{"id":44044,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"1654:22:69"},"referencedDeclaration":50093,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44135,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44048,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44135,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44050,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44136,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44136],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46394,"usedErrors":[]},{"id":44255,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44140,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44138,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44139,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44144,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44141,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44136,"src":"2668:25:69"},"typeName":{"id":44143,"nodeType":"UserDefinedTypeName","pathNode":{"id":44142,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"2698:22:69"},"referencedDeclaration":50093,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44152,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44146,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44152,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44145,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44148,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44152,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44147,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44150,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44152,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44149,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44167,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44166,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44155,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50096,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44163,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44157,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44165,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44155,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44167,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44154,"nodeType":"UserDefinedTypeName","pathNode":{"id":44153,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"2842:19:69"},"referencedDeclaration":50103,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44157,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44167,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44156,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44159,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44210,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44209,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44179],"declarations":[{"constant":false,"id":44179,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44209,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44178,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44185,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44180,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44182,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44171,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50096,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44188],"declarations":[{"constant":false,"id":44188,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44209,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44187,"nodeType":"UserDefinedTypeName","pathNode":{"id":44186,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"3192:14:69"},"referencedDeclaration":50083,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44193,"initialValue":{"arguments":[{"id":44190,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44191,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44175,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44189,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50083,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50083_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44200,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44188,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44194,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44171,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44198,"indexExpression":{"id":44196,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44173,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44042,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$_t_struct$_StakingRelease_$50083_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44202,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44204,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44173,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44205,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44175,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44206,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44203,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44152,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44208,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44168,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44171,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44210,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44170,"nodeType":"UserDefinedTypeName","pathNode":{"id":44169,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"3039:19:69"},"referencedDeclaration":50103,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44173,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44210,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44172,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44175,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44210,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44174,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44177,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44254,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44253,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44222,44224],"declarations":[{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44253,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44224,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44253,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44223,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44214,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44228,"indexExpression":{"id":44227,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44135,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44232,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44224,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44242,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44241,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44214,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44238,"indexExpression":{"id":44237,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44240,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44248,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44245,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44243,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44250,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44251,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44220,"id":44252,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44211,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44214,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44254,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44213,"nodeType":"UserDefinedTypeName","pathNode":{"id":44212,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"3531:19:69"},"referencedDeclaration":50103,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44216,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44254,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44215,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44254,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44218,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44137,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44255],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46394,"usedErrors":[]},{"id":45246,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44260,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44257,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49588,"src":"3936:8:69"},"typeName":{"id":44259,"nodeType":"UserDefinedTypeName","pathNode":{"id":44258,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"3949:5:69"},"referencedDeclaration":48982,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}}},{"id":44264,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44261,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48969,"src":"3966:8:69"},"typeName":{"id":44263,"nodeType":"UserDefinedTypeName","pathNode":{"id":44262,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"3979:5:69"},"referencedDeclaration":48364,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44270,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44270,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44265,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44268,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44270,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44267,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44276,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44272,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44276,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44271,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44274,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44276,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44273,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44282,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44278,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44282,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44277,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44280,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44282,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44279,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44288,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44284,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44288,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44283,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44286,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44288,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44285,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44294,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44290,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44294,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44289,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44292,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44294,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44291,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44298,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44296,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44298,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44295,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44302,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44300,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44302,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44299,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44338,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44337,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"id":44317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44313,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44315,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":44316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44335,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44327,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44311,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44328,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44331,"indexExpression":{"id":44330,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44308,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44334,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44336,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44326,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44318,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44311,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44319,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44322,"indexExpression":{"id":44321,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44308,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44325,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44306,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44338,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44305,"nodeType":"UserDefinedTypeName","pathNode":{"id":44304,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"4552:12:69"},"referencedDeclaration":50143,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44308,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44338,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44307,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44311,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44338,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44310,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44353,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44352,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44347,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44348,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44342,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44351,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44339,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44342,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44353,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44341,"nodeType":"UserDefinedTypeName","pathNode":{"id":44340,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5013:12:69"},"referencedDeclaration":50143,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44345,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44353,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44344,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44370,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44369,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44362,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44360,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44363,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44357,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44368,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44354,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44357,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44370,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44356,"nodeType":"UserDefinedTypeName","pathNode":{"id":44355,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5240:12:69"},"referencedDeclaration":50143,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44360,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44370,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44359,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44390,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44389,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44381,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44379,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44382,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44374,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44385,"indexExpression":{"id":44384,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44376,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44388,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44371,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44374,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44390,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44373,"nodeType":"UserDefinedTypeName","pathNode":{"id":44372,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5482:12:69"},"referencedDeclaration":50143,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44376,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44390,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44375,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44379,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44390,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44378,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44442,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44441,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44400],"declarations":[{"constant":false,"id":44400,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44441,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44399,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44405,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44401,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44393,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44406,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44410,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44407,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44408,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44413,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44437,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44421,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44425,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44429,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44426,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44393,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49021,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44432,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44436,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44435,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44418,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44419,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44438,"initializationExpression":{"assignments":[44415],"declarations":[{"constant":false,"id":44415,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44438,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44414,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44417,"initialValue":{"hexValue":"31","id":44416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44439,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44398,"id":44440,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44393,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44442,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44392,"nodeType":"UserDefinedTypeName","pathNode":{"id":44391,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5708:12:69"},"referencedDeclaration":50143,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44397,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44442,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44395,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44396,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44487,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44486,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44452],"declarations":[{"constant":false,"id":44452,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44486,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44451,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44457,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44453,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44484,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44466],"declarations":[{"constant":false,"id":44466,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44484,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44465,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44472,"initialValue":{"arguments":[{"id":44470,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44467,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49021,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44473,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44449,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44475,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44476,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44466,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44474,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44338,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44479,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44462,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44463,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44452,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44459],"declarations":[{"constant":false,"id":44459,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44458,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44461,"initialValue":{"hexValue":"31","id":44460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44443,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44446,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44487,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44445,"nodeType":"UserDefinedTypeName","pathNode":{"id":44444,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"6212:12:69"},"referencedDeclaration":50143,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44449,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44487,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44448,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44538,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44537,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44497],"declarations":[{"constant":false,"id":44497,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44537,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44496,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44502,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44498,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44529,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44511],"declarations":[{"constant":false,"id":44511,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44529,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44510,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44517,"initialValue":{"arguments":[{"id":44515,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44512,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44518,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44494,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44520,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44521,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44511,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44519,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44524,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44528,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44527,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44507,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44508,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44497,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44530,"initializationExpression":{"assignments":[44504],"declarations":[{"constant":false,"id":44504,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44530,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44503,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44506,"initialValue":{"hexValue":"31","id":44505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44531,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44494,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44533,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44532,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44536,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44488,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44491,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44538,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44490,"nodeType":"UserDefinedTypeName","pathNode":{"id":44489,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"6718:12:69"},"referencedDeclaration":50143,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44494,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44538,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44493,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44608,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44607,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44552],"declarations":[{"constant":false,"id":44552,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44607,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44551,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44555,"initialValue":{"expression":{"id":44553,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44560],"declarations":[{"constant":false,"id":44560,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44607,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44558,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44559,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44566,"initialValue":{"arguments":[{"id":44564,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44552,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44561,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44562,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44603,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44574,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44542,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44575,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44577,"indexExpression":{"id":44576,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44573,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44625,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44587,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44586,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44581,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44583,"indexExpression":{"id":44582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44580,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44585,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44588,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44560,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44590,"indexExpression":{"id":44589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44592,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44542,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44593,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44595,"indexExpression":{"id":44594,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44591,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44338,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44598,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44602,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44601,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44570,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44571,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44552,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44604,"initializationExpression":{"assignments":[44568],"declarations":[{"constant":false,"id":44568,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44604,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44567,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44569,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44605,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44560,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44550,"id":44606,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44539,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44542,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44608,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44541,"nodeType":"UserDefinedTypeName","pathNode":{"id":44540,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"7383:12:69"},"referencedDeclaration":50143,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44545,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44608,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44543,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44544,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44608,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44547,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44548,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44625,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44624,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44621,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44613,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44618,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44611,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44617,"id":44623,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44611,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44625,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44610,"nodeType":"UserDefinedTypeName","pathNode":{"id":44609,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"7984:12:69"},"referencedDeclaration":50143,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44613,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44625,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44612,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44625,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44615,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44646,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44645,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44636,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44629,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44640,"indexExpression":{"id":44638,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44631,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44642,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44633,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44644,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44626,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44629,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44646,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44628,"nodeType":"UserDefinedTypeName","pathNode":{"id":44627,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8186:12:69"},"referencedDeclaration":50143,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44631,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44646,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44630,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44633,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44646,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44632,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44635,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44667,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44666,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44657,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44650,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44661,"indexExpression":{"id":44659,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44652,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44663,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44654,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44665,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44647,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44650,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44667,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44649,"nodeType":"UserDefinedTypeName","pathNode":{"id":44648,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8671:12:69"},"referencedDeclaration":50143,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44652,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44667,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44651,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44654,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44667,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44653,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44656,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44708,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44707,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44679],"declarations":[{"constant":false,"id":44679,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44707,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44678,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44685,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44680,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44671,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44683,"indexExpression":{"id":44682,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44686,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44693,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44692,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44689,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44691,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44694,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44695,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44697,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44698,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44671,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44702,"indexExpression":{"id":44700,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44704,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44706,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44668,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44671,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44708,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44670,"nodeType":"UserDefinedTypeName","pathNode":{"id":44669,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8919:12:69"},"referencedDeclaration":50143,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44673,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44708,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44672,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44675,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44708,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44674,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44677,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44761,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44760,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44720],"declarations":[{"constant":false,"id":44720,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44760,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44719,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44726,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44721,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44724,"indexExpression":{"id":44723,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44731,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44733,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44735,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44736,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44737,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44741,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44742,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44757,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44752,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44753,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44754,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44751,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45245,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44756,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44758,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44750,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44745,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44746,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44747,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44744,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45034,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44749,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44759,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44740,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44718,"id":44739,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44709,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44712,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44761,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44711,"nodeType":"UserDefinedTypeName","pathNode":{"id":44710,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"9361:12:69"},"referencedDeclaration":50143,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44714,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44761,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44713,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44716,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44761,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44715,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44718,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44803,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44802,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44772],"declarations":[{"constant":false,"id":44772,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44802,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44771,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44780,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44773,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44776,"indexExpression":{"id":44775,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44778,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44768,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44781,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44785,"indexExpression":{"id":44783,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44787,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44772,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44789,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44790,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44793,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44768,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44795,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44797,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44798,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44799,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44772,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44796,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45034,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44801,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44764,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44803,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44763,"nodeType":"UserDefinedTypeName","pathNode":{"id":44762,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"9900:12:69"},"referencedDeclaration":50143,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44766,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44803,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44765,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44768,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44803,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44767,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44770,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44869,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44868,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44814],"declarations":[{"constant":false,"id":44814,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44868,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44813,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44822,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44815,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44818,"indexExpression":{"id":44817,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44820,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44810,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44824],"declarations":[{"constant":false,"id":44824,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44868,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44823,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44830,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44825,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44828,"indexExpression":{"id":44827,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44831,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44834,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44824,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44854,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44845,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44849,"indexExpression":{"id":44847,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44851,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44853,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44855,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44844,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44838,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44841,"indexExpression":{"id":44840,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44843,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44857,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44858,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44859,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44856,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45245,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44861,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44865,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44810,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44867,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44806,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44869,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44805,"nodeType":"UserDefinedTypeName","pathNode":{"id":44804,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"10311:12:69"},"referencedDeclaration":50143,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44808,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44869,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44807,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44810,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44869,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44809,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44812,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45034,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45033,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44883,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44880,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44901,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44900,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44890,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44891,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49295,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44893,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44895,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44896,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44894,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44270,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44898,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44879,"id":44899,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44903],"declarations":[{"constant":false,"id":44903,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45033,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44902,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44906,"initialValue":{"expression":{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50125,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44908],"declarations":[{"constant":false,"id":44908,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45033,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44907,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44913,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44914,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44903,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44915,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44908,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44933,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44932,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44922,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44923,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44917,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44925,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44927,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44928,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44926,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44282,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44930,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44879,"id":44931,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44935,44937],"declarations":[{"constant":false,"id":44935,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45033,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44934,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44937,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45033,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44936,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44943,"initialValue":{"arguments":[{"id":44941,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44938,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49371,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44944,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44937,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44945,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44996,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":44995,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44952,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44947,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49168,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44954,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":44958,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44955,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44970,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":44969,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":44965,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44966,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44960,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48642,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44968,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":44976,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44977,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44971,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44979,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44986,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44935,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44980,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44988,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":44990,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44935,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44991,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44989,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44294,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44993,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44879,"id":44994,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45000,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44997,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45018,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45017,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45008,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48677,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45010,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45012,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45013,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45011,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44276,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44879,"id":45016,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45024,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45025,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45019,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45027,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45029,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45030,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45028,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44288,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45032,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44870,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44873,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45034,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44872,"nodeType":"UserDefinedTypeName","pathNode":{"id":44871,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"11035:12:69"},"referencedDeclaration":50143,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44875,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45034,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44874,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44877,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45034,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44876,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44879,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45245,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45244,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45045,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45085,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45084,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45050,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45068,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45067,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45058,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45059,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45053,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48642,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45061,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45063,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45062,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44302,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45065,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45044,"id":45066,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45074,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45075,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48712,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45077,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45080,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45078,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44276,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45082,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45044,"id":45083,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45089,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45086,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45096,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45095,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45092,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45094,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45155,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45154,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49260,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44298,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45113,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45152,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45151,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45120,45122],"declarations":[{"constant":false,"id":45120,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45151,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45119,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45122,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45151,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45121,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45128,"initialValue":{"arguments":[{"id":45126,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45123,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48753,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45134,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45129,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48550,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45136,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45142,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45143,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45120,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45137,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45145,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45147,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45120,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45148,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45122,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45146,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44282,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45150,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45044,"id":45153,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45161,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45162,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45156,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49330,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45164,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45173,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45172,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45044,"id":45171,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45175,45177],"declarations":[{"constant":false,"id":45175,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45244,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45174,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45177,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45244,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45176,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45183,"initialValue":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45178,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49371,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45185,45187],"declarations":[{"constant":false,"id":45185,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45244,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45184,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45187,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45244,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45186,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45193,"initialValue":{"arguments":[{"id":45191,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45188,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48753,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45194,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45195,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45187,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45238,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45237,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45202,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45197,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49168,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45204,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48550,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45212,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45218,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45219,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45213,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45221,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45227,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45228,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45175,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45222,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45230,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45232,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45175,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45233,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45231,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44294,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45235,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45044,"id":45236,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45240,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45241,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45239,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44270,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45243,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45035,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45038,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45245,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45037,"nodeType":"UserDefinedTypeName","pathNode":{"id":45036,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"13345:12:69"},"referencedDeclaration":50143,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45040,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45245,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45039,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45042,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45245,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45041,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45044,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44256,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45246],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46394,"usedErrors":[]},{"id":46129,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45250,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45247,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44255,"src":"15369:22:69"},"typeName":{"id":45249,"nodeType":"UserDefinedTypeName","pathNode":{"id":45248,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"15396:19:69"},"referencedDeclaration":50103,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45254,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45251,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46631,"src":"15427:19:69"},"typeName":{"id":45253,"nodeType":"UserDefinedTypeName","pathNode":{"id":45252,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"15451:16:69"},"referencedDeclaration":50076,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45258,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45255,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"15479:15:69"},"typeName":{"id":45257,"nodeType":"UserDefinedTypeName","pathNode":{"id":45256,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"15499:12:69"},"referencedDeclaration":50143,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45262,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45259,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48969,"src":"15523:8:69"},"typeName":{"id":45261,"nodeType":"UserDefinedTypeName","pathNode":{"id":45260,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"15536:5:69"},"referencedDeclaration":48364,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45266,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45263,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49588,"src":"15553:8:69"},"typeName":{"id":45265,"nodeType":"UserDefinedTypeName","pathNode":{"id":45264,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"15566:5:69"},"referencedDeclaration":48982,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}}},{"id":45269,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45267,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45268,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45272,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46129,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45270,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45276,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45274,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45276,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45273,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45282,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45278,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45282,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45277,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45280,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45282,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45279,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45303,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45302,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45291],"declarations":[{"constant":false,"id":45291,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45302,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45290,"nodeType":"UserDefinedTypeName","pathNode":{"id":45289,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"15944:18:69"},"referencedDeclaration":47234,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45295,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45292,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45299,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45284,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45296,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45291,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45288,"id":45301,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45284,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45303,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45283,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45287,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45303,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45286,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45326,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45325,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45313],"declarations":[{"constant":false,"id":45313,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45325,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"16221:18:69"},"referencedDeclaration":47234,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45317,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45314,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45322,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45306,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45318,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45310,"id":45324,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45304,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45306,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45326,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45305,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45326,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45308,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45349,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45348,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45336],"declarations":[{"constant":false,"id":45336,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45348,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45335,"nodeType":"UserDefinedTypeName","pathNode":{"id":45334,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"16516:18:69"},"referencedDeclaration":47234,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45340,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45337,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45345,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45341,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45336,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45333,"id":45347,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45327,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45329,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45349,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45328,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45332,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45349,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45331,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45362,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45361,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45358,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45352,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45357,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45387,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45356,"id":45360,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45350,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45352,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45362,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45351,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45362,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45354,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45387,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45386,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45372],"declarations":[{"constant":false,"id":45372,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45386,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45371,"nodeType":"UserDefinedTypeName","pathNode":{"id":45370,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17294:18:69"},"referencedDeclaration":47234,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45376,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45373,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45377,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45372,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45381,"indexExpression":{"id":45380,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45365,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45369,"id":45385,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45363,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45365,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45387,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45364,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45387,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45367,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45405,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45404,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45394],"declarations":[{"constant":false,"id":45394,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45404,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45393,"nodeType":"UserDefinedTypeName","pathNode":{"id":45392,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17577:18:69"},"referencedDeclaration":47234,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45398,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45395,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45399,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45394,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44370,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45391,"id":45403,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45388,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45405,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45389,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45431,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45430,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45413],"declarations":[{"constant":false,"id":45413,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45430,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45412,"nodeType":"UserDefinedTypeName","pathNode":{"id":45411,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17860:18:69"},"referencedDeclaration":47234,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45417,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45414,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45418,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45413,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45423,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45413,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45410,"id":45429,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45406,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45407,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45431,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45408,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45449,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45448,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45438],"declarations":[{"constant":false,"id":45438,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45448,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45437,"nodeType":"UserDefinedTypeName","pathNode":{"id":45436,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18122:18:69"},"referencedDeclaration":47234,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45442,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45439,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45443,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45438,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44353,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45435,"id":45447,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45432,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45449,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45433,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45467,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45466,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45456],"declarations":[{"constant":false,"id":45456,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45466,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45455,"nodeType":"UserDefinedTypeName","pathNode":{"id":45454,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18333:18:69"},"referencedDeclaration":47234,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45460,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45457,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45461,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45456,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44353,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45453,"id":45465,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45450,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45467,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45451,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45490,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45489,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45477],"declarations":[{"constant":false,"id":45477,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45489,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45476,"nodeType":"UserDefinedTypeName","pathNode":{"id":45475,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18636:18:69"},"referencedDeclaration":47234,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45481,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45478,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45482,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45477,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45486,"indexExpression":{"id":45485,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45470,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45474,"id":45488,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45468,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45470,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45490,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45469,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45490,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45472,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45515,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45514,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45500],"declarations":[{"constant":false,"id":45500,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45514,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45499,"nodeType":"UserDefinedTypeName","pathNode":{"id":45498,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19028:18:69"},"referencedDeclaration":47234,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45501,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45493,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45511,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45495,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45500,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45513,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45491,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45493,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45515,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45492,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45495,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45515,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45494,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45540,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45539,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45525],"declarations":[{"constant":false,"id":45525,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45539,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45524,"nodeType":"UserDefinedTypeName","pathNode":{"id":45523,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19346:18:69"},"referencedDeclaration":47234,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45529,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45526,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45535,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45518,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45536,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45520,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45530,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45525,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44646,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45538,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45516,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45518,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45540,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45517,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45520,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45540,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45519,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45522,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45649,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45648,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45550],"declarations":[{"constant":false,"id":45550,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45648,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45549,"nodeType":"UserDefinedTypeName","pathNode":{"id":45548,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19655:18:69"},"referencedDeclaration":47234,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45554,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45551,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45560,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45561,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45545,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45555,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44667,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45563,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45569,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45545,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45564,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45572,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45573,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45647,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45646,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45577],"declarations":[{"constant":false,"id":45577,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45646,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45576,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45578,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45580],"declarations":[{"constant":false,"id":45580,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45646,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45579,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45584,"initialValue":{"expression":{"expression":{"id":45581,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45609,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45591,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45594,"indexExpression":{"id":45593,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage","typeString":"struct Validator storage ref"}},"id":45595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50161,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45596,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45604,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45603,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45598,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45601,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45602,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45608,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45607,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45588,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45589,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45580,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45610,"initializationExpression":{"assignments":[45586],"declarations":[{"constant":false,"id":45586,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45610,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45585,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45587,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45611,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45645,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45644,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45614],"declarations":[{"constant":false,"id":45614,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45644,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45613,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45621,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45615,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45619,"indexExpression":{"id":45618,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45644,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45623,"nodeType":"UserDefinedTypeName","pathNode":{"id":45622,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"20624:9:69"},"referencedDeclaration":50164,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45635,"initialValue":{"arguments":[{"id":45626,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45627,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45614,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45632,"indexExpression":{"id":45631,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45625,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50164_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45641,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45636,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50164_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45643,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45541,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45543,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45649,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45542,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45545,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45649,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45544,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45547,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45691,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45690,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45659],"declarations":[{"constant":false,"id":45659,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45690,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45658,"nodeType":"UserDefinedTypeName","pathNode":{"id":45657,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"21181:18:69"},"referencedDeclaration":47234,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45663,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45660,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45669,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45670,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45664,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45659,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44708,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45672,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45679,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45673,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45659,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45681,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45684,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45682,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45689,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45650,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45652,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45691,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45651,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45654,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45691,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45653,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45656,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45719,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45718,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45703],"declarations":[{"constant":false,"id":45703,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45718,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45702,"nodeType":"UserDefinedTypeName","pathNode":{"id":45701,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"21838:18:69"},"referencedDeclaration":47234,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45707,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45704,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45713,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45694,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45714,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45696,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45715,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45698,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45708,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45703,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46481,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45717,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45692,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45694,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45719,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45693,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45696,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45719,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45695,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45698,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45719,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45697,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45700,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45744,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45743,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45729],"declarations":[{"constant":false,"id":45729,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45743,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45728,"nodeType":"UserDefinedTypeName","pathNode":{"id":45727,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22154:18:69"},"referencedDeclaration":47234,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45730,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45739,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45722,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45740,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45724,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45734,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45729,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46441,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45742,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45720,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45722,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45744,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45721,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45724,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45744,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45723,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45726,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45778,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45777,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45754],"declarations":[{"constant":false,"id":45754,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45777,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45753,"nodeType":"UserDefinedTypeName","pathNode":{"id":45752,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22400:18:69"},"referencedDeclaration":47234,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45758,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45755,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45764,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45747,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45765,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45749,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45759,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46555,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45767,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45773,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45747,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45774,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45749,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45768,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44667,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45776,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45745,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45747,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45778,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45746,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45749,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45778,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45748,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45751,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45812,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45811,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45788],"declarations":[{"constant":false,"id":45788,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45811,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45787,"nodeType":"UserDefinedTypeName","pathNode":{"id":45786,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22703:18:69"},"referencedDeclaration":47234,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45792,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45789,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45798,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45781,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45799,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45783,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45793,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45788,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46518,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45801,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45807,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45781,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45808,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45783,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45802,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45788,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44708,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45810,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45779,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45781,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45812,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45780,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45783,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45812,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45782,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45785,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45839,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45838,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45820],"declarations":[{"constant":false,"id":45820,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45838,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45819,"nodeType":"UserDefinedTypeName","pathNode":{"id":45818,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23062:18:69"},"referencedDeclaration":47234,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45824,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45821,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45826],"declarations":[{"constant":false,"id":45826,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45838,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45825,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45832,"initialValue":{"arguments":[{"id":45830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45815,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45827,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45820,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47213,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44254,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45834,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45815,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45835,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45826,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45833,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45282,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45837,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45813,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45815,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45839,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45814,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45817,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45895,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45894,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45847],"declarations":[{"constant":false,"id":45847,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45894,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45846,"nodeType":"UserDefinedTypeName","pathNode":{"id":45845,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23424:18:69"},"referencedDeclaration":47234,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45851,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45848,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45853],"declarations":[{"constant":false,"id":45853,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45894,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45852,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45859,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45854,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45858,"indexExpression":{"id":45857,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45860,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45867,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45866,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45863,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45865,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45868,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45874,"indexExpression":{"id":45871,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45877,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45883,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45879,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45878,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45885,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45891,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45888,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45886,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45893,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45840,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45842,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45895,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45841,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45844,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45918,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45917,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45904],"declarations":[{"constant":false,"id":45904,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45917,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45903,"nodeType":"UserDefinedTypeName","pathNode":{"id":45902,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23885:18:69"},"referencedDeclaration":47234,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45908,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45905,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45909,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45912,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45915,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45901,"id":45916,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45896,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45918,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45897,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45918,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45899,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46128,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46127,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45926],"declarations":[{"constant":false,"id":45926,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46127,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45925,"nodeType":"UserDefinedTypeName","pathNode":{"id":45924,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"24247:18:69"},"referencedDeclaration":47234,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45930,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45927,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45933],"declarations":[{"constant":false,"id":45933,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46127,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45932,"nodeType":"UserDefinedTypeName","pathNode":{"id":45931,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"24322:16:69"},"referencedDeclaration":50076,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45936,"initialValue":{"expression":{"id":45934,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45937,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45938,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45945,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45946,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45951,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45950,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45923,"id":45949,"nodeType":"Return","src":"24585:7:69"}]}},"id":45952,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45944,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45941,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45943,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[45954],"declarations":[{"constant":false,"id":45954,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46127,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45953,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45957,"initialValue":{"expression":{"id":45955,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46113,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[45967],"declarations":[{"constant":false,"id":45967,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46113,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45966,"nodeType":"UserDefinedTypeName","pathNode":{"id":45965,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"24736:13:69"},"referencedDeclaration":50057,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45972,"initialValue":{"arguments":[{"id":45970,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45968,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46615,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50057_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[45974],"declarations":[{"constant":false,"id":45974,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46113,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45973,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45977,"initialValue":{"expression":{"id":45975,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":45982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45978,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45980,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":45981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45996,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45998,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":45999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46100,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46038],"declarations":[{"constant":false,"id":46038,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46100,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46037,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46047,"initialValue":{"arguments":[{"expression":{"id":46041,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46043,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46039,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46048,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46050,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46098,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46085,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46086,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46080,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46088,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46090,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46089,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46094,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46097,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46099,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46079,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46058,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46053,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46061,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46067,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46068,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46062,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47213,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44210,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46070,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46076,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46072,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46071,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46078,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46101,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46036,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46002,46004],"declarations":[{"constant":false,"id":46002,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46036,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46001,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46004,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46036,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46003,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46015,"initialValue":{"arguments":[{"expression":{"id":46007,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46009,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46011,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46013,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46005,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46016,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46022,"indexExpression":{"id":46019,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46024,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46002,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46026,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46032,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46033,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46004,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46027,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46035,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46102,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":45995,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":45993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45983,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45989,"indexExpression":{"id":45986,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45991,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45994,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46106,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46103,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46630,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46112,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46111,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45962,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45963,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46114,"initializationExpression":{"assignments":[45959],"declarations":[{"constant":false,"id":45959,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46114,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45958,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45961,"initialValue":{"id":45960,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45954,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46115,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46118,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46122,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46124,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46123,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45276,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46126,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45919,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45921,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46128,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45920,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45923,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46129],"name":"LibStaking","nameLocation":"15346:10:69","scope":46394,"usedErrors":[32461,32469,37450]},{"id":46393,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46134,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46131,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"26321:15:69"},"typeName":{"id":46133,"nodeType":"UserDefinedTypeName","pathNode":{"id":46132,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"26341:12:69"},"referencedDeclaration":50143,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46138,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46135,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46631,"src":"26365:19:69"},"typeName":{"id":46137,"nodeType":"UserDefinedTypeName","pathNode":{"id":46136,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"26389:16:69"},"referencedDeclaration":50076,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46173,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46172,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46148],"declarations":[{"constant":false,"id":46148,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46172,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46147,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46162,"initialValue":{"arguments":[{"expression":{"expression":{"id":46152,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46155,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46158,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46149,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46141,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46597,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50049_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46163,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46148,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46164,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50062,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46171,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46170,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46167,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46169,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46141,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46173,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46140,"nodeType":"UserDefinedTypeName","pathNode":{"id":46139,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"26433:23:69"},"referencedDeclaration":50150,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46144,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46173,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46143,"nodeType":"UserDefinedTypeName","pathNode":{"id":46142,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50063,"src":"26471:20:69"},"referencedDeclaration":50063,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46146,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46214,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46213,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46184],"declarations":[{"constant":false,"id":46184,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46213,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46183,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46187,"initialValue":{"expression":{"id":46185,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46180,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46188,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46184,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46193,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46192,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46182,"id":46191,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46211,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46201,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46202,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46180,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46204,"indexExpression":{"id":46203,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46200,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46173,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50150_storage_ptr_$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46206,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46210,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46207,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46209,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46197,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46198,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46184,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46212,"initializationExpression":{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46212,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46194,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46196,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46176,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46214,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46175,"nodeType":"UserDefinedTypeName","pathNode":{"id":46174,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"26928:23:69"},"referencedDeclaration":50150,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46180,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46214,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46178,"nodeType":"UserDefinedTypeName","pathNode":{"id":46177,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50063,"src":"26974:20:69"},"referencedDeclaration":50063,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46179,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46182,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46392,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46391,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46223,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46224,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46232,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46239,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46238,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46222,"id":46237,"nodeType":"Return","src":"27697:7:69"}]}},"id":46240,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46231,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46228,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46230,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46391,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46241,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46246,"initialValue":{"expression":{"expression":{"id":46243,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46379,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46256],"declarations":[{"constant":false,"id":46256,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46379,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46255,"nodeType":"UserDefinedTypeName","pathNode":{"id":46254,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"27852:13:69"},"referencedDeclaration":50057,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46262,"initialValue":{"arguments":[{"id":46260,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46615,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50057_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46264],"declarations":[{"constant":false,"id":46264,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46379,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46263,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46267,"initialValue":{"expression":{"id":46265,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46268,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46270,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46286,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46288,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46364,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46328],"declarations":[{"constant":false,"id":46328,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46364,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46327,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46337,"initialValue":{"arguments":[{"expression":{"id":46331,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46333,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46335,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46329,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46338,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46340,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46362,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46358,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46359,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46328,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46361,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46363,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46352,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46348,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46349,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46328,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46343,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46351,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46365,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46326,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46292,46294],"declarations":[{"constant":false,"id":46292,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46326,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46291,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46294,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46326,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46293,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46305,"initialValue":{"arguments":[{"expression":{"id":46297,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46299,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46301,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46303,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46295,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46306,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46312,"indexExpression":{"id":46309,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46314,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46292,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46316,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46322,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46323,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46294,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46317,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46325,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46366,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46285,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46273,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46279,"indexExpression":{"id":46276,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46281,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46284,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46630,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46374,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46378,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46375,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46377,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46251,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46252,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46380,"initializationExpression":{"assignments":[46248],"declarations":[{"constant":false,"id":46248,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46380,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46247,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46250,"initialValue":{"id":46249,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46386,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46390,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46215,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46218,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46392,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46217,"nodeType":"UserDefinedTypeName","pathNode":{"id":46216,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"27402:23:69"},"referencedDeclaration":50150,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46220,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46392,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46219,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46222,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46130,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46393],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46394,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file diff --git a/.out/LibStaking.sol/LibValidatorTracking.json b/.out/LibStaking.sol/LibValidatorTracking.json index c84c0d6ac..fc275de7e 100644 --- a/.out/LibStaking.sol/LibValidatorTracking.json +++ b/.out/LibStaking.sol/LibValidatorTracking.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220bf1e240d4888afe6d7867a6cdfbd2db53acd6684842a79b34c7f1d0451b24a4564736f6c63430008130033","sourceMap":"26280:2695:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220bf1e240d4888afe6d7867a6cdfbd2db53acd6684842a79b34c7f1d0451b24a4564736f6c63430008130033","sourceMap":"26280:2695:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The library for tracking validator changes coming from the parent. Should be used in the child gateway to store changes until they can be applied.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibValidatorTracking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibValidatorTracking"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46441,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50140],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44183],"LibMaxPQ":[49016],"LibMinPQ":[49635],"LibStaking":[46176],"LibStakingChangeLog":[46678],"LibStakingReleaseQueue":[44302],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"MaxPQ":[48411],"MinPQ":[49029],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"SubnetActorStorage":[47281],"Validator":[50211],"ValidatorSet":[50190],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":44015,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44017,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":44016,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44020,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":44018,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44019,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44023,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":44021,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49016,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44022,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44026,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":44024,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49635,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44025,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44028,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":46679,"symbolAliases":[{"foreign":{"id":44027,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46678,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44040,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":44029,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44030,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44031,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44032,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44033,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44034,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44035,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44036,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44037,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50140,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44038,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44039,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44048,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":44041,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44042,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44043,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44044,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44045,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44046,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44047,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44050,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44049,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44183,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44089,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44088,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44061],"declarations":[{"constant":false,"id":44061,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44088,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44060,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44064,"initialValue":{"expression":{"id":44062,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44066],"declarations":[{"constant":false,"id":44066,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44088,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44065,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44067,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44069,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44072,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44076,"indexExpression":{"id":44074,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44066,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44077,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44057,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"id":44079,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44080,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44083,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44087,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44051,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44054,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44089,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44053,"nodeType":"UserDefinedTypeName","pathNode":{"id":44052,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1132:22:69"},"referencedDeclaration":50140,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44057,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44089,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44056,"nodeType":"UserDefinedTypeName","pathNode":{"id":44055,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1169:14:69"},"referencedDeclaration":50130,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44059,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44182,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44181,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44101],"declarations":[{"constant":false,"id":44101,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44100,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44104,"initialValue":{"expression":{"id":44102,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44113,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44112,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44109,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44111,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44115],"declarations":[{"constant":false,"id":44115,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44181,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44114,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44118,"initialValue":{"expression":{"id":44116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44181,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44119,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44122,"initialValue":{"id":44121,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44124],"declarations":[{"constant":false,"id":44124,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44125,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44163,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44131],"declarations":[{"constant":false,"id":44131,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44163,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44130,"nodeType":"UserDefinedTypeName","pathNode":{"id":44129,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1987:14:69"},"referencedDeclaration":50130,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44136,"initialValue":{"baseExpression":{"expression":{"id":44132,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44135,"indexExpression":{"id":44134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44137,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50126,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44139,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44144,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44143,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44142,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44145,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44146,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50129,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44149,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44153,"indexExpression":{"id":44152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44155,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44162,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44158,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44159,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44161,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44127,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44164,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44170,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44174,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44176,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44178,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44099,"id":44180,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44090,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44093,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44182,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44092,"nodeType":"UserDefinedTypeName","pathNode":{"id":44091,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1654:22:69"},"referencedDeclaration":50140,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44183],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46441,"usedErrors":[]},{"id":44302,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44187,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44185,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44186,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44191,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44188,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44183,"src":"2668:25:69"},"typeName":{"id":44190,"nodeType":"UserDefinedTypeName","pathNode":{"id":44189,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2698:22:69"},"referencedDeclaration":50140,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44199,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44193,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44199,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44192,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44195,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44199,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44197,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44199,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44214,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44213,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44207,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44202,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44210,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44204,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44212,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44202,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44214,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44201,"nodeType":"UserDefinedTypeName","pathNode":{"id":44200,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2842:19:69"},"referencedDeclaration":50150,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44204,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44214,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44206,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44257,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44256,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44226],"declarations":[{"constant":false,"id":44226,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44256,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44232,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44227,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44235],"declarations":[{"constant":false,"id":44235,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44256,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44234,"nodeType":"UserDefinedTypeName","pathNode":{"id":44233,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"3192:14:69"},"referencedDeclaration":50130,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44240,"initialValue":{"arguments":[{"id":44237,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44236,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50130_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44247,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44235,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44245,"indexExpression":{"id":44243,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44089,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$_t_struct$_StakingRelease_$50130_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44249,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44251,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44253,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44250,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44199,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44255,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44215,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44218,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44257,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44217,"nodeType":"UserDefinedTypeName","pathNode":{"id":44216,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3039:19:69"},"referencedDeclaration":50150,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44220,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44257,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44219,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44257,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44224,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44301,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44300,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44269,44271],"declarations":[{"constant":false,"id":44269,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44300,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44271,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44300,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44272,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44275,"indexExpression":{"id":44274,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44182,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44279,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44271,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44289,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44288,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44285,"indexExpression":{"id":44284,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44287,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44295,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44292,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44290,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44297,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44298,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44267,"id":44299,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44258,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44261,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44301,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44260,"nodeType":"UserDefinedTypeName","pathNode":{"id":44259,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3531:19:69"},"referencedDeclaration":50150,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44263,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44301,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44262,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44301,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44184,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44302],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46441,"usedErrors":[]},{"id":45293,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44307,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44304,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"3936:8:69"},"typeName":{"id":44306,"nodeType":"UserDefinedTypeName","pathNode":{"id":44305,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3949:5:69"},"referencedDeclaration":49029,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":44311,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44308,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"3966:8:69"},"typeName":{"id":44310,"nodeType":"UserDefinedTypeName","pathNode":{"id":44309,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3979:5:69"},"referencedDeclaration":48411,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44317,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44313,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44317,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44312,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44315,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44317,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44323,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44319,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44323,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44318,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44321,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44323,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44320,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44329,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44329,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44324,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44327,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44329,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44335,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44331,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44335,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44330,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44333,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44335,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44341,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44337,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44336,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44339,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44338,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44345,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44343,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44345,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44342,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44349,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44347,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44349,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44346,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44385,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44384,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":44364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44360,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44362,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":44363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44382,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44374,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44375,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44378,"indexExpression":{"id":44377,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44381,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44383,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44373,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44365,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44366,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44369,"indexExpression":{"id":44368,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44372,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44350,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44353,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44385,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44352,"nodeType":"UserDefinedTypeName","pathNode":{"id":44351,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4552:12:69"},"referencedDeclaration":50190,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44355,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44385,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44354,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44358,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44385,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44357,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44400,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44399,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44394,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44392,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44395,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44389,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44398,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44386,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44389,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44388,"nodeType":"UserDefinedTypeName","pathNode":{"id":44387,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5013:12:69"},"referencedDeclaration":50190,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44392,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44417,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44416,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44409,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44407,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44410,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44404,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44415,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44401,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44404,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44417,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44403,"nodeType":"UserDefinedTypeName","pathNode":{"id":44402,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5240:12:69"},"referencedDeclaration":50190,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44407,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44417,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44406,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44437,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44436,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44428,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44429,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44421,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44432,"indexExpression":{"id":44431,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44423,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44435,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44418,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44421,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44420,"nodeType":"UserDefinedTypeName","pathNode":{"id":44419,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5482:12:69"},"referencedDeclaration":50190,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44423,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44437,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44422,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44426,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44489,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44488,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44447],"declarations":[{"constant":false,"id":44447,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44488,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44446,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44452,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44448,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44453,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44454,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44455,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44460,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44484,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44468,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44472,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44473,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44479,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44466,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44462],"declarations":[{"constant":false,"id":44462,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44461,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44464,"initialValue":{"hexValue":"31","id":44463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44486,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44445,"id":44487,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44440,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44489,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44439,"nodeType":"UserDefinedTypeName","pathNode":{"id":44438,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5708:12:69"},"referencedDeclaration":50190,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44444,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44489,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44442,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44443,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44534,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44533,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44499],"declarations":[{"constant":false,"id":44499,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44533,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44498,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44531,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44513],"declarations":[{"constant":false,"id":44513,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44531,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44512,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44519,"initialValue":{"arguments":[{"id":44517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44514,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44520,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44496,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44522,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44523,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44521,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44526,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44530,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44529,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44510,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44499,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44532,"initializationExpression":{"assignments":[44506],"declarations":[{"constant":false,"id":44506,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44532,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44505,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44508,"initialValue":{"hexValue":"31","id":44507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44490,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44493,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44492,"nodeType":"UserDefinedTypeName","pathNode":{"id":44491,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6212:12:69"},"referencedDeclaration":50190,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44496,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44495,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44585,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44584,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44544],"declarations":[{"constant":false,"id":44544,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44584,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44543,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44549,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44545,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44576,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44558],"declarations":[{"constant":false,"id":44558,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44576,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44557,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44564,"initialValue":{"arguments":[{"id":44562,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44559,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48450,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44565,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44567,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44568,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44558,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44566,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44437,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44571,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44575,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44574,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44554,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44555,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44544,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44577,"initializationExpression":{"assignments":[44551],"declarations":[{"constant":false,"id":44551,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44577,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44550,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44553,"initialValue":{"hexValue":"31","id":44552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44578,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44580,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44579,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44583,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44535,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44538,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44537,"nodeType":"UserDefinedTypeName","pathNode":{"id":44536,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6718:12:69"},"referencedDeclaration":50190,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44541,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44540,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44655,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44654,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44599],"declarations":[{"constant":false,"id":44599,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44654,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44602,"initialValue":{"expression":{"id":44600,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44607],"declarations":[{"constant":false,"id":44607,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44654,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44606,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44613,"initialValue":{"arguments":[{"id":44611,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44609,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44650,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44621,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44622,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44624,"indexExpression":{"id":44623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44620,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44672,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44634,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44633,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44628,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44630,"indexExpression":{"id":44629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44627,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44632,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44635,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44637,"indexExpression":{"id":44636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44639,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44640,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44642,"indexExpression":{"id":44641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44638,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44645,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44649,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44648,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44617,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44618,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44651,"initializationExpression":{"assignments":[44615],"declarations":[{"constant":false,"id":44615,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44651,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44614,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44616,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44652,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44597,"id":44653,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44586,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44589,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44655,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44588,"nodeType":"UserDefinedTypeName","pathNode":{"id":44587,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7383:12:69"},"referencedDeclaration":50190,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44592,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44655,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44590,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44591,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44655,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44594,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44595,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44672,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44671,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44668,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44660,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44665,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44658,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44664,"id":44670,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44658,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44672,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44657,"nodeType":"UserDefinedTypeName","pathNode":{"id":44656,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7984:12:69"},"referencedDeclaration":50190,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44660,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44672,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44659,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44672,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44662,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44693,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44692,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44676,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44687,"indexExpression":{"id":44685,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44678,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44689,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44680,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44691,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44673,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44676,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44693,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44675,"nodeType":"UserDefinedTypeName","pathNode":{"id":44674,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8186:12:69"},"referencedDeclaration":50190,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44678,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44693,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44677,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44680,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44693,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44679,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44682,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44714,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44713,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44704,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44697,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44708,"indexExpression":{"id":44706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44699,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44701,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44712,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44694,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44697,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44714,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44696,"nodeType":"UserDefinedTypeName","pathNode":{"id":44695,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8671:12:69"},"referencedDeclaration":50190,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44699,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44714,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44698,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44701,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44714,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44700,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44703,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44755,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44754,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44726],"declarations":[{"constant":false,"id":44726,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44754,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44725,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44732,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44730,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44733,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44740,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44739,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44736,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44738,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44741,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44742,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44744,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44745,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44749,"indexExpression":{"id":44747,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44751,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44753,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44715,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44718,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44755,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44717,"nodeType":"UserDefinedTypeName","pathNode":{"id":44716,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8919:12:69"},"referencedDeclaration":50190,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44720,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44755,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44719,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44722,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44755,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44721,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44808,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44807,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44767],"declarations":[{"constant":false,"id":44767,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44807,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44773,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44768,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44771,"indexExpression":{"id":44770,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44774,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44778,"indexExpression":{"id":44776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44780,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44782,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44783,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44784,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44788,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44789,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44804,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44799,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44800,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44801,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44798,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44803,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44805,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44797,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44792,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44793,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44794,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44791,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44796,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44806,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44787,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44765,"id":44786,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44756,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44759,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44808,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44758,"nodeType":"UserDefinedTypeName","pathNode":{"id":44757,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9361:12:69"},"referencedDeclaration":50190,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44761,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44808,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44760,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44763,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44808,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44762,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44765,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44819],"declarations":[{"constant":false,"id":44819,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44849,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44818,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44827,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44823,"indexExpression":{"id":44822,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44825,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44828,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44832,"indexExpression":{"id":44830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44834,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44836,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44840,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44842,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44844,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44843,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44811,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44850,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44810,"nodeType":"UserDefinedTypeName","pathNode":{"id":44809,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9900:12:69"},"referencedDeclaration":50190,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44813,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44850,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44812,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44815,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44850,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44814,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44817,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44916,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44915,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44861],"declarations":[{"constant":false,"id":44861,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44915,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44869,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44865,"indexExpression":{"id":44864,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44867,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44871],"declarations":[{"constant":false,"id":44871,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44915,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44870,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44877,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44872,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44875,"indexExpression":{"id":44874,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44878,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44881,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44871,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44901,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44896,"indexExpression":{"id":44894,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44898,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44900,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44902,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44891,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44888,"indexExpression":{"id":44887,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44890,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44905,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44906,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44903,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44908,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44914,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44916,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44852,"nodeType":"UserDefinedTypeName","pathNode":{"id":44851,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"10311:12:69"},"referencedDeclaration":50190,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44916,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44854,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44857,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44916,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45081,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45080,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44930,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44927,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44948,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44947,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44937,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44938,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49342,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44940,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44942,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44943,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44941,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44945,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44926,"id":44946,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44950],"declarations":[{"constant":false,"id":44950,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45080,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44949,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44953,"initialValue":{"expression":{"id":44951,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44955],"declarations":[{"constant":false,"id":44955,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44954,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44960,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44956,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44961,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44950,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44962,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44955,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44979,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44969,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44970,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44972,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44974,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44975,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44973,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44977,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44926,"id":44978,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44982,44984],"declarations":[{"constant":false,"id":44982,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44981,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44984,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45080,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44983,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44990,"initialValue":{"arguments":[{"id":44988,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44991,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44984,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44992,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45043,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":45042,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44999,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44994,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45001,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":45005,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45017,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":45016,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":45012,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45013,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":45023,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45024,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45026,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":45032,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45033,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45027,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45035,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":45037,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45038,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45036,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45040,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44926,"id":45041,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45047,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45044,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45065,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45064,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45054,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45055,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48724,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45057,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45059,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45060,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45058,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45062,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44926,"id":45063,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45071,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45072,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45066,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45074,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45076,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45077,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45075,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44335,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45079,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44917,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44920,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45081,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44919,"nodeType":"UserDefinedTypeName","pathNode":{"id":44918,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"11035:12:69"},"referencedDeclaration":50190,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44922,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45081,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44921,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44924,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45081,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44923,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44926,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45292,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45291,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45095,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45132,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45131,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45115,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45114,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44349,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45091,"id":45113,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48759,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45124,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45127,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45125,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45129,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45091,"id":45130,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45136,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45143,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45142,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45139,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45141,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45144,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45201,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45152,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45153,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45147,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49307,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45155,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45157,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45156,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45159,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45199,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45198,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45167,45169],"declarations":[{"constant":false,"id":45167,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45198,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45166,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45169,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45198,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45168,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45175,"initialValue":{"arguments":[{"id":45173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45170,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45176,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45183,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45189,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45190,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45184,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45192,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45194,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45195,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45169,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45193,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45197,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45091,"id":45200,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45209,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45203,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49377,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45211,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45212,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45220,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45219,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45091,"id":45218,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45222,45224],"declarations":[{"constant":false,"id":45222,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45291,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45224,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45291,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45223,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45230,"initialValue":{"arguments":[{"id":45228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45232,45234],"declarations":[{"constant":false,"id":45232,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45291,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45231,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45234,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45291,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45233,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45240,"initialValue":{"arguments":[{"id":45238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45241,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45224,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45242,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45234,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45285,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45284,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45249,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45251,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45259,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45266,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45268,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45274,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45275,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45277,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45279,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45280,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45278,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45282,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45091,"id":45283,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45287,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45288,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45286,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45290,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45082,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45085,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45292,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45084,"nodeType":"UserDefinedTypeName","pathNode":{"id":45083,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"13345:12:69"},"referencedDeclaration":50190,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45087,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45292,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45086,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45089,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45292,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45088,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45091,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45293],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46441,"usedErrors":[]},{"id":46176,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45297,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45294,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44302,"src":"15369:22:69"},"typeName":{"id":45296,"nodeType":"UserDefinedTypeName","pathNode":{"id":45295,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"15396:19:69"},"referencedDeclaration":50150,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45301,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45298,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"15427:19:69"},"typeName":{"id":45300,"nodeType":"UserDefinedTypeName","pathNode":{"id":45299,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"15451:16:69"},"referencedDeclaration":50123,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45305,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45302,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"15479:15:69"},"typeName":{"id":45304,"nodeType":"UserDefinedTypeName","pathNode":{"id":45303,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"15499:12:69"},"referencedDeclaration":50190,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45309,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45306,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"15523:8:69"},"typeName":{"id":45308,"nodeType":"UserDefinedTypeName","pathNode":{"id":45307,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"15536:5:69"},"referencedDeclaration":48411,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45313,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45310,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"15553:8:69"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"15566:5:69"},"referencedDeclaration":49029,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":45316,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45314,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45315,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45319,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46176,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45317,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45323,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45321,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45323,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45320,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45329,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45329,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45324,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45327,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45329,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45326,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45350,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45349,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45338],"declarations":[{"constant":false,"id":45338,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45349,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45337,"nodeType":"UserDefinedTypeName","pathNode":{"id":45336,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"15944:18:69"},"referencedDeclaration":47281,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45339,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45346,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45331,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45338,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45335,"id":45348,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45331,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45350,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45330,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45334,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45350,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45333,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45373,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45372,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45360],"declarations":[{"constant":false,"id":45360,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45372,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45359,"nodeType":"UserDefinedTypeName","pathNode":{"id":45358,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16221:18:69"},"referencedDeclaration":47281,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45364,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45361,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45353,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45365,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45360,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45357,"id":45371,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45351,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45353,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45373,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45352,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45373,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45355,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45396,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45395,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45383],"declarations":[{"constant":false,"id":45383,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45395,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45382,"nodeType":"UserDefinedTypeName","pathNode":{"id":45381,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16516:18:69"},"referencedDeclaration":47281,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45387,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45384,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45376,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45383,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45380,"id":45394,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45374,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45376,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45396,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45375,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45396,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45378,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45409,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45408,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45405,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45399,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45404,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45434,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45403,"id":45407,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45397,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45399,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45409,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45398,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45409,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45401,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45434,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45433,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45419],"declarations":[{"constant":false,"id":45419,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45433,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45418,"nodeType":"UserDefinedTypeName","pathNode":{"id":45417,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17294:18:69"},"referencedDeclaration":47281,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45420,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45419,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45428,"indexExpression":{"id":45427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45412,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45416,"id":45432,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45410,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45412,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45434,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45411,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45434,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45414,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45452,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45451,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45441],"declarations":[{"constant":false,"id":45441,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45451,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45440,"nodeType":"UserDefinedTypeName","pathNode":{"id":45439,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17577:18:69"},"referencedDeclaration":47281,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45445,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45442,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45441,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44417,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45438,"id":45450,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45435,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45452,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45436,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45478,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45477,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45460],"declarations":[{"constant":false,"id":45460,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45477,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45459,"nodeType":"UserDefinedTypeName","pathNode":{"id":45458,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17860:18:69"},"referencedDeclaration":47281,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45461,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45470,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45457,"id":45476,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45453,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45454,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45478,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45455,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45496,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45495,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45485],"declarations":[{"constant":false,"id":45485,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45495,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45484,"nodeType":"UserDefinedTypeName","pathNode":{"id":45483,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18122:18:69"},"referencedDeclaration":47281,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45486,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45490,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45485,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45482,"id":45494,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45479,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45496,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45480,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45514,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45513,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45503],"declarations":[{"constant":false,"id":45503,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45513,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45502,"nodeType":"UserDefinedTypeName","pathNode":{"id":45501,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18333:18:69"},"referencedDeclaration":47281,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45504,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45508,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45503,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45500,"id":45512,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45514,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45498,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45537,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45536,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45524],"declarations":[{"constant":false,"id":45524,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45536,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45523,"nodeType":"UserDefinedTypeName","pathNode":{"id":45522,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18636:18:69"},"referencedDeclaration":47281,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45528,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45525,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45529,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45524,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45533,"indexExpression":{"id":45532,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45517,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45521,"id":45535,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45515,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45517,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45537,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45516,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45537,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45519,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45562,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45561,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45547],"declarations":[{"constant":false,"id":45547,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45561,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45546,"nodeType":"UserDefinedTypeName","pathNode":{"id":45545,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19028:18:69"},"referencedDeclaration":47281,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45551,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45548,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45557,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45540,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45558,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45542,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45552,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45547,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45560,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45538,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45540,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45562,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45539,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45542,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45562,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45541,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45544,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45587,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45586,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45572],"declarations":[{"constant":false,"id":45572,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45586,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45571,"nodeType":"UserDefinedTypeName","pathNode":{"id":45570,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19346:18:69"},"referencedDeclaration":47281,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45576,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45573,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45582,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45565,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45583,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45577,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45572,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44693,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45585,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45563,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45565,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45587,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45564,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45567,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45587,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45566,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45569,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45696,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45695,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45597],"declarations":[{"constant":false,"id":45597,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45695,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45596,"nodeType":"UserDefinedTypeName","pathNode":{"id":45595,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19655:18:69"},"referencedDeclaration":47281,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45598,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45607,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45608,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45602,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45610,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45616,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45611,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45619,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45620,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45694,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45693,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45693,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45623,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45625,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45627],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45693,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45626,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45631,"initialValue":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45656,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45638,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45641,"indexExpression":{"id":45640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":45642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50208,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45643,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45651,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45650,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45645,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45648,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45649,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45655,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45654,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45635,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45636,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45657,"initializationExpression":{"assignments":[45633],"declarations":[{"constant":false,"id":45633,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45657,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45632,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45634,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45658,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45692,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45691,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45661],"declarations":[{"constant":false,"id":45661,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45691,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45660,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45668,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45666,"indexExpression":{"id":45665,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45671],"declarations":[{"constant":false,"id":45671,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45691,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45670,"nodeType":"UserDefinedTypeName","pathNode":{"id":45669,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"20624:9:69"},"referencedDeclaration":50211,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45682,"initialValue":{"arguments":[{"id":45673,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45674,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45661,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45679,"indexExpression":{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45672,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45688,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45671,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45683,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45690,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45588,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45590,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45696,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45589,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45592,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45696,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45591,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45594,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45738,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45737,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45706],"declarations":[{"constant":false,"id":45706,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45737,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45705,"nodeType":"UserDefinedTypeName","pathNode":{"id":45704,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21181:18:69"},"referencedDeclaration":47281,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45710,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45707,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45711,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45719,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45725,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45720,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45728,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45731,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45729,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45736,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45697,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45699,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45738,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45698,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45701,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45738,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45700,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45703,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45766,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45765,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45750],"declarations":[{"constant":false,"id":45750,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45765,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45749,"nodeType":"UserDefinedTypeName","pathNode":{"id":45748,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21838:18:69"},"referencedDeclaration":47281,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45754,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45751,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45760,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45741,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45761,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45743,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45745,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45755,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46528,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45764,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45739,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45741,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45766,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45740,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45743,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45766,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45742,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45745,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45766,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45744,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45747,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45791,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45790,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45776],"declarations":[{"constant":false,"id":45776,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45790,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45775,"nodeType":"UserDefinedTypeName","pathNode":{"id":45774,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22154:18:69"},"referencedDeclaration":47281,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45777,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45786,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45769,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45787,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45771,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46488,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45789,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45767,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45769,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45791,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45768,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45771,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45791,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45770,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45773,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45825,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45824,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45801],"declarations":[{"constant":false,"id":45801,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45824,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45800,"nodeType":"UserDefinedTypeName","pathNode":{"id":45799,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22400:18:69"},"referencedDeclaration":47281,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45802,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45806,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46602,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45814,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45815,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45823,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45792,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45794,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45825,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45793,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45796,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45825,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45795,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45798,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45859,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45858,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45858,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45834,"nodeType":"UserDefinedTypeName","pathNode":{"id":45833,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22703:18:69"},"referencedDeclaration":47281,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46565,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45848,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45854,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45855,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45849,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45857,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45826,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45828,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45859,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45827,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45830,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45859,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45832,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45886,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45885,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45867],"declarations":[{"constant":false,"id":45867,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45885,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45866,"nodeType":"UserDefinedTypeName","pathNode":{"id":45865,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23062:18:69"},"referencedDeclaration":47281,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45868,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45873],"declarations":[{"constant":false,"id":45873,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45885,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45872,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45879,"initialValue":{"arguments":[{"id":45877,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45867,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44301,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45881,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45882,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45873,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45880,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45884,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45860,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45862,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45886,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45861,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45864,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45942,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45941,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45894],"declarations":[{"constant":false,"id":45894,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45941,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45893,"nodeType":"UserDefinedTypeName","pathNode":{"id":45892,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23424:18:69"},"referencedDeclaration":47281,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45895,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45900],"declarations":[{"constant":false,"id":45900,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45941,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45899,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45906,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45901,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45905,"indexExpression":{"id":45904,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45914,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45913,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45910,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45912,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45921,"indexExpression":{"id":45918,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45924,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45925,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45932,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45935,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45933,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45940,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45887,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45889,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45942,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45888,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45891,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45965,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45964,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45951],"declarations":[{"constant":false,"id":45951,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45964,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45950,"nodeType":"UserDefinedTypeName","pathNode":{"id":45949,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23885:18:69"},"referencedDeclaration":47281,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45952,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45956,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45959,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45948,"id":45963,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45943,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45944,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45946,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46175,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46174,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45973],"declarations":[{"constant":false,"id":45973,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46174,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45972,"nodeType":"UserDefinedTypeName","pathNode":{"id":45971,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"24247:18:69"},"referencedDeclaration":47281,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45977,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45974,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45980],"declarations":[{"constant":false,"id":45980,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46174,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45979,"nodeType":"UserDefinedTypeName","pathNode":{"id":45978,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"24322:16:69"},"referencedDeclaration":50123,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45983,"initialValue":{"expression":{"id":45981,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45984,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45985,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45992,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45993,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45998,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45997,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45970,"id":45996,"nodeType":"Return","src":"24585:7:69"}]}},"id":45999,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45991,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45988,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45990,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[46001],"declarations":[{"constant":false,"id":46001,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46174,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46000,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46004,"initialValue":{"expression":{"id":46002,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46160,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[46014],"declarations":[{"constant":false,"id":46014,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46160,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46013,"nodeType":"UserDefinedTypeName","pathNode":{"id":46012,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"24736:13:69"},"referencedDeclaration":50104,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46019,"initialValue":{"arguments":[{"id":46017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46015,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[46021],"declarations":[{"constant":false,"id":46021,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46160,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46020,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46024,"initialValue":{"expression":{"id":46022,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46025,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46027,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46043,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46045,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46147,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46085],"declarations":[{"constant":false,"id":46085,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46147,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46084,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46094,"initialValue":{"arguments":[{"expression":{"id":46088,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46090,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46095,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46097,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46145,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46132,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46133,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46136,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46144,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46146,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46126,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46105,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46100,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46114,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44257,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46117,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46123,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46118,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46125,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46148,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46083,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46049,46051],"declarations":[{"constant":false,"id":46049,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46083,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46048,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46051,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46083,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46050,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46062,"initialValue":{"arguments":[{"expression":{"id":46054,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46056,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46058,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46069,"indexExpression":{"id":46066,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46071,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46049,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46073,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46080,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46051,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46074,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46082,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46149,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":46042,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":46040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46036,"indexExpression":{"id":46033,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46038,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46041,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46155,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46159,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46158,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46010,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46161,"initializationExpression":{"assignments":[46006],"declarations":[{"constant":false,"id":46006,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46161,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46005,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46008,"initialValue":{"id":46007,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46001,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46162,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46165,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46169,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46171,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46170,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45323,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46173,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45966,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45968,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46175,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45967,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45970,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46176],"name":"LibStaking","nameLocation":"15346:10:69","scope":46441,"usedErrors":[32461,32469,37450]},{"id":46440,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46181,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46178,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"26321:15:69"},"typeName":{"id":46180,"nodeType":"UserDefinedTypeName","pathNode":{"id":46179,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"26341:12:69"},"referencedDeclaration":50190,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46185,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46182,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"26365:19:69"},"typeName":{"id":46184,"nodeType":"UserDefinedTypeName","pathNode":{"id":46183,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"26389:16:69"},"referencedDeclaration":50123,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46220,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46219,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46219,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46194,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46209,"initialValue":{"arguments":[{"expression":{"expression":{"id":46199,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46202,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46205,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46196,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46188,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46644,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46210,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46211,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50109,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46218,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46217,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46214,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46216,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46188,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46220,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46187,"nodeType":"UserDefinedTypeName","pathNode":{"id":46186,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26433:23:69"},"referencedDeclaration":50197,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46191,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46220,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46190,"nodeType":"UserDefinedTypeName","pathNode":{"id":46189,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26471:20:69"},"referencedDeclaration":50110,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46193,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46261,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46260,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46231],"declarations":[{"constant":false,"id":46231,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46260,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46230,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46234,"initialValue":{"expression":{"id":46232,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46235,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46240,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46239,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46229,"id":46238,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46258,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46248,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46223,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46249,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46251,"indexExpression":{"id":46250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46247,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46253,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46257,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46256,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46259,"initializationExpression":{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46259,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46241,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46243,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46223,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46261,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46222,"nodeType":"UserDefinedTypeName","pathNode":{"id":46221,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26928:23:69"},"referencedDeclaration":50197,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46227,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46261,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46225,"nodeType":"UserDefinedTypeName","pathNode":{"id":46224,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26974:20:69"},"referencedDeclaration":50110,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46226,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46229,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46439,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46438,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46270,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46271,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46279,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46280,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46286,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46285,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46269,"id":46284,"nodeType":"Return","src":"27697:7:69"}]}},"id":46287,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46278,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46275,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46277,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46289],"declarations":[{"constant":false,"id":46289,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46438,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46288,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46293,"initialValue":{"expression":{"expression":{"id":46290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46426,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46303],"declarations":[{"constant":false,"id":46303,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46426,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46302,"nodeType":"UserDefinedTypeName","pathNode":{"id":46301,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"27852:13:69"},"referencedDeclaration":50104,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46309,"initialValue":{"arguments":[{"id":46307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46304,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46311],"declarations":[{"constant":false,"id":46311,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46426,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46310,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46314,"initialValue":{"expression":{"id":46312,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46315,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46317,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46333,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46411,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46375],"declarations":[{"constant":false,"id":46375,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46411,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46374,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46384,"initialValue":{"arguments":[{"expression":{"id":46378,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46380,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46385,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46387,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46409,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46405,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46406,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46408,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46410,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46399,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46395,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46398,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46412,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46373,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46339,46341],"declarations":[{"constant":false,"id":46339,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46373,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46338,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46341,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46373,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46340,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46352,"initialValue":{"arguments":[{"expression":{"id":46344,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46346,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46348,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46359,"indexExpression":{"id":46356,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46361,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46339,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46363,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46370,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46341,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46372,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46413,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46332,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46320,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46326,"indexExpression":{"id":46323,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46328,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46331,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46414,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46421,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46425,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46424,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46299,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46427,"initializationExpression":{"assignments":[46295],"declarations":[{"constant":false,"id":46295,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46427,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46294,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46297,"initialValue":{"id":46296,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46289,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46433,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46437,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46262,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46265,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46439,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46264,"nodeType":"UserDefinedTypeName","pathNode":{"id":46263,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"27402:23:69"},"referencedDeclaration":50197,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46267,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46439,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46266,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46269,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46177,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46440],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46441,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220bf1e240d4888afe6d7867a6cdfbd2db53acd6684842a79b34c7f1d0451b24a4564736f6c63430008130033","sourceMap":"26280:2695:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220bf1e240d4888afe6d7867a6cdfbd2db53acd6684842a79b34c7f1d0451b24a4564736f6c63430008130033","sourceMap":"26280:2695:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The library for tracking validator changes coming from the parent. Should be used in the child gateway to store changes until they can be applied.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibValidatorTracking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibValidatorTracking"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46394,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50093],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44136],"LibMaxPQ":[48969],"LibMinPQ":[49588],"LibStaking":[46129],"LibStakingChangeLog":[46631],"LibStakingReleaseQueue":[44255],"LibSubnetActorStorage":[47245],"LibValidatorSet":[45246],"LibValidatorTracking":[46393],"MaxPQ":[48364],"MinPQ":[48982],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50150],"PermissionMode":[50118],"StakingChange":[50057],"StakingChangeLog":[50076],"StakingChangeRequest":[50063],"StakingOperation":[50049],"StakingRelease":[50083],"StakingReleaseQueue":[50103],"SubnetActorStorage":[47234],"Validator":[50164],"ValidatorSet":[50143],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":43968,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43970,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":43969,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43973,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":43971,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43972,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47234,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43976,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":48970,"symbolAliases":[{"foreign":{"id":43974,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48969,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43975,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48364,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43979,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":49589,"symbolAliases":[{"foreign":{"id":43977,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49588,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43978,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48982,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43981,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":46632,"symbolAliases":[{"foreign":{"id":43980,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46631,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43993,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":43982,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43983,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50103,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43984,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50076,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43985,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50057,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43986,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50063,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43987,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43988,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50083,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43989,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43990,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50093,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43991,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43992,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44001,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":43994,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43995,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43996,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43997,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43998,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43999,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44000,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44003,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46394,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44002,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44136,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44042,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44041,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44014],"declarations":[{"constant":false,"id":44014,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44041,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44013,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44017,"initialValue":{"expression":{"id":44015,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44019],"declarations":[{"constant":false,"id":44019,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44041,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44018,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44024,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44020,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44022,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44014,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44025,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44029,"indexExpression":{"id":44027,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44030,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44010,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"id":44032,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44033,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44036,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44014,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44040,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44004,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44007,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44042,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44006,"nodeType":"UserDefinedTypeName","pathNode":{"id":44005,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"1132:22:69"},"referencedDeclaration":50093,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44010,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44042,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44009,"nodeType":"UserDefinedTypeName","pathNode":{"id":44008,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"1169:14:69"},"referencedDeclaration":50083,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44012,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44136,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44135,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44134,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44054],"declarations":[{"constant":false,"id":44054,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44134,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44053,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44057,"initialValue":{"expression":{"id":44055,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44058,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44066,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44065,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44062,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44064,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44068],"declarations":[{"constant":false,"id":44068,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44134,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44067,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"expression":{"id":44069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44073],"declarations":[{"constant":false,"id":44073,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44134,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44072,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44075,"initialValue":{"id":44074,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44077],"declarations":[{"constant":false,"id":44077,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44134,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44076,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44078,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44116,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44084],"declarations":[{"constant":false,"id":44084,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44116,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44083,"nodeType":"UserDefinedTypeName","pathNode":{"id":44082,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"1987:14:69"},"referencedDeclaration":50083,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44089,"initialValue":{"baseExpression":{"expression":{"id":44085,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44088,"indexExpression":{"id":44087,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44090,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44084,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44092,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44097,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44096,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44095,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44098,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44099,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44084,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50082,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44102,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44103,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44106,"indexExpression":{"id":44105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44108,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44115,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44111,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44112,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44114,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44079,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44080,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44117,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44118,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44121,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44123,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44124,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44046,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44127,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44129,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44130,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44131,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44073,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44052,"id":44133,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44043,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44046,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44135,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44045,"nodeType":"UserDefinedTypeName","pathNode":{"id":44044,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"1654:22:69"},"referencedDeclaration":50093,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44135,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44048,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44135,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44050,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44136,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44136],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46394,"usedErrors":[]},{"id":44255,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44140,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44138,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44139,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44144,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44141,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44136,"src":"2668:25:69"},"typeName":{"id":44143,"nodeType":"UserDefinedTypeName","pathNode":{"id":44142,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"2698:22:69"},"referencedDeclaration":50093,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44152,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44146,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44152,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44145,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44148,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44152,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44147,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44150,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44152,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44149,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44167,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44166,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44155,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50096,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44163,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44157,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44165,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44155,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44167,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44154,"nodeType":"UserDefinedTypeName","pathNode":{"id":44153,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"2842:19:69"},"referencedDeclaration":50103,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44157,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44167,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44156,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44159,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44210,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44209,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44179],"declarations":[{"constant":false,"id":44179,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44209,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44178,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44185,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44180,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44182,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44171,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50096,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44188],"declarations":[{"constant":false,"id":44188,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44209,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44187,"nodeType":"UserDefinedTypeName","pathNode":{"id":44186,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"3192:14:69"},"referencedDeclaration":50083,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44193,"initialValue":{"arguments":[{"id":44190,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44191,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44175,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44189,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50083,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50083_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44200,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44188,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50083_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44194,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44171,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44198,"indexExpression":{"id":44196,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44173,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44042,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$_t_struct$_StakingRelease_$50083_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44202,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44204,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44173,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44205,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44175,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44206,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44203,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44152,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44208,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44168,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44171,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44210,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44170,"nodeType":"UserDefinedTypeName","pathNode":{"id":44169,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"3039:19:69"},"referencedDeclaration":50103,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44173,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44210,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44172,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44175,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44210,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44174,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44177,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44254,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44253,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44222,44224],"declarations":[{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44253,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44224,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44253,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44223,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44214,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44228,"indexExpression":{"id":44227,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44135,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50093_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44232,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44224,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44242,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44241,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44214,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50102,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44238,"indexExpression":{"id":44237,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44240,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44248,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44245,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44216,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44243,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44250,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44251,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44220,"id":44252,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44211,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44214,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44254,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44213,"nodeType":"UserDefinedTypeName","pathNode":{"id":44212,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"3531:19:69"},"referencedDeclaration":50103,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44216,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44254,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44215,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44254,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44218,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44137,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44255],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46394,"usedErrors":[]},{"id":45246,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44260,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44257,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49588,"src":"3936:8:69"},"typeName":{"id":44259,"nodeType":"UserDefinedTypeName","pathNode":{"id":44258,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"3949:5:69"},"referencedDeclaration":48982,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}}},{"id":44264,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44261,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48969,"src":"3966:8:69"},"typeName":{"id":44263,"nodeType":"UserDefinedTypeName","pathNode":{"id":44262,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"3979:5:69"},"referencedDeclaration":48364,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44270,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44270,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44265,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44268,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44270,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44267,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44276,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44272,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44276,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44271,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44274,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44276,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44273,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44282,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44278,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44282,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44277,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44280,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44282,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44279,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44288,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44284,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44288,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44283,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44286,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44288,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44285,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44294,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44290,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44294,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44289,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44292,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44294,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44291,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44298,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44296,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44298,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44295,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44302,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44300,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44302,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44299,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44338,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44337,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"id":44317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44313,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44315,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":44316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44335,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44327,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44311,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44328,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44331,"indexExpression":{"id":44330,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44308,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44334,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44336,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44326,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44318,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44311,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44319,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44306,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44322,"indexExpression":{"id":44321,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44308,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44325,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44306,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44338,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44305,"nodeType":"UserDefinedTypeName","pathNode":{"id":44304,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"4552:12:69"},"referencedDeclaration":50143,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44308,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44338,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44307,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44311,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44338,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44310,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44353,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44352,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44347,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44348,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44342,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44351,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44339,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44342,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44353,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44341,"nodeType":"UserDefinedTypeName","pathNode":{"id":44340,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5013:12:69"},"referencedDeclaration":50143,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44345,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44353,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44344,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44370,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44369,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44362,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44360,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44363,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44357,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44368,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44354,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44357,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44370,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44356,"nodeType":"UserDefinedTypeName","pathNode":{"id":44355,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5240:12:69"},"referencedDeclaration":50143,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44360,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44370,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44359,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44390,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44389,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44381,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44379,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44382,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44374,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44385,"indexExpression":{"id":44384,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44376,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44388,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44371,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44374,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44390,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44373,"nodeType":"UserDefinedTypeName","pathNode":{"id":44372,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5482:12:69"},"referencedDeclaration":50143,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44376,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44390,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44375,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44379,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44390,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44378,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44442,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44441,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44400],"declarations":[{"constant":false,"id":44400,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44441,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44399,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44405,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44401,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44393,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44406,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44410,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44407,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44408,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44413,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44437,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44421,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44425,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44429,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44426,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44393,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49021,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44432,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44436,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44435,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44418,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44415,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44419,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44438,"initializationExpression":{"assignments":[44415],"declarations":[{"constant":false,"id":44415,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44438,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44414,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44417,"initialValue":{"hexValue":"31","id":44416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44439,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44397,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44398,"id":44440,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44393,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44442,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44392,"nodeType":"UserDefinedTypeName","pathNode":{"id":44391,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"5708:12:69"},"referencedDeclaration":50143,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44397,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44442,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44395,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44396,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44487,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44486,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44452],"declarations":[{"constant":false,"id":44452,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44486,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44451,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44457,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44453,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44484,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44466],"declarations":[{"constant":false,"id":44466,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44484,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44465,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44472,"initialValue":{"arguments":[{"id":44470,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44467,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49021,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44473,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44449,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44475,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44446,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44476,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44466,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44474,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44338,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44479,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44462,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44459,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44463,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44452,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44459],"declarations":[{"constant":false,"id":44459,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44458,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44461,"initialValue":{"hexValue":"31","id":44460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44443,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44446,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44487,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44445,"nodeType":"UserDefinedTypeName","pathNode":{"id":44444,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"6212:12:69"},"referencedDeclaration":50143,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44449,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44487,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44448,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44538,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44537,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44497],"declarations":[{"constant":false,"id":44497,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44537,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44496,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44502,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44498,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44529,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44511],"declarations":[{"constant":false,"id":44511,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44529,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44510,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44517,"initialValue":{"arguments":[{"id":44515,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44512,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44518,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44494,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44520,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44521,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44511,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44519,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44524,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44528,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44527,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44507,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44508,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44497,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44530,"initializationExpression":{"assignments":[44504],"declarations":[{"constant":false,"id":44504,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44530,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44503,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44506,"initialValue":{"hexValue":"31","id":44505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44531,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44494,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44533,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44491,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44532,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44536,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44488,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44491,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44538,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44490,"nodeType":"UserDefinedTypeName","pathNode":{"id":44489,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"6718:12:69"},"referencedDeclaration":50143,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44494,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44538,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44493,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44608,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44607,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44552],"declarations":[{"constant":false,"id":44552,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44607,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44551,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44555,"initialValue":{"expression":{"id":44553,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44560],"declarations":[{"constant":false,"id":44560,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44607,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44558,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44559,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44566,"initialValue":{"arguments":[{"id":44564,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44552,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44561,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44562,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44603,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44574,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44542,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44575,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44577,"indexExpression":{"id":44576,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44573,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44625,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44587,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44586,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44581,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44583,"indexExpression":{"id":44582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44580,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44585,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44588,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44560,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44590,"indexExpression":{"id":44589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44592,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44542,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44593,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44545,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44595,"indexExpression":{"id":44594,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44591,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44338,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44598,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44602,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44601,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44570,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44571,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44552,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44604,"initializationExpression":{"assignments":[44568],"declarations":[{"constant":false,"id":44568,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44604,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44567,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44569,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44605,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44560,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44550,"id":44606,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44539,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44542,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44608,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44541,"nodeType":"UserDefinedTypeName","pathNode":{"id":44540,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"7383:12:69"},"referencedDeclaration":50143,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44545,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44608,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44543,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44544,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44608,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44547,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44548,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44625,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44624,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44621,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44613,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44618,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44611,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44617,"id":44623,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44611,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44625,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44610,"nodeType":"UserDefinedTypeName","pathNode":{"id":44609,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"7984:12:69"},"referencedDeclaration":50143,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44613,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44625,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44612,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44625,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44615,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45246,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44646,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44645,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44636,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44629,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44640,"indexExpression":{"id":44638,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44631,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44642,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44633,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44644,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44626,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44629,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44646,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44628,"nodeType":"UserDefinedTypeName","pathNode":{"id":44627,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8186:12:69"},"referencedDeclaration":50143,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44631,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44646,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44630,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44633,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44646,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44632,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44635,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44667,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44666,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44657,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44650,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44661,"indexExpression":{"id":44659,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44652,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44663,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44654,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44665,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44647,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44650,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44667,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44649,"nodeType":"UserDefinedTypeName","pathNode":{"id":44648,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8671:12:69"},"referencedDeclaration":50143,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44652,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44667,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44651,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44654,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44667,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44653,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44656,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44708,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44707,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44679],"declarations":[{"constant":false,"id":44679,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44707,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44678,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44685,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44680,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44671,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44683,"indexExpression":{"id":44682,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44686,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44693,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44692,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44689,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44691,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44694,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44695,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44697,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44698,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44671,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44702,"indexExpression":{"id":44700,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44704,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44706,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44668,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44671,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44708,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44670,"nodeType":"UserDefinedTypeName","pathNode":{"id":44669,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"8919:12:69"},"referencedDeclaration":50143,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44673,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44708,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44672,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44675,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44708,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44674,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44677,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44761,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44760,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44720],"declarations":[{"constant":false,"id":44720,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44760,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44719,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44726,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44721,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44724,"indexExpression":{"id":44723,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44731,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50106,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44733,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44735,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44736,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44737,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44741,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44742,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44757,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44752,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44753,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44754,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44751,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45245,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44756,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44758,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44750,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44745,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44712,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44746,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44714,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44747,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44716,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44744,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45034,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44749,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44759,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44740,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44718,"id":44739,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44709,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44712,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44761,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44711,"nodeType":"UserDefinedTypeName","pathNode":{"id":44710,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"9361:12:69"},"referencedDeclaration":50143,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44714,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44761,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44713,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44716,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44761,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44715,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44718,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44803,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44802,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44772],"declarations":[{"constant":false,"id":44772,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44802,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44771,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44780,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44773,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44776,"indexExpression":{"id":44775,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44778,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44768,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44781,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44785,"indexExpression":{"id":44783,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44787,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44772,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44789,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44790,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44793,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44768,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44795,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44797,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44764,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44798,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44766,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44799,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44772,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44796,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45034,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44801,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44764,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44803,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44763,"nodeType":"UserDefinedTypeName","pathNode":{"id":44762,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"9900:12:69"},"referencedDeclaration":50143,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44766,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44803,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44765,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44768,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44803,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44767,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44770,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44869,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44868,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44814],"declarations":[{"constant":false,"id":44814,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44868,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44813,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44822,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44815,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44818,"indexExpression":{"id":44817,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44820,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44810,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44824],"declarations":[{"constant":false,"id":44824,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44868,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44823,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44830,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44825,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44828,"indexExpression":{"id":44827,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44831,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44834,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44824,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44854,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44845,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44849,"indexExpression":{"id":44847,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44851,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44853,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44855,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44844,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44838,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44841,"indexExpression":{"id":44840,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44843,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44857,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44858,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44808,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44859,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44814,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44856,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45245,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44861,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44806,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50128,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44865,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44810,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44867,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44806,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44869,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44805,"nodeType":"UserDefinedTypeName","pathNode":{"id":44804,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"10311:12:69"},"referencedDeclaration":50143,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44808,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44869,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44807,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44810,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44869,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44809,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44812,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45034,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45033,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44883,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44880,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44901,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44900,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44890,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44891,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49295,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44893,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44895,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44896,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44894,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44270,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44898,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44879,"id":44899,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44903],"declarations":[{"constant":false,"id":44903,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45033,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44902,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44906,"initialValue":{"expression":{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50125,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44908],"declarations":[{"constant":false,"id":44908,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45033,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44907,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44913,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44914,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44903,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44915,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44908,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44933,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44932,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44922,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44923,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44917,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44925,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44927,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44928,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44926,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44282,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44930,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44879,"id":44931,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44935,44937],"declarations":[{"constant":false,"id":44935,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45033,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44934,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44937,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45033,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44936,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44943,"initialValue":{"arguments":[{"id":44941,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44938,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49371,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44944,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44937,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44945,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44996,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":44995,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44952,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44947,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49168,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44954,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":44958,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44955,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44970,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":44969,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":44965,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44966,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44960,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48642,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44968,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":44976,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44977,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44971,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":44975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44979,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44986,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44935,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44980,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44988,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":44990,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44935,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44991,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44989,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44294,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44993,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44879,"id":44994,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45000,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44997,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":44999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45018,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45017,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45008,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48677,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45010,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45012,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45013,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45011,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44276,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44879,"id":45016,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45024,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45025,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45019,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44873,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45027,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45029,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44875,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45030,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44877,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45028,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44288,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45032,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44870,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44873,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45034,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44872,"nodeType":"UserDefinedTypeName","pathNode":{"id":44871,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"11035:12:69"},"referencedDeclaration":50143,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44875,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45034,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44874,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44877,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45034,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44876,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44879,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45245,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45244,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45045,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45085,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45084,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45050,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45068,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45067,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45058,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45059,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45053,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48642,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45061,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45063,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45062,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44302,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45065,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45044,"id":45066,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45074,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45075,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48712,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45077,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45080,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45078,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44276,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45082,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45044,"id":45083,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45089,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45086,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45096,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45095,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45092,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45094,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45155,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45154,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49260,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44298,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45113,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45152,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45151,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45120,45122],"declarations":[{"constant":false,"id":45120,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45151,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45119,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45122,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45151,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45121,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45128,"initialValue":{"arguments":[{"id":45126,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45123,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48753,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45134,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45129,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48550,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45136,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45142,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45143,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45120,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45137,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45145,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45147,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45120,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45148,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45122,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45146,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44282,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45150,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45044,"id":45153,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45161,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45162,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45156,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49330,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45164,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45173,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45172,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45044,"id":45171,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45175,45177],"declarations":[{"constant":false,"id":45175,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45244,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45174,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45177,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45244,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45176,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45183,"initialValue":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45178,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49371,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45185,45187],"declarations":[{"constant":false,"id":45185,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45244,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45184,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45187,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45244,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45186,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45193,"initialValue":{"arguments":[{"id":45191,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45188,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48753,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45194,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45195,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45187,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45238,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45237,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45202,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45197,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49168,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45204,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48550,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45212,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45218,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45219,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45213,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49101,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$48982_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45221,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45227,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45228,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45175,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45222,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48483,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45230,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45232,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45175,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45233,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45231,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44294,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45235,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45044,"id":45236,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45240,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45040,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45241,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45042,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45239,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44270,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45243,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45035,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45038,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45245,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45037,"nodeType":"UserDefinedTypeName","pathNode":{"id":45036,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"13345:12:69"},"referencedDeclaration":50143,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45040,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45245,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45039,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45042,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45245,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45041,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45044,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45246,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44256,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45246],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46394,"usedErrors":[]},{"id":46129,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45250,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45247,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44255,"src":"15369:22:69"},"typeName":{"id":45249,"nodeType":"UserDefinedTypeName","pathNode":{"id":45248,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"15396:19:69"},"referencedDeclaration":50103,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45254,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45251,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46631,"src":"15427:19:69"},"typeName":{"id":45253,"nodeType":"UserDefinedTypeName","pathNode":{"id":45252,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"15451:16:69"},"referencedDeclaration":50076,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45258,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45255,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"15479:15:69"},"typeName":{"id":45257,"nodeType":"UserDefinedTypeName","pathNode":{"id":45256,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"15499:12:69"},"referencedDeclaration":50143,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45262,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45259,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48969,"src":"15523:8:69"},"typeName":{"id":45261,"nodeType":"UserDefinedTypeName","pathNode":{"id":45260,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"15536:5:69"},"referencedDeclaration":48364,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45266,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45263,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49588,"src":"15553:8:69"},"typeName":{"id":45265,"nodeType":"UserDefinedTypeName","pathNode":{"id":45264,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"15566:5:69"},"referencedDeclaration":48982,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}}},{"id":45269,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45267,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45268,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45272,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46129,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45270,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45276,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45274,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45276,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45273,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45282,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45278,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45282,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45277,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45280,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45282,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45279,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45303,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45302,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45291],"declarations":[{"constant":false,"id":45291,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45302,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45290,"nodeType":"UserDefinedTypeName","pathNode":{"id":45289,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"15944:18:69"},"referencedDeclaration":47234,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45295,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45292,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45299,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45284,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45296,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45291,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44338,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45288,"id":45301,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45284,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45303,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45283,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45287,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45303,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45286,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45326,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45325,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45313],"declarations":[{"constant":false,"id":45313,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45325,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"16221:18:69"},"referencedDeclaration":47234,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45317,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45314,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45322,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45306,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45318,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49038,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45310,"id":45324,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45304,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45306,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45326,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45305,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45326,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45308,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45349,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45348,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45336],"declarations":[{"constant":false,"id":45336,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45348,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45335,"nodeType":"UserDefinedTypeName","pathNode":{"id":45334,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"16516:18:69"},"referencedDeclaration":47234,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45340,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45337,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45345,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45341,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45336,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48420,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45333,"id":45347,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45327,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45329,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45349,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45328,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45332,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45349,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45331,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45362,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45361,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45358,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45352,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45357,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45387,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45356,"id":45360,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45350,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45352,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45362,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45351,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45362,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45354,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45387,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45386,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45372],"declarations":[{"constant":false,"id":45372,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45386,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45371,"nodeType":"UserDefinedTypeName","pathNode":{"id":45370,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17294:18:69"},"referencedDeclaration":47234,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45376,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45373,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45377,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45372,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45381,"indexExpression":{"id":45380,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45365,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45369,"id":45385,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45363,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45365,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45387,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45364,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45387,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45367,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45405,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45404,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45394],"declarations":[{"constant":false,"id":45394,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45404,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45393,"nodeType":"UserDefinedTypeName","pathNode":{"id":45392,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17577:18:69"},"referencedDeclaration":47234,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45398,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45395,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45399,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45394,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44370,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45391,"id":45403,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45388,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45405,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45389,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45431,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45430,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45413],"declarations":[{"constant":false,"id":45413,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45430,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45412,"nodeType":"UserDefinedTypeName","pathNode":{"id":45411,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"17860:18:69"},"referencedDeclaration":47234,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45417,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45414,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45418,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45413,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50142,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage","typeString":"struct MaxPQ storage ref"}},"id":45421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48386,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48364_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48364_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45423,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45413,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50138,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage","typeString":"struct MinPQ storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49004,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$48982_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$48982_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45410,"id":45429,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45406,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45407,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45431,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45408,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45449,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45448,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45438],"declarations":[{"constant":false,"id":45438,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45448,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45437,"nodeType":"UserDefinedTypeName","pathNode":{"id":45436,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18122:18:69"},"referencedDeclaration":47234,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45442,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45439,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45443,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45438,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44353,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45435,"id":45447,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45432,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45449,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45433,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45467,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45466,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45456],"declarations":[{"constant":false,"id":45456,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45466,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45455,"nodeType":"UserDefinedTypeName","pathNode":{"id":45454,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18333:18:69"},"referencedDeclaration":47234,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45460,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45457,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45461,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45456,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44353,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45453,"id":45465,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45450,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45467,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45451,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45490,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45489,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45477],"declarations":[{"constant":false,"id":45477,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45489,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45476,"nodeType":"UserDefinedTypeName","pathNode":{"id":45475,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"18636:18:69"},"referencedDeclaration":47234,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45481,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45478,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45482,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45477,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45486,"indexExpression":{"id":45485,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45470,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50110,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45474,"id":45488,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45468,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45470,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45490,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45469,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45490,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45472,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45515,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45514,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45500],"declarations":[{"constant":false,"id":45500,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45514,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45499,"nodeType":"UserDefinedTypeName","pathNode":{"id":45498,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19028:18:69"},"referencedDeclaration":47234,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45501,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45493,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45511,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45495,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45500,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45513,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45491,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45493,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45515,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45492,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45495,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45515,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45494,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45540,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45539,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45525],"declarations":[{"constant":false,"id":45525,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45539,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45524,"nodeType":"UserDefinedTypeName","pathNode":{"id":45523,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19346:18:69"},"referencedDeclaration":47234,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45529,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45526,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45535,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45518,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45536,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45520,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45530,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45525,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44646,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45538,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45516,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45518,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45540,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45517,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45520,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45540,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45519,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45522,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45649,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45648,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45550],"declarations":[{"constant":false,"id":45550,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45648,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45549,"nodeType":"UserDefinedTypeName","pathNode":{"id":45548,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"19655:18:69"},"referencedDeclaration":47234,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45554,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45551,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45560,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45561,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45545,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45555,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44667,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45563,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45569,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45545,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45564,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45572,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45573,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45647,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45646,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45577],"declarations":[{"constant":false,"id":45577,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45646,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45576,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45578,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45580],"declarations":[{"constant":false,"id":45580,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45646,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45579,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45584,"initialValue":{"expression":{"expression":{"id":45581,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45609,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45591,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45594,"indexExpression":{"id":45593,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage","typeString":"struct Validator storage ref"}},"id":45595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50161,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45596,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45604,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45603,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45598,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45601,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45602,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45608,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45607,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45588,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45586,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45589,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45580,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45610,"initializationExpression":{"assignments":[45586],"declarations":[{"constant":false,"id":45586,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45610,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45585,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45587,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45611,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45645,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45644,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45614],"declarations":[{"constant":false,"id":45614,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45644,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45613,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45621,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45615,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45619,"indexExpression":{"id":45618,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45644,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45623,"nodeType":"UserDefinedTypeName","pathNode":{"id":45622,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"20624:9:69"},"referencedDeclaration":50164,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45635,"initialValue":{"arguments":[{"id":45626,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45627,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45614,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45632,"indexExpression":{"id":45631,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45543,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45625,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50164_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45641,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45636,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45550,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50164_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45643,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45541,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45543,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45649,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45542,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45545,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45649,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45544,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45547,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45691,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45690,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45659],"declarations":[{"constant":false,"id":45659,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45690,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45658,"nodeType":"UserDefinedTypeName","pathNode":{"id":45657,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"21181:18:69"},"referencedDeclaration":47234,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45663,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45660,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45669,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45670,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45664,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45659,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44708,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45672,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45679,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45673,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45659,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45681,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45654,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45684,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45652,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45682,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45689,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45650,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45652,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45691,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45651,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45654,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45691,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45653,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45656,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45719,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45718,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45703],"declarations":[{"constant":false,"id":45703,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45718,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45702,"nodeType":"UserDefinedTypeName","pathNode":{"id":45701,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"21838:18:69"},"referencedDeclaration":47234,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45707,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45704,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45713,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45694,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45714,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45696,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45715,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45698,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45708,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45703,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46481,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45717,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45692,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45694,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45719,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45693,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45696,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45719,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45695,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45698,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45719,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45697,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45700,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45744,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45743,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45729],"declarations":[{"constant":false,"id":45729,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45743,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45728,"nodeType":"UserDefinedTypeName","pathNode":{"id":45727,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22154:18:69"},"referencedDeclaration":47234,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45730,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45739,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45722,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45740,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45724,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45734,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45729,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46441,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45742,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45720,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45722,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45744,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45721,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45724,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45744,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45723,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45726,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45778,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45777,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45754],"declarations":[{"constant":false,"id":45754,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45777,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45753,"nodeType":"UserDefinedTypeName","pathNode":{"id":45752,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22400:18:69"},"referencedDeclaration":47234,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45758,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45755,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45764,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45747,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45765,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45749,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45759,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46555,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45767,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45773,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45747,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45774,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45749,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45768,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44667,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45776,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45745,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45747,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45778,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45746,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45749,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45778,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45748,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45751,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45812,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45811,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45788],"declarations":[{"constant":false,"id":45788,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45811,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45787,"nodeType":"UserDefinedTypeName","pathNode":{"id":45786,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"22703:18:69"},"referencedDeclaration":47234,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45792,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45789,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45798,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45781,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45799,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45783,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45793,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45788,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46518,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45801,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45807,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45781,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45808,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45783,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45802,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45788,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44708,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45810,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45779,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45781,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45812,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45780,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45783,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45812,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45782,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45785,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45839,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45838,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45820],"declarations":[{"constant":false,"id":45820,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45838,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45819,"nodeType":"UserDefinedTypeName","pathNode":{"id":45818,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23062:18:69"},"referencedDeclaration":47234,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45824,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45821,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45826],"declarations":[{"constant":false,"id":45826,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45838,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45825,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45832,"initialValue":{"arguments":[{"id":45830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45815,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45827,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45820,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47213,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44254,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45834,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45815,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45835,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45826,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45833,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45282,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45837,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45813,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45815,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45839,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45814,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45817,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45895,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45894,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45847],"declarations":[{"constant":false,"id":45847,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45894,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45846,"nodeType":"UserDefinedTypeName","pathNode":{"id":45845,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23424:18:69"},"referencedDeclaration":47234,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45851,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45848,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45853],"declarations":[{"constant":false,"id":45853,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45894,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45852,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45859,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45854,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45858,"indexExpression":{"id":45857,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45860,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45867,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45866,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45863,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45865,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45868,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45874,"indexExpression":{"id":45871,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45877,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45883,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45879,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45847,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45878,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45885,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45891,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45853,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45888,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45842,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45886,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45893,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45840,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45842,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45895,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45841,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45844,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45918,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45917,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45904],"declarations":[{"constant":false,"id":45904,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45917,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45903,"nodeType":"UserDefinedTypeName","pathNode":{"id":45902,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"23885:18:69"},"referencedDeclaration":47234,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45908,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45905,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45909,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45912,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45915,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45901,"id":45916,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45896,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45918,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45897,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45918,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45899,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46129,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46128,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46127,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45926],"declarations":[{"constant":false,"id":45926,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46127,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45925,"nodeType":"UserDefinedTypeName","pathNode":{"id":45924,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"24247:18:69"},"referencedDeclaration":47234,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45930,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45927,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45933],"declarations":[{"constant":false,"id":45933,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46127,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45932,"nodeType":"UserDefinedTypeName","pathNode":{"id":45931,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"24322:16:69"},"referencedDeclaration":50076,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45936,"initialValue":{"expression":{"id":45934,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45937,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45938,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45945,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45946,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45951,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45950,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45923,"id":45949,"nodeType":"Return","src":"24585:7:69"}]}},"id":45952,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45944,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45941,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45943,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[45954],"declarations":[{"constant":false,"id":45954,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46127,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45953,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45957,"initialValue":{"expression":{"id":45955,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46113,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[45967],"declarations":[{"constant":false,"id":45967,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46113,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45966,"nodeType":"UserDefinedTypeName","pathNode":{"id":45965,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"24736:13:69"},"referencedDeclaration":50057,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45972,"initialValue":{"arguments":[{"id":45970,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45968,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46615,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50057_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[45974],"declarations":[{"constant":false,"id":45974,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46113,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45973,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45977,"initialValue":{"expression":{"id":45975,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":45982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45978,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45980,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":45981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45996,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45998,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":45999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46100,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46038],"declarations":[{"constant":false,"id":46038,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46100,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46037,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46047,"initialValue":{"arguments":[{"expression":{"id":46041,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46043,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46039,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46048,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46050,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46098,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46085,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46086,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46080,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46088,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46090,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46089,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46094,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46097,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46099,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46079,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46058,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46053,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46061,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46067,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46068,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46062,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47213,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44210,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50103_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46070,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46076,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46038,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46072,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46071,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46078,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46101,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46036,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46002,46004],"declarations":[{"constant":false,"id":46002,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46036,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46001,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46004,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46036,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46003,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46015,"initialValue":{"arguments":[{"expression":{"id":46007,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46009,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46011,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46013,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46005,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46016,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46022,"indexExpression":{"id":46019,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46024,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46002,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46026,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46032,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46033,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46004,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46027,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46035,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46102,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":45995,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":45993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45983,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45926,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":45988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45989,"indexExpression":{"id":45986,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45974,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45991,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45967,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45994,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46106,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46103,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46630,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46112,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46111,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45962,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45963,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46114,"initializationExpression":{"assignments":[45959],"declarations":[{"constant":false,"id":45959,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46114,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45958,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45961,"initialValue":{"id":45960,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45954,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46115,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45933,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46118,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46122,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46124,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45921,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46123,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45276,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46126,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45919,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45921,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46128,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45920,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45923,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46129,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46129],"name":"LibStaking","nameLocation":"15346:10:69","scope":46394,"usedErrors":[32461,32469,37450]},{"id":46393,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46134,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46131,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"26321:15:69"},"typeName":{"id":46133,"nodeType":"UserDefinedTypeName","pathNode":{"id":46132,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"26341:12:69"},"referencedDeclaration":50143,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46138,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46135,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46631,"src":"26365:19:69"},"typeName":{"id":46137,"nodeType":"UserDefinedTypeName","pathNode":{"id":46136,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"26389:16:69"},"referencedDeclaration":50076,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46173,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46172,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46148],"declarations":[{"constant":false,"id":46148,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46172,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46147,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46162,"initialValue":{"arguments":[{"expression":{"expression":{"id":46152,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46155,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46158,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50060,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46149,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46141,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46597,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50049_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46163,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46148,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46164,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46144,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50062,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46171,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46170,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46167,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46169,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46141,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46173,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46140,"nodeType":"UserDefinedTypeName","pathNode":{"id":46139,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"26433:23:69"},"referencedDeclaration":50150,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46144,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46173,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46143,"nodeType":"UserDefinedTypeName","pathNode":{"id":46142,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50063,"src":"26471:20:69"},"referencedDeclaration":50063,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46146,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46214,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46213,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46184],"declarations":[{"constant":false,"id":46184,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46213,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46183,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46187,"initialValue":{"expression":{"id":46185,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46180,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46188,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46184,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46193,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46192,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46182,"id":46191,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46211,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46201,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46202,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46180,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46204,"indexExpression":{"id":46203,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46200,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46173,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50150_storage_ptr_$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46206,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46210,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46207,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46209,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46197,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46198,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46184,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46212,"initializationExpression":{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46212,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46194,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46196,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46176,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46214,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46175,"nodeType":"UserDefinedTypeName","pathNode":{"id":46174,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"26928:23:69"},"referencedDeclaration":50150,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46180,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46214,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46178,"nodeType":"UserDefinedTypeName","pathNode":{"id":46177,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50063,"src":"26974:20:69"},"referencedDeclaration":50063,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46179,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46182,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46392,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46391,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46223,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46224,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46232,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46239,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46238,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46222,"id":46237,"nodeType":"Return","src":"27697:7:69"}]}},"id":46240,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46231,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46228,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46230,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46391,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46241,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46246,"initialValue":{"expression":{"expression":{"id":46243,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46379,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46256],"declarations":[{"constant":false,"id":46256,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46379,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46255,"nodeType":"UserDefinedTypeName","pathNode":{"id":46254,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"27852:13:69"},"referencedDeclaration":50057,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46262,"initialValue":{"arguments":[{"id":46260,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46615,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50057_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46264],"declarations":[{"constant":false,"id":46264,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46379,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46263,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46267,"initialValue":{"expression":{"id":46265,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50056,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46268,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46270,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46286,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46288,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46364,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46328],"declarations":[{"constant":false,"id":46328,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46364,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46327,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46337,"initialValue":{"arguments":[{"expression":{"id":46331,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46333,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46335,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46329,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"id":46342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46338,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50052,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46340,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46362,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46358,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46359,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46328,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44803,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46361,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46363,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46352,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46348,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46349,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46328,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46343,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44869,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46351,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46365,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46326,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46292,46294],"declarations":[{"constant":false,"id":46292,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46326,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46291,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46294,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46326,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46293,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46305,"initialValue":{"arguments":[{"expression":{"id":46297,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46299,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46301,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46303,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46295,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46306,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46312,"indexExpression":{"id":46309,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46314,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46292,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46316,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46322,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46323,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46294,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46317,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44761,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46325,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46366,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46285,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46273,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46279,"indexExpression":{"id":46276,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46264,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46281,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46256,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50054,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46284,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46630,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50076_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46374,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46378,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46375,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46377,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46251,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46248,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46252,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46380,"initializationExpression":{"assignments":[46248],"declarations":[{"constant":false,"id":46248,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46380,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46247,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46250,"initialValue":{"id":46249,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46218,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46386,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46390,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46215,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46218,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46392,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46217,"nodeType":"UserDefinedTypeName","pathNode":{"id":46216,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"27402:23:69"},"referencedDeclaration":50150,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46220,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46392,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46219,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46222,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46393,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46130,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46393],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46394,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file diff --git a/.out/LibStakingChangeLog.sol/LibStakingChangeLog.json b/.out/LibStakingChangeLog.sol/LibStakingChangeLog.json index db7d01abc..6e040d932 100644 --- a/.out/LibStakingChangeLog.sol/LibStakingChangeLog.json +++ b/.out/LibStakingChangeLog.sol/LibStakingChangeLog.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"NewStakingChangeRequest","inputs":[{"name":"op","type":"uint8","indexed":false,"internalType":"enum StakingOperation"},{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"configurationNumber","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212202b7ab683c1482119d792cebab2a7f6ac5211f18aefcee2d997b59ab8f4249f3a64736f6c63430008130033","sourceMap":"205:3891:70:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212202b7ab683c1482119d792cebab2a7f6ac5211f18aefcee2d997b59ab8f4249f3a64736f6c63430008130033","sourceMap":"205:3891:70:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum StakingOperation\",\"name\":\"op\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"name\":\"NewStakingChangeRequest\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `StakingChangeLog`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStakingChangeLog.sol\":\"LibStakingChangeLog\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum StakingOperation","name":"op","type":"uint8","indexed":false},{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint64","name":"configurationNumber","type":"uint64","indexed":false}],"type":"event","name":"NewStakingChangeRequest","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStakingChangeLog.sol":"LibStakingChangeLog"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStakingChangeLog.sol","id":46679,"exportedSymbols":{"LibStakingChangeLog":[46678],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingOperation":[50096]},"nodeType":"SourceUnit","src":"46:4051:70","nodes":[{"id":46442,"nodeType":"PragmaDirective","src":"46:23:70","nodes":[],"literals":["solidity","0.8",".19"]},{"id":46446,"nodeType":"ImportDirective","src":"71:88:70","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46679,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":46443,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"79:16:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46444,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"97:13:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46445,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"112:16:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46678,"nodeType":"ContractDefinition","src":"205:3891:70","nodes":[{"id":46458,"nodeType":"EventDefinition","src":"239:113:70","nodes":[],"anonymous":false,"eventSelector":"1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f","name":"NewStakingChangeRequest","nameLocation":"245:23:70","parameters":{"id":46457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46450,"indexed":false,"mutability":"mutable","name":"op","nameLocation":"286:2:70","nodeType":"VariableDeclaration","scope":46458,"src":"269:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"typeName":{"id":46449,"nodeType":"UserDefinedTypeName","pathNode":{"id":46448,"name":"StakingOperation","nameLocations":["269:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50096,"src":"269:16:70"},"referencedDeclaration":50096,"src":"269:16:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":46452,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"298:9:70","nodeType":"VariableDeclaration","scope":46458,"src":"290:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46451,"name":"address","nodeType":"ElementaryTypeName","src":"290:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46454,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"315:7:70","nodeType":"VariableDeclaration","scope":46458,"src":"309:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46453,"name":"bytes","nodeType":"ElementaryTypeName","src":"309:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46456,"indexed":false,"mutability":"mutable","name":"configurationNumber","nameLocation":"331:19:70","nodeType":"VariableDeclaration","scope":46458,"src":"324:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46455,"name":"uint64","nodeType":"ElementaryTypeName","src":"324:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"268:83:70"}},{"id":46488,"nodeType":"FunctionDefinition","src":"415:539:70","nodes":[],"body":{"id":46487,"nodeType":"Block","src":"527:427:70","nodes":[],"statements":[{"assignments":[46470],"declarations":[{"constant":false,"id":46470,"mutability":"mutable","name":"configurationNumber","nameLocation":"544:19:70","nodeType":"VariableDeclaration","scope":46487,"src":"537:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46469,"name":"uint64","nodeType":"ElementaryTypeName","src":"537:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46478,"initialValue":{"arguments":[{"id":46472,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46462,"src":"602:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46473,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46464,"src":"634:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46474,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"661:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"678:11:70","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"661:28:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46476,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46466,"src":"712:8:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":46471,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46644,"src":"566:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["593:7:70","623:9:70","657:2:70","703:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"566:165:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"537:194:70"},{"eventCall":{"arguments":[{"expression":{"id":46480,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"789:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"806:11:70","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"789:28:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46482,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46464,"src":"842:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46483,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46466,"src":"874:8:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":46484,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46470,"src":"917:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46479,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46458,"src":"747:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50096_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["785:2:70","831:9:70","865:7:70","896:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"747:200:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46486,"nodeType":"EmitStatement","src":"742:205:70"}]},"documentation":{"id":46459,"nodeType":"StructuredDocumentation","src":"358:52:70","text":"@notice Validator request to update its metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"metadataRequest","nameLocation":"424:15:70","parameters":{"id":46467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46462,"mutability":"mutable","name":"changes","nameLocation":"465:7:70","nodeType":"VariableDeclaration","scope":46488,"src":"440:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46461,"nodeType":"UserDefinedTypeName","pathNode":{"id":46460,"name":"StakingChangeLog","nameLocations":["440:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"440:16:70"},"referencedDeclaration":50123,"src":"440:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46464,"mutability":"mutable","name":"validator","nameLocation":"482:9:70","nodeType":"VariableDeclaration","scope":46488,"src":"474:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46463,"name":"address","nodeType":"ElementaryTypeName","src":"474:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46466,"mutability":"mutable","name":"metadata","nameLocation":"508:8:70","nodeType":"VariableDeclaration","scope":46488,"src":"493:23:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46465,"name":"bytes","nodeType":"ElementaryTypeName","src":"493:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"439:78:70"},"returnParameters":{"id":46468,"nodeType":"ParameterList","parameters":[],"src":"527:0:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46528,"nodeType":"FunctionDefinition","src":"1039:669:70","nodes":[],"body":{"id":46527,"nodeType":"Block","src":"1210:498:70","nodes":[],"statements":[{"assignments":[46502],"declarations":[{"constant":false,"id":46502,"mutability":"mutable","name":"payload","nameLocation":"1233:7:70","nodeType":"VariableDeclaration","scope":46527,"src":"1220:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46501,"name":"bytes","nodeType":"ElementaryTypeName","src":"1220:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46508,"initialValue":{"arguments":[{"id":46505,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46496,"src":"1254:8:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":46506,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46498,"src":"1264:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46503,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1243:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1247:6:70","memberName":"encode","nodeType":"MemberAccess","src":"1243:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1243:27:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1220:50:70"},{"assignments":[46510],"declarations":[{"constant":false,"id":46510,"mutability":"mutable","name":"configurationNumber","nameLocation":"1288:19:70","nodeType":"VariableDeclaration","scope":46527,"src":"1281:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46509,"name":"uint64","nodeType":"ElementaryTypeName","src":"1281:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46518,"initialValue":{"arguments":[{"id":46512,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46492,"src":"1346:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46513,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46494,"src":"1378:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46514,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"1405:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1422:17:70","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"1405:34:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46516,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46502,"src":"1462:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46511,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46644,"src":"1310:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1337:7:70","1367:9:70","1401:2:70","1453:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"1310:170:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"1281:199:70"},{"eventCall":{"arguments":[{"expression":{"id":46520,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"1538:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1555:17:70","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"1538:34:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46522,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46494,"src":"1597:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46523,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46502,"src":"1629:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":46524,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46510,"src":"1671:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46519,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46458,"src":"1496:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50096_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1534:2:70","1586:9:70","1620:7:70","1650:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"1496:205:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46526,"nodeType":"EmitStatement","src":"1491:210:70"}]},"documentation":{"id":46489,"nodeType":"StructuredDocumentation","src":"960:74:70","text":"@notice Records a request to update the federated power of a validator"},"implemented":true,"kind":"function","modifiers":[],"name":"federatedPowerRequest","nameLocation":"1048:21:70","parameters":{"id":46499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46492,"mutability":"mutable","name":"changes","nameLocation":"1104:7:70","nodeType":"VariableDeclaration","scope":46528,"src":"1079:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46491,"nodeType":"UserDefinedTypeName","pathNode":{"id":46490,"name":"StakingChangeLog","nameLocations":["1079:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"1079:16:70"},"referencedDeclaration":50123,"src":"1079:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46494,"mutability":"mutable","name":"validator","nameLocation":"1129:9:70","nodeType":"VariableDeclaration","scope":46528,"src":"1121:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46493,"name":"address","nodeType":"ElementaryTypeName","src":"1121:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46496,"mutability":"mutable","name":"metadata","nameLocation":"1163:8:70","nodeType":"VariableDeclaration","scope":46528,"src":"1148:23:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46495,"name":"bytes","nodeType":"ElementaryTypeName","src":"1148:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46498,"mutability":"mutable","name":"power","nameLocation":"1189:5:70","nodeType":"VariableDeclaration","scope":46528,"src":"1181:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46497,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1069:131:70"},"returnParameters":{"id":46500,"nodeType":"ParameterList","parameters":[],"src":"1210:0:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46565,"nodeType":"FunctionDefinition","src":"1928:574:70","nodes":[],"body":{"id":46564,"nodeType":"Block","src":"2031:471:70","nodes":[],"statements":[{"assignments":[46540],"declarations":[{"constant":false,"id":46540,"mutability":"mutable","name":"payload","nameLocation":"2054:7:70","nodeType":"VariableDeclaration","scope":46564,"src":"2041:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46539,"name":"bytes","nodeType":"ElementaryTypeName","src":"2041:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46545,"initialValue":{"arguments":[{"id":46543,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46536,"src":"2075:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46541,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2064:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2068:6:70","memberName":"encode","nodeType":"MemberAccess","src":"2064:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2064:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2041:41:70"},{"assignments":[46547],"declarations":[{"constant":false,"id":46547,"mutability":"mutable","name":"configurationNumber","nameLocation":"2100:19:70","nodeType":"VariableDeclaration","scope":46564,"src":"2093:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46546,"name":"uint64","nodeType":"ElementaryTypeName","src":"2093:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46555,"initialValue":{"arguments":[{"id":46549,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46532,"src":"2158:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46550,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46534,"src":"2190:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46551,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"2217:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2234:8:70","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"2217:25:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46553,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46540,"src":"2265:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46548,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46644,"src":"2122:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2149:7:70","2179:9:70","2213:2:70","2256:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"2122:161:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2093:190:70"},{"eventCall":{"arguments":[{"expression":{"id":46557,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"2341:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2358:8:70","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"2341:25:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46559,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46534,"src":"2391:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46560,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46540,"src":"2423:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":46561,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46547,"src":"2465:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46556,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46458,"src":"2299:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50096_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2337:2:70","2380:9:70","2414:7:70","2444:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"2299:196:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46563,"nodeType":"EmitStatement","src":"2294:201:70"}]},"documentation":{"id":46529,"nodeType":"StructuredDocumentation","src":"1714:209:70","text":"@notice Perform upsert operation to the withdraw changes, return total value to withdraw\n @notice of the validator.\n Each insert will increment the configuration number by 1, update will not."},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawRequest","nameLocation":"1937:15:70","parameters":{"id":46537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46532,"mutability":"mutable","name":"changes","nameLocation":"1978:7:70","nodeType":"VariableDeclaration","scope":46565,"src":"1953:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46531,"nodeType":"UserDefinedTypeName","pathNode":{"id":46530,"name":"StakingChangeLog","nameLocations":["1953:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"1953:16:70"},"referencedDeclaration":50123,"src":"1953:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46534,"mutability":"mutable","name":"validator","nameLocation":"1995:9:70","nodeType":"VariableDeclaration","scope":46565,"src":"1987:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46533,"name":"address","nodeType":"ElementaryTypeName","src":"1987:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46536,"mutability":"mutable","name":"amount","nameLocation":"2014:6:70","nodeType":"VariableDeclaration","scope":46565,"src":"2006:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46535,"name":"uint256","nodeType":"ElementaryTypeName","src":"2006:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1952:69:70"},"returnParameters":{"id":46538,"nodeType":"ParameterList","parameters":[],"src":"2031:0:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46602,"nodeType":"FunctionDefinition","src":"2572:571:70","nodes":[],"body":{"id":46601,"nodeType":"Block","src":"2674:469:70","nodes":[],"statements":[{"assignments":[46577],"declarations":[{"constant":false,"id":46577,"mutability":"mutable","name":"payload","nameLocation":"2697:7:70","nodeType":"VariableDeclaration","scope":46601,"src":"2684:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46576,"name":"bytes","nodeType":"ElementaryTypeName","src":"2684:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46582,"initialValue":{"arguments":[{"id":46580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46573,"src":"2718:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2707:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2711:6:70","memberName":"encode","nodeType":"MemberAccess","src":"2707:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2707:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2684:41:70"},{"assignments":[46584],"declarations":[{"constant":false,"id":46584,"mutability":"mutable","name":"configurationNumber","nameLocation":"2743:19:70","nodeType":"VariableDeclaration","scope":46601,"src":"2736:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46583,"name":"uint64","nodeType":"ElementaryTypeName","src":"2736:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46592,"initialValue":{"arguments":[{"id":46586,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46569,"src":"2801:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46587,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46571,"src":"2833:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46588,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"2860:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2877:7:70","memberName":"Deposit","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2860:24:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46590,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46577,"src":"2907:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46585,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46644,"src":"2765:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2792:7:70","2822:9:70","2856:2:70","2898:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"2765:160:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2736:189:70"},{"eventCall":{"arguments":[{"expression":{"id":46594,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"2983:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3000:7:70","memberName":"Deposit","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2983:24:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46596,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46571,"src":"3032:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46597,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46577,"src":"3064:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":46598,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46584,"src":"3106:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46593,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46458,"src":"2941:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50096_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2979:2:70","3021:9:70","3055:7:70","3085:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"2941:195:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46600,"nodeType":"EmitStatement","src":"2936:200:70"}]},"documentation":{"id":46566,"nodeType":"StructuredDocumentation","src":"2508:59:70","text":"@notice Perform upsert operation to the deposit changes"},"implemented":true,"kind":"function","modifiers":[],"name":"depositRequest","nameLocation":"2581:14:70","parameters":{"id":46574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46569,"mutability":"mutable","name":"changes","nameLocation":"2621:7:70","nodeType":"VariableDeclaration","scope":46602,"src":"2596:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46568,"nodeType":"UserDefinedTypeName","pathNode":{"id":46567,"name":"StakingChangeLog","nameLocations":["2596:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"2596:16:70"},"referencedDeclaration":50123,"src":"2596:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46571,"mutability":"mutable","name":"validator","nameLocation":"2638:9:70","nodeType":"VariableDeclaration","scope":46602,"src":"2630:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46570,"name":"address","nodeType":"ElementaryTypeName","src":"2630:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46573,"mutability":"mutable","name":"amount","nameLocation":"2657:6:70","nodeType":"VariableDeclaration","scope":46602,"src":"2649:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46572,"name":"uint256","nodeType":"ElementaryTypeName","src":"2649:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2595:69:70"},"returnParameters":{"id":46575,"nodeType":"ParameterList","parameters":[],"src":"2674:0:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46644,"nodeType":"FunctionDefinition","src":"3213:453:70","nodes":[],"body":{"id":46643,"nodeType":"Block","src":"3415:251:70","nodes":[],"statements":[{"expression":{"id":46621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46618,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46616,"src":"3425:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46619,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46606,"src":"3447:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3455:23:70","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"3447:31:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3425:53:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46622,"nodeType":"ExpressionStatement","src":"3425:53:70"},{"expression":{"id":46633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":46623,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46606,"src":"3489:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3497:7:70","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"3489:15:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50104_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":46627,"indexExpression":{"id":46625,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46616,"src":"3505:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3489:36:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage","typeString":"struct StakingChange storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":46629,"name":"op","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46611,"src":"3547:2:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46630,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46608,"src":"3562:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46631,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46613,"src":"3582:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46628,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"3528:13:70","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingChange_$50104_storage_ptr_$","typeString":"type(struct StakingChange storage pointer)"}},"id":46632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3543:2:70","3551:9:70","3573:7:70"],"names":["op","validator","payload"],"nodeType":"FunctionCall","src":"3528:63:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_memory_ptr","typeString":"struct StakingChange memory"}},"src":"3489:102:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage","typeString":"struct StakingChange storage ref"}},"id":46634,"nodeType":"ExpressionStatement","src":"3489:102:70"},{"expression":{"id":46641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46635,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46606,"src":"3602:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3610:23:70","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"3602:31:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46638,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46616,"src":"3636:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3658:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3636:23:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3602:57:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46642,"nodeType":"ExpressionStatement","src":"3602:57:70"}]},"documentation":{"id":46603,"nodeType":"StructuredDocumentation","src":"3149:59:70","text":"@notice Perform upsert operation to the deposit changes"},"implemented":true,"kind":"function","modifiers":[],"name":"recordChange","nameLocation":"3222:12:70","parameters":{"id":46614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46606,"mutability":"mutable","name":"changes","nameLocation":"3269:7:70","nodeType":"VariableDeclaration","scope":46644,"src":"3244:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46605,"nodeType":"UserDefinedTypeName","pathNode":{"id":46604,"name":"StakingChangeLog","nameLocations":["3244:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"3244:16:70"},"referencedDeclaration":50123,"src":"3244:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46608,"mutability":"mutable","name":"validator","nameLocation":"3294:9:70","nodeType":"VariableDeclaration","scope":46644,"src":"3286:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46607,"name":"address","nodeType":"ElementaryTypeName","src":"3286:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46611,"mutability":"mutable","name":"op","nameLocation":"3330:2:70","nodeType":"VariableDeclaration","scope":46644,"src":"3313:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"typeName":{"id":46610,"nodeType":"UserDefinedTypeName","pathNode":{"id":46609,"name":"StakingOperation","nameLocations":["3313:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50096,"src":"3313:16:70"},"referencedDeclaration":50096,"src":"3313:16:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":46613,"mutability":"mutable","name":"payload","nameLocation":"3355:7:70","nodeType":"VariableDeclaration","scope":46644,"src":"3342:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46612,"name":"bytes","nodeType":"ElementaryTypeName","src":"3342:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3234:134:70"},"returnParameters":{"id":46617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46616,"mutability":"mutable","name":"configurationNumber","nameLocation":"3394:19:70","nodeType":"VariableDeclaration","scope":46644,"src":"3387:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46615,"name":"uint64","nodeType":"ElementaryTypeName","src":"3387:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3386:28:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46662,"nodeType":"FunctionDefinition","src":"3727:209:70","nodes":[],"body":{"id":46661,"nodeType":"Block","src":"3876:60:70","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":46656,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46648,"src":"3893:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3901:7:70","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"3893:15:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50104_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":46659,"indexExpression":{"id":46658,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46650,"src":"3909:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3893:36:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage","typeString":"struct StakingChange storage ref"}},"functionReturnParameters":46655,"id":46660,"nodeType":"Return","src":"3886:43:70"}]},"documentation":{"id":46645,"nodeType":"StructuredDocumentation","src":"3672:50:70","text":"@notice Get the change at configuration number"},"implemented":true,"kind":"function","modifiers":[],"name":"getChange","nameLocation":"3736:9:70","parameters":{"id":46651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46648,"mutability":"mutable","name":"changes","nameLocation":"3780:7:70","nodeType":"VariableDeclaration","scope":46662,"src":"3755:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46647,"nodeType":"UserDefinedTypeName","pathNode":{"id":46646,"name":"StakingChangeLog","nameLocations":["3755:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"3755:16:70"},"referencedDeclaration":50123,"src":"3755:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46650,"mutability":"mutable","name":"configurationNumber","nameLocation":"3804:19:70","nodeType":"VariableDeclaration","scope":46662,"src":"3797:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46649,"name":"uint64","nodeType":"ElementaryTypeName","src":"3797:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3745:84:70"},"returnParameters":{"id":46655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46662,"src":"3853:21:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46653,"nodeType":"UserDefinedTypeName","pathNode":{"id":46652,"name":"StakingChange","nameLocations":["3853:13:70"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"3853:13:70"},"referencedDeclaration":50104,"src":"3853:13:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"src":"3852:23:70"},"scope":46678,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46677,"nodeType":"FunctionDefinition","src":"3942:152:70","nodes":[],"body":{"id":46676,"nodeType":"Block","src":"4034:60:70","nodes":[],"statements":[{"expression":{"id":46674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4044:43:70","subExpression":{"baseExpression":{"expression":{"id":46670,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46665,"src":"4051:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4059:7:70","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"4051:15:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50104_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":46673,"indexExpression":{"id":46672,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46667,"src":"4067:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4051:36:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage","typeString":"struct StakingChange storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46675,"nodeType":"ExpressionStatement","src":"4044:43:70"}]},"implemented":true,"kind":"function","modifiers":[],"name":"purgeChange","nameLocation":"3951:11:70","parameters":{"id":46668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46665,"mutability":"mutable","name":"changes","nameLocation":"3988:7:70","nodeType":"VariableDeclaration","scope":46677,"src":"3963:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46664,"nodeType":"UserDefinedTypeName","pathNode":{"id":46663,"name":"StakingChangeLog","nameLocations":["3963:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"3963:16:70"},"referencedDeclaration":50123,"src":"3963:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46667,"mutability":"mutable","name":"configurationNumber","nameLocation":"4004:19:70","nodeType":"VariableDeclaration","scope":46677,"src":"3997:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46666,"name":"uint64","nodeType":"ElementaryTypeName","src":"3997:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3962:62:70"},"returnParameters":{"id":46669,"nodeType":"ParameterList","parameters":[],"src":"4034:0:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingChangeLog","contractDependencies":[],"contractKind":"library","documentation":{"id":46447,"nodeType":"StructuredDocumentation","src":"161:44:70","text":"The util library for `StakingChangeLog`"},"fullyImplemented":true,"linearizedBaseContracts":[46678],"name":"LibStakingChangeLog","nameLocation":"213:19:70","scope":46679,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":70} \ No newline at end of file +{"abi":[{"type":"event","name":"NewStakingChangeRequest","inputs":[{"name":"op","type":"uint8","indexed":false,"internalType":"enum StakingOperation"},{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"configurationNumber","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212202b7ab683c1482119d792cebab2a7f6ac5211f18aefcee2d997b59ab8f4249f3a64736f6c63430008130033","sourceMap":"205:3891:70:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212202b7ab683c1482119d792cebab2a7f6ac5211f18aefcee2d997b59ab8f4249f3a64736f6c63430008130033","sourceMap":"205:3891:70:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum StakingOperation\",\"name\":\"op\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"name\":\"NewStakingChangeRequest\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `StakingChangeLog`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStakingChangeLog.sol\":\"LibStakingChangeLog\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum StakingOperation","name":"op","type":"uint8","indexed":false},{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint64","name":"configurationNumber","type":"uint64","indexed":false}],"type":"event","name":"NewStakingChangeRequest","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStakingChangeLog.sol":"LibStakingChangeLog"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStakingChangeLog.sol","id":46632,"exportedSymbols":{"LibStakingChangeLog":[46631],"StakingChange":[50057],"StakingChangeLog":[50076],"StakingOperation":[50049]},"nodeType":"SourceUnit","src":"46:4051:70","nodes":[{"id":46395,"nodeType":"PragmaDirective","src":"46:23:70","nodes":[],"literals":["solidity","0.8",".19"]},{"id":46399,"nodeType":"ImportDirective","src":"71:88:70","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46632,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":46396,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50076,"src":"79:16:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46397,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50057,"src":"97:13:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46398,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"112:16:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46631,"nodeType":"ContractDefinition","src":"205:3891:70","nodes":[{"id":46411,"nodeType":"EventDefinition","src":"239:113:70","nodes":[],"anonymous":false,"eventSelector":"1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f","name":"NewStakingChangeRequest","nameLocation":"245:23:70","parameters":{"id":46410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46403,"indexed":false,"mutability":"mutable","name":"op","nameLocation":"286:2:70","nodeType":"VariableDeclaration","scope":46411,"src":"269:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"typeName":{"id":46402,"nodeType":"UserDefinedTypeName","pathNode":{"id":46401,"name":"StakingOperation","nameLocations":["269:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50049,"src":"269:16:70"},"referencedDeclaration":50049,"src":"269:16:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":46405,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"298:9:70","nodeType":"VariableDeclaration","scope":46411,"src":"290:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46404,"name":"address","nodeType":"ElementaryTypeName","src":"290:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46407,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"315:7:70","nodeType":"VariableDeclaration","scope":46411,"src":"309:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46406,"name":"bytes","nodeType":"ElementaryTypeName","src":"309:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46409,"indexed":false,"mutability":"mutable","name":"configurationNumber","nameLocation":"331:19:70","nodeType":"VariableDeclaration","scope":46411,"src":"324:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46408,"name":"uint64","nodeType":"ElementaryTypeName","src":"324:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"268:83:70"}},{"id":46441,"nodeType":"FunctionDefinition","src":"415:539:70","nodes":[],"body":{"id":46440,"nodeType":"Block","src":"527:427:70","nodes":[],"statements":[{"assignments":[46423],"declarations":[{"constant":false,"id":46423,"mutability":"mutable","name":"configurationNumber","nameLocation":"544:19:70","nodeType":"VariableDeclaration","scope":46440,"src":"537:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46422,"name":"uint64","nodeType":"ElementaryTypeName","src":"537:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46431,"initialValue":{"arguments":[{"id":46425,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46415,"src":"602:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46426,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46417,"src":"634:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46427,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"661:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"678:11:70","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"661:28:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"id":46429,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46419,"src":"712:8:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":46424,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46597,"src":"566:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50049_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["593:7:70","623:9:70","657:2:70","703:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"566:165:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"537:194:70"},{"eventCall":{"arguments":[{"expression":{"id":46433,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"789:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"806:11:70","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50047,"src":"789:28:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"id":46435,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46417,"src":"842:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46436,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46419,"src":"874:8:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":46437,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46423,"src":"917:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46432,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46411,"src":"747:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50049_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["785:2:70","831:9:70","865:7:70","896:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"747:200:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46439,"nodeType":"EmitStatement","src":"742:205:70"}]},"documentation":{"id":46412,"nodeType":"StructuredDocumentation","src":"358:52:70","text":"@notice Validator request to update its metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"metadataRequest","nameLocation":"424:15:70","parameters":{"id":46420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46415,"mutability":"mutable","name":"changes","nameLocation":"465:7:70","nodeType":"VariableDeclaration","scope":46441,"src":"440:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46414,"nodeType":"UserDefinedTypeName","pathNode":{"id":46413,"name":"StakingChangeLog","nameLocations":["440:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"440:16:70"},"referencedDeclaration":50076,"src":"440:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46417,"mutability":"mutable","name":"validator","nameLocation":"482:9:70","nodeType":"VariableDeclaration","scope":46441,"src":"474:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46416,"name":"address","nodeType":"ElementaryTypeName","src":"474:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46419,"mutability":"mutable","name":"metadata","nameLocation":"508:8:70","nodeType":"VariableDeclaration","scope":46441,"src":"493:23:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46418,"name":"bytes","nodeType":"ElementaryTypeName","src":"493:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"439:78:70"},"returnParameters":{"id":46421,"nodeType":"ParameterList","parameters":[],"src":"527:0:70"},"scope":46631,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46481,"nodeType":"FunctionDefinition","src":"1039:669:70","nodes":[],"body":{"id":46480,"nodeType":"Block","src":"1210:498:70","nodes":[],"statements":[{"assignments":[46455],"declarations":[{"constant":false,"id":46455,"mutability":"mutable","name":"payload","nameLocation":"1233:7:70","nodeType":"VariableDeclaration","scope":46480,"src":"1220:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46454,"name":"bytes","nodeType":"ElementaryTypeName","src":"1220:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46461,"initialValue":{"arguments":[{"id":46458,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46449,"src":"1254:8:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":46459,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46451,"src":"1264:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46456,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1243:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1247:6:70","memberName":"encode","nodeType":"MemberAccess","src":"1243:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1243:27:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1220:50:70"},{"assignments":[46463],"declarations":[{"constant":false,"id":46463,"mutability":"mutable","name":"configurationNumber","nameLocation":"1288:19:70","nodeType":"VariableDeclaration","scope":46480,"src":"1281:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46462,"name":"uint64","nodeType":"ElementaryTypeName","src":"1281:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46471,"initialValue":{"arguments":[{"id":46465,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46445,"src":"1346:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46466,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46447,"src":"1378:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46467,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"1405:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1422:17:70","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"1405:34:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"id":46469,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46455,"src":"1462:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46464,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46597,"src":"1310:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50049_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1337:7:70","1367:9:70","1401:2:70","1453:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"1310:170:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"1281:199:70"},{"eventCall":{"arguments":[{"expression":{"id":46473,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"1538:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1555:17:70","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50048,"src":"1538:34:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"id":46475,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46447,"src":"1597:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46476,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46455,"src":"1629:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":46477,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46463,"src":"1671:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46472,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46411,"src":"1496:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50049_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1534:2:70","1586:9:70","1620:7:70","1650:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"1496:205:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46479,"nodeType":"EmitStatement","src":"1491:210:70"}]},"documentation":{"id":46442,"nodeType":"StructuredDocumentation","src":"960:74:70","text":"@notice Records a request to update the federated power of a validator"},"implemented":true,"kind":"function","modifiers":[],"name":"federatedPowerRequest","nameLocation":"1048:21:70","parameters":{"id":46452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46445,"mutability":"mutable","name":"changes","nameLocation":"1104:7:70","nodeType":"VariableDeclaration","scope":46481,"src":"1079:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46444,"nodeType":"UserDefinedTypeName","pathNode":{"id":46443,"name":"StakingChangeLog","nameLocations":["1079:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"1079:16:70"},"referencedDeclaration":50076,"src":"1079:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46447,"mutability":"mutable","name":"validator","nameLocation":"1129:9:70","nodeType":"VariableDeclaration","scope":46481,"src":"1121:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46446,"name":"address","nodeType":"ElementaryTypeName","src":"1121:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46449,"mutability":"mutable","name":"metadata","nameLocation":"1163:8:70","nodeType":"VariableDeclaration","scope":46481,"src":"1148:23:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46448,"name":"bytes","nodeType":"ElementaryTypeName","src":"1148:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46451,"mutability":"mutable","name":"power","nameLocation":"1189:5:70","nodeType":"VariableDeclaration","scope":46481,"src":"1181:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46450,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1069:131:70"},"returnParameters":{"id":46453,"nodeType":"ParameterList","parameters":[],"src":"1210:0:70"},"scope":46631,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46518,"nodeType":"FunctionDefinition","src":"1928:574:70","nodes":[],"body":{"id":46517,"nodeType":"Block","src":"2031:471:70","nodes":[],"statements":[{"assignments":[46493],"declarations":[{"constant":false,"id":46493,"mutability":"mutable","name":"payload","nameLocation":"2054:7:70","nodeType":"VariableDeclaration","scope":46517,"src":"2041:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46492,"name":"bytes","nodeType":"ElementaryTypeName","src":"2041:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46498,"initialValue":{"arguments":[{"id":46496,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46489,"src":"2075:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46494,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2064:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2068:6:70","memberName":"encode","nodeType":"MemberAccess","src":"2064:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2064:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2041:41:70"},{"assignments":[46500],"declarations":[{"constant":false,"id":46500,"mutability":"mutable","name":"configurationNumber","nameLocation":"2100:19:70","nodeType":"VariableDeclaration","scope":46517,"src":"2093:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46499,"name":"uint64","nodeType":"ElementaryTypeName","src":"2093:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46508,"initialValue":{"arguments":[{"id":46502,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46485,"src":"2158:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46503,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46487,"src":"2190:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46504,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"2217:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2234:8:70","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"2217:25:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"id":46506,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46493,"src":"2265:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46501,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46597,"src":"2122:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50049_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2149:7:70","2179:9:70","2213:2:70","2256:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"2122:161:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2093:190:70"},{"eventCall":{"arguments":[{"expression":{"id":46510,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"2341:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2358:8:70","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50046,"src":"2341:25:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"id":46512,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46487,"src":"2391:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46513,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46493,"src":"2423:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":46514,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46500,"src":"2465:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46509,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46411,"src":"2299:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50049_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2337:2:70","2380:9:70","2414:7:70","2444:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"2299:196:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46516,"nodeType":"EmitStatement","src":"2294:201:70"}]},"documentation":{"id":46482,"nodeType":"StructuredDocumentation","src":"1714:209:70","text":"@notice Perform upsert operation to the withdraw changes, return total value to withdraw\n @notice of the validator.\n Each insert will increment the configuration number by 1, update will not."},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawRequest","nameLocation":"1937:15:70","parameters":{"id":46490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46485,"mutability":"mutable","name":"changes","nameLocation":"1978:7:70","nodeType":"VariableDeclaration","scope":46518,"src":"1953:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46484,"nodeType":"UserDefinedTypeName","pathNode":{"id":46483,"name":"StakingChangeLog","nameLocations":["1953:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"1953:16:70"},"referencedDeclaration":50076,"src":"1953:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46487,"mutability":"mutable","name":"validator","nameLocation":"1995:9:70","nodeType":"VariableDeclaration","scope":46518,"src":"1987:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46486,"name":"address","nodeType":"ElementaryTypeName","src":"1987:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46489,"mutability":"mutable","name":"amount","nameLocation":"2014:6:70","nodeType":"VariableDeclaration","scope":46518,"src":"2006:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46488,"name":"uint256","nodeType":"ElementaryTypeName","src":"2006:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1952:69:70"},"returnParameters":{"id":46491,"nodeType":"ParameterList","parameters":[],"src":"2031:0:70"},"scope":46631,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46555,"nodeType":"FunctionDefinition","src":"2572:571:70","nodes":[],"body":{"id":46554,"nodeType":"Block","src":"2674:469:70","nodes":[],"statements":[{"assignments":[46530],"declarations":[{"constant":false,"id":46530,"mutability":"mutable","name":"payload","nameLocation":"2697:7:70","nodeType":"VariableDeclaration","scope":46554,"src":"2684:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46529,"name":"bytes","nodeType":"ElementaryTypeName","src":"2684:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46535,"initialValue":{"arguments":[{"id":46533,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46526,"src":"2718:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46531,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2707:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2711:6:70","memberName":"encode","nodeType":"MemberAccess","src":"2707:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2707:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2684:41:70"},{"assignments":[46537],"declarations":[{"constant":false,"id":46537,"mutability":"mutable","name":"configurationNumber","nameLocation":"2743:19:70","nodeType":"VariableDeclaration","scope":46554,"src":"2736:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46536,"name":"uint64","nodeType":"ElementaryTypeName","src":"2736:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46545,"initialValue":{"arguments":[{"id":46539,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46522,"src":"2801:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46540,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46524,"src":"2833:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46541,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"2860:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2877:7:70","memberName":"Deposit","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"2860:24:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"id":46543,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46530,"src":"2907:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46538,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46597,"src":"2765:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50076_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50049_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2792:7:70","2822:9:70","2856:2:70","2898:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"2765:160:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2736:189:70"},{"eventCall":{"arguments":[{"expression":{"id":46547,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50049,"src":"2983:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50049_$","typeString":"type(enum StakingOperation)"}},"id":46548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3000:7:70","memberName":"Deposit","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"2983:24:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"id":46549,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46524,"src":"3032:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46550,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46530,"src":"3064:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":46551,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46537,"src":"3106:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46546,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46411,"src":"2941:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50049_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2979:2:70","3021:9:70","3055:7:70","3085:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"2941:195:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46553,"nodeType":"EmitStatement","src":"2936:200:70"}]},"documentation":{"id":46519,"nodeType":"StructuredDocumentation","src":"2508:59:70","text":"@notice Perform upsert operation to the deposit changes"},"implemented":true,"kind":"function","modifiers":[],"name":"depositRequest","nameLocation":"2581:14:70","parameters":{"id":46527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46522,"mutability":"mutable","name":"changes","nameLocation":"2621:7:70","nodeType":"VariableDeclaration","scope":46555,"src":"2596:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46521,"nodeType":"UserDefinedTypeName","pathNode":{"id":46520,"name":"StakingChangeLog","nameLocations":["2596:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"2596:16:70"},"referencedDeclaration":50076,"src":"2596:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46524,"mutability":"mutable","name":"validator","nameLocation":"2638:9:70","nodeType":"VariableDeclaration","scope":46555,"src":"2630:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46523,"name":"address","nodeType":"ElementaryTypeName","src":"2630:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46526,"mutability":"mutable","name":"amount","nameLocation":"2657:6:70","nodeType":"VariableDeclaration","scope":46555,"src":"2649:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46525,"name":"uint256","nodeType":"ElementaryTypeName","src":"2649:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2595:69:70"},"returnParameters":{"id":46528,"nodeType":"ParameterList","parameters":[],"src":"2674:0:70"},"scope":46631,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46597,"nodeType":"FunctionDefinition","src":"3213:453:70","nodes":[],"body":{"id":46596,"nodeType":"Block","src":"3415:251:70","nodes":[],"statements":[{"expression":{"id":46574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46571,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46569,"src":"3425:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46572,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46559,"src":"3447:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3455:23:70","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"3447:31:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3425:53:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46575,"nodeType":"ExpressionStatement","src":"3425:53:70"},{"expression":{"id":46586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":46576,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46559,"src":"3489:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3497:7:70","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50075,"src":"3489:15:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50057_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":46580,"indexExpression":{"id":46578,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46569,"src":"3505:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3489:36:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage","typeString":"struct StakingChange storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":46582,"name":"op","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46564,"src":"3547:2:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},{"id":46583,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46561,"src":"3562:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46584,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46566,"src":"3582:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46581,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50057,"src":"3528:13:70","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingChange_$50057_storage_ptr_$","typeString":"type(struct StakingChange storage pointer)"}},"id":46585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3543:2:70","3551:9:70","3573:7:70"],"names":["op","validator","payload"],"nodeType":"FunctionCall","src":"3528:63:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_memory_ptr","typeString":"struct StakingChange memory"}},"src":"3489:102:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage","typeString":"struct StakingChange storage ref"}},"id":46587,"nodeType":"ExpressionStatement","src":"3489:102:70"},{"expression":{"id":46594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46588,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46559,"src":"3602:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3610:23:70","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"3602:31:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46591,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46569,"src":"3636:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3658:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3636:23:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3602:57:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46595,"nodeType":"ExpressionStatement","src":"3602:57:70"}]},"documentation":{"id":46556,"nodeType":"StructuredDocumentation","src":"3149:59:70","text":"@notice Perform upsert operation to the deposit changes"},"implemented":true,"kind":"function","modifiers":[],"name":"recordChange","nameLocation":"3222:12:70","parameters":{"id":46567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46559,"mutability":"mutable","name":"changes","nameLocation":"3269:7:70","nodeType":"VariableDeclaration","scope":46597,"src":"3244:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46558,"nodeType":"UserDefinedTypeName","pathNode":{"id":46557,"name":"StakingChangeLog","nameLocations":["3244:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"3244:16:70"},"referencedDeclaration":50076,"src":"3244:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46561,"mutability":"mutable","name":"validator","nameLocation":"3294:9:70","nodeType":"VariableDeclaration","scope":46597,"src":"3286:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46560,"name":"address","nodeType":"ElementaryTypeName","src":"3286:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46564,"mutability":"mutable","name":"op","nameLocation":"3330:2:70","nodeType":"VariableDeclaration","scope":46597,"src":"3313:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"typeName":{"id":46563,"nodeType":"UserDefinedTypeName","pathNode":{"id":46562,"name":"StakingOperation","nameLocations":["3313:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50049,"src":"3313:16:70"},"referencedDeclaration":50049,"src":"3313:16:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":46566,"mutability":"mutable","name":"payload","nameLocation":"3355:7:70","nodeType":"VariableDeclaration","scope":46597,"src":"3342:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46565,"name":"bytes","nodeType":"ElementaryTypeName","src":"3342:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3234:134:70"},"returnParameters":{"id":46570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46569,"mutability":"mutable","name":"configurationNumber","nameLocation":"3394:19:70","nodeType":"VariableDeclaration","scope":46597,"src":"3387:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46568,"name":"uint64","nodeType":"ElementaryTypeName","src":"3387:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3386:28:70"},"scope":46631,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46615,"nodeType":"FunctionDefinition","src":"3727:209:70","nodes":[],"body":{"id":46614,"nodeType":"Block","src":"3876:60:70","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":46609,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46601,"src":"3893:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3901:7:70","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50075,"src":"3893:15:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50057_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":46612,"indexExpression":{"id":46611,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46603,"src":"3909:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3893:36:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage","typeString":"struct StakingChange storage ref"}},"functionReturnParameters":46608,"id":46613,"nodeType":"Return","src":"3886:43:70"}]},"documentation":{"id":46598,"nodeType":"StructuredDocumentation","src":"3672:50:70","text":"@notice Get the change at configuration number"},"implemented":true,"kind":"function","modifiers":[],"name":"getChange","nameLocation":"3736:9:70","parameters":{"id":46604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46601,"mutability":"mutable","name":"changes","nameLocation":"3780:7:70","nodeType":"VariableDeclaration","scope":46615,"src":"3755:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46600,"nodeType":"UserDefinedTypeName","pathNode":{"id":46599,"name":"StakingChangeLog","nameLocations":["3755:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"3755:16:70"},"referencedDeclaration":50076,"src":"3755:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46603,"mutability":"mutable","name":"configurationNumber","nameLocation":"3804:19:70","nodeType":"VariableDeclaration","scope":46615,"src":"3797:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46602,"name":"uint64","nodeType":"ElementaryTypeName","src":"3797:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3745:84:70"},"returnParameters":{"id":46608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46615,"src":"3853:21:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46606,"nodeType":"UserDefinedTypeName","pathNode":{"id":46605,"name":"StakingChange","nameLocations":["3853:13:70"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"3853:13:70"},"referencedDeclaration":50057,"src":"3853:13:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"src":"3852:23:70"},"scope":46631,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46630,"nodeType":"FunctionDefinition","src":"3942:152:70","nodes":[],"body":{"id":46629,"nodeType":"Block","src":"4034:60:70","nodes":[],"statements":[{"expression":{"id":46627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4044:43:70","subExpression":{"baseExpression":{"expression":{"id":46623,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46618,"src":"4051:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4059:7:70","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50075,"src":"4051:15:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50057_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":46626,"indexExpression":{"id":46625,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46620,"src":"4067:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4051:36:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage","typeString":"struct StakingChange storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46628,"nodeType":"ExpressionStatement","src":"4044:43:70"}]},"implemented":true,"kind":"function","modifiers":[],"name":"purgeChange","nameLocation":"3951:11:70","parameters":{"id":46621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46618,"mutability":"mutable","name":"changes","nameLocation":"3988:7:70","nodeType":"VariableDeclaration","scope":46630,"src":"3963:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46617,"nodeType":"UserDefinedTypeName","pathNode":{"id":46616,"name":"StakingChangeLog","nameLocations":["3963:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"3963:16:70"},"referencedDeclaration":50076,"src":"3963:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46620,"mutability":"mutable","name":"configurationNumber","nameLocation":"4004:19:70","nodeType":"VariableDeclaration","scope":46630,"src":"3997:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46619,"name":"uint64","nodeType":"ElementaryTypeName","src":"3997:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3962:62:70"},"returnParameters":{"id":46622,"nodeType":"ParameterList","parameters":[],"src":"4034:0:70"},"scope":46631,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingChangeLog","contractDependencies":[],"contractKind":"library","documentation":{"id":46400,"nodeType":"StructuredDocumentation","src":"161:44:70","text":"The util library for `StakingChangeLog`"},"fullyImplemented":true,"linearizedBaseContracts":[46631],"name":"LibStakingChangeLog","nameLocation":"213:19:70","scope":46632,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":70} \ No newline at end of file diff --git a/.out/LibSubnetActor.sol/LibSubnetActor.json b/.out/LibSubnetActor.sol/LibSubnetActor.json index 35120e3a4..e13693ca8 100644 --- a/.out/LibSubnetActor.sol/LibSubnetActor.json +++ b/.out/LibSubnetActor.sol/LibSubnetActor.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"SubnetBootstrapped","inputs":[{"name":"","type":"tuple[]","indexed":false,"internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220af571fcbd99b873c776dbe8c8dc9b4f91bd60bad846adc3698fade770be048a764736f6c63430008130033","sourceMap":"807:6721:71:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220af571fcbd99b873c776dbe8c8dc9b4f91bd60bad846adc3698fade770be048a764736f6c63430008130033","sourceMap":"807:6721:71:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"SubnetBootstrapped\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActor.sol\":\"LibSubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"indexed":false}],"type":"event","name":"SubnetBootstrapped","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActor.sol":"LibSubnetActor"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActor.sol","id":47158,"exportedSymbols":{"DuplicatedGenesisValidator":[37530],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"EnumerableSet":[35815],"IGateway":[40354],"LibStaking":[46176],"LibSubnetActor":[47157],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"MethodNotAllowed":[37526],"NotEnoughGenesisValidators":[37532],"NotOwnerOfPublicKey":[37480],"PermissionMode":[50165],"SubnetActorModifiers":[47335],"SubnetActorStorage":[47281],"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH":[36882],"Validator":[50211],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:7482:71","nodes":[{"id":46680,"nodeType":"PragmaDirective","src":"46:23:71","nodes":[],"literals":["solidity","0.8",".19"]},{"id":46682,"nodeType":"ImportDirective","src":"71:81:71","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":46681,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"79:37:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46684,"nodeType":"ImportDirective","src":"153:74:71","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":46683,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37535,"src":"161:33:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46689,"nodeType":"ImportDirective","src":"228:134:71","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":46685,"name":"NotEnoughGenesisValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37532,"src":"236:26:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46686,"name":"DuplicatedGenesisValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37530,"src":"264:26:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46687,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"292:19:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46688,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"313:16:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46691,"nodeType":"ImportDirective","src":"363:52:71","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":46690,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"371:8:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46695,"nodeType":"ImportDirective","src":"416:78:71","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":46692,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"424:9:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46693,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"435:12:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46694,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"449:14:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46697,"nodeType":"ImportDirective","src":"495:70:71","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":46696,"name":"SubnetActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47335,"src":"503:20:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46700,"nodeType":"ImportDirective","src":"566:66:71","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":46698,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"574:15:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46699,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"591:10:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46702,"nodeType":"ImportDirective","src":"633:85:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":46701,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"641:13:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46705,"nodeType":"ImportDirective","src":"719:86:71","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":46703,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"727:21:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46704,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"750:18:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47157,"nodeType":"ContractDefinition","src":"807:6721:71","nodes":[{"id":46709,"nodeType":"UsingForDirective","src":"836:49:71","nodes":[],"global":false,"libraryName":{"id":46706,"name":"EnumerableSet","nameLocations":["842:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"842:13:71"},"typeName":{"id":46708,"nodeType":"UserDefinedTypeName","pathNode":{"id":46707,"name":"EnumerableSet.AddressSet","nameLocations":["860:13:71","874:10:71"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"860:24:71"},"referencedDeclaration":35528,"src":"860:24:71","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":46715,"nodeType":"EventDefinition","src":"891:38:71","nodes":[],"anonymous":false,"eventSelector":"4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593","name":"SubnetBootstrapped","nameLocation":"897:18:71","parameters":{"id":46714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46713,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46715,"src":"916:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":46711,"nodeType":"UserDefinedTypeName","pathNode":{"id":46710,"name":"Validator","nameLocations":["916:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"916:9:71"},"referencedDeclaration":50211,"src":"916:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":46712,"nodeType":"ArrayTypeName","src":"916:11:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"src":"915:13:71"}},{"id":46740,"nodeType":"FunctionDefinition","src":"1090:308:71","nodes":[],"body":{"id":46739,"nodeType":"Block","src":"1143:255:71","nodes":[],"statements":[{"assignments":[46721],"declarations":[{"constant":false,"id":46721,"mutability":"mutable","name":"s","nameLocation":"1180:1:71","nodeType":"VariableDeclaration","scope":46739,"src":"1153:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46720,"nodeType":"UserDefinedTypeName","pathNode":{"id":46719,"name":"SubnetActorStorage","nameLocations":["1153:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"1153:18:71"},"referencedDeclaration":47281,"src":"1153:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46725,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46722,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"1184:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1206:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"1184:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1184:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1153:65:71"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":46731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46726,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46721,"src":"1233:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1235:12:71","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"1233:14:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1248:14:71","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"1233:29:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46729,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"1266:14:71","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":46730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1281:10:71","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"1266:25:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"1233:58:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46737,"nodeType":"IfStatement","src":"1229:147:71","trueBody":{"id":46736,"nodeType":"Block","src":"1293:83:71","statements":[{"errorCall":{"arguments":[{"id":46733,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37535,"src":"1331:33:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":46732,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"1314:16:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":46734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1314:51:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46735,"nodeType":"RevertStatement","src":"1307:58:71"}]}},{"functionReturnParameters":46718,"id":46738,"nodeType":"Return","src":"1385:7:71"}]},"documentation":{"id":46716,"nodeType":"StructuredDocumentation","src":"935:150:71","text":"@notice Ensures that the subnet is operating under Collateral-based permission mode.\n @dev Reverts if the subnet is not in Collateral mode."},"implemented":true,"kind":"function","modifiers":[],"name":"enforceCollateralValidation","nameLocation":"1099:27:71","parameters":{"id":46717,"nodeType":"ParameterList","parameters":[],"src":"1126:2:71"},"returnParameters":{"id":46718,"nodeType":"ParameterList","parameters":[],"src":"1143:0:71"},"scope":47157,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46765,"nodeType":"FunctionDefinition","src":"1551:306:71","nodes":[],"body":{"id":46764,"nodeType":"Block","src":"1603:254:71","nodes":[],"statements":[{"assignments":[46746],"declarations":[{"constant":false,"id":46746,"mutability":"mutable","name":"s","nameLocation":"1640:1:71","nodeType":"VariableDeclaration","scope":46764,"src":"1613:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46745,"nodeType":"UserDefinedTypeName","pathNode":{"id":46744,"name":"SubnetActorStorage","nameLocations":["1613:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"1613:18:71"},"referencedDeclaration":47281,"src":"1613:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46750,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46747,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"1644:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1666:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"1644:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1613:65:71"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":46756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46751,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46746,"src":"1693:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1695:12:71","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"1693:14:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1708:14:71","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"1693:29:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46754,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"1726:14:71","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":46755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1741:9:71","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"1726:24:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"1693:57:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46762,"nodeType":"IfStatement","src":"1689:146:71","trueBody":{"id":46761,"nodeType":"Block","src":"1752:83:71","statements":[{"errorCall":{"arguments":[{"id":46758,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37535,"src":"1790:33:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":46757,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"1773:16:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":46759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1773:51:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46760,"nodeType":"RevertStatement","src":"1766:58:71"}]}},{"functionReturnParameters":46743,"id":46763,"nodeType":"Return","src":"1844:7:71"}]},"documentation":{"id":46741,"nodeType":"StructuredDocumentation","src":"1404:142:71","text":"@notice Ensures that the subnet is operating under Federated permission mode.\n @dev Reverts if the subnet is not in Federated mode."},"implemented":true,"kind":"function","modifiers":[],"name":"enforceFederatedValidation","nameLocation":"1560:26:71","parameters":{"id":46742,"nodeType":"ParameterList","parameters":[],"src":"1586:2:71"},"returnParameters":{"id":46743,"nodeType":"ParameterList","parameters":[],"src":"1603:0:71"},"scope":47157,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46822,"nodeType":"FunctionDefinition","src":"2006:664:71","nodes":[],"body":{"id":46821,"nodeType":"Block","src":"2050:620:71","nodes":[],"statements":[{"assignments":[46771],"declarations":[{"constant":false,"id":46771,"mutability":"mutable","name":"s","nameLocation":"2087:1:71","nodeType":"VariableDeclaration","scope":46821,"src":"2060:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46770,"nodeType":"UserDefinedTypeName","pathNode":{"id":46769,"name":"SubnetActorStorage","nameLocations":["2060:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"2060:18:71"},"referencedDeclaration":47281,"src":"2060:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46775,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46772,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"2091:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2113:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"2091:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2091:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2060:65:71"},{"assignments":[46777],"declarations":[{"constant":false,"id":46777,"mutability":"mutable","name":"totalCollateral","nameLocation":"2144:15:71","nodeType":"VariableDeclaration","scope":46821,"src":"2136:23:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46776,"name":"uint256","nodeType":"ElementaryTypeName","src":"2136:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46781,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46778,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"2162:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":46779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2173:27:71","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":45496,"src":"2162:38:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":46780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:40:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2136:66:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46782,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46777,"src":"2217:15:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":46783,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2236:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2238:23:71","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":47217,"src":"2236:25:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2217:44:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46820,"nodeType":"IfStatement","src":"2213:451:71","trueBody":{"id":46819,"nodeType":"Block","src":"2263:401:71","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46786,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"2281:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":46787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2292:21:71","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":45452,"src":"2281:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":46788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":46789,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2319:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2321:13:71","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47223,"src":"2319:15:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2281:53:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46818,"nodeType":"IfStatement","src":"2277:377:71","trueBody":{"id":46817,"nodeType":"Block","src":"2336:318:71","statements":[{"expression":{"id":46796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46792,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2354:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2356:12:71","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"2354:14:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":46795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2371:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2354:21:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46797,"nodeType":"ExpressionStatement","src":"2354:21:71"},{"eventCall":{"arguments":[{"expression":{"id":46799,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2417:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2419:17:71","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"2417:19:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}],"id":46798,"name":"SubnetBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46715,"src":"2398:18:71","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct Validator memory[] memory)"}},"id":46801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:39:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46802,"nodeType":"EmitStatement","src":"2393:44:71"},{"expression":{"arguments":[{"expression":{"id":46813,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2619:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2621:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"2619:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46804,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2546:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2548:14:71","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"2546:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46803,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"2537:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2537:26:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2564:8:71","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":40259,"src":"2537:35:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":46812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46808,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46777,"src":"2580:15:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":46809,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2598:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2600:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"2598:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2580:37:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2537:81:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":46815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2537:102:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46816,"nodeType":"ExpressionStatement","src":"2537:102:71"}]}}]}}]},"documentation":{"id":46766,"nodeType":"StructuredDocumentation","src":"1863:138:71","text":"@dev This function is used to bootstrap the subnet,\n if its total collateral is greater than minimum activation collateral."},"implemented":true,"kind":"function","modifiers":[],"name":"bootstrapSubnetIfNeeded","nameLocation":"2015:23:71","parameters":{"id":46767,"nodeType":"ParameterList","parameters":[],"src":"2038:2:71"},"returnParameters":{"id":46768,"nodeType":"ParameterList","parameters":[],"src":"2050:0:71"},"scope":47157,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46856,"nodeType":"FunctionDefinition","src":"2989:328:71","nodes":[],"body":{"id":46855,"nodeType":"Block","src":"3088:229:71","nodes":[],"statements":[{"assignments":[46833],"declarations":[{"constant":false,"id":46833,"mutability":"mutable","name":"s","nameLocation":"3125:1:71","nodeType":"VariableDeclaration","scope":46855,"src":"3098:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46832,"nodeType":"UserDefinedTypeName","pathNode":{"id":46831,"name":"SubnetActorStorage","nameLocations":["3098:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"3098:18:71"},"referencedDeclaration":47281,"src":"3098:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46837,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46834,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"3129:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3151:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"3129:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3129:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3098:65:71"},{"assignments":[46839],"declarations":[{"constant":false,"id":46839,"mutability":"mutable","name":"previousHeight","nameLocation":"3182:14:71","nodeType":"VariableDeclaration","scope":46855,"src":"3174:22:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46838,"name":"uint256","nodeType":"ElementaryTypeName","src":"3174:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46844,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46840,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46825,"src":"3199:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":46841,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46833,"src":"3208:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3210:19:71","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"3208:21:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3199:30:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3174:55:71"},{"expression":{"id":46853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46845,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46829,"src":"3239:8:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"expression":{"id":46846,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46833,"src":"3250:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3252:14:71","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"3250:16:71","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":46848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3267:18:71","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49961,"src":"3250:35:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":46850,"indexExpression":{"id":46849,"name":"previousHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46839,"src":"3286:14:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3250:51:71","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":46851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3302:6:71","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"3250:58:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":46852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3250:60:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"3239:71:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46854,"nodeType":"ExpressionStatement","src":"3239:71:71"}]},"documentation":{"id":46823,"nodeType":"StructuredDocumentation","src":"2676:308:71","text":"@notice Retrieves the addresses of relayers who were rewarded for a specific checkpoint at a given height.\n @param height The height of the checkpoint for which to find rewarded relayers.\n @return relayers An array of addresses of the relayers who were rewarded at the specified checkpoint."},"implemented":true,"kind":"function","modifiers":[],"name":"checkpointRewardedAddrs","nameLocation":"2998:23:71","parameters":{"id":46826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46825,"mutability":"mutable","name":"height","nameLocation":"3030:6:71","nodeType":"VariableDeclaration","scope":46856,"src":"3022:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46824,"name":"uint256","nodeType":"ElementaryTypeName","src":"3022:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:16:71"},"returnParameters":{"id":46830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46829,"mutability":"mutable","name":"relayers","nameLocation":"3078:8:71","nodeType":"VariableDeclaration","scope":46856,"src":"3061:25:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46827,"name":"address","nodeType":"ElementaryTypeName","src":"3061:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46828,"nodeType":"ArrayTypeName","src":"3061:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3060:27:71"},"scope":47157,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46891,"nodeType":"FunctionDefinition","src":"3527:269:71","nodes":[],"body":{"id":46890,"nodeType":"Block","src":"3613:183:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46865,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46859,"src":"3630:9:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":46866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3640:6:71","memberName":"length","nodeType":"MemberAccess","src":"3630:16:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":46867,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"3650:37:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3630:57:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":46864,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"3623:6:71","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":46869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:65:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46870,"nodeType":"ExpressionStatement","src":"3623:65:71"},{"assignments":[46872],"declarations":[{"constant":false,"id":46872,"mutability":"mutable","name":"hashed","nameLocation":"3706:6:71","nodeType":"VariableDeclaration","scope":46890,"src":"3698:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3698:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46878,"initialValue":{"arguments":[{"baseExpression":{"id":46874,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46859,"src":"3725:9:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":46876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"3725:13:71","startExpression":{"hexValue":"31","id":46875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3735:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":46873,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3715:9:71","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":46877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3715:24:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3698:41:71"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":46885,"name":"hashed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46872,"src":"3780:6:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":46884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3772:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46883,"name":"uint256","nodeType":"ElementaryTypeName","src":"3772:7:71","typeDescriptions":{}}},"id":46886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3772:15:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3764:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":46881,"name":"uint160","nodeType":"ElementaryTypeName","src":"3764:7:71","typeDescriptions":{}}},"id":46887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3764:24:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":46880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3756:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46879,"name":"address","nodeType":"ElementaryTypeName","src":"3756:7:71","typeDescriptions":{}}},"id":46888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3756:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46863,"id":46889,"nodeType":"Return","src":"3749:40:71"}]},"documentation":{"id":46857,"nodeType":"StructuredDocumentation","src":"3323:199:71","text":"@notice Converts a 65-byte public key to its corresponding address.\n @param publicKey The 65-byte public key to be converted.\n @return The address derived from the given public key."},"implemented":true,"kind":"function","modifiers":[],"name":"publicKeyToAddress","nameLocation":"3536:18:71","parameters":{"id":46860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46859,"mutability":"mutable","name":"publicKey","nameLocation":"3570:9:71","nodeType":"VariableDeclaration","scope":46891,"src":"3555:24:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46858,"name":"bytes","nodeType":"ElementaryTypeName","src":"3555:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3554:26:71"},"returnParameters":{"id":46863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46891,"src":"3604:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46861,"name":"address","nodeType":"ElementaryTypeName","src":"3604:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3603:9:71"},"scope":47157,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":47032,"nodeType":"FunctionDefinition","src":"4147:1531:71","nodes":[],"body":{"id":47031,"nodeType":"Block","src":"4312:1366:71","nodes":[],"statements":[{"assignments":[46906],"declarations":[{"constant":false,"id":46906,"mutability":"mutable","name":"s","nameLocation":"4349:1:71","nodeType":"VariableDeclaration","scope":47031,"src":"4322:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46905,"nodeType":"UserDefinedTypeName","pathNode":{"id":46904,"name":"SubnetActorStorage","nameLocations":["4322:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"4322:18:71"},"referencedDeclaration":47281,"src":"4322:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46910,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46907,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"4353:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4375:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"4353:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4353:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4322:65:71"},{"assignments":[46912],"declarations":[{"constant":false,"id":46912,"mutability":"mutable","name":"length","nameLocation":"4406:6:71","nodeType":"VariableDeclaration","scope":47031,"src":"4398:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46911,"name":"uint256","nodeType":"ElementaryTypeName","src":"4398:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46915,"initialValue":{"expression":{"id":46913,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"4415:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4426:6:71","memberName":"length","nodeType":"MemberAccess","src":"4415:17:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4398:34:71"},{"body":{"id":46997,"nodeType":"Block","src":"4472:792:71","statements":[{"assignments":[46923],"declarations":[{"constant":false,"id":46923,"mutability":"mutable","name":"convertedAddress","nameLocation":"4525:16:71","nodeType":"VariableDeclaration","scope":46997,"src":"4517:24:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46922,"name":"address","nodeType":"ElementaryTypeName","src":"4517:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46929,"initialValue":{"arguments":[{"baseExpression":{"id":46925,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46898,"src":"4563:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":46927,"indexExpression":{"id":46926,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4574:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4563:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":46924,"name":"publicKeyToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46891,"src":"4544:18:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":46928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4544:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4517:60:71"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46930,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46923,"src":"4595:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":46931,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"4615:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46933,"indexExpression":{"id":46932,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4626:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4615:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4595:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46939,"nodeType":"IfStatement","src":"4591:100:71","trueBody":{"id":46938,"nodeType":"Block","src":"4630:61:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46935,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"4655:19:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4655:21:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46937,"nodeType":"RevertStatement","src":"4648:28:71"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":46942,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"4832:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46944,"indexExpression":{"id":46943,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4843:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4832:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46940,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"4812:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":46941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4823:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":45350,"src":"4812:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4812:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":46946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4849:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4812:38:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46952,"nodeType":"IfStatement","src":"4808:112:71","trueBody":{"id":46951,"nodeType":"Block","src":"4852:68:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46948,"name":"DuplicatedGenesisValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37530,"src":"4877:26:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4877:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46950,"nodeType":"RevertStatement","src":"4870:35:71"}]}},{"expression":{"arguments":[{"baseExpression":{"id":46956,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"4968:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46958,"indexExpression":{"id":46957,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4979:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4968:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":46959,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46898,"src":"4983:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":46961,"indexExpression":{"id":46960,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4994:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4983:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":46953,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"4934:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":46955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4945:22:71","memberName":"setMetadataWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45587,"src":"4934:33:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":46962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4934:63:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46963,"nodeType":"ExpressionStatement","src":"4934:63:71"},{"expression":{"arguments":[{"baseExpression":{"id":46967,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"5051:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46969,"indexExpression":{"id":46968,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5062:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5051:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":46970,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46901,"src":"5066:6:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":46972,"indexExpression":{"id":46971,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5073:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5066:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46964,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"5011:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":46966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5022:28:71","memberName":"setFederatedPowerWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45562,"src":"5011:39:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":46973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5011:65:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46974,"nodeType":"ExpressionStatement","src":"5011:65:71"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":46981,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"5133:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46983,"indexExpression":{"id":46982,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5144:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5133:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":46984,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46901,"src":"5156:6:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":46986,"indexExpression":{"id":46985,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5163:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5156:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":46987,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46898,"src":"5177:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":46989,"indexExpression":{"id":46988,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5188:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5177:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":46980,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"5116:9:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":46990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5127:4:71","5148:6:71","5167:8:71"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"5116:76:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":46975,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5091:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5093:17:71","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"5091:19:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":46979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5111:4:71","memberName":"push","nodeType":"MemberAccess","src":"5091:24:71","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":46991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:102:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46992,"nodeType":"ExpressionStatement","src":"5091:102:71"},{"id":46996,"nodeType":"UncheckedBlock","src":"5208:46:71","statements":[{"expression":{"id":46994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5236:3:71","subExpression":{"id":46993,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5238:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46995,"nodeType":"ExpressionStatement","src":"5236:3:71"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46919,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4458:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46920,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46912,"src":"4462:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4458:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46998,"initializationExpression":{"assignments":[46917],"declarations":[{"constant":false,"id":46917,"mutability":"mutable","name":"i","nameLocation":"4455:1:71","nodeType":"VariableDeclaration","scope":46998,"src":"4447:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46916,"name":"uint256","nodeType":"ElementaryTypeName","src":"4447:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46918,"nodeType":"VariableDeclarationStatement","src":"4447:9:71"},"nodeType":"ForStatement","src":"4442:822:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46999,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46912,"src":"5331:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":47000,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5341:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5343:13:71","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47223,"src":"5341:15:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5331:25:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47007,"nodeType":"IfStatement","src":"5327:91:71","trueBody":{"id":47006,"nodeType":"Block","src":"5358:60:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47003,"name":"NotEnoughGenesisValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37532,"src":"5379:26:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5379:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47005,"nodeType":"RevertStatement","src":"5372:35:71"}]}},{"expression":{"id":47012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":47008,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5428:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5430:12:71","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"5428:14:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":47011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5445:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5428:21:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47013,"nodeType":"ExpressionStatement","src":"5428:21:71"},{"eventCall":{"arguments":[{"expression":{"id":47015,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5483:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5485:17:71","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"5483:19:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}],"id":47014,"name":"SubnetBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46715,"src":"5464:18:71","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct Validator memory[] memory)"}},"id":47017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5464:39:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47018,"nodeType":"EmitStatement","src":"5459:44:71"},{"expression":{"arguments":[{"expression":{"id":47027,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5651:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5653:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"5651:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":47020,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5596:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5598:14:71","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"5596:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47019,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"5587:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":47022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5587:26:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":47023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5614:8:71","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":40259,"src":"5587:35:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":47026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":47024,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5630:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5632:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"5630:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5587:63:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":47029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5587:84:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47030,"nodeType":"ExpressionStatement","src":"5587:84:71"}]},"documentation":{"id":46892,"nodeType":"StructuredDocumentation","src":"3802:340:71","text":"@notice method that allows the contract owner to set the validators' federated power before.\n @notice subnet has already been bootstrapped.\n @param validators The list of validators' addresses.\n @param publicKeys The list of validators' public keys.\n @param powers The list of power values of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"preBootstrapSetFederatedPower","nameLocation":"4156:29:71","parameters":{"id":46902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46895,"mutability":"mutable","name":"validators","nameLocation":"4214:10:71","nodeType":"VariableDeclaration","scope":47032,"src":"4195:29:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46893,"name":"address","nodeType":"ElementaryTypeName","src":"4195:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46894,"nodeType":"ArrayTypeName","src":"4195:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":46898,"mutability":"mutable","name":"publicKeys","nameLocation":"4251:10:71","nodeType":"VariableDeclaration","scope":47032,"src":"4234:27:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":46896,"name":"bytes","nodeType":"ElementaryTypeName","src":"4234:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":46897,"nodeType":"ArrayTypeName","src":"4234:7:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":46901,"mutability":"mutable","name":"powers","nameLocation":"4290:6:71","nodeType":"VariableDeclaration","scope":47032,"src":"4271:25:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":46899,"name":"uint256","nodeType":"ElementaryTypeName","src":"4271:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46900,"nodeType":"ArrayTypeName","src":"4271:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4185:117:71"},"returnParameters":{"id":46903,"nodeType":"ParameterList","parameters":[],"src":"4312:0:71"},"scope":47157,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47095,"nodeType":"FunctionDefinition","src":"6024:796:71","nodes":[],"body":{"id":47094,"nodeType":"Block","src":"6190:630:71","nodes":[],"statements":[{"assignments":[47046],"declarations":[{"constant":false,"id":47046,"mutability":"mutable","name":"length","nameLocation":"6208:6:71","nodeType":"VariableDeclaration","scope":47094,"src":"6200:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47045,"name":"uint256","nodeType":"ElementaryTypeName","src":"6200:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47049,"initialValue":{"expression":{"id":47047,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47036,"src":"6217:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6228:6:71","memberName":"length","nodeType":"MemberAccess","src":"6217:17:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6200:34:71"},{"body":{"id":47092,"nodeType":"Block","src":"6274:540:71","statements":[{"assignments":[47057],"declarations":[{"constant":false,"id":47057,"mutability":"mutable","name":"convertedAddress","nameLocation":"6327:16:71","nodeType":"VariableDeclaration","scope":47092,"src":"6319:24:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47056,"name":"address","nodeType":"ElementaryTypeName","src":"6319:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47063,"initialValue":{"arguments":[{"baseExpression":{"id":47059,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47039,"src":"6365:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":47061,"indexExpression":{"id":47060,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6376:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6365:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":47058,"name":"publicKeyToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46891,"src":"6346:18:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":47062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6346:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6319:60:71"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47064,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47057,"src":"6397:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":47065,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47036,"src":"6417:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47067,"indexExpression":{"id":47066,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6428:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6417:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6397:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47073,"nodeType":"IfStatement","src":"6393:100:71","trueBody":{"id":47072,"nodeType":"Block","src":"6432:61:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47069,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"6457:19:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6457:21:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47071,"nodeType":"RevertStatement","src":"6450:28:71"}]}},{"expression":{"arguments":[{"baseExpression":{"id":47077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47036,"src":"6684:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47079,"indexExpression":{"id":47078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6695:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6684:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":47080,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47039,"src":"6709:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":47082,"indexExpression":{"id":47081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6720:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6709:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"baseExpression":{"id":47083,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47042,"src":"6732:6:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":47085,"indexExpression":{"id":47084,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6739:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6732:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47074,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"6643:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":47076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6654:17:71","memberName":"setFederatedPower","nodeType":"MemberAccess","referencedDeclaration":45766,"src":"6643:28:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$","typeString":"function (address,bytes calldata,uint256)"}},"id":47086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6673:9:71","6699:8:71","6724:6:71"],"names":["validator","metadata","amount"],"nodeType":"FunctionCall","src":"6643:100:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47087,"nodeType":"ExpressionStatement","src":"6643:100:71"},{"id":47091,"nodeType":"UncheckedBlock","src":"6758:46:71","statements":[{"expression":{"id":47089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6786:3:71","subExpression":{"id":47088,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6788:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47090,"nodeType":"ExpressionStatement","src":"6786:3:71"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47053,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6260:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47054,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47046,"src":"6264:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6260:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47093,"initializationExpression":{"assignments":[47051],"declarations":[{"constant":false,"id":47051,"mutability":"mutable","name":"i","nameLocation":"6257:1:71","nodeType":"VariableDeclaration","scope":47093,"src":"6249:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47050,"name":"uint256","nodeType":"ElementaryTypeName","src":"6249:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47052,"nodeType":"VariableDeclarationStatement","src":"6249:9:71"},"nodeType":"ForStatement","src":"6244:570:71"}]},"documentation":{"id":47033,"nodeType":"StructuredDocumentation","src":"5684:335:71","text":"@notice method that allows the contract owner to set the validators' federated power after\n @dev subnet has already been bootstrapped.\n @param validators The list of validators' addresses.\n @param publicKeys The list of validators' public keys.\n @param powers The list of power values of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"postBootstrapSetFederatedPower","nameLocation":"6033:30:71","parameters":{"id":47043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47036,"mutability":"mutable","name":"validators","nameLocation":"6092:10:71","nodeType":"VariableDeclaration","scope":47095,"src":"6073:29:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47034,"name":"address","nodeType":"ElementaryTypeName","src":"6073:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47035,"nodeType":"ArrayTypeName","src":"6073:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":47039,"mutability":"mutable","name":"publicKeys","nameLocation":"6129:10:71","nodeType":"VariableDeclaration","scope":47095,"src":"6112:27:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":47037,"name":"bytes","nodeType":"ElementaryTypeName","src":"6112:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":47038,"nodeType":"ArrayTypeName","src":"6112:7:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":47042,"mutability":"mutable","name":"powers","nameLocation":"6168:6:71","nodeType":"VariableDeclaration","scope":47095,"src":"6149:25:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":47040,"name":"uint256","nodeType":"ElementaryTypeName","src":"6149:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47041,"nodeType":"ArrayTypeName","src":"6149:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6063:117:71"},"returnParameters":{"id":47044,"nodeType":"ParameterList","parameters":[],"src":"6190:0:71"},"scope":47157,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47156,"nodeType":"FunctionDefinition","src":"6969:557:71","nodes":[],"body":{"id":47155,"nodeType":"Block","src":"7025:501:71","nodes":[],"statements":[{"assignments":[47103],"declarations":[{"constant":false,"id":47103,"mutability":"mutable","name":"s","nameLocation":"7062:1:71","nodeType":"VariableDeclaration","scope":47155,"src":"7035:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":47102,"nodeType":"UserDefinedTypeName","pathNode":{"id":47101,"name":"SubnetActorStorage","nameLocations":["7035:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"7035:18:71"},"referencedDeclaration":47281,"src":"7035:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":47107,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":47104,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"7066:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":47105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7088:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"7066:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":47106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7066:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7035:65:71"},{"assignments":[47109],"declarations":[{"constant":false,"id":47109,"mutability":"mutable","name":"length","nameLocation":"7119:6:71","nodeType":"VariableDeclaration","scope":47155,"src":"7111:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47108,"name":"uint256","nodeType":"ElementaryTypeName","src":"7111:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47113,"initialValue":{"expression":{"expression":{"id":47110,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47103,"src":"7128:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7130:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"7128:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7149:6:71","memberName":"length","nodeType":"MemberAccess","src":"7128:27:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7111:44:71"},{"body":{"id":47153,"nodeType":"Block","src":"7195:325:71","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":47120,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47103,"src":"7213:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7215:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"7213:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47123,"indexExpression":{"id":47122,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47115,"src":"7234:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7213:23:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":47124,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47098,"src":"7240:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7213:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47148,"nodeType":"IfStatement","src":"7209:242:71","trueBody":{"id":47147,"nodeType":"Block","src":"7246:205:71","statements":[{"expression":{"id":47137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":47126,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47103,"src":"7264:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7266:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"7264:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47130,"indexExpression":{"id":47128,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47115,"src":"7285:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7264:23:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47131,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47103,"src":"7290:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7292:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"7290:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47136,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47133,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47109,"src":"7311:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7320:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7311:10:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7290:32:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7264:58:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47138,"nodeType":"ExpressionStatement","src":"7264:58:71"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":47139,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47103,"src":"7340:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7342:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"7340:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7361:3:71","memberName":"pop","nodeType":"MemberAccess","src":"7340:24:71","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":47144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7340:26:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47145,"nodeType":"ExpressionStatement","src":"7340:26:71"},{"id":47146,"nodeType":"Break","src":"7431:5:71"}]}},{"id":47152,"nodeType":"UncheckedBlock","src":"7464:46:71","statements":[{"expression":{"id":47150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7492:3:71","subExpression":{"id":47149,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47115,"src":"7494:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47151,"nodeType":"ExpressionStatement","src":"7492:3:71"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47117,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47115,"src":"7181:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47118,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47109,"src":"7185:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7181:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47154,"initializationExpression":{"assignments":[47115],"declarations":[{"constant":false,"id":47115,"mutability":"mutable","name":"i","nameLocation":"7178:1:71","nodeType":"VariableDeclaration","scope":47154,"src":"7170:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47114,"name":"uint256","nodeType":"ElementaryTypeName","src":"7170:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47116,"nodeType":"VariableDeclarationStatement","src":"7170:9:71"},"nodeType":"ForStatement","src":"7165:355:71"}]},"documentation":{"id":47096,"nodeType":"StructuredDocumentation","src":"6826:138:71","text":"@notice Removes an address from the initial balance keys.\n @param addr The address to be removed from the genesis balance keys."},"implemented":true,"kind":"function","modifiers":[],"name":"rmAddressFromBalanceKey","nameLocation":"6978:23:71","parameters":{"id":47099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47098,"mutability":"mutable","name":"addr","nameLocation":"7010:4:71","nodeType":"VariableDeclaration","scope":47156,"src":"7002:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47097,"name":"address","nodeType":"ElementaryTypeName","src":"7002:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7001:14:71"},"returnParameters":{"id":47100,"nodeType":"ParameterList","parameters":[],"src":"7025:0:71"},"scope":47157,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActor","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[47157],"name":"LibSubnetActor","nameLocation":"815:14:71","scope":47158,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":71} \ No newline at end of file +{"abi":[{"type":"event","name":"SubnetBootstrapped","inputs":[{"name":"","type":"tuple[]","indexed":false,"internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220af571fcbd99b873c776dbe8c8dc9b4f91bd60bad846adc3698fade770be048a764736f6c63430008130033","sourceMap":"807:6721:71:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220af571fcbd99b873c776dbe8c8dc9b4f91bd60bad846adc3698fade770be048a764736f6c63430008130033","sourceMap":"807:6721:71:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"SubnetBootstrapped\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActor.sol\":\"LibSubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"indexed":false}],"type":"event","name":"SubnetBootstrapped","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActor.sol":"LibSubnetActor"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActor.sol","id":47111,"exportedSymbols":{"DuplicatedGenesisValidator":[37530],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"EnumerableSet":[35815],"IGateway":[40354],"LibStaking":[46129],"LibSubnetActor":[47110],"LibSubnetActorStorage":[47245],"LibValidatorSet":[45246],"MethodNotAllowed":[37526],"NotEnoughGenesisValidators":[37532],"NotOwnerOfPublicKey":[37480],"PermissionMode":[50118],"SubnetActorModifiers":[47288],"SubnetActorStorage":[47234],"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH":[36882],"Validator":[50164],"ValidatorSet":[50143]},"nodeType":"SourceUnit","src":"46:7482:71","nodes":[{"id":46633,"nodeType":"PragmaDirective","src":"46:23:71","nodes":[],"literals":["solidity","0.8",".19"]},{"id":46635,"nodeType":"ImportDirective","src":"71:81:71","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":47111,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":46634,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"79:37:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46637,"nodeType":"ImportDirective","src":"153:74:71","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47111,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":46636,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37535,"src":"161:33:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46642,"nodeType":"ImportDirective","src":"228:134:71","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47111,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":46638,"name":"NotEnoughGenesisValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37532,"src":"236:26:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46639,"name":"DuplicatedGenesisValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37530,"src":"264:26:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46640,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"292:19:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46641,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"313:16:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46644,"nodeType":"ImportDirective","src":"363:52:71","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":47111,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":46643,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"371:8:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46648,"nodeType":"ImportDirective","src":"416:78:71","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47111,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":46645,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"424:9:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46646,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"435:12:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46647,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"449:14:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46650,"nodeType":"ImportDirective","src":"495:70:71","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":47111,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":46649,"name":"SubnetActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47288,"src":"503:20:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46653,"nodeType":"ImportDirective","src":"566:66:71","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":47111,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":46651,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45246,"src":"574:15:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46652,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"591:10:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46655,"nodeType":"ImportDirective","src":"633:85:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":47111,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":46654,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"641:13:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46658,"nodeType":"ImportDirective","src":"719:86:71","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":47111,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":46656,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"727:21:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46657,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47234,"src":"750:18:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47110,"nodeType":"ContractDefinition","src":"807:6721:71","nodes":[{"id":46662,"nodeType":"UsingForDirective","src":"836:49:71","nodes":[],"global":false,"libraryName":{"id":46659,"name":"EnumerableSet","nameLocations":["842:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"842:13:71"},"typeName":{"id":46661,"nodeType":"UserDefinedTypeName","pathNode":{"id":46660,"name":"EnumerableSet.AddressSet","nameLocations":["860:13:71","874:10:71"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"860:24:71"},"referencedDeclaration":35528,"src":"860:24:71","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":46668,"nodeType":"EventDefinition","src":"891:38:71","nodes":[],"anonymous":false,"eventSelector":"4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593","name":"SubnetBootstrapped","nameLocation":"897:18:71","parameters":{"id":46667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46666,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46668,"src":"916:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":46664,"nodeType":"UserDefinedTypeName","pathNode":{"id":46663,"name":"Validator","nameLocations":["916:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"916:9:71"},"referencedDeclaration":50164,"src":"916:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":46665,"nodeType":"ArrayTypeName","src":"916:11:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"src":"915:13:71"}},{"id":46693,"nodeType":"FunctionDefinition","src":"1090:308:71","nodes":[],"body":{"id":46692,"nodeType":"Block","src":"1143:255:71","nodes":[],"statements":[{"assignments":[46674],"declarations":[{"constant":false,"id":46674,"mutability":"mutable","name":"s","nameLocation":"1180:1:71","nodeType":"VariableDeclaration","scope":46692,"src":"1153:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46673,"nodeType":"UserDefinedTypeName","pathNode":{"id":46672,"name":"SubnetActorStorage","nameLocations":["1153:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"1153:18:71"},"referencedDeclaration":47234,"src":"1153:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46678,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46675,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"1184:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1206:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"1184:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1184:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1153:65:71"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"id":46684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46679,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46674,"src":"1233:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1235:12:71","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"1233:14:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1248:14:71","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"1233:29:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46682,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"1266:14:71","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":46683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1281:10:71","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"1266:25:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"src":"1233:58:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46690,"nodeType":"IfStatement","src":"1229:147:71","trueBody":{"id":46689,"nodeType":"Block","src":"1293:83:71","statements":[{"errorCall":{"arguments":[{"id":46686,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37535,"src":"1331:33:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":46685,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"1314:16:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":46687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1314:51:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46688,"nodeType":"RevertStatement","src":"1307:58:71"}]}},{"functionReturnParameters":46671,"id":46691,"nodeType":"Return","src":"1385:7:71"}]},"documentation":{"id":46669,"nodeType":"StructuredDocumentation","src":"935:150:71","text":"@notice Ensures that the subnet is operating under Collateral-based permission mode.\n @dev Reverts if the subnet is not in Collateral mode."},"implemented":true,"kind":"function","modifiers":[],"name":"enforceCollateralValidation","nameLocation":"1099:27:71","parameters":{"id":46670,"nodeType":"ParameterList","parameters":[],"src":"1126:2:71"},"returnParameters":{"id":46671,"nodeType":"ParameterList","parameters":[],"src":"1143:0:71"},"scope":47110,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46718,"nodeType":"FunctionDefinition","src":"1551:306:71","nodes":[],"body":{"id":46717,"nodeType":"Block","src":"1603:254:71","nodes":[],"statements":[{"assignments":[46699],"declarations":[{"constant":false,"id":46699,"mutability":"mutable","name":"s","nameLocation":"1640:1:71","nodeType":"VariableDeclaration","scope":46717,"src":"1613:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46698,"nodeType":"UserDefinedTypeName","pathNode":{"id":46697,"name":"SubnetActorStorage","nameLocations":["1613:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"1613:18:71"},"referencedDeclaration":47234,"src":"1613:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46703,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46700,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"1644:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1666:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"1644:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1613:65:71"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"id":46709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46704,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46699,"src":"1693:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1695:12:71","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"1693:14:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":46706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1708:14:71","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"1693:29:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46707,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"1726:14:71","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":46708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1741:9:71","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"1726:24:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"src":"1693:57:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46715,"nodeType":"IfStatement","src":"1689:146:71","trueBody":{"id":46714,"nodeType":"Block","src":"1752:83:71","statements":[{"errorCall":{"arguments":[{"id":46711,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37535,"src":"1790:33:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":46710,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"1773:16:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":46712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1773:51:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46713,"nodeType":"RevertStatement","src":"1766:58:71"}]}},{"functionReturnParameters":46696,"id":46716,"nodeType":"Return","src":"1844:7:71"}]},"documentation":{"id":46694,"nodeType":"StructuredDocumentation","src":"1404:142:71","text":"@notice Ensures that the subnet is operating under Federated permission mode.\n @dev Reverts if the subnet is not in Federated mode."},"implemented":true,"kind":"function","modifiers":[],"name":"enforceFederatedValidation","nameLocation":"1560:26:71","parameters":{"id":46695,"nodeType":"ParameterList","parameters":[],"src":"1586:2:71"},"returnParameters":{"id":46696,"nodeType":"ParameterList","parameters":[],"src":"1603:0:71"},"scope":47110,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46775,"nodeType":"FunctionDefinition","src":"2006:664:71","nodes":[],"body":{"id":46774,"nodeType":"Block","src":"2050:620:71","nodes":[],"statements":[{"assignments":[46724],"declarations":[{"constant":false,"id":46724,"mutability":"mutable","name":"s","nameLocation":"2087:1:71","nodeType":"VariableDeclaration","scope":46774,"src":"2060:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46723,"nodeType":"UserDefinedTypeName","pathNode":{"id":46722,"name":"SubnetActorStorage","nameLocations":["2060:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"2060:18:71"},"referencedDeclaration":47234,"src":"2060:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46728,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46725,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"2091:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2113:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"2091:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2091:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2060:65:71"},{"assignments":[46730],"declarations":[{"constant":false,"id":46730,"mutability":"mutable","name":"totalCollateral","nameLocation":"2144:15:71","nodeType":"VariableDeclaration","scope":46774,"src":"2136:23:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46729,"name":"uint256","nodeType":"ElementaryTypeName","src":"2136:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46734,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46731,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"2162:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":46732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2173:27:71","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":45449,"src":"2162:38:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":46733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:40:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2136:66:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46735,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46730,"src":"2217:15:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":46736,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46724,"src":"2236:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2238:23:71","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":47170,"src":"2236:25:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2217:44:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46773,"nodeType":"IfStatement","src":"2213:451:71","trueBody":{"id":46772,"nodeType":"Block","src":"2263:401:71","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46739,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"2281:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":46740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2292:21:71","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":45405,"src":"2281:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":46741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":46742,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46724,"src":"2319:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2321:13:71","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47176,"src":"2319:15:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2281:53:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46771,"nodeType":"IfStatement","src":"2277:377:71","trueBody":{"id":46770,"nodeType":"Block","src":"2336:318:71","statements":[{"expression":{"id":46749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46745,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46724,"src":"2354:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2356:12:71","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"2354:14:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":46748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2371:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2354:21:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46750,"nodeType":"ExpressionStatement","src":"2354:21:71"},{"eventCall":{"arguments":[{"expression":{"id":46752,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46724,"src":"2417:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2419:17:71","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"2417:19:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}],"id":46751,"name":"SubnetBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46668,"src":"2398:18:71","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct Validator memory[] memory)"}},"id":46754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:39:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46755,"nodeType":"EmitStatement","src":"2393:44:71"},{"expression":{"arguments":[{"expression":{"id":46766,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46724,"src":"2619:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2621:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47145,"src":"2619:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46757,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46724,"src":"2546:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2548:14:71","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"2546:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46756,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"2537:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2537:26:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2564:8:71","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":40259,"src":"2537:35:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":46765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46761,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46730,"src":"2580:15:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":46762,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46724,"src":"2598:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2600:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47145,"src":"2598:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2580:37:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2537:81:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":46768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2537:102:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46769,"nodeType":"ExpressionStatement","src":"2537:102:71"}]}}]}}]},"documentation":{"id":46719,"nodeType":"StructuredDocumentation","src":"1863:138:71","text":"@dev This function is used to bootstrap the subnet,\n if its total collateral is greater than minimum activation collateral."},"implemented":true,"kind":"function","modifiers":[],"name":"bootstrapSubnetIfNeeded","nameLocation":"2015:23:71","parameters":{"id":46720,"nodeType":"ParameterList","parameters":[],"src":"2038:2:71"},"returnParameters":{"id":46721,"nodeType":"ParameterList","parameters":[],"src":"2050:0:71"},"scope":47110,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46809,"nodeType":"FunctionDefinition","src":"2989:328:71","nodes":[],"body":{"id":46808,"nodeType":"Block","src":"3088:229:71","nodes":[],"statements":[{"assignments":[46786],"declarations":[{"constant":false,"id":46786,"mutability":"mutable","name":"s","nameLocation":"3125:1:71","nodeType":"VariableDeclaration","scope":46808,"src":"3098:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46785,"nodeType":"UserDefinedTypeName","pathNode":{"id":46784,"name":"SubnetActorStorage","nameLocations":["3098:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"3098:18:71"},"referencedDeclaration":47234,"src":"3098:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46790,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46787,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"3129:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3151:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"3129:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3129:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3098:65:71"},{"assignments":[46792],"declarations":[{"constant":false,"id":46792,"mutability":"mutable","name":"previousHeight","nameLocation":"3182:14:71","nodeType":"VariableDeclaration","scope":46808,"src":"3174:22:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46791,"name":"uint256","nodeType":"ElementaryTypeName","src":"3174:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46797,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46793,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46778,"src":"3199:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":46794,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46786,"src":"3208:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3210:19:71","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47173,"src":"3208:21:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3199:30:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3174:55:71"},{"expression":{"id":46806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46798,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46782,"src":"3239:8:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"expression":{"id":46799,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46786,"src":"3250:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3252:14:71","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"3250:16:71","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":46801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3267:18:71","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49914,"src":"3250:35:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":46803,"indexExpression":{"id":46802,"name":"previousHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46792,"src":"3286:14:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3250:51:71","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":46804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3302:6:71","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"3250:58:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":46805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3250:60:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"3239:71:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46807,"nodeType":"ExpressionStatement","src":"3239:71:71"}]},"documentation":{"id":46776,"nodeType":"StructuredDocumentation","src":"2676:308:71","text":"@notice Retrieves the addresses of relayers who were rewarded for a specific checkpoint at a given height.\n @param height The height of the checkpoint for which to find rewarded relayers.\n @return relayers An array of addresses of the relayers who were rewarded at the specified checkpoint."},"implemented":true,"kind":"function","modifiers":[],"name":"checkpointRewardedAddrs","nameLocation":"2998:23:71","parameters":{"id":46779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46778,"mutability":"mutable","name":"height","nameLocation":"3030:6:71","nodeType":"VariableDeclaration","scope":46809,"src":"3022:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46777,"name":"uint256","nodeType":"ElementaryTypeName","src":"3022:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:16:71"},"returnParameters":{"id":46783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46782,"mutability":"mutable","name":"relayers","nameLocation":"3078:8:71","nodeType":"VariableDeclaration","scope":46809,"src":"3061:25:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46780,"name":"address","nodeType":"ElementaryTypeName","src":"3061:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46781,"nodeType":"ArrayTypeName","src":"3061:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3060:27:71"},"scope":47110,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46844,"nodeType":"FunctionDefinition","src":"3527:269:71","nodes":[],"body":{"id":46843,"nodeType":"Block","src":"3613:183:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46818,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46812,"src":"3630:9:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":46819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3640:6:71","memberName":"length","nodeType":"MemberAccess","src":"3630:16:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":46820,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"3650:37:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3630:57:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":46817,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"3623:6:71","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":46822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:65:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46823,"nodeType":"ExpressionStatement","src":"3623:65:71"},{"assignments":[46825],"declarations":[{"constant":false,"id":46825,"mutability":"mutable","name":"hashed","nameLocation":"3706:6:71","nodeType":"VariableDeclaration","scope":46843,"src":"3698:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46824,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3698:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46831,"initialValue":{"arguments":[{"baseExpression":{"id":46827,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46812,"src":"3725:9:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":46829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"3725:13:71","startExpression":{"hexValue":"31","id":46828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3735:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":46826,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3715:9:71","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":46830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3715:24:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3698:41:71"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":46838,"name":"hashed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46825,"src":"3780:6:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":46837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3772:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46836,"name":"uint256","nodeType":"ElementaryTypeName","src":"3772:7:71","typeDescriptions":{}}},"id":46839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3772:15:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3764:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":46834,"name":"uint160","nodeType":"ElementaryTypeName","src":"3764:7:71","typeDescriptions":{}}},"id":46840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3764:24:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":46833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3756:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46832,"name":"address","nodeType":"ElementaryTypeName","src":"3756:7:71","typeDescriptions":{}}},"id":46841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3756:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46816,"id":46842,"nodeType":"Return","src":"3749:40:71"}]},"documentation":{"id":46810,"nodeType":"StructuredDocumentation","src":"3323:199:71","text":"@notice Converts a 65-byte public key to its corresponding address.\n @param publicKey The 65-byte public key to be converted.\n @return The address derived from the given public key."},"implemented":true,"kind":"function","modifiers":[],"name":"publicKeyToAddress","nameLocation":"3536:18:71","parameters":{"id":46813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46812,"mutability":"mutable","name":"publicKey","nameLocation":"3570:9:71","nodeType":"VariableDeclaration","scope":46844,"src":"3555:24:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46811,"name":"bytes","nodeType":"ElementaryTypeName","src":"3555:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3554:26:71"},"returnParameters":{"id":46816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46815,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46844,"src":"3604:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46814,"name":"address","nodeType":"ElementaryTypeName","src":"3604:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3603:9:71"},"scope":47110,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46985,"nodeType":"FunctionDefinition","src":"4147:1531:71","nodes":[],"body":{"id":46984,"nodeType":"Block","src":"4312:1366:71","nodes":[],"statements":[{"assignments":[46859],"declarations":[{"constant":false,"id":46859,"mutability":"mutable","name":"s","nameLocation":"4349:1:71","nodeType":"VariableDeclaration","scope":46984,"src":"4322:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46858,"nodeType":"UserDefinedTypeName","pathNode":{"id":46857,"name":"SubnetActorStorage","nameLocations":["4322:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"4322:18:71"},"referencedDeclaration":47234,"src":"4322:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46863,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46860,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"4353:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4375:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"4353:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4353:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4322:65:71"},{"assignments":[46865],"declarations":[{"constant":false,"id":46865,"mutability":"mutable","name":"length","nameLocation":"4406:6:71","nodeType":"VariableDeclaration","scope":46984,"src":"4398:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46864,"name":"uint256","nodeType":"ElementaryTypeName","src":"4398:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46868,"initialValue":{"expression":{"id":46866,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46848,"src":"4415:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4426:6:71","memberName":"length","nodeType":"MemberAccess","src":"4415:17:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4398:34:71"},{"body":{"id":46950,"nodeType":"Block","src":"4472:792:71","statements":[{"assignments":[46876],"declarations":[{"constant":false,"id":46876,"mutability":"mutable","name":"convertedAddress","nameLocation":"4525:16:71","nodeType":"VariableDeclaration","scope":46950,"src":"4517:24:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46875,"name":"address","nodeType":"ElementaryTypeName","src":"4517:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46882,"initialValue":{"arguments":[{"baseExpression":{"id":46878,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46851,"src":"4563:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":46880,"indexExpression":{"id":46879,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"4574:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4563:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":46877,"name":"publicKeyToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46844,"src":"4544:18:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":46881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4544:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4517:60:71"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46883,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"4595:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":46884,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46848,"src":"4615:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46886,"indexExpression":{"id":46885,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"4626:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4615:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4595:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46892,"nodeType":"IfStatement","src":"4591:100:71","trueBody":{"id":46891,"nodeType":"Block","src":"4630:61:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46888,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"4655:19:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4655:21:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46890,"nodeType":"RevertStatement","src":"4648:28:71"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":46895,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46848,"src":"4832:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46897,"indexExpression":{"id":46896,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"4843:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4832:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46893,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"4812:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":46894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4823:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":45303,"src":"4812:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4812:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":46899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4849:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4812:38:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46905,"nodeType":"IfStatement","src":"4808:112:71","trueBody":{"id":46904,"nodeType":"Block","src":"4852:68:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46901,"name":"DuplicatedGenesisValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37530,"src":"4877:26:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4877:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46903,"nodeType":"RevertStatement","src":"4870:35:71"}]}},{"expression":{"arguments":[{"baseExpression":{"id":46909,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46848,"src":"4968:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46911,"indexExpression":{"id":46910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"4979:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4968:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":46912,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46851,"src":"4983:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":46914,"indexExpression":{"id":46913,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"4994:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4983:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":46906,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"4934:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":46908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4945:22:71","memberName":"setMetadataWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45540,"src":"4934:33:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":46915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4934:63:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46916,"nodeType":"ExpressionStatement","src":"4934:63:71"},{"expression":{"arguments":[{"baseExpression":{"id":46920,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46848,"src":"5051:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46922,"indexExpression":{"id":46921,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"5062:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5051:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":46923,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46854,"src":"5066:6:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":46925,"indexExpression":{"id":46924,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"5073:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5066:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46917,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"5011:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":46919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5022:28:71","memberName":"setFederatedPowerWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45515,"src":"5011:39:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":46926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5011:65:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46927,"nodeType":"ExpressionStatement","src":"5011:65:71"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":46934,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46848,"src":"5133:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46936,"indexExpression":{"id":46935,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"5144:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5133:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":46937,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46854,"src":"5156:6:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":46939,"indexExpression":{"id":46938,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"5163:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5156:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":46940,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46851,"src":"5177:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":46942,"indexExpression":{"id":46941,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"5188:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5177:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":46933,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"5116:9:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50164_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":46943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5127:4:71","5148:6:71","5167:8:71"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"5116:76:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":46928,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46859,"src":"5091:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5093:17:71","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"5091:19:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":46932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5111:4:71","memberName":"push","nodeType":"MemberAccess","src":"5091:24:71","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50164_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":46944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:102:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46945,"nodeType":"ExpressionStatement","src":"5091:102:71"},{"id":46949,"nodeType":"UncheckedBlock","src":"5208:46:71","statements":[{"expression":{"id":46947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5236:3:71","subExpression":{"id":46946,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"5238:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46948,"nodeType":"ExpressionStatement","src":"5236:3:71"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46872,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"4458:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46873,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46865,"src":"4462:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4458:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46951,"initializationExpression":{"assignments":[46870],"declarations":[{"constant":false,"id":46870,"mutability":"mutable","name":"i","nameLocation":"4455:1:71","nodeType":"VariableDeclaration","scope":46951,"src":"4447:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46869,"name":"uint256","nodeType":"ElementaryTypeName","src":"4447:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46871,"nodeType":"VariableDeclarationStatement","src":"4447:9:71"},"nodeType":"ForStatement","src":"4442:822:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46952,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46865,"src":"5331:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":46953,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46859,"src":"5341:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5343:13:71","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47176,"src":"5341:15:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5331:25:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46960,"nodeType":"IfStatement","src":"5327:91:71","trueBody":{"id":46959,"nodeType":"Block","src":"5358:60:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46956,"name":"NotEnoughGenesisValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37532,"src":"5379:26:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5379:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46958,"nodeType":"RevertStatement","src":"5372:35:71"}]}},{"expression":{"id":46965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46961,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46859,"src":"5428:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5430:12:71","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"5428:14:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":46964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5445:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5428:21:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46966,"nodeType":"ExpressionStatement","src":"5428:21:71"},{"eventCall":{"arguments":[{"expression":{"id":46968,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46859,"src":"5483:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5485:17:71","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"5483:19:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}],"id":46967,"name":"SubnetBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46668,"src":"5464:18:71","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct Validator memory[] memory)"}},"id":46970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5464:39:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46971,"nodeType":"EmitStatement","src":"5459:44:71"},{"expression":{"arguments":[{"expression":{"id":46980,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46859,"src":"5651:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5653:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47145,"src":"5651:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46973,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46859,"src":"5596:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5598:14:71","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"5596:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46972,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"5587:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5587:26:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5614:8:71","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":40259,"src":"5587:35:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":46979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":46977,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46859,"src":"5630:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5632:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47145,"src":"5630:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5587:63:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":46982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5587:84:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46983,"nodeType":"ExpressionStatement","src":"5587:84:71"}]},"documentation":{"id":46845,"nodeType":"StructuredDocumentation","src":"3802:340:71","text":"@notice method that allows the contract owner to set the validators' federated power before.\n @notice subnet has already been bootstrapped.\n @param validators The list of validators' addresses.\n @param publicKeys The list of validators' public keys.\n @param powers The list of power values of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"preBootstrapSetFederatedPower","nameLocation":"4156:29:71","parameters":{"id":46855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46848,"mutability":"mutable","name":"validators","nameLocation":"4214:10:71","nodeType":"VariableDeclaration","scope":46985,"src":"4195:29:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46846,"name":"address","nodeType":"ElementaryTypeName","src":"4195:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46847,"nodeType":"ArrayTypeName","src":"4195:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":46851,"mutability":"mutable","name":"publicKeys","nameLocation":"4251:10:71","nodeType":"VariableDeclaration","scope":46985,"src":"4234:27:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":46849,"name":"bytes","nodeType":"ElementaryTypeName","src":"4234:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":46850,"nodeType":"ArrayTypeName","src":"4234:7:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":46854,"mutability":"mutable","name":"powers","nameLocation":"4290:6:71","nodeType":"VariableDeclaration","scope":46985,"src":"4271:25:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":46852,"name":"uint256","nodeType":"ElementaryTypeName","src":"4271:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46853,"nodeType":"ArrayTypeName","src":"4271:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4185:117:71"},"returnParameters":{"id":46856,"nodeType":"ParameterList","parameters":[],"src":"4312:0:71"},"scope":47110,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47048,"nodeType":"FunctionDefinition","src":"6024:796:71","nodes":[],"body":{"id":47047,"nodeType":"Block","src":"6190:630:71","nodes":[],"statements":[{"assignments":[46999],"declarations":[{"constant":false,"id":46999,"mutability":"mutable","name":"length","nameLocation":"6208:6:71","nodeType":"VariableDeclaration","scope":47047,"src":"6200:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46998,"name":"uint256","nodeType":"ElementaryTypeName","src":"6200:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47002,"initialValue":{"expression":{"id":47000,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46989,"src":"6217:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6228:6:71","memberName":"length","nodeType":"MemberAccess","src":"6217:17:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6200:34:71"},{"body":{"id":47045,"nodeType":"Block","src":"6274:540:71","statements":[{"assignments":[47010],"declarations":[{"constant":false,"id":47010,"mutability":"mutable","name":"convertedAddress","nameLocation":"6327:16:71","nodeType":"VariableDeclaration","scope":47045,"src":"6319:24:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47009,"name":"address","nodeType":"ElementaryTypeName","src":"6319:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47016,"initialValue":{"arguments":[{"baseExpression":{"id":47012,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46992,"src":"6365:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":47014,"indexExpression":{"id":47013,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47004,"src":"6376:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6365:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":47011,"name":"publicKeyToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46844,"src":"6346:18:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":47015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6346:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6319:60:71"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47017,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47010,"src":"6397:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":47018,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46989,"src":"6417:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47020,"indexExpression":{"id":47019,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47004,"src":"6428:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6417:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6397:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47026,"nodeType":"IfStatement","src":"6393:100:71","trueBody":{"id":47025,"nodeType":"Block","src":"6432:61:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47022,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"6457:19:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6457:21:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47024,"nodeType":"RevertStatement","src":"6450:28:71"}]}},{"expression":{"arguments":[{"baseExpression":{"id":47030,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46989,"src":"6684:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47032,"indexExpression":{"id":47031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47004,"src":"6695:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6684:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":47033,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46992,"src":"6709:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":47035,"indexExpression":{"id":47034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47004,"src":"6720:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6709:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"baseExpression":{"id":47036,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46995,"src":"6732:6:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":47038,"indexExpression":{"id":47037,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47004,"src":"6739:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6732:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47027,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"6643:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":47029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6654:17:71","memberName":"setFederatedPower","nodeType":"MemberAccess","referencedDeclaration":45719,"src":"6643:28:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$","typeString":"function (address,bytes calldata,uint256)"}},"id":47039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6673:9:71","6699:8:71","6724:6:71"],"names":["validator","metadata","amount"],"nodeType":"FunctionCall","src":"6643:100:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47040,"nodeType":"ExpressionStatement","src":"6643:100:71"},{"id":47044,"nodeType":"UncheckedBlock","src":"6758:46:71","statements":[{"expression":{"id":47042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6786:3:71","subExpression":{"id":47041,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47004,"src":"6788:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47043,"nodeType":"ExpressionStatement","src":"6786:3:71"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47006,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47004,"src":"6260:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47007,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46999,"src":"6264:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6260:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47046,"initializationExpression":{"assignments":[47004],"declarations":[{"constant":false,"id":47004,"mutability":"mutable","name":"i","nameLocation":"6257:1:71","nodeType":"VariableDeclaration","scope":47046,"src":"6249:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47003,"name":"uint256","nodeType":"ElementaryTypeName","src":"6249:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47005,"nodeType":"VariableDeclarationStatement","src":"6249:9:71"},"nodeType":"ForStatement","src":"6244:570:71"}]},"documentation":{"id":46986,"nodeType":"StructuredDocumentation","src":"5684:335:71","text":"@notice method that allows the contract owner to set the validators' federated power after\n @dev subnet has already been bootstrapped.\n @param validators The list of validators' addresses.\n @param publicKeys The list of validators' public keys.\n @param powers The list of power values of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"postBootstrapSetFederatedPower","nameLocation":"6033:30:71","parameters":{"id":46996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46989,"mutability":"mutable","name":"validators","nameLocation":"6092:10:71","nodeType":"VariableDeclaration","scope":47048,"src":"6073:29:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46987,"name":"address","nodeType":"ElementaryTypeName","src":"6073:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46988,"nodeType":"ArrayTypeName","src":"6073:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":46992,"mutability":"mutable","name":"publicKeys","nameLocation":"6129:10:71","nodeType":"VariableDeclaration","scope":47048,"src":"6112:27:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":46990,"name":"bytes","nodeType":"ElementaryTypeName","src":"6112:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":46991,"nodeType":"ArrayTypeName","src":"6112:7:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":46995,"mutability":"mutable","name":"powers","nameLocation":"6168:6:71","nodeType":"VariableDeclaration","scope":47048,"src":"6149:25:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":46993,"name":"uint256","nodeType":"ElementaryTypeName","src":"6149:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46994,"nodeType":"ArrayTypeName","src":"6149:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6063:117:71"},"returnParameters":{"id":46997,"nodeType":"ParameterList","parameters":[],"src":"6190:0:71"},"scope":47110,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47109,"nodeType":"FunctionDefinition","src":"6969:557:71","nodes":[],"body":{"id":47108,"nodeType":"Block","src":"7025:501:71","nodes":[],"statements":[{"assignments":[47056],"declarations":[{"constant":false,"id":47056,"mutability":"mutable","name":"s","nameLocation":"7062:1:71","nodeType":"VariableDeclaration","scope":47108,"src":"7035:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":47055,"nodeType":"UserDefinedTypeName","pathNode":{"id":47054,"name":"SubnetActorStorage","nameLocations":["7035:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"7035:18:71"},"referencedDeclaration":47234,"src":"7035:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":47060,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":47057,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47245,"src":"7066:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47245_$","typeString":"type(library LibSubnetActorStorage)"}},"id":47058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7088:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"7066:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47234_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":47059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7066:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7035:65:71"},{"assignments":[47062],"declarations":[{"constant":false,"id":47062,"mutability":"mutable","name":"length","nameLocation":"7119:6:71","nodeType":"VariableDeclaration","scope":47108,"src":"7111:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47061,"name":"uint256","nodeType":"ElementaryTypeName","src":"7111:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47066,"initialValue":{"expression":{"expression":{"id":47063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47056,"src":"7128:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7130:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47154,"src":"7128:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7149:6:71","memberName":"length","nodeType":"MemberAccess","src":"7128:27:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7111:44:71"},{"body":{"id":47106,"nodeType":"Block","src":"7195:325:71","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":47073,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47056,"src":"7213:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7215:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47154,"src":"7213:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47076,"indexExpression":{"id":47075,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47068,"src":"7234:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7213:23:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":47077,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"7240:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7213:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47101,"nodeType":"IfStatement","src":"7209:242:71","trueBody":{"id":47100,"nodeType":"Block","src":"7246:205:71","statements":[{"expression":{"id":47090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":47079,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47056,"src":"7264:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7266:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47154,"src":"7264:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47083,"indexExpression":{"id":47081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47068,"src":"7285:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7264:23:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47084,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47056,"src":"7290:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7292:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47154,"src":"7290:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47089,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47086,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47062,"src":"7311:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7320:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7311:10:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7290:32:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7264:58:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47091,"nodeType":"ExpressionStatement","src":"7264:58:71"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":47092,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47056,"src":"7340:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7342:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47154,"src":"7340:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7361:3:71","memberName":"pop","nodeType":"MemberAccess","src":"7340:24:71","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":47097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7340:26:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47098,"nodeType":"ExpressionStatement","src":"7340:26:71"},{"id":47099,"nodeType":"Break","src":"7431:5:71"}]}},{"id":47105,"nodeType":"UncheckedBlock","src":"7464:46:71","statements":[{"expression":{"id":47103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7492:3:71","subExpression":{"id":47102,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47068,"src":"7494:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47104,"nodeType":"ExpressionStatement","src":"7492:3:71"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47070,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47068,"src":"7181:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47071,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47062,"src":"7185:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7181:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47107,"initializationExpression":{"assignments":[47068],"declarations":[{"constant":false,"id":47068,"mutability":"mutable","name":"i","nameLocation":"7178:1:71","nodeType":"VariableDeclaration","scope":47107,"src":"7170:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47067,"name":"uint256","nodeType":"ElementaryTypeName","src":"7170:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47069,"nodeType":"VariableDeclarationStatement","src":"7170:9:71"},"nodeType":"ForStatement","src":"7165:355:71"}]},"documentation":{"id":47049,"nodeType":"StructuredDocumentation","src":"6826:138:71","text":"@notice Removes an address from the initial balance keys.\n @param addr The address to be removed from the genesis balance keys."},"implemented":true,"kind":"function","modifiers":[],"name":"rmAddressFromBalanceKey","nameLocation":"6978:23:71","parameters":{"id":47052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47051,"mutability":"mutable","name":"addr","nameLocation":"7010:4:71","nodeType":"VariableDeclaration","scope":47109,"src":"7002:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47050,"name":"address","nodeType":"ElementaryTypeName","src":"7002:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7001:14:71"},"returnParameters":{"id":47053,"nodeType":"ParameterList","parameters":[],"src":"7025:0:71"},"scope":47110,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActor","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[47110],"name":"LibSubnetActor","nameLocation":"815:14:71","scope":47111,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":71} \ No newline at end of file diff --git a/.out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json b/.out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json index b9c8ac133..74e5e5849 100644 --- a/.out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json +++ b/.out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220d99116a15e28a89d65bc517576e1b0db7360704c483a182b6336efd385659f4764736f6c63430008130033","sourceMap":"3671:194:72:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220d99116a15e28a89d65bc517576e1b0db7360704c483a182b6336efd385659f4764736f6c63430008130033","sourceMap":"3671:194:72:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActorStorage.sol\":\"LibSubnetActorStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActorStorage.sol":"LibSubnetActorStorage"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActorStorage.sol","id":47336,"exportedSymbols":{"BottomUpCheckpoint":[49932],"BottomUpMsgBatchInfo":[49950],"ConsensusType":[37359],"EnumerableSet":[35815],"LibSubnetActorStorage":[47292],"NotGateway":[37478],"PermissionMode":[50165],"RelayerRewardsInfo":[49968],"StakingChangeLog":[50123],"StakingReleaseQueue":[50150],"SubnetActorModifiers":[47335],"SubnetActorStorage":[47281],"SubnetAlreadyKilled":[37504],"SubnetID":[50077],"SupplySource":[50226],"Validator":[50211],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:4291:72","nodes":[{"id":47159,"nodeType":"PragmaDirective","src":"46:23:72","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47161,"nodeType":"ImportDirective","src":"71:57:72","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":47160,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"79:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47164,"nodeType":"ImportDirective","src":"129:72:72","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":47162,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"137:10:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47163,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"149:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47168,"nodeType":"ImportDirective","src":"202:101:72","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":47165,"name":"RelayerRewardsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49968,"src":"210:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47166,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"230:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47167,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49950,"src":"250:20:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47176,"nodeType":"ImportDirective","src":"304:141:72","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":47169,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"312:8:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47170,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"322:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47171,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"336:16:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47172,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"354:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47173,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"375:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47174,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"389:9:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47175,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"400:14:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47178,"nodeType":"ImportDirective","src":"446:85:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":47177,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"454:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47281,"nodeType":"StructDefinition","src":"533:3136:72","nodes":[],"canonicalName":"SubnetActorStorage","members":[{"constant":false,"id":47184,"mutability":"mutable","name":"committedCheckpoints","nameLocation":"682:20:72","nodeType":"VariableDeclaration","scope":47281,"src":"643:59:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":47183,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47180,"name":"uint256","nodeType":"ElementaryTypeName","src":"651:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"643:38:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47182,"nodeType":"UserDefinedTypeName","pathNode":{"id":47181,"name":"BottomUpCheckpoint","nameLocations":["662:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"662:18:72"},"referencedDeclaration":49932,"src":"662:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":47189,"mutability":"mutable","name":"genesisValidators","nameLocation":"781:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"769:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":47187,"nodeType":"UserDefinedTypeName","pathNode":{"id":47186,"name":"Validator","nameLocations":["769:9:72"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"769:9:72"},"referencedDeclaration":50211,"src":"769:9:72","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":47188,"nodeType":"ArrayTypeName","src":"769:11:72","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":47192,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"933:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"925:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47191,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47197,"mutability":"mutable","name":"genesisBalance","nameLocation":"1058:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"1030:42:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":47196,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47194,"name":"address","nodeType":"ElementaryTypeName","src":"1038:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1030:27:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47195,"name":"uint256","nodeType":"ElementaryTypeName","src":"1049:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":47201,"mutability":"mutable","name":"genesisBalanceKeys","nameLocation":"1130:18:72","nodeType":"VariableDeclaration","scope":47281,"src":"1120:28:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47199,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47200,"nodeType":"ArrayTypeName","src":"1120:9:72","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":47204,"mutability":"mutable","name":"lastBottomUpCheckpointHeight","nameLocation":"1233:28:72","nodeType":"VariableDeclaration","scope":47281,"src":"1225:36:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1225:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47208,"mutability":"mutable","name":"lastBottomUpBatch","nameLocation":"1347:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"1326:38:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"},"typeName":{"id":47207,"nodeType":"UserDefinedTypeName","pathNode":{"id":47206,"name":"BottomUpMsgBatchInfo","nameLocations":["1326:20:72"],"nodeType":"IdentifierPath","referencedDeclaration":49950,"src":"1326:20:72"},"referencedDeclaration":49950,"src":"1326:20:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"}},"visibility":"internal"},{"constant":false,"id":47211,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"1460:22:72","nodeType":"VariableDeclaration","scope":47281,"src":"1452:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47210,"name":"uint256","nodeType":"ElementaryTypeName","src":"1452:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47214,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"1548:23:72","nodeType":"VariableDeclaration","scope":47281,"src":"1541:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47213,"name":"uint64","nodeType":"ElementaryTypeName","src":"1541:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47217,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1631:23:72","nodeType":"VariableDeclaration","scope":47281,"src":"1623:31:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47216,"name":"uint256","nodeType":"ElementaryTypeName","src":"1623:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47220,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1722:19:72","nodeType":"VariableDeclaration","scope":47281,"src":"1714:27:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47219,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47223,"mutability":"mutable","name":"minValidators","nameLocation":"1858:13:72","nodeType":"VariableDeclaration","scope":47281,"src":"1851:20:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47222,"name":"uint64","nodeType":"ElementaryTypeName","src":"1851:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47225,"mutability":"mutable","name":"currentSubnetHash","nameLocation":"1930:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"1922:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47228,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"2019:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"2011:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47227,"name":"address","nodeType":"ElementaryTypeName","src":"2011:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47231,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2125:18:72","nodeType":"VariableDeclaration","scope":47281,"src":"2119:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47230,"name":"uint8","nodeType":"ElementaryTypeName","src":"2119:5:72","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":47234,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2232:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"2224:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47233,"name":"uint256","nodeType":"ElementaryTypeName","src":"2224:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47238,"mutability":"mutable","name":"parentId","nameLocation":"2301:8:72","nodeType":"VariableDeclaration","scope":47281,"src":"2292:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":47237,"nodeType":"UserDefinedTypeName","pathNode":{"id":47236,"name":"SubnetID","nameLocations":["2292:8:72"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2292:8:72"},"referencedDeclaration":50077,"src":"2292:8:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47242,"mutability":"mutable","name":"consensus","nameLocation":"2354:9:72","nodeType":"VariableDeclaration","scope":47281,"src":"2340:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":47241,"nodeType":"UserDefinedTypeName","pathNode":{"id":47240,"name":"ConsensusType","nameLocations":["2340:13:72"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"2340:13:72"},"referencedDeclaration":37359,"src":"2340:13:72","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":47245,"mutability":"mutable","name":"bootstrapped","nameLocation":"2466:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2461:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47244,"name":"bool","nodeType":"ElementaryTypeName","src":"2461:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47248,"mutability":"mutable","name":"killed","nameLocation":"2559:6:72","nodeType":"VariableDeclaration","scope":47281,"src":"2554:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47247,"name":"bool","nodeType":"ElementaryTypeName","src":"2554:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47252,"mutability":"mutable","name":"validatorSet","nameLocation":"2670:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2657:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47251,"nodeType":"UserDefinedTypeName","pathNode":{"id":47250,"name":"ValidatorSet","nameLocations":["2657:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"2657:12:72"},"referencedDeclaration":50190,"src":"2657:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47256,"mutability":"mutable","name":"changeSet","nameLocation":"2819:9:72","nodeType":"VariableDeclaration","scope":47281,"src":"2802:26:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":47255,"nodeType":"UserDefinedTypeName","pathNode":{"id":47254,"name":"StakingChangeLog","nameLocations":["2802:16:72"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"2802:16:72"},"referencedDeclaration":50123,"src":"2802:16:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":47260,"mutability":"mutable","name":"releaseQueue","nameLocation":"2965:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2945:32:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":47259,"nodeType":"UserDefinedTypeName","pathNode":{"id":47258,"name":"StakingReleaseQueue","nameLocations":["2945:19:72"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2945:19:72"},"referencedDeclaration":50150,"src":"2945:19:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":47263,"mutability":"mutable","name":"powerScale","nameLocation":"3263:10:72","nodeType":"VariableDeclaration","scope":47281,"src":"3258:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":47262,"name":"int8","nodeType":"ElementaryTypeName","src":"3258:4:72","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":47267,"mutability":"mutable","name":"relayerRewards","nameLocation":"3331:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"3312:33:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage_ptr","typeString":"struct RelayerRewardsInfo"},"typeName":{"id":47266,"nodeType":"UserDefinedTypeName","pathNode":{"id":47265,"name":"RelayerRewardsInfo","nameLocations":["3312:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49968,"src":"3312:18:72"},"referencedDeclaration":49968,"src":"3312:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage_ptr","typeString":"struct RelayerRewardsInfo"}},"visibility":"internal"},{"constant":false,"id":47272,"mutability":"mutable","name":"bootstrapNodes","nameLocation":"3465:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"3438:41:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":47271,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47269,"name":"address","nodeType":"ElementaryTypeName","src":"3446:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3438:26:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47270,"name":"string","nodeType":"ElementaryTypeName","src":"3457:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"internal"},{"constant":false,"id":47276,"mutability":"mutable","name":"bootstrapOwners","nameLocation":"3580:15:72","nodeType":"VariableDeclaration","scope":47281,"src":"3555:40:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":47275,"nodeType":"UserDefinedTypeName","pathNode":{"id":47274,"name":"EnumerableSet.AddressSet","nameLocations":["3555:13:72","3569:10:72"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"3555:24:72"},"referencedDeclaration":35528,"src":"3555:24:72","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":47280,"mutability":"mutable","name":"supplySource","nameLocation":"3654:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"3641:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"},"typeName":{"id":47279,"nodeType":"UserDefinedTypeName","pathNode":{"id":47278,"name":"SupplySource","nameLocations":["3641:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"3641:12:72"},"referencedDeclaration":50226,"src":"3641:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"name":"SubnetActorStorage","nameLocation":"540:18:72","scope":47336,"visibility":"public"},{"id":47292,"nodeType":"ContractDefinition","src":"3671:194:72","nodes":[{"id":47291,"nodeType":"FunctionDefinition","src":"3707:156:72","nodes":[],"body":{"id":47290,"nodeType":"Block","src":"3783:80:72","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3802:36:72","statements":[{"nodeType":"YulAssignment","src":"3816:12:72","value":{"kind":"number","nodeType":"YulLiteral","src":"3827:1:72","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3816:7:72"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":47285,"isOffset":false,"isSlot":true,"src":"3816:7:72","suffix":"slot","valueSize":1}],"id":47287,"nodeType":"InlineAssembly","src":"3793:45:72"},{"expression":{"id":47288,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47285,"src":"3854:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"functionReturnParameters":47286,"id":47289,"nodeType":"Return","src":"3847:9:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3716:10:72","parameters":{"id":47282,"nodeType":"ParameterList","parameters":[],"src":"3726:2:72"},"returnParameters":{"id":47286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47285,"mutability":"mutable","name":"ds","nameLocation":"3779:2:72","nodeType":"VariableDeclaration","scope":47291,"src":"3752:29:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":47284,"nodeType":"UserDefinedTypeName","pathNode":{"id":47283,"name":"SubnetActorStorage","nameLocations":["3752:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"3752:18:72"},"referencedDeclaration":47281,"src":"3752:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"src":"3751:31:72"},"scope":47292,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[47292],"name":"LibSubnetActorStorage","nameLocation":"3679:21:72","scope":47336,"usedErrors":[]},{"id":47335,"nodeType":"ContractDefinition","src":"3867:469:72","nodes":[{"id":47295,"nodeType":"VariableDeclaration","src":"3903:29:72","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3931:1:72","scope":47335,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":47294,"nodeType":"UserDefinedTypeName","pathNode":{"id":47293,"name":"SubnetActorStorage","nameLocations":["3903:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"3903:18:72"},"referencedDeclaration":47281,"src":"3903:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":47309,"nodeType":"FunctionDefinition","src":"3939:133:72","nodes":[],"body":{"id":47308,"nodeType":"Block","src":"3976:96:72","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47298,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3990:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":47299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3994:6:72","memberName":"sender","nodeType":"MemberAccess","src":"3990:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47300,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4004:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4006:14:72","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"4004:16:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3990:30:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47307,"nodeType":"IfStatement","src":"3986:80:72","trueBody":{"id":47306,"nodeType":"Block","src":"4022:44:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47303,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"4043:10:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47305,"nodeType":"RevertStatement","src":"4036:19:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"3948:12:72","parameters":{"id":47296,"nodeType":"ParameterList","parameters":[],"src":"3960:2:72"},"returnParameters":{"id":47297,"nodeType":"ParameterList","parameters":[],"src":"3976:0:72"},"scope":47335,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47320,"nodeType":"FunctionDefinition","src":"4078:118:72","nodes":[],"body":{"id":47319,"nodeType":"Block","src":"4113:83:72","nodes":[],"statements":[{"condition":{"expression":{"id":47312,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4127:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4129:6:72","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47248,"src":"4127:8:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47318,"nodeType":"IfStatement","src":"4123:67:72","trueBody":{"id":47317,"nodeType":"Block","src":"4137:53:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47314,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"4158:19:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4158:21:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47316,"nodeType":"RevertStatement","src":"4151:28:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_notKilled","nameLocation":"4087:10:72","parameters":{"id":47310,"nodeType":"ParameterList","parameters":[],"src":"4097:2:72"},"returnParameters":{"id":47311,"nodeType":"ParameterList","parameters":[],"src":"4113:0:72"},"scope":47335,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47327,"nodeType":"ModifierDefinition","src":"4202:65:72","nodes":[],"body":{"id":47326,"nodeType":"Block","src":"4225:42:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47322,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47309,"src":"4235:12:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4235:14:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47324,"nodeType":"ExpressionStatement","src":"4235:14:72"},{"id":47325,"nodeType":"PlaceholderStatement","src":"4259:1:72"}]},"name":"onlyGateway","nameLocation":"4211:11:72","parameters":{"id":47321,"nodeType":"ParameterList","parameters":[],"src":"4222:2:72"},"virtual":false,"visibility":"internal"},{"id":47334,"nodeType":"ModifierDefinition","src":"4273:61:72","nodes":[],"body":{"id":47333,"nodeType":"Block","src":"4294:40:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47329,"name":"_notKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47320,"src":"4304:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4304:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47331,"nodeType":"ExpressionStatement","src":"4304:12:72"},{"id":47332,"nodeType":"PlaceholderStatement","src":"4326:1:72"}]},"name":"notKilled","nameLocation":"4282:9:72","parameters":{"id":47328,"nodeType":"ParameterList","parameters":[],"src":"4291:2:72"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[47335],"name":"SubnetActorModifiers","nameLocation":"3876:20:72","scope":47336,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":72} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220d99116a15e28a89d65bc517576e1b0db7360704c483a182b6336efd385659f4764736f6c63430008130033","sourceMap":"3671:194:72:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220d99116a15e28a89d65bc517576e1b0db7360704c483a182b6336efd385659f4764736f6c63430008130033","sourceMap":"3671:194:72:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActorStorage.sol\":\"LibSubnetActorStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActorStorage.sol":"LibSubnetActorStorage"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActorStorage.sol","id":47289,"exportedSymbols":{"BottomUpCheckpoint":[49885],"BottomUpMsgBatchInfo":[49903],"ConsensusType":[37359],"EnumerableSet":[35815],"LibSubnetActorStorage":[47245],"NotGateway":[37478],"PermissionMode":[50118],"RelayerRewardsInfo":[49921],"StakingChangeLog":[50076],"StakingReleaseQueue":[50103],"SubnetActorModifiers":[47288],"SubnetActorStorage":[47234],"SubnetAlreadyKilled":[37504],"SubnetID":[50030],"SupplySource":[50179],"Validator":[50164],"ValidatorSet":[50143]},"nodeType":"SourceUnit","src":"46:4291:72","nodes":[{"id":47112,"nodeType":"PragmaDirective","src":"46:23:72","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47114,"nodeType":"ImportDirective","src":"71:57:72","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":47289,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":47113,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"79:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47117,"nodeType":"ImportDirective","src":"129:72:72","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47289,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":47115,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"137:10:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47116,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"149:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47121,"nodeType":"ImportDirective","src":"202:101:72","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":47289,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":47118,"name":"RelayerRewardsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49921,"src":"210:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47119,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"230:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47120,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49903,"src":"250:20:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47129,"nodeType":"ImportDirective","src":"304:141:72","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47289,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":47122,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"312:8:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47123,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"322:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47124,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50076,"src":"336:16:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47125,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50103,"src":"354:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47126,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"375:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47127,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"389:9:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47128,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"400:14:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47131,"nodeType":"ImportDirective","src":"446:85:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":47289,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":47130,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"454:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47234,"nodeType":"StructDefinition","src":"533:3136:72","nodes":[],"canonicalName":"SubnetActorStorage","members":[{"constant":false,"id":47137,"mutability":"mutable","name":"committedCheckpoints","nameLocation":"682:20:72","nodeType":"VariableDeclaration","scope":47234,"src":"643:59:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":47136,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47133,"name":"uint256","nodeType":"ElementaryTypeName","src":"651:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"643:38:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47135,"nodeType":"UserDefinedTypeName","pathNode":{"id":47134,"name":"BottomUpCheckpoint","nameLocations":["662:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"662:18:72"},"referencedDeclaration":49885,"src":"662:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":47142,"mutability":"mutable","name":"genesisValidators","nameLocation":"781:17:72","nodeType":"VariableDeclaration","scope":47234,"src":"769:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":47140,"nodeType":"UserDefinedTypeName","pathNode":{"id":47139,"name":"Validator","nameLocations":["769:9:72"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"769:9:72"},"referencedDeclaration":50164,"src":"769:9:72","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":47141,"nodeType":"ArrayTypeName","src":"769:11:72","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":47145,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"933:17:72","nodeType":"VariableDeclaration","scope":47234,"src":"925:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47144,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47150,"mutability":"mutable","name":"genesisBalance","nameLocation":"1058:14:72","nodeType":"VariableDeclaration","scope":47234,"src":"1030:42:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":47149,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47147,"name":"address","nodeType":"ElementaryTypeName","src":"1038:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1030:27:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47148,"name":"uint256","nodeType":"ElementaryTypeName","src":"1049:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":47154,"mutability":"mutable","name":"genesisBalanceKeys","nameLocation":"1130:18:72","nodeType":"VariableDeclaration","scope":47234,"src":"1120:28:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47152,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47153,"nodeType":"ArrayTypeName","src":"1120:9:72","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":47157,"mutability":"mutable","name":"lastBottomUpCheckpointHeight","nameLocation":"1233:28:72","nodeType":"VariableDeclaration","scope":47234,"src":"1225:36:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47156,"name":"uint256","nodeType":"ElementaryTypeName","src":"1225:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47161,"mutability":"mutable","name":"lastBottomUpBatch","nameLocation":"1347:17:72","nodeType":"VariableDeclaration","scope":47234,"src":"1326:38:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"},"typeName":{"id":47160,"nodeType":"UserDefinedTypeName","pathNode":{"id":47159,"name":"BottomUpMsgBatchInfo","nameLocations":["1326:20:72"],"nodeType":"IdentifierPath","referencedDeclaration":49903,"src":"1326:20:72"},"referencedDeclaration":49903,"src":"1326:20:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"}},"visibility":"internal"},{"constant":false,"id":47164,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"1460:22:72","nodeType":"VariableDeclaration","scope":47234,"src":"1452:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47163,"name":"uint256","nodeType":"ElementaryTypeName","src":"1452:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47167,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"1548:23:72","nodeType":"VariableDeclaration","scope":47234,"src":"1541:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47166,"name":"uint64","nodeType":"ElementaryTypeName","src":"1541:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47170,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1631:23:72","nodeType":"VariableDeclaration","scope":47234,"src":"1623:31:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47169,"name":"uint256","nodeType":"ElementaryTypeName","src":"1623:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47173,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1722:19:72","nodeType":"VariableDeclaration","scope":47234,"src":"1714:27:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47176,"mutability":"mutable","name":"minValidators","nameLocation":"1858:13:72","nodeType":"VariableDeclaration","scope":47234,"src":"1851:20:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47175,"name":"uint64","nodeType":"ElementaryTypeName","src":"1851:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47178,"mutability":"mutable","name":"currentSubnetHash","nameLocation":"1930:17:72","nodeType":"VariableDeclaration","scope":47234,"src":"1922:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47181,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"2019:14:72","nodeType":"VariableDeclaration","scope":47234,"src":"2011:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47180,"name":"address","nodeType":"ElementaryTypeName","src":"2011:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47184,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2125:18:72","nodeType":"VariableDeclaration","scope":47234,"src":"2119:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47183,"name":"uint8","nodeType":"ElementaryTypeName","src":"2119:5:72","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":47187,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2232:14:72","nodeType":"VariableDeclaration","scope":47234,"src":"2224:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47186,"name":"uint256","nodeType":"ElementaryTypeName","src":"2224:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47191,"mutability":"mutable","name":"parentId","nameLocation":"2301:8:72","nodeType":"VariableDeclaration","scope":47234,"src":"2292:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":47190,"nodeType":"UserDefinedTypeName","pathNode":{"id":47189,"name":"SubnetID","nameLocations":["2292:8:72"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"2292:8:72"},"referencedDeclaration":50030,"src":"2292:8:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47195,"mutability":"mutable","name":"consensus","nameLocation":"2354:9:72","nodeType":"VariableDeclaration","scope":47234,"src":"2340:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":47194,"nodeType":"UserDefinedTypeName","pathNode":{"id":47193,"name":"ConsensusType","nameLocations":["2340:13:72"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"2340:13:72"},"referencedDeclaration":37359,"src":"2340:13:72","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":47198,"mutability":"mutable","name":"bootstrapped","nameLocation":"2466:12:72","nodeType":"VariableDeclaration","scope":47234,"src":"2461:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47197,"name":"bool","nodeType":"ElementaryTypeName","src":"2461:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47201,"mutability":"mutable","name":"killed","nameLocation":"2559:6:72","nodeType":"VariableDeclaration","scope":47234,"src":"2554:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47200,"name":"bool","nodeType":"ElementaryTypeName","src":"2554:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47205,"mutability":"mutable","name":"validatorSet","nameLocation":"2670:12:72","nodeType":"VariableDeclaration","scope":47234,"src":"2657:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47204,"nodeType":"UserDefinedTypeName","pathNode":{"id":47203,"name":"ValidatorSet","nameLocations":["2657:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"2657:12:72"},"referencedDeclaration":50143,"src":"2657:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47209,"mutability":"mutable","name":"changeSet","nameLocation":"2819:9:72","nodeType":"VariableDeclaration","scope":47234,"src":"2802:26:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":47208,"nodeType":"UserDefinedTypeName","pathNode":{"id":47207,"name":"StakingChangeLog","nameLocations":["2802:16:72"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"2802:16:72"},"referencedDeclaration":50076,"src":"2802:16:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":47213,"mutability":"mutable","name":"releaseQueue","nameLocation":"2965:12:72","nodeType":"VariableDeclaration","scope":47234,"src":"2945:32:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":47212,"nodeType":"UserDefinedTypeName","pathNode":{"id":47211,"name":"StakingReleaseQueue","nameLocations":["2945:19:72"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"2945:19:72"},"referencedDeclaration":50103,"src":"2945:19:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":47216,"mutability":"mutable","name":"powerScale","nameLocation":"3263:10:72","nodeType":"VariableDeclaration","scope":47234,"src":"3258:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":47215,"name":"int8","nodeType":"ElementaryTypeName","src":"3258:4:72","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":47220,"mutability":"mutable","name":"relayerRewards","nameLocation":"3331:14:72","nodeType":"VariableDeclaration","scope":47234,"src":"3312:33:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage_ptr","typeString":"struct RelayerRewardsInfo"},"typeName":{"id":47219,"nodeType":"UserDefinedTypeName","pathNode":{"id":47218,"name":"RelayerRewardsInfo","nameLocations":["3312:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49921,"src":"3312:18:72"},"referencedDeclaration":49921,"src":"3312:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage_ptr","typeString":"struct RelayerRewardsInfo"}},"visibility":"internal"},{"constant":false,"id":47225,"mutability":"mutable","name":"bootstrapNodes","nameLocation":"3465:14:72","nodeType":"VariableDeclaration","scope":47234,"src":"3438:41:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":47224,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47222,"name":"address","nodeType":"ElementaryTypeName","src":"3446:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3438:26:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47223,"name":"string","nodeType":"ElementaryTypeName","src":"3457:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"internal"},{"constant":false,"id":47229,"mutability":"mutable","name":"bootstrapOwners","nameLocation":"3580:15:72","nodeType":"VariableDeclaration","scope":47234,"src":"3555:40:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":47228,"nodeType":"UserDefinedTypeName","pathNode":{"id":47227,"name":"EnumerableSet.AddressSet","nameLocations":["3555:13:72","3569:10:72"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"3555:24:72"},"referencedDeclaration":35528,"src":"3555:24:72","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":47233,"mutability":"mutable","name":"supplySource","nameLocation":"3654:12:72","nodeType":"VariableDeclaration","scope":47234,"src":"3641:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"},"typeName":{"id":47232,"nodeType":"UserDefinedTypeName","pathNode":{"id":47231,"name":"SupplySource","nameLocations":["3641:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"3641:12:72"},"referencedDeclaration":50179,"src":"3641:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"name":"SubnetActorStorage","nameLocation":"540:18:72","scope":47289,"visibility":"public"},{"id":47245,"nodeType":"ContractDefinition","src":"3671:194:72","nodes":[{"id":47244,"nodeType":"FunctionDefinition","src":"3707:156:72","nodes":[],"body":{"id":47243,"nodeType":"Block","src":"3783:80:72","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3802:36:72","statements":[{"nodeType":"YulAssignment","src":"3816:12:72","value":{"kind":"number","nodeType":"YulLiteral","src":"3827:1:72","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3816:7:72"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":47238,"isOffset":false,"isSlot":true,"src":"3816:7:72","suffix":"slot","valueSize":1}],"id":47240,"nodeType":"InlineAssembly","src":"3793:45:72"},{"expression":{"id":47241,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47238,"src":"3854:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"functionReturnParameters":47239,"id":47242,"nodeType":"Return","src":"3847:9:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3716:10:72","parameters":{"id":47235,"nodeType":"ParameterList","parameters":[],"src":"3726:2:72"},"returnParameters":{"id":47239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47238,"mutability":"mutable","name":"ds","nameLocation":"3779:2:72","nodeType":"VariableDeclaration","scope":47244,"src":"3752:29:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":47237,"nodeType":"UserDefinedTypeName","pathNode":{"id":47236,"name":"SubnetActorStorage","nameLocations":["3752:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"3752:18:72"},"referencedDeclaration":47234,"src":"3752:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"src":"3751:31:72"},"scope":47245,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[47245],"name":"LibSubnetActorStorage","nameLocation":"3679:21:72","scope":47289,"usedErrors":[]},{"id":47288,"nodeType":"ContractDefinition","src":"3867:469:72","nodes":[{"id":47248,"nodeType":"VariableDeclaration","src":"3903:29:72","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3931:1:72","scope":47288,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":47247,"nodeType":"UserDefinedTypeName","pathNode":{"id":47246,"name":"SubnetActorStorage","nameLocations":["3903:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"3903:18:72"},"referencedDeclaration":47234,"src":"3903:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":47262,"nodeType":"FunctionDefinition","src":"3939:133:72","nodes":[],"body":{"id":47261,"nodeType":"Block","src":"3976:96:72","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47251,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3990:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":47252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3994:6:72","memberName":"sender","nodeType":"MemberAccess","src":"3990:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47253,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"4004:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4006:14:72","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"4004:16:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3990:30:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47260,"nodeType":"IfStatement","src":"3986:80:72","trueBody":{"id":47259,"nodeType":"Block","src":"4022:44:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47256,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"4043:10:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47258,"nodeType":"RevertStatement","src":"4036:19:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"3948:12:72","parameters":{"id":47249,"nodeType":"ParameterList","parameters":[],"src":"3960:2:72"},"returnParameters":{"id":47250,"nodeType":"ParameterList","parameters":[],"src":"3976:0:72"},"scope":47288,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47273,"nodeType":"FunctionDefinition","src":"4078:118:72","nodes":[],"body":{"id":47272,"nodeType":"Block","src":"4113:83:72","nodes":[],"statements":[{"condition":{"expression":{"id":47265,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"4127:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4129:6:72","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"4127:8:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47271,"nodeType":"IfStatement","src":"4123:67:72","trueBody":{"id":47270,"nodeType":"Block","src":"4137:53:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47267,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"4158:19:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4158:21:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47269,"nodeType":"RevertStatement","src":"4151:28:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_notKilled","nameLocation":"4087:10:72","parameters":{"id":47263,"nodeType":"ParameterList","parameters":[],"src":"4097:2:72"},"returnParameters":{"id":47264,"nodeType":"ParameterList","parameters":[],"src":"4113:0:72"},"scope":47288,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47280,"nodeType":"ModifierDefinition","src":"4202:65:72","nodes":[],"body":{"id":47279,"nodeType":"Block","src":"4225:42:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47275,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47262,"src":"4235:12:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4235:14:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47277,"nodeType":"ExpressionStatement","src":"4235:14:72"},{"id":47278,"nodeType":"PlaceholderStatement","src":"4259:1:72"}]},"name":"onlyGateway","nameLocation":"4211:11:72","parameters":{"id":47274,"nodeType":"ParameterList","parameters":[],"src":"4222:2:72"},"virtual":false,"visibility":"internal"},{"id":47287,"nodeType":"ModifierDefinition","src":"4273:61:72","nodes":[],"body":{"id":47286,"nodeType":"Block","src":"4294:40:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47282,"name":"_notKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47273,"src":"4304:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4304:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47284,"nodeType":"ExpressionStatement","src":"4304:12:72"},{"id":47285,"nodeType":"PlaceholderStatement","src":"4326:1:72"}]},"name":"notKilled","nameLocation":"4282:9:72","parameters":{"id":47281,"nodeType":"ParameterList","parameters":[],"src":"4291:2:72"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[47288],"name":"SubnetActorModifiers","nameLocation":"3876:20:72","scope":47289,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":72} \ No newline at end of file diff --git a/.out/LibSubnetActorStorage.sol/SubnetActorModifiers.json b/.out/LibSubnetActorStorage.sol/SubnetActorModifiers.json index 8ceafcc10..058a16b9a 100644 --- a/.out/LibSubnetActorStorage.sol/SubnetActorModifiers.json +++ b/.out/LibSubnetActorStorage.sol/SubnetActorModifiers.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220e5c3cbdbfe4f02af570aa61db0bb00911a19b7abfac0fb81b1915129e929fce064736f6c63430008130033","sourceMap":"3867:469:72:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220e5c3cbdbfe4f02af570aa61db0bb00911a19b7abfac0fb81b1915129e929fce064736f6c63430008130033","sourceMap":"3867:469:72:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActorStorage.sol\":\"SubnetActorModifiers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActorStorage.sol":"SubnetActorModifiers"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActorStorage.sol","id":47336,"exportedSymbols":{"BottomUpCheckpoint":[49932],"BottomUpMsgBatchInfo":[49950],"ConsensusType":[37359],"EnumerableSet":[35815],"LibSubnetActorStorage":[47292],"NotGateway":[37478],"PermissionMode":[50165],"RelayerRewardsInfo":[49968],"StakingChangeLog":[50123],"StakingReleaseQueue":[50150],"SubnetActorModifiers":[47335],"SubnetActorStorage":[47281],"SubnetAlreadyKilled":[37504],"SubnetID":[50077],"SupplySource":[50226],"Validator":[50211],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:4291:72","nodes":[{"id":47159,"nodeType":"PragmaDirective","src":"46:23:72","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47161,"nodeType":"ImportDirective","src":"71:57:72","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":47160,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"79:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47164,"nodeType":"ImportDirective","src":"129:72:72","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":47162,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"137:10:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47163,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"149:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47168,"nodeType":"ImportDirective","src":"202:101:72","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":47165,"name":"RelayerRewardsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49968,"src":"210:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47166,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"230:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47167,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49950,"src":"250:20:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47176,"nodeType":"ImportDirective","src":"304:141:72","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":47169,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"312:8:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47170,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"322:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47171,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"336:16:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47172,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"354:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47173,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"375:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47174,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"389:9:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47175,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"400:14:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47178,"nodeType":"ImportDirective","src":"446:85:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":47177,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"454:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47281,"nodeType":"StructDefinition","src":"533:3136:72","nodes":[],"canonicalName":"SubnetActorStorage","members":[{"constant":false,"id":47184,"mutability":"mutable","name":"committedCheckpoints","nameLocation":"682:20:72","nodeType":"VariableDeclaration","scope":47281,"src":"643:59:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":47183,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47180,"name":"uint256","nodeType":"ElementaryTypeName","src":"651:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"643:38:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47182,"nodeType":"UserDefinedTypeName","pathNode":{"id":47181,"name":"BottomUpCheckpoint","nameLocations":["662:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"662:18:72"},"referencedDeclaration":49932,"src":"662:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":47189,"mutability":"mutable","name":"genesisValidators","nameLocation":"781:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"769:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":47187,"nodeType":"UserDefinedTypeName","pathNode":{"id":47186,"name":"Validator","nameLocations":["769:9:72"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"769:9:72"},"referencedDeclaration":50211,"src":"769:9:72","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":47188,"nodeType":"ArrayTypeName","src":"769:11:72","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":47192,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"933:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"925:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47191,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47197,"mutability":"mutable","name":"genesisBalance","nameLocation":"1058:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"1030:42:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":47196,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47194,"name":"address","nodeType":"ElementaryTypeName","src":"1038:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1030:27:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47195,"name":"uint256","nodeType":"ElementaryTypeName","src":"1049:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":47201,"mutability":"mutable","name":"genesisBalanceKeys","nameLocation":"1130:18:72","nodeType":"VariableDeclaration","scope":47281,"src":"1120:28:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47199,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47200,"nodeType":"ArrayTypeName","src":"1120:9:72","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":47204,"mutability":"mutable","name":"lastBottomUpCheckpointHeight","nameLocation":"1233:28:72","nodeType":"VariableDeclaration","scope":47281,"src":"1225:36:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1225:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47208,"mutability":"mutable","name":"lastBottomUpBatch","nameLocation":"1347:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"1326:38:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"},"typeName":{"id":47207,"nodeType":"UserDefinedTypeName","pathNode":{"id":47206,"name":"BottomUpMsgBatchInfo","nameLocations":["1326:20:72"],"nodeType":"IdentifierPath","referencedDeclaration":49950,"src":"1326:20:72"},"referencedDeclaration":49950,"src":"1326:20:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"}},"visibility":"internal"},{"constant":false,"id":47211,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"1460:22:72","nodeType":"VariableDeclaration","scope":47281,"src":"1452:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47210,"name":"uint256","nodeType":"ElementaryTypeName","src":"1452:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47214,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"1548:23:72","nodeType":"VariableDeclaration","scope":47281,"src":"1541:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47213,"name":"uint64","nodeType":"ElementaryTypeName","src":"1541:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47217,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1631:23:72","nodeType":"VariableDeclaration","scope":47281,"src":"1623:31:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47216,"name":"uint256","nodeType":"ElementaryTypeName","src":"1623:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47220,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1722:19:72","nodeType":"VariableDeclaration","scope":47281,"src":"1714:27:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47219,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47223,"mutability":"mutable","name":"minValidators","nameLocation":"1858:13:72","nodeType":"VariableDeclaration","scope":47281,"src":"1851:20:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47222,"name":"uint64","nodeType":"ElementaryTypeName","src":"1851:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47225,"mutability":"mutable","name":"currentSubnetHash","nameLocation":"1930:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"1922:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47228,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"2019:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"2011:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47227,"name":"address","nodeType":"ElementaryTypeName","src":"2011:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47231,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2125:18:72","nodeType":"VariableDeclaration","scope":47281,"src":"2119:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47230,"name":"uint8","nodeType":"ElementaryTypeName","src":"2119:5:72","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":47234,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2232:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"2224:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47233,"name":"uint256","nodeType":"ElementaryTypeName","src":"2224:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47238,"mutability":"mutable","name":"parentId","nameLocation":"2301:8:72","nodeType":"VariableDeclaration","scope":47281,"src":"2292:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":47237,"nodeType":"UserDefinedTypeName","pathNode":{"id":47236,"name":"SubnetID","nameLocations":["2292:8:72"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2292:8:72"},"referencedDeclaration":50077,"src":"2292:8:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47242,"mutability":"mutable","name":"consensus","nameLocation":"2354:9:72","nodeType":"VariableDeclaration","scope":47281,"src":"2340:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":47241,"nodeType":"UserDefinedTypeName","pathNode":{"id":47240,"name":"ConsensusType","nameLocations":["2340:13:72"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"2340:13:72"},"referencedDeclaration":37359,"src":"2340:13:72","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":47245,"mutability":"mutable","name":"bootstrapped","nameLocation":"2466:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2461:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47244,"name":"bool","nodeType":"ElementaryTypeName","src":"2461:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47248,"mutability":"mutable","name":"killed","nameLocation":"2559:6:72","nodeType":"VariableDeclaration","scope":47281,"src":"2554:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47247,"name":"bool","nodeType":"ElementaryTypeName","src":"2554:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47252,"mutability":"mutable","name":"validatorSet","nameLocation":"2670:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2657:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47251,"nodeType":"UserDefinedTypeName","pathNode":{"id":47250,"name":"ValidatorSet","nameLocations":["2657:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"2657:12:72"},"referencedDeclaration":50190,"src":"2657:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47256,"mutability":"mutable","name":"changeSet","nameLocation":"2819:9:72","nodeType":"VariableDeclaration","scope":47281,"src":"2802:26:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":47255,"nodeType":"UserDefinedTypeName","pathNode":{"id":47254,"name":"StakingChangeLog","nameLocations":["2802:16:72"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"2802:16:72"},"referencedDeclaration":50123,"src":"2802:16:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":47260,"mutability":"mutable","name":"releaseQueue","nameLocation":"2965:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2945:32:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":47259,"nodeType":"UserDefinedTypeName","pathNode":{"id":47258,"name":"StakingReleaseQueue","nameLocations":["2945:19:72"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2945:19:72"},"referencedDeclaration":50150,"src":"2945:19:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":47263,"mutability":"mutable","name":"powerScale","nameLocation":"3263:10:72","nodeType":"VariableDeclaration","scope":47281,"src":"3258:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":47262,"name":"int8","nodeType":"ElementaryTypeName","src":"3258:4:72","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":47267,"mutability":"mutable","name":"relayerRewards","nameLocation":"3331:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"3312:33:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage_ptr","typeString":"struct RelayerRewardsInfo"},"typeName":{"id":47266,"nodeType":"UserDefinedTypeName","pathNode":{"id":47265,"name":"RelayerRewardsInfo","nameLocations":["3312:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49968,"src":"3312:18:72"},"referencedDeclaration":49968,"src":"3312:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage_ptr","typeString":"struct RelayerRewardsInfo"}},"visibility":"internal"},{"constant":false,"id":47272,"mutability":"mutable","name":"bootstrapNodes","nameLocation":"3465:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"3438:41:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":47271,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47269,"name":"address","nodeType":"ElementaryTypeName","src":"3446:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3438:26:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47270,"name":"string","nodeType":"ElementaryTypeName","src":"3457:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"internal"},{"constant":false,"id":47276,"mutability":"mutable","name":"bootstrapOwners","nameLocation":"3580:15:72","nodeType":"VariableDeclaration","scope":47281,"src":"3555:40:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":47275,"nodeType":"UserDefinedTypeName","pathNode":{"id":47274,"name":"EnumerableSet.AddressSet","nameLocations":["3555:13:72","3569:10:72"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"3555:24:72"},"referencedDeclaration":35528,"src":"3555:24:72","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":47280,"mutability":"mutable","name":"supplySource","nameLocation":"3654:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"3641:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"},"typeName":{"id":47279,"nodeType":"UserDefinedTypeName","pathNode":{"id":47278,"name":"SupplySource","nameLocations":["3641:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"3641:12:72"},"referencedDeclaration":50226,"src":"3641:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"name":"SubnetActorStorage","nameLocation":"540:18:72","scope":47336,"visibility":"public"},{"id":47292,"nodeType":"ContractDefinition","src":"3671:194:72","nodes":[{"id":47291,"nodeType":"FunctionDefinition","src":"3707:156:72","nodes":[],"body":{"id":47290,"nodeType":"Block","src":"3783:80:72","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3802:36:72","statements":[{"nodeType":"YulAssignment","src":"3816:12:72","value":{"kind":"number","nodeType":"YulLiteral","src":"3827:1:72","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3816:7:72"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":47285,"isOffset":false,"isSlot":true,"src":"3816:7:72","suffix":"slot","valueSize":1}],"id":47287,"nodeType":"InlineAssembly","src":"3793:45:72"},{"expression":{"id":47288,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47285,"src":"3854:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"functionReturnParameters":47286,"id":47289,"nodeType":"Return","src":"3847:9:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3716:10:72","parameters":{"id":47282,"nodeType":"ParameterList","parameters":[],"src":"3726:2:72"},"returnParameters":{"id":47286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47285,"mutability":"mutable","name":"ds","nameLocation":"3779:2:72","nodeType":"VariableDeclaration","scope":47291,"src":"3752:29:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":47284,"nodeType":"UserDefinedTypeName","pathNode":{"id":47283,"name":"SubnetActorStorage","nameLocations":["3752:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"3752:18:72"},"referencedDeclaration":47281,"src":"3752:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"src":"3751:31:72"},"scope":47292,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[47292],"name":"LibSubnetActorStorage","nameLocation":"3679:21:72","scope":47336,"usedErrors":[]},{"id":47335,"nodeType":"ContractDefinition","src":"3867:469:72","nodes":[{"id":47295,"nodeType":"VariableDeclaration","src":"3903:29:72","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3931:1:72","scope":47335,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":47294,"nodeType":"UserDefinedTypeName","pathNode":{"id":47293,"name":"SubnetActorStorage","nameLocations":["3903:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"3903:18:72"},"referencedDeclaration":47281,"src":"3903:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":47309,"nodeType":"FunctionDefinition","src":"3939:133:72","nodes":[],"body":{"id":47308,"nodeType":"Block","src":"3976:96:72","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47298,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3990:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":47299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3994:6:72","memberName":"sender","nodeType":"MemberAccess","src":"3990:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47300,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4004:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4006:14:72","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"4004:16:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3990:30:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47307,"nodeType":"IfStatement","src":"3986:80:72","trueBody":{"id":47306,"nodeType":"Block","src":"4022:44:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47303,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"4043:10:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47305,"nodeType":"RevertStatement","src":"4036:19:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"3948:12:72","parameters":{"id":47296,"nodeType":"ParameterList","parameters":[],"src":"3960:2:72"},"returnParameters":{"id":47297,"nodeType":"ParameterList","parameters":[],"src":"3976:0:72"},"scope":47335,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47320,"nodeType":"FunctionDefinition","src":"4078:118:72","nodes":[],"body":{"id":47319,"nodeType":"Block","src":"4113:83:72","nodes":[],"statements":[{"condition":{"expression":{"id":47312,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4127:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4129:6:72","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47248,"src":"4127:8:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47318,"nodeType":"IfStatement","src":"4123:67:72","trueBody":{"id":47317,"nodeType":"Block","src":"4137:53:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47314,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"4158:19:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4158:21:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47316,"nodeType":"RevertStatement","src":"4151:28:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_notKilled","nameLocation":"4087:10:72","parameters":{"id":47310,"nodeType":"ParameterList","parameters":[],"src":"4097:2:72"},"returnParameters":{"id":47311,"nodeType":"ParameterList","parameters":[],"src":"4113:0:72"},"scope":47335,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47327,"nodeType":"ModifierDefinition","src":"4202:65:72","nodes":[],"body":{"id":47326,"nodeType":"Block","src":"4225:42:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47322,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47309,"src":"4235:12:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4235:14:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47324,"nodeType":"ExpressionStatement","src":"4235:14:72"},{"id":47325,"nodeType":"PlaceholderStatement","src":"4259:1:72"}]},"name":"onlyGateway","nameLocation":"4211:11:72","parameters":{"id":47321,"nodeType":"ParameterList","parameters":[],"src":"4222:2:72"},"virtual":false,"visibility":"internal"},{"id":47334,"nodeType":"ModifierDefinition","src":"4273:61:72","nodes":[],"body":{"id":47333,"nodeType":"Block","src":"4294:40:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47329,"name":"_notKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47320,"src":"4304:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4304:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47331,"nodeType":"ExpressionStatement","src":"4304:12:72"},{"id":47332,"nodeType":"PlaceholderStatement","src":"4326:1:72"}]},"name":"notKilled","nameLocation":"4282:9:72","parameters":{"id":47328,"nodeType":"ParameterList","parameters":[],"src":"4291:2:72"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[47335],"name":"SubnetActorModifiers","nameLocation":"3876:20:72","scope":47336,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":72} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220e5c3cbdbfe4f02af570aa61db0bb00911a19b7abfac0fb81b1915129e929fce064736f6c63430008130033","sourceMap":"3867:469:72:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220e5c3cbdbfe4f02af570aa61db0bb00911a19b7abfac0fb81b1915129e929fce064736f6c63430008130033","sourceMap":"3867:469:72:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActorStorage.sol\":\"SubnetActorModifiers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActorStorage.sol":"SubnetActorModifiers"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActorStorage.sol","id":47289,"exportedSymbols":{"BottomUpCheckpoint":[49885],"BottomUpMsgBatchInfo":[49903],"ConsensusType":[37359],"EnumerableSet":[35815],"LibSubnetActorStorage":[47245],"NotGateway":[37478],"PermissionMode":[50118],"RelayerRewardsInfo":[49921],"StakingChangeLog":[50076],"StakingReleaseQueue":[50103],"SubnetActorModifiers":[47288],"SubnetActorStorage":[47234],"SubnetAlreadyKilled":[37504],"SubnetID":[50030],"SupplySource":[50179],"Validator":[50164],"ValidatorSet":[50143]},"nodeType":"SourceUnit","src":"46:4291:72","nodes":[{"id":47112,"nodeType":"PragmaDirective","src":"46:23:72","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47114,"nodeType":"ImportDirective","src":"71:57:72","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":47289,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":47113,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"79:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47117,"nodeType":"ImportDirective","src":"129:72:72","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47289,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":47115,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"137:10:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47116,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"149:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47121,"nodeType":"ImportDirective","src":"202:101:72","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":47289,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":47118,"name":"RelayerRewardsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49921,"src":"210:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47119,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"230:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47120,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49903,"src":"250:20:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47129,"nodeType":"ImportDirective","src":"304:141:72","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47289,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":47122,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"312:8:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47123,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"322:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47124,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50076,"src":"336:16:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47125,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50103,"src":"354:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47126,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"375:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47127,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"389:9:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47128,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"400:14:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47131,"nodeType":"ImportDirective","src":"446:85:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":47289,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":47130,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"454:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47234,"nodeType":"StructDefinition","src":"533:3136:72","nodes":[],"canonicalName":"SubnetActorStorage","members":[{"constant":false,"id":47137,"mutability":"mutable","name":"committedCheckpoints","nameLocation":"682:20:72","nodeType":"VariableDeclaration","scope":47234,"src":"643:59:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":47136,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47133,"name":"uint256","nodeType":"ElementaryTypeName","src":"651:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"643:38:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47135,"nodeType":"UserDefinedTypeName","pathNode":{"id":47134,"name":"BottomUpCheckpoint","nameLocations":["662:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"662:18:72"},"referencedDeclaration":49885,"src":"662:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":47142,"mutability":"mutable","name":"genesisValidators","nameLocation":"781:17:72","nodeType":"VariableDeclaration","scope":47234,"src":"769:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":47140,"nodeType":"UserDefinedTypeName","pathNode":{"id":47139,"name":"Validator","nameLocations":["769:9:72"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"769:9:72"},"referencedDeclaration":50164,"src":"769:9:72","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":47141,"nodeType":"ArrayTypeName","src":"769:11:72","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":47145,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"933:17:72","nodeType":"VariableDeclaration","scope":47234,"src":"925:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47144,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47150,"mutability":"mutable","name":"genesisBalance","nameLocation":"1058:14:72","nodeType":"VariableDeclaration","scope":47234,"src":"1030:42:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":47149,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47147,"name":"address","nodeType":"ElementaryTypeName","src":"1038:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1030:27:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47148,"name":"uint256","nodeType":"ElementaryTypeName","src":"1049:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":47154,"mutability":"mutable","name":"genesisBalanceKeys","nameLocation":"1130:18:72","nodeType":"VariableDeclaration","scope":47234,"src":"1120:28:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47152,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47153,"nodeType":"ArrayTypeName","src":"1120:9:72","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":47157,"mutability":"mutable","name":"lastBottomUpCheckpointHeight","nameLocation":"1233:28:72","nodeType":"VariableDeclaration","scope":47234,"src":"1225:36:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47156,"name":"uint256","nodeType":"ElementaryTypeName","src":"1225:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47161,"mutability":"mutable","name":"lastBottomUpBatch","nameLocation":"1347:17:72","nodeType":"VariableDeclaration","scope":47234,"src":"1326:38:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"},"typeName":{"id":47160,"nodeType":"UserDefinedTypeName","pathNode":{"id":47159,"name":"BottomUpMsgBatchInfo","nameLocations":["1326:20:72"],"nodeType":"IdentifierPath","referencedDeclaration":49903,"src":"1326:20:72"},"referencedDeclaration":49903,"src":"1326:20:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"}},"visibility":"internal"},{"constant":false,"id":47164,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"1460:22:72","nodeType":"VariableDeclaration","scope":47234,"src":"1452:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47163,"name":"uint256","nodeType":"ElementaryTypeName","src":"1452:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47167,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"1548:23:72","nodeType":"VariableDeclaration","scope":47234,"src":"1541:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47166,"name":"uint64","nodeType":"ElementaryTypeName","src":"1541:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47170,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1631:23:72","nodeType":"VariableDeclaration","scope":47234,"src":"1623:31:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47169,"name":"uint256","nodeType":"ElementaryTypeName","src":"1623:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47173,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1722:19:72","nodeType":"VariableDeclaration","scope":47234,"src":"1714:27:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47176,"mutability":"mutable","name":"minValidators","nameLocation":"1858:13:72","nodeType":"VariableDeclaration","scope":47234,"src":"1851:20:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47175,"name":"uint64","nodeType":"ElementaryTypeName","src":"1851:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47178,"mutability":"mutable","name":"currentSubnetHash","nameLocation":"1930:17:72","nodeType":"VariableDeclaration","scope":47234,"src":"1922:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47181,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"2019:14:72","nodeType":"VariableDeclaration","scope":47234,"src":"2011:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47180,"name":"address","nodeType":"ElementaryTypeName","src":"2011:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47184,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2125:18:72","nodeType":"VariableDeclaration","scope":47234,"src":"2119:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47183,"name":"uint8","nodeType":"ElementaryTypeName","src":"2119:5:72","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":47187,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2232:14:72","nodeType":"VariableDeclaration","scope":47234,"src":"2224:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47186,"name":"uint256","nodeType":"ElementaryTypeName","src":"2224:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47191,"mutability":"mutable","name":"parentId","nameLocation":"2301:8:72","nodeType":"VariableDeclaration","scope":47234,"src":"2292:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":47190,"nodeType":"UserDefinedTypeName","pathNode":{"id":47189,"name":"SubnetID","nameLocations":["2292:8:72"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"2292:8:72"},"referencedDeclaration":50030,"src":"2292:8:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47195,"mutability":"mutable","name":"consensus","nameLocation":"2354:9:72","nodeType":"VariableDeclaration","scope":47234,"src":"2340:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":47194,"nodeType":"UserDefinedTypeName","pathNode":{"id":47193,"name":"ConsensusType","nameLocations":["2340:13:72"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"2340:13:72"},"referencedDeclaration":37359,"src":"2340:13:72","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":47198,"mutability":"mutable","name":"bootstrapped","nameLocation":"2466:12:72","nodeType":"VariableDeclaration","scope":47234,"src":"2461:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47197,"name":"bool","nodeType":"ElementaryTypeName","src":"2461:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47201,"mutability":"mutable","name":"killed","nameLocation":"2559:6:72","nodeType":"VariableDeclaration","scope":47234,"src":"2554:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47200,"name":"bool","nodeType":"ElementaryTypeName","src":"2554:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47205,"mutability":"mutable","name":"validatorSet","nameLocation":"2670:12:72","nodeType":"VariableDeclaration","scope":47234,"src":"2657:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47204,"nodeType":"UserDefinedTypeName","pathNode":{"id":47203,"name":"ValidatorSet","nameLocations":["2657:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"2657:12:72"},"referencedDeclaration":50143,"src":"2657:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47209,"mutability":"mutable","name":"changeSet","nameLocation":"2819:9:72","nodeType":"VariableDeclaration","scope":47234,"src":"2802:26:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":47208,"nodeType":"UserDefinedTypeName","pathNode":{"id":47207,"name":"StakingChangeLog","nameLocations":["2802:16:72"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"2802:16:72"},"referencedDeclaration":50076,"src":"2802:16:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":47213,"mutability":"mutable","name":"releaseQueue","nameLocation":"2965:12:72","nodeType":"VariableDeclaration","scope":47234,"src":"2945:32:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":47212,"nodeType":"UserDefinedTypeName","pathNode":{"id":47211,"name":"StakingReleaseQueue","nameLocations":["2945:19:72"],"nodeType":"IdentifierPath","referencedDeclaration":50103,"src":"2945:19:72"},"referencedDeclaration":50103,"src":"2945:19:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50103_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":47216,"mutability":"mutable","name":"powerScale","nameLocation":"3263:10:72","nodeType":"VariableDeclaration","scope":47234,"src":"3258:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":47215,"name":"int8","nodeType":"ElementaryTypeName","src":"3258:4:72","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":47220,"mutability":"mutable","name":"relayerRewards","nameLocation":"3331:14:72","nodeType":"VariableDeclaration","scope":47234,"src":"3312:33:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage_ptr","typeString":"struct RelayerRewardsInfo"},"typeName":{"id":47219,"nodeType":"UserDefinedTypeName","pathNode":{"id":47218,"name":"RelayerRewardsInfo","nameLocations":["3312:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49921,"src":"3312:18:72"},"referencedDeclaration":49921,"src":"3312:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage_ptr","typeString":"struct RelayerRewardsInfo"}},"visibility":"internal"},{"constant":false,"id":47225,"mutability":"mutable","name":"bootstrapNodes","nameLocation":"3465:14:72","nodeType":"VariableDeclaration","scope":47234,"src":"3438:41:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":47224,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47222,"name":"address","nodeType":"ElementaryTypeName","src":"3446:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3438:26:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47223,"name":"string","nodeType":"ElementaryTypeName","src":"3457:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"internal"},{"constant":false,"id":47229,"mutability":"mutable","name":"bootstrapOwners","nameLocation":"3580:15:72","nodeType":"VariableDeclaration","scope":47234,"src":"3555:40:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":47228,"nodeType":"UserDefinedTypeName","pathNode":{"id":47227,"name":"EnumerableSet.AddressSet","nameLocations":["3555:13:72","3569:10:72"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"3555:24:72"},"referencedDeclaration":35528,"src":"3555:24:72","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":47233,"mutability":"mutable","name":"supplySource","nameLocation":"3654:12:72","nodeType":"VariableDeclaration","scope":47234,"src":"3641:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"},"typeName":{"id":47232,"nodeType":"UserDefinedTypeName","pathNode":{"id":47231,"name":"SupplySource","nameLocations":["3641:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"3641:12:72"},"referencedDeclaration":50179,"src":"3641:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"name":"SubnetActorStorage","nameLocation":"540:18:72","scope":47289,"visibility":"public"},{"id":47245,"nodeType":"ContractDefinition","src":"3671:194:72","nodes":[{"id":47244,"nodeType":"FunctionDefinition","src":"3707:156:72","nodes":[],"body":{"id":47243,"nodeType":"Block","src":"3783:80:72","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3802:36:72","statements":[{"nodeType":"YulAssignment","src":"3816:12:72","value":{"kind":"number","nodeType":"YulLiteral","src":"3827:1:72","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3816:7:72"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":47238,"isOffset":false,"isSlot":true,"src":"3816:7:72","suffix":"slot","valueSize":1}],"id":47240,"nodeType":"InlineAssembly","src":"3793:45:72"},{"expression":{"id":47241,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47238,"src":"3854:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"functionReturnParameters":47239,"id":47242,"nodeType":"Return","src":"3847:9:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3716:10:72","parameters":{"id":47235,"nodeType":"ParameterList","parameters":[],"src":"3726:2:72"},"returnParameters":{"id":47239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47238,"mutability":"mutable","name":"ds","nameLocation":"3779:2:72","nodeType":"VariableDeclaration","scope":47244,"src":"3752:29:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":47237,"nodeType":"UserDefinedTypeName","pathNode":{"id":47236,"name":"SubnetActorStorage","nameLocations":["3752:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"3752:18:72"},"referencedDeclaration":47234,"src":"3752:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"src":"3751:31:72"},"scope":47245,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[47245],"name":"LibSubnetActorStorage","nameLocation":"3679:21:72","scope":47289,"usedErrors":[]},{"id":47288,"nodeType":"ContractDefinition","src":"3867:469:72","nodes":[{"id":47248,"nodeType":"VariableDeclaration","src":"3903:29:72","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3931:1:72","scope":47288,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":47247,"nodeType":"UserDefinedTypeName","pathNode":{"id":47246,"name":"SubnetActorStorage","nameLocations":["3903:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"3903:18:72"},"referencedDeclaration":47234,"src":"3903:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":47262,"nodeType":"FunctionDefinition","src":"3939:133:72","nodes":[],"body":{"id":47261,"nodeType":"Block","src":"3976:96:72","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47251,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3990:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":47252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3994:6:72","memberName":"sender","nodeType":"MemberAccess","src":"3990:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47253,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"4004:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4006:14:72","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"4004:16:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3990:30:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47260,"nodeType":"IfStatement","src":"3986:80:72","trueBody":{"id":47259,"nodeType":"Block","src":"4022:44:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47256,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"4043:10:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47258,"nodeType":"RevertStatement","src":"4036:19:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"3948:12:72","parameters":{"id":47249,"nodeType":"ParameterList","parameters":[],"src":"3960:2:72"},"returnParameters":{"id":47250,"nodeType":"ParameterList","parameters":[],"src":"3976:0:72"},"scope":47288,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47273,"nodeType":"FunctionDefinition","src":"4078:118:72","nodes":[],"body":{"id":47272,"nodeType":"Block","src":"4113:83:72","nodes":[],"statements":[{"condition":{"expression":{"id":47265,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"4127:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4129:6:72","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"4127:8:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47271,"nodeType":"IfStatement","src":"4123:67:72","trueBody":{"id":47270,"nodeType":"Block","src":"4137:53:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47267,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"4158:19:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4158:21:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47269,"nodeType":"RevertStatement","src":"4151:28:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_notKilled","nameLocation":"4087:10:72","parameters":{"id":47263,"nodeType":"ParameterList","parameters":[],"src":"4097:2:72"},"returnParameters":{"id":47264,"nodeType":"ParameterList","parameters":[],"src":"4113:0:72"},"scope":47288,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47280,"nodeType":"ModifierDefinition","src":"4202:65:72","nodes":[],"body":{"id":47279,"nodeType":"Block","src":"4225:42:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47275,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47262,"src":"4235:12:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4235:14:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47277,"nodeType":"ExpressionStatement","src":"4235:14:72"},{"id":47278,"nodeType":"PlaceholderStatement","src":"4259:1:72"}]},"name":"onlyGateway","nameLocation":"4211:11:72","parameters":{"id":47274,"nodeType":"ParameterList","parameters":[],"src":"4222:2:72"},"virtual":false,"visibility":"internal"},{"id":47287,"nodeType":"ModifierDefinition","src":"4273:61:72","nodes":[],"body":{"id":47286,"nodeType":"Block","src":"4294:40:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47282,"name":"_notKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47273,"src":"4304:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4304:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47284,"nodeType":"ExpressionStatement","src":"4304:12:72"},{"id":47285,"nodeType":"PlaceholderStatement","src":"4326:1:72"}]},"name":"notKilled","nameLocation":"4282:9:72","parameters":{"id":47281,"nodeType":"ParameterList","parameters":[],"src":"4291:2:72"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[47288],"name":"SubnetActorModifiers","nameLocation":"3876:20:72","scope":47289,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":72} \ No newline at end of file diff --git a/.out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json b/.out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json index 450d89296..4b975e3ad 100644 --- a/.out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json +++ b/.out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","id":47366,"exportedSymbols":{"SubnetRegistryActorStorage":[47365]},"nodeType":"SourceUnit","src":"46:939:73","nodes":[{"id":47337,"nodeType":"PragmaDirective","src":"46:23:73","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47365,"nodeType":"StructDefinition","src":"71:913:73","nodes":[],"canonicalName":"SubnetRegistryActorStorage","members":[{"constant":false,"id":47339,"mutability":"mutable","name":"GATEWAY","nameLocation":"171:7:73","nodeType":"VariableDeclaration","scope":47365,"src":"163:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47338,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47342,"mutability":"mutable","name":"SUBNET_GETTER_FACET","nameLocation":"299:19:73","nodeType":"VariableDeclaration","scope":47365,"src":"291:27:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47341,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47344,"mutability":"mutable","name":"SUBNET_MANAGER_FACET","nameLocation":"384:20:73","nodeType":"VariableDeclaration","scope":47365,"src":"376:28:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47343,"name":"address","nodeType":"ElementaryTypeName","src":"376:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47348,"mutability":"mutable","name":"subnetGetterSelectors","nameLocation":"471:21:73","nodeType":"VariableDeclaration","scope":47365,"src":"462:30:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":47346,"name":"bytes4","nodeType":"ElementaryTypeName","src":"462:6:73","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":47347,"nodeType":"ArrayTypeName","src":"462:8:73","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":47352,"mutability":"mutable","name":"subnetManagerSelectors","nameLocation":"560:22:73","nodeType":"VariableDeclaration","scope":47365,"src":"551:31:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":47350,"name":"bytes4","nodeType":"ElementaryTypeName","src":"551:6:73","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":47351,"nodeType":"ArrayTypeName","src":"551:8:73","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":47359,"mutability":"mutable","name":"subnets","nameLocation":"809:7:73","nodeType":"VariableDeclaration","scope":47365,"src":"762:54:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"},"typeName":{"id":47358,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47354,"name":"address","nodeType":"ElementaryTypeName","src":"770:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"762:46:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47357,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47355,"name":"uint64","nodeType":"ElementaryTypeName","src":"789:6:73","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"781:26:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47356,"name":"address","nodeType":"ElementaryTypeName","src":"799:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"internal"},{"constant":false,"id":47364,"mutability":"mutable","name":"userNonces","nameLocation":"971:10:73","nodeType":"VariableDeclaration","scope":47365,"src":"944:37:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"typeName":{"id":47363,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47361,"name":"address","nodeType":"ElementaryTypeName","src":"952:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"944:26:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47362,"name":"uint64","nodeType":"ElementaryTypeName","src":"963:6:73","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},"visibility":"internal"}],"name":"SubnetRegistryActorStorage","nameLocation":"78:26:73","scope":47366,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":73} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","id":47319,"exportedSymbols":{"SubnetRegistryActorStorage":[47318]},"nodeType":"SourceUnit","src":"46:939:73","nodes":[{"id":47290,"nodeType":"PragmaDirective","src":"46:23:73","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47318,"nodeType":"StructDefinition","src":"71:913:73","nodes":[],"canonicalName":"SubnetRegistryActorStorage","members":[{"constant":false,"id":47292,"mutability":"mutable","name":"GATEWAY","nameLocation":"171:7:73","nodeType":"VariableDeclaration","scope":47318,"src":"163:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47291,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47295,"mutability":"mutable","name":"SUBNET_GETTER_FACET","nameLocation":"299:19:73","nodeType":"VariableDeclaration","scope":47318,"src":"291:27:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47294,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47297,"mutability":"mutable","name":"SUBNET_MANAGER_FACET","nameLocation":"384:20:73","nodeType":"VariableDeclaration","scope":47318,"src":"376:28:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47296,"name":"address","nodeType":"ElementaryTypeName","src":"376:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47301,"mutability":"mutable","name":"subnetGetterSelectors","nameLocation":"471:21:73","nodeType":"VariableDeclaration","scope":47318,"src":"462:30:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":47299,"name":"bytes4","nodeType":"ElementaryTypeName","src":"462:6:73","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":47300,"nodeType":"ArrayTypeName","src":"462:8:73","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":47305,"mutability":"mutable","name":"subnetManagerSelectors","nameLocation":"560:22:73","nodeType":"VariableDeclaration","scope":47318,"src":"551:31:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":47303,"name":"bytes4","nodeType":"ElementaryTypeName","src":"551:6:73","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":47304,"nodeType":"ArrayTypeName","src":"551:8:73","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":47312,"mutability":"mutable","name":"subnets","nameLocation":"809:7:73","nodeType":"VariableDeclaration","scope":47318,"src":"762:54:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"},"typeName":{"id":47311,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47307,"name":"address","nodeType":"ElementaryTypeName","src":"770:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"762:46:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47310,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47308,"name":"uint64","nodeType":"ElementaryTypeName","src":"789:6:73","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"781:26:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47309,"name":"address","nodeType":"ElementaryTypeName","src":"799:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"internal"},{"constant":false,"id":47317,"mutability":"mutable","name":"userNonces","nameLocation":"971:10:73","nodeType":"VariableDeclaration","scope":47318,"src":"944:37:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"typeName":{"id":47316,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47314,"name":"address","nodeType":"ElementaryTypeName","src":"952:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"944:26:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47315,"name":"uint64","nodeType":"ElementaryTypeName","src":"963:6:73","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},"visibility":"internal"}],"name":"SubnetRegistryActorStorage","nameLocation":"78:26:73","scope":47319,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":73} \ No newline at end of file diff --git a/.out/MerkleTreeHelper.sol/MerkleTreeHelper.json b/.out/MerkleTreeHelper.sol/MerkleTreeHelper.json index d872e984b..ecd83e2c5 100644 --- a/.out/MerkleTreeHelper.sol/MerkleTreeHelper.json +++ b/.out/MerkleTreeHelper.sol/MerkleTreeHelper.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220352bf8f47ecdc21ffdb1bf78866b57bd7e89e86ccaa4fc66fff78350dcd95c7a64736f6c63430008130033","sourceMap":"113:905:92:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220352bf8f47ecdc21ffdb1bf78866b57bd7e89e86ccaa4fc66fff78350dcd95c7a64736f6c63430008130033","sourceMap":"113:905:92:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/MerkleTreeHelper.sol\":\"MerkleTreeHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/murky/src/Merkle.sol\":{\"keccak256\":\"0x70e50a6d61ea806b5ba0c8ff76fadfa3e90e6dfecb6900b1c0492eac0309660f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cc1b02a6d11e029fe24d5d638ad891a3a2552aaef9d3a0918274b1496fcd74\",\"dweb:/ipfs/QmWsU7yXsyKATkfYb8g1jbPTbgGsCg9rk7bJ3ypCYxQixB\"]},\"lib/murky/src/common/MurkyBase.sol\":{\"keccak256\":\"0x5287741b2b215c9a11cc8482b419abde0625dfc3949d539c72ee498108842894\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://259e803b0811e404bba09237bce4ef42f2ff27dacaca770d1eb7c1afddbf762b\",\"dweb:/ipfs/QmWfbsHa1siBxDEqFmbnzUuZqyitFZHmDXo2vc4cVn4uJe\"]},\"test/helpers/MerkleTreeHelper.sol\":{\"keccak256\":\"0x6a69ba6eef506f0ef6b8ce5e97b517299f4212fe670cf7faf43040b4182e4017\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ab8c8c0357358c5daa50f80ea76b70c4d8faf238fb5c00f97cb74b4b853c4973\",\"dweb:/ipfs/QmdMxdGRMAZ9Haw3SSXeXMsAQ5KSpt76KvRd1HnfczQXAL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/MerkleTreeHelper.sol":"MerkleTreeHelper"},"libraries":{},"viaIR":true},"sources":{"lib/murky/src/Merkle.sol":{"keccak256":"0x70e50a6d61ea806b5ba0c8ff76fadfa3e90e6dfecb6900b1c0492eac0309660f","urls":["bzz-raw://b6cc1b02a6d11e029fe24d5d638ad891a3a2552aaef9d3a0918274b1496fcd74","dweb:/ipfs/QmWsU7yXsyKATkfYb8g1jbPTbgGsCg9rk7bJ3ypCYxQixB"],"license":"MIT"},"lib/murky/src/common/MurkyBase.sol":{"keccak256":"0x5287741b2b215c9a11cc8482b419abde0625dfc3949d539c72ee498108842894","urls":["bzz-raw://259e803b0811e404bba09237bce4ef42f2ff27dacaca770d1eb7c1afddbf762b","dweb:/ipfs/QmWfbsHa1siBxDEqFmbnzUuZqyitFZHmDXo2vc4cVn4uJe"],"license":"MIT"},"test/helpers/MerkleTreeHelper.sol":{"keccak256":"0x6a69ba6eef506f0ef6b8ce5e97b517299f4212fe670cf7faf43040b4182e4017","urls":["bzz-raw://ab8c8c0357358c5daa50f80ea76b70c4d8faf238fb5c00f97cb74b4b853c4973","dweb:/ipfs/QmdMxdGRMAZ9Haw3SSXeXMsAQ5KSpt76KvRd1HnfczQXAL"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/MerkleTreeHelper.sol","id":55698,"exportedSymbols":{"Merkle":[30565],"MerkleTreeHelper":[55697]},"nodeType":"SourceUnit","src":"46:973:92","nodes":[{"id":55553,"nodeType":"PragmaDirective","src":"46:23:92","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55555,"nodeType":"ImportDirective","src":"71:40:92","nodes":[],"absolutePath":"lib/murky/src/Merkle.sol","file":"murky/Merkle.sol","nameLocation":"-1:-1:-1","scope":55698,"sourceUnit":30566,"symbolAliases":[{"foreign":{"id":55554,"name":"Merkle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30565,"src":"79:6:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55697,"nodeType":"ContractDefinition","src":"113:905:92","nodes":[{"id":55696,"nodeType":"FunctionDefinition","src":"144:872:92","nodes":[],"body":{"id":55695,"nodeType":"Block","src":"303:713:92","nodes":[],"statements":[{"assignments":[55572],"declarations":[{"constant":false,"id":55572,"mutability":"mutable","name":"merkleTree","nameLocation":"320:10:92","nodeType":"VariableDeclaration","scope":55695,"src":"313:17:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"},"typeName":{"id":55571,"nodeType":"UserDefinedTypeName","pathNode":{"id":55570,"name":"Merkle","nameLocations":["313:6:92"],"nodeType":"IdentifierPath","referencedDeclaration":30565,"src":"313:6:92"},"referencedDeclaration":30565,"src":"313:6:92","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"visibility":"internal"}],"id":55577,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"333:10:92","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Merkle_$30565_$","typeString":"function () returns (contract Merkle)"},"typeName":{"id":55574,"nodeType":"UserDefinedTypeName","pathNode":{"id":55573,"name":"Merkle","nameLocations":["337:6:92"],"nodeType":"IdentifierPath","referencedDeclaration":30565,"src":"337:6:92"},"referencedDeclaration":30565,"src":"337:6:92","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}}},"id":55576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"333:12:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"nodeType":"VariableDeclarationStatement","src":"313:32:92"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55578,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55558,"src":"360:5:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"366:6:92","memberName":"length","nodeType":"MemberAccess","src":"360:12:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":55580,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55561,"src":"376:6:92","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"383:6:92","memberName":"length","nodeType":"MemberAccess","src":"376:13:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"360:29:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55588,"nodeType":"IfStatement","src":"356:93:92","trueBody":{"id":55587,"nodeType":"Block","src":"391:58:92","statements":[{"expression":{"arguments":[{"hexValue":"646966666572656e74206172726179206c656e67746873","id":55584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"412:25:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b282674a034e06933770e694db3cb4900413d26d110754c0a1dacbd8e888660","typeString":"literal_string \"different array lengths\""},"value":"different array lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b282674a034e06933770e694db3cb4900413d26d110754c0a1dacbd8e888660","typeString":"literal_string \"different array lengths\""}],"id":55583,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"405:6:92","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":55585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"405:33:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55586,"nodeType":"ExpressionStatement","src":"405:33:92"}]}},{"assignments":[55590],"declarations":[{"constant":false,"id":55590,"mutability":"mutable","name":"len","nameLocation":"466:3:92","nodeType":"VariableDeclaration","scope":55695,"src":"458:11:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55589,"name":"uint256","nodeType":"ElementaryTypeName","src":"458:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55593,"initialValue":{"expression":{"id":55591,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55558,"src":"472:5:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"478:6:92","memberName":"length","nodeType":"MemberAccess","src":"472:12:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"458:26:92"},{"assignments":[55595],"declarations":[{"constant":false,"id":55595,"mutability":"mutable","name":"root","nameLocation":"503:4:92","nodeType":"VariableDeclaration","scope":55695,"src":"495:12:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55594,"name":"bytes32","nodeType":"ElementaryTypeName","src":"495:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55596,"nodeType":"VariableDeclarationStatement","src":"495:12:92"},{"assignments":[55602],"declarations":[{"constant":false,"id":55602,"mutability":"mutable","name":"proofs","nameLocation":"536:6:92","nodeType":"VariableDeclaration","scope":55695,"src":"517:25:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":55599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"517:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55600,"nodeType":"ArrayTypeName","src":"517:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":55601,"nodeType":"ArrayTypeName","src":"517:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"id":55609,"initialValue":{"arguments":[{"id":55607,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55590,"src":"561:3:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"545:15:92","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory[] memory)"},"typeName":{"baseType":{"baseType":{"id":55603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"549:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55604,"nodeType":"ArrayTypeName","src":"549:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":55605,"nodeType":"ArrayTypeName","src":"549:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}}},"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"545:20:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"517:48:92"},{"assignments":[55614],"declarations":[{"constant":false,"id":55614,"mutability":"mutable","name":"data","nameLocation":"592:4:92","nodeType":"VariableDeclaration","scope":55695,"src":"575:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":55612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"575:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55613,"nodeType":"ArrayTypeName","src":"575:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":55620,"initialValue":{"arguments":[{"id":55618,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55590,"src":"613:3:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"599:13:92","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":55615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"603:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55616,"nodeType":"ArrayTypeName","src":"603:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":55619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"599:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"575:42:92"},{"body":{"id":55653,"nodeType":"Block","src":"661:102:92","statements":[{"expression":{"id":55651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55631,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55614,"src":"675:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":55633,"indexExpression":{"id":55632,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"680:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"675:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"id":55641,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55558,"src":"729:5:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55643,"indexExpression":{"id":55642,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"735:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"729:8:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":55644,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55561,"src":"739:6:92","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55646,"indexExpression":{"id":55645,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"746:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"739:9:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55639,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"718:3:92","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"722:6:92","memberName":"encode","nodeType":"MemberAccess","src":"718:10:92","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"718:31:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55638,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"708:9:92","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"708:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"695:5:92","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55635,"name":"bytes","nodeType":"ElementaryTypeName","src":"695:5:92","typeDescriptions":{}}},"id":55637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"701:6:92","memberName":"concat","nodeType":"MemberAccess","src":"695:12:92","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"695:56:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55634,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"685:9:92","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"685:67:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"675:77:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55652,"nodeType":"ExpressionStatement","src":"675:77:92"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55625,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"647:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55626,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55590,"src":"651:3:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"647:7:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55654,"initializationExpression":{"assignments":[55622],"declarations":[{"constant":false,"id":55622,"mutability":"mutable","name":"i","nameLocation":"640:1:92","nodeType":"VariableDeclaration","scope":55654,"src":"632:9:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55621,"name":"uint256","nodeType":"ElementaryTypeName","src":"632:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55624,"initialValue":{"hexValue":"30","id":55623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"644:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"632:13:92"},"loopExpression":{"expression":{"id":55629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"656:3:92","subExpression":{"id":55628,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"656:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55630,"nodeType":"ExpressionStatement","src":"656:3:92"},"nodeType":"ForStatement","src":"627:136:92"},{"expression":{"id":55660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55655,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55595,"src":"773:4:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55658,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55614,"src":"799:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":55656,"name":"merkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55572,"src":"780:10:92","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"id":55657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"791:7:92","memberName":"getRoot","nodeType":"MemberAccess","referencedDeclaration":30661,"src":"780:18:92","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory) pure external returns (bytes32)"}},"id":55659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"780:24:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"773:31:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55661,"nodeType":"ExpressionStatement","src":"773:31:92"},{"body":{"id":55689,"nodeType":"Block","src":"869:109:92","statements":[{"assignments":[55676],"declarations":[{"constant":false,"id":55676,"mutability":"mutable","name":"proof","nameLocation":"900:5:92","nodeType":"VariableDeclaration","scope":55689,"src":"883:22:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":55674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"883:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55675,"nodeType":"ArrayTypeName","src":"883:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":55682,"initialValue":{"arguments":[{"id":55679,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55614,"src":"928:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":55680,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55663,"src":"934:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55677,"name":"merkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55572,"src":"908:10:92","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"id":55678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"919:8:92","memberName":"getProof","nodeType":"MemberAccess","referencedDeclaration":30766,"src":"908:19:92","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,uint256) pure external returns (bytes32[] memory)"}},"id":55681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"908:28:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"883:53:92"},{"expression":{"id":55687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55683,"name":"proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55602,"src":"950:6:92","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"id":55685,"indexExpression":{"id":55684,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55663,"src":"957:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"950:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55686,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55676,"src":"962:5:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"950:17:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":55688,"nodeType":"ExpressionStatement","src":"950:17:92"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55666,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55663,"src":"855:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55667,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55590,"src":"859:3:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"855:7:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55690,"initializationExpression":{"assignments":[55663],"declarations":[{"constant":false,"id":55663,"mutability":"mutable","name":"i","nameLocation":"848:1:92","nodeType":"VariableDeclaration","scope":55690,"src":"840:9:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55662,"name":"uint256","nodeType":"ElementaryTypeName","src":"840:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55665,"initialValue":{"hexValue":"30","id":55664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"852:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"840:13:92"},"loopExpression":{"expression":{"id":55670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"864:3:92","subExpression":{"id":55669,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55663,"src":"864:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55671,"nodeType":"ExpressionStatement","src":"864:3:92"},"nodeType":"ForStatement","src":"835:143:92"},{"expression":{"components":[{"id":55691,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55595,"src":"996:4:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55692,"name":"proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55602,"src":"1002:6:92","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}}],"id":55693,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"995:14:92","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(bytes32,bytes32[] memory[] memory)"}},"functionReturnParameters":55569,"id":55694,"nodeType":"Return","src":"988:21:92"}]},"implemented":true,"kind":"function","modifiers":[],"name":"createMerkleProofsForValidators","nameLocation":"153:31:92","parameters":{"id":55562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55558,"mutability":"mutable","name":"addrs","nameLocation":"211:5:92","nodeType":"VariableDeclaration","scope":55696,"src":"194:22:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55556,"name":"address","nodeType":"ElementaryTypeName","src":"194:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55557,"nodeType":"ArrayTypeName","src":"194:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55561,"mutability":"mutable","name":"weight","nameLocation":"243:6:92","nodeType":"VariableDeclaration","scope":55696,"src":"226:23:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55559,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55560,"nodeType":"ArrayTypeName","src":"226:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"184:71:92"},"returnParameters":{"id":55569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55696,"src":"274:7:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55563,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55696,"src":"283:18:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":55565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55566,"nodeType":"ArrayTypeName","src":"283:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":55567,"nodeType":"ArrayTypeName","src":"283:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"273:29:92"},"scope":55697,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"MerkleTreeHelper","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[55697],"name":"MerkleTreeHelper","nameLocation":"121:16:92","scope":55698,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":92} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220352bf8f47ecdc21ffdb1bf78866b57bd7e89e86ccaa4fc66fff78350dcd95c7a64736f6c63430008130033","sourceMap":"113:905:95:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220352bf8f47ecdc21ffdb1bf78866b57bd7e89e86ccaa4fc66fff78350dcd95c7a64736f6c63430008130033","sourceMap":"113:905:95:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/MerkleTreeHelper.sol\":\"MerkleTreeHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/murky/src/Merkle.sol\":{\"keccak256\":\"0x70e50a6d61ea806b5ba0c8ff76fadfa3e90e6dfecb6900b1c0492eac0309660f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cc1b02a6d11e029fe24d5d638ad891a3a2552aaef9d3a0918274b1496fcd74\",\"dweb:/ipfs/QmWsU7yXsyKATkfYb8g1jbPTbgGsCg9rk7bJ3ypCYxQixB\"]},\"lib/murky/src/common/MurkyBase.sol\":{\"keccak256\":\"0x5287741b2b215c9a11cc8482b419abde0625dfc3949d539c72ee498108842894\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://259e803b0811e404bba09237bce4ef42f2ff27dacaca770d1eb7c1afddbf762b\",\"dweb:/ipfs/QmWfbsHa1siBxDEqFmbnzUuZqyitFZHmDXo2vc4cVn4uJe\"]},\"test/helpers/MerkleTreeHelper.sol\":{\"keccak256\":\"0x6a69ba6eef506f0ef6b8ce5e97b517299f4212fe670cf7faf43040b4182e4017\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ab8c8c0357358c5daa50f80ea76b70c4d8faf238fb5c00f97cb74b4b853c4973\",\"dweb:/ipfs/QmdMxdGRMAZ9Haw3SSXeXMsAQ5KSpt76KvRd1HnfczQXAL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/MerkleTreeHelper.sol":"MerkleTreeHelper"},"libraries":{},"viaIR":true},"sources":{"lib/murky/src/Merkle.sol":{"keccak256":"0x70e50a6d61ea806b5ba0c8ff76fadfa3e90e6dfecb6900b1c0492eac0309660f","urls":["bzz-raw://b6cc1b02a6d11e029fe24d5d638ad891a3a2552aaef9d3a0918274b1496fcd74","dweb:/ipfs/QmWsU7yXsyKATkfYb8g1jbPTbgGsCg9rk7bJ3ypCYxQixB"],"license":"MIT"},"lib/murky/src/common/MurkyBase.sol":{"keccak256":"0x5287741b2b215c9a11cc8482b419abde0625dfc3949d539c72ee498108842894","urls":["bzz-raw://259e803b0811e404bba09237bce4ef42f2ff27dacaca770d1eb7c1afddbf762b","dweb:/ipfs/QmWfbsHa1siBxDEqFmbnzUuZqyitFZHmDXo2vc4cVn4uJe"],"license":"MIT"},"test/helpers/MerkleTreeHelper.sol":{"keccak256":"0x6a69ba6eef506f0ef6b8ce5e97b517299f4212fe670cf7faf43040b4182e4017","urls":["bzz-raw://ab8c8c0357358c5daa50f80ea76b70c4d8faf238fb5c00f97cb74b4b853c4973","dweb:/ipfs/QmdMxdGRMAZ9Haw3SSXeXMsAQ5KSpt76KvRd1HnfczQXAL"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/MerkleTreeHelper.sol","id":55999,"exportedSymbols":{"Merkle":[30565],"MerkleTreeHelper":[55998]},"nodeType":"SourceUnit","src":"46:973:95","nodes":[{"id":55854,"nodeType":"PragmaDirective","src":"46:23:95","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55856,"nodeType":"ImportDirective","src":"71:40:95","nodes":[],"absolutePath":"lib/murky/src/Merkle.sol","file":"murky/Merkle.sol","nameLocation":"-1:-1:-1","scope":55999,"sourceUnit":30566,"symbolAliases":[{"foreign":{"id":55855,"name":"Merkle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30565,"src":"79:6:95","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55998,"nodeType":"ContractDefinition","src":"113:905:95","nodes":[{"id":55997,"nodeType":"FunctionDefinition","src":"144:872:95","nodes":[],"body":{"id":55996,"nodeType":"Block","src":"303:713:95","nodes":[],"statements":[{"assignments":[55873],"declarations":[{"constant":false,"id":55873,"mutability":"mutable","name":"merkleTree","nameLocation":"320:10:95","nodeType":"VariableDeclaration","scope":55996,"src":"313:17:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"},"typeName":{"id":55872,"nodeType":"UserDefinedTypeName","pathNode":{"id":55871,"name":"Merkle","nameLocations":["313:6:95"],"nodeType":"IdentifierPath","referencedDeclaration":30565,"src":"313:6:95"},"referencedDeclaration":30565,"src":"313:6:95","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"visibility":"internal"}],"id":55878,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"333:10:95","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Merkle_$30565_$","typeString":"function () returns (contract Merkle)"},"typeName":{"id":55875,"nodeType":"UserDefinedTypeName","pathNode":{"id":55874,"name":"Merkle","nameLocations":["337:6:95"],"nodeType":"IdentifierPath","referencedDeclaration":30565,"src":"337:6:95"},"referencedDeclaration":30565,"src":"337:6:95","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}}},"id":55877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"333:12:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"nodeType":"VariableDeclarationStatement","src":"313:32:95"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55879,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55859,"src":"360:5:95","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"366:6:95","memberName":"length","nodeType":"MemberAccess","src":"360:12:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":55881,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55862,"src":"376:6:95","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"383:6:95","memberName":"length","nodeType":"MemberAccess","src":"376:13:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"360:29:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55889,"nodeType":"IfStatement","src":"356:93:95","trueBody":{"id":55888,"nodeType":"Block","src":"391:58:95","statements":[{"expression":{"arguments":[{"hexValue":"646966666572656e74206172726179206c656e67746873","id":55885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"412:25:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b282674a034e06933770e694db3cb4900413d26d110754c0a1dacbd8e888660","typeString":"literal_string \"different array lengths\""},"value":"different array lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b282674a034e06933770e694db3cb4900413d26d110754c0a1dacbd8e888660","typeString":"literal_string \"different array lengths\""}],"id":55884,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"405:6:95","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":55886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"405:33:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55887,"nodeType":"ExpressionStatement","src":"405:33:95"}]}},{"assignments":[55891],"declarations":[{"constant":false,"id":55891,"mutability":"mutable","name":"len","nameLocation":"466:3:95","nodeType":"VariableDeclaration","scope":55996,"src":"458:11:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55890,"name":"uint256","nodeType":"ElementaryTypeName","src":"458:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55894,"initialValue":{"expression":{"id":55892,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55859,"src":"472:5:95","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"478:6:95","memberName":"length","nodeType":"MemberAccess","src":"472:12:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"458:26:95"},{"assignments":[55896],"declarations":[{"constant":false,"id":55896,"mutability":"mutable","name":"root","nameLocation":"503:4:95","nodeType":"VariableDeclaration","scope":55996,"src":"495:12:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"495:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55897,"nodeType":"VariableDeclarationStatement","src":"495:12:95"},{"assignments":[55903],"declarations":[{"constant":false,"id":55903,"mutability":"mutable","name":"proofs","nameLocation":"536:6:95","nodeType":"VariableDeclaration","scope":55996,"src":"517:25:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":55900,"name":"bytes32","nodeType":"ElementaryTypeName","src":"517:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55901,"nodeType":"ArrayTypeName","src":"517:9:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":55902,"nodeType":"ArrayTypeName","src":"517:11:95","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"id":55910,"initialValue":{"arguments":[{"id":55908,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55891,"src":"561:3:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"545:15:95","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory[] memory)"},"typeName":{"baseType":{"baseType":{"id":55904,"name":"bytes32","nodeType":"ElementaryTypeName","src":"549:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55905,"nodeType":"ArrayTypeName","src":"549:9:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":55906,"nodeType":"ArrayTypeName","src":"549:11:95","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}}},"id":55909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"545:20:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"517:48:95"},{"assignments":[55915],"declarations":[{"constant":false,"id":55915,"mutability":"mutable","name":"data","nameLocation":"592:4:95","nodeType":"VariableDeclaration","scope":55996,"src":"575:21:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":55913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"575:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55914,"nodeType":"ArrayTypeName","src":"575:9:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":55921,"initialValue":{"arguments":[{"id":55919,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55891,"src":"613:3:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"599:13:95","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":55916,"name":"bytes32","nodeType":"ElementaryTypeName","src":"603:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55917,"nodeType":"ArrayTypeName","src":"603:9:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":55920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"599:18:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"575:42:95"},{"body":{"id":55954,"nodeType":"Block","src":"661:102:95","statements":[{"expression":{"id":55952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55932,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55915,"src":"675:4:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":55934,"indexExpression":{"id":55933,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55923,"src":"680:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"675:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"id":55942,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55859,"src":"729:5:95","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55944,"indexExpression":{"id":55943,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55923,"src":"735:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"729:8:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":55945,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55862,"src":"739:6:95","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55947,"indexExpression":{"id":55946,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55923,"src":"746:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"739:9:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55940,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"718:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"722:6:95","memberName":"encode","nodeType":"MemberAccess","src":"718:10:95","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"718:31:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55939,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"708:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"708:42:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"695:5:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55936,"name":"bytes","nodeType":"ElementaryTypeName","src":"695:5:95","typeDescriptions":{}}},"id":55938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"701:6:95","memberName":"concat","nodeType":"MemberAccess","src":"695:12:95","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"695:56:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55935,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"685:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"685:67:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"675:77:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55953,"nodeType":"ExpressionStatement","src":"675:77:95"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55926,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55923,"src":"647:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55927,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55891,"src":"651:3:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"647:7:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55955,"initializationExpression":{"assignments":[55923],"declarations":[{"constant":false,"id":55923,"mutability":"mutable","name":"i","nameLocation":"640:1:95","nodeType":"VariableDeclaration","scope":55955,"src":"632:9:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55922,"name":"uint256","nodeType":"ElementaryTypeName","src":"632:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55925,"initialValue":{"hexValue":"30","id":55924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"644:1:95","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"632:13:95"},"loopExpression":{"expression":{"id":55930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"656:3:95","subExpression":{"id":55929,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55923,"src":"656:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55931,"nodeType":"ExpressionStatement","src":"656:3:95"},"nodeType":"ForStatement","src":"627:136:95"},{"expression":{"id":55961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55956,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55896,"src":"773:4:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55959,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55915,"src":"799:4:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":55957,"name":"merkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55873,"src":"780:10:95","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"id":55958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"791:7:95","memberName":"getRoot","nodeType":"MemberAccess","referencedDeclaration":30661,"src":"780:18:95","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory) pure external returns (bytes32)"}},"id":55960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"780:24:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"773:31:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55962,"nodeType":"ExpressionStatement","src":"773:31:95"},{"body":{"id":55990,"nodeType":"Block","src":"869:109:95","statements":[{"assignments":[55977],"declarations":[{"constant":false,"id":55977,"mutability":"mutable","name":"proof","nameLocation":"900:5:95","nodeType":"VariableDeclaration","scope":55990,"src":"883:22:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":55975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"883:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55976,"nodeType":"ArrayTypeName","src":"883:9:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":55983,"initialValue":{"arguments":[{"id":55980,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55915,"src":"928:4:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":55981,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55964,"src":"934:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55978,"name":"merkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55873,"src":"908:10:95","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"id":55979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"919:8:95","memberName":"getProof","nodeType":"MemberAccess","referencedDeclaration":30766,"src":"908:19:95","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,uint256) pure external returns (bytes32[] memory)"}},"id":55982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"908:28:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"883:53:95"},{"expression":{"id":55988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55984,"name":"proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55903,"src":"950:6:95","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"id":55986,"indexExpression":{"id":55985,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55964,"src":"957:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"950:9:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55987,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55977,"src":"962:5:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"950:17:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":55989,"nodeType":"ExpressionStatement","src":"950:17:95"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55967,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55964,"src":"855:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55968,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55891,"src":"859:3:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"855:7:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55991,"initializationExpression":{"assignments":[55964],"declarations":[{"constant":false,"id":55964,"mutability":"mutable","name":"i","nameLocation":"848:1:95","nodeType":"VariableDeclaration","scope":55991,"src":"840:9:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55963,"name":"uint256","nodeType":"ElementaryTypeName","src":"840:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55966,"initialValue":{"hexValue":"30","id":55965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"852:1:95","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"840:13:95"},"loopExpression":{"expression":{"id":55971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"864:3:95","subExpression":{"id":55970,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55964,"src":"864:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55972,"nodeType":"ExpressionStatement","src":"864:3:95"},"nodeType":"ForStatement","src":"835:143:95"},{"expression":{"components":[{"id":55992,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55896,"src":"996:4:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55993,"name":"proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55903,"src":"1002:6:95","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}}],"id":55994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"995:14:95","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(bytes32,bytes32[] memory[] memory)"}},"functionReturnParameters":55870,"id":55995,"nodeType":"Return","src":"988:21:95"}]},"implemented":true,"kind":"function","modifiers":[],"name":"createMerkleProofsForValidators","nameLocation":"153:31:95","parameters":{"id":55863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55859,"mutability":"mutable","name":"addrs","nameLocation":"211:5:95","nodeType":"VariableDeclaration","scope":55997,"src":"194:22:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55857,"name":"address","nodeType":"ElementaryTypeName","src":"194:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55858,"nodeType":"ArrayTypeName","src":"194:9:95","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55862,"mutability":"mutable","name":"weight","nameLocation":"243:6:95","nodeType":"VariableDeclaration","scope":55997,"src":"226:23:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55860,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55861,"nodeType":"ArrayTypeName","src":"226:9:95","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"184:71:95"},"returnParameters":{"id":55870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55997,"src":"274:7:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55869,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55997,"src":"283:18:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":55866,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55867,"nodeType":"ArrayTypeName","src":"283:9:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":55868,"nodeType":"ArrayTypeName","src":"283:11:95","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"273:29:95"},"scope":55998,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"MerkleTreeHelper","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[55998],"name":"MerkleTreeHelper","nameLocation":"121:16:95","scope":55999,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":95} \ No newline at end of file diff --git a/.out/NumberContractFacetEight.sol/NumberContractFacetEight.json b/.out/NumberContractFacetEight.sol/NumberContractFacetEight.json index 3b3c47bb5..08a137a0c 100644 --- a/.out/NumberContractFacetEight.sol/NumberContractFacetEight.json +++ b/.out/NumberContractFacetEight.sol/NumberContractFacetEight.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea26469706673582212201e2b77add86e683bc6fcf879b925b5eda589ab4ba9404553e5565fe03ccf8e1164736f6c63430008130033","sourceMap":"71:115:93:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea26469706673582212201e2b77add86e683bc6fcf879b925b5eda589ab4ba9404553e5565fe03ccf8e1164736f6c63430008130033","sourceMap":"71:115:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;176:1;71:115;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getNum()":"67e0badb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getNum\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/NumberContractFacetEight.sol\":\"NumberContractFacetEight\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/helpers/NumberContractFacetEight.sol\":{\"keccak256\":\"0x7fa01b87926c803719676edde6049bc7779ab9810cc7861293bedabd67c25119\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://60d30c58bc722e669470924d234e38fdca0738f1af558016998d57b076078f13\",\"dweb:/ipfs/QmZw27paVCwTJcxcwSFJPKhbMSpUDfca3dJtnZimYfsfGc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getNum","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/NumberContractFacetEight.sol":"NumberContractFacetEight"},"libraries":{},"viaIR":true},"sources":{"test/helpers/NumberContractFacetEight.sol":{"keccak256":"0x7fa01b87926c803719676edde6049bc7779ab9810cc7861293bedabd67c25119","urls":["bzz-raw://60d30c58bc722e669470924d234e38fdca0738f1af558016998d57b076078f13","dweb:/ipfs/QmZw27paVCwTJcxcwSFJPKhbMSpUDfca3dJtnZimYfsfGc"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/NumberContractFacetEight.sol","id":55709,"exportedSymbols":{"NumberContractFacetEight":[55708]},"nodeType":"SourceUnit","src":"46:141:93","nodes":[{"id":55699,"nodeType":"PragmaDirective","src":"46:23:93","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55708,"nodeType":"ContractDefinition","src":"71:115:93","nodes":[{"id":55707,"nodeType":"FunctionDefinition","src":"111:73:93","nodes":[],"body":{"id":55706,"nodeType":"Block","src":"159:25:93","nodes":[],"statements":[{"expression":{"hexValue":"38","id":55704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:93","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"functionReturnParameters":55703,"id":55705,"nodeType":"Return","src":"169:8:93"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:93","parameters":{"id":55700,"nodeType":"ParameterList","parameters":[],"src":"126:2:93"},"returnParameters":{"id":55703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55707,"src":"152:5:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55701,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:93","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:93"},"scope":55708,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetEight","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55708],"name":"NumberContractFacetEight","nameLocation":"80:24:93","scope":55709,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":93} \ No newline at end of file +{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea26469706673582212201e2b77add86e683bc6fcf879b925b5eda589ab4ba9404553e5565fe03ccf8e1164736f6c63430008130033","sourceMap":"71:115:96:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea26469706673582212201e2b77add86e683bc6fcf879b925b5eda589ab4ba9404553e5565fe03ccf8e1164736f6c63430008130033","sourceMap":"71:115:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;176:1;71:115;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getNum()":"67e0badb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getNum\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/NumberContractFacetEight.sol\":\"NumberContractFacetEight\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/helpers/NumberContractFacetEight.sol\":{\"keccak256\":\"0x7fa01b87926c803719676edde6049bc7779ab9810cc7861293bedabd67c25119\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://60d30c58bc722e669470924d234e38fdca0738f1af558016998d57b076078f13\",\"dweb:/ipfs/QmZw27paVCwTJcxcwSFJPKhbMSpUDfca3dJtnZimYfsfGc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getNum","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/NumberContractFacetEight.sol":"NumberContractFacetEight"},"libraries":{},"viaIR":true},"sources":{"test/helpers/NumberContractFacetEight.sol":{"keccak256":"0x7fa01b87926c803719676edde6049bc7779ab9810cc7861293bedabd67c25119","urls":["bzz-raw://60d30c58bc722e669470924d234e38fdca0738f1af558016998d57b076078f13","dweb:/ipfs/QmZw27paVCwTJcxcwSFJPKhbMSpUDfca3dJtnZimYfsfGc"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/NumberContractFacetEight.sol","id":56010,"exportedSymbols":{"NumberContractFacetEight":[56009]},"nodeType":"SourceUnit","src":"46:141:96","nodes":[{"id":56000,"nodeType":"PragmaDirective","src":"46:23:96","nodes":[],"literals":["solidity","0.8",".19"]},{"id":56009,"nodeType":"ContractDefinition","src":"71:115:96","nodes":[{"id":56008,"nodeType":"FunctionDefinition","src":"111:73:96","nodes":[],"body":{"id":56007,"nodeType":"Block","src":"159:25:96","nodes":[],"statements":[{"expression":{"hexValue":"38","id":56005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:96","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"functionReturnParameters":56004,"id":56006,"nodeType":"Return","src":"169:8:96"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:96","parameters":{"id":56001,"nodeType":"ParameterList","parameters":[],"src":"126:2:96"},"returnParameters":{"id":56004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56008,"src":"152:5:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56002,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:96"},"scope":56009,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetEight","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56009],"name":"NumberContractFacetEight","nameLocation":"80:24:96","scope":56010,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":96} \ No newline at end of file diff --git a/.out/NumberContractFacetSeven.sol/NumberContractFacetSeven.json b/.out/NumberContractFacetSeven.sol/NumberContractFacetSeven.json index e487aec09..eb09c2952 100644 --- a/.out/NumberContractFacetSeven.sol/NumberContractFacetSeven.json +++ b/.out/NumberContractFacetSeven.sol/NumberContractFacetSeven.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea264697066735822122012b758307668768a143b4055ad8ea5dd9049a2e6a32e7553eccfa4668284d78f64736f6c63430008130033","sourceMap":"71:115:94:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea264697066735822122012b758307668768a143b4055ad8ea5dd9049a2e6a32e7553eccfa4668284d78f64736f6c63430008130033","sourceMap":"71:115:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;176:1;71:115;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getNum()":"67e0badb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getNum\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/NumberContractFacetSeven.sol\":\"NumberContractFacetSeven\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/helpers/NumberContractFacetSeven.sol\":{\"keccak256\":\"0x808fd96d4df08993b6bc788e3eaad7212949010b4377e5042a5bdb7f16d98075\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://93f533247f4b01b48bc503b6e97497f2e2c0e8a99deccf203a47d841aee4b571\",\"dweb:/ipfs/Qmc6vYXaNoGN1yJUZHmrTisq2aQ6qJ94Bs9R29covgFU4o\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getNum","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/NumberContractFacetSeven.sol":"NumberContractFacetSeven"},"libraries":{},"viaIR":true},"sources":{"test/helpers/NumberContractFacetSeven.sol":{"keccak256":"0x808fd96d4df08993b6bc788e3eaad7212949010b4377e5042a5bdb7f16d98075","urls":["bzz-raw://93f533247f4b01b48bc503b6e97497f2e2c0e8a99deccf203a47d841aee4b571","dweb:/ipfs/Qmc6vYXaNoGN1yJUZHmrTisq2aQ6qJ94Bs9R29covgFU4o"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/NumberContractFacetSeven.sol","id":55720,"exportedSymbols":{"NumberContractFacetSeven":[55719]},"nodeType":"SourceUnit","src":"46:141:94","nodes":[{"id":55710,"nodeType":"PragmaDirective","src":"46:23:94","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55719,"nodeType":"ContractDefinition","src":"71:115:94","nodes":[{"id":55718,"nodeType":"FunctionDefinition","src":"111:73:94","nodes":[],"body":{"id":55717,"nodeType":"Block","src":"159:25:94","nodes":[],"statements":[{"expression":{"hexValue":"37","id":55715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:94","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"functionReturnParameters":55714,"id":55716,"nodeType":"Return","src":"169:8:94"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:94","parameters":{"id":55711,"nodeType":"ParameterList","parameters":[],"src":"126:2:94"},"returnParameters":{"id":55714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55713,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55718,"src":"152:5:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55712,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:94","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:94"},"scope":55719,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetSeven","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55719],"name":"NumberContractFacetSeven","nameLocation":"80:24:94","scope":55720,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":94} \ No newline at end of file +{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea264697066735822122012b758307668768a143b4055ad8ea5dd9049a2e6a32e7553eccfa4668284d78f64736f6c63430008130033","sourceMap":"71:115:97:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea264697066735822122012b758307668768a143b4055ad8ea5dd9049a2e6a32e7553eccfa4668284d78f64736f6c63430008130033","sourceMap":"71:115:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;176:1;71:115;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getNum()":"67e0badb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getNum\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/NumberContractFacetSeven.sol\":\"NumberContractFacetSeven\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/helpers/NumberContractFacetSeven.sol\":{\"keccak256\":\"0x808fd96d4df08993b6bc788e3eaad7212949010b4377e5042a5bdb7f16d98075\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://93f533247f4b01b48bc503b6e97497f2e2c0e8a99deccf203a47d841aee4b571\",\"dweb:/ipfs/Qmc6vYXaNoGN1yJUZHmrTisq2aQ6qJ94Bs9R29covgFU4o\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getNum","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/NumberContractFacetSeven.sol":"NumberContractFacetSeven"},"libraries":{},"viaIR":true},"sources":{"test/helpers/NumberContractFacetSeven.sol":{"keccak256":"0x808fd96d4df08993b6bc788e3eaad7212949010b4377e5042a5bdb7f16d98075","urls":["bzz-raw://93f533247f4b01b48bc503b6e97497f2e2c0e8a99deccf203a47d841aee4b571","dweb:/ipfs/Qmc6vYXaNoGN1yJUZHmrTisq2aQ6qJ94Bs9R29covgFU4o"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/NumberContractFacetSeven.sol","id":56021,"exportedSymbols":{"NumberContractFacetSeven":[56020]},"nodeType":"SourceUnit","src":"46:141:97","nodes":[{"id":56011,"nodeType":"PragmaDirective","src":"46:23:97","nodes":[],"literals":["solidity","0.8",".19"]},{"id":56020,"nodeType":"ContractDefinition","src":"71:115:97","nodes":[{"id":56019,"nodeType":"FunctionDefinition","src":"111:73:97","nodes":[],"body":{"id":56018,"nodeType":"Block","src":"159:25:97","nodes":[],"statements":[{"expression":{"hexValue":"37","id":56016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:97","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"functionReturnParameters":56015,"id":56017,"nodeType":"Return","src":"169:8:97"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:97","parameters":{"id":56012,"nodeType":"ParameterList","parameters":[],"src":"126:2:97"},"returnParameters":{"id":56015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56019,"src":"152:5:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56013,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:97"},"scope":56020,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetSeven","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56020],"name":"NumberContractFacetSeven","nameLocation":"80:24:97","scope":56021,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":97} \ No newline at end of file diff --git a/.out/Quorum.sol/Quorum.json b/.out/Quorum.sol/Quorum.json index cdbb99dee..c22e6a93c 100644 --- a/.out/Quorum.sol/Quorum.json +++ b/.out/Quorum.sol/Quorum.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/Quorum.sol","id":50060,"exportedSymbols":{"EnumerableSet":[35815],"QuorumInfo":[50028],"QuorumMap":[50059],"QuorumObjKind":[50012]},"nodeType":"SourceUnit","src":"46:1783:82","nodes":[{"id":50007,"nodeType":"PragmaDirective","src":"46:23:82","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50009,"nodeType":"ImportDirective","src":"71:85:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":50060,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":50008,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"79:13:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50012,"nodeType":"EnumDefinition","src":"188:59:82","nodes":[],"canonicalName":"QuorumObjKind","members":[{"id":50010,"name":"Checkpoint","nameLocation":"213:10:82","nodeType":"EnumValue","src":"213:10:82"},{"id":50011,"name":"BottomUpMsgBatch","nameLocation":"229:16:82","nodeType":"EnumValue","src":"229:16:82"}],"name":"QuorumObjKind","nameLocation":"193:13:82"},{"id":50028,"nodeType":"StructDefinition","src":"292:482:82","nodes":[],"canonicalName":"QuorumInfo","members":[{"constant":false,"id":50015,"mutability":"mutable","name":"hash","nameLocation":"389:4:82","nodeType":"VariableDeclaration","scope":50028,"src":"381:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50014,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":50018,"mutability":"mutable","name":"rootHash","nameLocation":"508:8:82","nodeType":"VariableDeclaration","scope":50028,"src":"500:16:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"500:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":50021,"mutability":"mutable","name":"threshold","nameLocation":"608:9:82","nodeType":"VariableDeclaration","scope":50028,"src":"600:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50020,"name":"uint256","nodeType":"ElementaryTypeName","src":"600:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50024,"mutability":"mutable","name":"currentWeight","nameLocation":"682:13:82","nodeType":"VariableDeclaration","scope":50028,"src":"674:21:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50023,"name":"uint256","nodeType":"ElementaryTypeName","src":"674:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50027,"mutability":"mutable","name":"reached","nameLocation":"764:7:82","nodeType":"VariableDeclaration","scope":50028,"src":"759:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50026,"name":"bool","nodeType":"ElementaryTypeName","src":"759:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"QuorumInfo","nameLocation":"299:10:82","scope":50060,"visibility":"public"},{"id":50059,"nodeType":"StructDefinition","src":"835:993:82","nodes":[],"canonicalName":"QuorumMap","members":[{"constant":false,"id":50032,"mutability":"mutable","name":"quorumObjKind","nameLocation":"943:13:82","nodeType":"VariableDeclaration","scope":50059,"src":"929:27:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"typeName":{"id":50031,"nodeType":"UserDefinedTypeName","pathNode":{"id":50030,"name":"QuorumObjKind","nameLocations":["929:13:82"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"929:13:82"},"referencedDeclaration":50012,"src":"929:13:82","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":50035,"mutability":"mutable","name":"retentionHeight","nameLocation":"1253:15:82","nodeType":"VariableDeclaration","scope":50059,"src":"1245:23:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50034,"name":"uint256","nodeType":"ElementaryTypeName","src":"1245:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50041,"mutability":"mutable","name":"quorumInfo","nameLocation":"1363:10:82","nodeType":"VariableDeclaration","scope":50059,"src":"1332:41:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo)"},"typeName":{"id":50040,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50037,"name":"uint256","nodeType":"ElementaryTypeName","src":"1340:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1332:30:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50039,"nodeType":"UserDefinedTypeName","pathNode":{"id":50038,"name":"QuorumInfo","nameLocations":["1351:10:82"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"1351:10:82"},"referencedDeclaration":50028,"src":"1351:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}}},"visibility":"internal"},{"constant":false,"id":50045,"mutability":"mutable","name":"incompleteQuorums","nameLocation":"1504:17:82","nodeType":"VariableDeclaration","scope":50059,"src":"1482:39:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":50044,"nodeType":"UserDefinedTypeName","pathNode":{"id":50043,"name":"EnumerableSet.UintSet","nameLocations":["1482:13:82","1496:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"1482:21:82"},"referencedDeclaration":35685,"src":"1482:21:82","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":50051,"mutability":"mutable","name":"quorumSignatureSenders","nameLocation":"1668:22:82","nodeType":"VariableDeclaration","scope":50059,"src":"1623:67:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":50050,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50047,"name":"uint256","nodeType":"ElementaryTypeName","src":"1631:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1623:44:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50049,"nodeType":"UserDefinedTypeName","pathNode":{"id":50048,"name":"EnumerableSet.AddressSet","nameLocations":["1642:13:82","1656:10:82"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1642:24:82"},"referencedDeclaration":35528,"src":"1642:24:82","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":50058,"mutability":"mutable","name":"quorumSignatures","nameLocation":"1809:16:82","nodeType":"VariableDeclaration","scope":50059,"src":"1763:62:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes))"},"typeName":{"id":50057,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50053,"name":"uint256","nodeType":"ElementaryTypeName","src":"1771:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1763:45:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50056,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50054,"name":"address","nodeType":"ElementaryTypeName","src":"1790:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1782:25:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50055,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}}},"visibility":"internal"}],"name":"QuorumMap","nameLocation":"842:9:82","scope":50060,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":82} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/Quorum.sol","id":50013,"exportedSymbols":{"EnumerableSet":[35815],"QuorumInfo":[49981],"QuorumMap":[50012],"QuorumObjKind":[49965]},"nodeType":"SourceUnit","src":"46:1783:82","nodes":[{"id":49960,"nodeType":"PragmaDirective","src":"46:23:82","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49962,"nodeType":"ImportDirective","src":"71:85:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":50013,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":49961,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"79:13:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49965,"nodeType":"EnumDefinition","src":"188:59:82","nodes":[],"canonicalName":"QuorumObjKind","members":[{"id":49963,"name":"Checkpoint","nameLocation":"213:10:82","nodeType":"EnumValue","src":"213:10:82"},{"id":49964,"name":"BottomUpMsgBatch","nameLocation":"229:16:82","nodeType":"EnumValue","src":"229:16:82"}],"name":"QuorumObjKind","nameLocation":"193:13:82"},{"id":49981,"nodeType":"StructDefinition","src":"292:482:82","nodes":[],"canonicalName":"QuorumInfo","members":[{"constant":false,"id":49968,"mutability":"mutable","name":"hash","nameLocation":"389:4:82","nodeType":"VariableDeclaration","scope":49981,"src":"381:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49971,"mutability":"mutable","name":"rootHash","nameLocation":"508:8:82","nodeType":"VariableDeclaration","scope":49981,"src":"500:16:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"500:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49974,"mutability":"mutable","name":"threshold","nameLocation":"608:9:82","nodeType":"VariableDeclaration","scope":49981,"src":"600:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49973,"name":"uint256","nodeType":"ElementaryTypeName","src":"600:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49977,"mutability":"mutable","name":"currentWeight","nameLocation":"682:13:82","nodeType":"VariableDeclaration","scope":49981,"src":"674:21:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49976,"name":"uint256","nodeType":"ElementaryTypeName","src":"674:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49980,"mutability":"mutable","name":"reached","nameLocation":"764:7:82","nodeType":"VariableDeclaration","scope":49981,"src":"759:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49979,"name":"bool","nodeType":"ElementaryTypeName","src":"759:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"QuorumInfo","nameLocation":"299:10:82","scope":50013,"visibility":"public"},{"id":50012,"nodeType":"StructDefinition","src":"835:993:82","nodes":[],"canonicalName":"QuorumMap","members":[{"constant":false,"id":49985,"mutability":"mutable","name":"quorumObjKind","nameLocation":"943:13:82","nodeType":"VariableDeclaration","scope":50012,"src":"929:27:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"},"typeName":{"id":49984,"nodeType":"UserDefinedTypeName","pathNode":{"id":49983,"name":"QuorumObjKind","nameLocations":["929:13:82"],"nodeType":"IdentifierPath","referencedDeclaration":49965,"src":"929:13:82"},"referencedDeclaration":49965,"src":"929:13:82","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":49988,"mutability":"mutable","name":"retentionHeight","nameLocation":"1253:15:82","nodeType":"VariableDeclaration","scope":50012,"src":"1245:23:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49987,"name":"uint256","nodeType":"ElementaryTypeName","src":"1245:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49994,"mutability":"mutable","name":"quorumInfo","nameLocation":"1363:10:82","nodeType":"VariableDeclaration","scope":50012,"src":"1332:41:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$49981_storage_$","typeString":"mapping(uint256 => struct QuorumInfo)"},"typeName":{"id":49993,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49990,"name":"uint256","nodeType":"ElementaryTypeName","src":"1340:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1332:30:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$49981_storage_$","typeString":"mapping(uint256 => struct QuorumInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49992,"nodeType":"UserDefinedTypeName","pathNode":{"id":49991,"name":"QuorumInfo","nameLocations":["1351:10:82"],"nodeType":"IdentifierPath","referencedDeclaration":49981,"src":"1351:10:82"},"referencedDeclaration":49981,"src":"1351:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$49981_storage_ptr","typeString":"struct QuorumInfo"}}},"visibility":"internal"},{"constant":false,"id":49998,"mutability":"mutable","name":"incompleteQuorums","nameLocation":"1504:17:82","nodeType":"VariableDeclaration","scope":50012,"src":"1482:39:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":49997,"nodeType":"UserDefinedTypeName","pathNode":{"id":49996,"name":"EnumerableSet.UintSet","nameLocations":["1482:13:82","1496:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"1482:21:82"},"referencedDeclaration":35685,"src":"1482:21:82","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":50004,"mutability":"mutable","name":"quorumSignatureSenders","nameLocation":"1668:22:82","nodeType":"VariableDeclaration","scope":50012,"src":"1623:67:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":50003,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50000,"name":"uint256","nodeType":"ElementaryTypeName","src":"1631:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1623:44:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50002,"nodeType":"UserDefinedTypeName","pathNode":{"id":50001,"name":"EnumerableSet.AddressSet","nameLocations":["1642:13:82","1656:10:82"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1642:24:82"},"referencedDeclaration":35528,"src":"1642:24:82","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":50011,"mutability":"mutable","name":"quorumSignatures","nameLocation":"1809:16:82","nodeType":"VariableDeclaration","scope":50012,"src":"1763:62:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes))"},"typeName":{"id":50010,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50006,"name":"uint256","nodeType":"ElementaryTypeName","src":"1771:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1763:45:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50009,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50007,"name":"address","nodeType":"ElementaryTypeName","src":"1790:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1782:25:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50008,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}}},"visibility":"internal"}],"name":"QuorumMap","nameLocation":"842:9:82","scope":50013,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":82} \ No newline at end of file diff --git a/.out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json b/.out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json index b017f3cda..4767b3a11 100644 --- a/.out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json +++ b/.out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"newSubnetActor","inputs":[{"name":"_params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]}],"outputs":[{"name":"subnetAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"event","name":"SubnetDeployed","inputs":[{"name":"subnetAddr","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"WrongGateway","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657611ea9908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c63430008130033","sourceMap":"385:1527:86:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3984,"length":20}]}}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c63430008130033","sourceMap":"385:1527:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;385:1527:86;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;;;;;;;;;;477:1:68;247:48;385:1527:86;582:20:68;578:50;;477:1;247:48;477:1;865:22:86;385:1527;;865:22;385:1527;-1:-1:-1;;;;;385:1527:86;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;865:35;861:87;;385:1527;;;;;:::i;:::-;1022:1;385:1527;;;;;;;;;-1:-1:-1;385:1527:86;;;;;-1:-1:-1;;;;;385:1527:86;;;;:::i;:::-;;;;;1100:183;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1100:183;;385:1527;1084:199;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1022:1:86;385:1527;;;;-1:-1:-1;;;;;385:1527:86;;;;:::i;:::-;;;;;1360:185;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1360:185;;385:1527;1344:201;;;:::i;:::-;;;;;:::i;:::-;;385:1527;;1632:43;;;;;;-1:-1:-1;;;;;1632:43:86;;;;;;;;;;;385:1527;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;385:1527:86;;;;;;;1632:43;;;;;385:1527;;;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;:::i;:::-;;;;;;865:22;385:1527;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;;865:22;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;385:1527:86;;;;;;;;;-1:-1:-1;;;;;;385:1527:86;-1:-1:-1;385:1527:86;;-1:-1:-1;385:1527:86;;865:22;;385:1527;:::i;:::-;;;;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1022:1;385:1527;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;:::i;:::-;;;;;1632:43;;385:1527;1632:43;;;;;1752:10;385:1527;;;;1739:12;385:1527;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;-1:-1:-1;;;;;385:1527:86;;;;;;;;-1:-1:-1;;;;;477:1:68;385:1527:86;;;;;-1:-1:-1;;;;;385:1527:86;;;;;1752:10;385:1527;;;;;;;;1739:12;385:1527;;-1:-1:-1;;;;;385:1527:86;;;;;;;;;;;;;;;;;;;;;;1849:26;385:1527;;;;;;1849:26;385:1527;247:48:68;477:1;385:1527:86;;;;;;;;;;;;;;;865:22;385:1527;;1632:43;385:1527;;;;;;;;;;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;385:1527:86;;;;;;;;;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;;;;;477:1:68;385:1527:86;;;;;;1632:43;385:1527;;;;;;;;865:22;385:1527;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;861:87;385:1527;;-1:-1:-1;;;923:14:86;;385:1527;;923:14;578:50:68;-1:-1:-1;;;611:17:68;;385:1527:86;;611:17:68;385:1527:86;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;;:::o;:::-;;-1:-1:-1;385:1527:86;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;477:1:68;385:1527:86;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;385:1527:86;;;;;;:::o;:::-;;;-1:-1:-1;;;;;385:1527:86;;;;;;:::o","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3956,"length":20}]}}},"methodIdentifiers":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":"7be005d5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongGateway\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"name\":\"SubnetDeployed\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"newSubnetActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))\":{\"params\":{\"_params\":\"The constructor params for Subnet Actor Diamond.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SubnetDeployed(address)\":{\"notice\":\"Event emitted when a new subnet is deployed.\"}},\"kind\":\"user\",\"methods\":{\"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))\":{\"notice\":\"Deploys a new subnet actor.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnetregistry/RegisterSubnetFacet.sol\":\"RegisterSubnetFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"WrongGateway"},{"inputs":[{"internalType":"address","name":"subnetAddr","type":"address","indexed":false}],"type":"event","name":"SubnetDeployed","anonymous":false},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"_params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"newSubnetActor","outputs":[{"internalType":"address","name":"subnetAddr","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":{"params":{"_params":"The constructor params for Subnet Actor Diamond."}}},"version":1},"userdoc":{"kind":"user","methods":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":{"notice":"Deploys a new subnet actor."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnetregistry/RegisterSubnetFacet.sol":"RegisterSubnetFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","id":52280,"exportedSymbols":{"IDiamond":[40170],"ReentrancyGuard":[44013],"RegisterSubnetFacet":[52279],"SubnetActorDiamond":[36615],"SubnetRegistryActorStorage":[47365],"WrongGateway":[37518]},"nodeType":"SourceUnit","src":"46:1867:86","nodes":[{"id":52153,"nodeType":"PragmaDirective","src":"46:23:86","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52155,"nodeType":"ImportDirective","src":"71:52:86","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":52280,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52154,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"79:8:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52157,"nodeType":"ImportDirective","src":"124:61:86","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":52280,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52156,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"132:18:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52159,"nodeType":"ImportDirective","src":"186:79:86","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"../lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":52280,"sourceUnit":47366,"symbolAliases":[{"foreign":{"id":52158,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47365,"src":"194:26:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52161,"nodeType":"ImportDirective","src":"267:62:86","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":52280,"sourceUnit":44014,"symbolAliases":[{"foreign":{"id":52160,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44013,"src":"275:15:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52163,"nodeType":"ImportDirective","src":"330:53:86","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":52280,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":52162,"name":"WrongGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37518,"src":"338:12:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52279,"nodeType":"ContractDefinition","src":"385:1527:86","nodes":[{"id":52168,"nodeType":"VariableDeclaration","src":"439:37:86","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"475:1:86","scope":52279,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":52167,"nodeType":"UserDefinedTypeName","pathNode":{"id":52166,"name":"SubnetRegistryActorStorage","nameLocations":["439:26:86"],"nodeType":"IdentifierPath","referencedDeclaration":47365,"src":"439:26:86"},"referencedDeclaration":47365,"src":"439:26:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":52173,"nodeType":"EventDefinition","src":"544:41:86","nodes":[],"anonymous":false,"documentation":{"id":52169,"nodeType":"StructuredDocumentation","src":"483:56:86","text":"@notice Event emitted when a new subnet is deployed."},"eventSelector":"0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c965","name":"SubnetDeployed","nameLocation":"550:14:86","parameters":{"id":52172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52171,"indexed":false,"mutability":"mutable","name":"subnetAddr","nameLocation":"573:10:86","nodeType":"VariableDeclaration","scope":52173,"src":"565:18:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52170,"name":"address","nodeType":"ElementaryTypeName","src":"565:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"564:20:86"}},{"id":52278,"nodeType":"FunctionDefinition","src":"707:1203:86","nodes":[],"body":{"id":52277,"nodeType":"Block","src":"851:1059:86","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52184,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52177,"src":"865:7:86","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}},"id":52185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"873:14:86","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":36229,"src":"865:22:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":52186,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"891:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"893:7:86","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":47339,"src":"891:9:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"865:35:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52193,"nodeType":"IfStatement","src":"861:87:86","trueBody":{"id":52192,"nodeType":"Block","src":"902:46:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52189,"name":"WrongGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37518,"src":"923:12:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:14:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52191,"nodeType":"RevertStatement","src":"916:21:86"}]}},{"assignments":[52199],"declarations":[{"constant":false,"id":52199,"mutability":"mutable","name":"diamondCut","nameLocation":"985:10:86","nodeType":"VariableDeclaration","scope":52277,"src":"958:37:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52197,"nodeType":"UserDefinedTypeName","pathNode":{"id":52196,"name":"IDiamond.FacetCut","nameLocations":["958:8:86","967:8:86"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"958:17:86"},"referencedDeclaration":40159,"src":"958:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52198,"nodeType":"ArrayTypeName","src":"958:19:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52206,"initialValue":{"arguments":[{"hexValue":"32","id":52204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1022:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"998:23:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52201,"nodeType":"UserDefinedTypeName","pathNode":{"id":52200,"name":"IDiamond.FacetCut","nameLocations":["1002:8:86","1011:8:86"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1002:17:86"},"referencedDeclaration":40159,"src":"1002:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52202,"nodeType":"ArrayTypeName","src":"1002:19:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"998:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"958:66:86"},{"expression":{"id":52220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52207,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52199,"src":"1084:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52209,"indexExpression":{"hexValue":"30","id":52208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1084:13:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":52212,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1146:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1148:19:86","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47342,"src":"1146:21:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52214,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1189:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1198:14:86","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"1189:23:86","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1213:3:86","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"1189:27:86","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"expression":{"id":52217,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1249:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1251:21:86","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47348,"src":"1249:23:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52210,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1100:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1109:8:86","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"1100:17:86","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1132:12:86","1181:6:86","1230:17:86"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"1100:183:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"1084:199:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52221,"nodeType":"ExpressionStatement","src":"1084:199:86"},{"expression":{"id":52235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52222,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52199,"src":"1344:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52224,"indexExpression":{"hexValue":"31","id":52223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1355:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1344:13:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":52227,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1406:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1408:20:86","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47344,"src":"1406:22:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52229,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1450:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1459:14:86","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"1450:23:86","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1474:3:86","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"1450:27:86","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"expression":{"id":52232,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1510:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1512:22:86","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47352,"src":"1510:24:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52225,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1360:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1369:8:86","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"1360:17:86","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1392:12:86","1442:6:86","1491:17:86"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"1360:185:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"1344:201:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52236,"nodeType":"ExpressionStatement","src":"1344:201:86"},{"expression":{"id":52247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52237,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52182,"src":"1611:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52243,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52199,"src":"1655:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52244,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52177,"src":"1667:7:86","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}],"id":52242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1632:22:86","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52241,"nodeType":"UserDefinedTypeName","pathNode":{"id":52240,"name":"SubnetActorDiamond","nameLocations":["1636:18:86"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"1636:18:86"},"referencedDeclaration":36615,"src":"1636:18:86","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":52245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1632:43:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":52239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52238,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:86","typeDescriptions":{}}},"id":52246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:52:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1611:65:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52248,"nodeType":"ExpressionStatement","src":"1611:65:86"},{"expression":{"id":52254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1737:26:86","subExpression":{"baseExpression":{"expression":{"id":52249,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1739:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1741:10:86","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47364,"src":"1739:12:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52253,"indexExpression":{"expression":{"id":52251,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1752:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1756:6:86","memberName":"sender","nodeType":"MemberAccess","src":"1752:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1739:24:86","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":52255,"nodeType":"ExpressionStatement","src":"1737:26:86"},{"expression":{"id":52269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":52256,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1773:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1775:7:86","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":47359,"src":"1773:9:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":52266,"indexExpression":{"expression":{"id":52258,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1783:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1787:6:86","memberName":"sender","nodeType":"MemberAccess","src":"1783:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1773:21:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":52267,"indexExpression":{"baseExpression":{"expression":{"id":52260,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1795:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1797:10:86","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47364,"src":"1795:12:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52264,"indexExpression":{"expression":{"id":52262,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1808:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1812:6:86","memberName":"sender","nodeType":"MemberAccess","src":"1808:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1795:24:86","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1773:47:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52268,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52182,"src":"1823:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1773:60:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52270,"nodeType":"ExpressionStatement","src":"1773:60:86"},{"eventCall":{"arguments":[{"id":52272,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52182,"src":"1864:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52271,"name":"SubnetDeployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52173,"src":"1849:14:86","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":52273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52274,"nodeType":"EmitStatement","src":"1844:31:86"},{"expression":{"id":52275,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52182,"src":"1893:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52183,"id":52276,"nodeType":"Return","src":"1886:17:86"}]},"documentation":{"id":52174,"nodeType":"StructuredDocumentation","src":"591:111:86","text":"@notice Deploys a new subnet actor.\n @param _params The constructor params for Subnet Actor Diamond."},"functionSelector":"7be005d5","implemented":true,"kind":"function","modifiers":[{"id":52180,"kind":"modifierInvocation","modifierName":{"id":52179,"name":"nonReentrant","nameLocations":["809:12:86"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"809:12:86"},"nodeType":"ModifierInvocation","src":"809:12:86"}],"name":"newSubnetActor","nameLocation":"716:14:86","parameters":{"id":52178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52177,"mutability":"mutable","name":"_params","nameLocation":"786:7:86","nodeType":"VariableDeclaration","scope":52278,"src":"740:53:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52176,"nodeType":"UserDefinedTypeName","pathNode":{"id":52175,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["740:18:86","759:17:86"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"740:36:86"},"referencedDeclaration":36253,"src":"740:36:86","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"730:69:86"},"returnParameters":{"id":52183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52182,"mutability":"mutable","name":"subnetAddr","nameLocation":"839:10:86","nodeType":"VariableDeclaration","scope":52278,"src":"831:18:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52181,"name":"address","nodeType":"ElementaryTypeName","src":"831:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"830:20:86"},"scope":52279,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":52164,"name":"ReentrancyGuard","nameLocations":["417:15:86"],"nodeType":"IdentifierPath","referencedDeclaration":44013,"src":"417:15:86"},"id":52165,"nodeType":"InheritanceSpecifier","src":"417:15:86"}],"canonicalName":"RegisterSubnetFacet","contractDependencies":[36615],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52279,44013],"name":"RegisterSubnetFacet","nameLocation":"394:19:86","scope":52280,"usedErrors":[37518,43961]}],"license":"MIT OR Apache-2.0"},"id":86} \ No newline at end of file +{"abi":[{"type":"function","name":"newSubnetActor","inputs":[{"name":"_params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]}],"outputs":[{"name":"subnetAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"event","name":"SubnetDeployed","inputs":[{"name":"subnetAddr","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"WrongGateway","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657611ea9908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c63430008130033","sourceMap":"385:1527:89:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3984,"length":20}]}}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c63430008130033","sourceMap":"385:1527:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;385:1527:89;;;;;;;-1:-1:-1;;;;;385:1527:89;;;;;;;;;;;;;;;477:1:68;247:48;385:1527:89;582:20:68;578:50;;477:1;247:48;477:1;865:22:89;385:1527;;865:22;385:1527;-1:-1:-1;;;;;385:1527:89;;;;;;;;;;-1:-1:-1;;;;;385:1527:89;865:35;861:87;;385:1527;;;;;:::i;:::-;1022:1;385:1527;;;;;;;;;-1:-1:-1;385:1527:89;;;;;-1:-1:-1;;;;;385:1527:89;;;;:::i;:::-;;;;;1100:183;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1100:183;;385:1527;1084:199;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1022:1:89;385:1527;;;;-1:-1:-1;;;;;385:1527:89;;;;:::i;:::-;;;;;1360:185;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1360:185;;385:1527;1344:201;;;:::i;:::-;;;;;:::i;:::-;;385:1527;;1632:43;;;;;;-1:-1:-1;;;;;1632:43:89;;;;;;;;;;;385:1527;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;385:1527:89;;;;;;;1632:43;;;;;385:1527;;;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:89;;;;;:::i;:::-;;;;;;865:22;385:1527;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:89;;;;;;;865:22;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;385:1527:89;;;;;;;;;-1:-1:-1;;;;;;385:1527:89;-1:-1:-1;385:1527:89;;-1:-1:-1;385:1527:89;;865:22;;385:1527;:::i;:::-;;;;;;;;;;;477:1:68;385:1527:89;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:89;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;385:1527:89;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1022:1;385:1527;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:89;;;;;;:::i;:::-;;;;;1632:43;;385:1527;1632:43;;;;;1752:10;385:1527;;;;1739:12;385:1527;;;;;;;-1:-1:-1;;;;;385:1527:89;;;;-1:-1:-1;;;;;385:1527:89;;;;;;;;-1:-1:-1;;;;;477:1:68;385:1527:89;;;;;-1:-1:-1;;;;;385:1527:89;;;;;1752:10;385:1527;;;;;;;;1739:12;385:1527;;-1:-1:-1;;;;;385:1527:89;;;;;;;;;;;;;;;;;;;;;;1849:26;385:1527;;;;;;1849:26;385:1527;247:48:68;477:1;385:1527:89;;;;;;;;;;;;;;;865:22;385:1527;;1632:43;385:1527;;;;;;;;;;;;;;;;;477:1:68;385:1527:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;385:1527:89;;;;;;;;;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;385:1527:89;;;;;;;;;;;;;;;-1:-1:-1;;;;;;385:1527:89;;;;;;;;;;;;477:1:68;385:1527:89;;;;;;1632:43;385:1527;;;;;;;;865:22;385:1527;;;-1:-1:-1;;;;;;385:1527:89;;;;;;;;;;;;;-1:-1:-1;;;;;;385:1527:89;;;;;;;477:1:68;385:1527:89;;;;;;;;-1:-1:-1;;;;;;385:1527:89;;;;;;;;477:1:68;385:1527:89;;;;;;;;-1:-1:-1;;;;;;385:1527:89;;;;;;;;477:1:68;385:1527:89;;;;;;;;-1:-1:-1;;;;;;385:1527:89;;;;;;;;477:1:68;385:1527:89;;;;;;;;-1:-1:-1;;;;;;385:1527:89;;;;;;;;477:1:68;385:1527:89;;;;;;;;-1:-1:-1;;;;;;385:1527:89;;;;;;;;477:1:68;385:1527:89;;;;;;;;-1:-1:-1;;;;;;385:1527:89;;;;;;;;477:1:68;385:1527:89;;;;;;;;;;477:1:68;385:1527:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;385:1527:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;861:87;385:1527;;-1:-1:-1;;;923:14:89;;385:1527;;923:14;578:50:68;-1:-1:-1;;;611:17:68;;385:1527:89;;611:17:68;385:1527:89;;;;;;;-1:-1:-1;;;;;385:1527:89;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:89;;;;;;;:::o;:::-;;-1:-1:-1;385:1527:89;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;477:1:68;385:1527:89;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;385:1527:89;;;;;;:::o;:::-;;;-1:-1:-1;;;;;385:1527:89;;;;;;:::o","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3956,"length":20}]}}},"methodIdentifiers":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":"7be005d5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongGateway\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"name\":\"SubnetDeployed\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"newSubnetActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))\":{\"params\":{\"_params\":\"The constructor params for Subnet Actor Diamond.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SubnetDeployed(address)\":{\"notice\":\"Event emitted when a new subnet is deployed.\"}},\"kind\":\"user\",\"methods\":{\"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))\":{\"notice\":\"Deploys a new subnet actor.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnetregistry/RegisterSubnetFacet.sol\":\"RegisterSubnetFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"WrongGateway"},{"inputs":[{"internalType":"address","name":"subnetAddr","type":"address","indexed":false}],"type":"event","name":"SubnetDeployed","anonymous":false},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"_params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"newSubnetActor","outputs":[{"internalType":"address","name":"subnetAddr","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":{"params":{"_params":"The constructor params for Subnet Actor Diamond."}}},"version":1},"userdoc":{"kind":"user","methods":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":{"notice":"Deploys a new subnet actor."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnetregistry/RegisterSubnetFacet.sol":"RegisterSubnetFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","id":52287,"exportedSymbols":{"IDiamond":[40170],"ReentrancyGuard":[43966],"RegisterSubnetFacet":[52286],"SubnetActorDiamond":[36615],"SubnetRegistryActorStorage":[47318],"WrongGateway":[37518]},"nodeType":"SourceUnit","src":"46:1867:89","nodes":[{"id":52160,"nodeType":"PragmaDirective","src":"46:23:89","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52162,"nodeType":"ImportDirective","src":"71:52:89","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":52287,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52161,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"79:8:89","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52164,"nodeType":"ImportDirective","src":"124:61:89","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":52287,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52163,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"132:18:89","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52166,"nodeType":"ImportDirective","src":"186:79:89","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"../lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":52287,"sourceUnit":47319,"symbolAliases":[{"foreign":{"id":52165,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47318,"src":"194:26:89","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52168,"nodeType":"ImportDirective","src":"267:62:89","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":52287,"sourceUnit":43967,"symbolAliases":[{"foreign":{"id":52167,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43966,"src":"275:15:89","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52170,"nodeType":"ImportDirective","src":"330:53:89","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":52287,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":52169,"name":"WrongGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37518,"src":"338:12:89","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52286,"nodeType":"ContractDefinition","src":"385:1527:89","nodes":[{"id":52175,"nodeType":"VariableDeclaration","src":"439:37:89","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"475:1:89","scope":52286,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":52174,"nodeType":"UserDefinedTypeName","pathNode":{"id":52173,"name":"SubnetRegistryActorStorage","nameLocations":["439:26:89"],"nodeType":"IdentifierPath","referencedDeclaration":47318,"src":"439:26:89"},"referencedDeclaration":47318,"src":"439:26:89","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":52180,"nodeType":"EventDefinition","src":"544:41:89","nodes":[],"anonymous":false,"documentation":{"id":52176,"nodeType":"StructuredDocumentation","src":"483:56:89","text":"@notice Event emitted when a new subnet is deployed."},"eventSelector":"0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c965","name":"SubnetDeployed","nameLocation":"550:14:89","parameters":{"id":52179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52178,"indexed":false,"mutability":"mutable","name":"subnetAddr","nameLocation":"573:10:89","nodeType":"VariableDeclaration","scope":52180,"src":"565:18:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52177,"name":"address","nodeType":"ElementaryTypeName","src":"565:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"564:20:89"}},{"id":52285,"nodeType":"FunctionDefinition","src":"707:1203:89","nodes":[],"body":{"id":52284,"nodeType":"Block","src":"851:1059:89","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52191,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52184,"src":"865:7:89","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}},"id":52192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"873:14:89","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":36229,"src":"865:22:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":52193,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52175,"src":"891:1:89","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"893:7:89","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":47292,"src":"891:9:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"865:35:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52200,"nodeType":"IfStatement","src":"861:87:89","trueBody":{"id":52199,"nodeType":"Block","src":"902:46:89","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52196,"name":"WrongGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37518,"src":"923:12:89","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:14:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52198,"nodeType":"RevertStatement","src":"916:21:89"}]}},{"assignments":[52206],"declarations":[{"constant":false,"id":52206,"mutability":"mutable","name":"diamondCut","nameLocation":"985:10:89","nodeType":"VariableDeclaration","scope":52284,"src":"958:37:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52204,"nodeType":"UserDefinedTypeName","pathNode":{"id":52203,"name":"IDiamond.FacetCut","nameLocations":["958:8:89","967:8:89"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"958:17:89"},"referencedDeclaration":40159,"src":"958:17:89","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52205,"nodeType":"ArrayTypeName","src":"958:19:89","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52213,"initialValue":{"arguments":[{"hexValue":"32","id":52211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1022:1:89","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"998:23:89","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52208,"nodeType":"UserDefinedTypeName","pathNode":{"id":52207,"name":"IDiamond.FacetCut","nameLocations":["1002:8:89","1011:8:89"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1002:17:89"},"referencedDeclaration":40159,"src":"1002:17:89","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52209,"nodeType":"ArrayTypeName","src":"1002:19:89","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"998:26:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"958:66:89"},{"expression":{"id":52227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52214,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52206,"src":"1084:10:89","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52216,"indexExpression":{"hexValue":"30","id":52215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:1:89","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1084:13:89","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":52219,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52175,"src":"1146:1:89","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1148:19:89","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47295,"src":"1146:21:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52221,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1189:8:89","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1198:14:89","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"1189:23:89","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1213:3:89","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"1189:27:89","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"expression":{"id":52224,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52175,"src":"1249:1:89","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1251:21:89","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47301,"src":"1249:23:89","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52217,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1100:8:89","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1109:8:89","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"1100:17:89","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1132:12:89","1181:6:89","1230:17:89"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"1100:183:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"1084:199:89","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52228,"nodeType":"ExpressionStatement","src":"1084:199:89"},{"expression":{"id":52242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52229,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52206,"src":"1344:10:89","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52231,"indexExpression":{"hexValue":"31","id":52230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1355:1:89","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1344:13:89","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":52234,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52175,"src":"1406:1:89","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1408:20:89","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47297,"src":"1406:22:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52236,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1450:8:89","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1459:14:89","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"1450:23:89","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1474:3:89","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"1450:27:89","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"expression":{"id":52239,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52175,"src":"1510:1:89","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1512:22:89","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47305,"src":"1510:24:89","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52232,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1360:8:89","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1369:8:89","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"1360:17:89","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1392:12:89","1442:6:89","1491:17:89"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"1360:185:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"1344:201:89","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52243,"nodeType":"ExpressionStatement","src":"1344:201:89"},{"expression":{"id":52254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52244,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52189,"src":"1611:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52250,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52206,"src":"1655:10:89","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52251,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52184,"src":"1667:7:89","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}],"id":52249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1632:22:89","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52248,"nodeType":"UserDefinedTypeName","pathNode":{"id":52247,"name":"SubnetActorDiamond","nameLocations":["1636:18:89"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"1636:18:89"},"referencedDeclaration":36615,"src":"1636:18:89","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":52252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1632:43:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":52246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:89","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52245,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:89","typeDescriptions":{}}},"id":52253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:52:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1611:65:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52255,"nodeType":"ExpressionStatement","src":"1611:65:89"},{"expression":{"id":52261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1737:26:89","subExpression":{"baseExpression":{"expression":{"id":52256,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52175,"src":"1739:1:89","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1741:10:89","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47317,"src":"1739:12:89","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52260,"indexExpression":{"expression":{"id":52258,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1752:3:89","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1756:6:89","memberName":"sender","nodeType":"MemberAccess","src":"1752:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1739:24:89","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":52262,"nodeType":"ExpressionStatement","src":"1737:26:89"},{"expression":{"id":52276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":52263,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52175,"src":"1773:1:89","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1775:7:89","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":47312,"src":"1773:9:89","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":52273,"indexExpression":{"expression":{"id":52265,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1783:3:89","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1787:6:89","memberName":"sender","nodeType":"MemberAccess","src":"1783:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1773:21:89","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":52274,"indexExpression":{"baseExpression":{"expression":{"id":52267,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52175,"src":"1795:1:89","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1797:10:89","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47317,"src":"1795:12:89","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52271,"indexExpression":{"expression":{"id":52269,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1808:3:89","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1812:6:89","memberName":"sender","nodeType":"MemberAccess","src":"1808:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1795:24:89","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1773:47:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52275,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52189,"src":"1823:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1773:60:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52277,"nodeType":"ExpressionStatement","src":"1773:60:89"},{"eventCall":{"arguments":[{"id":52279,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52189,"src":"1864:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52278,"name":"SubnetDeployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52180,"src":"1849:14:89","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":52280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:26:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52281,"nodeType":"EmitStatement","src":"1844:31:89"},{"expression":{"id":52282,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52189,"src":"1893:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52190,"id":52283,"nodeType":"Return","src":"1886:17:89"}]},"documentation":{"id":52181,"nodeType":"StructuredDocumentation","src":"591:111:89","text":"@notice Deploys a new subnet actor.\n @param _params The constructor params for Subnet Actor Diamond."},"functionSelector":"7be005d5","implemented":true,"kind":"function","modifiers":[{"id":52187,"kind":"modifierInvocation","modifierName":{"id":52186,"name":"nonReentrant","nameLocations":["809:12:89"],"nodeType":"IdentifierPath","referencedDeclaration":43950,"src":"809:12:89"},"nodeType":"ModifierInvocation","src":"809:12:89"}],"name":"newSubnetActor","nameLocation":"716:14:89","parameters":{"id":52185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52184,"mutability":"mutable","name":"_params","nameLocation":"786:7:89","nodeType":"VariableDeclaration","scope":52285,"src":"740:53:89","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52183,"nodeType":"UserDefinedTypeName","pathNode":{"id":52182,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["740:18:89","759:17:89"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"740:36:89"},"referencedDeclaration":36253,"src":"740:36:89","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"730:69:89"},"returnParameters":{"id":52190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52189,"mutability":"mutable","name":"subnetAddr","nameLocation":"839:10:89","nodeType":"VariableDeclaration","scope":52285,"src":"831:18:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52188,"name":"address","nodeType":"ElementaryTypeName","src":"831:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"830:20:89"},"scope":52286,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":52171,"name":"ReentrancyGuard","nameLocations":["417:15:89"],"nodeType":"IdentifierPath","referencedDeclaration":43966,"src":"417:15:89"},"id":52172,"nodeType":"InheritanceSpecifier","src":"417:15:89"}],"canonicalName":"RegisterSubnetFacet","contractDependencies":[36615],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52286,43966],"name":"RegisterSubnetFacet","nameLocation":"394:19:89","scope":52287,"usedErrors":[37518,43914]}],"license":"MIT OR Apache-2.0"},"id":89} \ No newline at end of file diff --git a/.out/SelectorLibrary.sol/SelectorLibrary.json b/.out/SelectorLibrary.sol/SelectorLibrary.json index 2bc99123f..caada65cb 100644 --- a/.out/SelectorLibrary.sol/SelectorLibrary.json +++ b/.out/SelectorLibrary.sol/SelectorLibrary.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"resolveSelectors","inputs":[{"name":"facetName","type":"string","internalType":"string"}],"outputs":[{"name":"facetSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a576116ff9081610020823930815050f35b600080fdfe608080604052600436101561001357600080fd5b6000803560e01c6366e2898c1461002957600080fd5b602091826003193601126100ff576001600160401b036004358181116100e757366023820112156100e75780600401359182116100eb57610073601f8301601f1916860184610186565b81835236602483830101116100e7579183858361009c94602483970183860137830101526102c0565b60405192828493840190808552835180925280604086019401925b8281106100c657505050500390f35b83516001600160e01b031916855286955093810193928101926001016100b7565b8380fd5b634e487b7160e01b84526041600452602484fd5b5080fd5b608081019081106001600160401b0382111761011e57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761011e57604052565b61016081019081106001600160401b0382111761011e57604052565b60e081019081106001600160401b0382111761011e57604052565b90601f801991011681019081106001600160401b0382111761011e57604052565b9081519160005b8381106101bf575050016000815290565b80602080928401015181850152016101ae565b60405190606082018281106001600160401b0382111761011e576040526040825260006040836020808201520152565b90602090818382031261028e5782516001600160401b039384821161028e570181601f8201121561028e57805193841161011e578360051b906040519461024b85840187610186565b8552838086019282010192831161028e578301905b82821061026e575050505090565b81516001600160e01b03198116810361028e578152908301908301610260565b600080fd5b604051906102a082610103565b6060808352602080840152600160408401526367e0badb60e01b90830152565b6040805190602092838301836102d682846101a7565b03936102ea601f1995868101835282610186565b5190208251858101906d11d85d195dd85e511a585b5bdb9960921b8252600e815261031481610134565b519020146116ba5781518481019061033c8161033084866101a7565b03868101835282610186565b519020928251938585017114dd589b995d1058dd1bdc911a585b5bdb9960721b815260129586815261036d81610134565b519020146116aa578251858101906103958161038984876101a7565b03848101835282610186565b5190208351868101907414dd589b995d149959da5cdd1c9e511a585b5bdb99605a1b8252601581526103c681610134565b519020146116aa578251858101906103e28161038984876101a7565b5190208351868101906e111a585b5bdb9910dd5d119858d95d608a1b8252600f815261040d81610134565b51902014611670578251858101906104298161038984876101a7565b51902083518681019070111a585b5bdb99131bdd5c19519858d95d607a1b82526011815261045681610134565b519020146115ee578251858101906104728161038984876101a7565b5190208351868101907111d85d195dd85e51d95d1d195c919858d95d60721b825286815261049f81610134565b5190201461139e578251858101906104bb8161038984876101a7565b5190208351868101907211d85d195dd85e53585b9859d95c919858d95d606a1b8252601381526104ea81610134565b51902014611302578251858101906105068161038984876101a7565b5190208351868101907411d85d195dd85e53595cdcd95b99d95c919858d95d605a1b82526015815261053781610134565b519020146112ae578251858101906105538161038984876101a7565b5190208351868101907110da1958dadc1bda5b9d1a5b99d19858d95d60721b825286815261058081610134565b519020146112515782518581019061059c8161038984876101a7565b51902083518681019072109bdd1d1bdb555c149bdd5d195c919858d95d606a1b8252601381526105cb81610134565b519020146111f3578251858101906105e78161038984876101a7565b51902083518681019073151bdc111bdddb919a5b985b1a5d1e519858d95d60621b82526014815261061781610134565b51902014611192578251858101906106338161038984876101a7565b51902083518681019071161b995d13595cdcd859da5b99d19858d95d60721b825286815261066081610134565b519020146111585782518581019061067c8161038984876101a7565b5190208351868101907514dd589b995d1058dd1bdc91d95d1d195c919858d95d60521b8252601681526106ae81610134565b51902014610f16578251858101906106ca8161038984876101a7565b5190208351868101907f5375626e65744163746f724d616e61676572466163657400000000000000000082526017815261070381610134565b51902014610de35782518581019061071f8161038984876101a7565b51902083518681019072149959da5cdd195c94dd589b995d119858d95d606a1b82526013815261074e81610134565b51902014610da95782518581019061076a8161038984876101a7565b5190208351868101907014dd589b995d11d95d1d195c919858d95d607a1b82526011815261079781610134565b51902014610cef578251858101906107b38161038984876101a7565b5190208351868101907545524332305072657365744669786564537570706c7960501b8252601681526107e581610134565b51902014610bfd578251858101906108018161038984876101a7565b5190208351868101907f4e756d626572436f6e747261637446616365744569676874000000000000000082526018815261083a81610134565b51902014610be0578251858101906108568161038984876101a7565b5190208351868101907f4e756d626572436f6e74726163744661636574536576656e000000000000000082526018815261088f81610134565b51902014610be0578251858101906108ab8161038984876101a7565b5190208351868101906e53656c6563746f724c69627261727960881b8252600f81526108d681610134565b51902014610ba6578251858101906108f28161038984876101a7565b51902083518681019068546573745574696c7360b81b82526009815261091781610134565b51902014610b0a5761093f8351918261093388820180966101a7565b03908101835282610186565b5190208151848101907f5375626e65744163746f724d616e6167657246616365744d6f636b00000000008252601b815261097881610134565b519020146109b65760649350519162461bcd60e51b8352600483015260248201527114d95b1958dd1bdc881b9bdd08199bdd5b9960721b6044820152fd5b8092915051906102e08201918083106001600160401b0384111761011e578284526102c08082528282019283526014948201949094526310fd426160e01b6060820152634e71d92d60e01b608082015263ed7c4da160e01b60a082015263350a14bf60e01b60c082015263c7ebdaef60e01b60e0820152632643057b60e11b6101008201526330b858b160e11b6101208201526341c0e1b560e01b61014082015263d66d9e1960e01b610160820152638456cb5960e01b610180820152635c975abb60e01b6101a0820152625bfdf360e51b6101c08201526366783c9b60e01b6101e0820152636d2e84f760e11b610200820152633a4b66f160e01b6102208201526313408c9b60e11b61024082015263b9ee2bb960e01b610260820152631fa5d41d60e11b6102808201526305c2fbcf60e31b6102a082015263cc2dc2b960e01b930192909252610b0791610202565b90565b50508051610b0793925061016091610b218261014f565b61014080835284830194855260089183019190915263265f6a3560e21b60608301526315c9f71760e21b60808301526301d283df60e11b60a0830152631e8c229360e21b60c0830152637775600f60e11b60e083015263bc9e2bcf60e01b610100830152633db2bc2b60e21b610120830152632b9840d160e11b908201520190610202565b5050610b079291508060016080925191610bbf83610103565b606083528483019485528201526319b8a26360e21b60608201520190610202565b50505050610b0790610bf0610293565b8051810182019101610202565b50508092915051906102008201918083106001600160401b0384111761011e578284526101e0808252828201928352600d94820194909452636eb1769f60e11b606082015263095ea7b360e01b60808201526370a0823160e01b60a0820152630852cd8d60e31b60c082015263079cc67960e41b60e082015263313ce56760e01b61010082015263a457c2d760e01b610120820152633950935160e01b6101408201526306fdde0360e01b6101608201526395d89b4160e01b6101808201526318160ddd60e01b6101a082015263a9059cbb60e01b6101c08201526323b872dd60e01b930192909252610b0791610202565b50508092915051906101808201918083106001600160401b0384111761011e578284526101608082528282019283526009948201949094526342bf3cc160e01b6060820152630be0611160e01b6080820152631b0766c360e01b60a0820152630a372bf360e41b60c0820152630f5849d160e01b60e0820152639836b75f60e01b61010082015263030f605160e01b610120820152631163dca560e01b61014082015263a46d044d60e01b930192909252610b0791610202565b5050610b079291508060016080925191610dc283610103565b60608352848301948552820152637be005d560e01b60608201520190610202565b5050909181516102a08101928184106001600160401b0385111761011e57838152610280808352838301938452908201949094526310fd426160e01b6060820152634e71d92d60e01b608082015263ed7c4da160e01b60a0820152632643057b60e11b60c08201526330b858b160e11b60e08201526341c0e1b560e01b61010082015263d66d9e1960e01b610120820152638456cb5960e01b610140820152635c975abb60e01b610160820152625bfdf360e51b6101808201526366783c9b60e01b6101a0820152636d2e84f760e11b6101c0820152633a4b66f160e01b6101e08201526313408c9b60e11b61020082015263b9ee2bb960e01b610220820152631fa5d41d60e11b6102408201526305c2fbcf60e31b61026082015263cc2dc2b960e01b930192909252610b0791610202565b50508092915051906105008201918083106001600160401b0384111761011e578284526104e0808252828201928352602594820194909452633354c3e160e01b6060820152630d450b2360e21b60808201526306c4685360e01b60a0820152632593d53960e11b60c08201526325834a7160e11b60e08201526369e737fd60e01b610100820152638ef3f76160e01b610120820152633da3324160e01b610140820152630903e69360e41b61016082015263948628a960e01b610180820152636c97478960e11b6101a08201526363e6d3b160e11b6101c0820152634baa594f60e11b6101e08201526338a210b360e01b6102008201526380f7602160e01b610220820152631776451f60e21b61024082015263595e94af60e11b610260820152630d6eb59160e41b61028082015263332a5ac960e01b6102a0820152630acbdfbf60e11b6102c08201526352d182d160e01b6102e0820152630c825d9760e11b610300820152632bc31eb360e01b610320820152633dd5267760e21b6103408201526333f28a0960e21b610360820152631015428760e21b61038082015263d081be0360e01b6103a0820152631f3a0e4160e01b6103c0820152630396850760e51b6103e08201526328d5551d60e01b61040082015263599c7bd160e01b610420820152634f19de8160e11b6104408201526319c10a1f60e21b61046082015263c5ab224160e01b610480820152637867b64b60e11b6104a08201526356c0f26b60e11b6104c08201526380875df760e01b930192909252610b0791610202565b5050610b07929150806001608092519161117183610103565b6060835284830194855282015263c62eb4d560e01b60608201520190610202565b505080929150519060c08201918083106001600160401b0384111761011e5760038484610b07965260a08352838301938452820152630df1446160e01b60608201526304465a5d60e21b608082015260a063e49a547d60e01b910152610202565b5050610b0792915080600460e092519161120c8361016b565b60c0835284830194855282015263036c3ddf60e21b60608201526332e7661f821b6080820152630bed7615821b60a082015263bacc656d821b60c08201520190610202565b5050610b0792915080600460e092519161126a8361016b565b60c083528483019485528201526353b4e7bf821b60608201526347dc9b4f821b60808201526374303771821b60a082015263ac818379821b60c08201520190610202565b505080929150519060a08201918083106001600160401b0384111761011e5760028484610b079652608083528383019384528201526312df86db60e11b60608201526080631085ca2760e11b910152610202565b50508051610b07939250610160916113198261014f565b6101408083528483019485526008918301919091526316989f6f60e21b606083015263018f44b760e41b608083015263028bf0d560e11b60a08301526341c0e1b560e01b60c0830152637903ab2760e11b60e0830152636b2c1eef60e01b610100830152636c712ab960e11b6101208301526345f5448560e01b908201520190610202565b50508092915051906105208201918083106001600160401b0384111761011e57828452610500808252828201928352602694820194909452638789f83b60e01b60608201526306c4685360e01b60808201526316d2bca560e11b60a082015263dd81b5cf60e01b60c08201526369e737fd60e01b60e0820152630836d45d60e31b610100820152632472942560e01b610120820152639e530b5760e01b610140820152631951f35960e21b610160820152635cf72c2160e11b61018082015263a9294bdd60e01b6101a0820152630886016560e21b6101c0820152632ceacfdd60e21b6101e082015263ac12d76360e01b610200820152634aa8f8a560e01b610220820152636520eae760e11b61024082015263d6c5c39760e01b61026082015263544dddff60e01b6102808201526306ad21bb60e41b6102a082015263a517218f60e01b6102c0820152634b8213b360e11b6102e0820152631d9fb97d60e21b6103008201526319af5b1560e11b610320820152630b1ba49b60e41b61034082015263f322913160e01b610360820152630338150f60e01b6103808201526394074b0360e01b6103a0820152633f6f564960e11b6103c082015263032b960d60e11b6103e082015263c66c66a160e01b610400820152639d3070b560e01b610420820152635d02968560e01b61044082015263599c7bd160e01b6104608201526305aff0b360e01b610480820152631bad9e0560e11b6104a0820152638cfd78e760e01b6104c082015263017187cd60e11b6104e0820152631456ce2b60e31b930192909252610b0791610202565b50508092915051906101008201918083106001600160401b0384111761011e5782845260e08082528282019283526005948201949094526366ffd66360e11b60608201526314bbdacb60e21b60808201526356fe50af60e11b60a0820152637a0ed62760e01b60c08201526301ffc9a760e01b930192909252610b0791610202565b5050610b07929150806001608092519161168983610103565b606083528483019485528201526307e4c70760e21b60608201520190610202565b50505050610b0790610bf06101d2565b505050610b0790610bf06101d256fea26469706673582212205714a0c24abd829febe18a24a4d62047a53b6169e0550aacdadd07d455b3d08264736f6c63430008130033","sourceMap":"72:19523:95:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b6000803560e01c6366e2898c1461002957600080fd5b602091826003193601126100ff576001600160401b036004358181116100e757366023820112156100e75780600401359182116100eb57610073601f8301601f1916860184610186565b81835236602483830101116100e7579183858361009c94602483970183860137830101526102c0565b60405192828493840190808552835180925280604086019401925b8281106100c657505050500390f35b83516001600160e01b031916855286955093810193928101926001016100b7565b8380fd5b634e487b7160e01b84526041600452602484fd5b5080fd5b608081019081106001600160401b0382111761011e57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761011e57604052565b61016081019081106001600160401b0382111761011e57604052565b60e081019081106001600160401b0382111761011e57604052565b90601f801991011681019081106001600160401b0382111761011e57604052565b9081519160005b8381106101bf575050016000815290565b80602080928401015181850152016101ae565b60405190606082018281106001600160401b0382111761011e576040526040825260006040836020808201520152565b90602090818382031261028e5782516001600160401b039384821161028e570181601f8201121561028e57805193841161011e578360051b906040519461024b85840187610186565b8552838086019282010192831161028e578301905b82821061026e575050505090565b81516001600160e01b03198116810361028e578152908301908301610260565b600080fd5b604051906102a082610103565b6060808352602080840152600160408401526367e0badb60e01b90830152565b6040805190602092838301836102d682846101a7565b03936102ea601f1995868101835282610186565b5190208251858101906d11d85d195dd85e511a585b5bdb9960921b8252600e815261031481610134565b519020146116ba5781518481019061033c8161033084866101a7565b03868101835282610186565b519020928251938585017114dd589b995d1058dd1bdc911a585b5bdb9960721b815260129586815261036d81610134565b519020146116aa578251858101906103958161038984876101a7565b03848101835282610186565b5190208351868101907414dd589b995d149959da5cdd1c9e511a585b5bdb99605a1b8252601581526103c681610134565b519020146116aa578251858101906103e28161038984876101a7565b5190208351868101906e111a585b5bdb9910dd5d119858d95d608a1b8252600f815261040d81610134565b51902014611670578251858101906104298161038984876101a7565b51902083518681019070111a585b5bdb99131bdd5c19519858d95d607a1b82526011815261045681610134565b519020146115ee578251858101906104728161038984876101a7565b5190208351868101907111d85d195dd85e51d95d1d195c919858d95d60721b825286815261049f81610134565b5190201461139e578251858101906104bb8161038984876101a7565b5190208351868101907211d85d195dd85e53585b9859d95c919858d95d606a1b8252601381526104ea81610134565b51902014611302578251858101906105068161038984876101a7565b5190208351868101907411d85d195dd85e53595cdcd95b99d95c919858d95d605a1b82526015815261053781610134565b519020146112ae578251858101906105538161038984876101a7565b5190208351868101907110da1958dadc1bda5b9d1a5b99d19858d95d60721b825286815261058081610134565b519020146112515782518581019061059c8161038984876101a7565b51902083518681019072109bdd1d1bdb555c149bdd5d195c919858d95d606a1b8252601381526105cb81610134565b519020146111f3578251858101906105e78161038984876101a7565b51902083518681019073151bdc111bdddb919a5b985b1a5d1e519858d95d60621b82526014815261061781610134565b51902014611192578251858101906106338161038984876101a7565b51902083518681019071161b995d13595cdcd859da5b99d19858d95d60721b825286815261066081610134565b519020146111585782518581019061067c8161038984876101a7565b5190208351868101907514dd589b995d1058dd1bdc91d95d1d195c919858d95d60521b8252601681526106ae81610134565b51902014610f16578251858101906106ca8161038984876101a7565b5190208351868101907f5375626e65744163746f724d616e61676572466163657400000000000000000082526017815261070381610134565b51902014610de35782518581019061071f8161038984876101a7565b51902083518681019072149959da5cdd195c94dd589b995d119858d95d606a1b82526013815261074e81610134565b51902014610da95782518581019061076a8161038984876101a7565b5190208351868101907014dd589b995d11d95d1d195c919858d95d607a1b82526011815261079781610134565b51902014610cef578251858101906107b38161038984876101a7565b5190208351868101907545524332305072657365744669786564537570706c7960501b8252601681526107e581610134565b51902014610bfd578251858101906108018161038984876101a7565b5190208351868101907f4e756d626572436f6e747261637446616365744569676874000000000000000082526018815261083a81610134565b51902014610be0578251858101906108568161038984876101a7565b5190208351868101907f4e756d626572436f6e74726163744661636574536576656e000000000000000082526018815261088f81610134565b51902014610be0578251858101906108ab8161038984876101a7565b5190208351868101906e53656c6563746f724c69627261727960881b8252600f81526108d681610134565b51902014610ba6578251858101906108f28161038984876101a7565b51902083518681019068546573745574696c7360b81b82526009815261091781610134565b51902014610b0a5761093f8351918261093388820180966101a7565b03908101835282610186565b5190208151848101907f5375626e65744163746f724d616e6167657246616365744d6f636b00000000008252601b815261097881610134565b519020146109b65760649350519162461bcd60e51b8352600483015260248201527114d95b1958dd1bdc881b9bdd08199bdd5b9960721b6044820152fd5b8092915051906102e08201918083106001600160401b0384111761011e578284526102c08082528282019283526014948201949094526310fd426160e01b6060820152634e71d92d60e01b608082015263ed7c4da160e01b60a082015263350a14bf60e01b60c082015263c7ebdaef60e01b60e0820152632643057b60e11b6101008201526330b858b160e11b6101208201526341c0e1b560e01b61014082015263d66d9e1960e01b610160820152638456cb5960e01b610180820152635c975abb60e01b6101a0820152625bfdf360e51b6101c08201526366783c9b60e01b6101e0820152636d2e84f760e11b610200820152633a4b66f160e01b6102208201526313408c9b60e11b61024082015263b9ee2bb960e01b610260820152631fa5d41d60e11b6102808201526305c2fbcf60e31b6102a082015263cc2dc2b960e01b930192909252610b0791610202565b90565b50508051610b0793925061016091610b218261014f565b61014080835284830194855260089183019190915263265f6a3560e21b60608301526315c9f71760e21b60808301526301d283df60e11b60a0830152631e8c229360e21b60c0830152637775600f60e11b60e083015263bc9e2bcf60e01b610100830152633db2bc2b60e21b610120830152632b9840d160e11b908201520190610202565b5050610b079291508060016080925191610bbf83610103565b606083528483019485528201526319b8a26360e21b60608201520190610202565b50505050610b0790610bf0610293565b8051810182019101610202565b50508092915051906102008201918083106001600160401b0384111761011e578284526101e0808252828201928352600d94820194909452636eb1769f60e11b606082015263095ea7b360e01b60808201526370a0823160e01b60a0820152630852cd8d60e31b60c082015263079cc67960e41b60e082015263313ce56760e01b61010082015263a457c2d760e01b610120820152633950935160e01b6101408201526306fdde0360e01b6101608201526395d89b4160e01b6101808201526318160ddd60e01b6101a082015263a9059cbb60e01b6101c08201526323b872dd60e01b930192909252610b0791610202565b50508092915051906101808201918083106001600160401b0384111761011e578284526101608082528282019283526009948201949094526342bf3cc160e01b6060820152630be0611160e01b6080820152631b0766c360e01b60a0820152630a372bf360e41b60c0820152630f5849d160e01b60e0820152639836b75f60e01b61010082015263030f605160e01b610120820152631163dca560e01b61014082015263a46d044d60e01b930192909252610b0791610202565b5050610b079291508060016080925191610dc283610103565b60608352848301948552820152637be005d560e01b60608201520190610202565b5050909181516102a08101928184106001600160401b0385111761011e57838152610280808352838301938452908201949094526310fd426160e01b6060820152634e71d92d60e01b608082015263ed7c4da160e01b60a0820152632643057b60e11b60c08201526330b858b160e11b60e08201526341c0e1b560e01b61010082015263d66d9e1960e01b610120820152638456cb5960e01b610140820152635c975abb60e01b610160820152625bfdf360e51b6101808201526366783c9b60e01b6101a0820152636d2e84f760e11b6101c0820152633a4b66f160e01b6101e08201526313408c9b60e11b61020082015263b9ee2bb960e01b610220820152631fa5d41d60e11b6102408201526305c2fbcf60e31b61026082015263cc2dc2b960e01b930192909252610b0791610202565b50508092915051906105008201918083106001600160401b0384111761011e578284526104e0808252828201928352602594820194909452633354c3e160e01b6060820152630d450b2360e21b60808201526306c4685360e01b60a0820152632593d53960e11b60c08201526325834a7160e11b60e08201526369e737fd60e01b610100820152638ef3f76160e01b610120820152633da3324160e01b610140820152630903e69360e41b61016082015263948628a960e01b610180820152636c97478960e11b6101a08201526363e6d3b160e11b6101c0820152634baa594f60e11b6101e08201526338a210b360e01b6102008201526380f7602160e01b610220820152631776451f60e21b61024082015263595e94af60e11b610260820152630d6eb59160e41b61028082015263332a5ac960e01b6102a0820152630acbdfbf60e11b6102c08201526352d182d160e01b6102e0820152630c825d9760e11b610300820152632bc31eb360e01b610320820152633dd5267760e21b6103408201526333f28a0960e21b610360820152631015428760e21b61038082015263d081be0360e01b6103a0820152631f3a0e4160e01b6103c0820152630396850760e51b6103e08201526328d5551d60e01b61040082015263599c7bd160e01b610420820152634f19de8160e11b6104408201526319c10a1f60e21b61046082015263c5ab224160e01b610480820152637867b64b60e11b6104a08201526356c0f26b60e11b6104c08201526380875df760e01b930192909252610b0791610202565b5050610b07929150806001608092519161117183610103565b6060835284830194855282015263c62eb4d560e01b60608201520190610202565b505080929150519060c08201918083106001600160401b0384111761011e5760038484610b07965260a08352838301938452820152630df1446160e01b60608201526304465a5d60e21b608082015260a063e49a547d60e01b910152610202565b5050610b0792915080600460e092519161120c8361016b565b60c0835284830194855282015263036c3ddf60e21b60608201526332e7661f821b6080820152630bed7615821b60a082015263bacc656d821b60c08201520190610202565b5050610b0792915080600460e092519161126a8361016b565b60c083528483019485528201526353b4e7bf821b60608201526347dc9b4f821b60808201526374303771821b60a082015263ac818379821b60c08201520190610202565b505080929150519060a08201918083106001600160401b0384111761011e5760028484610b079652608083528383019384528201526312df86db60e11b60608201526080631085ca2760e11b910152610202565b50508051610b07939250610160916113198261014f565b6101408083528483019485526008918301919091526316989f6f60e21b606083015263018f44b760e41b608083015263028bf0d560e11b60a08301526341c0e1b560e01b60c0830152637903ab2760e11b60e0830152636b2c1eef60e01b610100830152636c712ab960e11b6101208301526345f5448560e01b908201520190610202565b50508092915051906105208201918083106001600160401b0384111761011e57828452610500808252828201928352602694820194909452638789f83b60e01b60608201526306c4685360e01b60808201526316d2bca560e11b60a082015263dd81b5cf60e01b60c08201526369e737fd60e01b60e0820152630836d45d60e31b610100820152632472942560e01b610120820152639e530b5760e01b610140820152631951f35960e21b610160820152635cf72c2160e11b61018082015263a9294bdd60e01b6101a0820152630886016560e21b6101c0820152632ceacfdd60e21b6101e082015263ac12d76360e01b610200820152634aa8f8a560e01b610220820152636520eae760e11b61024082015263d6c5c39760e01b61026082015263544dddff60e01b6102808201526306ad21bb60e41b6102a082015263a517218f60e01b6102c0820152634b8213b360e11b6102e0820152631d9fb97d60e21b6103008201526319af5b1560e11b610320820152630b1ba49b60e41b61034082015263f322913160e01b610360820152630338150f60e01b6103808201526394074b0360e01b6103a0820152633f6f564960e11b6103c082015263032b960d60e11b6103e082015263c66c66a160e01b610400820152639d3070b560e01b610420820152635d02968560e01b61044082015263599c7bd160e01b6104608201526305aff0b360e01b610480820152631bad9e0560e11b6104a0820152638cfd78e760e01b6104c082015263017187cd60e11b6104e0820152631456ce2b60e31b930192909252610b0791610202565b50508092915051906101008201918083106001600160401b0384111761011e5782845260e08082528282019283526005948201949094526366ffd66360e11b60608201526314bbdacb60e21b60808201526356fe50af60e11b60a0820152637a0ed62760e01b60c08201526301ffc9a760e01b930192909252610b0791610202565b5050610b07929150806001608092519161168983610103565b606083528483019485528201526307e4c70760e21b60608201520190610202565b50505050610b0790610bf06101d2565b505050610b0790610bf06101d256fea26469706673582212205714a0c24abd829febe18a24a4d62047a53b6169e0550aacdadd07d455b3d08264736f6c63430008130033","sourceMap":"72:19523:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;72:19523:95;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;72:19523:95;;;;;-1:-1:-1;72:19523:95;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;-1:-1:-1;72:19523:95;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;72:19523:95;;;;;;;;;;;;;;;;;-1:-1:-1;72:19523:95;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;:::o;102:19491::-;72:19523;;;230:27;;;;;;72:19523;;;;;:::i;:::-;230:27;72:19523;230:27;72:19523;;230:27;;;;;;;;:::i;:::-;72:19523;220:38;;72:19523;;272:34;;;72:19523;-1:-1:-1;;;72:19523:95;;272:34;;;;;;:::i;:::-;72:19523;262:45;;220:87;216:356;;72:19523;;595:27;;;72:19523;595:27;72:19523;;;;;:::i;:::-;595:27;;;;;;;;:::i;:::-;72:19523;585:38;;72:19523;;;637:38;;;;-1:-1:-1;;;72:19523:95;;;637:38;;;;;;;:::i;:::-;72:19523;627:49;;585:91;581:360;;72:19523;;964:27;;;72:19523;964:27;72:19523;;;;;:::i;:::-;964:27;;;;;;;;:::i;:::-;72:19523;954:38;;72:19523;;1006:41;;;72:19523;-1:-1:-1;;;72:19523:95;;1006:41;;;;;;:::i;:::-;72:19523;996:52;;954:94;950:363;;72:19523;;1336:27;;;72:19523;1336:27;72:19523;;;;;:::i;1336:27::-;72:19523;1326:38;;72:19523;;1378:35;;;72:19523;-1:-1:-1;;;72:19523:95;;1378:35;;;;;;:::i;:::-;72:19523;1368:46;;1326:88;1322:421;;72:19523;;1766:27;;;72:19523;1766:27;72:19523;;;;;:::i;1766:27::-;72:19523;1756:38;;72:19523;;1808:37;;;72:19523;-1:-1:-1;;;72:19523:95;;1808:37;;;;;;:::i;:::-;72:19523;1798:48;;1756:90;1752:679;;72:19523;;2454:27;;;72:19523;2454:27;72:19523;;;;;:::i;2454:27::-;72:19523;2444:38;;72:19523;;2496:38;;;72:19523;-1:-1:-1;;;72:19523:95;;2496:38;;;;;;:::i;:::-;72:19523;2486:49;;2444:91;2440:2792;;72:19523;;5255:27;;;72:19523;5255:27;72:19523;;;;;:::i;5255:27::-;72:19523;5245:38;;72:19523;;5297:39;;;72:19523;-1:-1:-1;;;72:19523:95;;5297:39;;;;;;:::i;:::-;72:19523;5287:50;;5245:92;5241:873;;72:19523;;6137:27;;;72:19523;6137:27;72:19523;;;;;:::i;6137:27::-;72:19523;6127:38;;72:19523;;6179:41;;;72:19523;-1:-1:-1;;;72:19523:95;;1006:41;6179;;;;;:::i;:::-;72:19523;6169:52;;6127:94;6123:491;;72:19523;;6637:27;;;72:19523;6637:27;72:19523;;;;;:::i;6637:27::-;72:19523;6627:38;;72:19523;;6679:38;;;72:19523;-1:-1:-1;;;72:19523:95;;6679:38;;;;;;:::i;:::-;72:19523;6669:49;;6627:91;6623:616;;72:19523;;7262:27;;;72:19523;7262:27;72:19523;;;;;:::i;7262:27::-;72:19523;7252:38;;72:19523;;7304:39;;;72:19523;-1:-1:-1;;;72:19523:95;;5297:39;7304;;;;;:::i;:::-;72:19523;7294:50;;7252:92;7248:617;;72:19523;;7888:27;;;72:19523;7888:27;72:19523;;;;;:::i;7888:27::-;72:19523;7878:38;;72:19523;;7930:40;;;72:19523;-1:-1:-1;;;72:19523:95;;;7930:40;;;;;:::i;:::-;72:19523;7920:51;;7878:93;7874:554;;72:19523;;8451:27;;;72:19523;8451:27;72:19523;;;;;:::i;8451:27::-;72:19523;8441:38;;72:19523;;8493:38;;;72:19523;-1:-1:-1;;;72:19523:95;;8493:38;;;;;;:::i;:::-;72:19523;8483:49;;8441:91;8437:424;;72:19523;;8884:27;;;72:19523;8884:27;72:19523;;;;;:::i;8884:27::-;72:19523;8874:38;;72:19523;;8926:42;;;72:19523;-1:-1:-1;;;72:19523:95;;8926:42;;;;;;:::i;:::-;72:19523;8916:53;;8874:95;8870:2732;;72:19523;;11625:27;;;72:19523;11625:27;72:19523;;;;;:::i;11625:27::-;72:19523;11615:38;;72:19523;;11667:43;;;72:19523;;;;11667:43;;;;;;:::i;:::-;72:19523;11657:54;;11615:96;11611:1517;;72:19523;;13151:27;;;72:19523;13151:27;72:19523;;;;;:::i;13151:27::-;72:19523;13141:38;;72:19523;;13193:39;;;72:19523;-1:-1:-1;;;72:19523:95;;5297:39;13193;;;;;:::i;:::-;72:19523;13183:50;;13141:92;13137:425;;72:19523;;13585:27;;;72:19523;13585:27;72:19523;;;;;:::i;13585:27::-;72:19523;13575:38;;72:19523;;13627:37;;;72:19523;-1:-1:-1;;;72:19523:95;;1808:37;13627;;;;;:::i;:::-;72:19523;13617:48;;13575:90;13571:935;;72:19523;;14529:27;;;72:19523;14529:27;72:19523;;;;;:::i;14529:27::-;72:19523;14519:38;;72:19523;;14571:42;;;72:19523;-1:-1:-1;;;72:19523:95;;8926:42;14571;;;;;:::i;:::-;72:19523;14561:53;;14519:95;14515:1196;;72:19523;;15734:27;;;72:19523;15734:27;72:19523;;;;;:::i;15734:27::-;72:19523;15724:38;;72:19523;;15776:44;;;72:19523;;;;15776:44;;;;;;:::i;:::-;72:19523;15766:55;;15724:97;15720:430;;72:19523;;16173:27;;;72:19523;16173:27;72:19523;;;;;:::i;16173:27::-;72:19523;16163:38;;72:19523;;16215:44;;;72:19523;;;;15776:44;16215;;;;;:::i;:::-;72:19523;16205:55;;16163:97;16159:430;;72:19523;;16612:27;;;72:19523;16612:27;72:19523;;;;;:::i;16612:27::-;72:19523;16602:38;;72:19523;;16654:35;;;72:19523;-1:-1:-1;;;72:19523:95;;1378:35;16654;;;;;:::i;:::-;72:19523;16644:46;;16602:88;16598:421;;72:19523;;17042:27;;;72:19523;17042:27;72:19523;;;;;:::i;17042:27::-;72:19523;17032:38;;72:19523;;17084:29;;;72:19523;-1:-1:-1;;;72:19523:95;;17084:29;;;;;;:::i;:::-;72:19523;17074:40;;17032:82;17028:863;;17914:27;72:19523;;17914:27;;72:19523;17914:27;;;72:19523;;;:::i;:::-;17914:27;;;;;;;;:::i;:::-;72:19523;17904:38;;72:19523;;17956:47;;;72:19523;;;;17956:47;;;;;;:::i;:::-;72:19523;17946:58;;17904:100;17900:1649;;72:19523;;;;19558:28;;;;;;;;;72:19523;;;;;-1:-1:-1;;;72:19523:95;;;;19558:28;17900:1649;72:19523;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;18043:1495;;;:::i;:::-;18020:1518;:::o;17028:863::-;-1:-1:-1;;72:19523:95;;17153:727;;72:19523;-1:-1:-1;72:19523:95;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;17153:727;;;:::i;16598:421::-;72:19523;;16729:279;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;16729:279;;;:::i;16159:430::-;72:19523;;;;16299:279;72:19523;;;:::i;:::-;;;16299:279;;;;;;;:::i;14515:1196::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;14653:1047;;;:::i;13571:935::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;13704:791;;;:::i;13137:425::-;72:19523;;13272:279;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;13272:279;;;:::i;11611:1517::-;72:19523;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;11750:1367;;;:::i;8870:2732::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;9008:2583;;;:::i;8437:424::-;72:19523;;8571:279;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;8571:279;;;:::i;7874:554::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;8010:407;72:19523;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8010:407;:::i;7248:617::-;72:19523;;7383:471;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7383:471;;;:::i;6623:616::-;72:19523;;6757:471;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6757:471;;;:::i;6123:491::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;6260:343;72:19523;;;;;;;;;;;;;;;;;;;;;;;;;;;;6260:343;:::i;5241:873::-;-1:-1:-1;;72:19523:95;;5376:727;;72:19523;-1:-1:-1;72:19523:95;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;5376:727;;;:::i;2440:2792::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;2574:2647;;;:::i;1752:679::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;1885:535;;;:::i;1322:421::-;72:19523;;1453:279;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1453:279;;;:::i;950:363::-;72:19523;;;;1087:215;72:19523;;;:::i;216:356::-;72:19523;;;346:215;72:19523;;;:::i","linkReferences":{}},"methodIdentifiers":{"resolveSelectors(string)":"66e2898c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"facetName\",\"type\":\"string\"}],\"name\":\"resolveSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"facetSelectors\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/SelectorLibrary.sol\":\"SelectorLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"facetName","type":"string"}],"stateMutability":"pure","type":"function","name":"resolveSelectors","outputs":[{"internalType":"bytes4[]","name":"facetSelectors","type":"bytes4[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/SelectorLibrary.sol":"SelectorLibrary"},"libraries":{},"viaIR":true},"sources":{"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/SelectorLibrary.sol","id":56264,"exportedSymbols":{"SelectorLibrary":[56263]},"nodeType":"SourceUnit","src":"46:19550:95","nodes":[{"id":55721,"nodeType":"PragmaDirective","src":"46:24:95","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":56263,"nodeType":"ContractDefinition","src":"72:19523:95","nodes":[{"id":56262,"nodeType":"FunctionDefinition","src":"102:19491:95","nodes":[],"body":{"id":56261,"nodeType":"Block","src":"206:19387:95","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55732,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"247:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55730,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"230:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"234:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"230:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"230:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55729,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"220:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"220:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794469616d6f6e64","id":55738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"289:16:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_7859489234d21e1d346d8a44a9ac2f335ad1251b2306b955e57f7ee4b2bedc04","typeString":"literal_string \"GatewayDiamond\""},"value":"GatewayDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7859489234d21e1d346d8a44a9ac2f335ad1251b2306b955e57f7ee4b2bedc04","typeString":"literal_string \"GatewayDiamond\""}],"expression":{"id":55736,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"272:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"276:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"272:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"272:34:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55735,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"262:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"262:45:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"220:87:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55752,"nodeType":"IfStatement","src":"216:356:95","trueBody":{"id":55751,"nodeType":"Block","src":"309:263:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":55744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"378:133:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":55746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"534:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55745,"name":"bytes4","nodeType":"ElementaryTypeName","src":"534:6:95","typeDescriptions":{}}},"id":55747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"534:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55748,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"533:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55742,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"346:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"350:6:95","memberName":"decode","nodeType":"MemberAccess","src":"346:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"346:215:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55750,"nodeType":"Return","src":"323:238:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55756,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"612:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55754,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"595:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"599:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"595:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"595:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55753,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"585:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"585:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724469616d6f6e64","id":55762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"654:20:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6afeb69f493bfbdc099f34950eb435ebd57382eacf3b55c3641fb15f1d10973","typeString":"literal_string \"SubnetActorDiamond\""},"value":"SubnetActorDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6afeb69f493bfbdc099f34950eb435ebd57382eacf3b55c3641fb15f1d10973","typeString":"literal_string \"SubnetActorDiamond\""}],"expression":{"id":55760,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"637:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"641:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"637:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"637:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55759,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"627:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:49:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"585:91:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55776,"nodeType":"IfStatement","src":"581:360:95","trueBody":{"id":55775,"nodeType":"Block","src":"678:263:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":55768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"747:133:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":55770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"903:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55769,"name":"bytes4","nodeType":"ElementaryTypeName","src":"903:6:95","typeDescriptions":{}}},"id":55771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"903:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55772,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"902:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55766,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"715:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"719:6:95","memberName":"decode","nodeType":"MemberAccess","src":"715:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:215:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55774,"nodeType":"Return","src":"692:238:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55780,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"981:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"964:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"968:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"964:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"964:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55777,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"954:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"954:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e657452656769737472794469616d6f6e64","id":55786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1023:23:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_8bb80e1286f5d1dca2f658742bc8fd9fe8d2ac49e55bd645fddf23d9c1323832","typeString":"literal_string \"SubnetRegistryDiamond\""},"value":"SubnetRegistryDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8bb80e1286f5d1dca2f658742bc8fd9fe8d2ac49e55bd645fddf23d9c1323832","typeString":"literal_string \"SubnetRegistryDiamond\""}],"expression":{"id":55784,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1006:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1010:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"1006:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1006:41:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55783,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"996:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"996:52:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"954:94:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55800,"nodeType":"IfStatement","src":"950:363:95","trueBody":{"id":55799,"nodeType":"Block","src":"1050:263:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":55792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1119:133:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":55794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1275:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55793,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1275:6:95","typeDescriptions":{}}},"id":55795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1275:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55796,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1274:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55790,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1087:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1091:6:95","memberName":"decode","nodeType":"MemberAccess","src":"1087:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1087:215:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55798,"nodeType":"Return","src":"1064:238:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55804,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"1353:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55802,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1336:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1340:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"1336:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1336:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55801,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1326:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1326:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":55810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1395:17:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":55808,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1378:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1382:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"1378:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1378:35:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55807,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1368:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1368:46:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1326:88:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55824,"nodeType":"IfStatement","src":"1322:421:95","trueBody":{"id":55823,"nodeType":"Block","src":"1416:327:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000","id":55816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1485:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_68e124fb554b26060e0b5c97aaed235c9d0e3bcb5bf06ee3f5fcf333055a62b0","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1705:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55817,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1705:6:95","typeDescriptions":{}}},"id":55819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1705:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55820,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1704:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68e124fb554b26060e0b5c97aaed235c9d0e3bcb5bf06ee3f5fcf333055a62b0","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1453:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1457:6:95","memberName":"decode","nodeType":"MemberAccess","src":"1453:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1453:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55822,"nodeType":"Return","src":"1430:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55828,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"1783:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1766:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1770:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"1766:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1766:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55825,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1756:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":55834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1825:19:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":55832,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1808:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1812:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"1808:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1808:37:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55831,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1798:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1798:48:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1756:90:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55848,"nodeType":"IfStatement","src":"1752:679:95","trueBody":{"id":55847,"nodeType":"Block","src":"1848:583:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000","id":55840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1917:453:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bffece50de23897a92f0b80cce280ca8b718ed2c949faaecc66d807ebed9f36","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2393:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55841,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2393:6:95","typeDescriptions":{}}},"id":55843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"2393:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2392:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1bffece50de23897a92f0b80cce280ca8b718ed2c949faaecc66d807ebed9f36","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1885:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1889:6:95","memberName":"decode","nodeType":"MemberAccess","src":"1885:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1885:535:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55846,"nodeType":"Return","src":"1862:558:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55852,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"2471:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2454:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2458:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"2454:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2454:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55849,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2444:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2444:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":55858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2513:20:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":55856,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2496:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2500:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"2496:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2496:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55855,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2486:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:49:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2444:91:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55872,"nodeType":"IfStatement","src":"2440:2792:95","trueBody":{"id":55871,"nodeType":"Block","src":"2537:2695:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000","id":55864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"2606:2565:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_372dfafcec05a711be1950f44e85d6d8e8e9949f9314df452c369a12bbb535b2","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5194:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55865,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5194:6:95","typeDescriptions":{}}},"id":55867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"5194:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55868,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5193:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_372dfafcec05a711be1950f44e85d6d8e8e9949f9314df452c369a12bbb535b2","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55862,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2574:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2578:6:95","memberName":"decode","nodeType":"MemberAccess","src":"2574:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2574:2647:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55870,"nodeType":"Return","src":"2551:2670:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55876,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"5272:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55874,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5255:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5259:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"5255:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5255:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55873,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5245:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5245:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":55882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5314:21:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":55880,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5297:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5301:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"5297:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5297:39:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55879,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5287:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5287:50:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5245:92:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55896,"nodeType":"IfStatement","src":"5241:873:95","trueBody":{"id":55895,"nodeType":"Block","src":"5339:775:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000","id":55888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"5408:645:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_d26298b725b5ff26c281a078022beedb54b9aef802c864cc8f6612bbd8606bca","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6076:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55889,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6076:6:95","typeDescriptions":{}}},"id":55891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"6076:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55892,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6075:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d26298b725b5ff26c281a078022beedb54b9aef802c864cc8f6612bbd8606bca","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55886,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5376:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5380:6:95","memberName":"decode","nodeType":"MemberAccess","src":"5376:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5376:727:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55894,"nodeType":"Return","src":"5353:750:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55900,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"6154:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55898,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6137:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6141:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"6137:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6137:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55897,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6127:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6127:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":55906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6196:23:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":55904,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6179:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6183:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"6179:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6179:41:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55903,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6169:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6169:52:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6127:94:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55920,"nodeType":"IfStatement","src":"6123:491:95","trueBody":{"id":55919,"nodeType":"Block","src":"6223:391:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000","id":55912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"6292:261:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_78c951f2845cd8cc448aafa473d5e71d36f5251f8c62973c5396ac8eb6a0a039","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6576:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55913,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6576:6:95","typeDescriptions":{}}},"id":55915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"6576:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55916,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6575:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_78c951f2845cd8cc448aafa473d5e71d36f5251f8c62973c5396ac8eb6a0a039","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55910,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6260:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6264:6:95","memberName":"decode","nodeType":"MemberAccess","src":"6260:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:343:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55918,"nodeType":"Return","src":"6237:366:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55924,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"6654:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55922,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6637:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6641:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"6637:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6637:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55921,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6627:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6627:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":55930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6696:20:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":55928,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6679:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6683:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"6679:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6679:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55927,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6669:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6669:49:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6627:91:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55944,"nodeType":"IfStatement","src":"6623:616:95","trueBody":{"id":55943,"nodeType":"Block","src":"6720:519:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000","id":55936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"6789:389:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_7db837762ff6d1b6313334bf4fd234b9c1b1efd607bda8d6e60acd05a6099dd0","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7201:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55937,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7201:6:95","typeDescriptions":{}}},"id":55939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"7201:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55940,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7200:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7db837762ff6d1b6313334bf4fd234b9c1b1efd607bda8d6e60acd05a6099dd0","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55934,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6757:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6761:6:95","memberName":"decode","nodeType":"MemberAccess","src":"6757:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6757:471:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55942,"nodeType":"Return","src":"6734:494:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55948,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"7279:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55946,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7262:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7266:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"7262:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7262:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55945,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7252:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7252:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":55954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7321:21:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":55952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7304:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7308:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"7304:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7304:39:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55951,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7294:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7294:50:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7252:92:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55968,"nodeType":"IfStatement","src":"7248:617:95","trueBody":{"id":55967,"nodeType":"Block","src":"7346:519:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000","id":55960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"7415:389:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_52839a7423993e257d7bf53b8f6f7d747d6436b8d8fd66bf1856065bd09c04f8","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7827:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55961,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7827:6:95","typeDescriptions":{}}},"id":55963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"7827:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55964,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7826:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_52839a7423993e257d7bf53b8f6f7d747d6436b8d8fd66bf1856065bd09c04f8","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55958,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7383:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7387:6:95","memberName":"decode","nodeType":"MemberAccess","src":"7383:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7383:471:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55966,"nodeType":"Return","src":"7360:494:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55972,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"7905:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55970,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7888:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7892:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"7888:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7888:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55969,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7878:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7878:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":55978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7947:22:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":55976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7930:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7934:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"7930:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7930:40:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55975,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7920:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7920:51:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7878:93:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55992,"nodeType":"IfStatement","src":"7874:554:95","trueBody":{"id":55991,"nodeType":"Block","src":"7973:455:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000","id":55984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8042:325:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_65e4058ab98f6576766eef79ae62af4a966b77d6f9d8a5590abfc60156bea1f1","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8390:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55985,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8390:6:95","typeDescriptions":{}}},"id":55987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"8390:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55988,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8389:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_65e4058ab98f6576766eef79ae62af4a966b77d6f9d8a5590abfc60156bea1f1","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55982,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8010:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8014:6:95","memberName":"decode","nodeType":"MemberAccess","src":"8010:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8010:407:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55990,"nodeType":"Return","src":"7987:430:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55996,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"8468:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55994,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8451:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8455:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"8451:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8451:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55993,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8441:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8441:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":56002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8510:20:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":56000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8493:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8497:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"8493:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8493:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55999,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8483:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8483:49:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8441:91:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56016,"nodeType":"IfStatement","src":"8437:424:95","trueBody":{"id":56015,"nodeType":"Block","src":"8534:327:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000","id":56008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8603:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_ece88ab3becf7a41e5409a8099bd473ebe5c6de663bc947fdf46553d1612e6bc","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8823:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56009,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8823:6:95","typeDescriptions":{}}},"id":56011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"8823:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56012,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8822:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ece88ab3becf7a41e5409a8099bd473ebe5c6de663bc947fdf46553d1612e6bc","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56006,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8571:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8575:6:95","memberName":"decode","nodeType":"MemberAccess","src":"8571:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8571:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56014,"nodeType":"Return","src":"8548:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56020,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"8901:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8884:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8888:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"8884:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8884:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56017,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8874:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8874:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":56026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8943:24:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":56024,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8926:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8930:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"8926:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8926:42:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56023,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8916:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8916:53:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8874:95:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56040,"nodeType":"IfStatement","src":"8870:2732:95","trueBody":{"id":56039,"nodeType":"Block","src":"8971:2631:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000","id":56032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"9040:2501:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f31142a4ec58d3ebb386734281aa88541cc1b5acce7e9a58cbc011a2aca5c9e","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11564:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56033,"name":"bytes4","nodeType":"ElementaryTypeName","src":"11564:6:95","typeDescriptions":{}}},"id":56035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"11564:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56036,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"11563:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2f31142a4ec58d3ebb386734281aa88541cc1b5acce7e9a58cbc011a2aca5c9e","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56030,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9008:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9012:6:95","memberName":"decode","nodeType":"MemberAccess","src":"9008:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9008:2583:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56038,"nodeType":"Return","src":"8985:2606:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56044,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"11642:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56042,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11625:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11629:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"11625:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11625:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56041,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11615:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11615:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":56050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11684:25:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":56048,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11667:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11671:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"11667:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11667:43:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56047,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11657:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11657:54:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11615:96:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56064,"nodeType":"IfStatement","src":"11611:1517:95","trueBody":{"id":56063,"nodeType":"Block","src":"11713:1415:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001210fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000","id":56056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"11782:1285:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_c7da6ff76dc6819a55dfa42ee60278f2c2d90838b1cc2cc188fdc85583abdd24","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001210fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13090:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56057,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13090:6:95","typeDescriptions":{}}},"id":56059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13090:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13089:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c7da6ff76dc6819a55dfa42ee60278f2c2d90838b1cc2cc188fdc85583abdd24","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001210fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11750:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11754:6:95","memberName":"decode","nodeType":"MemberAccess","src":"11750:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11750:1367:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56062,"nodeType":"Return","src":"11727:1390:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56068,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"13168:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13151:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13155:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"13151:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13151:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56065,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13141:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13141:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":56074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13210:21:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":56072,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13193:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13197:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"13193:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13193:39:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56071,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13183:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13183:50:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13141:92:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56088,"nodeType":"IfStatement","src":"13137:425:95","trueBody":{"id":56087,"nodeType":"Block","src":"13235:327:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000","id":56080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"13304:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_76094c87cd65b9652f6dfbe745b331e20d10ccbd9e245a8bafc9a120f162be4a","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13524:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56081,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13524:6:95","typeDescriptions":{}}},"id":56083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13524:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56084,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13523:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76094c87cd65b9652f6dfbe745b331e20d10ccbd9e245a8bafc9a120f162be4a","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13272:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13276:6:95","memberName":"decode","nodeType":"MemberAccess","src":"13272:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13272:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56086,"nodeType":"Return","src":"13249:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56092,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"13602:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56090,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13585:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13589:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"13585:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13585:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56089,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13575:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13575:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":56098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13644:19:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":56096,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13627:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13631:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"13627:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13627:37:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56095,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13617:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13617:48:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13575:90:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56112,"nodeType":"IfStatement","src":"13571:935:95","trueBody":{"id":56111,"nodeType":"Block","src":"13667:839:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000","id":56104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"13736:709:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c779a62c7aee1ea0b75d0986410108437fb0114fd8a20d165b819203a57d8d3","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14468:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56105,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14468:6:95","typeDescriptions":{}}},"id":56107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14468:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14467:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c779a62c7aee1ea0b75d0986410108437fb0114fd8a20d165b819203a57d8d3","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13704:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13708:6:95","memberName":"decode","nodeType":"MemberAccess","src":"13704:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:791:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56110,"nodeType":"Return","src":"13681:814:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56116,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"14546:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56114,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14529:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14533:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"14529:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14529:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56113,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14519:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14519:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"45524332305072657365744669786564537570706c79","id":56122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14588:24:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_072b78b73ab9f6aeb3ec63d6c645ef40c259b345424cc2c1b5fe769e0aa4c1b9","typeString":"literal_string \"ERC20PresetFixedSupply\""},"value":"ERC20PresetFixedSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_072b78b73ab9f6aeb3ec63d6c645ef40c259b345424cc2c1b5fe769e0aa4c1b9","typeString":"literal_string \"ERC20PresetFixedSupply\""}],"expression":{"id":56120,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14571:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14575:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"14571:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14571:42:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56119,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14561:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14561:53:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14519:95:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56136,"nodeType":"IfStatement","src":"14515:1196:95","trueBody":{"id":56135,"nodeType":"Block","src":"14616:1095:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000","id":56128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"14685:965:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_c890601a92e2edda04a78d86730c28d107e747f9ad8d4fc6c63563129cdded05","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15673:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56129,"name":"bytes4","nodeType":"ElementaryTypeName","src":"15673:6:95","typeDescriptions":{}}},"id":56131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"15673:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15672:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c890601a92e2edda04a78d86730c28d107e747f9ad8d4fc6c63563129cdded05","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56126,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14653:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14657:6:95","memberName":"decode","nodeType":"MemberAccess","src":"14653:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14653:1047:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56134,"nodeType":"Return","src":"14630:1070:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56140,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"15751:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15734:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15738:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"15734:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15734:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56137,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15724:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15724:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4e756d626572436f6e747261637446616365744569676874","id":56146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15793:26:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1fd7eac73477d1cb2585ae782fbc4469d63b20c6530e7482af8a95504e9d832","typeString":"literal_string \"NumberContractFacetEight\""},"value":"NumberContractFacetEight"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1fd7eac73477d1cb2585ae782fbc4469d63b20c6530e7482af8a95504e9d832","typeString":"literal_string \"NumberContractFacetEight\""}],"expression":{"id":56144,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15776:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15780:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"15776:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15776:44:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56143,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15766:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15766:55:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15724:97:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56160,"nodeType":"IfStatement","src":"15720:430:95","trueBody":{"id":56159,"nodeType":"Block","src":"15823:327:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000","id":56152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"15892:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16112:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56153,"name":"bytes4","nodeType":"ElementaryTypeName","src":"16112:6:95","typeDescriptions":{}}},"id":56155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"16112:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56156,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16111:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56150,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15860:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15864:6:95","memberName":"decode","nodeType":"MemberAccess","src":"15860:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15860:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56158,"nodeType":"Return","src":"15837:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56164,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"16190:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56162,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16173:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16177:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"16173:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16173:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56161,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16163:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16163:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4e756d626572436f6e74726163744661636574536576656e","id":56170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16232:26:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_31381b8ca8e152972ea44177887c66943b2a157985cb95373bcf58cfc6f7f36d","typeString":"literal_string \"NumberContractFacetSeven\""},"value":"NumberContractFacetSeven"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_31381b8ca8e152972ea44177887c66943b2a157985cb95373bcf58cfc6f7f36d","typeString":"literal_string \"NumberContractFacetSeven\""}],"expression":{"id":56168,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16215:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16219:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"16215:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16215:44:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56167,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16205:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16205:55:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16163:97:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56184,"nodeType":"IfStatement","src":"16159:430:95","trueBody":{"id":56183,"nodeType":"Block","src":"16262:327:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000","id":56176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"16331:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16551:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56177,"name":"bytes4","nodeType":"ElementaryTypeName","src":"16551:6:95","typeDescriptions":{}}},"id":56179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"16551:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56180,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16550:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56174,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16299:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16303:6:95","memberName":"decode","nodeType":"MemberAccess","src":"16299:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16299:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56182,"nodeType":"Return","src":"16276:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56188,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"16629:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56186,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16612:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16616:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"16612:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16612:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56185,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16602:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16602:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"53656c6563746f724c696272617279","id":56194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16671:17:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_334d2051eb2faeb8e687c182b9a9e9ebdfabad7649fc9ad04dec8658e593861f","typeString":"literal_string \"SelectorLibrary\""},"value":"SelectorLibrary"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_334d2051eb2faeb8e687c182b9a9e9ebdfabad7649fc9ad04dec8658e593861f","typeString":"literal_string \"SelectorLibrary\""}],"expression":{"id":56192,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16654:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16658:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"16654:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16654:35:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56191,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16644:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16644:46:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16602:88:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56208,"nodeType":"IfStatement","src":"16598:421:95","trueBody":{"id":56207,"nodeType":"Block","src":"16692:327:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000166e2898c00000000000000000000000000000000000000000000000000000000","id":56200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"16761:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e56f707f0923d6e1c341860b3233568a23e18487906159b5453a3176cb14f7b","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000166e2898c00000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001f≌\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":56202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16981:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56201,"name":"bytes4","nodeType":"ElementaryTypeName","src":"16981:6:95","typeDescriptions":{}}},"id":56203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"16981:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56204,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16980:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e56f707f0923d6e1c341860b3233568a23e18487906159b5453a3176cb14f7b","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000166e2898c00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56198,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16729:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16733:6:95","memberName":"decode","nodeType":"MemberAccess","src":"16729:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16729:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56206,"nodeType":"Return","src":"16706:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56212,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"17059:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56210,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17042:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17046:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"17042:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17042:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56209,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17032:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17032:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"546573745574696c73","id":56218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17101:11:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1d9c5e0e7a8cd646c7822211b4085e607b3cadf2dd23eeea8511ac8cb0f4b5a","typeString":"literal_string \"TestUtils\""},"value":"TestUtils"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1d9c5e0e7a8cd646c7822211b4085e607b3cadf2dd23eeea8511ac8cb0f4b5a","typeString":"literal_string \"TestUtils\""}],"expression":{"id":56216,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17084:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17088:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"17084:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17084:29:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56215,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17074:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:40:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17032:82:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56232,"nodeType":"IfStatement","src":"17028:863:95","trueBody":{"id":56231,"nodeType":"Block","src":"17116:775:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000","id":56224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"17185:645:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ba46721a33884dbb392fc4114619e8f2dfd6de8dd76cac3f8f39162af00c190","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17853:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56225,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17853:6:95","typeDescriptions":{}}},"id":56227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"17853:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56228,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17852:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ba46721a33884dbb392fc4114619e8f2dfd6de8dd76cac3f8f39162af00c190","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56222,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17153:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17157:6:95","memberName":"decode","nodeType":"MemberAccess","src":"17153:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17153:727:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56230,"nodeType":"Return","src":"17130:750:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56236,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"17931:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56234,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17914:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17918:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"17914:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17914:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56233,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17904:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17904:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":56242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17973:29:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":56240,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17956:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17960:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"17956:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17956:47:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56239,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17946:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17946:58:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17904:100:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56256,"nodeType":"IfStatement","src":"17900:1649:95","trueBody":{"id":56255,"nodeType":"Block","src":"18006:1543:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000","id":56248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"18075:1413:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_91886c8c9d175a6becb1c99f3b8b2decf78dd328f7206840cee81c009a45258e","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19511:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56249,"name":"bytes4","nodeType":"ElementaryTypeName","src":"19511:6:95","typeDescriptions":{}}},"id":56251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"19511:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56252,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19510:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91886c8c9d175a6becb1c99f3b8b2decf78dd328f7206840cee81c009a45258e","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56246,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18043:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18047:6:95","memberName":"decode","nodeType":"MemberAccess","src":"18043:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18043:1495:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56254,"nodeType":"Return","src":"18020:1518:95"}]}},{"expression":{"arguments":[{"hexValue":"53656c6563746f72206e6f7420666f756e64","id":56258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19565:20:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_f47cec11e62fa8df5d53019f3248f5ba37833b5d42587189a0ac9a31e362ce89","typeString":"literal_string \"Selector not found\""},"value":"Selector not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f47cec11e62fa8df5d53019f3248f5ba37833b5d42587189a0ac9a31e362ce89","typeString":"literal_string \"Selector not found\""}],"id":56257,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"19558:6:95","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":56259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19558:28:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56260,"nodeType":"ExpressionStatement","src":"19558:28:95"}]},"functionSelector":"66e2898c","implemented":true,"kind":"function","modifiers":[],"name":"resolveSelectors","nameLocation":"111:16:95","parameters":{"id":55724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55723,"mutability":"mutable","name":"facetName","nameLocation":"142:9:95","nodeType":"VariableDeclaration","scope":56262,"src":"128:23:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55722,"name":"string","nodeType":"ElementaryTypeName","src":"128:6:95","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"127:25:95"},"returnParameters":{"id":55728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55727,"mutability":"mutable","name":"facetSelectors","nameLocation":"190:14:95","nodeType":"VariableDeclaration","scope":56262,"src":"174:30:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":55725,"name":"bytes4","nodeType":"ElementaryTypeName","src":"174:6:95","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":55726,"nodeType":"ArrayTypeName","src":"174:8:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"173:32:95"},"scope":56263,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SelectorLibrary","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[56263],"name":"SelectorLibrary","nameLocation":"80:15:95","scope":56264,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":95} \ No newline at end of file +{"abi":[{"type":"function","name":"resolveSelectors","inputs":[{"name":"facetName","type":"string","internalType":"string"}],"outputs":[{"name":"facetSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a5761183e9081610020823930815050f35b600080fdfe608080604052600436101561001357600080fd5b6000803560e01c6366e2898c1461002957600080fd5b602091826003193601126100ff576001600160401b036004358181116100e757366023820112156100e75780600401359182116100eb57610073601f8301601f19168601846101bd565b81835236602483830101116100e7579183858361009c94602483970183860137830101526102f7565b60405192828493840190808552835180925280604086019401925b8281106100c657505050500390f35b83516001600160e01b031916855286955093810193928101926001016100b7565b8380fd5b634e487b7160e01b84526041600452602484fd5b5080fd5b608081019081106001600160401b0382111761011e57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761011e57604052565b61016081019081106001600160401b0382111761011e57604052565b60e081019081106001600160401b0382111761011e57604052565b60c081019081106001600160401b0382111761011e57604052565b61018081019081106001600160401b0382111761011e57604052565b90601f801991011681019081106001600160401b0382111761011e57604052565b9081519160005b8381106101f6575050016000815290565b80602080928401015181850152016101e5565b60405190606082018281106001600160401b0382111761011e576040526040825260006040836020808201520152565b9060209081838203126102c55782516001600160401b03938482116102c5570181601f820112156102c557805193841161011e578360051b9060405194610282858401876101bd565b855283808601928201019283116102c5578301905b8282106102a5575050505090565b81516001600160e01b0319811681036102c5578152908301908301610297565b600080fd5b604051906102d782610103565b6060808352602080840152600160408401526367e0badb60e01b90830152565b60408051916020928381018161030d82856101de565b0391610321601f19938481018352826101bd565b5190208351858101906d11d85d195dd85e511a585b5bdb9960921b8252600e815261034b81610134565b519020146117f9578251848101906103738161036784876101de565b038481018352826101bd565b5190208351858101907114dd589b995d1058dd1bdc911a585b5bdb9960721b8252601281526103a181610134565b519020146117f9578251848101906103bd8161036784876101de565b5190208351858101907414dd589b995d149959da5cdd1c9e511a585b5bdb99605a1b8252601581526103ee81610134565b519020146117f95782518481019061040a8161036784876101de565b5190208351858101906e111a585b5bdb9910dd5d119858d95d608a1b8252600f815261043581610134565b519020146117c1578251848101906104518161036784876101de565b51902083518581019070111a585b5bdb99131bdd5c19519858d95d607a1b82526011815261047e81610134565b519020146117415782518481019061049a8161036784876101de565b5190208351858101907111d85d195dd85e51d95d1d195c919858d95d60721b8252601281526104c881610134565b519020146114f3578251848101906104e48161036784876101de565b5190208351858101907211d85d195dd85e53585b9859d95c919858d95d606a1b82526013815261051381610134565b519020146114585782518481019061052f8161036784876101de565b5190208351858101907411d85d195dd85e53595cdcd95b99d95c919858d95d605a1b82526015815261056081610134565b519020146114065782518481019061057c8161036784876101de565b5190208351858101907110da1958dadc1bda5b9d1a5b99d19858d95d60721b8252601281526105aa81610134565b519020146113ab578251848101906105c68161036784876101de565b51902083518581019072109bdd1d1bdb555c149bdd5d195c919858d95d606a1b8252601381526105f581610134565b5190201461134f578251848101906106118161036784876101de565b51902083518581019073151bdc111bdddb919a5b985b1a5d1e519858d95d60621b82526014815261064181610134565b519020146112f95782518481019061065d8161036784876101de565b51902083518581019071161b995d13595cdcd859da5b99d19858d95d60721b82526012815261068b81610134565b519020146112c1578251848101906106a78161036784876101de565b5190208351858101907514dd589b995d1058dd1bdc91d95d1d195c919858d95d60521b8252601681526106d981610134565b51902014611081578251848101906106f58161036784876101de565b5190208351858101907f5375626e65744163746f724d616e61676572466163657400000000000000000082526017815261072e81610134565b51902014610fd95782518481019061074a8161036784876101de565b5190208351858101907414dd589b995d1058dd1bdc94185d5cd9519858d95d605a1b82526015815261077b81610134565b51902014610f83578251848101906107978161036784876101de565b5190208351858101907514dd589b995d1058dd1bdc94995dd85c99119858d95d60521b8252601681526107c981610134565b51902014610f2d578251848101906107e58161036784876101de565b5190208351858101907f5375626e65744163746f72436865636b706f696e74696e6746616365740000008252601d815261081e81610134565b51902014610ed75782518481019061083a8161036784876101de565b51902083518581019072149959da5cdd195c94dd589b995d119858d95d606a1b82526013815261086981610134565b51902014610e9f578251848101906108858161036784876101de565b5190208351858101907014dd589b995d11d95d1d195c919858d95d607a1b8252601181526108b281610134565b51902014610df6578251848101906108ce8161036784876101de565b5190208351858101907545524332305072657365744669786564537570706c7960501b82526016815261090081610134565b51902014610d065782518481019061091c8161036784876101de565b5190208351858101907f4e756d626572436f6e747261637446616365744569676874000000000000000082526018815261095581610134565b51902014610cea578251848101906109718161036784876101de565b5190208351858101907f4e756d626572436f6e74726163744661636574536576656e00000000000000008252601881526109aa81610134565b51902014610cea578251848101906109c68161036784876101de565b5190208351858101906e53656c6563746f724c69627261727960881b8252600f81526109f181610134565b51902014610cb257825184810190610a0d8161036784876101de565b51902083518581019068546573745574696c7360b81b825260098152610a3281610134565b51902014610c1757610a5a83519182610a4e87820180966101de565b039081018352826101bd565b5190208151838101906e5375626e65744163746f724d6f636b60881b8252600f8152610a8581610134565b51902014610ac55760649250519062461bcd60e51b82526004820152601260248201527114d95b1958dd1bdc881b9bdd08199bdd5b9960721b6044820152fd5b908151906102e08201918083106001600160401b0384111761011e578284526102c08082528282019283526014948201949094526310fd426160e01b6060820152634e71d92d60e01b608082015263ed7c4da160e01b60a082015263350a14bf60e01b60c082015263c7ebdaef60e01b60e0820152632643057b60e11b6101008201526330b858b160e11b6101208201526341c0e1b560e01b61014082015263d66d9e1960e01b610160820152638456cb5960e01b610180820152635c975abb60e01b6101a0820152625bfdf360e51b6101c08201526366783c9b60e01b6101e0820152636d2e84f760e11b610200820152633a4b66f160e01b6102208201526313408c9b60e11b61024082015263b9ee2bb960e01b610260820152631fa5d41d60e11b6102808201526305c2fbcf60e31b6102a082015263cc2dc2b960e01b930192909252610c1491610239565b90565b50509061016082610c14935190610c2d8261014f565b61014080835284830194855260089183019190915263265f6a3560e21b60608301526315c9f71760e21b60808301526301d283df60e11b60a0830152631e8c229360e21b60c0830152637775600f60e11b60e083015263bc9e2bcf60e01b610100830152633db2bc2b60e21b610120830152632b9840d160e11b908201520190610239565b5050906080826001610c14945191610cc983610103565b606083528483019485528201526319b8a26360e21b60608201520190610239565b505050610c1490610cf96102ca565b8051810182019101610239565b5050908151906102008201918083106001600160401b0384111761011e578284526101e0808252828201928352600d94820194909452636eb1769f60e11b606082015263095ea7b360e01b60808201526370a0823160e01b60a0820152630852cd8d60e31b60c082015263079cc67960e41b60e082015263313ce56760e01b61010082015263a457c2d760e01b610120820152633950935160e01b6101408201526306fdde0360e01b6101608201526395d89b4160e01b6101808201526318160ddd60e01b6101a082015263a9059cbb60e01b6101c08201526323b872dd60e01b930192909252610c1491610239565b50509061018082610c14935190610e0c826101a1565b6101608083528483019485526009918301919091526342bf3cc160e01b6060830152630be0611160e01b6080830152631b0766c360e01b60a0830152630a372bf360e41b60c0830152630f5849d160e01b60e0830152639836b75f60e01b61010083015263030f605160e01b610120830152631163dca560e01b61014083015263a46d044d60e01b908201520190610239565b5050906080826001610c14945191610eb683610103565b60608352848301948552820152637be005d560e01b60608201520190610239565b50509060c0826003610c14945191610eee83610186565b60a0808452858401958652908301919091526313408c9b60e11b606083015263b9ee2bb960e01b608083015263cc2dc2b960e01b908201520190610239565b50509060c0826003610c14945191610f4483610186565b60a080845285840195865290830191909152634e71d92d60e01b606083015263ed7c4da160e01b6080830152632643057b60e11b908201520190610239565b50509060c0826003610c14945191610f9a83610186565b60a080845285840195865290830191909152638456cb5960e01b6060830152635c975abb60e01b6080830152631fa5d41d60e11b908201520190610239565b50509061018082610c14935190610fef826101a1565b6101608083528483019485526009918301919091526310fd426160e01b60608301526330b858b160e11b60808301526341c0e1b560e01b60a083015263d66d9e1960e01b60c0830152625bfdf360e51b60e08301526366783c9b60e01b610100830152636d2e84f760e11b610120830152633a4b66f160e01b6101408301526305c2fbcf60e31b908201520190610239565b5050908151906105008201918083106001600160401b0384111761011e578284526104e0808252828201928352602594820194909452633354c3e160e01b6060820152630d450b2360e21b60808201526306c4685360e01b60a0820152632593d53960e11b60c08201526325834a7160e11b60e08201526369e737fd60e01b610100820152638ef3f76160e01b610120820152633da3324160e01b610140820152630903e69360e41b61016082015263948628a960e01b610180820152636c97478960e11b6101a08201526363e6d3b160e11b6101c0820152634baa594f60e11b6101e08201526338a210b360e01b6102008201526380f7602160e01b610220820152631776451f60e21b61024082015263595e94af60e11b610260820152630d6eb59160e41b61028082015263332a5ac960e01b6102a0820152630acbdfbf60e11b6102c08201526352d182d160e01b6102e0820152630c825d9760e11b610300820152632bc31eb360e01b610320820152633dd5267760e21b6103408201526333f28a0960e21b610360820152631015428760e21b61038082015263d081be0360e01b6103a0820152631f3a0e4160e01b6103c0820152630396850760e51b6103e08201526328d5551d60e01b61040082015263599c7bd160e01b610420820152634f19de8160e11b6104408201526319c10a1f60e21b61046082015263c5ab224160e01b610480820152637867b64b60e11b6104a08201526356c0f26b60e11b6104c08201526380875df760e01b930192909252610c1491610239565b5050906080826001610c149451916112d883610103565b6060835284830194855282015263c62eb4d560e01b60608201520190610239565b50509060c0826003610c1494519161131083610186565b60a080845285840195865290830191909152630df1446160e01b60608301526304465a5d60e21b608083015263e49a547d60e01b908201520190610239565b50509060e0826004610c149451916113668361016b565b60c0835284830194855282015263036c3ddf60e21b60608201526332e7661f821b6080820152630bed7615821b60a082015263bacc656d821b60c08201520190610239565b50509060e0826004610c149451916113c28361016b565b60c083528483019485528201526353b4e7bf821b60608201526347dc9b4f821b60808201526374303771821b60a082015263ac818379821b60c08201520190610239565b50509081519060a08201918083106001600160401b0384111761011e5760028484610c149652608083528383019384528201526312df86db60e11b60608201526080631085ca2760e11b910152610239565b50509061016082610c1493519061146e8261014f565b6101408083528483019485526008918301919091526316989f6f60e21b606083015263018f44b760e41b608083015263028bf0d560e11b60a08301526341c0e1b560e01b60c0830152637903ab2760e11b60e0830152636b2c1eef60e01b610100830152636c712ab960e11b6101208301526345f5448560e01b908201520190610239565b5050908151906105208201918083106001600160401b0384111761011e57828452610500808252828201928352602694820194909452638789f83b60e01b60608201526306c4685360e01b60808201526316d2bca560e11b60a082015263dd81b5cf60e01b60c08201526369e737fd60e01b60e0820152630836d45d60e31b610100820152632472942560e01b610120820152639e530b5760e01b610140820152631951f35960e21b610160820152635cf72c2160e11b61018082015263a9294bdd60e01b6101a0820152630886016560e21b6101c0820152632ceacfdd60e21b6101e082015263ac12d76360e01b610200820152634aa8f8a560e01b610220820152636520eae760e11b61024082015263d6c5c39760e01b61026082015263544dddff60e01b6102808201526306ad21bb60e41b6102a082015263a517218f60e01b6102c0820152634b8213b360e11b6102e0820152631d9fb97d60e21b6103008201526319af5b1560e11b610320820152630b1ba49b60e41b61034082015263f322913160e01b610360820152630338150f60e01b6103808201526394074b0360e01b6103a0820152633f6f564960e11b6103c082015263032b960d60e11b6103e082015263c66c66a160e01b610400820152639d3070b560e01b610420820152635d02968560e01b61044082015263599c7bd160e01b6104608201526305aff0b360e01b610480820152631bad9e0560e11b6104a0820152638cfd78e760e01b6104c082015263017187cd60e11b6104e0820152631456ce2b60e31b930192909252610c1491610239565b5050908151906101008201918083106001600160401b0384111761011e5782845260e08082528282019283526005948201949094526366ffd66360e11b60608201526314bbdacb60e21b60808201526356fe50af60e11b60a0820152637a0ed62760e01b60c08201526301ffc9a760e01b930192909252610c1491610239565b5050906080826001610c149451916117d883610103565b606083528483019485528201526307e4c70760e21b60608201520190610239565b505050610c1490610cf961020956fea2646970667358221220163f079da76913fb32a1f8cfc36cca7297ac9428d0704be02fd8d560a3de7dde64736f6c63430008130033","sourceMap":"72:20636:98:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b6000803560e01c6366e2898c1461002957600080fd5b602091826003193601126100ff576001600160401b036004358181116100e757366023820112156100e75780600401359182116100eb57610073601f8301601f19168601846101bd565b81835236602483830101116100e7579183858361009c94602483970183860137830101526102f7565b60405192828493840190808552835180925280604086019401925b8281106100c657505050500390f35b83516001600160e01b031916855286955093810193928101926001016100b7565b8380fd5b634e487b7160e01b84526041600452602484fd5b5080fd5b608081019081106001600160401b0382111761011e57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761011e57604052565b61016081019081106001600160401b0382111761011e57604052565b60e081019081106001600160401b0382111761011e57604052565b60c081019081106001600160401b0382111761011e57604052565b61018081019081106001600160401b0382111761011e57604052565b90601f801991011681019081106001600160401b0382111761011e57604052565b9081519160005b8381106101f6575050016000815290565b80602080928401015181850152016101e5565b60405190606082018281106001600160401b0382111761011e576040526040825260006040836020808201520152565b9060209081838203126102c55782516001600160401b03938482116102c5570181601f820112156102c557805193841161011e578360051b9060405194610282858401876101bd565b855283808601928201019283116102c5578301905b8282106102a5575050505090565b81516001600160e01b0319811681036102c5578152908301908301610297565b600080fd5b604051906102d782610103565b6060808352602080840152600160408401526367e0badb60e01b90830152565b60408051916020928381018161030d82856101de565b0391610321601f19938481018352826101bd565b5190208351858101906d11d85d195dd85e511a585b5bdb9960921b8252600e815261034b81610134565b519020146117f9578251848101906103738161036784876101de565b038481018352826101bd565b5190208351858101907114dd589b995d1058dd1bdc911a585b5bdb9960721b8252601281526103a181610134565b519020146117f9578251848101906103bd8161036784876101de565b5190208351858101907414dd589b995d149959da5cdd1c9e511a585b5bdb99605a1b8252601581526103ee81610134565b519020146117f95782518481019061040a8161036784876101de565b5190208351858101906e111a585b5bdb9910dd5d119858d95d608a1b8252600f815261043581610134565b519020146117c1578251848101906104518161036784876101de565b51902083518581019070111a585b5bdb99131bdd5c19519858d95d607a1b82526011815261047e81610134565b519020146117415782518481019061049a8161036784876101de565b5190208351858101907111d85d195dd85e51d95d1d195c919858d95d60721b8252601281526104c881610134565b519020146114f3578251848101906104e48161036784876101de565b5190208351858101907211d85d195dd85e53585b9859d95c919858d95d606a1b82526013815261051381610134565b519020146114585782518481019061052f8161036784876101de565b5190208351858101907411d85d195dd85e53595cdcd95b99d95c919858d95d605a1b82526015815261056081610134565b519020146114065782518481019061057c8161036784876101de565b5190208351858101907110da1958dadc1bda5b9d1a5b99d19858d95d60721b8252601281526105aa81610134565b519020146113ab578251848101906105c68161036784876101de565b51902083518581019072109bdd1d1bdb555c149bdd5d195c919858d95d606a1b8252601381526105f581610134565b5190201461134f578251848101906106118161036784876101de565b51902083518581019073151bdc111bdddb919a5b985b1a5d1e519858d95d60621b82526014815261064181610134565b519020146112f95782518481019061065d8161036784876101de565b51902083518581019071161b995d13595cdcd859da5b99d19858d95d60721b82526012815261068b81610134565b519020146112c1578251848101906106a78161036784876101de565b5190208351858101907514dd589b995d1058dd1bdc91d95d1d195c919858d95d60521b8252601681526106d981610134565b51902014611081578251848101906106f58161036784876101de565b5190208351858101907f5375626e65744163746f724d616e61676572466163657400000000000000000082526017815261072e81610134565b51902014610fd95782518481019061074a8161036784876101de565b5190208351858101907414dd589b995d1058dd1bdc94185d5cd9519858d95d605a1b82526015815261077b81610134565b51902014610f83578251848101906107978161036784876101de565b5190208351858101907514dd589b995d1058dd1bdc94995dd85c99119858d95d60521b8252601681526107c981610134565b51902014610f2d578251848101906107e58161036784876101de565b5190208351858101907f5375626e65744163746f72436865636b706f696e74696e6746616365740000008252601d815261081e81610134565b51902014610ed75782518481019061083a8161036784876101de565b51902083518581019072149959da5cdd195c94dd589b995d119858d95d606a1b82526013815261086981610134565b51902014610e9f578251848101906108858161036784876101de565b5190208351858101907014dd589b995d11d95d1d195c919858d95d607a1b8252601181526108b281610134565b51902014610df6578251848101906108ce8161036784876101de565b5190208351858101907545524332305072657365744669786564537570706c7960501b82526016815261090081610134565b51902014610d065782518481019061091c8161036784876101de565b5190208351858101907f4e756d626572436f6e747261637446616365744569676874000000000000000082526018815261095581610134565b51902014610cea578251848101906109718161036784876101de565b5190208351858101907f4e756d626572436f6e74726163744661636574536576656e00000000000000008252601881526109aa81610134565b51902014610cea578251848101906109c68161036784876101de565b5190208351858101906e53656c6563746f724c69627261727960881b8252600f81526109f181610134565b51902014610cb257825184810190610a0d8161036784876101de565b51902083518581019068546573745574696c7360b81b825260098152610a3281610134565b51902014610c1757610a5a83519182610a4e87820180966101de565b039081018352826101bd565b5190208151838101906e5375626e65744163746f724d6f636b60881b8252600f8152610a8581610134565b51902014610ac55760649250519062461bcd60e51b82526004820152601260248201527114d95b1958dd1bdc881b9bdd08199bdd5b9960721b6044820152fd5b908151906102e08201918083106001600160401b0384111761011e578284526102c08082528282019283526014948201949094526310fd426160e01b6060820152634e71d92d60e01b608082015263ed7c4da160e01b60a082015263350a14bf60e01b60c082015263c7ebdaef60e01b60e0820152632643057b60e11b6101008201526330b858b160e11b6101208201526341c0e1b560e01b61014082015263d66d9e1960e01b610160820152638456cb5960e01b610180820152635c975abb60e01b6101a0820152625bfdf360e51b6101c08201526366783c9b60e01b6101e0820152636d2e84f760e11b610200820152633a4b66f160e01b6102208201526313408c9b60e11b61024082015263b9ee2bb960e01b610260820152631fa5d41d60e11b6102808201526305c2fbcf60e31b6102a082015263cc2dc2b960e01b930192909252610c1491610239565b90565b50509061016082610c14935190610c2d8261014f565b61014080835284830194855260089183019190915263265f6a3560e21b60608301526315c9f71760e21b60808301526301d283df60e11b60a0830152631e8c229360e21b60c0830152637775600f60e11b60e083015263bc9e2bcf60e01b610100830152633db2bc2b60e21b610120830152632b9840d160e11b908201520190610239565b5050906080826001610c14945191610cc983610103565b606083528483019485528201526319b8a26360e21b60608201520190610239565b505050610c1490610cf96102ca565b8051810182019101610239565b5050908151906102008201918083106001600160401b0384111761011e578284526101e0808252828201928352600d94820194909452636eb1769f60e11b606082015263095ea7b360e01b60808201526370a0823160e01b60a0820152630852cd8d60e31b60c082015263079cc67960e41b60e082015263313ce56760e01b61010082015263a457c2d760e01b610120820152633950935160e01b6101408201526306fdde0360e01b6101608201526395d89b4160e01b6101808201526318160ddd60e01b6101a082015263a9059cbb60e01b6101c08201526323b872dd60e01b930192909252610c1491610239565b50509061018082610c14935190610e0c826101a1565b6101608083528483019485526009918301919091526342bf3cc160e01b6060830152630be0611160e01b6080830152631b0766c360e01b60a0830152630a372bf360e41b60c0830152630f5849d160e01b60e0830152639836b75f60e01b61010083015263030f605160e01b610120830152631163dca560e01b61014083015263a46d044d60e01b908201520190610239565b5050906080826001610c14945191610eb683610103565b60608352848301948552820152637be005d560e01b60608201520190610239565b50509060c0826003610c14945191610eee83610186565b60a0808452858401958652908301919091526313408c9b60e11b606083015263b9ee2bb960e01b608083015263cc2dc2b960e01b908201520190610239565b50509060c0826003610c14945191610f4483610186565b60a080845285840195865290830191909152634e71d92d60e01b606083015263ed7c4da160e01b6080830152632643057b60e11b908201520190610239565b50509060c0826003610c14945191610f9a83610186565b60a080845285840195865290830191909152638456cb5960e01b6060830152635c975abb60e01b6080830152631fa5d41d60e11b908201520190610239565b50509061018082610c14935190610fef826101a1565b6101608083528483019485526009918301919091526310fd426160e01b60608301526330b858b160e11b60808301526341c0e1b560e01b60a083015263d66d9e1960e01b60c0830152625bfdf360e51b60e08301526366783c9b60e01b610100830152636d2e84f760e11b610120830152633a4b66f160e01b6101408301526305c2fbcf60e31b908201520190610239565b5050908151906105008201918083106001600160401b0384111761011e578284526104e0808252828201928352602594820194909452633354c3e160e01b6060820152630d450b2360e21b60808201526306c4685360e01b60a0820152632593d53960e11b60c08201526325834a7160e11b60e08201526369e737fd60e01b610100820152638ef3f76160e01b610120820152633da3324160e01b610140820152630903e69360e41b61016082015263948628a960e01b610180820152636c97478960e11b6101a08201526363e6d3b160e11b6101c0820152634baa594f60e11b6101e08201526338a210b360e01b6102008201526380f7602160e01b610220820152631776451f60e21b61024082015263595e94af60e11b610260820152630d6eb59160e41b61028082015263332a5ac960e01b6102a0820152630acbdfbf60e11b6102c08201526352d182d160e01b6102e0820152630c825d9760e11b610300820152632bc31eb360e01b610320820152633dd5267760e21b6103408201526333f28a0960e21b610360820152631015428760e21b61038082015263d081be0360e01b6103a0820152631f3a0e4160e01b6103c0820152630396850760e51b6103e08201526328d5551d60e01b61040082015263599c7bd160e01b610420820152634f19de8160e11b6104408201526319c10a1f60e21b61046082015263c5ab224160e01b610480820152637867b64b60e11b6104a08201526356c0f26b60e11b6104c08201526380875df760e01b930192909252610c1491610239565b5050906080826001610c149451916112d883610103565b6060835284830194855282015263c62eb4d560e01b60608201520190610239565b50509060c0826003610c1494519161131083610186565b60a080845285840195865290830191909152630df1446160e01b60608301526304465a5d60e21b608083015263e49a547d60e01b908201520190610239565b50509060e0826004610c149451916113668361016b565b60c0835284830194855282015263036c3ddf60e21b60608201526332e7661f821b6080820152630bed7615821b60a082015263bacc656d821b60c08201520190610239565b50509060e0826004610c149451916113c28361016b565b60c083528483019485528201526353b4e7bf821b60608201526347dc9b4f821b60808201526374303771821b60a082015263ac818379821b60c08201520190610239565b50509081519060a08201918083106001600160401b0384111761011e5760028484610c149652608083528383019384528201526312df86db60e11b60608201526080631085ca2760e11b910152610239565b50509061016082610c1493519061146e8261014f565b6101408083528483019485526008918301919091526316989f6f60e21b606083015263018f44b760e41b608083015263028bf0d560e11b60a08301526341c0e1b560e01b60c0830152637903ab2760e11b60e0830152636b2c1eef60e01b610100830152636c712ab960e11b6101208301526345f5448560e01b908201520190610239565b5050908151906105208201918083106001600160401b0384111761011e57828452610500808252828201928352602694820194909452638789f83b60e01b60608201526306c4685360e01b60808201526316d2bca560e11b60a082015263dd81b5cf60e01b60c08201526369e737fd60e01b60e0820152630836d45d60e31b610100820152632472942560e01b610120820152639e530b5760e01b610140820152631951f35960e21b610160820152635cf72c2160e11b61018082015263a9294bdd60e01b6101a0820152630886016560e21b6101c0820152632ceacfdd60e21b6101e082015263ac12d76360e01b610200820152634aa8f8a560e01b610220820152636520eae760e11b61024082015263d6c5c39760e01b61026082015263544dddff60e01b6102808201526306ad21bb60e41b6102a082015263a517218f60e01b6102c0820152634b8213b360e11b6102e0820152631d9fb97d60e21b6103008201526319af5b1560e11b610320820152630b1ba49b60e41b61034082015263f322913160e01b610360820152630338150f60e01b6103808201526394074b0360e01b6103a0820152633f6f564960e11b6103c082015263032b960d60e11b6103e082015263c66c66a160e01b610400820152639d3070b560e01b610420820152635d02968560e01b61044082015263599c7bd160e01b6104608201526305aff0b360e01b610480820152631bad9e0560e11b6104a0820152638cfd78e760e01b6104c082015263017187cd60e11b6104e0820152631456ce2b60e31b930192909252610c1491610239565b5050908151906101008201918083106001600160401b0384111761011e5782845260e08082528282019283526005948201949094526366ffd66360e11b60608201526314bbdacb60e21b60808201526356fe50af60e11b60a0820152637a0ed62760e01b60c08201526301ffc9a760e01b930192909252610c1491610239565b5050906080826001610c149451916117d883610103565b606083528483019485528201526307e4c70760e21b60608201520190610239565b505050610c1490610cf961020956fea2646970667358221220163f079da76913fb32a1f8cfc36cca7297ac9428d0704be02fd8d560a3de7dde64736f6c63430008130033","sourceMap":"72:20636:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;72:20636:98;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;72:20636:98;;;;;-1:-1:-1;72:20636:98;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;;;;-1:-1:-1;72:20636:98;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;72:20636:98;;;;;;;;;;;;;;;;;-1:-1:-1;72:20636:98;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;:::o;102:20604::-;72:20636;;;230:27;;;;;;72:20636;;;;;:::i;:::-;230:27;72:20636;230:27;72:20636;;230:27;;;;;;;;:::i;:::-;72:20636;220:38;;72:20636;;272:34;;;72:20636;-1:-1:-1;;;72:20636:98;;272:34;;;;;;:::i;:::-;72:20636;262:45;;220:87;216:356;;72:20636;;595:27;;;72:20636;595:27;72:20636;;;;;:::i;:::-;595:27;;;;;;;;:::i;:::-;72:20636;585:38;;72:20636;;637:38;;;72:20636;-1:-1:-1;;;72:20636:98;;;637:38;;;;;:::i;:::-;72:20636;627:49;;585:91;581:360;;72:20636;;964:27;;;72:20636;964:27;72:20636;;;;;:::i;964:27::-;72:20636;954:38;;72:20636;;1006:41;;;72:20636;-1:-1:-1;;;72:20636:98;;1006:41;;;;;;:::i;:::-;72:20636;996:52;;954:94;950:363;;72:20636;;1336:27;;;72:20636;1336:27;72:20636;;;;;:::i;1336:27::-;72:20636;1326:38;;72:20636;;1378:35;;;72:20636;-1:-1:-1;;;72:20636:98;;1378:35;;;;;;:::i;:::-;72:20636;1368:46;;1326:88;1322:421;;72:20636;;1766:27;;;72:20636;1766:27;72:20636;;;;;:::i;1766:27::-;72:20636;1756:38;;72:20636;;1808:37;;;72:20636;-1:-1:-1;;;72:20636:98;;1808:37;;;;;;:::i;:::-;72:20636;1798:48;;1756:90;1752:679;;72:20636;;2454:27;;;72:20636;2454:27;72:20636;;;;;:::i;2454:27::-;72:20636;2444:38;;72:20636;;2496:38;;;72:20636;-1:-1:-1;;;72:20636:98;;;2496:38;;;;;:::i;:::-;72:20636;2486:49;;2444:91;2440:2792;;72:20636;;5255:27;;;72:20636;5255:27;72:20636;;;;;:::i;5255:27::-;72:20636;5245:38;;72:20636;;5297:39;;;72:20636;-1:-1:-1;;;72:20636:98;;5297:39;;;;;;:::i;:::-;72:20636;5287:50;;5245:92;5241:873;;72:20636;;6137:27;;;72:20636;6137:27;72:20636;;;;;:::i;6137:27::-;72:20636;6127:38;;72:20636;;6179:41;;;72:20636;-1:-1:-1;;;72:20636:98;;1006:41;6179;;;;;:::i;:::-;72:20636;6169:52;;6127:94;6123:491;;72:20636;;6637:27;;;72:20636;6637:27;72:20636;;;;;:::i;6637:27::-;72:20636;6627:38;;72:20636;;6679:38;;;72:20636;-1:-1:-1;;;72:20636:98;;;6679:38;;;;;:::i;:::-;72:20636;6669:49;;6627:91;6623:616;;72:20636;;7262:27;;;72:20636;7262:27;72:20636;;;;;:::i;7262:27::-;72:20636;7252:38;;72:20636;;7304:39;;;72:20636;-1:-1:-1;;;72:20636:98;;5297:39;7304;;;;;:::i;:::-;72:20636;7294:50;;7252:92;7248:617;;72:20636;;7888:27;;;72:20636;7888:27;72:20636;;;;;:::i;7888:27::-;72:20636;7878:38;;72:20636;;7930:40;;;72:20636;-1:-1:-1;;;72:20636:98;;;7930:40;;;;;:::i;:::-;72:20636;7920:51;;7878:93;7874:554;;72:20636;;8451:27;;;72:20636;8451:27;72:20636;;;;;:::i;8451:27::-;72:20636;8441:38;;72:20636;;8493:38;;;72:20636;-1:-1:-1;;;72:20636:98;;;8493:38;;;;;:::i;:::-;72:20636;8483:49;;8441:91;8437:424;;72:20636;;8884:27;;;72:20636;8884:27;72:20636;;;;;:::i;8884:27::-;72:20636;8874:38;;72:20636;;8926:42;;;72:20636;-1:-1:-1;;;72:20636:98;;8926:42;;;;;;:::i;:::-;72:20636;8916:53;;8874:95;8870:2732;;72:20636;;11625:27;;;72:20636;11625:27;72:20636;;;;;:::i;11625:27::-;72:20636;11615:38;;72:20636;;11667:43;;;72:20636;;;;11667:43;;;;;;:::i;:::-;72:20636;11657:54;;11615:96;11611:941;;72:20636;;12575:27;;;72:20636;12575:27;72:20636;;;;;:::i;12575:27::-;72:20636;12565:38;;72:20636;;12617:41;;;72:20636;-1:-1:-1;;;72:20636:98;;1006:41;12617;;;;;:::i;:::-;72:20636;12607:52;;12565:94;12561:555;;72:20636;;13139:27;;;72:20636;13139:27;72:20636;;;;;:::i;13139:27::-;72:20636;13129:38;;72:20636;;13181:42;;;72:20636;-1:-1:-1;;;72:20636:98;;8926:42;13181;;;;;:::i;:::-;72:20636;13171:53;;13129:95;13125:556;;72:20636;;13704:27;;;72:20636;13704:27;72:20636;;;;;:::i;13704:27::-;72:20636;13694:38;;72:20636;;13746:49;;;72:20636;;;;13746:49;;;;;;:::i;:::-;72:20636;13736:60;;13694:102;13690:563;;72:20636;;14276:27;;;72:20636;14276:27;72:20636;;;;;:::i;14276:27::-;72:20636;14266:38;;72:20636;;14318:39;;;72:20636;-1:-1:-1;;;72:20636:98;;5297:39;14318;;;;;:::i;:::-;72:20636;14308:50;;14266:92;14262:425;;72:20636;;14710:27;;;72:20636;14710:27;72:20636;;;;;:::i;14710:27::-;72:20636;14700:38;;72:20636;;14752:37;;;72:20636;-1:-1:-1;;;72:20636:98;;1808:37;14752;;;;;:::i;:::-;72:20636;14742:48;;14700:90;14696:935;;72:20636;;15654:27;;;72:20636;15654:27;72:20636;;;;;:::i;15654:27::-;72:20636;15644:38;;72:20636;;15696:42;;;72:20636;-1:-1:-1;;;72:20636:98;;8926:42;15696;;;;;:::i;:::-;72:20636;15686:53;;15644:95;15640:1196;;72:20636;;16859:27;;;72:20636;16859:27;72:20636;;;;;:::i;16859:27::-;72:20636;16849:38;;72:20636;;16901:44;;;72:20636;;;;16901:44;;;;;;:::i;:::-;72:20636;16891:55;;16849:97;16845:430;;72:20636;;17298:27;;;72:20636;17298:27;72:20636;;;;;:::i;17298:27::-;72:20636;17288:38;;72:20636;;17340:44;;;72:20636;;;;16901:44;17340;;;;;:::i;:::-;72:20636;17330:55;;17288:97;17284:430;;72:20636;;17737:27;;;72:20636;17737:27;72:20636;;;;;:::i;17737:27::-;72:20636;17727:38;;72:20636;;17779:35;;;72:20636;-1:-1:-1;;;72:20636:98;;1378:35;17779;;;;;:::i;:::-;72:20636;17769:46;;17727:88;17723:421;;72:20636;;18167:27;;;72:20636;18167:27;72:20636;;;;;:::i;18167:27::-;72:20636;18157:38;;72:20636;;18209:29;;;72:20636;-1:-1:-1;;;72:20636:98;;18209:29;;;;;;:::i;:::-;72:20636;18199:40;;18157:82;18153:863;;19039:27;72:20636;;19039:27;;72:20636;19039:27;;;72:20636;;;:::i;:::-;19039:27;;;;;;;;:::i;:::-;72:20636;19029:38;;72:20636;;19081:35;;;72:20636;-1:-1:-1;;;72:20636:98;;1378:35;19081;;;;;:::i;:::-;72:20636;19071:46;;19029:88;19025:1637;;72:20636;;;;20671:28;;;;;;;;;72:20636;;;;;;-1:-1:-1;;;72:20636:98;;;;20671:28;19025:1637;72:20636;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;;;19156:1495;;;:::i;:::-;19133:1518;:::o;18153:863::-;72:20636;;;;;18278:727;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;18278:727;;;:::i;17723:421::-;72:20636;;;;;;17854:279;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;17854:279;;;:::i;17284:430::-;72:20636;;;17424:279;72:20636;;;:::i;:::-;;;17424:279;;;;;;;:::i;15640:1196::-;72:20636;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;;;15778:1047;;;:::i;14696:935::-;72:20636;;;;;14829:791;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;14829:791;;;:::i;14262:425::-;72:20636;;;;;;14397:279;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;14397:279;;;:::i;13690:563::-;72:20636;;;;;;13835:407;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;13835:407;;;:::i;13125:556::-;72:20636;;;;;;13263:407;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;13263:407;;;:::i;12561:555::-;72:20636;;;;;;12698:407;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;12698:407;;;:::i;11611:941::-;72:20636;;;;;11750:791;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;11750:791;;;:::i;8870:2732::-;72:20636;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;;;9008:2583;;;:::i;8437:424::-;72:20636;;;;;;8571:279;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;8571:279;;;:::i;7874:554::-;72:20636;;;;;;8010:407;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;8010:407;;;:::i;7248:617::-;72:20636;;;;;;7383:471;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7383:471;;;:::i;6623:616::-;72:20636;;;;;;6757:471;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6757:471;;;:::i;6123:491::-;72:20636;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;;6260:343;72:20636;;;;;;;;;;;;;;;;;;;;;;;;;;;;6260:343;:::i;5241:873::-;72:20636;;;;;5376:727;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;5376:727;;;:::i;2440:2792::-;72:20636;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;;;2574:2647;;;:::i;1752:679::-;72:20636;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:98;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;-1:-1:-1;;;72:20636:98;;;;;;1885:535;;;:::i;1322:421::-;72:20636;;;;;;1453:279;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1453:279;;;:::i;950:363::-;72:20636;;;1087:215;72:20636;;;:::i","linkReferences":{}},"methodIdentifiers":{"resolveSelectors(string)":"66e2898c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"facetName\",\"type\":\"string\"}],\"name\":\"resolveSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"facetSelectors\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/SelectorLibrary.sol\":\"SelectorLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f\",\"dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"facetName","type":"string"}],"stateMutability":"pure","type":"function","name":"resolveSelectors","outputs":[{"internalType":"bytes4[]","name":"facetSelectors","type":"bytes4[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/SelectorLibrary.sol":"SelectorLibrary"},"libraries":{},"viaIR":true},"sources":{"test/helpers/SelectorLibrary.sol":{"keccak256":"0x41dc73f854509fb511bdfe898d0c685dedd2bdf414d75ad74676e918e1386e4d","urls":["bzz-raw://e1c688018b7ad1a3a2cf35997350c0853b79c56d3cd51eac9a8af546bef8fa1f","dweb:/ipfs/QmR25aVWzgrNBh8zAa6RKvQKBLgMBWnkNVyKsLuWAxPrua"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/SelectorLibrary.sol","id":56637,"exportedSymbols":{"SelectorLibrary":[56636]},"nodeType":"SourceUnit","src":"46:20663:98","nodes":[{"id":56022,"nodeType":"PragmaDirective","src":"46:24:98","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":56636,"nodeType":"ContractDefinition","src":"72:20636:98","nodes":[{"id":56635,"nodeType":"FunctionDefinition","src":"102:20604:98","nodes":[],"body":{"id":56634,"nodeType":"Block","src":"206:20500:98","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56033,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"247:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56031,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"230:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"234:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"230:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"230:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56030,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"220:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"220:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794469616d6f6e64","id":56039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"289:16:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_7859489234d21e1d346d8a44a9ac2f335ad1251b2306b955e57f7ee4b2bedc04","typeString":"literal_string \"GatewayDiamond\""},"value":"GatewayDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7859489234d21e1d346d8a44a9ac2f335ad1251b2306b955e57f7ee4b2bedc04","typeString":"literal_string \"GatewayDiamond\""}],"expression":{"id":56037,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"272:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"276:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"272:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"272:34:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56036,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"262:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"262:45:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"220:87:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56053,"nodeType":"IfStatement","src":"216:356:98","trueBody":{"id":56052,"nodeType":"Block","src":"309:263:98","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":56045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"378:133:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":56047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"534:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56046,"name":"bytes4","nodeType":"ElementaryTypeName","src":"534:6:98","typeDescriptions":{}}},"id":56048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"534:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"533:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"346:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"350:6:98","memberName":"decode","nodeType":"MemberAccess","src":"346:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"346:215:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56051,"nodeType":"Return","src":"323:238:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56057,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"612:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56055,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"595:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"599:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"595:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"595:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56054,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"585:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"585:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724469616d6f6e64","id":56063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"654:20:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6afeb69f493bfbdc099f34950eb435ebd57382eacf3b55c3641fb15f1d10973","typeString":"literal_string \"SubnetActorDiamond\""},"value":"SubnetActorDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6afeb69f493bfbdc099f34950eb435ebd57382eacf3b55c3641fb15f1d10973","typeString":"literal_string \"SubnetActorDiamond\""}],"expression":{"id":56061,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"637:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"641:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"637:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"637:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56060,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"627:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:49:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"585:91:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56077,"nodeType":"IfStatement","src":"581:360:98","trueBody":{"id":56076,"nodeType":"Block","src":"678:263:98","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":56069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"747:133:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":56071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"903:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56070,"name":"bytes4","nodeType":"ElementaryTypeName","src":"903:6:98","typeDescriptions":{}}},"id":56072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"903:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56073,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"902:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56067,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"715:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"719:6:98","memberName":"decode","nodeType":"MemberAccess","src":"715:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:215:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56075,"nodeType":"Return","src":"692:238:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56081,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"981:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56079,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"964:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"968:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"964:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"964:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56078,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"954:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"954:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e657452656769737472794469616d6f6e64","id":56087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1023:23:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_8bb80e1286f5d1dca2f658742bc8fd9fe8d2ac49e55bd645fddf23d9c1323832","typeString":"literal_string \"SubnetRegistryDiamond\""},"value":"SubnetRegistryDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8bb80e1286f5d1dca2f658742bc8fd9fe8d2ac49e55bd645fddf23d9c1323832","typeString":"literal_string \"SubnetRegistryDiamond\""}],"expression":{"id":56085,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1006:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56086,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1010:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"1006:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1006:41:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56084,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"996:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"996:52:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"954:94:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56101,"nodeType":"IfStatement","src":"950:363:98","trueBody":{"id":56100,"nodeType":"Block","src":"1050:263:98","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":56093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1119:133:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":56095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1275:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56094,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1275:6:98","typeDescriptions":{}}},"id":56096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1275:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56097,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1274:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1087:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1091:6:98","memberName":"decode","nodeType":"MemberAccess","src":"1087:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1087:215:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56099,"nodeType":"Return","src":"1064:238:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56105,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"1353:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56103,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1336:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1340:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"1336:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1336:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56102,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1326:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1326:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":56111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1395:17:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":56109,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1378:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1382:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"1378:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1378:35:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56108,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1368:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1368:46:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1326:88:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56125,"nodeType":"IfStatement","src":"1322:421:98","trueBody":{"id":56124,"nodeType":"Block","src":"1416:327:98","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000","id":56117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1485:197:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_68e124fb554b26060e0b5c97aaed235c9d0e3bcb5bf06ee3f5fcf333055a62b0","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1705:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56118,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1705:6:98","typeDescriptions":{}}},"id":56120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1705:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1704:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68e124fb554b26060e0b5c97aaed235c9d0e3bcb5bf06ee3f5fcf333055a62b0","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56115,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1453:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1457:6:98","memberName":"decode","nodeType":"MemberAccess","src":"1453:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1453:279:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56123,"nodeType":"Return","src":"1430:302:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56129,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"1783:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56127,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1766:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1770:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"1766:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1766:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56126,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1756:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":56135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1825:19:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":56133,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1808:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1812:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"1808:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1808:37:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56132,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1798:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1798:48:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1756:90:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56149,"nodeType":"IfStatement","src":"1752:679:98","trueBody":{"id":56148,"nodeType":"Block","src":"1848:583:98","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000","id":56141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1917:453:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bffece50de23897a92f0b80cce280ca8b718ed2c949faaecc66d807ebed9f36","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2393:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56142,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2393:6:98","typeDescriptions":{}}},"id":56144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"2393:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56145,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2392:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1bffece50de23897a92f0b80cce280ca8b718ed2c949faaecc66d807ebed9f36","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56139,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1885:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1889:6:98","memberName":"decode","nodeType":"MemberAccess","src":"1885:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1885:535:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56147,"nodeType":"Return","src":"1862:558:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56153,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"2471:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2454:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2458:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"2454:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2454:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56150,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2444:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2444:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":56159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2513:20:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":56157,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2496:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2500:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"2496:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2496:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56156,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2486:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:49:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2444:91:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56173,"nodeType":"IfStatement","src":"2440:2792:98","trueBody":{"id":56172,"nodeType":"Block","src":"2537:2695:98","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000","id":56165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"2606:2565:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_372dfafcec05a711be1950f44e85d6d8e8e9949f9314df452c369a12bbb535b2","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5194:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56166,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5194:6:98","typeDescriptions":{}}},"id":56168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"5194:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56169,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5193:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_372dfafcec05a711be1950f44e85d6d8e8e9949f9314df452c369a12bbb535b2","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56163,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2574:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2578:6:98","memberName":"decode","nodeType":"MemberAccess","src":"2574:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2574:2647:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56171,"nodeType":"Return","src":"2551:2670:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56177,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"5272:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56175,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5255:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5259:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"5255:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5255:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56174,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5245:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5245:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":56183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5314:21:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":56181,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5297:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5301:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"5297:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5297:39:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56180,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5287:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5287:50:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5245:92:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56197,"nodeType":"IfStatement","src":"5241:873:98","trueBody":{"id":56196,"nodeType":"Block","src":"5339:775:98","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000","id":56189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"5408:645:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_d26298b725b5ff26c281a078022beedb54b9aef802c864cc8f6612bbd8606bca","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6076:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56190,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6076:6:98","typeDescriptions":{}}},"id":56192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"6076:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56193,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6075:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d26298b725b5ff26c281a078022beedb54b9aef802c864cc8f6612bbd8606bca","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56187,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5376:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5380:6:98","memberName":"decode","nodeType":"MemberAccess","src":"5376:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5376:727:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56195,"nodeType":"Return","src":"5353:750:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56201,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"6154:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56199,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6137:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6141:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"6137:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6137:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56198,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6127:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6127:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":56207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6196:23:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":56205,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6179:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6183:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"6179:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6179:41:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56204,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6169:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6169:52:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6127:94:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56221,"nodeType":"IfStatement","src":"6123:491:98","trueBody":{"id":56220,"nodeType":"Block","src":"6223:391:98","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000","id":56213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"6292:261:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_78c951f2845cd8cc448aafa473d5e71d36f5251f8c62973c5396ac8eb6a0a039","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6576:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56214,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6576:6:98","typeDescriptions":{}}},"id":56216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"6576:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56217,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6575:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_78c951f2845cd8cc448aafa473d5e71d36f5251f8c62973c5396ac8eb6a0a039","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56211,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6260:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6264:6:98","memberName":"decode","nodeType":"MemberAccess","src":"6260:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:343:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56219,"nodeType":"Return","src":"6237:366:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56225,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"6654:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56223,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6637:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6641:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"6637:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6637:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56222,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6627:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6627:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":56231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6696:20:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":56229,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6679:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6683:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"6679:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6679:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56228,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6669:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6669:49:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6627:91:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56245,"nodeType":"IfStatement","src":"6623:616:98","trueBody":{"id":56244,"nodeType":"Block","src":"6720:519:98","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000","id":56237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"6789:389:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_7db837762ff6d1b6313334bf4fd234b9c1b1efd607bda8d6e60acd05a6099dd0","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7201:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56238,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7201:6:98","typeDescriptions":{}}},"id":56240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"7201:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56241,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7200:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7db837762ff6d1b6313334bf4fd234b9c1b1efd607bda8d6e60acd05a6099dd0","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56235,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6757:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6761:6:98","memberName":"decode","nodeType":"MemberAccess","src":"6757:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6757:471:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56243,"nodeType":"Return","src":"6734:494:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56249,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"7279:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56247,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7262:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7266:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"7262:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7262:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56246,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7252:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7252:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":56255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7321:21:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":56253,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7304:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7308:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"7304:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7304:39:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56252,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7294:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7294:50:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7252:92:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56269,"nodeType":"IfStatement","src":"7248:617:98","trueBody":{"id":56268,"nodeType":"Block","src":"7346:519:98","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000","id":56261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"7415:389:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_52839a7423993e257d7bf53b8f6f7d747d6436b8d8fd66bf1856065bd09c04f8","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7827:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56262,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7827:6:98","typeDescriptions":{}}},"id":56264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"7827:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56265,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7826:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_52839a7423993e257d7bf53b8f6f7d747d6436b8d8fd66bf1856065bd09c04f8","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56259,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7383:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7387:6:98","memberName":"decode","nodeType":"MemberAccess","src":"7383:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7383:471:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56267,"nodeType":"Return","src":"7360:494:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56273,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"7905:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56271,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7888:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7892:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"7888:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7888:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56270,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7878:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7878:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":56279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7947:22:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":56277,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7930:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7934:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"7930:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7930:40:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56276,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7920:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7920:51:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7878:93:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56293,"nodeType":"IfStatement","src":"7874:554:98","trueBody":{"id":56292,"nodeType":"Block","src":"7973:455:98","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000","id":56285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8042:325:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_65e4058ab98f6576766eef79ae62af4a966b77d6f9d8a5590abfc60156bea1f1","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8390:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56286,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8390:6:98","typeDescriptions":{}}},"id":56288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"8390:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56289,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8389:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_65e4058ab98f6576766eef79ae62af4a966b77d6f9d8a5590abfc60156bea1f1","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56283,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8010:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8014:6:98","memberName":"decode","nodeType":"MemberAccess","src":"8010:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8010:407:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56291,"nodeType":"Return","src":"7987:430:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56297,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"8468:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56295,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8451:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8455:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"8451:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8451:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56294,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8441:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8441:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":56303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8510:20:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":56301,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8493:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8497:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"8493:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8493:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56300,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8483:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8483:49:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8441:91:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56317,"nodeType":"IfStatement","src":"8437:424:98","trueBody":{"id":56316,"nodeType":"Block","src":"8534:327:98","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000","id":56309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8603:197:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_ece88ab3becf7a41e5409a8099bd473ebe5c6de663bc947fdf46553d1612e6bc","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8823:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56310,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8823:6:98","typeDescriptions":{}}},"id":56312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"8823:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56313,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8822:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ece88ab3becf7a41e5409a8099bd473ebe5c6de663bc947fdf46553d1612e6bc","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56307,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8571:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8575:6:98","memberName":"decode","nodeType":"MemberAccess","src":"8571:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8571:279:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56315,"nodeType":"Return","src":"8548:302:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56321,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"8901:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56319,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8884:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8888:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"8884:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8884:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56318,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8874:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8874:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":56327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8943:24:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":56325,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8926:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8930:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"8926:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8926:42:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56324,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8916:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8916:53:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8874:95:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56341,"nodeType":"IfStatement","src":"8870:2732:98","trueBody":{"id":56340,"nodeType":"Block","src":"8971:2631:98","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000","id":56333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"9040:2501:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f31142a4ec58d3ebb386734281aa88541cc1b5acce7e9a58cbc011a2aca5c9e","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11564:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56334,"name":"bytes4","nodeType":"ElementaryTypeName","src":"11564:6:98","typeDescriptions":{}}},"id":56336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"11564:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56337,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"11563:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2f31142a4ec58d3ebb386734281aa88541cc1b5acce7e9a58cbc011a2aca5c9e","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56331,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9008:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9012:6:98","memberName":"decode","nodeType":"MemberAccess","src":"9008:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9008:2583:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56339,"nodeType":"Return","src":"8985:2606:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56345,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"11642:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56343,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11625:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11629:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"11625:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11625:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56342,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11615:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11615:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":56351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11684:25:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":56349,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11667:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11671:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"11667:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11667:43:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56348,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11657:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11657:54:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11615:96:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56365,"nodeType":"IfStatement","src":"11611:941:98","trueBody":{"id":56364,"nodeType":"Block","src":"11713:839:98","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000910fd4261000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000","id":56357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"11782:709:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_d12e255f87e33e6c5905bcd78f38408b2bed11a5f784648ce6ebaad7a6ef5c5c","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000910fd4261000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12514:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56358,"name":"bytes4","nodeType":"ElementaryTypeName","src":"12514:6:98","typeDescriptions":{}}},"id":56360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"12514:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56361,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12513:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d12e255f87e33e6c5905bcd78f38408b2bed11a5f784648ce6ebaad7a6ef5c5c","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000910fd4261000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11750:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11754:6:98","memberName":"decode","nodeType":"MemberAccess","src":"11750:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11750:791:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56363,"nodeType":"Return","src":"11727:814:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56369,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"12592:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56367,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12575:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12579:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"12575:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12575:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56366,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12565:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12565:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":56375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12634:23:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""},"value":"SubnetActorPauseFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""}],"expression":{"id":56373,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12617:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12621:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"12617:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12617:41:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56372,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12607:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12607:52:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12565:94:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56389,"nodeType":"IfStatement","src":"12561:555:98","trueBody":{"id":56388,"nodeType":"Block","src":"12661:455:98","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000038456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000003f4ba83a00000000000000000000000000000000000000000000000000000000","id":56381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"12730:325:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d6ba79489b28f01e98eae2915ed2fd84ed7ea93e2459106eb77f8c83b511d54","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000038456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000003f4ba83a00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13078:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56382,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13078:6:98","typeDescriptions":{}}},"id":56384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13078:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56385,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13077:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d6ba79489b28f01e98eae2915ed2fd84ed7ea93e2459106eb77f8c83b511d54","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000038456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000003f4ba83a00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56379,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12698:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12702:6:98","memberName":"decode","nodeType":"MemberAccess","src":"12698:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12698:407:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56387,"nodeType":"Return","src":"12675:430:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56393,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"13156:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56391,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13139:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13143:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"13139:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13139:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56390,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13129:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13129:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":56399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13198:24:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""},"value":"SubnetActorRewardFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""}],"expression":{"id":56397,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13181:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13185:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"13181:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13181:42:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56396,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13171:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13171:53:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13129:95:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56413,"nodeType":"IfStatement","src":"13125:556:98","trueBody":{"id":56412,"nodeType":"Block","src":"13226:455:98","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000034e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af600000000000000000000000000000000000000000000000000000000","id":56405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"13295:325:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_985a3e73404219bab8242b91693c760d81162fa90667580bf94d46c13d777ac5","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000034e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af600000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13643:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56406,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13643:6:98","typeDescriptions":{}}},"id":56408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13643:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56409,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13642:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_985a3e73404219bab8242b91693c760d81162fa90667580bf94d46c13d777ac5","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000034e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af600000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56403,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13263:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13267:6:98","memberName":"decode","nodeType":"MemberAccess","src":"13263:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13263:407:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56411,"nodeType":"Return","src":"13240:430:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56417,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"13721:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56415,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13704:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13708:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"13704:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56414,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13694:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13694:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":56423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13763:31:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""},"value":"SubnetActorCheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""}],"expression":{"id":56421,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13746:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13750:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"13746:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13746:49:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56420,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13736:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13736:60:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13694:102:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56437,"nodeType":"IfStatement","src":"13690:563:98","trueBody":{"id":56436,"nodeType":"Block","src":"13798:455:98","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000032681193600000000000000000000000000000000000000000000000000000000b9ee2bb900000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000","id":56429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"13867:325:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b4663f5103ac4ffe25bdbc4d7278e2758b4b5c29cdba1696b065d0bc11cc7b1","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000032681193600000000000000000000000000000000000000000000000000000000b9ee2bb900000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14215:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56430,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14215:6:98","typeDescriptions":{}}},"id":56432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14215:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56433,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14214:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2b4663f5103ac4ffe25bdbc4d7278e2758b4b5c29cdba1696b065d0bc11cc7b1","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000032681193600000000000000000000000000000000000000000000000000000000b9ee2bb900000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56427,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13835:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13839:6:98","memberName":"decode","nodeType":"MemberAccess","src":"13835:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13835:407:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56435,"nodeType":"Return","src":"13812:430:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56441,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"14293:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56439,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14276:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14280:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"14276:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14276:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56438,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14266:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14266:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":56447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14335:21:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":56445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14318:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14322:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"14318:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14318:39:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56444,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14308:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14308:50:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14266:92:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56461,"nodeType":"IfStatement","src":"14262:425:98","trueBody":{"id":56460,"nodeType":"Block","src":"14360:327:98","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000","id":56453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"14429:197:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_76094c87cd65b9652f6dfbe745b331e20d10ccbd9e245a8bafc9a120f162be4a","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14649:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56454,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14649:6:98","typeDescriptions":{}}},"id":56456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14649:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56457,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14648:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76094c87cd65b9652f6dfbe745b331e20d10ccbd9e245a8bafc9a120f162be4a","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56451,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14397:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14401:6:98","memberName":"decode","nodeType":"MemberAccess","src":"14397:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14397:279:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56459,"nodeType":"Return","src":"14374:302:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56465,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"14727:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56463,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14710:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14714:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"14710:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14710:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56462,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14700:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14700:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":56471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14769:19:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":56469,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14752:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14756:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"14752:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14752:37:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56468,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14742:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14742:48:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14700:90:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56485,"nodeType":"IfStatement","src":"14696:935:98","trueBody":{"id":56484,"nodeType":"Block","src":"14792:839:98","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000","id":56477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"14861:709:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c779a62c7aee1ea0b75d0986410108437fb0114fd8a20d165b819203a57d8d3","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15593:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56478,"name":"bytes4","nodeType":"ElementaryTypeName","src":"15593:6:98","typeDescriptions":{}}},"id":56480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"15593:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56481,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15592:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c779a62c7aee1ea0b75d0986410108437fb0114fd8a20d165b819203a57d8d3","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56475,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14829:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14833:6:98","memberName":"decode","nodeType":"MemberAccess","src":"14829:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14829:791:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56483,"nodeType":"Return","src":"14806:814:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56489,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"15671:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56487,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15654:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15658:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"15654:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15654:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56486,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15644:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15644:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"45524332305072657365744669786564537570706c79","id":56495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15713:24:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_072b78b73ab9f6aeb3ec63d6c645ef40c259b345424cc2c1b5fe769e0aa4c1b9","typeString":"literal_string \"ERC20PresetFixedSupply\""},"value":"ERC20PresetFixedSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_072b78b73ab9f6aeb3ec63d6c645ef40c259b345424cc2c1b5fe769e0aa4c1b9","typeString":"literal_string \"ERC20PresetFixedSupply\""}],"expression":{"id":56493,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15696:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15700:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"15696:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15696:42:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56492,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15686:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15686:53:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15644:95:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56509,"nodeType":"IfStatement","src":"15640:1196:98","trueBody":{"id":56508,"nodeType":"Block","src":"15741:1095:98","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000","id":56501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"15810:965:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_c890601a92e2edda04a78d86730c28d107e747f9ad8d4fc6c63563129cdded05","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16798:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56502,"name":"bytes4","nodeType":"ElementaryTypeName","src":"16798:6:98","typeDescriptions":{}}},"id":56504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"16798:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56505,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16797:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c890601a92e2edda04a78d86730c28d107e747f9ad8d4fc6c63563129cdded05","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56499,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15778:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15782:6:98","memberName":"decode","nodeType":"MemberAccess","src":"15778:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15778:1047:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56507,"nodeType":"Return","src":"15755:1070:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56513,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"16876:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56511,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16859:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16863:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"16859:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16859:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56510,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16849:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16849:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4e756d626572436f6e747261637446616365744569676874","id":56519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16918:26:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1fd7eac73477d1cb2585ae782fbc4469d63b20c6530e7482af8a95504e9d832","typeString":"literal_string \"NumberContractFacetEight\""},"value":"NumberContractFacetEight"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1fd7eac73477d1cb2585ae782fbc4469d63b20c6530e7482af8a95504e9d832","typeString":"literal_string \"NumberContractFacetEight\""}],"expression":{"id":56517,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16901:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16905:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"16901:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16901:44:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56516,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16891:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16891:55:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16849:97:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56533,"nodeType":"IfStatement","src":"16845:430:98","trueBody":{"id":56532,"nodeType":"Block","src":"16948:327:98","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000","id":56525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"17017:197:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17237:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56526,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17237:6:98","typeDescriptions":{}}},"id":56528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"17237:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56529,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17236:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56523,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16985:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16989:6:98","memberName":"decode","nodeType":"MemberAccess","src":"16985:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16985:279:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56531,"nodeType":"Return","src":"16962:302:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56537,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"17315:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56535,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17298:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17302:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"17298:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17298:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56534,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17288:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17288:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4e756d626572436f6e74726163744661636574536576656e","id":56543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17357:26:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_31381b8ca8e152972ea44177887c66943b2a157985cb95373bcf58cfc6f7f36d","typeString":"literal_string \"NumberContractFacetSeven\""},"value":"NumberContractFacetSeven"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_31381b8ca8e152972ea44177887c66943b2a157985cb95373bcf58cfc6f7f36d","typeString":"literal_string \"NumberContractFacetSeven\""}],"expression":{"id":56541,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17340:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17344:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"17340:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17340:44:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56540,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17330:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17330:55:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17288:97:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56557,"nodeType":"IfStatement","src":"17284:430:98","trueBody":{"id":56556,"nodeType":"Block","src":"17387:327:98","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000","id":56549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"17456:197:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17676:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56550,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17676:6:98","typeDescriptions":{}}},"id":56552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"17676:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56553,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17675:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56547,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17424:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17428:6:98","memberName":"decode","nodeType":"MemberAccess","src":"17424:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17424:279:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56555,"nodeType":"Return","src":"17401:302:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56561,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"17754:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56559,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17737:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17741:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"17737:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56558,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17727:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17727:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"53656c6563746f724c696272617279","id":56567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17796:17:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_334d2051eb2faeb8e687c182b9a9e9ebdfabad7649fc9ad04dec8658e593861f","typeString":"literal_string \"SelectorLibrary\""},"value":"SelectorLibrary"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_334d2051eb2faeb8e687c182b9a9e9ebdfabad7649fc9ad04dec8658e593861f","typeString":"literal_string \"SelectorLibrary\""}],"expression":{"id":56565,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17779:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17783:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"17779:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17779:35:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56564,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17769:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17769:46:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17727:88:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56581,"nodeType":"IfStatement","src":"17723:421:98","trueBody":{"id":56580,"nodeType":"Block","src":"17817:327:98","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000166e2898c00000000000000000000000000000000000000000000000000000000","id":56573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"17886:197:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e56f707f0923d6e1c341860b3233568a23e18487906159b5453a3176cb14f7b","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000166e2898c00000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001f≌\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":56575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18106:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56574,"name":"bytes4","nodeType":"ElementaryTypeName","src":"18106:6:98","typeDescriptions":{}}},"id":56576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"18106:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56577,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18105:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e56f707f0923d6e1c341860b3233568a23e18487906159b5453a3176cb14f7b","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000166e2898c00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56571,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17854:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17858:6:98","memberName":"decode","nodeType":"MemberAccess","src":"17854:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17854:279:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56579,"nodeType":"Return","src":"17831:302:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56585,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"18184:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56583,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18167:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18171:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"18167:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18167:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56582,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18157:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18157:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"546573745574696c73","id":56591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18226:11:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1d9c5e0e7a8cd646c7822211b4085e607b3cadf2dd23eeea8511ac8cb0f4b5a","typeString":"literal_string \"TestUtils\""},"value":"TestUtils"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1d9c5e0e7a8cd646c7822211b4085e607b3cadf2dd23eeea8511ac8cb0f4b5a","typeString":"literal_string \"TestUtils\""}],"expression":{"id":56589,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18209:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18213:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"18209:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18209:29:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56588,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18199:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18199:40:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18157:82:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56605,"nodeType":"IfStatement","src":"18153:863:98","trueBody":{"id":56604,"nodeType":"Block","src":"18241:775:98","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000","id":56597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"18310:645:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ba46721a33884dbb392fc4114619e8f2dfd6de8dd76cac3f8f39162af00c190","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18978:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56598,"name":"bytes4","nodeType":"ElementaryTypeName","src":"18978:6:98","typeDescriptions":{}}},"id":56600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"18978:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56601,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18977:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ba46721a33884dbb392fc4114619e8f2dfd6de8dd76cac3f8f39162af00c190","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56595,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18278:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18282:6:98","memberName":"decode","nodeType":"MemberAccess","src":"18278:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18278:727:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56603,"nodeType":"Return","src":"18255:750:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56609,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56024,"src":"19056:9:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56607,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19039:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19043:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"19039:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19039:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56606,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19029:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19029:38:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":56615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19098:17:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""},"value":"SubnetActorMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""}],"expression":{"id":56613,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19081:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19085:12:98","memberName":"encodePacked","nodeType":"MemberAccess","src":"19081:16:98","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19081:35:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56612,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19071:9:98","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19071:46:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"19029:88:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56629,"nodeType":"IfStatement","src":"19025:1637:98","trueBody":{"id":56628,"nodeType":"Block","src":"19119:1543:98","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000","id":56621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"19188:1413:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_91886c8c9d175a6becb1c99f3b8b2decf78dd328f7206840cee81c009a45258e","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20624:6:98","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56622,"name":"bytes4","nodeType":"ElementaryTypeName","src":"20624:6:98","typeDescriptions":{}}},"id":56624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"20624:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56625,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20623:10:98","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91886c8c9d175a6becb1c99f3b8b2decf78dd328f7206840cee81c009a45258e","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56619,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19156:3:98","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19160:6:98","memberName":"decode","nodeType":"MemberAccess","src":"19156:10:98","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19156:1495:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56029,"id":56627,"nodeType":"Return","src":"19133:1518:98"}]}},{"expression":{"arguments":[{"hexValue":"53656c6563746f72206e6f7420666f756e64","id":56631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20678:20:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_f47cec11e62fa8df5d53019f3248f5ba37833b5d42587189a0ac9a31e362ce89","typeString":"literal_string \"Selector not found\""},"value":"Selector not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f47cec11e62fa8df5d53019f3248f5ba37833b5d42587189a0ac9a31e362ce89","typeString":"literal_string \"Selector not found\""}],"id":56630,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"20671:6:98","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":56632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20671:28:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56633,"nodeType":"ExpressionStatement","src":"20671:28:98"}]},"functionSelector":"66e2898c","implemented":true,"kind":"function","modifiers":[],"name":"resolveSelectors","nameLocation":"111:16:98","parameters":{"id":56025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56024,"mutability":"mutable","name":"facetName","nameLocation":"142:9:98","nodeType":"VariableDeclaration","scope":56635,"src":"128:23:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56023,"name":"string","nodeType":"ElementaryTypeName","src":"128:6:98","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"127:25:98"},"returnParameters":{"id":56029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56028,"mutability":"mutable","name":"facetSelectors","nameLocation":"190:14:98","nodeType":"VariableDeclaration","scope":56635,"src":"174:30:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":56026,"name":"bytes4","nodeType":"ElementaryTypeName","src":"174:6:98","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":56027,"nodeType":"ArrayTypeName","src":"174:8:98","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"173:32:98"},"scope":56636,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SelectorLibrary","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[56636],"name":"SelectorLibrary","nameLocation":"80:15:98","scope":56637,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":98} \ No newline at end of file diff --git a/.out/StorableMsgHelper.sol/StorableMsgHelper.json b/.out/StorableMsgHelper.sol/StorableMsgHelper.json index 4110a12a1..931917ddc 100644 --- a/.out/StorableMsgHelper.sol/StorableMsgHelper.json +++ b/.out/StorableMsgHelper.sol/StorableMsgHelper.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"applyType","inputs":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"currentSubnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"IPCMsgType","internalType":"enum IPCMsgType"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"storableMsg","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a576107a79081610020823930815050f35b600080fdfe60806040908082526004918236101561001757600080fd5b600091823560e01c9081632f645753146100be575063f47ad7eb1461003b57600080fd5b60031981813601126100ba5783359067ffffffffffffffff908183116100b65760e08184360301126100b6576024359182116100b657839082360301126100b2579061008b918501908501610460565b905191600282101561009f57602083838152f35b634e487b7160e01b815260218452602490fd5b8380fd5b8480fd5b8280fd5b6003199150846020368401126100b65780359467ffffffffffffffff918287116101c7578660e091019487360301126101c4576020830193602085526101186101078280610622565b60e088870152610120860190610689565b9161013d61012960248a0184610622565b93603f199485888303016060890152610689565b936044890135608087015261015460648a01610239565b1660a086015260848801359063ffffffff60e01b82168092036101c457506101a36101ba94869461019460209b9560c49560c089015260a4870190610636565b918784030160e0880152610668565b91013561010083015203601f198101835282610217565b5190209051908152f35b80fd5b5080fd5b903590603e19813603018212156101e0570190565b600080fd5b6040810190811067ffffffffffffffff82111761020157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761020157604052565b359067ffffffffffffffff821682036101e057565b67ffffffffffffffff81116102015760051b60200190565b35906001600160a01b03821682036101e057565b91906040838203126101e05760405192610293846101e5565b8361029d82610239565b8152602091828101359067ffffffffffffffff82116101e057019280601f850112156101e05783356102ce8161024e565b946102dc6040519687610217565b818652848087019260051b8201019283116101e05784809101915b83831061030657505050500152565b819061031184610266565b81520191019084906102f7565b90602080838303126101e057825167ffffffffffffffff938482116101e05701926040848403126101e05760405193610356856101e5565b805182811681036101e0578552828101519182116101e057019180601f840112156101e05782516103868161024e565b936103946040519586610217565b818552838086019260051b8201019283116101e0578301905b8282106103bd5750505082015290565b81516001600160a01b03811681036101e05781529083019083016103ad565b606090604083019067ffffffffffffffff815116845260209283809201519460408382015285518094520193019160005b82811061041b575050505090565b83516001600160a01b03168552938101939281019260010161040d565b909161044f61045d936040845260408401906103dc565b9160208184039101526103dc565b90565b91909160206104ac6104a461049461048d610486610480868801886101cb565b806101cb565b369061027a565b94806101cb565b61049f3691806101cb565b61027a565b94369061027a565b9373__$a0fe38a9a81205afccc10810b09a4d3f45$__604090815185631ccc893360e11b9889835282806104e760009a8b9460048401610438565b0381865af49182156106185790879899889261051799946105fc575b508551988992839283528860048401610438565b0381855af49586156105f25787966105c6575b508561054d928692855180958194829363c836244d60e01b845260048401610438565b03915af49182156105bd57508591610587575b5061056c575b50505090565b81015151910151511061058157388080610566565b50600190565b90508281813d83116105b6575b61059e8183610217565b810103126100b6575180151581036100b65738610560565b503d610594565b513d87823e3d90fd5b61054d929650906105e986923d808b833e6105e18183610217565b81019061031e565b9692509061052a565b83513d89823e3d90fd5b6106119194503d8085833e6105e18183610217565b9238610503565b84513d89823e3d90fd5b9035603e19823603018112156101e0570190565b9035601e19823603018112156101e057016020813591019167ffffffffffffffff82116101e05781360383136101e057565b908060209392818452848401376000828201840152601f01601f1916010190565b906106948280610622565b9060408152608081019267ffffffffffffffff93846106b285610239565b16604084015260209384810135601e19823603018112156101e057019084823592019582116101e0578160051b360386136101e0578190604060608601525260a08301949060005b81811061074c575050508083610711920190610622565b908281850391015280359060ff82168092036101e0578361073f60409392849361045d975285810190610636565b9390948201520191610668565b9091958580600192838060a01b036107638b610266565b1681520197019291016106fa56fea2646970667358221220a65faec36bfe37cd05bcaf0e3ff1ef3c649765c59832b3ca50e02f0ce0364c9864736f6c63430008130033","sourceMap":"372:867:74:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1231,"length":20}]}}},"deployedBytecode":{"object":"0x60806040908082526004918236101561001757600080fd5b600091823560e01c9081632f645753146100be575063f47ad7eb1461003b57600080fd5b60031981813601126100ba5783359067ffffffffffffffff908183116100b65760e08184360301126100b6576024359182116100b657839082360301126100b2579061008b918501908501610460565b905191600282101561009f57602083838152f35b634e487b7160e01b815260218452602490fd5b8380fd5b8480fd5b8280fd5b6003199150846020368401126100b65780359467ffffffffffffffff918287116101c7578660e091019487360301126101c4576020830193602085526101186101078280610622565b60e088870152610120860190610689565b9161013d61012960248a0184610622565b93603f199485888303016060890152610689565b936044890135608087015261015460648a01610239565b1660a086015260848801359063ffffffff60e01b82168092036101c457506101a36101ba94869461019460209b9560c49560c089015260a4870190610636565b918784030160e0880152610668565b91013561010083015203601f198101835282610217565b5190209051908152f35b80fd5b5080fd5b903590603e19813603018212156101e0570190565b600080fd5b6040810190811067ffffffffffffffff82111761020157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761020157604052565b359067ffffffffffffffff821682036101e057565b67ffffffffffffffff81116102015760051b60200190565b35906001600160a01b03821682036101e057565b91906040838203126101e05760405192610293846101e5565b8361029d82610239565b8152602091828101359067ffffffffffffffff82116101e057019280601f850112156101e05783356102ce8161024e565b946102dc6040519687610217565b818652848087019260051b8201019283116101e05784809101915b83831061030657505050500152565b819061031184610266565b81520191019084906102f7565b90602080838303126101e057825167ffffffffffffffff938482116101e05701926040848403126101e05760405193610356856101e5565b805182811681036101e0578552828101519182116101e057019180601f840112156101e05782516103868161024e565b936103946040519586610217565b818552838086019260051b8201019283116101e0578301905b8282106103bd5750505082015290565b81516001600160a01b03811681036101e05781529083019083016103ad565b606090604083019067ffffffffffffffff815116845260209283809201519460408382015285518094520193019160005b82811061041b575050505090565b83516001600160a01b03168552938101939281019260010161040d565b909161044f61045d936040845260408401906103dc565b9160208184039101526103dc565b90565b91909160206104ac6104a461049461048d610486610480868801886101cb565b806101cb565b369061027a565b94806101cb565b61049f3691806101cb565b61027a565b94369061027a565b9373__$a0fe38a9a81205afccc10810b09a4d3f45$__604090815185631ccc893360e11b9889835282806104e760009a8b9460048401610438565b0381865af49182156106185790879899889261051799946105fc575b508551988992839283528860048401610438565b0381855af49586156105f25787966105c6575b508561054d928692855180958194829363c836244d60e01b845260048401610438565b03915af49182156105bd57508591610587575b5061056c575b50505090565b81015151910151511061058157388080610566565b50600190565b90508281813d83116105b6575b61059e8183610217565b810103126100b6575180151581036100b65738610560565b503d610594565b513d87823e3d90fd5b61054d929650906105e986923d808b833e6105e18183610217565b81019061031e565b9692509061052a565b83513d89823e3d90fd5b6106119194503d8085833e6105e18183610217565b9238610503565b84513d89823e3d90fd5b9035603e19823603018112156101e0570190565b9035601e19823603018112156101e057016020813591019167ffffffffffffffff82116101e05781360383136101e057565b908060209392818452848401376000828201840152601f01601f1916010190565b906106948280610622565b9060408152608081019267ffffffffffffffff93846106b285610239565b16604084015260209384810135601e19823603018112156101e057019084823592019582116101e0578160051b360386136101e0578190604060608601525260a08301949060005b81811061074c575050508083610711920190610622565b908281850391015280359060ff82168092036101e0578361073f60409392849361045d975285810190610636565b9390948201520191610668565b9091958580600192838060a01b036107638b610266565b1681520197019291016106fa56fea2646970667358221220a65faec36bfe37cd05bcaf0e3ff1ef3c649765c59832b3ca50e02f0ce0364c9864736f6c63430008130033","sourceMap":"372:867:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;372:867:74;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;372:867:74;-1:-1:-1;372:867:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1206:23;;372:867;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1206:23;372:867;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;1206:23;;;;;;;;;:::i;:::-;372:867;1196:34;;372:867;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;1206:23;;;372:867;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:74;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;444:649::-;;;;596:10;372:867;;654:12;372:867;596:19;:10;;;;;;:::i;:::-;:19;;:::i;:::-;372:867;;;:::i;:::-;654:12;;;:::i;:::-;:21;372:867;654:21;;;:::i;:::-;372:867;:::i;:::-;;;;;:::i;:::-;723:26;;372:867;;;;;;;;723:36;;;;-1:-1:-1;;723:36:74;-1:-1:-1;723:36:74;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;807:33;723:36;;;;444:649;372:867;;;807:33;;;;;;;;723:36;807:33;;;:::i;:::-;;;;;;;;;;;;;;;444:649;372:867;;855:47;372:867;;;;;;;;;;;;;;855:47;;723:36;855:47;;;:::i;:::-;;;;;;;;;;;;;;;444:649;851:200;;;444:649;1061:25;;;444:649;:::o;851:200::-;922:16;;;372:867;948:25;;;372:867;-1:-1:-1;918:123:74;;851:200;;;;;918:123;1000:26;1007:19;1000:26;:::o;855:47::-;;;;;;;;;;;;;;;;:::i;:::-;;;372:867;;;;;;;;;;;;855:47;;;;;;;;;372:867;;;;;;;;807:33;855:47;807:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;372:867;;;;;;;;;723:36;;;;;;;;;;;;;;:::i;:::-;;;;;;372:867;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;372:867:74;;;;;;1206:23;372:867;-1:-1:-1;;372:867:74;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1199,"length":20}]}}},"methodIdentifiers":{"applyType(StorableMsg,SubnetID)":"f47ad7eb","toHash(StorableMsg)":"2f645753"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"currentSubnet\",\"type\":\"tuple\"}],\"name\":\"applyType\",\"outputs\":[{\"internalType\":\"enum IPCMsgType\",\"name\":\"\",\"type\":\"IPCMsgType\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for manipulating StorableMsg struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/StorableMsgHelper.sol\":\"StorableMsgHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"struct SubnetID","name":"currentSubnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"applyType","outputs":[{"internalType":"enum IPCMsgType","name":"","type":"IPCMsgType"}]},{"inputs":[{"internalType":"struct StorableMsg","name":"storableMsg","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/StorableMsgHelper.sol":"StorableMsgHelper"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/StorableMsgHelper.sol","id":47462,"exportedSymbols":{"IPCMsgType":[37364],"StorableMsg":[49991],"StorableMsgHelper":[47461],"SubnetID":[50077],"SubnetIDHelper":[48072]},"nodeType":"SourceUnit","src":"46:1194:74","nodes":[{"id":47367,"nodeType":"PragmaDirective","src":"46:23:74","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47369,"nodeType":"ImportDirective","src":"71:47:74","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47462,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":47368,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"79:8:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47371,"nodeType":"ImportDirective","src":"119:52:74","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":47462,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":47370,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"127:11:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47373,"nodeType":"ImportDirective","src":"172:57:74","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":47462,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":47372,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"180:14:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47375,"nodeType":"ImportDirective","src":"230:51:74","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":47462,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":47374,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"238:10:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47461,"nodeType":"ContractDefinition","src":"372:867:74","nodes":[{"id":47380,"nodeType":"UsingForDirective","src":"404:34:74","nodes":[],"global":false,"libraryName":{"id":47377,"name":"SubnetIDHelper","nameLocations":["410:14:74"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"410:14:74"},"typeName":{"id":47379,"nodeType":"UserDefinedTypeName","pathNode":{"id":47378,"name":"SubnetID","nameLocations":["429:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"429:8:74"},"referencedDeclaration":50077,"src":"429:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":47444,"nodeType":"FunctionDefinition","src":"444:649:74","nodes":[],"body":{"id":47443,"nodeType":"Block","src":"559:534:74","nodes":[],"statements":[{"assignments":[47394],"declarations":[{"constant":false,"id":47394,"mutability":"mutable","name":"toSubnet","nameLocation":"585:8:74","nodeType":"VariableDeclaration","scope":47443,"src":"569:24:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47393,"nodeType":"UserDefinedTypeName","pathNode":{"id":47392,"name":"SubnetID","nameLocations":["569:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"569:8:74"},"referencedDeclaration":50077,"src":"569:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47398,"initialValue":{"expression":{"expression":{"id":47395,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47383,"src":"596:7:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":47396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"604:2:74","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"596:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":47397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"607:8:74","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"596:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"nodeType":"VariableDeclarationStatement","src":"569:46:74"},{"assignments":[47401],"declarations":[{"constant":false,"id":47401,"mutability":"mutable","name":"fromSubnet","nameLocation":"641:10:74","nodeType":"VariableDeclaration","scope":47443,"src":"625:26:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47400,"nodeType":"UserDefinedTypeName","pathNode":{"id":47399,"name":"SubnetID","nameLocations":["625:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"625:8:74"},"referencedDeclaration":50077,"src":"625:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47405,"initialValue":{"expression":{"expression":{"id":47402,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47383,"src":"654:7:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":47403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"662:4:74","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"654:12:74","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":47404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"667:8:74","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"654:21:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"nodeType":"VariableDeclarationStatement","src":"625:50:74"},{"assignments":[47408],"declarations":[{"constant":false,"id":47408,"mutability":"mutable","name":"currentParentSubnet","nameLocation":"701:19:74","nodeType":"VariableDeclaration","scope":47443,"src":"685:35:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47407,"nodeType":"UserDefinedTypeName","pathNode":{"id":47406,"name":"SubnetID","nameLocations":["685:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"685:8:74"},"referencedDeclaration":50077,"src":"685:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47413,"initialValue":{"arguments":[{"id":47411,"name":"toSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47394,"src":"750:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":47409,"name":"currentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47386,"src":"723:13:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"737:12:74","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":47946,"src":"723:26:74","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":47412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"723:36:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"685:74:74"},{"assignments":[47416],"declarations":[{"constant":false,"id":47416,"mutability":"mutable","name":"messageParentSubnet","nameLocation":"785:19:74","nodeType":"VariableDeclaration","scope":47443,"src":"769:35:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47415,"nodeType":"UserDefinedTypeName","pathNode":{"id":47414,"name":"SubnetID","nameLocations":["769:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"769:8:74"},"referencedDeclaration":50077,"src":"769:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47421,"initialValue":{"arguments":[{"id":47419,"name":"toSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47394,"src":"831:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":47417,"name":"fromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47401,"src":"807:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"818:12:74","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":47946,"src":"807:23:74","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":47420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"807:33:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"769:71:74"},{"condition":{"arguments":[{"id":47424,"name":"messageParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47416,"src":"882:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":47422,"name":"currentParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47408,"src":"855:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"875:6:74","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"855:26:74","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":47425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:47:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47439,"nodeType":"IfStatement","src":"851:200:74","trueBody":{"id":47438,"nodeType":"Block","src":"904:147:74","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47426,"name":"fromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47401,"src":"922:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"933:5:74","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"922:16:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"939:6:74","memberName":"length","nodeType":"MemberAccess","src":"922:23:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"expression":{"id":47429,"name":"messageParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47416,"src":"948:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"968:5:74","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"948:25:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"974:6:74","memberName":"length","nodeType":"MemberAccess","src":"948:32:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"922:58:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47437,"nodeType":"IfStatement","src":"918:123:74","trueBody":{"id":47436,"nodeType":"Block","src":"982:59:74","statements":[{"expression":{"expression":{"id":47433,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"1007:10:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":47434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1018:8:74","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":37363,"src":"1007:19:74","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"functionReturnParameters":47391,"id":47435,"nodeType":"Return","src":"1000:26:74"}]}}]}},{"expression":{"expression":{"id":47440,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"1068:10:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":47441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1079:7:74","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"1068:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"functionReturnParameters":47391,"id":47442,"nodeType":"Return","src":"1061:25:74"}]},"functionSelector":"f47ad7eb","implemented":true,"kind":"function","modifiers":[],"name":"applyType","nameLocation":"453:9:74","parameters":{"id":47387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47383,"mutability":"mutable","name":"message","nameLocation":"484:7:74","nodeType":"VariableDeclaration","scope":47444,"src":"463:28:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg"},"typeName":{"id":47382,"nodeType":"UserDefinedTypeName","pathNode":{"id":47381,"name":"StorableMsg","nameLocations":["463:11:74"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"463:11:74"},"referencedDeclaration":49991,"src":"463:11:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":47386,"mutability":"mutable","name":"currentSubnet","nameLocation":"511:13:74","nodeType":"VariableDeclaration","scope":47444,"src":"493:31:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47385,"nodeType":"UserDefinedTypeName","pathNode":{"id":47384,"name":"SubnetID","nameLocations":["493:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"493:8:74"},"referencedDeclaration":50077,"src":"493:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"462:63:74"},"returnParameters":{"id":47391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47444,"src":"547:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"typeName":{"id":47389,"nodeType":"UserDefinedTypeName","pathNode":{"id":47388,"name":"IPCMsgType","nameLocations":["547:10:74"],"nodeType":"IdentifierPath","referencedDeclaration":37364,"src":"547:10:74"},"referencedDeclaration":37364,"src":"547:10:74","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"src":"546:12:74"},"scope":47461,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47460,"nodeType":"FunctionDefinition","src":"1099:138:74","nodes":[],"body":{"id":47459,"nodeType":"Block","src":"1179:58:74","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":47455,"name":"storableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47447,"src":"1217:11:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}],"expression":{"id":47453,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1206:3:74","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1210:6:74","memberName":"encode","nodeType":"MemberAccess","src":"1206:10:74","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1206:23:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47452,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1196:9:74","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1196:34:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47451,"id":47458,"nodeType":"Return","src":"1189:41:74"}]},"functionSelector":"2f645753","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"1108:6:74","parameters":{"id":47448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47447,"mutability":"mutable","name":"storableMsg","nameLocation":"1136:11:74","nodeType":"VariableDeclaration","scope":47460,"src":"1115:32:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg"},"typeName":{"id":47446,"nodeType":"UserDefinedTypeName","pathNode":{"id":47445,"name":"StorableMsg","nameLocations":["1115:11:74"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"1115:11:74"},"referencedDeclaration":49991,"src":"1115:11:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"}],"src":"1114:34:74"},"returnParameters":{"id":47451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47460,"src":"1170:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1170:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1169:9:74"},"scope":47461,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StorableMsgHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":47376,"nodeType":"StructuredDocumentation","src":"283:89:74","text":"@title Helper library for manipulating StorableMsg struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[47461],"name":"StorableMsgHelper","nameLocation":"380:17:74","scope":47462,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":74} \ No newline at end of file +{"abi":[{"type":"function","name":"applyType","inputs":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"currentSubnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"IPCMsgType","internalType":"enum IPCMsgType"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"storableMsg","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a576107a79081610020823930815050f35b600080fdfe60806040908082526004918236101561001757600080fd5b600091823560e01c9081632f645753146100be575063f47ad7eb1461003b57600080fd5b60031981813601126100ba5783359067ffffffffffffffff908183116100b65760e08184360301126100b6576024359182116100b657839082360301126100b2579061008b918501908501610460565b905191600282101561009f57602083838152f35b634e487b7160e01b815260218452602490fd5b8380fd5b8480fd5b8280fd5b6003199150846020368401126100b65780359467ffffffffffffffff918287116101c7578660e091019487360301126101c4576020830193602085526101186101078280610622565b60e088870152610120860190610689565b9161013d61012960248a0184610622565b93603f199485888303016060890152610689565b936044890135608087015261015460648a01610239565b1660a086015260848801359063ffffffff60e01b82168092036101c457506101a36101ba94869461019460209b9560c49560c089015260a4870190610636565b918784030160e0880152610668565b91013561010083015203601f198101835282610217565b5190209051908152f35b80fd5b5080fd5b903590603e19813603018212156101e0570190565b600080fd5b6040810190811067ffffffffffffffff82111761020157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761020157604052565b359067ffffffffffffffff821682036101e057565b67ffffffffffffffff81116102015760051b60200190565b35906001600160a01b03821682036101e057565b91906040838203126101e05760405192610293846101e5565b8361029d82610239565b8152602091828101359067ffffffffffffffff82116101e057019280601f850112156101e05783356102ce8161024e565b946102dc6040519687610217565b818652848087019260051b8201019283116101e05784809101915b83831061030657505050500152565b819061031184610266565b81520191019084906102f7565b90602080838303126101e057825167ffffffffffffffff938482116101e05701926040848403126101e05760405193610356856101e5565b805182811681036101e0578552828101519182116101e057019180601f840112156101e05782516103868161024e565b936103946040519586610217565b818552838086019260051b8201019283116101e0578301905b8282106103bd5750505082015290565b81516001600160a01b03811681036101e05781529083019083016103ad565b606090604083019067ffffffffffffffff815116845260209283809201519460408382015285518094520193019160005b82811061041b575050505090565b83516001600160a01b03168552938101939281019260010161040d565b909161044f61045d936040845260408401906103dc565b9160208184039101526103dc565b90565b91909160206104ac6104a461049461048d610486610480868801886101cb565b806101cb565b369061027a565b94806101cb565b61049f3691806101cb565b61027a565b94369061027a565b9373__$a0fe38a9a81205afccc10810b09a4d3f45$__604090815185631ccc893360e11b9889835282806104e760009a8b9460048401610438565b0381865af49182156106185790879899889261051799946105fc575b508551988992839283528860048401610438565b0381855af49586156105f25787966105c6575b508561054d928692855180958194829363c836244d60e01b845260048401610438565b03915af49182156105bd57508591610587575b5061056c575b50505090565b81015151910151511061058157388080610566565b50600190565b90508281813d83116105b6575b61059e8183610217565b810103126100b6575180151581036100b65738610560565b503d610594565b513d87823e3d90fd5b61054d929650906105e986923d808b833e6105e18183610217565b81019061031e565b9692509061052a565b83513d89823e3d90fd5b6106119194503d8085833e6105e18183610217565b9238610503565b84513d89823e3d90fd5b9035603e19823603018112156101e0570190565b9035601e19823603018112156101e057016020813591019167ffffffffffffffff82116101e05781360383136101e057565b908060209392818452848401376000828201840152601f01601f1916010190565b906106948280610622565b9060408152608081019267ffffffffffffffff93846106b285610239565b16604084015260209384810135601e19823603018112156101e057019084823592019582116101e0578160051b360386136101e0578190604060608601525260a08301949060005b81811061074c575050508083610711920190610622565b908281850391015280359060ff82168092036101e0578361073f60409392849361045d975285810190610636565b9390948201520191610668565b9091958580600192838060a01b036107638b610266565b1681520197019291016106fa56fea2646970667358221220a65faec36bfe37cd05bcaf0e3ff1ef3c649765c59832b3ca50e02f0ce0364c9864736f6c63430008130033","sourceMap":"372:867:74:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1231,"length":20}]}}},"deployedBytecode":{"object":"0x60806040908082526004918236101561001757600080fd5b600091823560e01c9081632f645753146100be575063f47ad7eb1461003b57600080fd5b60031981813601126100ba5783359067ffffffffffffffff908183116100b65760e08184360301126100b6576024359182116100b657839082360301126100b2579061008b918501908501610460565b905191600282101561009f57602083838152f35b634e487b7160e01b815260218452602490fd5b8380fd5b8480fd5b8280fd5b6003199150846020368401126100b65780359467ffffffffffffffff918287116101c7578660e091019487360301126101c4576020830193602085526101186101078280610622565b60e088870152610120860190610689565b9161013d61012960248a0184610622565b93603f199485888303016060890152610689565b936044890135608087015261015460648a01610239565b1660a086015260848801359063ffffffff60e01b82168092036101c457506101a36101ba94869461019460209b9560c49560c089015260a4870190610636565b918784030160e0880152610668565b91013561010083015203601f198101835282610217565b5190209051908152f35b80fd5b5080fd5b903590603e19813603018212156101e0570190565b600080fd5b6040810190811067ffffffffffffffff82111761020157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761020157604052565b359067ffffffffffffffff821682036101e057565b67ffffffffffffffff81116102015760051b60200190565b35906001600160a01b03821682036101e057565b91906040838203126101e05760405192610293846101e5565b8361029d82610239565b8152602091828101359067ffffffffffffffff82116101e057019280601f850112156101e05783356102ce8161024e565b946102dc6040519687610217565b818652848087019260051b8201019283116101e05784809101915b83831061030657505050500152565b819061031184610266565b81520191019084906102f7565b90602080838303126101e057825167ffffffffffffffff938482116101e05701926040848403126101e05760405193610356856101e5565b805182811681036101e0578552828101519182116101e057019180601f840112156101e05782516103868161024e565b936103946040519586610217565b818552838086019260051b8201019283116101e0578301905b8282106103bd5750505082015290565b81516001600160a01b03811681036101e05781529083019083016103ad565b606090604083019067ffffffffffffffff815116845260209283809201519460408382015285518094520193019160005b82811061041b575050505090565b83516001600160a01b03168552938101939281019260010161040d565b909161044f61045d936040845260408401906103dc565b9160208184039101526103dc565b90565b91909160206104ac6104a461049461048d610486610480868801886101cb565b806101cb565b369061027a565b94806101cb565b61049f3691806101cb565b61027a565b94369061027a565b9373__$a0fe38a9a81205afccc10810b09a4d3f45$__604090815185631ccc893360e11b9889835282806104e760009a8b9460048401610438565b0381865af49182156106185790879899889261051799946105fc575b508551988992839283528860048401610438565b0381855af49586156105f25787966105c6575b508561054d928692855180958194829363c836244d60e01b845260048401610438565b03915af49182156105bd57508591610587575b5061056c575b50505090565b81015151910151511061058157388080610566565b50600190565b90508281813d83116105b6575b61059e8183610217565b810103126100b6575180151581036100b65738610560565b503d610594565b513d87823e3d90fd5b61054d929650906105e986923d808b833e6105e18183610217565b81019061031e565b9692509061052a565b83513d89823e3d90fd5b6106119194503d8085833e6105e18183610217565b9238610503565b84513d89823e3d90fd5b9035603e19823603018112156101e0570190565b9035601e19823603018112156101e057016020813591019167ffffffffffffffff82116101e05781360383136101e057565b908060209392818452848401376000828201840152601f01601f1916010190565b906106948280610622565b9060408152608081019267ffffffffffffffff93846106b285610239565b16604084015260209384810135601e19823603018112156101e057019084823592019582116101e0578160051b360386136101e0578190604060608601525260a08301949060005b81811061074c575050508083610711920190610622565b908281850391015280359060ff82168092036101e0578361073f60409392849361045d975285810190610636565b9390948201520191610668565b9091958580600192838060a01b036107638b610266565b1681520197019291016106fa56fea2646970667358221220a65faec36bfe37cd05bcaf0e3ff1ef3c649765c59832b3ca50e02f0ce0364c9864736f6c63430008130033","sourceMap":"372:867:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;372:867:74;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;372:867:74;-1:-1:-1;372:867:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1206:23;;372:867;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1206:23;372:867;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;1206:23;;;;;;;;;:::i;:::-;372:867;1196:34;;372:867;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;1206:23;;;372:867;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:74;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;444:649::-;;;;596:10;372:867;;654:12;372:867;596:19;:10;;;;;;:::i;:::-;:19;;:::i;:::-;372:867;;;:::i;:::-;654:12;;;:::i;:::-;:21;372:867;654:21;;;:::i;:::-;372:867;:::i;:::-;;;;;:::i;:::-;723:26;;372:867;;;;;;;;723:36;;;;-1:-1:-1;;723:36:74;-1:-1:-1;723:36:74;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;807:33;723:36;;;;444:649;372:867;;;807:33;;;;;;;;723:36;807:33;;;:::i;:::-;;;;;;;;;;;;;;;444:649;372:867;;855:47;372:867;;;;;;;;;;;;;;855:47;;723:36;855:47;;;:::i;:::-;;;;;;;;;;;;;;;444:649;851:200;;;444:649;1061:25;;;444:649;:::o;851:200::-;922:16;;;372:867;948:25;;;372:867;-1:-1:-1;918:123:74;;851:200;;;;;918:123;1000:26;1007:19;1000:26;:::o;855:47::-;;;;;;;;;;;;;;;;:::i;:::-;;;372:867;;;;;;;;;;;;855:47;;;;;;;;;372:867;;;;;;;;807:33;855:47;807:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;372:867;;;;;;;;;723:36;;;;;;;;;;;;;;:::i;:::-;;;;;;372:867;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;372:867:74;;;;;;1206:23;372:867;-1:-1:-1;;372:867:74;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1199,"length":20}]}}},"methodIdentifiers":{"applyType(StorableMsg,SubnetID)":"f47ad7eb","toHash(StorableMsg)":"2f645753"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"currentSubnet\",\"type\":\"tuple\"}],\"name\":\"applyType\",\"outputs\":[{\"internalType\":\"enum IPCMsgType\",\"name\":\"\",\"type\":\"IPCMsgType\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for manipulating StorableMsg struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/StorableMsgHelper.sol\":\"StorableMsgHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"struct SubnetID","name":"currentSubnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"applyType","outputs":[{"internalType":"enum IPCMsgType","name":"","type":"IPCMsgType"}]},{"inputs":[{"internalType":"struct StorableMsg","name":"storableMsg","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/StorableMsgHelper.sol":"StorableMsgHelper"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/StorableMsgHelper.sol","id":47415,"exportedSymbols":{"IPCMsgType":[37364],"StorableMsg":[49944],"StorableMsgHelper":[47414],"SubnetID":[50030],"SubnetIDHelper":[48025]},"nodeType":"SourceUnit","src":"46:1194:74","nodes":[{"id":47320,"nodeType":"PragmaDirective","src":"46:23:74","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47322,"nodeType":"ImportDirective","src":"71:47:74","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47415,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":47321,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"79:8:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47324,"nodeType":"ImportDirective","src":"119:52:74","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":47415,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":47323,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"127:11:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47326,"nodeType":"ImportDirective","src":"172:57:74","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":47415,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":47325,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"180:14:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47328,"nodeType":"ImportDirective","src":"230:51:74","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":47415,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":47327,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"238:10:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47414,"nodeType":"ContractDefinition","src":"372:867:74","nodes":[{"id":47333,"nodeType":"UsingForDirective","src":"404:34:74","nodes":[],"global":false,"libraryName":{"id":47330,"name":"SubnetIDHelper","nameLocations":["410:14:74"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"410:14:74"},"typeName":{"id":47332,"nodeType":"UserDefinedTypeName","pathNode":{"id":47331,"name":"SubnetID","nameLocations":["429:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"429:8:74"},"referencedDeclaration":50030,"src":"429:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":47397,"nodeType":"FunctionDefinition","src":"444:649:74","nodes":[],"body":{"id":47396,"nodeType":"Block","src":"559:534:74","nodes":[],"statements":[{"assignments":[47347],"declarations":[{"constant":false,"id":47347,"mutability":"mutable","name":"toSubnet","nameLocation":"585:8:74","nodeType":"VariableDeclaration","scope":47396,"src":"569:24:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47346,"nodeType":"UserDefinedTypeName","pathNode":{"id":47345,"name":"SubnetID","nameLocations":["569:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"569:8:74"},"referencedDeclaration":50030,"src":"569:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47351,"initialValue":{"expression":{"expression":{"id":47348,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47336,"src":"596:7:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":47349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"604:2:74","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49933,"src":"596:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":47350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"607:8:74","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"596:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"nodeType":"VariableDeclarationStatement","src":"569:46:74"},{"assignments":[47354],"declarations":[{"constant":false,"id":47354,"mutability":"mutable","name":"fromSubnet","nameLocation":"641:10:74","nodeType":"VariableDeclaration","scope":47396,"src":"625:26:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47353,"nodeType":"UserDefinedTypeName","pathNode":{"id":47352,"name":"SubnetID","nameLocations":["625:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"625:8:74"},"referencedDeclaration":50030,"src":"625:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47358,"initialValue":{"expression":{"expression":{"id":47355,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47336,"src":"654:7:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":47356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"662:4:74","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49930,"src":"654:12:74","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":47357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"667:8:74","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"654:21:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"nodeType":"VariableDeclarationStatement","src":"625:50:74"},{"assignments":[47361],"declarations":[{"constant":false,"id":47361,"mutability":"mutable","name":"currentParentSubnet","nameLocation":"701:19:74","nodeType":"VariableDeclaration","scope":47396,"src":"685:35:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47360,"nodeType":"UserDefinedTypeName","pathNode":{"id":47359,"name":"SubnetID","nameLocations":["685:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"685:8:74"},"referencedDeclaration":50030,"src":"685:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47366,"initialValue":{"arguments":[{"id":47364,"name":"toSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47347,"src":"750:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":47362,"name":"currentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47339,"src":"723:13:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"737:12:74","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":47899,"src":"723:26:74","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":47365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"723:36:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"685:74:74"},{"assignments":[47369],"declarations":[{"constant":false,"id":47369,"mutability":"mutable","name":"messageParentSubnet","nameLocation":"785:19:74","nodeType":"VariableDeclaration","scope":47396,"src":"769:35:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47368,"nodeType":"UserDefinedTypeName","pathNode":{"id":47367,"name":"SubnetID","nameLocations":["769:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"769:8:74"},"referencedDeclaration":50030,"src":"769:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47374,"initialValue":{"arguments":[{"id":47372,"name":"toSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47347,"src":"831:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":47370,"name":"fromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47354,"src":"807:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"818:12:74","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":47899,"src":"807:23:74","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":47373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"807:33:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"769:71:74"},{"condition":{"arguments":[{"id":47377,"name":"messageParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47369,"src":"882:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":47375,"name":"currentParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47361,"src":"855:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"875:6:74","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47778,"src":"855:26:74","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":47378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:47:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47392,"nodeType":"IfStatement","src":"851:200:74","trueBody":{"id":47391,"nodeType":"Block","src":"904:147:74","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47379,"name":"fromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47354,"src":"922:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"933:5:74","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"922:16:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"939:6:74","memberName":"length","nodeType":"MemberAccess","src":"922:23:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"expression":{"id":47382,"name":"messageParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47369,"src":"948:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"968:5:74","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"948:25:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"974:6:74","memberName":"length","nodeType":"MemberAccess","src":"948:32:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"922:58:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47390,"nodeType":"IfStatement","src":"918:123:74","trueBody":{"id":47389,"nodeType":"Block","src":"982:59:74","statements":[{"expression":{"expression":{"id":47386,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"1007:10:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":47387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1018:8:74","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":37363,"src":"1007:19:74","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"functionReturnParameters":47344,"id":47388,"nodeType":"Return","src":"1000:26:74"}]}}]}},{"expression":{"expression":{"id":47393,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"1068:10:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":47394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1079:7:74","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"1068:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"functionReturnParameters":47344,"id":47395,"nodeType":"Return","src":"1061:25:74"}]},"functionSelector":"f47ad7eb","implemented":true,"kind":"function","modifiers":[],"name":"applyType","nameLocation":"453:9:74","parameters":{"id":47340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47336,"mutability":"mutable","name":"message","nameLocation":"484:7:74","nodeType":"VariableDeclaration","scope":47397,"src":"463:28:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg"},"typeName":{"id":47335,"nodeType":"UserDefinedTypeName","pathNode":{"id":47334,"name":"StorableMsg","nameLocations":["463:11:74"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"463:11:74"},"referencedDeclaration":49944,"src":"463:11:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":47339,"mutability":"mutable","name":"currentSubnet","nameLocation":"511:13:74","nodeType":"VariableDeclaration","scope":47397,"src":"493:31:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47338,"nodeType":"UserDefinedTypeName","pathNode":{"id":47337,"name":"SubnetID","nameLocations":["493:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"493:8:74"},"referencedDeclaration":50030,"src":"493:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"462:63:74"},"returnParameters":{"id":47344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47397,"src":"547:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"typeName":{"id":47342,"nodeType":"UserDefinedTypeName","pathNode":{"id":47341,"name":"IPCMsgType","nameLocations":["547:10:74"],"nodeType":"IdentifierPath","referencedDeclaration":37364,"src":"547:10:74"},"referencedDeclaration":37364,"src":"547:10:74","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"src":"546:12:74"},"scope":47414,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47413,"nodeType":"FunctionDefinition","src":"1099:138:74","nodes":[],"body":{"id":47412,"nodeType":"Block","src":"1179:58:74","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":47408,"name":"storableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47400,"src":"1217:11:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg calldata"}],"expression":{"id":47406,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1206:3:74","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1210:6:74","memberName":"encode","nodeType":"MemberAccess","src":"1206:10:74","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1206:23:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47405,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1196:9:74","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1196:34:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47404,"id":47411,"nodeType":"Return","src":"1189:41:74"}]},"functionSelector":"2f645753","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"1108:6:74","parameters":{"id":47401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47400,"mutability":"mutable","name":"storableMsg","nameLocation":"1136:11:74","nodeType":"VariableDeclaration","scope":47413,"src":"1115:32:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_calldata_ptr","typeString":"struct StorableMsg"},"typeName":{"id":47399,"nodeType":"UserDefinedTypeName","pathNode":{"id":47398,"name":"StorableMsg","nameLocations":["1115:11:74"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"1115:11:74"},"referencedDeclaration":49944,"src":"1115:11:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"}],"src":"1114:34:74"},"returnParameters":{"id":47404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47413,"src":"1170:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1170:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1169:9:74"},"scope":47414,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StorableMsgHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":47329,"nodeType":"StructuredDocumentation","src":"283:89:74","text":"@title Helper library for manipulating StorableMsg struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[47414],"name":"StorableMsgHelper","nameLocation":"380:17:74","scope":47415,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":74} \ No newline at end of file diff --git a/.out/Subnet.sol/Subnet.json b/.out/Subnet.sol/Subnet.json index 4f44c955d..09849b762 100644 --- a/.out/Subnet.sol/Subnet.json +++ b/.out/Subnet.sol/Subnet.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/Subnet.sol","id":50230,"exportedSymbols":{"AddressStakingReleases":[50140],"FvmAddress":[49998],"IPCAddress":[50204],"MaxPQ":[48411],"Membership":[50218],"MinPQ":[49029],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"Subnet":[50091],"SubnetID":[50077],"SupplyKind":[50229],"SupplySource":[50226],"Validator":[50211],"ValidatorInfo":[50161],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:5370:83","nodes":[{"id":50061,"nodeType":"PragmaDirective","src":"46:23:83","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50063,"nodeType":"ImportDirective","src":"71:38:83","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./Subnet.sol","nameLocation":"-1:-1:-1","scope":50230,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":50062,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"79:8:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50065,"nodeType":"ImportDirective","src":"110:44:83","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"./FvmAddress.sol","nameLocation":"-1:-1:-1","scope":50230,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":50064,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"118:10:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50067,"nodeType":"ImportDirective","src":"155:51:83","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"../lib/priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":50230,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":50066,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"163:5:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50069,"nodeType":"ImportDirective","src":"207:51:83","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"../lib/priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":50230,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":50068,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"215:5:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50077,"nodeType":"StructDefinition","src":"296:142:83","nodes":[],"canonicalName":"SubnetID","members":[{"constant":false,"id":50072,"mutability":"mutable","name":"root","nameLocation":"368:4:83","nodeType":"VariableDeclaration","scope":50077,"src":"361:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50071,"name":"uint64","nodeType":"ElementaryTypeName","src":"361:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50076,"mutability":"mutable","name":"route","nameLocation":"430:5:83","nodeType":"VariableDeclaration","scope":50077,"src":"420:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50074,"name":"address","nodeType":"ElementaryTypeName","src":"420:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50075,"nodeType":"ArrayTypeName","src":"420:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"SubnetID","nameLocation":"303:8:83","scope":50230,"visibility":"public"},{"id":50091,"nodeType":"StructDefinition","src":"467:161:83","nodes":[],"canonicalName":"Subnet","members":[{"constant":false,"id":50079,"mutability":"mutable","name":"stake","nameLocation":"495:5:83","nodeType":"VariableDeclaration","scope":50091,"src":"487:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50078,"name":"uint256","nodeType":"ElementaryTypeName","src":"487:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50081,"mutability":"mutable","name":"genesisEpoch","nameLocation":"514:12:83","nodeType":"VariableDeclaration","scope":50091,"src":"506:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50080,"name":"uint256","nodeType":"ElementaryTypeName","src":"506:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50083,"mutability":"mutable","name":"circSupply","nameLocation":"540:10:83","nodeType":"VariableDeclaration","scope":50091,"src":"532:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50082,"name":"uint256","nodeType":"ElementaryTypeName","src":"532:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50085,"mutability":"mutable","name":"topDownNonce","nameLocation":"563:12:83","nodeType":"VariableDeclaration","scope":50091,"src":"556:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50084,"name":"uint64","nodeType":"ElementaryTypeName","src":"556:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50087,"mutability":"mutable","name":"appliedBottomUpNonce","nameLocation":"588:20:83","nodeType":"VariableDeclaration","scope":50091,"src":"581:27:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50086,"name":"uint64","nodeType":"ElementaryTypeName","src":"581:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50090,"mutability":"mutable","name":"id","nameLocation":"623:2:83","nodeType":"VariableDeclaration","scope":50091,"src":"614:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":50089,"nodeType":"UserDefinedTypeName","pathNode":{"id":50088,"name":"SubnetID","nameLocations":["614:8:83"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"614:8:83"},"referencedDeclaration":50077,"src":"614:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"name":"Subnet","nameLocation":"474:6:83","scope":50230,"visibility":"public"},{"id":50096,"nodeType":"EnumDefinition","src":"669:91:83","nodes":[],"canonicalName":"StakingOperation","members":[{"id":50092,"name":"Deposit","nameLocation":"697:7:83","nodeType":"EnumValue","src":"697:7:83"},{"id":50093,"name":"Withdraw","nameLocation":"710:8:83","nodeType":"EnumValue","src":"710:8:83"},{"id":50094,"name":"SetMetadata","nameLocation":"724:11:83","nodeType":"EnumValue","src":"724:11:83"},{"id":50095,"name":"SetFederatedPower","nameLocation":"741:17:83","nodeType":"EnumValue","src":"741:17:83"}],"name":"StakingOperation","nameLocation":"674:16:83"},{"id":50104,"nodeType":"StructDefinition","src":"815:91:83","nodes":[],"canonicalName":"StakingChange","members":[{"constant":false,"id":50099,"mutability":"mutable","name":"op","nameLocation":"859:2:83","nodeType":"VariableDeclaration","scope":50104,"src":"842:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"typeName":{"id":50098,"nodeType":"UserDefinedTypeName","pathNode":{"id":50097,"name":"StakingOperation","nameLocations":["842:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":50096,"src":"842:16:83"},"referencedDeclaration":50096,"src":"842:16:83","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":50101,"mutability":"mutable","name":"payload","nameLocation":"873:7:83","nodeType":"VariableDeclaration","scope":50104,"src":"867:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":50100,"name":"bytes","nodeType":"ElementaryTypeName","src":"867:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":50103,"mutability":"mutable","name":"validator","nameLocation":"894:9:83","nodeType":"VariableDeclaration","scope":50104,"src":"886:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50102,"name":"address","nodeType":"ElementaryTypeName","src":"886:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakingChange","nameLocation":"822:13:83","scope":50230,"visibility":"public"},{"id":50110,"nodeType":"StructDefinition","src":"987:89:83","nodes":[],"canonicalName":"StakingChangeRequest","members":[{"constant":false,"id":50107,"mutability":"mutable","name":"change","nameLocation":"1035:6:83","nodeType":"VariableDeclaration","scope":50110,"src":"1021:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":50106,"nodeType":"UserDefinedTypeName","pathNode":{"id":50105,"name":"StakingChange","nameLocations":["1021:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"1021:13:83"},"referencedDeclaration":50104,"src":"1021:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"},{"constant":false,"id":50109,"mutability":"mutable","name":"configurationNumber","nameLocation":"1054:19:83","nodeType":"VariableDeclaration","scope":50110,"src":"1047:26:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50108,"name":"uint64","nodeType":"ElementaryTypeName","src":"1047:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"StakingChangeRequest","nameLocation":"994:20:83","scope":50230,"visibility":"public"},{"id":50123,"nodeType":"StructDefinition","src":"1125:356:83","nodes":[],"canonicalName":"StakingChangeLog","members":[{"constant":false,"id":50113,"mutability":"mutable","name":"nextConfigurationNumber","nameLocation":"1234:23:83","nodeType":"VariableDeclaration","scope":50123,"src":"1227:30:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50112,"name":"uint64","nodeType":"ElementaryTypeName","src":"1227:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50116,"mutability":"mutable","name":"startConfigurationNumber","nameLocation":"1328:24:83","nodeType":"VariableDeclaration","scope":50123,"src":"1321:31:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50115,"name":"uint64","nodeType":"ElementaryTypeName","src":"1321:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50122,"mutability":"mutable","name":"changes","nameLocation":"1471:7:83","nodeType":"VariableDeclaration","scope":50123,"src":"1438:40:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50104_storage_$","typeString":"mapping(uint64 => struct StakingChange)"},"typeName":{"id":50121,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50118,"name":"uint64","nodeType":"ElementaryTypeName","src":"1446:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"1438:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50104_storage_$","typeString":"mapping(uint64 => struct StakingChange)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50120,"nodeType":"UserDefinedTypeName","pathNode":{"id":50119,"name":"StakingChange","nameLocations":["1456:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"1456:13:83"},"referencedDeclaration":50104,"src":"1456:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}}},"visibility":"internal"}],"name":"StakingChangeLog","nameLocation":"1132:16:83","scope":50230,"visibility":"public"},{"id":50130,"nodeType":"StructDefinition","src":"1533:189:83","nodes":[],"canonicalName":"StakingRelease","members":[{"constant":false,"id":50126,"mutability":"mutable","name":"releaseAt","nameLocation":"1633:9:83","nodeType":"VariableDeclaration","scope":50130,"src":"1625:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50125,"name":"uint256","nodeType":"ElementaryTypeName","src":"1625:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50129,"mutability":"mutable","name":"amount","nameLocation":"1713:6:83","nodeType":"VariableDeclaration","scope":50130,"src":"1705:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50128,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakingRelease","nameLocation":"1540:14:83","scope":50230,"visibility":"public"},{"id":50140,"nodeType":"StructDefinition","src":"1895:121:83","nodes":[],"canonicalName":"AddressStakingReleases","members":[{"constant":false,"id":50132,"mutability":"mutable","name":"length","nameLocation":"1938:6:83","nodeType":"VariableDeclaration","scope":50140,"src":"1931:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50131,"name":"uint16","nodeType":"ElementaryTypeName","src":"1931:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":50134,"mutability":"mutable","name":"startIdx","nameLocation":"1957:8:83","nodeType":"VariableDeclaration","scope":50140,"src":"1950:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50133,"name":"uint16","nodeType":"ElementaryTypeName","src":"1950:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":50139,"mutability":"mutable","name":"releases","nameLocation":"2005:8:83","nodeType":"VariableDeclaration","scope":50140,"src":"1971:42:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease)"},"typeName":{"id":50138,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50135,"name":"uint16","nodeType":"ElementaryTypeName","src":"1979:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1971:33:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50137,"nodeType":"UserDefinedTypeName","pathNode":{"id":50136,"name":"StakingRelease","nameLocations":["1989:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1989:14:83"},"referencedDeclaration":50130,"src":"1989:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}}},"visibility":"internal"}],"name":"AddressStakingReleases","nameLocation":"1902:22:83","scope":50230,"visibility":"public"},{"id":50150,"nodeType":"StructDefinition","src":"2065:246:83","nodes":[],"canonicalName":"StakingReleaseQueue","members":[{"constant":false,"id":50143,"mutability":"mutable","name":"lockingDuration","nameLocation":"2170:15:83","nodeType":"VariableDeclaration","scope":50150,"src":"2162:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50142,"name":"uint256","nodeType":"ElementaryTypeName","src":"2162:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50149,"mutability":"mutable","name":"releases","nameLocation":"2300:8:83","nodeType":"VariableDeclaration","scope":50150,"src":"2257:51:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases)"},"typeName":{"id":50148,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50145,"name":"address","nodeType":"ElementaryTypeName","src":"2265:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2257:42:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50147,"nodeType":"UserDefinedTypeName","pathNode":{"id":50146,"name":"AddressStakingReleases","nameLocations":["2276:22:83"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2276:22:83"},"referencedDeclaration":50140,"src":"2276:22:83","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},"visibility":"internal"}],"name":"StakingReleaseQueue","nameLocation":"2072:19:83","scope":50230,"visibility":"public"},{"id":50161,"nodeType":"StructDefinition","src":"2615:381:83","nodes":[],"canonicalName":"ValidatorInfo","members":[{"constant":false,"id":50153,"mutability":"mutable","name":"federatedPower","nameLocation":"2690:14:83","nodeType":"VariableDeclaration","scope":50161,"src":"2682:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50152,"name":"uint256","nodeType":"ElementaryTypeName","src":"2682:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50155,"mutability":"mutable","name":"confirmedCollateral","nameLocation":"2718:19:83","nodeType":"VariableDeclaration","scope":50161,"src":"2710:27:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50154,"name":"uint256","nodeType":"ElementaryTypeName","src":"2710:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50157,"mutability":"mutable","name":"totalCollateral","nameLocation":"2751:15:83","nodeType":"VariableDeclaration","scope":50161,"src":"2743:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50156,"name":"uint256","nodeType":"ElementaryTypeName","src":"2743:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50160,"mutability":"mutable","name":"metadata","nameLocation":"2985:8:83","nodeType":"VariableDeclaration","scope":50161,"src":"2979:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":50159,"name":"bytes","nodeType":"ElementaryTypeName","src":"2979:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ValidatorInfo","nameLocation":"2622:13:83","scope":50230,"visibility":"public"},{"id":50165,"nodeType":"EnumDefinition","src":"3057:290:83","nodes":[],"canonicalName":"PermissionMode","members":[{"id":50162,"name":"Collateral","nameLocation":"3146:10:83","nodeType":"EnumValue","src":"3146:10:83"},{"id":50163,"name":"Federated","nameLocation":"3225:9:83","nodeType":"EnumValue","src":"3225:9:83"},{"id":50164,"name":"Static","nameLocation":"3339:6:83","nodeType":"EnumValue","src":"3339:6:83"}],"name":"PermissionMode","nameLocation":"3062:14:83"},{"id":50190,"nodeType":"StructDefinition","src":"3923:576:83","nodes":[],"canonicalName":"ValidatorSet","members":[{"constant":false,"id":50169,"mutability":"mutable","name":"permissionMode","nameLocation":"4007:14:83","nodeType":"VariableDeclaration","scope":50190,"src":"3992:29:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":50168,"nodeType":"UserDefinedTypeName","pathNode":{"id":50167,"name":"PermissionMode","nameLocations":["3992:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"3992:14:83"},"referencedDeclaration":50165,"src":"3992:14:83","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":50172,"mutability":"mutable","name":"activeLimit","nameLocation":"4089:11:83","nodeType":"VariableDeclaration","scope":50190,"src":"4082:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50171,"name":"uint16","nodeType":"ElementaryTypeName","src":"4082:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":50175,"mutability":"mutable","name":"totalConfirmedCollateral","nameLocation":"4154:24:83","nodeType":"VariableDeclaration","scope":50190,"src":"4146:32:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50174,"name":"uint256","nodeType":"ElementaryTypeName","src":"4146:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50181,"mutability":"mutable","name":"validators","nameLocation":"4284:10:83","nodeType":"VariableDeclaration","scope":50190,"src":"4250:44:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo)"},"typeName":{"id":50180,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50177,"name":"address","nodeType":"ElementaryTypeName","src":"4258:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4250:33:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50179,"nodeType":"UserDefinedTypeName","pathNode":{"id":50178,"name":"ValidatorInfo","nameLocations":["4269:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":50161,"src":"4269:13:83"},"referencedDeclaration":50161,"src":"4269:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo"}}},"visibility":"internal"},{"constant":false,"id":50185,"mutability":"mutable","name":"activeValidators","nameLocation":"4378:16:83","nodeType":"VariableDeclaration","scope":50190,"src":"4372:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":50184,"nodeType":"UserDefinedTypeName","pathNode":{"id":50183,"name":"MinPQ","nameLocations":["4372:5:83"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"4372:5:83"},"referencedDeclaration":49029,"src":"4372:5:83","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":50189,"mutability":"mutable","name":"waitingValidators","nameLocation":"4479:17:83","nodeType":"VariableDeclaration","scope":50190,"src":"4473:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":50188,"nodeType":"UserDefinedTypeName","pathNode":{"id":50187,"name":"MaxPQ","nameLocations":["4473:5:83"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"4473:5:83"},"referencedDeclaration":48411,"src":"4473:5:83","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"}],"name":"ValidatorSet","nameLocation":"3930:12:83","scope":50230,"visibility":"public"},{"id":50197,"nodeType":"StructDefinition","src":"4578:93:83","nodes":[],"canonicalName":"ParentValidatorsTracker","members":[{"constant":false,"id":50193,"mutability":"mutable","name":"validators","nameLocation":"4628:10:83","nodeType":"VariableDeclaration","scope":50197,"src":"4615:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":50192,"nodeType":"UserDefinedTypeName","pathNode":{"id":50191,"name":"ValidatorSet","nameLocations":["4615:12:83"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4615:12:83"},"referencedDeclaration":50190,"src":"4615:12:83","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":50196,"mutability":"mutable","name":"changes","nameLocation":"4661:7:83","nodeType":"VariableDeclaration","scope":50197,"src":"4644:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":50195,"nodeType":"UserDefinedTypeName","pathNode":{"id":50194,"name":"StakingChangeLog","nameLocations":["4644:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"4644:16:83"},"referencedDeclaration":50123,"src":"4644:16:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"name":"ParentValidatorsTracker","nameLocation":"4585:23:83","scope":50230,"visibility":"public"},{"id":50204,"nodeType":"StructDefinition","src":"4706:71:83","nodes":[],"canonicalName":"IPCAddress","members":[{"constant":false,"id":50200,"mutability":"mutable","name":"subnetId","nameLocation":"4739:8:83","nodeType":"VariableDeclaration","scope":50204,"src":"4730:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":50199,"nodeType":"UserDefinedTypeName","pathNode":{"id":50198,"name":"SubnetID","nameLocations":["4730:8:83"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4730:8:83"},"referencedDeclaration":50077,"src":"4730:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":50203,"mutability":"mutable","name":"rawAddress","nameLocation":"4764:10:83","nodeType":"VariableDeclaration","scope":50204,"src":"4753:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"},"typeName":{"id":50202,"nodeType":"UserDefinedTypeName","pathNode":{"id":50201,"name":"FvmAddress","nameLocations":["4753:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"4753:10:83"},"referencedDeclaration":49998,"src":"4753:10:83","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"name":"IPCAddress","nameLocation":"4713:10:83","scope":50230,"visibility":"public"},{"id":50211,"nodeType":"StructDefinition","src":"4831:78:83","nodes":[],"canonicalName":"Validator","members":[{"constant":false,"id":50206,"mutability":"mutable","name":"weight","nameLocation":"4862:6:83","nodeType":"VariableDeclaration","scope":50211,"src":"4854:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50205,"name":"uint256","nodeType":"ElementaryTypeName","src":"4854:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50208,"mutability":"mutable","name":"addr","nameLocation":"4882:4:83","nodeType":"VariableDeclaration","scope":50211,"src":"4874:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50207,"name":"address","nodeType":"ElementaryTypeName","src":"4874:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50210,"mutability":"mutable","name":"metadata","nameLocation":"4898:8:83","nodeType":"VariableDeclaration","scope":50211,"src":"4892:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":50209,"name":"bytes","nodeType":"ElementaryTypeName","src":"4892:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Validator","nameLocation":"4838:9:83","scope":50230,"visibility":"public"},{"id":50218,"nodeType":"StructDefinition","src":"4969:81:83","nodes":[],"canonicalName":"Membership","members":[{"constant":false,"id":50215,"mutability":"mutable","name":"validators","nameLocation":"5005:10:83","nodeType":"VariableDeclaration","scope":50218,"src":"4993:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":50213,"nodeType":"UserDefinedTypeName","pathNode":{"id":50212,"name":"Validator","nameLocations":["4993:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"4993:9:83"},"referencedDeclaration":50211,"src":"4993:9:83","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":50214,"nodeType":"ArrayTypeName","src":"4993:11:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":50217,"mutability":"mutable","name":"configurationNumber","nameLocation":"5028:19:83","nodeType":"VariableDeclaration","scope":50218,"src":"5021:26:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50216,"name":"uint64","nodeType":"ElementaryTypeName","src":"5021:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Membership","nameLocation":"4976:10:83","scope":50230,"visibility":"public"},{"id":50226,"nodeType":"StructDefinition","src":"5124:186:83","nodes":[],"canonicalName":"SupplySource","members":[{"constant":false,"id":50222,"mutability":"mutable","name":"kind","nameLocation":"5197:4:83","nodeType":"VariableDeclaration","scope":50226,"src":"5186:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":50221,"nodeType":"UserDefinedTypeName","pathNode":{"id":50220,"name":"SupplyKind","nameLocations":["5186:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"5186:10:83"},"referencedDeclaration":50229,"src":"5186:10:83","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"},{"constant":false,"id":50225,"mutability":"mutable","name":"tokenAddress","nameLocation":"5295:12:83","nodeType":"VariableDeclaration","scope":50226,"src":"5287:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50224,"name":"address","nodeType":"ElementaryTypeName","src":"5287:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SupplySource","nameLocation":"5131:12:83","scope":50230,"visibility":"public"},{"id":50229,"nodeType":"EnumDefinition","src":"5374:41:83","nodes":[],"canonicalName":"SupplyKind","members":[{"id":50227,"name":"Native","nameLocation":"5396:6:83","nodeType":"EnumValue","src":"5396:6:83"},{"id":50228,"name":"ERC20","nameLocation":"5408:5:83","nodeType":"EnumValue","src":"5408:5:83"}],"name":"SupplyKind","nameLocation":"5379:10:83"}],"license":"MIT OR Apache-2.0"},"id":83} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/Subnet.sol","id":50183,"exportedSymbols":{"AddressStakingReleases":[50093],"FvmAddress":[49951],"IPCAddress":[50157],"MaxPQ":[48364],"Membership":[50171],"MinPQ":[48982],"ParentValidatorsTracker":[50150],"PermissionMode":[50118],"StakingChange":[50057],"StakingChangeLog":[50076],"StakingChangeRequest":[50063],"StakingOperation":[50049],"StakingRelease":[50083],"StakingReleaseQueue":[50103],"Subnet":[50044],"SubnetID":[50030],"SupplyKind":[50182],"SupplySource":[50179],"Validator":[50164],"ValidatorInfo":[50114],"ValidatorSet":[50143]},"nodeType":"SourceUnit","src":"46:5370:83","nodes":[{"id":50014,"nodeType":"PragmaDirective","src":"46:23:83","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50016,"nodeType":"ImportDirective","src":"71:38:83","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./Subnet.sol","nameLocation":"-1:-1:-1","scope":50183,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":50015,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"79:8:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50018,"nodeType":"ImportDirective","src":"110:44:83","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"./FvmAddress.sol","nameLocation":"-1:-1:-1","scope":50183,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":50017,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"118:10:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50020,"nodeType":"ImportDirective","src":"155:51:83","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"../lib/priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":50183,"sourceUnit":48970,"symbolAliases":[{"foreign":{"id":50019,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48364,"src":"163:5:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50022,"nodeType":"ImportDirective","src":"207:51:83","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"../lib/priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":50183,"sourceUnit":49589,"symbolAliases":[{"foreign":{"id":50021,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48982,"src":"215:5:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50030,"nodeType":"StructDefinition","src":"296:142:83","nodes":[],"canonicalName":"SubnetID","members":[{"constant":false,"id":50025,"mutability":"mutable","name":"root","nameLocation":"368:4:83","nodeType":"VariableDeclaration","scope":50030,"src":"361:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50024,"name":"uint64","nodeType":"ElementaryTypeName","src":"361:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50029,"mutability":"mutable","name":"route","nameLocation":"430:5:83","nodeType":"VariableDeclaration","scope":50030,"src":"420:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50027,"name":"address","nodeType":"ElementaryTypeName","src":"420:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50028,"nodeType":"ArrayTypeName","src":"420:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"SubnetID","nameLocation":"303:8:83","scope":50183,"visibility":"public"},{"id":50044,"nodeType":"StructDefinition","src":"467:161:83","nodes":[],"canonicalName":"Subnet","members":[{"constant":false,"id":50032,"mutability":"mutable","name":"stake","nameLocation":"495:5:83","nodeType":"VariableDeclaration","scope":50044,"src":"487:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50031,"name":"uint256","nodeType":"ElementaryTypeName","src":"487:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50034,"mutability":"mutable","name":"genesisEpoch","nameLocation":"514:12:83","nodeType":"VariableDeclaration","scope":50044,"src":"506:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50033,"name":"uint256","nodeType":"ElementaryTypeName","src":"506:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50036,"mutability":"mutable","name":"circSupply","nameLocation":"540:10:83","nodeType":"VariableDeclaration","scope":50044,"src":"532:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50035,"name":"uint256","nodeType":"ElementaryTypeName","src":"532:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50038,"mutability":"mutable","name":"topDownNonce","nameLocation":"563:12:83","nodeType":"VariableDeclaration","scope":50044,"src":"556:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50037,"name":"uint64","nodeType":"ElementaryTypeName","src":"556:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50040,"mutability":"mutable","name":"appliedBottomUpNonce","nameLocation":"588:20:83","nodeType":"VariableDeclaration","scope":50044,"src":"581:27:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50039,"name":"uint64","nodeType":"ElementaryTypeName","src":"581:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50043,"mutability":"mutable","name":"id","nameLocation":"623:2:83","nodeType":"VariableDeclaration","scope":50044,"src":"614:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":50042,"nodeType":"UserDefinedTypeName","pathNode":{"id":50041,"name":"SubnetID","nameLocations":["614:8:83"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"614:8:83"},"referencedDeclaration":50030,"src":"614:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"name":"Subnet","nameLocation":"474:6:83","scope":50183,"visibility":"public"},{"id":50049,"nodeType":"EnumDefinition","src":"669:91:83","nodes":[],"canonicalName":"StakingOperation","members":[{"id":50045,"name":"Deposit","nameLocation":"697:7:83","nodeType":"EnumValue","src":"697:7:83"},{"id":50046,"name":"Withdraw","nameLocation":"710:8:83","nodeType":"EnumValue","src":"710:8:83"},{"id":50047,"name":"SetMetadata","nameLocation":"724:11:83","nodeType":"EnumValue","src":"724:11:83"},{"id":50048,"name":"SetFederatedPower","nameLocation":"741:17:83","nodeType":"EnumValue","src":"741:17:83"}],"name":"StakingOperation","nameLocation":"674:16:83"},{"id":50057,"nodeType":"StructDefinition","src":"815:91:83","nodes":[],"canonicalName":"StakingChange","members":[{"constant":false,"id":50052,"mutability":"mutable","name":"op","nameLocation":"859:2:83","nodeType":"VariableDeclaration","scope":50057,"src":"842:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"},"typeName":{"id":50051,"nodeType":"UserDefinedTypeName","pathNode":{"id":50050,"name":"StakingOperation","nameLocations":["842:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":50049,"src":"842:16:83"},"referencedDeclaration":50049,"src":"842:16:83","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50049","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":50054,"mutability":"mutable","name":"payload","nameLocation":"873:7:83","nodeType":"VariableDeclaration","scope":50057,"src":"867:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":50053,"name":"bytes","nodeType":"ElementaryTypeName","src":"867:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":50056,"mutability":"mutable","name":"validator","nameLocation":"894:9:83","nodeType":"VariableDeclaration","scope":50057,"src":"886:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50055,"name":"address","nodeType":"ElementaryTypeName","src":"886:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakingChange","nameLocation":"822:13:83","scope":50183,"visibility":"public"},{"id":50063,"nodeType":"StructDefinition","src":"987:89:83","nodes":[],"canonicalName":"StakingChangeRequest","members":[{"constant":false,"id":50060,"mutability":"mutable","name":"change","nameLocation":"1035:6:83","nodeType":"VariableDeclaration","scope":50063,"src":"1021:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":50059,"nodeType":"UserDefinedTypeName","pathNode":{"id":50058,"name":"StakingChange","nameLocations":["1021:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"1021:13:83"},"referencedDeclaration":50057,"src":"1021:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"},{"constant":false,"id":50062,"mutability":"mutable","name":"configurationNumber","nameLocation":"1054:19:83","nodeType":"VariableDeclaration","scope":50063,"src":"1047:26:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50061,"name":"uint64","nodeType":"ElementaryTypeName","src":"1047:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"StakingChangeRequest","nameLocation":"994:20:83","scope":50183,"visibility":"public"},{"id":50076,"nodeType":"StructDefinition","src":"1125:356:83","nodes":[],"canonicalName":"StakingChangeLog","members":[{"constant":false,"id":50066,"mutability":"mutable","name":"nextConfigurationNumber","nameLocation":"1234:23:83","nodeType":"VariableDeclaration","scope":50076,"src":"1227:30:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50065,"name":"uint64","nodeType":"ElementaryTypeName","src":"1227:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50069,"mutability":"mutable","name":"startConfigurationNumber","nameLocation":"1328:24:83","nodeType":"VariableDeclaration","scope":50076,"src":"1321:31:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50068,"name":"uint64","nodeType":"ElementaryTypeName","src":"1321:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50075,"mutability":"mutable","name":"changes","nameLocation":"1471:7:83","nodeType":"VariableDeclaration","scope":50076,"src":"1438:40:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50057_storage_$","typeString":"mapping(uint64 => struct StakingChange)"},"typeName":{"id":50074,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50071,"name":"uint64","nodeType":"ElementaryTypeName","src":"1446:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"1438:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50057_storage_$","typeString":"mapping(uint64 => struct StakingChange)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50073,"nodeType":"UserDefinedTypeName","pathNode":{"id":50072,"name":"StakingChange","nameLocations":["1456:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":50057,"src":"1456:13:83"},"referencedDeclaration":50057,"src":"1456:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50057_storage_ptr","typeString":"struct StakingChange"}}},"visibility":"internal"}],"name":"StakingChangeLog","nameLocation":"1132:16:83","scope":50183,"visibility":"public"},{"id":50083,"nodeType":"StructDefinition","src":"1533:189:83","nodes":[],"canonicalName":"StakingRelease","members":[{"constant":false,"id":50079,"mutability":"mutable","name":"releaseAt","nameLocation":"1633:9:83","nodeType":"VariableDeclaration","scope":50083,"src":"1625:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50078,"name":"uint256","nodeType":"ElementaryTypeName","src":"1625:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50082,"mutability":"mutable","name":"amount","nameLocation":"1713:6:83","nodeType":"VariableDeclaration","scope":50083,"src":"1705:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50081,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakingRelease","nameLocation":"1540:14:83","scope":50183,"visibility":"public"},{"id":50093,"nodeType":"StructDefinition","src":"1895:121:83","nodes":[],"canonicalName":"AddressStakingReleases","members":[{"constant":false,"id":50085,"mutability":"mutable","name":"length","nameLocation":"1938:6:83","nodeType":"VariableDeclaration","scope":50093,"src":"1931:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50084,"name":"uint16","nodeType":"ElementaryTypeName","src":"1931:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":50087,"mutability":"mutable","name":"startIdx","nameLocation":"1957:8:83","nodeType":"VariableDeclaration","scope":50093,"src":"1950:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50086,"name":"uint16","nodeType":"ElementaryTypeName","src":"1950:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":50092,"mutability":"mutable","name":"releases","nameLocation":"2005:8:83","nodeType":"VariableDeclaration","scope":50093,"src":"1971:42:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease)"},"typeName":{"id":50091,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50088,"name":"uint16","nodeType":"ElementaryTypeName","src":"1979:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1971:33:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50083_storage_$","typeString":"mapping(uint16 => struct StakingRelease)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50090,"nodeType":"UserDefinedTypeName","pathNode":{"id":50089,"name":"StakingRelease","nameLocations":["1989:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":50083,"src":"1989:14:83"},"referencedDeclaration":50083,"src":"1989:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50083_storage_ptr","typeString":"struct StakingRelease"}}},"visibility":"internal"}],"name":"AddressStakingReleases","nameLocation":"1902:22:83","scope":50183,"visibility":"public"},{"id":50103,"nodeType":"StructDefinition","src":"2065:246:83","nodes":[],"canonicalName":"StakingReleaseQueue","members":[{"constant":false,"id":50096,"mutability":"mutable","name":"lockingDuration","nameLocation":"2170:15:83","nodeType":"VariableDeclaration","scope":50103,"src":"2162:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50095,"name":"uint256","nodeType":"ElementaryTypeName","src":"2162:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50102,"mutability":"mutable","name":"releases","nameLocation":"2300:8:83","nodeType":"VariableDeclaration","scope":50103,"src":"2257:51:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases)"},"typeName":{"id":50101,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50098,"name":"address","nodeType":"ElementaryTypeName","src":"2265:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2257:42:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50093_storage_$","typeString":"mapping(address => struct AddressStakingReleases)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50100,"nodeType":"UserDefinedTypeName","pathNode":{"id":50099,"name":"AddressStakingReleases","nameLocations":["2276:22:83"],"nodeType":"IdentifierPath","referencedDeclaration":50093,"src":"2276:22:83"},"referencedDeclaration":50093,"src":"2276:22:83","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50093_storage_ptr","typeString":"struct AddressStakingReleases"}}},"visibility":"internal"}],"name":"StakingReleaseQueue","nameLocation":"2072:19:83","scope":50183,"visibility":"public"},{"id":50114,"nodeType":"StructDefinition","src":"2615:381:83","nodes":[],"canonicalName":"ValidatorInfo","members":[{"constant":false,"id":50106,"mutability":"mutable","name":"federatedPower","nameLocation":"2690:14:83","nodeType":"VariableDeclaration","scope":50114,"src":"2682:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50105,"name":"uint256","nodeType":"ElementaryTypeName","src":"2682:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50108,"mutability":"mutable","name":"confirmedCollateral","nameLocation":"2718:19:83","nodeType":"VariableDeclaration","scope":50114,"src":"2710:27:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50107,"name":"uint256","nodeType":"ElementaryTypeName","src":"2710:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50110,"mutability":"mutable","name":"totalCollateral","nameLocation":"2751:15:83","nodeType":"VariableDeclaration","scope":50114,"src":"2743:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50109,"name":"uint256","nodeType":"ElementaryTypeName","src":"2743:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50113,"mutability":"mutable","name":"metadata","nameLocation":"2985:8:83","nodeType":"VariableDeclaration","scope":50114,"src":"2979:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":50112,"name":"bytes","nodeType":"ElementaryTypeName","src":"2979:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ValidatorInfo","nameLocation":"2622:13:83","scope":50183,"visibility":"public"},{"id":50118,"nodeType":"EnumDefinition","src":"3057:290:83","nodes":[],"canonicalName":"PermissionMode","members":[{"id":50115,"name":"Collateral","nameLocation":"3146:10:83","nodeType":"EnumValue","src":"3146:10:83"},{"id":50116,"name":"Federated","nameLocation":"3225:9:83","nodeType":"EnumValue","src":"3225:9:83"},{"id":50117,"name":"Static","nameLocation":"3339:6:83","nodeType":"EnumValue","src":"3339:6:83"}],"name":"PermissionMode","nameLocation":"3062:14:83"},{"id":50143,"nodeType":"StructDefinition","src":"3923:576:83","nodes":[],"canonicalName":"ValidatorSet","members":[{"constant":false,"id":50122,"mutability":"mutable","name":"permissionMode","nameLocation":"4007:14:83","nodeType":"VariableDeclaration","scope":50143,"src":"3992:29:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":50121,"nodeType":"UserDefinedTypeName","pathNode":{"id":50120,"name":"PermissionMode","nameLocations":["3992:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"3992:14:83"},"referencedDeclaration":50118,"src":"3992:14:83","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":50125,"mutability":"mutable","name":"activeLimit","nameLocation":"4089:11:83","nodeType":"VariableDeclaration","scope":50143,"src":"4082:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50124,"name":"uint16","nodeType":"ElementaryTypeName","src":"4082:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":50128,"mutability":"mutable","name":"totalConfirmedCollateral","nameLocation":"4154:24:83","nodeType":"VariableDeclaration","scope":50143,"src":"4146:32:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50127,"name":"uint256","nodeType":"ElementaryTypeName","src":"4146:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50134,"mutability":"mutable","name":"validators","nameLocation":"4284:10:83","nodeType":"VariableDeclaration","scope":50143,"src":"4250:44:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo)"},"typeName":{"id":50133,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50130,"name":"address","nodeType":"ElementaryTypeName","src":"4258:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4250:33:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50132,"nodeType":"UserDefinedTypeName","pathNode":{"id":50131,"name":"ValidatorInfo","nameLocations":["4269:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":50114,"src":"4269:13:83"},"referencedDeclaration":50114,"src":"4269:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage_ptr","typeString":"struct ValidatorInfo"}}},"visibility":"internal"},{"constant":false,"id":50138,"mutability":"mutable","name":"activeValidators","nameLocation":"4378:16:83","nodeType":"VariableDeclaration","scope":50143,"src":"4372:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":50137,"nodeType":"UserDefinedTypeName","pathNode":{"id":50136,"name":"MinPQ","nameLocations":["4372:5:83"],"nodeType":"IdentifierPath","referencedDeclaration":48982,"src":"4372:5:83"},"referencedDeclaration":48982,"src":"4372:5:83","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$48982_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":50142,"mutability":"mutable","name":"waitingValidators","nameLocation":"4479:17:83","nodeType":"VariableDeclaration","scope":50143,"src":"4473:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":50141,"nodeType":"UserDefinedTypeName","pathNode":{"id":50140,"name":"MaxPQ","nameLocations":["4473:5:83"],"nodeType":"IdentifierPath","referencedDeclaration":48364,"src":"4473:5:83"},"referencedDeclaration":48364,"src":"4473:5:83","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48364_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"}],"name":"ValidatorSet","nameLocation":"3930:12:83","scope":50183,"visibility":"public"},{"id":50150,"nodeType":"StructDefinition","src":"4578:93:83","nodes":[],"canonicalName":"ParentValidatorsTracker","members":[{"constant":false,"id":50146,"mutability":"mutable","name":"validators","nameLocation":"4628:10:83","nodeType":"VariableDeclaration","scope":50150,"src":"4615:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":50145,"nodeType":"UserDefinedTypeName","pathNode":{"id":50144,"name":"ValidatorSet","nameLocations":["4615:12:83"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"4615:12:83"},"referencedDeclaration":50143,"src":"4615:12:83","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":50149,"mutability":"mutable","name":"changes","nameLocation":"4661:7:83","nodeType":"VariableDeclaration","scope":50150,"src":"4644:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":50148,"nodeType":"UserDefinedTypeName","pathNode":{"id":50147,"name":"StakingChangeLog","nameLocations":["4644:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":50076,"src":"4644:16:83"},"referencedDeclaration":50076,"src":"4644:16:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"name":"ParentValidatorsTracker","nameLocation":"4585:23:83","scope":50183,"visibility":"public"},{"id":50157,"nodeType":"StructDefinition","src":"4706:71:83","nodes":[],"canonicalName":"IPCAddress","members":[{"constant":false,"id":50153,"mutability":"mutable","name":"subnetId","nameLocation":"4739:8:83","nodeType":"VariableDeclaration","scope":50157,"src":"4730:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":50152,"nodeType":"UserDefinedTypeName","pathNode":{"id":50151,"name":"SubnetID","nameLocations":["4730:8:83"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"4730:8:83"},"referencedDeclaration":50030,"src":"4730:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":50156,"mutability":"mutable","name":"rawAddress","nameLocation":"4764:10:83","nodeType":"VariableDeclaration","scope":50157,"src":"4753:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"},"typeName":{"id":50155,"nodeType":"UserDefinedTypeName","pathNode":{"id":50154,"name":"FvmAddress","nameLocations":["4753:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"4753:10:83"},"referencedDeclaration":49951,"src":"4753:10:83","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"name":"IPCAddress","nameLocation":"4713:10:83","scope":50183,"visibility":"public"},{"id":50164,"nodeType":"StructDefinition","src":"4831:78:83","nodes":[],"canonicalName":"Validator","members":[{"constant":false,"id":50159,"mutability":"mutable","name":"weight","nameLocation":"4862:6:83","nodeType":"VariableDeclaration","scope":50164,"src":"4854:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50158,"name":"uint256","nodeType":"ElementaryTypeName","src":"4854:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50161,"mutability":"mutable","name":"addr","nameLocation":"4882:4:83","nodeType":"VariableDeclaration","scope":50164,"src":"4874:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50160,"name":"address","nodeType":"ElementaryTypeName","src":"4874:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50163,"mutability":"mutable","name":"metadata","nameLocation":"4898:8:83","nodeType":"VariableDeclaration","scope":50164,"src":"4892:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":50162,"name":"bytes","nodeType":"ElementaryTypeName","src":"4892:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Validator","nameLocation":"4838:9:83","scope":50183,"visibility":"public"},{"id":50171,"nodeType":"StructDefinition","src":"4969:81:83","nodes":[],"canonicalName":"Membership","members":[{"constant":false,"id":50168,"mutability":"mutable","name":"validators","nameLocation":"5005:10:83","nodeType":"VariableDeclaration","scope":50171,"src":"4993:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":50166,"nodeType":"UserDefinedTypeName","pathNode":{"id":50165,"name":"Validator","nameLocations":["4993:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"4993:9:83"},"referencedDeclaration":50164,"src":"4993:9:83","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":50167,"nodeType":"ArrayTypeName","src":"4993:11:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":50170,"mutability":"mutable","name":"configurationNumber","nameLocation":"5028:19:83","nodeType":"VariableDeclaration","scope":50171,"src":"5021:26:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50169,"name":"uint64","nodeType":"ElementaryTypeName","src":"5021:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Membership","nameLocation":"4976:10:83","scope":50183,"visibility":"public"},{"id":50179,"nodeType":"StructDefinition","src":"5124:186:83","nodes":[],"canonicalName":"SupplySource","members":[{"constant":false,"id":50175,"mutability":"mutable","name":"kind","nameLocation":"5197:4:83","nodeType":"VariableDeclaration","scope":50179,"src":"5186:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":50174,"nodeType":"UserDefinedTypeName","pathNode":{"id":50173,"name":"SupplyKind","nameLocations":["5186:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"5186:10:83"},"referencedDeclaration":50182,"src":"5186:10:83","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"},{"constant":false,"id":50178,"mutability":"mutable","name":"tokenAddress","nameLocation":"5295:12:83","nodeType":"VariableDeclaration","scope":50179,"src":"5287:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50177,"name":"address","nodeType":"ElementaryTypeName","src":"5287:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SupplySource","nameLocation":"5131:12:83","scope":50183,"visibility":"public"},{"id":50182,"nodeType":"EnumDefinition","src":"5374:41:83","nodes":[],"canonicalName":"SupplyKind","members":[{"id":50180,"name":"Native","nameLocation":"5396:6:83","nodeType":"EnumValue","src":"5396:6:83"},{"id":50181,"name":"ERC20","nameLocation":"5408:5:83","nodeType":"EnumValue","src":"5408:5:83"}],"name":"SupplyKind","nameLocation":"5379:10:83"}],"license":"MIT OR Apache-2.0"},"id":83} \ No newline at end of file diff --git a/.out/SubnetActorCheckpointingFacet.sol/SubnetActorCheckpointingFacet.json b/.out/SubnetActorCheckpointingFacet.sol/SubnetActorCheckpointingFacet.json new file mode 100644 index 000000000..c038a5c8f --- /dev/null +++ b/.out/SubnetActorCheckpointingFacet.sol/SubnetActorCheckpointingFacet.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"submitBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateActiveQuorumSignatures","inputs":[{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidSignatureErr","inputs":[{"name":"","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"NotValidator","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657612ef3908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c908163268119361461051957508063b9ee2bb9146100c45763cc2dc2b91461004257600080fd5b346100c15760603660031901126100c1576001600160401b036004358181116100bd57366023820112156100bd5761008490369060248160040135910161080d565b6044359182116100bd57366023830112156100bd576100b06100ba92369060248160040135910161087e565b9060243590612b18565b80f35b8280fd5b80fd5b50346100c157600319606036820112610365576001600160401b03600435116103655760806004356004019160043536030112610365576024356001600160401b0381116100bd5761011a903690600401610748565b91906044356001600160401b0381116105155761013b903690600401610748565b9160ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f86354166105035760055494600b54956101778782610926565b602460043501351415806104f3575b6104e157604051906101be60208301836101a08a83610a15565b03936101b4601f19958681018352826107c1565b5190209882610926565b60043560240135036103de575050916101e16101e9926101ef969794369161080d565b93369161087e565b91612b18565b60246004350135825281602052604082209080356042196004353603018112156103da576004350191600483016001600160401b0361022d82610a66565b16936001600160401b031994858454161783556102536001926024848601930190610a7a565b91906001600160401b0383116103c657600160401b83116103c65781548383558084106103ab575b509087959493929190865260208620865b838110610374575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b036102c886610a66565b169082541617905560246004350135825260226020526102ec604083203390610ac6565b5060043560240135600555600e546001600160a01b0316803b156100bd576040516347dc9b4f60e01b8152918391839182908490829061032f9060048301610a15565b03925af1801561036957610351575b505061034c6100ba91610a66565b610d6e565b61035a906107ae565b61036557813861033e565b5080fd5b6040513d84823e3d90fd5b909180939495969750359060018060a01b03821682036103a757602086929401938184015501908896959493929161028c565b8980fd5b828952602089206103c0918101908501610aaf565b3861027b565b634e487b7160e01b88526041600452602488fd5b8380fd5b9450945050505060246004350135146103f657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b8781106104c0575050506002810154606084015260038101546080840152600401546001600160401b031660a08301520390810183526104959150826107c1565b519020146104a05780f35b60246004350135815260226020526104bc604082203390610ac6565b5080f35b82546001600160a01b03168552889550602090940193918101918101610454565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610186565b60405163d93c066560e01b8152600490fd5b8480fd5b90503461036557600319906060368301126100bd57600435916001600160401b039081841161051557606084600401918536030112610515576024358281116107445761056a903690600401610748565b9260443581811161074057610583903690600401610748565b92909160248801359760065497888a106107315750604401906105a68287610a7a565b9190506009541680911161071f576105be8287610a7a565b90501415806106f8575b6106e6576105d69085610a7a565b9050156106d45787946040516020810190610603816105f58985612996565b03601f1981018352826107c1565b519020968803610634575050505050506007541461061f575080f35b815260236020526104bc604082203390610ac6565b61064e93926101e1889698936101e9939a989a369161080d565b80602060405161065d8161077d565b8481520152816006556007558252602360205261067e604083203390610ac6565b50600e546001600160a01b031690813b156106d05782916106b591604051948580948193630bed761560e01b835260048301612996565b03925af18015610369576106c7575080f35b6100ba906107ae565b5050fd5b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b50600854801561070b57880615156105c8565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b63200c52f760e21b8152600490fd5b8780fd5b8580fd5b9181601f84011215610778578235916001600160401b038311610778576020808501948460051b01011161077857565b600080fd5b604081019081106001600160401b0382111761079857604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161079857604052565b90601f801991011681019081106001600160401b0382111761079857604052565b6001600160401b0381116107985760051b60200190565b35906001600160a01b038216820361077857565b9291610818826107e2565b9161082660405193846107c1565b829481845260208094019160051b810192831161077857905b82821061084c5750505050565b838091610858846107f9565b81520191019061083f565b6001600160401b03811161079857601f01601f191660200190565b9291909261088b846107e2565b9160409461089b865194856107c1565b839581855260208095019160051b8401938385116107785780925b8584106108c65750505050505050565b83356001600160401b03811161077857820185601f82011215610778578035916108ef83610863565b6108fb865191826107c1565b838152878a85850101116107785760008a8581968280970183860137830101528152019301926108b6565b9190820180921161093357565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215610778570190565b35906001600160401b038216820361077857565b9035601e19823603018112156107785701602081359101916001600160401b038211610778578160051b3603831361077857565b60408201916001600160401b036109bb8361095d565b16815260606109cf60209384810190610971565b839195604086839601525201929160005b8281106109ee575050505090565b909192938280600192838060a01b03610a06896107f9565b168152019501939291016109e0565b6020815260806001600160401b03610a5f6060610a45610a358780610949565b85602088015260a08701906109a5565b95602081013560408701526040810135828701520161095d565b1691015290565b356001600160401b03811681036107785790565b903590601e198136030182121561077857018035906001600160401b03821161077857602001918160051b3603831361077857565b818110610aba575050565b60008155600101610aaf565b91906001830160009082825280602052604082205415600014610b4557845494600160401b861015610b315760018601808255861015610b1d57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60041115610b5557565b634e487b7160e01b600052602160045260246000fd5b90600182811c92168015610b9b575b6020831014610b8557565b634e487b7160e01b600052602260045260246000fd5b91607f1691610b7a565b9060405191826000825492610bb984610b6b565b908184526001948581169081600014610c285750600114610be5575b5050610be3925003836107c1565b565b9093915060005260209081600020936000915b818310610c10575050610be393508201013880610bd5565b85548884018501529485019487945091830191610bf8565b915050610be394506020925060ff191682840152151560051b8201013880610bd5565b9190601f8111610c5a57505050565b610be3926000526020600020906020601f840160051c83019310610c86575b601f0160051c0190610aaf565b9091508190610c79565b90808214610d6a57610ca28154610b6b565b906001600160401b038211610798578190610cc782610cc18654610b6b565b86610c4b565b600090601f8311600114610cfe57600092610cf3575b50508160011b916000199060031b1c1916179055565b015490503880610cdd565b81526020808220858352818320935090601f1985169083905b828210610d51575050908460019594939210610d38575b505050811b019055565b015460001960f88460031b161c19169055388080610d2e565b8495819295850154815560018091019601940190610d17565b5050565b601c54906001600160401b039081168183168110610d985760405163040aaa0560e11b8152600490fd5b818360401c1681106113215781604093841c165b818382161115610e14575060018101918211610933577f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf639260209267ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b82610e32826001600160401b0316600052601d602052604060002090565b9160018060a01b03806002850154169060ff855416610e5081610b4b565b60028103610ec35750506003610e816001610e87949596019260018060a01b03166000526015602052604060002090565b01610c90565b610ea4816001600160401b0316600052601d602052604060002090565b9060008083556002600193610eba85820161138a565b01550116610dac565b909350610ecf81610b4b565b600393818503611064575050610ee86001809501610ba5565b9081518201936020928981858801970312610778578381015189811161077857810186603f82011215610778578481015190610f2382610863565b97610f308d51998a6107c1565b8289528c8383010111610778578b9291869160005b82811061104d575050906000918901015201519281610f768460018060a01b03166000526015602052604060002090565b01918651918a8311610798578a97610f9884610f928754610b6b565b87610c4b565b81601f8511600114610fdc5750610fcc9798998493928492600095610fd1575b50501b92600019911b1c1916179055611339565b610e87565b015193503880610fb8565b91601f9a9493919a1984168660005283600020936000905b8282106110335750509a84610fcc9a9b9c10611019575b50505050811b019055611339565b01519060f884600019921b161c191690553880808061100b565b838e015186558f9c50948701949283019290810190610ff4565b818101909501518a86018401528d94889301610f45565b91909294936110766001809601610ba5565b602081805181010312610778576020869101519461109381610b4b565b036112855761112c906110c485876110bd8660018060a01b03166000526015602052604060002090565b015461137d565b9060026110e38560018060a01b03166000526015602052604060002090565b01548215908161127c575b5015611259576001600160a01b038416600090815260156020526040902061112691906000808255808a83015560028201550161138a565b82611869565b601461113984825461137d565b9055611147601e5443610926565b88516111528161077d565b81815260208101858152600096848852601f6020528b88209283549161ffff93838580951694859160101c16018581116112455785168b528582016020528e8b2092518355519101557f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63946060949093909290916111cf90611326565b1661ffff198254161790558a519182528560208301528a820152a1600e541690813b156100bd57829160248392895195869384926345f5448560e01b845260048401525af190811561123a57509084929161122b575b50610e87565b611234906107ae565b38611225565b8651903d90823e3d90fd5b634e487b7160e01b8c52601160045260248cfd5b506001600160a01b03831660009081526015602052604090208190870155611126565b905015386110ee565b5092836112b584836112ae6112e796979860018060a01b03166000526015602052604060002090565b0154610926565b6001600160a01b038216600090815260156020526040902090928391015560146112e0868254610926565b90556113d3565b600e541690813b15610778578551916316989f6f60e21b83528260048160009485945af190811561123a57509084929161122b5750610e87565b505050565b90600161ffff8093160191821161093357565b9060018060a01b03821660005260156020526040600020818154915581811460001461136457505050565b81111561137457610be3916116e3565b610be391611bbc565b9190820391821161093357565b6113948154610b6b565b908161139e575050565b81601f600093116001146113b0575055565b9080839182526113cf601f60208420940160051c840160018501610aaf565b5555565b919060018060a01b03928381166000948186526020916017835261ffff916040978389822054166115f2578360135460081c168460165416106115be5761141861269a565b60019283825260188652828a832054168861143282611d39565b1061153857508152601a85528389822054166114a157505050505061149c7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461147c83611cc9565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6114aa866126ed565b926114b487611d39565b935b81868216116114fa575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612e9e83398151915290806040810161149c565b808561151986617fff8f95871c1694858852601b8c5287205416611d39565b1015611532579061152b83928261284c565b90506114b6565b506114c0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061149c95601a91611573612274565b8352522054166115b0575b61158784612200565b61159083611cc9565b516001600160a01b03928316815292909116602083015281906040820190565b6115b984611f03565b61157e565b505050505061149c7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461147c83612200565b9792915061160385949796956126b6565b9761160d85611d39565b976116178a6120f5565b8460165416905b8581168281116116be57828110156116a257508061163e61164492611326565b9061264a565b9b909b5b8b111561166757611659908c6127b3565b6116628b6120f5565b61161e565b505093516001600160a01b039095168552505050506020810191909152909250600080516020612e7e8339815191529150806040810161149c565b849c919c52601883526116b9858886205416611d39565b611648565b5050505050505061149c9192939550600080516020612e7e833981519152945061147c565b6001600160a01b03808216600081815260176020526040808220549095949361ffff93918416611837578360135460081c168460165416106118055761172761269a565b60018352601860205286832054168561173f82611d39565b106117b157508152601a60205284902054166117835761149c7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361147c83611cc9565b61149c600080516020612e9e8339815191529361147c6117a2846126ed565b6117ab85611d39565b906120a0565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261149c946117e5612274565b8152601a6020522054166117fc5761158784612200565b6115b984611f8e565b5050505061149c7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361147c83612200565b5050505061149c600080516020612e7e8339815191529361147c61185a846126b6565b61186385611d39565b906125b7565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416611a92578082526017835287868320541615611a815784156119d857506118b6836126b6565b976118c084611d39565b985b6001808a831611156119c95781617fff911c1690818452601885528a6118ec848a87205416611d39565b1115611901576118fc90826127b3565b6118c2565b505091939597509193955b60195416156119c15761191d61269a565b60018252601883528581818420541692601b61193885611d39565b956119416126a8565b60018352522054169161195383611d39565b1161198857505091516001600160a01b0390921682526020820152600080516020612e7e83398151915290806040810161149c565b9150915061149c7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75936119b9612274565b61157e611d9c565b505050505050565b5050919395975091939561190c565b829450611a0c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996123bd565b8651908152a160195416611a21575b50505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492611a4f6126a8565b6001835252205416611a75611a6382611d39565b92611a6c611d9c565b61147c83612200565b0390a138808080611a1b565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611b81575061fffe9193611aaf866126ed565b93611ab987611d39565b9480966001958692831b168160195416925b611b0d575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612e9e833981519152919050806040810161149c565b818116838111611b7b578d9084811015611b5f57505080611b30611b3692611326565b906121a8565b9890985b881015611b5a57611b4b908961284c565b611b54886120f5565b86611acb565b611ad0565b8652601b8552852054909890611b76908716611d39565b611b3a565b50611ad0565b94915050611bb59194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250611f03565b51908152a1565b6001600160a01b038082166000818152601a602090815260408083205490969594919361ffff918216611c5f578084526017855281888520541615611c4e578615611c1d575061190c611c0e866126b6565b611c1787611d39565b90612568565b849193979650611a0c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396612448565b8751632a55ca5360e01b8152600490fd5b9693925050508315611c9c5750600080516020612e9e833981519152935061149c9061147c611c8d846126ed565b611c9685611d39565b9061210c565b9250611bb57f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9492611f8e565b610be3906117ab61ffff91611ce18360195416611326565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906bffffffffffffffffffffffff60a01b82541617905560195416176019555b60ff601354166003811015610b5557600103611d6a576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff908116600019019190821161093357565b61ffff8060195416908115611ef15790600190611dbb81831115612796565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611e5591908a611e4683611d88565b16906019541617601955612712565b848252808652611e69848484205416611d39565b95859860028160195416995b611e87575b5050505050505050505050565b8181168a8111611eeb578a811015611ed0575080611b30611ea792611326565b9a909a5b891015611ecb57611ebc908b61284c565b611ec58a6120f5565b87611e75565b611e7a565b859b919b52838352611ee6878787205416611d39565b611eab565b50611e7a565b6040516340d9b01160e01b8152600490fd5b611f0c906126ed565b61ffff90816019541691611f20838361284c565b80611f2a84611d88565b1661ffff196019541617601955611f4083612712565b8116809214610d6a57611c9682610be393600052601b60205260018060a01b0390611f7a611f748360406000205416611d39565b856120a0565b600052601b60205260406000205416611d39565b611f97906126ed565b61ffff90816019541691611fab838361284c565b80611fb584611d88565b1661ffff196019541617601955611fcb83612712565b808216809314611321579161fffe91600091808352601b9060209382855260018060a01b039260409261200b612005868686205416611d39565b876120a0565b825280865261201e848484205416611d39565b9585986001988997881b168160195416995b612041575050505050505050505050565b8181168a8111611eeb578a811015612085575080611b3061206192611326565b9a909a5b891015611ecb57612076908b61284c565b61207f8a6120f5565b87612030565b859b919b5283835261209b878787205416611d39565b612065565b9190915b60018061ffff831611156120ef5781617fff911c1690836120da6000848152601b602052604060018060a01b0391205416611d39565b10156120ef576120ea908261284c565b6120a4565b50509050565b60011b906201fffe61fffe83169216820361093357565b90600161fffe83821b168160009161ffff908160195416925b612133575b50505050505050565b8181168381116121a2578381101561217c575080611b3061215392611326565b9690965b86101561217757612168908761284c565b612171866120f5565b84612125565b61212a565b8452601b602052604084205490969061219d906001600160a01b0316611d39565b612157565b5061212a565b91909161ffff92838216600052601b6020526121eb60018060a01b036121d48160406000205416611d39565b958316600052601b60205260406000205416611d39565b908185106121f95750509190565b9350919050565b610be390611c1761ffff916122188360165416611326565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906bffffffffffffffffffffffff60a01b8254161790556016541617601655611d39565b61ffff8060165416908115611ef1579060019061229381831115612796565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161232d91908a61231e83611d88565b16906016541617601655612754565b848252808652612341848484205416611d39565b95859860028160165416995b61235e575050505050505050505050565b8181168a8111611eeb578a8110156123a257508061163e61237e92611326565b9a909a5b891115611ecb57612393908b6127b3565b61239c8a6120f5565b8761234d565b859b919b528383526123b8878787205416611d39565b612382565b6123c6906126b6565b61ffff908160165416916123da83836127b3565b806123e484611d88565b1661ffff1960165416176016556123fa83612754565b8116809214610d6a5761186382610be393600052601860205260018060a01b039061243461242e8360406000205416611d39565b85612568565b600052601860205260406000205416611d39565b612451906126b6565b9061ffff9081601654169061246682856127b3565b8261247083611d88565b1661ffff19601654161760165561248682612754565b8284168092146125625760009291929183835260189260209484865260018060a01b03916040916124c46124be858585205416611d39565b8a612568565b81528587526124d7838383205416611d39565b956124e1896120f5565b978560165416985b8681168a8111612554578a81101561253957508061163e61250992611326565b9a909a5b89111561252c5761251e908b6127b3565b6125278a6120f5565b6124e9565b5050505050505092505050565b849b919b5282825261254f868686205416611d39565b61250d565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156120ef5781617fff911c1690836125a260008481526018602052604060018060a01b0391205416611d39565b11156120ef576125b290826127b3565b61256c565b916125c1836120f5565b600061ffff918260165416905b838116828111612640578281101561261a57508061163e6125ee92611326565b9690965b8611156126115761260390876127b3565b61260c866120f5565b6125ce565b50505050915050565b83526018602052604083205490969061263b906001600160a01b0316611d39565b6125f2565b5050505050915050565b919061ffff808416600052601860205261268b60018060a01b036126748160406000205416611d39565b928416600052601860205260406000205416611d39565b93848211156121f95750509190565b61ffff6016541615611ef157565b61ffff6019541615611ef157565b6001600160a01b031660009081526017602052604090205461ffff169081156126db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156126db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561279d57565b634e487b7160e01b600052600160045260246000fd5b6127d861ffff8080601654169316936127ce84861115612796565b1691821115612796565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61286761ffff8080601954169316936127ce84861115612796565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156107785701602081359101916001600160401b03821161077857813603831361077857565b908060209392818452848401376000828201840152601f01601f1916010190565b61295661294b61293d8380610949565b6040855260408501906109a5565b916020810190610949565b91602081830391015281359160ff83168093036107785761298360409161299394845260208101906128db565b919092816020820152019161290c565b90565b60208082526129a58380610949565b60609182818501526129bc608092838601906109a5565b6129d3604096838101358888015287810190610971565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710612a0e57505050505050505050505090565b909192939495969798999a82828203018752612a2a8c85610949565b90813560de1983360301811215610778578782528201918a90888e6001600160401b03612aa1612a91612a7e612a75612a638b80610949565b60e080988c01526101208b019061292d565b978a018a610949565b96603f1997888a830301868b015261292d565b928d8901358d890152880161095d565b169060a091828701528a8701359263ffffffff60e01b8416809403610778578f95612ad8612ae89460c096878b01528a018a6128db565b929091898503019089015261290c565b940135610100840152013590811515809203610778578a01529a88019998979660010195870194939291906129f9565b91825191612b25836107e2565b93604094612b35865191826107c1565b848152601f19612b44866107e2565b0194602095368784013760005b818110612c1b57505060009461ffff8060165416600192839182945b612bca575b505050505060ff600e5460a01c1694858102958187041490151715610933576064612b9e950491612cbc565b9015612ba8575050565b6006811015610b555760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111612c135760009081526018855220548493929186918591612c0991612c03906001600160a01b0316611d39565b90610926565b9b01169493612b6d565b505098612b72565b6001600160a01b0380612c2e8387612c92565b51166000526017885261ffff89600020541615612c6e5790612c5d600192612c568388612c92565b5116611d39565b612c678286612c92565b5201612b51565b8890612c7c60249387612c92565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015612ca65760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b84519294600094908415612da45782518514801590612d99575b612d8c579392919085945b848610612d04575050505050501015612cfc57600090600590565b600190600090565b909192939495612d1e612d178884612c92565b5184612db1565b50612d2881610b4b565b612d7b576001600160a01b0380612d3f8a88612c92565b5116911603612d6b57612d5f600191612d588988612c92565b5190610926565b96019493929190612ce1565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415612cd6565b5050505050905090600290565b8151919060418303612de257612ddb92506020820151906060604084015193015160001a90612ded565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612e7157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15612e655780516001600160a01b03811615612e5c57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda264697066735822122038238f2d99ddb501fea49d87c0dcec952359bebfb7ce7e8d76de0f495aadd34564736f6c63430008130033","sourceMap":"907:7390:84:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c908163268119361461051957508063b9ee2bb9146100c45763cc2dc2b91461004257600080fd5b346100c15760603660031901126100c1576001600160401b036004358181116100bd57366023820112156100bd5761008490369060248160040135910161080d565b6044359182116100bd57366023830112156100bd576100b06100ba92369060248160040135910161087e565b9060243590612b18565b80f35b8280fd5b80fd5b50346100c157600319606036820112610365576001600160401b03600435116103655760806004356004019160043536030112610365576024356001600160401b0381116100bd5761011a903690600401610748565b91906044356001600160401b0381116105155761013b903690600401610748565b9160ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f86354166105035760055494600b54956101778782610926565b602460043501351415806104f3575b6104e157604051906101be60208301836101a08a83610a15565b03936101b4601f19958681018352826107c1565b5190209882610926565b60043560240135036103de575050916101e16101e9926101ef969794369161080d565b93369161087e565b91612b18565b60246004350135825281602052604082209080356042196004353603018112156103da576004350191600483016001600160401b0361022d82610a66565b16936001600160401b031994858454161783556102536001926024848601930190610a7a565b91906001600160401b0383116103c657600160401b83116103c65781548383558084106103ab575b509087959493929190865260208620865b838110610374575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b036102c886610a66565b169082541617905560246004350135825260226020526102ec604083203390610ac6565b5060043560240135600555600e546001600160a01b0316803b156100bd576040516347dc9b4f60e01b8152918391839182908490829061032f9060048301610a15565b03925af1801561036957610351575b505061034c6100ba91610a66565b610d6e565b61035a906107ae565b61036557813861033e565b5080fd5b6040513d84823e3d90fd5b909180939495969750359060018060a01b03821682036103a757602086929401938184015501908896959493929161028c565b8980fd5b828952602089206103c0918101908501610aaf565b3861027b565b634e487b7160e01b88526041600452602488fd5b8380fd5b9450945050505060246004350135146103f657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b8781106104c0575050506002810154606084015260038101546080840152600401546001600160401b031660a08301520390810183526104959150826107c1565b519020146104a05780f35b60246004350135815260226020526104bc604082203390610ac6565b5080f35b82546001600160a01b03168552889550602090940193918101918101610454565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610186565b60405163d93c066560e01b8152600490fd5b8480fd5b90503461036557600319906060368301126100bd57600435916001600160401b039081841161051557606084600401918536030112610515576024358281116107445761056a903690600401610748565b9260443581811161074057610583903690600401610748565b92909160248801359760065497888a106107315750604401906105a68287610a7a565b9190506009541680911161071f576105be8287610a7a565b90501415806106f8575b6106e6576105d69085610a7a565b9050156106d45787946040516020810190610603816105f58985612996565b03601f1981018352826107c1565b519020968803610634575050505050506007541461061f575080f35b815260236020526104bc604082203390610ac6565b61064e93926101e1889698936101e9939a989a369161080d565b80602060405161065d8161077d565b8481520152816006556007558252602360205261067e604083203390610ac6565b50600e546001600160a01b031690813b156106d05782916106b591604051948580948193630bed761560e01b835260048301612996565b03925af18015610369576106c7575080f35b6100ba906107ae565b5050fd5b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b50600854801561070b57880615156105c8565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b63200c52f760e21b8152600490fd5b8780fd5b8580fd5b9181601f84011215610778578235916001600160401b038311610778576020808501948460051b01011161077857565b600080fd5b604081019081106001600160401b0382111761079857604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161079857604052565b90601f801991011681019081106001600160401b0382111761079857604052565b6001600160401b0381116107985760051b60200190565b35906001600160a01b038216820361077857565b9291610818826107e2565b9161082660405193846107c1565b829481845260208094019160051b810192831161077857905b82821061084c5750505050565b838091610858846107f9565b81520191019061083f565b6001600160401b03811161079857601f01601f191660200190565b9291909261088b846107e2565b9160409461089b865194856107c1565b839581855260208095019160051b8401938385116107785780925b8584106108c65750505050505050565b83356001600160401b03811161077857820185601f82011215610778578035916108ef83610863565b6108fb865191826107c1565b838152878a85850101116107785760008a8581968280970183860137830101528152019301926108b6565b9190820180921161093357565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215610778570190565b35906001600160401b038216820361077857565b9035601e19823603018112156107785701602081359101916001600160401b038211610778578160051b3603831361077857565b60408201916001600160401b036109bb8361095d565b16815260606109cf60209384810190610971565b839195604086839601525201929160005b8281106109ee575050505090565b909192938280600192838060a01b03610a06896107f9565b168152019501939291016109e0565b6020815260806001600160401b03610a5f6060610a45610a358780610949565b85602088015260a08701906109a5565b95602081013560408701526040810135828701520161095d565b1691015290565b356001600160401b03811681036107785790565b903590601e198136030182121561077857018035906001600160401b03821161077857602001918160051b3603831361077857565b818110610aba575050565b60008155600101610aaf565b91906001830160009082825280602052604082205415600014610b4557845494600160401b861015610b315760018601808255861015610b1d57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60041115610b5557565b634e487b7160e01b600052602160045260246000fd5b90600182811c92168015610b9b575b6020831014610b8557565b634e487b7160e01b600052602260045260246000fd5b91607f1691610b7a565b9060405191826000825492610bb984610b6b565b908184526001948581169081600014610c285750600114610be5575b5050610be3925003836107c1565b565b9093915060005260209081600020936000915b818310610c10575050610be393508201013880610bd5565b85548884018501529485019487945091830191610bf8565b915050610be394506020925060ff191682840152151560051b8201013880610bd5565b9190601f8111610c5a57505050565b610be3926000526020600020906020601f840160051c83019310610c86575b601f0160051c0190610aaf565b9091508190610c79565b90808214610d6a57610ca28154610b6b565b906001600160401b038211610798578190610cc782610cc18654610b6b565b86610c4b565b600090601f8311600114610cfe57600092610cf3575b50508160011b916000199060031b1c1916179055565b015490503880610cdd565b81526020808220858352818320935090601f1985169083905b828210610d51575050908460019594939210610d38575b505050811b019055565b015460001960f88460031b161c19169055388080610d2e565b8495819295850154815560018091019601940190610d17565b5050565b601c54906001600160401b039081168183168110610d985760405163040aaa0560e11b8152600490fd5b818360401c1681106113215781604093841c165b818382161115610e14575060018101918211610933577f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf639260209267ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b82610e32826001600160401b0316600052601d602052604060002090565b9160018060a01b03806002850154169060ff855416610e5081610b4b565b60028103610ec35750506003610e816001610e87949596019260018060a01b03166000526015602052604060002090565b01610c90565b610ea4816001600160401b0316600052601d602052604060002090565b9060008083556002600193610eba85820161138a565b01550116610dac565b909350610ecf81610b4b565b600393818503611064575050610ee86001809501610ba5565b9081518201936020928981858801970312610778578381015189811161077857810186603f82011215610778578481015190610f2382610863565b97610f308d51998a6107c1565b8289528c8383010111610778578b9291869160005b82811061104d575050906000918901015201519281610f768460018060a01b03166000526015602052604060002090565b01918651918a8311610798578a97610f9884610f928754610b6b565b87610c4b565b81601f8511600114610fdc5750610fcc9798998493928492600095610fd1575b50501b92600019911b1c1916179055611339565b610e87565b015193503880610fb8565b91601f9a9493919a1984168660005283600020936000905b8282106110335750509a84610fcc9a9b9c10611019575b50505050811b019055611339565b01519060f884600019921b161c191690553880808061100b565b838e015186558f9c50948701949283019290810190610ff4565b818101909501518a86018401528d94889301610f45565b91909294936110766001809601610ba5565b602081805181010312610778576020869101519461109381610b4b565b036112855761112c906110c485876110bd8660018060a01b03166000526015602052604060002090565b015461137d565b9060026110e38560018060a01b03166000526015602052604060002090565b01548215908161127c575b5015611259576001600160a01b038416600090815260156020526040902061112691906000808255808a83015560028201550161138a565b82611869565b601461113984825461137d565b9055611147601e5443610926565b88516111528161077d565b81815260208101858152600096848852601f6020528b88209283549161ffff93838580951694859160101c16018581116112455785168b528582016020528e8b2092518355519101557f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63946060949093909290916111cf90611326565b1661ffff198254161790558a519182528560208301528a820152a1600e541690813b156100bd57829160248392895195869384926345f5448560e01b845260048401525af190811561123a57509084929161122b575b50610e87565b611234906107ae565b38611225565b8651903d90823e3d90fd5b634e487b7160e01b8c52601160045260248cfd5b506001600160a01b03831660009081526015602052604090208190870155611126565b905015386110ee565b5092836112b584836112ae6112e796979860018060a01b03166000526015602052604060002090565b0154610926565b6001600160a01b038216600090815260156020526040902090928391015560146112e0868254610926565b90556113d3565b600e541690813b15610778578551916316989f6f60e21b83528260048160009485945af190811561123a57509084929161122b5750610e87565b505050565b90600161ffff8093160191821161093357565b9060018060a01b03821660005260156020526040600020818154915581811460001461136457505050565b81111561137457610be3916116e3565b610be391611bbc565b9190820391821161093357565b6113948154610b6b565b908161139e575050565b81601f600093116001146113b0575055565b9080839182526113cf601f60208420940160051c840160018501610aaf565b5555565b919060018060a01b03928381166000948186526020916017835261ffff916040978389822054166115f2578360135460081c168460165416106115be5761141861269a565b60019283825260188652828a832054168861143282611d39565b1061153857508152601a85528389822054166114a157505050505061149c7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461147c83611cc9565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6114aa866126ed565b926114b487611d39565b935b81868216116114fa575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612e9e83398151915290806040810161149c565b808561151986617fff8f95871c1694858852601b8c5287205416611d39565b1015611532579061152b83928261284c565b90506114b6565b506114c0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061149c95601a91611573612274565b8352522054166115b0575b61158784612200565b61159083611cc9565b516001600160a01b03928316815292909116602083015281906040820190565b6115b984611f03565b61157e565b505050505061149c7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461147c83612200565b9792915061160385949796956126b6565b9761160d85611d39565b976116178a6120f5565b8460165416905b8581168281116116be57828110156116a257508061163e61164492611326565b9061264a565b9b909b5b8b111561166757611659908c6127b3565b6116628b6120f5565b61161e565b505093516001600160a01b039095168552505050506020810191909152909250600080516020612e7e8339815191529150806040810161149c565b849c919c52601883526116b9858886205416611d39565b611648565b5050505050505061149c9192939550600080516020612e7e833981519152945061147c565b6001600160a01b03808216600081815260176020526040808220549095949361ffff93918416611837578360135460081c168460165416106118055761172761269a565b60018352601860205286832054168561173f82611d39565b106117b157508152601a60205284902054166117835761149c7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361147c83611cc9565b61149c600080516020612e9e8339815191529361147c6117a2846126ed565b6117ab85611d39565b906120a0565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261149c946117e5612274565b8152601a6020522054166117fc5761158784612200565b6115b984611f8e565b5050505061149c7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361147c83612200565b5050505061149c600080516020612e7e8339815191529361147c61185a846126b6565b61186385611d39565b906125b7565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416611a92578082526017835287868320541615611a815784156119d857506118b6836126b6565b976118c084611d39565b985b6001808a831611156119c95781617fff911c1690818452601885528a6118ec848a87205416611d39565b1115611901576118fc90826127b3565b6118c2565b505091939597509193955b60195416156119c15761191d61269a565b60018252601883528581818420541692601b61193885611d39565b956119416126a8565b60018352522054169161195383611d39565b1161198857505091516001600160a01b0390921682526020820152600080516020612e7e83398151915290806040810161149c565b9150915061149c7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75936119b9612274565b61157e611d9c565b505050505050565b5050919395975091939561190c565b829450611a0c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996123bd565b8651908152a160195416611a21575b50505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492611a4f6126a8565b6001835252205416611a75611a6382611d39565b92611a6c611d9c565b61147c83612200565b0390a138808080611a1b565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611b81575061fffe9193611aaf866126ed565b93611ab987611d39565b9480966001958692831b168160195416925b611b0d575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612e9e833981519152919050806040810161149c565b818116838111611b7b578d9084811015611b5f57505080611b30611b3692611326565b906121a8565b9890985b881015611b5a57611b4b908961284c565b611b54886120f5565b86611acb565b611ad0565b8652601b8552852054909890611b76908716611d39565b611b3a565b50611ad0565b94915050611bb59194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250611f03565b51908152a1565b6001600160a01b038082166000818152601a602090815260408083205490969594919361ffff918216611c5f578084526017855281888520541615611c4e578615611c1d575061190c611c0e866126b6565b611c1787611d39565b90612568565b849193979650611a0c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396612448565b8751632a55ca5360e01b8152600490fd5b9693925050508315611c9c5750600080516020612e9e833981519152935061149c9061147c611c8d846126ed565b611c9685611d39565b9061210c565b9250611bb57f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9492611f8e565b610be3906117ab61ffff91611ce18360195416611326565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906bffffffffffffffffffffffff60a01b82541617905560195416176019555b60ff601354166003811015610b5557600103611d6a576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff908116600019019190821161093357565b61ffff8060195416908115611ef15790600190611dbb81831115612796565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611e5591908a611e4683611d88565b16906019541617601955612712565b848252808652611e69848484205416611d39565b95859860028160195416995b611e87575b5050505050505050505050565b8181168a8111611eeb578a811015611ed0575080611b30611ea792611326565b9a909a5b891015611ecb57611ebc908b61284c565b611ec58a6120f5565b87611e75565b611e7a565b859b919b52838352611ee6878787205416611d39565b611eab565b50611e7a565b6040516340d9b01160e01b8152600490fd5b611f0c906126ed565b61ffff90816019541691611f20838361284c565b80611f2a84611d88565b1661ffff196019541617601955611f4083612712565b8116809214610d6a57611c9682610be393600052601b60205260018060a01b0390611f7a611f748360406000205416611d39565b856120a0565b600052601b60205260406000205416611d39565b611f97906126ed565b61ffff90816019541691611fab838361284c565b80611fb584611d88565b1661ffff196019541617601955611fcb83612712565b808216809314611321579161fffe91600091808352601b9060209382855260018060a01b039260409261200b612005868686205416611d39565b876120a0565b825280865261201e848484205416611d39565b9585986001988997881b168160195416995b612041575050505050505050505050565b8181168a8111611eeb578a811015612085575080611b3061206192611326565b9a909a5b891015611ecb57612076908b61284c565b61207f8a6120f5565b87612030565b859b919b5283835261209b878787205416611d39565b612065565b9190915b60018061ffff831611156120ef5781617fff911c1690836120da6000848152601b602052604060018060a01b0391205416611d39565b10156120ef576120ea908261284c565b6120a4565b50509050565b60011b906201fffe61fffe83169216820361093357565b90600161fffe83821b168160009161ffff908160195416925b612133575b50505050505050565b8181168381116121a2578381101561217c575080611b3061215392611326565b9690965b86101561217757612168908761284c565b612171866120f5565b84612125565b61212a565b8452601b602052604084205490969061219d906001600160a01b0316611d39565b612157565b5061212a565b91909161ffff92838216600052601b6020526121eb60018060a01b036121d48160406000205416611d39565b958316600052601b60205260406000205416611d39565b908185106121f95750509190565b9350919050565b610be390611c1761ffff916122188360165416611326565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906bffffffffffffffffffffffff60a01b8254161790556016541617601655611d39565b61ffff8060165416908115611ef1579060019061229381831115612796565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161232d91908a61231e83611d88565b16906016541617601655612754565b848252808652612341848484205416611d39565b95859860028160165416995b61235e575050505050505050505050565b8181168a8111611eeb578a8110156123a257508061163e61237e92611326565b9a909a5b891115611ecb57612393908b6127b3565b61239c8a6120f5565b8761234d565b859b919b528383526123b8878787205416611d39565b612382565b6123c6906126b6565b61ffff908160165416916123da83836127b3565b806123e484611d88565b1661ffff1960165416176016556123fa83612754565b8116809214610d6a5761186382610be393600052601860205260018060a01b039061243461242e8360406000205416611d39565b85612568565b600052601860205260406000205416611d39565b612451906126b6565b9061ffff9081601654169061246682856127b3565b8261247083611d88565b1661ffff19601654161760165561248682612754565b8284168092146125625760009291929183835260189260209484865260018060a01b03916040916124c46124be858585205416611d39565b8a612568565b81528587526124d7838383205416611d39565b956124e1896120f5565b978560165416985b8681168a8111612554578a81101561253957508061163e61250992611326565b9a909a5b89111561252c5761251e908b6127b3565b6125278a6120f5565b6124e9565b5050505050505092505050565b849b919b5282825261254f868686205416611d39565b61250d565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156120ef5781617fff911c1690836125a260008481526018602052604060018060a01b0391205416611d39565b11156120ef576125b290826127b3565b61256c565b916125c1836120f5565b600061ffff918260165416905b838116828111612640578281101561261a57508061163e6125ee92611326565b9690965b8611156126115761260390876127b3565b61260c866120f5565b6125ce565b50505050915050565b83526018602052604083205490969061263b906001600160a01b0316611d39565b6125f2565b5050505050915050565b919061ffff808416600052601860205261268b60018060a01b036126748160406000205416611d39565b928416600052601860205260406000205416611d39565b93848211156121f95750509190565b61ffff6016541615611ef157565b61ffff6019541615611ef157565b6001600160a01b031660009081526017602052604090205461ffff169081156126db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156126db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561279d57565b634e487b7160e01b600052600160045260246000fd5b6127d861ffff8080601654169316936127ce84861115612796565b1691821115612796565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61286761ffff8080601954169316936127ce84861115612796565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156107785701602081359101916001600160401b03821161077857813603831361077857565b908060209392818452848401376000828201840152601f01601f1916010190565b61295661294b61293d8380610949565b6040855260408501906109a5565b916020810190610949565b91602081830391015281359160ff83168093036107785761298360409161299394845260208101906128db565b919092816020820152019161290c565b90565b60208082526129a58380610949565b60609182818501526129bc608092838601906109a5565b6129d3604096838101358888015287810190610971565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710612a0e57505050505050505050505090565b909192939495969798999a82828203018752612a2a8c85610949565b90813560de1983360301811215610778578782528201918a90888e6001600160401b03612aa1612a91612a7e612a75612a638b80610949565b60e080988c01526101208b019061292d565b978a018a610949565b96603f1997888a830301868b015261292d565b928d8901358d890152880161095d565b169060a091828701528a8701359263ffffffff60e01b8416809403610778578f95612ad8612ae89460c096878b01528a018a6128db565b929091898503019089015261290c565b940135610100840152013590811515809203610778578a01529a88019998979660010195870194939291906129f9565b91825191612b25836107e2565b93604094612b35865191826107c1565b848152601f19612b44866107e2565b0194602095368784013760005b818110612c1b57505060009461ffff8060165416600192839182945b612bca575b505050505060ff600e5460a01c1694858102958187041490151715610933576064612b9e950491612cbc565b9015612ba8575050565b6006811015610b555760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111612c135760009081526018855220548493929186918591612c0991612c03906001600160a01b0316611d39565b90610926565b9b01169493612b6d565b505098612b72565b6001600160a01b0380612c2e8387612c92565b51166000526017885261ffff89600020541615612c6e5790612c5d600192612c568388612c92565b5116611d39565b612c678286612c92565b5201612b51565b8890612c7c60249387612c92565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015612ca65760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b84519294600094908415612da45782518514801590612d99575b612d8c579392919085945b848610612d04575050505050501015612cfc57600090600590565b600190600090565b909192939495612d1e612d178884612c92565b5184612db1565b50612d2881610b4b565b612d7b576001600160a01b0380612d3f8a88612c92565b5116911603612d6b57612d5f600191612d588988612c92565b5190610926565b96019493929190612ce1565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415612cd6565b5050505050905090600290565b8151919060418303612de257612ddb92506020820151906060604084015193015160001a90612ded565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612e7157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15612e655780516001600160a01b03811615612e5c57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda264697066735822122038238f2d99ddb501fea49d87c0dcec952359bebfb7ce7e8d76de0f495aadd34564736f6c63430008130033","sourceMap":"907:7390:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;907:7390:84;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;907:7390:84;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;:::i;:::-;;;248:41:66;907:7390:84;;1424:62:66;;1911:30:84;907:7390;;1944:21;907:7390;1911:54;;;;;:::i;:::-;907:7390;;;1885:22;907:7390;1885:80;;:152;;;907:7390;1868:236;;907:7390;;2148:22;2212:54;907:7390;2148:22;;;;;;;:::i;:::-;;5559:17;2148:22;5559:17;;2148:22;;;;;;;;:::i;:::-;907:7390;2138:33;;2212:54;;;:::i;:::-;907:7390;;;1885:22;907:7390;2186:80;907:7390;;;;;;;;2366:104;907:7390;;;;;;:::i;:::-;;;;;:::i;:::-;2366:104;;:::i;:::-;907:7390;;;1885:22;907:7390;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;:::i;:::-;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;907:7390:84;;;;-1:-1:-1;;;907:7390:84;;;;;;;;;;;;;;2182:2184;907:7390;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;1885:22;;907:7390;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;:::i;:::-;;;;;;;;;;;;1885:22;907:7390;;;2854:35;907:7390;;8399:50:36;907:7390:84;;;2918:10;8399:50:36;;:::i;:::-;-1:-1:-1;907:7390:84;;;1885:22;907:7390;1911:30;907:7390;3078:16;907:7390;-1:-1:-1;;;;;907:7390:84;3069:55;;;;;907:7390;;-1:-1:-1;;;3069:55:84;;907:7390;;;;;;;;;;;3069:55;;907:7390;3069:55;;;:::i;:::-;;;;;;;;;;;907:7390;3229:34;;;;;;:::i;:::-;;:::i;3069:55::-;;;;:::i;:::-;907:7390;;3069:55;;;;907:7390;;;;3069:55;907:7390;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;907:7390:84;;;;;;;;;;;;2182:2184;907:7390;;;;;;;;;;1885:22;907:7390;3285:56;3281:1085;;2182:2184;;907:7390;;3281:1085;907:7390;;;1885:22;907:7390;;;;;;;;;;;4074:58;907:7390;4074:58;;907:7390;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;907:7390:84;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;4074:58;;;;;;;;-1:-1:-1;4074:58:84;;:::i;:::-;907:7390;4064:69;;4151:36;4147:209;;907:7390;;4147:209;907:7390;;;1885:22;907:7390;;;4266:35;907:7390;;8399:50:36;907:7390:84;;;4330:10;8399:50:36;;:::i;:::-;;907:7390:84;;;;;-1:-1:-1;;;;;907:7390:84;;;;;-1:-1:-1;907:7390:84;;;;;;;;;;;;;1868:236;907:7390;;-1:-1:-1;;;2069:24:84;;907:7390;;2069:24;1885:152;907:7390;;;;;1885:22;907:7390;1981:56;;1885:152;;1424:62:66;907:7390:84;;-1:-1:-1;;;1460:15:66;;907:7390:84;;1460:15:66;907:7390:84;;;;;;;;;;-1:-1:-1;;907:7390:84;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;4950:17;;;907:7390;4950:17;;907:7390;;4970:19;907:7390;4950:51;;;;4946:108;;5067:10;907:7390;5067:10;;;;;;:::i;:::-;907:7390;;;5087:25;907:7390;;5067:45;;;5063:108;;5277:10;;;;:::i;:::-;:46;;;;:99;;;907:7390;5273:156;;5442:10;;;;:::i;:::-;:22;;;5438:81;;907:7390;;;;;5559:17;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;907:7390;5549:28;;;5592:52;;;;907:7390;;;;;;5923:24;907:7390;5910:37;5906:200;;5588:1250;907:7390;;5906:200;907:7390;;6026:30;907:7390;;8399:50:36;907:7390:84;;;6080:10;8399:50:36;;:::i;5588:1250:84:-;6220:99;907:7390;;;;;;;;;;;;;;;:::i;6220:99::-;907:7390;;;;;;;:::i;:::-;;;;6519:71;907:7390;;4970:19;907:7390;;;;;6660:30;907:7390;;8399:50:36;907:7390:84;;;6714:10;8399:50:36;;:::i;:::-;-1:-1:-1;6782:16:84;907:7390;-1:-1:-1;;;;;907:7390:84;;6773:54;;;;;907:7390;;6773:54;907:7390;;;;;;;;;;;;6773:54;;907:7390;6773:54;;;:::i;:::-;;;;;;;;;;;5588:1250;907:7390;;6773:54;;;;:::i;:::-;907:7390;;;5438:81;907:7390;;-1:-1:-1;;;5487:21:84;;907:7390;;5487:21;5273:156;907:7390;;-1:-1:-1;;;5399:19:84;;907:7390;;5399:19;5277:99;907:7390;5347:24;907:7390;;;;;;;5327:49;;5277:99;;907:7390;-1:-1:-1;;;907:7390:84;;;;;;;;5063:108;907:7390;;-1:-1:-1;;;5135:25:84;;907:7390;;5135:25;4946:108;-1:-1:-1;;;5024:19:84;;907:7390;;5024:19;907:7390;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;:::o;:::-;;5559:17;;;907:7390;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;:::o;:::-;-1:-1:-1;;;;;907:7390:84;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;907:7390:84;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;5559:17;907:7390;-1:-1:-1;;907:7390:84;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;907:7390:84;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;907:7390:84;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;;;;;907:7390:84;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;907:7390:84;;;;;;2215:404:36;;;4352:12;;;-1:-1:-1;907:7390:84;;;;;;;;;;;4352:24:36;2294:319;907:7390:84;;;;;;-1:-1:-1;;;907:7390:84;;;;;4352:12:36;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:36;2548:11;:::o;907:7390:84:-;-1:-1:-1;;;907:7390:84;;;;;;;;;-1:-1:-1;;;907:7390:84;;;;;;;;2294:319:36;-1:-1:-1;2590:12:36;-1:-1:-1;;2590:12:36:o;907:7390:84:-;;-1:-1:-1;907:7390:84;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;907:7390:84;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;-1:-1:-1;907:7390:84;;;;-1:-1:-1;907:7390:84;;-1:-1:-1;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;907:7390:84;;-1:-1:-1;907:7390:84;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;907:7390:84;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;907:7390:84;;;;;;;;;;;;;;;;;;-1:-1:-1;907:7390:84;-1:-1:-1;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;24177:1944:69:-;24359:11;907:7390:84;;-1:-1:-1;;;;;907:7390:84;;;;;;24385:56:69;;907:7390:84;;;;-1:-1:-1;;;24464:28:69;;;;;24381:221;907:7390:84;;;;;24513:56:69;;24509:93;;907:7390:84;;;;;;24694:24:69;907:7390:84;;;;24694:24:69;;;;907:7390:84;;;;;;;;;26065:49:69;907:7390:84;;;-1:-1:-1;;;24359:11:69;907:7390:84;;;;;;-1:-1:-1;;;907:7390:84;;;24359:11:69;907:7390:84;;;;;26065:49:69;24177:1944::o;24676:16::-;3893:36:70;;;-1:-1:-1;;;;;907:7390:84;;;3893:15:70;907:7390:84;;;;;;;3893:36:70;907:7390:84;;;;;;24823:16:69;;;;907:7390:84;;;;;;;;;;:::i;:::-;24823:16:69;24858:41;;24823:16;;24967:14;;24919:45;:36;907:7390:84;;24967:14:69;;;;24919:36;907:7390:84;;;;;;;;10005:15:69;907:7390:84;;;;;;;24919:36:69;:45;907:7390:84;:::i;:::-;4051:36:70;;-1:-1:-1;;;;;907:7390:84;;;3893:15:70;907:7390:84;;;;;;;4051:36:70;3793:45:72;;907:7390:84;;;24823:16:69;907:7390:84;;;;;;;:::i;:::-;;;;;24676:16:69;;24854:1017;907:7390:84;;;;;;:::i;:::-;25019:34:69;;25006:47;;;25019:34;;907:7390:84;;;;25125:14:69;;;907:7390:84;:::i;:::-;;;;25114:44:69;;;;;;;;;;907:7390:84;;;;;25114:44:69;;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3793:45:72;907:7390:84;;;;;;;;;3793:45:72;907:7390:84;;;;;;;25176:36:69;;;;907:7390:84;;;;;;;;10005:15:69;907:7390:84;;;;;;;25176:36:69;:45;907:7390:84;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;25298:5:69;907:7390:84;;;;;;;;3793:45:72;907:7390:84;;;;;;;;;;;;;;;;;;25298:5:69;:::i;:::-;24854:1017;;907:7390:84;;;;-1:-1:-1;907:7390:84;;;;;5559:17;;;;;;;;907:7390;;;3793:45:72;907:7390:84;;3793:45:72;907:7390:84;;3793:45:72;907:7390:84;;;;;;;;;;;25298:5:69;907:7390:84;;;;;;;;;;;;;;;;25298:5:69;:::i;907:7390:84:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25002:869:69;907:7390:84;;;;;;;25371:14:69;;;907:7390:84;:::i;:::-;25360:37:69;907:7390:84;;;25360:37:69;;907:7390:84;;;;25360:37:69;;;;907:7390:84;;;;;:::i;:::-;25420:38:69;3893:15:70;;10830:13:69;10416:26;:55;:26;;;;907:7390:84;;;;;;;;10005:15:69;907:7390:84;;;;;;;10416:26:69;:46;907:7390:84;10416:55:69;:::i;:::-;10507:26;24823:16;10507:26;;907:7390:84;;;;;;;;10005:15:69;907:7390:84;;;;;;;10507:26:69;:42;907:7390:84;10564:18:69;;:42;;;;25416:441;-1:-1:-1;10560:199:69;;;-1:-1:-1;;;;;907:7390:84;;;;;;10005:15:69;907:7390:84;;;;;;;10629:26:69;3793:45:72;907:7390:84;;;;;;;;24823:16:69;907:7390:84;;;;;:::i;:::-;10830:13:69;;:::i;:::-;10856:29;:39;907:7390:84;;;10856:39:69;:::i;:::-;907:7390:84;;3147:35:69;25553:14;907:7390:84;3147:12:69;:35;:::i;:::-;907:7390:84;;;;;:::i;:::-;;;;25360:37:69;3224:54;;907:7390:84;;;3793:45:72;907:7390:84;;;;3289:13:69;25360:37;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1306:13:69;;;25360:37;907:7390:84;;;;;;;;;;;;3343:85:69;;907:7390:84;;;;;;;;1362:10:69;;;:::i;:::-;907:7390:84;;;;;;;;;;;;;;;25360:37:69;907:7390:84;;;;;;;3343:85:69;25631:16;907:7390:84;;25622:47:69;;;;;;907:7390:84;;;;;;;;;;;;;;;25622:47:69;;;;;907:7390:84;25622:47:69;;;;;;;;;;;;;;10560:199;25416:441;24854:1017;;25622:47;;;;:::i;:::-;;;;;907:7390:84;;;;;;;;;;;-1:-1:-1;;;907:7390:84;;;;;;;;10560:199:69;-1:-1:-1;;;;;;907:7390:84;;;;;;10005:15:69;907:7390:84;;;;;10686:26:69;;;:46;907:7390:84;10560:199:69;;10564:42;10586:20;;;10564:42;;;25416:441;10005:26;;;:55;:26;;;10258:13;10005:26;;;907:7390:84;;;;;;;;10005:15:69;907:7390:84;;;;;;;10005:26:69;:46;907:7390:84;10005:55:69;:::i;:::-;-1:-1:-1;;;;;907:7390:84;;;;;;10005:15:69;907:7390:84;;;;;10070:26:69;;;;:46;907:7390:84;10143:29:69;:39;907:7390:84;;;10143:39:69;:::i;:::-;907:7390:84;;10258:13:69;:::i;:::-;25795:16;907:7390:84;;25786:52:69;;;;;;907:7390:84;;;;;;25786:52:69;;3793:45:72;25786:52:69;3793:45:72;;25786:52:69;;;;;;;;;;;;;;;;;25416:441;24854:1017;;24509:93;24585:7;;;:::o;907:7390:84:-;;;;;;;;;;;;;:::o;9330:540:69:-;;907:7390:84;;;;;;;-1:-1:-1;907:7390:84;9465:15:69;907:7390:84;;;-1:-1:-1;907:7390:84;;;;;;9580:22:69;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:69;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;907:7390:84:-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;11008:2209:69:-;;;907:7390:84;;;;;;;;;-1:-1:-1;907:7390:84;;;;;;1317:17:79;907:7390:84;;;;;;;;;;;;11120:226:69;;907:7390:84;25716:14:69;907:7390:84;;;;;11124:21:69;907:7390:84;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;907:7390:84;;;;;4077:23:77;907:7390:84;;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;907:7390:84;;;1317:17:79;907:7390:84;;;;;;;;12866:229:69;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;907:7390:84;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;;13168:42:69;;;;11008:2209::o;12866:229::-;3147:36:77;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;907:7390:84;;;;4619:7:77;;;4612:423;-1:-1:-1;;907:7390:84;;-1:-1:-1;;;;;907:7390:84;;;;;-1:-1:-1;;;;907:7390:84;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13008:56:69;907:7390:84;;;;13008:56:69;907:7390:84;4612:423:77;907:7390:84;;1991:25:79;907:7390:84;;;;;;;;;;;1952:17:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:69;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:79;12475:4:69;;;:::i;:::-;907:7390:84;;;;;;12495:140:69;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;907:7390:84;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;;12495:140:69;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:78;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;907:7390:84;11124:21:69;907:7390:84;;4932:763:78;;907:7390:84;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;907:7390:84;;-1:-1:-1;;;;;907:7390:84;;;;;-1:-1:-1;;;;907:7390:84;;;;;;;5556:5:78;;-1:-1:-1;;;;;;;;;;;;11260:55:69;-1:-1:-1;907:7390:84;;;;11260:55:69;907:7390:84;4971:413:78;907:7390:84;;;;;1952:17:79;907:7390:84;;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;11260:55:69;4939:16:78;;;;;-1:-1:-1;;;;;;;;;;;4939:16:78;;;;11008:2209:69;-1:-1:-1;;;;;907:7390:84;;;-1:-1:-1;907:7390:84;;;1317:17:79;907:7390:84;;;;;;;;;11008:2209:69;;907:7390:84;;;;;11120:226:69;;907:7390:84;25176:14:69;907:7390:84;;;;;11124:21:69;907:7390:84;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;907:7390:84;;;4077:23:77;907:7390:84;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;-1:-1:-1;907:7390:84;;1317:17:79;907:7390:84;;;;;;;12866:229:69;;13168:42;;13141:11;;;;:::i;12866:229::-;13008:56;-1:-1:-1;;;;;;;;;;;3147:36:77;3308:5;3147:36;;;:::i;:::-;3209:30;;;:::i;:::-;3308:5;;:::i;12404:452:69:-;12475:4;;;;;12777:48;12475:4;;12777:48;12475:4;;;:::i;:::-;907:7390:84;;1317:17:79;907:7390:84;;;;;12495:140:69;;12684:11;;;:::i;12495:140::-;12608:11;;;:::i;11516:262::-;11675:11;;;;11706:41;;11675:11;;;;:::i;11120:226::-;2876:36:78;;;;11260:55:69;-1:-1:-1;;;;;;;;;;;2876:36:78;3035:3;2876:36;;;:::i;:::-;2936:30;;;:::i;:::-;3035:3;;:::i;13320:2014:69:-;;;907:7390:84;;;;;;;;;-1:-1:-1;;907:7390:84;;;;;1317:17:79;907:7390:84;;;;;;;;;;;;13428:421:69;;907:7390:84;;;1317:17:79;907:7390:84;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;907:7390:84;;;;;4277:7:78;;;;907:7390:84;;;;;;;;;1952:17:79;907:7390:84;;;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;13432:22:69;907:7390:84;;14638:37:69;14634:74;;4023:26:77;;:::i;:::-;907:7390:84;;;1952:17:79;907:7390:84;;;;;;;;;4129:25:77;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;907:7390:84;;;;;;;4129:25:77;;;;:::i;:::-;-1:-1:-1;14901:358:69;;-1:-1:-1;;907:7390:84;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;-1:-1:-1;;;;;;;;;;;15274:53:69;907:7390:84;;;;15274:53:69;907:7390:84;14901:358:69;14979:4;;;;15176:52;;14979:4;;;:::i;:::-;15025;;:::i;14634:74::-;14691:7;;;;;;:::o;4277::78:-;;;;;;;;;;;;;14049:508:69;14126:9;;;;14155:30;14126:9;;;;;;;;;:::i;:::-;907:7390:84;;;;;14155:30:69;13432:22;907:7390:84;;14200:326:69;;14049:508;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:77;4077:23;4023:26;;;;:::i;:::-;907:7390:84;;;;;;;14472:39:69;4129:25:77;;;:::i;:::-;14378:4:69;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;907:7390:84;;-1:-1:-1;;;13952:26:69;;;;;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:77;907:7390:84;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;907:7390:84;;;;;;;;;13432:22:69;907:7390:84;;5287:763:77;907:7390:84;;;5287:763:77;-1:-1:-1;;907:7390:84;;-1:-1:-1;;;;;907:7390:84;;;;;-1:-1:-1;;;;907:7390:84;;;;;;;-1:-1:-1;907:7390:84;;-1:-1:-1;;;;;;;;;;;;13764:54:69;907:7390:84;-1:-1:-1;907:7390:84;;;;13764:54:69;907:7390:84;5287:763:77;907:7390:84;;;5294:16:77;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;907:7390:84;;1952:17:79;907:7390:84;;;;;;;;1991:25:79;;907:7390:84;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13490:185:69;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;907:7390:84;;;;13605:31:69;13654:7::o;13320:2014::-;-1:-1:-1;;;;;907:7390:84;;;-1:-1:-1;907:7390:84;;;1317:17:79;907:7390:84;;;;;;;;;;;13320:2014:69;;907:7390:84;;;;;;13428:421:69;;907:7390:84;;;1317:17:79;907:7390:84;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;3422:3;3263:36;;;:::i;:::-;3323:30;;;:::i;:::-;3422:3;;:::i;14049:508:69:-;14126:9;;;;;;;14155:30;14126:9;;;:::i;13883:106::-;907:7390:84;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;13490:185;;3601:36:77;-1:-1:-1;;;;;;;;;;;3601:36:77;;13764:54:69;3601:36:77;3762:5;3601:36;;;:::i;:::-;3663:30;;;:::i;:::-;3762:5;;:::i;13490:185:69:-;13572:9;;;13605:31;13572:9;;;:::i;998:417:77:-;1401:5;998:417;1301:30;907:7390:84;;1119:19:77;907:7390:84;12499:22:69;907:7390:84;;1119:19:77;:::i;:::-;907:7390:84;;;;;;;;;;-1:-1:-1;907:7390:84;1149:23:77;907:7390:84;;;-1:-1:-1;907:7390:84;;;;;;;;;;;;;;;;;-1:-1:-1;907:7390:84;1200:23:77;907:7390:84;;;-1:-1:-1;907:7390:84;;;;;;;;;;;12499:22:69;907:7390:84;;;12499:22:69;907:7390:84;4525:375:69;907:7390:84;7711:14;907:7390;;;;;;;;4697:24:69;4668:53;4697:24;;-1:-1:-1;;;;;907:7390:84;-1:-1:-1;907:7390:84;;;4745:21:69;907:7390:84;;;;;;;4525:375:69:o;4664:230::-;-1:-1:-1;;;;;907:7390:84;-1:-1:-1;907:7390:84;;;4831:21:69;907:7390:84;;;;;;4831:52:69;907:7390:84;;4525:375:69:o;907:7390:84:-;;;;;-1:-1:-1;;907:7390:84;;;;;;;:::o;1545:401:77:-;907:7390:84;;13432:22:69;907:7390:84;;1044:14:79;;;1040:61;;907:7390:84;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;907:7390:84;;;;2468:17:79;907:7390:84;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;2551:17:79;907:7390:84;;;;;;;-1:-1:-1;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1799:4:77;;907:7390:84;1766:8:77;;907:7390:84;1766:8:77;:::i;:::-;907:7390:84;;13432:22:69;907:7390:84;;;13432:22:69;907:7390:84;1799:4:77;:::i;:::-;907:7390:84;;;;;;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;5160:26;1952:17:79;907:7390:84;13432:22:69;907:7390:84;;5287:763:77;907:7390:84;;;5287:763:77;1545:401;;;;;;;;;;;:::o;5287:763::-;907:7390:84;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;907:7390:84;;;;;;;;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;1040:61:79;907:7390:84;;-1:-1:-1;;;1081:9:79;;;;;2081:787:77;2210:36;2081:787;2210:36;:::i;:::-;907:7390:84;;;12499:22:69;907:7390:84;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;907:7390:84;;;12499:22:69;907:7390:84;;;12499:22:69;907:7390:84;2415:4:77;;;:::i;:::-;907:7390:84;;2435:11:77;;;2431:48;;1991:25:79;907:7390:84;2854:5:77;907:7390:84;-1:-1:-1;907:7390:84;1952:17:79;907:7390:84;;;;;;;;2668:5:77;1991:25:79;907:7390:84;;-1:-1:-1;907:7390:84;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;-1:-1:-1;907:7390:84;1952:17:79;907:7390:84;;;-1:-1:-1;907:7390:84;;;1991:25:79;:::i;2081:787:77:-;2210:36;2081:787;2210:36;:::i;:::-;907:7390:84;;;12499:22:69;907:7390:84;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;907:7390:84;;;12499:22:69;907:7390:84;;;12499:22:69;907:7390:84;2415:4:77;;;:::i;:::-;907:7390:84;;;2435:11:77;;;2431:48;;-1:-1:-1;907:7390:84;-1:-1:-1;;907:7390:84;;;;1952:17:79;907:7390:84;;;;;;;;;;;;;;2668:5:77;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;907:7390:84;;;;;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;2854:5:77;;907:7390:84;;;;;;;;;12499:22:69;907:7390:84;;5287:763:77;907:7390:84;;;2081:787:77;;;;;;;;;;;:::o;5287:763::-;907:7390:84;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;907:7390:84;;;;;;;;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;5326:412:77;;4443:598;;;;4612:423;4625:1;907:7390:84;;;;4619:7:77;;;;907:7390:84;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;907:7390:84;;;1952:17:79;907:7390:84;;;;;;;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;907:7390:84:-;;;;;;;;;;;;;;:::o;5047:1009:77:-;;5185:1;907:7390:84;;;;;5218:18:77;-1:-1:-1;5218:18:77;907:7390:84;;;13432:22:69;907:7390:84;;5287:763:77;5185:1;;;5287:763;5047:1009;;;;;;;:::o;5287:763::-;907:7390:84;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;907:7390:84;;1952:17:79;907:7390:84;;;;;;;;;1991:25:79;;-1:-1:-1;;;;;907:7390:84;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;6117:442;;;;907:7390:84;;;;;-1:-1:-1;907:7390:84;1952:17:79;907:7390:84;;1991:25:79;907:7390:84;;;;;1991:25:79;907:7390:84;;-1:-1:-1;907:7390:84;;;1991:25:79;:::i;:::-;907:7390:84;;;-1:-1:-1;907:7390:84;1952:17:79;907:7390:84;;;-1:-1:-1;907:7390:84;;;1991:25:79;:::i;:::-;6662:7:77;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:77;;-1:-1:-1;6490:21:77:o;924:417:78:-;1327:5;924:417;1227:30;907:7390:84;;1045:19:78;907:7390:84;11124:21:69;907:7390:84;;1045:19:78;:::i;:::-;907:7390:84;;;;;;;;;;-1:-1:-1;907:7390:84;1075:23:78;907:7390:84;;;-1:-1:-1;907:7390:84;;;;;;;;;;;;;;;;;-1:-1:-1;907:7390:84;1126:23:78;907:7390:84;;;-1:-1:-1;907:7390:84;;;;;;;;;;;11124:21:69;907:7390:84;;;11124:21:69;907:7390:84;1227:30:78;:::i;1408:401::-;907:7390:84;;11124:21:69;907:7390:84;;1044:14:79;;;1040:61;;907:7390:84;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;907:7390:84;;;;2468:17:79;907:7390:84;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;2551:17:79;907:7390:84;;;;;;;-1:-1:-1;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1662:4:78;;907:7390:84;1629:8:78;;907:7390:84;1629:8:78;:::i;:::-;907:7390:84;;11124:21:69;907:7390:84;;;11124:21:69;907:7390:84;1662:4:78;:::i;:::-;907:7390:84;;;;;;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;4715:986:78;;4828:25;907:7390:84;;11124:21:69;907:7390:84;;4932:763:78;907:7390:84;;;1408:401:78;;;;;;;;;;;:::o;4932:763::-;907:7390:84;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;907:7390:84;;;;;;;;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;4971:413:78;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;907:7390:84;;;13888:21:69;907:7390:84;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;907:7390:84;;;13888:21:69;907:7390:84;;;13888:21:69;907:7390:84;2215:4:78;;;:::i;:::-;907:7390:84;;2235:11:78;;;2231:48;;1991:25:79;907:7390:84;2648:3:78;907:7390:84;-1:-1:-1;907:7390:84;1952:17:79;907:7390:84;;;;;;;;2466:3:78;1991:25:79;907:7390:84;;-1:-1:-1;907:7390:84;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;-1:-1:-1;907:7390:84;1952:17:79;907:7390:84;;;-1:-1:-1;907:7390:84;;;1991:25:79;:::i;1881:779:78:-;2010:36;1881:779;2010:36;:::i;:::-;907:7390:84;;;;13888:21:69;907:7390:84;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;907:7390:84;;;13888:21:69;907:7390:84;;;13888:21:69;907:7390:84;2215:4:78;;;:::i;:::-;907:7390:84;;;2235:11:78;;;2231:48;;-1:-1:-1;;;;907:7390:84;;;;1952:17:79;907:7390:84;;;;;;;;;;;;;;2466:3:78;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;907:7390:84;;;;;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;2648:3:78;4846:7;2648:3;4846:7;:::i;:::-;4863:18;907:7390:84;13888:21:69;907:7390:84;;4932:763:78;;907:7390:84;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;907:7390:84;;;;;;;;1991:25:79;907:7390:84;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;907:7390:84;;;;4277:7:78;;;;907:7390:84;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;907:7390:84;;;1952:17:79;907:7390:84;;;;;;;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4715:986;;4846:7;;;:::i;:::-;-1:-1:-1;907:7390:84;;;11124:21:69;907:7390:84;;4932:763:78;;907:7390:84;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;4715:986::o;4971:413::-;907:7390:84;;1952:17:79;907:7390:84;;;;;;;;;1991:25:79;;-1:-1:-1;;;;;907:7390:84;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;4715:986::o;5763:443::-;;;907:7390:84;;;;-1:-1:-1;907:7390:84;1952:17:79;907:7390:84;;1991:25:79;907:7390:84;;;;;1991:25:79;907:7390:84;;-1:-1:-1;907:7390:84;;;1991:25:79;:::i;:::-;907:7390:84;;;-1:-1:-1;907:7390:84;1952:17:79;907:7390:84;;;-1:-1:-1;907:7390:84;;;1991:25:79;:::i;:::-;6308:7:78;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:79:-;907:7390:84;11124:21:69;907:7390:84;;1044:14:79;1040:61;;974:133::o;:::-;907:7390:84;13432:22:69;907:7390:84;;1044:14:79;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;907:7390:84;-1:-1:-1;907:7390:84;;;1474:17:79;907:7390:84;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1512:71::-;907:7390:84;;-1:-1:-1;;;1547:25:79;;;;;1363:226;-1:-1:-1;;;;;907:7390:84;-1:-1:-1;907:7390:84;;;1474:17:79;907:7390:84;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1595:184::-;907:7390:84;;-1:-1:-1;907:7390:84;;;1671:17:79;907:7390:84;;;;;;;;;;-1:-1:-1;;;;;;907:7390:84;;;;;-1:-1:-1;;;;;907:7390:84;;;1749:17:79;907:7390:84;;;;;;;-1:-1:-1;;907:7390:84;;;1595:184:79:o;:::-;907:7390:84;;-1:-1:-1;907:7390:84;;;1671:17:79;907:7390:84;;;;;;;;;;-1:-1:-1;;;;;;907:7390:84;;;;;-1:-1:-1;;;;;907:7390:84;;;1749:17:79;907:7390:84;;;;;;;-1:-1:-1;;907:7390:84;;;1595:184:79:o;907:7390:84:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:79;2416:25;907:7390:84;;;11124:21:69;907:7390:84;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;907:7390:84;2423:17:79;;;;2416:25;:::i;:::-;-1:-1:-1;907:7390:84;;;2468:17:79;907:7390:84;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;2551:17:79;907:7390:84;;;;;;;-1:-1:-1;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;907:7390:84;;;12870:22:69;907:7390:84;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;907:7390:84;;;2468:17:79;907:7390:84;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;2551:17:79;907:7390:84;;;;;;;-1:-1:-1;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;907:7390:84;;;;;;;;;;;;;;;;;;;2301:412:79:o;907:7390:84:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;907:7390:84;;;;;;5559:17;907:7390;-1:-1:-1;;907:7390:84;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;5559:17;;;;;907:7390;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7405:890;;907:7390;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;907:7390:84;;;:::i;:::-;;;;;;;;;;-1:-1:-1;7631:8:69;;;;;;7801:36:84;;-1:-1:-1;907:7390:84;;;6312:27:69;907:7390:84;;;6364:12:69;;;;6359:236;907:7390:84;;;6359:236:69;907:7390:84;;;;;;7888:20;907:7390;;;;;;;;;;;;;;;;;;;7912:3;7974:229;907:7390;;7974:229;;:::i;:::-;8218:6;;8214:75;;7405:890;;:::o;8214:75::-;907:7390;;;;;;;;;;8247:31;;;;;;907:7390;8247:31;;;907:7390;8247:31;6364:12:69;907:7390:84;;;;;;;;;6378:9:69;;;;;-1:-1:-1;907:7390:84;;;598:23:78;907:7390:84;;;;;;;;;;;;6480:45:69;;6494:31;;-1:-1:-1;;;;;907:7390:84;6494:31:69;:::i;:::-;6480:45;;:::i;:::-;907:7390:84;;;6364:12:69;;;;6378:9;;;;;;7620;-1:-1:-1;;;;;907:7390:84;7692:12:69;;;;:::i;:::-;907:7390:84;;-1:-1:-1;907:7390:84;1317:17:79;907:7390:84;;;;-1:-1:-1;907:7390:84;;;1317:33:79;7657:116:69;;7829:12;7808:34;907:7390:84;7829:12:69;;;;;:::i;:::-;907:7390:84;;7808:34:69;:::i;:::-;7786:56;;;;:::i;:::-;907:7390:84;;7620:9:69;;7657:116;7745:12;;;907:7390:84;7745:12:69;;;:::i;:::-;907:7390:84;;;-1:-1:-1;;;7732:26:69;;907:7390:84;;7732:26:69;;;907:7390:84;7732:26:69;907:7390:84;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;1239:1329:65;907:7390:84;;1239:1329:65;;907:7390:84;;;1596:21:65;;1592:90;;907:7390:84;;1696:38:65;;;;:76;;;1239:1329;1692:148;;1855:9;;;;;1850:568;1866:20;;;;;;2431:19;;;;;;;;2427:75;;907:7390:84;2511:50:65;2527:33;1239:1329;:::o;2427:75::-;907:7390:84;2466:25:65;907:7390:84;2466:25:65;:::o;1855:9::-;2031:13;;;;;;1957:102;2031:13;;;;:::i;:::-;;1957:102;;:::i;:::-;907:7390:84;;;;:::i;:::-;2073:116:65;;-1:-1:-1;;;;;907:7390:84;2219:14:65;;;;:::i;:::-;907:7390:84;;;;2206:27:65;2202:105;;2329:19;907:7390:84;2338:10:65;;;;;:::i;:::-;907:7390:84;2329:19:65;;:::i;:::-;907:7390:84;;1855:9:65;;;;;;;2202:105;2253:39;;;;;;;;907:7390:84;2253:39:65;2269:22;2253:39;:::o;2073:116::-;2135:39;;;;;;;;;907:7390:84;2135:39:65;2151:22;2135:39;:::o;1692:148::-;1788:41;;;;;;;;907:7390:84;1788:41:65;:::o;1696:76::-;907:7390:84;;;1738:34:65;;;1696:76;;1592:90;1633:38;;;;;;;;1649:21;1633:38;:::o;2483:766:32:-;907:7390:84;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;907:7390:84;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;907:7390:84;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;907:7390:84;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o","linkReferences":{}},"methodIdentifiers":{"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":"26811936","submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":"b9ee2bb9","validateActiveQuorumSignatures(address[],bytes32,bytes[])":"cc2dc2b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"InvalidSignatureErr\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateActiveQuorumSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the unpause is triggered by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"details\":\"It triggers the execution of a cross-net message batch.\",\"params\":{\"batch\":\"The batch of bottom-up messages.\",\"signatories\":\"The addresses of validators signing the batch.\",\"signatures\":\"The signatures of validators on the batch.\"}},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"details\":\"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\",\"params\":{\"checkpoint\":\"The executed bottom-up checkpoint.\",\"signatories\":\"The addresses of validators signing the checkpoint.\",\"signatures\":\"The signatures of validators on the checkpoint.\"}},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"details\":\"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.\",\"params\":{\"hash\":\"The hash of the checkpoint.\",\"signatories\":\"The addresses of the signatories.\",\"signatures\":\"The packed signatures of the checkpoint.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"notice\":\"Submits a batch of bottom-up messages for execution.\"},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"notice\":\"Submits a checkpoint commitment for execution.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"notice\":\"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorCheckpointingFacet.sol\":\"SubnetActorCheckpointingFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorCheckpointingFacet.sol\":{\"keccak256\":\"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a\",\"dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"type":"error","name":"InvalidSignatureErr"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotValidator"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"validateActiveQuorumSignatures"}],"devdoc":{"kind":"dev","methods":{"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"details":"It triggers the execution of a cross-net message batch.","params":{"batch":"The batch of bottom-up messages.","signatories":"The addresses of validators signing the batch.","signatures":"The signatures of validators on the batch."}},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"details":"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.","params":{"checkpoint":"The executed bottom-up checkpoint.","signatories":"The addresses of validators signing the checkpoint.","signatures":"The signatures of validators on the checkpoint."}},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"details":"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.","params":{"hash":"The hash of the checkpoint.","signatories":"The addresses of the signatories.","signatures":"The packed signatures of the checkpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"notice":"Submits a batch of bottom-up messages for execution."},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"notice":"Submits a checkpoint commitment for execution."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"notice":"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorCheckpointingFacet.sol":"SubnetActorCheckpointingFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorCheckpointingFacet.sol":{"keccak256":"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96","urls":["bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a","dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","id":50578,"exportedSymbols":{"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49885],"BottomUpMsgBatch":[49898],"BottomUpMsgBatchInfo":[49903],"EnumerableSet":[35815],"IGateway":[40354],"InvalidBatchEpoch":[37406],"InvalidCheckpointEpoch":[37404],"InvalidSignatureErr":[37438],"LibStaking":[46129],"LibSubnetActor":[47110],"LibValidatorSet":[45246],"MaxMsgsPerBatchExceeded":[37382],"MultisignatureChecker":[43235],"Pausable":[43385],"ReentrancyGuard":[43966],"SubnetActorCheckpointingFacet":[50577],"SubnetActorModifiers":[47288],"Validator":[50164],"ValidatorSet":[50143]},"nodeType":"SourceUnit","src":"46:8252:84","nodes":[{"id":50184,"nodeType":"PragmaDirective","src":"46:23:84","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50190,"nodeType":"ImportDirective","src":"71:149:84","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":50578,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":50185,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"79:17:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50186,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"98:23:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50187,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"123:19:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50188,"name":"InvalidSignatureErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37438,"src":"144:19:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50189,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"165:22:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50192,"nodeType":"ImportDirective","src":"221:52:84","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":50578,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":50191,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"229:8:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50196,"nodeType":"ImportDirective","src":"274:99:84","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":50578,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":50193,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"282:18:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50194,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49898,"src":"302:16:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50195,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49903,"src":"320:20:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50199,"nodeType":"ImportDirective","src":"374:62:84","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":50578,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":50197,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"382:9:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50198,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"393:12:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50201,"nodeType":"ImportDirective","src":"437:74:84","nodes":[],"absolutePath":"src/lib/LibMultisignatureChecker.sol","file":"../lib/LibMultisignatureChecker.sol","nameLocation":"-1:-1:-1","scope":50578,"sourceUnit":43236,"symbolAliases":[{"foreign":{"id":50200,"name":"MultisignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43235,"src":"445:21:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50203,"nodeType":"ImportDirective","src":"512:62:84","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":50578,"sourceUnit":43967,"symbolAliases":[{"foreign":{"id":50202,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43966,"src":"520:15:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50205,"nodeType":"ImportDirective","src":"575:70:84","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":50578,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":50204,"name":"SubnetActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47288,"src":"583:20:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50208,"nodeType":"ImportDirective","src":"646:66:84","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":50578,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":50206,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45246,"src":"654:15:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50207,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"671:10:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50210,"nodeType":"ImportDirective","src":"713:85:84","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":50578,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":50209,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"721:13:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50212,"nodeType":"ImportDirective","src":"799:57:84","nodes":[],"absolutePath":"src/lib/LibSubnetActor.sol","file":"../lib/LibSubnetActor.sol","nameLocation":"-1:-1:-1","scope":50578,"sourceUnit":47111,"symbolAliases":[{"foreign":{"id":50211,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"807:14:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50214,"nodeType":"ImportDirective","src":"857:48:84","nodes":[],"absolutePath":"src/lib/LibPausable.sol","file":"../lib/LibPausable.sol","nameLocation":"-1:-1:-1","scope":50578,"sourceUnit":43386,"symbolAliases":[{"foreign":{"id":50213,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43385,"src":"865:8:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50577,"nodeType":"ContractDefinition","src":"907:7390:84","nodes":[{"id":50224,"nodeType":"UsingForDirective","src":"1003:49:84","nodes":[],"global":false,"libraryName":{"id":50221,"name":"EnumerableSet","nameLocations":["1009:13:84"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"1009:13:84"},"typeName":{"id":50223,"nodeType":"UserDefinedTypeName","pathNode":{"id":50222,"name":"EnumerableSet.AddressSet","nameLocations":["1027:13:84","1041:10:84"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1027:24:84"},"referencedDeclaration":35528,"src":"1027:24:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":50228,"nodeType":"UsingForDirective","src":"1057:39:84","nodes":[],"global":false,"libraryName":{"id":50225,"name":"LibValidatorSet","nameLocations":["1063:15:84"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"1063:15:84"},"typeName":{"id":50227,"nodeType":"UserDefinedTypeName","pathNode":{"id":50226,"name":"ValidatorSet","nameLocations":["1083:12:84"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"1083:12:84"},"referencedDeclaration":50143,"src":"1083:12:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":50370,"nodeType":"FunctionDefinition","src":"1564:2808:84","nodes":[],"body":{"id":50369,"nodeType":"Block","src":"1744:2628:84","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":50256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50243,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"1885:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":50244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1896:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"1885:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50245,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"1911:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1913:28:84","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47157,"src":"1911:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":50247,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"1944:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1946:19:84","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47173,"src":"1944:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1911:54:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1885:80:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50251,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"1981:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":50252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1992:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"1981:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":50253,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2007:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2009:28:84","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47157,"src":"2007:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1981:56:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1885:152:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50261,"nodeType":"IfStatement","src":"1868:236:84","trueBody":{"id":50260,"nodeType":"Block","src":"2048:56:84","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50257,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"2069:22:84","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2069:24:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50259,"nodeType":"RevertStatement","src":"2062:31:84"}]}},{"assignments":[50263],"declarations":[{"constant":false,"id":50263,"mutability":"mutable","name":"checkpointHash","nameLocation":"2121:14:84","nodeType":"VariableDeclaration","scope":50369,"src":"2113:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2113:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":50270,"initialValue":{"arguments":[{"arguments":[{"id":50267,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"2159:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":50265,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2148:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":50266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2152:6:84","memberName":"encode","nodeType":"MemberAccess","src":"2148:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":50268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2148:22:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50264,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2138:9:84","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2113:58:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50271,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"2186:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":50272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2197:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"2186:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50273,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2212:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2214:28:84","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47157,"src":"2212:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":50275,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2245:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2247:19:84","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47173,"src":"2245:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2212:54:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2186:80:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50330,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"3285:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":50331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3296:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"3285:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":50332,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"3311:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3313:28:84","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47157,"src":"3311:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3285:56:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50367,"nodeType":"IfStatement","src":"3281:1085:84","trueBody":{"id":50366,"nodeType":"Block","src":"3343:1023:84","statements":[{"assignments":[50336],"declarations":[{"constant":false,"id":50336,"mutability":"mutable","name":"lastCheckpointHash","nameLocation":"4043:18:84","nodeType":"VariableDeclaration","scope":50366,"src":"4035:26:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4035:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":50347,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":50340,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"4085:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4087:20:84","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":47137,"src":"4085:22:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":50344,"indexExpression":{"expression":{"id":50342,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"4108:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":50343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4119:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"4108:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4085:46:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}],"expression":{"id":50338,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4074:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":50339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4078:6:84","memberName":"encode","nodeType":"MemberAccess","src":"4074:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":50345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4074:58:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50337,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4064:9:84","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4064:69:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4035:98:84"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":50350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50348,"name":"checkpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50263,"src":"4151:14:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50349,"name":"lastCheckpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50336,"src":"4169:18:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4151:36:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50365,"nodeType":"IfStatement","src":"4147:209:84","trueBody":{"id":50364,"nodeType":"Block","src":"4189:167:84","statements":[{"expression":{"arguments":[{"expression":{"id":50360,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4330:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4334:6:84","memberName":"sender","nodeType":"MemberAccess","src":"4330:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":50351,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"4266:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4268:14:84","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"4266:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4283:18:84","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49914,"src":"4266:35:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":50358,"indexExpression":{"expression":{"id":50354,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"4302:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":50355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4313:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"4302:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4266:59:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4326:3:84","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"4266:63:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":50362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4266:75:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50363,"nodeType":"ExpressionStatement","src":"4266:75:84"}]}}]}},"id":50368,"nodeType":"IfStatement","src":"2182:2184:84","trueBody":{"id":50329,"nodeType":"Block","src":"2268:1007:84","statements":[{"expression":{"arguments":[{"id":50280,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50235,"src":"2411:11:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":50281,"name":"checkpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50263,"src":"2430:14:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":50282,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50238,"src":"2458:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":50279,"name":"validateActiveQuorumSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50576,"src":"2366:30:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bytes32,bytes memory[] memory) view"}},"id":50283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2398:11:84","2424:4:84","2446:10:84"],"names":["signatories","hash","signatures"],"nodeType":"FunctionCall","src":"2366:104:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50284,"nodeType":"ExpressionStatement","src":"2366:104:84"},{"expression":{"id":50292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":50285,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2725:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2727:20:84","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":47137,"src":"2725:22:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":50290,"indexExpression":{"expression":{"id":50287,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"2748:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":50288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2759:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"2748:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2725:46:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50291,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"2774:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"src":"2725:59:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":50293,"nodeType":"ExpressionStatement","src":"2725:59:84"},{"expression":{"arguments":[{"expression":{"id":50303,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2918:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2922:6:84","memberName":"sender","nodeType":"MemberAccess","src":"2918:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":50294,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2854:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2856:14:84","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"2854:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2871:18:84","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49914,"src":"2854:35:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":50301,"indexExpression":{"expression":{"id":50297,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"2890:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":50298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2901:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"2890:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2854:59:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2914:3:84","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"2854:63:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":50305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2854:75:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50306,"nodeType":"ExpressionStatement","src":"2854:75:84"},{"expression":{"id":50312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":50307,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2944:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2946:28:84","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47157,"src":"2944:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":50310,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"2977:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":50311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2988:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49878,"src":"2977:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2944:55:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50313,"nodeType":"ExpressionStatement","src":"2944:55:84"},{"expression":{"arguments":[{"id":50319,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"3113:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"arguments":[{"expression":{"id":50315,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"3078:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3080:14:84","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"3078:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50314,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"3069:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":50317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3069:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":50318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3096:16:84","memberName":"commitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":40286,"src":"3069:43:84","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory) external"}},"id":50320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3069:55:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50321,"nodeType":"ExpressionStatement","src":"3069:55:84"},{"expression":{"arguments":[{"expression":{"id":50325,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50232,"src":"3229:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":50326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3240:23:84","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":49884,"src":"3229:34:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":50322,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"3204:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":50324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3215:13:84","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46128,"src":"3204:24:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":50327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3204:60:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50328,"nodeType":"ExpressionStatement","src":"3204:60:84"}]}}]},"documentation":{"id":50229,"nodeType":"StructuredDocumentation","src":"1102:457:84","text":"@notice Submits a checkpoint commitment for execution.\n @dev It triggers the commitment of the checkpoint and any other side-effects that\n need to be triggered by the checkpoint such as relayer reward book keeping.\n @param checkpoint The executed bottom-up checkpoint.\n @param signatories The addresses of validators signing the checkpoint.\n @param signatures The signatures of validators on the checkpoint."},"functionSelector":"b9ee2bb9","implemented":true,"kind":"function","modifiers":[{"id":50241,"kind":"modifierInvocation","modifierName":{"id":50240,"name":"whenNotPaused","nameLocations":["1730:13:84"],"nodeType":"IdentifierPath","referencedDeclaration":43270,"src":"1730:13:84"},"nodeType":"ModifierInvocation","src":"1730:13:84"}],"name":"submitCheckpoint","nameLocation":"1573:16:84","parameters":{"id":50239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50232,"mutability":"mutable","name":"checkpoint","nameLocation":"1627:10:84","nodeType":"VariableDeclaration","scope":50370,"src":"1599:38:84","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":50231,"nodeType":"UserDefinedTypeName","pathNode":{"id":50230,"name":"BottomUpCheckpoint","nameLocations":["1599:18:84"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"1599:18:84"},"referencedDeclaration":49885,"src":"1599:18:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":50235,"mutability":"mutable","name":"signatories","nameLocation":"1666:11:84","nodeType":"VariableDeclaration","scope":50370,"src":"1647:30:84","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50233,"name":"address","nodeType":"ElementaryTypeName","src":"1647:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50234,"nodeType":"ArrayTypeName","src":"1647:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":50238,"mutability":"mutable","name":"signatures","nameLocation":"1704:10:84","nodeType":"VariableDeclaration","scope":50370,"src":"1687:27:84","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":50236,"name":"bytes","nodeType":"ElementaryTypeName","src":"1687:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":50237,"nodeType":"ArrayTypeName","src":"1687:7:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1589:131:84"},"returnParameters":{"id":50242,"nodeType":"ParameterList","parameters":[],"src":"1744:0:84"},"scope":50577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50510,"nodeType":"FunctionDefinition","src":"4713:2131:84","nodes":[],"body":{"id":50509,"nodeType":"Block","src":"4878:1966:84","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50383,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50374,"src":"4950:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":50384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4956:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"4950:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":50385,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"4970:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4972:17:84","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47161,"src":"4970:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":50387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4990:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49900,"src":"4970:31:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4950:51:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50393,"nodeType":"IfStatement","src":"4946:108:84","trueBody":{"id":50392,"nodeType":"Block","src":"5003:51:84","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50389,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"5024:17:84","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5024:19:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50391,"nodeType":"RevertStatement","src":"5017:26:84"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":50394,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50374,"src":"5067:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":50395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5073:4:84","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"5067:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":50396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5078:6:84","memberName":"length","nodeType":"MemberAccess","src":"5067:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":50397,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"5087:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5089:23:84","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"5087:25:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5067:45:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50404,"nodeType":"IfStatement","src":"5063:108:84","trueBody":{"id":50403,"nodeType":"Block","src":"5114:57:84","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50400,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"5135:23:84","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5135:25:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50402,"nodeType":"RevertStatement","src":"5128:32:84"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":50418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":50405,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50374,"src":"5277:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":50406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5283:4:84","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"5277:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":50407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5288:6:84","memberName":"length","nodeType":"MemberAccess","src":"5277:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":50408,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"5298:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5300:23:84","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"5298:25:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5277:46:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50411,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50374,"src":"5327:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":50412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5333:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"5327:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":50413,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"5347:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5349:22:84","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":47164,"src":"5347:24:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5327:44:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":50416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5375:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5327:49:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5277:99:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50423,"nodeType":"IfStatement","src":"5273:156:84","trueBody":{"id":50422,"nodeType":"Block","src":"5378:51:84","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50419,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"5399:17:84","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5399:19:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50421,"nodeType":"RevertStatement","src":"5392:26:84"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":50424,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50374,"src":"5442:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":50425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5448:4:84","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49897,"src":"5442:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":50426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5453:6:84","memberName":"length","nodeType":"MemberAccess","src":"5442:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5463:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5442:22:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50433,"nodeType":"IfStatement","src":"5438:81:84","trueBody":{"id":50432,"nodeType":"Block","src":"5466:53:84","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50429,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"5487:19:84","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:21:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50431,"nodeType":"RevertStatement","src":"5480:28:84"}]}},{"assignments":[50435],"declarations":[{"constant":false,"id":50435,"mutability":"mutable","name":"batchHash","nameLocation":"5537:9:84","nodeType":"VariableDeclaration","scope":50509,"src":"5529:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5529:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":50442,"initialValue":{"arguments":[{"arguments":[{"id":50439,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50374,"src":"5570:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":50437,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5559:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":50438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5563:6:84","memberName":"encode","nodeType":"MemberAccess","src":"5559:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":50440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5559:17:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50436,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5549:9:84","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5549:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5529:48:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50443,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50374,"src":"5592:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":50444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5598:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"5592:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":50445,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"5613:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5615:17:84","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47161,"src":"5613:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":50447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5633:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49900,"src":"5613:31:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5592:52:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":50507,"nodeType":"Block","src":"6122:716:84","statements":[{"expression":{"arguments":[{"id":50471,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50377,"src":"6265:11:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":50472,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50435,"src":"6284:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":50473,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50380,"src":"6307:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":50470,"name":"validateActiveQuorumSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50576,"src":"6220:30:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bytes32,bytes memory[] memory) view"}},"id":50474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6252:11:84","6278:4:84","6295:10:84"],"names":["signatories","hash","signatures"],"nodeType":"FunctionCall","src":"6220:99:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50475,"nodeType":"ExpressionStatement","src":"6220:99:84"},{"expression":{"id":50484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":50476,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"6497:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6499:17:84","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47161,"src":"6497:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":50480,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50374,"src":"6554:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":50481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6560:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"6554:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":50482,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50435,"src":"6579:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":50479,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49903,"src":"6519:20:84","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpMsgBatchInfo_$49903_storage_ptr_$","typeString":"type(struct BottomUpMsgBatchInfo storage pointer)"}},"id":50483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6541:11:84","6573:4:84"],"names":["blockHeight","hash"],"nodeType":"FunctionCall","src":"6519:71:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_memory_ptr","typeString":"struct BottomUpMsgBatchInfo memory"}},"src":"6497:93:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":50485,"nodeType":"ExpressionStatement","src":"6497:93:84"},{"expression":{"arguments":[{"expression":{"id":50495,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6714:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6718:6:84","memberName":"sender","nodeType":"MemberAccess","src":"6714:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":50486,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"6660:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6662:14:84","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"6660:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6677:13:84","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":49920,"src":"6660:30:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":50493,"indexExpression":{"expression":{"id":50489,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50374,"src":"6691:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":50490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6697:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"6691:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6660:49:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6710:3:84","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"6660:53:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":50497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6660:65:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50498,"nodeType":"ExpressionStatement","src":"6660:65:84"},{"expression":{"arguments":[{"id":50504,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50374,"src":"6821:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"arguments":[{"expression":{"id":50500,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"6782:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6784:14:84","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"6782:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50499,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"6773:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":50502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6773:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":50503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6800:20:84","memberName":"execBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":40353,"src":"6773:47:84","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpMsgBatch_$49898_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) external"}},"id":50505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6773:54:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50506,"nodeType":"ExpressionStatement","src":"6773:54:84"}]},"id":50508,"nodeType":"IfStatement","src":"5588:1250:84","trueBody":{"id":50469,"nodeType":"Block","src":"5646:470:84","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":50453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50449,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50435,"src":"5910:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":50450,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"5923:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5925:17:84","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47161,"src":"5923:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":50452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5943:4:84","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":49902,"src":"5923:24:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5910:37:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50468,"nodeType":"IfStatement","src":"5906:200:84","trueBody":{"id":50467,"nodeType":"Block","src":"5949:157:84","statements":[{"expression":{"arguments":[{"expression":{"id":50463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6080:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6084:6:84","memberName":"sender","nodeType":"MemberAccess","src":"6080:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":50454,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"6026:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6028:14:84","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"6026:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6043:13:84","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":49920,"src":"6026:30:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":50461,"indexExpression":{"expression":{"id":50457,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50374,"src":"6057:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":50458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6063:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49892,"src":"6057:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6026:49:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6076:3:84","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"6026:53:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":50465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6026:65:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50466,"nodeType":"ExpressionStatement","src":"6026:65:84"}]}}]}}]},"documentation":{"id":50371,"nodeType":"StructuredDocumentation","src":"4378:330:84","text":"@notice Submits a batch of bottom-up messages for execution.\n @dev It triggers the execution of a cross-net message batch.\n @param batch The batch of bottom-up messages.\n @param signatories The addresses of validators signing the batch.\n @param signatures The signatures of validators on the batch."},"functionSelector":"26811936","implemented":true,"kind":"function","modifiers":[],"name":"submitBottomUpMsgBatch","nameLocation":"4722:22:84","parameters":{"id":50381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50374,"mutability":"mutable","name":"batch","nameLocation":"4780:5:84","nodeType":"VariableDeclaration","scope":50510,"src":"4754:31:84","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":50373,"nodeType":"UserDefinedTypeName","pathNode":{"id":50372,"name":"BottomUpMsgBatch","nameLocations":["4754:16:84"],"nodeType":"IdentifierPath","referencedDeclaration":49898,"src":"4754:16:84"},"referencedDeclaration":49898,"src":"4754:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49898_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":50377,"mutability":"mutable","name":"signatories","nameLocation":"4814:11:84","nodeType":"VariableDeclaration","scope":50510,"src":"4795:30:84","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50375,"name":"address","nodeType":"ElementaryTypeName","src":"4795:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50376,"nodeType":"ArrayTypeName","src":"4795:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":50380,"mutability":"mutable","name":"signatures","nameLocation":"4852:10:84","nodeType":"VariableDeclaration","scope":50510,"src":"4835:27:84","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":50378,"name":"bytes","nodeType":"ElementaryTypeName","src":"4835:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":50379,"nodeType":"ArrayTypeName","src":"4835:7:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"4744:124:84"},"returnParameters":{"id":50382,"nodeType":"ParameterList","parameters":[],"src":"4878:0:84"},"scope":50577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50576,"nodeType":"FunctionDefinition","src":"7405:890:84","nodes":[],"body":{"id":50575,"nodeType":"Block","src":"7558:737:84","nodes":[],"statements":[{"assignments":[50526],"declarations":[{"constant":false,"id":50526,"mutability":"mutable","name":"collaterals","nameLocation":"7697:11:84","nodeType":"VariableDeclaration","scope":50575,"src":"7680:28:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":50524,"name":"uint256","nodeType":"ElementaryTypeName","src":"7680:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50525,"nodeType":"ArrayTypeName","src":"7680:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":50532,"initialValue":{"arguments":[{"id":50530,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50514,"src":"7752:11:84","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"}],"expression":{"expression":{"id":50527,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"7711:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7713:12:84","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"7711:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":50529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7726:25:84","memberName":"getTotalPowerOfValidators","nodeType":"MemberAccess","referencedDeclaration":44608,"src":"7711:40:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address[] memory) view returns (uint256[] memory)"}},"id":50531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7711:53:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7680:84:84"},{"assignments":[50534],"declarations":[{"constant":false,"id":50534,"mutability":"mutable","name":"activeCollateral","nameLocation":"7782:16:84","nodeType":"VariableDeclaration","scope":50575,"src":"7774:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50533,"name":"uint256","nodeType":"ElementaryTypeName","src":"7774:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50539,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":50535,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"7801:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7803:12:84","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"7801:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":50537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7816:19:84","memberName":"getTotalActivePower","nodeType":"MemberAccess","referencedDeclaration":44487,"src":"7801:34:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":50538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7801:36:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7774:63:84"},{"assignments":[50541],"declarations":[{"constant":false,"id":50541,"mutability":"mutable","name":"threshold","nameLocation":"7856:9:84","nodeType":"VariableDeclaration","scope":50575,"src":"7848:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50540,"name":"uint256","nodeType":"ElementaryTypeName","src":"7848:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50549,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50542,"name":"activeCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50534,"src":"7869:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":50543,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"7888:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7890:18:84","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":47184,"src":"7888:20:84","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7869:39:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":50546,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7868:41:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":50547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7912:3:84","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"7868:47:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7848:67:84"},{"assignments":[50551,50554],"declarations":[{"constant":false,"id":50551,"mutability":"mutable","name":"valid","nameLocation":"7932:5:84","nodeType":"VariableDeclaration","scope":50575,"src":"7927:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50550,"name":"bool","nodeType":"ElementaryTypeName","src":"7927:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":50554,"mutability":"mutable","name":"err","nameLocation":"7967:3:84","nodeType":"VariableDeclaration","scope":50575,"src":"7939:31:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"},"typeName":{"id":50553,"nodeType":"UserDefinedTypeName","pathNode":{"id":50552,"name":"MultisignatureChecker.Error","nameLocations":["7939:21:84","7961:5:84"],"nodeType":"IdentifierPath","referencedDeclaration":43096,"src":"7939:27:84"},"referencedDeclaration":43096,"src":"7939:27:84","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"}},"visibility":"internal"}],"id":50563,"initialValue":{"arguments":[{"id":50557,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50514,"src":"8053:11:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":50558,"name":"collaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50526,"src":"8087:11:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":50559,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50541,"src":"8123:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":50560,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50516,"src":"8152:4:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":50561,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50519,"src":"8182:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":50555,"name":"MultisignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43235,"src":"7974:21:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MultisignatureChecker_$43235_$","typeString":"type(library MultisignatureChecker)"}},"id":50556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7996:29:84","memberName":"isValidWeightedMultiSignature","nodeType":"MemberAccess","referencedDeclaration":43234,"src":"7974:51:84","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$_t_enum$_Error_$43096_$","typeString":"function (address[] memory,uint256[] memory,uint256,bytes32,bytes memory[] memory) pure returns (bool,enum MultisignatureChecker.Error)"}},"id":50562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8040:11:84","8078:7:84","8112:9:84","8146:4:84","8170:10:84"],"names":["signatories","weights","threshold","hash","signatures"],"nodeType":"FunctionCall","src":"7974:229:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43096_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"nodeType":"VariableDeclarationStatement","src":"7926:277:84"},{"condition":{"id":50565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8218:6:84","subExpression":{"id":50564,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50551,"src":"8219:5:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50574,"nodeType":"IfStatement","src":"8214:75:84","trueBody":{"id":50573,"nodeType":"Block","src":"8226:63:84","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":50569,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50554,"src":"8273:3:84","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Error_$43096","typeString":"enum MultisignatureChecker.Error"}],"id":50568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8267:5:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":50567,"name":"uint8","nodeType":"ElementaryTypeName","src":"8267:5:84","typeDescriptions":{}}},"id":50570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8267:10:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":50566,"name":"InvalidSignatureErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37438,"src":"8247:19:84","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$returns$__$","typeString":"function (uint8) pure"}},"id":50571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8247:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50572,"nodeType":"RevertStatement","src":"8240:38:84"}]}}]},"documentation":{"id":50511,"nodeType":"StructuredDocumentation","src":"6850:550:84","text":"@notice Checks whether the signatures are valid for the provided signatories and hash within the current validator set.\n Reverts otherwise.\n @dev Signatories in `signatories` and their signatures in `signatures` must be provided in the same order.\n Having it public allows external users to perform sanity-check verification if needed.\n @param signatories The addresses of the signatories.\n @param hash The hash of the checkpoint.\n @param signatures The packed signatures of the checkpoint."},"functionSelector":"cc2dc2b9","implemented":true,"kind":"function","modifiers":[],"name":"validateActiveQuorumSignatures","nameLocation":"7414:30:84","parameters":{"id":50520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50514,"mutability":"mutable","name":"signatories","nameLocation":"7471:11:84","nodeType":"VariableDeclaration","scope":50576,"src":"7454:28:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50512,"name":"address","nodeType":"ElementaryTypeName","src":"7454:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50513,"nodeType":"ArrayTypeName","src":"7454:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":50516,"mutability":"mutable","name":"hash","nameLocation":"7500:4:84","nodeType":"VariableDeclaration","scope":50576,"src":"7492:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7492:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":50519,"mutability":"mutable","name":"signatures","nameLocation":"7529:10:84","nodeType":"VariableDeclaration","scope":50576,"src":"7514:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":50517,"name":"bytes","nodeType":"ElementaryTypeName","src":"7514:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":50518,"nodeType":"ArrayTypeName","src":"7514:7:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"7444:101:84"},"returnParameters":{"id":50521,"nodeType":"ParameterList","parameters":[],"src":"7558:0:84"},"scope":50577,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":50215,"name":"SubnetActorModifiers","nameLocations":["949:20:84"],"nodeType":"IdentifierPath","referencedDeclaration":47288,"src":"949:20:84"},"id":50216,"nodeType":"InheritanceSpecifier","src":"949:20:84"},{"baseName":{"id":50217,"name":"ReentrancyGuard","nameLocations":["971:15:84"],"nodeType":"IdentifierPath","referencedDeclaration":43966,"src":"971:15:84"},"id":50218,"nodeType":"InheritanceSpecifier","src":"971:15:84"},{"baseName":{"id":50219,"name":"Pausable","nameLocations":["988:8:84"],"nodeType":"IdentifierPath","referencedDeclaration":43385,"src":"988:8:84"},"id":50220,"nodeType":"InheritanceSpecifier","src":"988:8:84"}],"canonicalName":"SubnetActorCheckpointingFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50577,43385,43966,47288],"name":"SubnetActorCheckpointingFacet","nameLocation":"916:29:84","scope":50578,"usedErrors":[37368,37372,37382,37404,37406,37408,37438,37490,37494,37496,43259,43262,43914]}],"license":"MIT OR Apache-2.0"},"id":84} \ No newline at end of file diff --git a/.out/SubnetActorDiamond.sol/SubnetActorDiamond.json b/.out/SubnetActorDiamond.sol/SubnetActorDiamond.json index 1f4d583f7..97755eb80 100644 --- a/.out/SubnetActorDiamond.sol/SubnetActorDiamond.json +++ b/.out/SubnetActorDiamond.sol/SubnetActorDiamond.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"GatewayCannotBeZero","inputs":[]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidERC20Address","inputs":[]},{"type":"error","name":"InvalidMajorityPercentage","inputs":[]},{"type":"error","name":"InvalidPowerScale","inputs":[]},{"type":"error","name":"InvalidSubmissionPeriod","inputs":[]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"1084:5369:38:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1084:5369:38;;;;-1:-1:-1;;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1084:5369:38;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1780:35;1776:94;;1084:5369;;;;-1:-1:-1;;;;;1084:5369:38;1946:31;1942:94;;1084:5369;;;;;;;;:::i;:::-;;;;:::i;:::-;2049:49;;:88;;;1084:5369;2045:145;;1084:5369;;;;;;2231:2;2203:30;;:65;;;;;1084:5369;2199:130;;;2362:2;1084:5369;;;;-1:-1:-1;1084:5369:38;2342:22;2338:79;;1084:5369;;;2427:19;15673:1:69;;1084:5369:38;15673:1:69;;;;;1084:5369:38;1318:37:76;1314:622;;1084:5369:38;-1:-1:-1;2258:16:62;1084:5369:38;;-1:-1:-1;;;;;;1084:5369:38;2496:10;1084:5369;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;-1:-1:-1;1084:5369:38;;;;-1:-1:-1;2937:19:62;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;3911:74:62;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;;:::i;:::-;3911:74:62;;;2727:22:38;1084:5369;;;;;;-1:-1:-1;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1084:5369:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;2940:49;2936:170;;1084:5369;3129:15;;1084:5369;;3116:10;1084:5369;;-1:-1:-1;;;;;;1084:5369:38;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;-1:-1:-1;1084:5369:38;-1:-1:-1;1084:5369:38;;;;;;;;;;;;;;;;;;3154:16;1084:5369;;;;;;;;;;;;2362:2;1084:5369;;;;;;-1:-1:-1;;1084:5369:38;;;;;;;;;;;3244:25;1084:5369;;;;;3312:15;1084:5369;;-1:-1:-1;;;;;;1084:5369:38;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;3360:21;1084:5369;;;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;;3154:16;1084:5369;;;;;;;;;;;;;;;;;;;;3520:16;1084:5369;;;;;;;:::i;:::-;3116:10;1084:5369;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;3592:25:38;1084:5369;;;;;;;;;;3592:40;;1084:5369;3592:40;;;1084:5369;;;;;;:::i;:::-;3626:4;1084:5369;;;;3592:40;;;;;;;;;;-1:-1:-1;3592:40:38;;;1084:5369;;;;;;;;;;;;;;;;3592:49;;;:40;:49;;1084:5369;;;;;;:::i;:::-;3592:49;;;;;;;;-1:-1:-1;3592:49:38;;;1084:5369;;;;3570:19;1084:5369;;;;;;;;:::i;:::-;;;;:::i;:::-;3651:14;1084:5369;282:3:80;3897:24:38;1084:5369;3244:25;1084:5369;;;;;;3946:25;1084:5369;;;3946:25;1084:5369;;246:2:80;1084:5369:38;;;246:2:80;3897:24:38;246:2:80;;1084:5369:38;;246:2:80;;;;;;3651:14:38;246:2:80;15673:1:69;1084:5369:38;15673:1:69;;;;;4180:11:38;1084:5369;15673:1:69;;4180:11:38;15673:1:69;1084:5369:38;4556:19;15673:1:69;;;1084:5369:38;15673:1:69;;;;;1084:5369:38;4539:14;15673:1:69;246:2:80;1084:5369:38;246:2:80;1084:5369:38;246:2:80;;;15673:1:69;;1084:5369:38;3897:24;246:2:80;;1084:5369:38;;;;;;;;;15673:1:69;;;4539:14:38;15673:1:69;1084:5369:38;;;;;;;;;15673:1:69;1084:5369:38;;;-1:-1:-1;1084:5369:38;;3592:40;1084:5369;;-1:-1:-1;1084:5369:38;3592:49;;1084:5369;3592:49;;1084:5369;3592:49;;;;;;1084:5369;3592:49;;;:::i;:::-;;;1084:5369;;;;;;;3592:49;;1084:5369;-1:-1:-1;1084:5369:38;;3592:49;;;-1:-1:-1;3592:49:38;;;1084:5369;;;-1:-1:-1;1084:5369:38;;;;;3592:40;;;;;-1:-1:-1;3592:40:38;;;;;;:::i;:::-;;;1084:5369;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;:::i;:::-;3592:40;;;;;1084:5369;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;2936:170;-1:-1:-1;1084:5369:38;;;;2936:170;;1084:5369;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:62;1084:5369:38;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;1084:5369:38;;;;;3142:29:62;3138:122;;1084:5369:38;3309:23:62;;;;:::i;:::-;;:30;1084:5369:38;;;;:::i;:::-;;;;:::i;:::-;3357:37:62;;;4150:27;;;4146:116;;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;4385:74:62;1084:5369:38;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;4385:74:62;;:::i;:::-;1084:5369:38;;4526:21:62;-1:-1:-1;4521:677:62;4549:22;;;;;;3353:466;;;;;1084:5369:38;3353:466:62;;1084:5369:38;2917:18:62;;4526:21;-1:-1:-1;;;;;;4607:33:62;;;;:::i;:::-;1084:5369:38;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;-1:-1:-1;;;;;1084:5369:38;4751:128:62;;1084:5369:38;;;;;;:::i;:::-;;;;;;;;4939:107:62;;;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;246:2:80;;-1:-1:-1;;;;;;1084:5369:38;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:62;;;1084:5369:38;;;;-1:-1:-1;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;4751:128:62;1084:5369:38;;;;4811:53:62;;;;;;;;;1084:5369:38;4811:53:62;4146:116;1084:5369:38;;-1:-1:-1;;;4200:51:62;;1084:5369:38;4200:51:62;;;1084:5369:38;;;;;;;;;;;:::i;:::-;4200:51:62;;;3353:466;1084:5369:38;;;:::i;:::-;;3484:41:62;;1084:5369:38;;5372:27:62;;;5368:131;;5508:81;1084:5369:38;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;5508:81:62;;:::i;:::-;1084:5369:38;;5652:21:62;-1:-1:-1;5675:18:62;;;;;;3480:339;;;;1084:5369:38;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;1084:5369:38;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;-1:-1:-1;;;;;1084:5369:38;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;5652:21:62;;6268:123;1084:5369:38;;;;6328:48:62;;;;;;;;;1084:5369:38;6328:48:62;6111:144;1084:5369:38;;-1:-1:-1;;;6174:66:62;;;;;1084:5369:38;;;;;6174:66:62;5980:118;1084:5369:38;;-1:-1:-1;;;6043:40:62;;;;;1084:5369:38;;;;;6043:40:62;5368:131;1084:5369:38;;-1:-1:-1;;;5422:66:62;;1084:5369:38;5422:66:62;;;1084:5369:38;;;;;;;;;;;:::i;3480:339:62:-;1084:5369:38;;;:::i;:::-;;3619:40:62;;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;6826:27:62;;6822:115;;1084:5369:38;;;6999:21:62;-1:-1:-1;7022:18:62;;;;;;3615:204;;;;1084:5369:38;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;1084:5369:38;;;;-1:-1:-1;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;7278:61:62;7274:153;;1084:5369:38;;-1:-1:-1;;;;;1084:5369:38;7597:4:62;7538:64;7534:149;;1084:5369:38;;;;;;;;;;;;;246:2:80;1084:5369:38;7780:68:62;7776:412;;6999:21;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;-1:-1:-1;;1084:5369:38;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;-1:-1:-1;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;-1:-1:-1;1084:5369:38;;;;;6999:21:62;;1084:5369:38;;;;-1:-1:-1;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;7776:412:62;8033:140;7890:27;1084:5369:38;;7890:27:62;;;:::i;:::-;1084:5369:38;;;;;;;;;7935:80:62;1084:5369:38;7935:65:62;1084:5369:38;;;;246:2:80;1084:5369:38;7935:65:62;:::i;:80::-;1084:5369:38;246:2:80;-1:-1:-1;;;;;;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;-1:-1:-1;;;;1084:5369:38;;;;;;;-1:-1:-1;;;1084:5369:38;;;;;8033:140:62;7776:412;;;7534:149;1084:5369:38;;-1:-1:-1;;;7629:39:62;;;;;1084:5369:38;;;;;7629:39:62;7274:153;1084:5369:38;;-1:-1:-1;;;7366:46:62;;;;;1084:5369:38;;;;;7366:46:62;6822:115;1084:5369:38;;;;6876:50:62;;;;;;;;;1084:5369:38;6876:50:62;3615:204;1084:5369:38;;-1:-1:-1;;;3773:31:62;;1084:5369:38;;;;;:::i;:::-;3773:31:62;;;1084:5369:38;3773:31:62;3138:122;1084:5369:38;;-1:-1:-1;;;3198:47:62;;;;;1084:5369:38;;;;;3198:47:62;1314:622:76;1084:5369:38;1375:25:76;;1084:5369:38;-1:-1:-1;;;;;1084:5369:38;1375:39:76;1371:106;;1084:5369:38;1375:25:76;;;1084:5369:38;;;-1:-1:-1;;;1898:27:76;;-1:-1:-1;1898:27:76;;;1084:5369:38;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;1898:27:76;;;;;;;1314:622;1898:27;1084:5369:38;1898:27:76;;;;;;;;;;;;:::i;:::-;;;1084:5369:38;;;;1898:27:76;1314:622;;1898:27;;;;;1371:106;1084:5369:38;;-1:-1:-1;;;1441:21:76;;;;;2338:79:38;1084:5369;;-1:-1:-1;;;2387:19:38;;;;;2199:130;1084:5369;;-1:-1:-1;;;2291:27:38;;;;;2203:65;2265:3;2237:31;;;2203:65;;;2045:145;1084:5369;;-1:-1:-1;;;2160:19:38;;;;;2049:88;1084:5369;;;;;2102:35;2049:88;;1942:94;1084:5369;;-1:-1:-1;;;2000:25:38;;;;;1776:94;1084:5369;;-1:-1:-1;;;1838:21:38;;;;;1084:5369;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;-1:-1:-1;;1084:5369:38;;-1:-1:-1;1084:5369:38;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1084:5369:38;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;;;;;;;;:::o;9308:320:62:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;1084:5369:38;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;1084:5369:38;;;9566:45:62;;;1084:5369:38;;;;;;;;;;;;;;;:::i","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1444,"length":20}]}}},"deployedBytecode":{"object":"0x60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c63430008130033","sourceMap":"1084:5369:38:-:0;;;;;;;-1:-1:-1;4971:7:38;;-1:-1:-1;;;;;;4971:7:38;260:43:62;;;;;;1084:5369:38;260:43:62;;;-1:-1:-1;;;;;260:43:62;;5006:19:38;;5002:82;;1084:5369;;;;;5228:593;;;1084:5369;;5228:593;;;;;;;;;;;;;;;;;5002:82;-1:-1:-1;;;1084:5369:38;5048:25;-1:-1:-1;;;;;;260:43:62;5048:25:38;260:43:62;-1:-1:-1;;260:43:62;5048:25:38;1084:5369;5048:25;1084:5369;6312:16;260:43:62;-1:-1:-1;;;;;260:43:62;6298:10:38;:30;6294:80;;1084:5369;6294:80;6351:12;;;1084:5369;6351:12;;1084:5369;6351:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GatewayCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidERC20Address\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPowerScale\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubmissionPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetActorDiamond.sol\":\"SubnetActorDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[],"type":"error","name":"GatewayCannotBeZero"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidERC20Address"},{"inputs":[],"type":"error","name":"InvalidMajorityPercentage"},{"inputs":[],"type":"error","name":"InvalidPowerScale"},{"inputs":[],"type":"error","name":"InvalidSubmissionPeriod"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SubnetActorDiamond.sol":"SubnetActorDiamond"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/SubnetActorDiamond.sol","id":36616,"exportedSymbols":{"BATCH_PERIOD":[49913],"ConsensusType":[37359],"FunctionNotFound":[36213],"GatewayCannotBeZero":[37400],"IDiamond":[40170],"IDiamondCut":[40189],"IDiamondLoupe":[40230],"IERC165":[40241],"IERC20":[31999],"InvalidCollateral":[37416],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidSubmissionPeriod":[37444],"LibDiamond":[41682],"LibStaking":[46176],"MAX_MSGS_PER_BATCH":[49910],"NotGateway":[37478],"PermissionMode":[50165],"SubnetActorDiamond":[36615],"SubnetActorStorage":[47281],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:6408:38","nodes":[{"id":36172,"nodeType":"PragmaDirective","src":"46:23:38","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36174,"nodeType":"ImportDirective","src":"71:67:38","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":36173,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"79:18:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36176,"nodeType":"ImportDirective","src":"139:56:38","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"./enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":36175,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"147:13:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36178,"nodeType":"ImportDirective","src":"196:51:38","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":36177,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"204:8:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36180,"nodeType":"ImportDirective","src":"248:57:38","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"./interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":36179,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"256:11:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36182,"nodeType":"ImportDirective","src":"306:61:38","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":36181,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"314:13:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36184,"nodeType":"ImportDirective","src":"368:49:38","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":36183,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"376:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36191,"nodeType":"ImportDirective","src":"418:161:38","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":36185,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"426:19:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36186,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"447:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36187,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"459:23:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36188,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37416,"src":"484:17:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36189,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"503:25:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36190,"name":"InvalidPowerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37430,"src":"530:17:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36194,"nodeType":"ImportDirective","src":"580:72:38","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"./structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":36192,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49913,"src":"588:12:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36193,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49910,"src":"602:18:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36196,"nodeType":"ImportDirective","src":"653:48:38","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":36195,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"661:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36201,"nodeType":"ImportDirective","src":"702:88:38","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":36197,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"710:14:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36198,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"726:8:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36199,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"736:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36200,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"748:12:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36203,"nodeType":"ImportDirective","src":"791:56:38","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"./lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":36202,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"799:14:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36205,"nodeType":"ImportDirective","src":"848:48:38","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"./lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":36204,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"856:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36207,"nodeType":"ImportDirective","src":"897:69:38","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":32000,"symbolAliases":[{"foreign":{"id":36206,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"905:6:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36209,"nodeType":"ImportDirective","src":"967:64:38","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"./lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":36208,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"975:18:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36213,"nodeType":"ErrorDefinition","src":"1033:49:38","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"1039:16:38","parameters":{"id":36212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36211,"mutability":"mutable","name":"_functionSelector","nameLocation":"1063:17:38","nodeType":"VariableDeclaration","scope":36213,"src":"1056:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36210,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1056:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1055:26:38"}},{"id":36615,"nodeType":"ContractDefinition","src":"1084:5369:38","nodes":[{"id":36216,"nodeType":"VariableDeclaration","src":"1118:29:38","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"1146:1:38","scope":36615,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":36215,"nodeType":"UserDefinedTypeName","pathNode":{"id":36214,"name":"SubnetActorStorage","nameLocations":["1118:18:38"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"1118:18:38"},"referencedDeclaration":47281,"src":"1118:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":36220,"nodeType":"UsingForDirective","src":"1154:34:38","nodes":[],"global":false,"libraryName":{"id":36217,"name":"SubnetIDHelper","nameLocations":["1160:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1160:14:38"},"typeName":{"id":36219,"nodeType":"UserDefinedTypeName","pathNode":{"id":36218,"name":"SubnetID","nameLocations":["1179:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1179:8:38"},"referencedDeclaration":50077,"src":"1179:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":36224,"nodeType":"UsingForDirective","src":"1193:42:38","nodes":[],"global":false,"libraryName":{"id":36221,"name":"SupplySourceHelper","nameLocations":["1199:18:38"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1199:18:38"},"typeName":{"id":36223,"nodeType":"UserDefinedTypeName","pathNode":{"id":36222,"name":"SupplySource","nameLocations":["1222:12:38"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1222:12:38"},"referencedDeclaration":50226,"src":"1222:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":36253,"nodeType":"StructDefinition","src":"1241:434:38","nodes":[],"canonicalName":"SubnetActorDiamond.ConstructorParams","members":[{"constant":false,"id":36227,"mutability":"mutable","name":"parentId","nameLocation":"1285:8:38","nodeType":"VariableDeclaration","scope":36253,"src":"1276:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":36226,"nodeType":"UserDefinedTypeName","pathNode":{"id":36225,"name":"SubnetID","nameLocations":["1276:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1276:8:38"},"referencedDeclaration":50077,"src":"1276:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":36229,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"1311:14:38","nodeType":"VariableDeclaration","scope":36253,"src":"1303:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36228,"name":"address","nodeType":"ElementaryTypeName","src":"1303:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36232,"mutability":"mutable","name":"consensus","nameLocation":"1349:9:38","nodeType":"VariableDeclaration","scope":36253,"src":"1335:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":36231,"nodeType":"UserDefinedTypeName","pathNode":{"id":36230,"name":"ConsensusType","nameLocations":["1335:13:38"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"1335:13:38"},"referencedDeclaration":37359,"src":"1335:13:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":36234,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1376:23:38","nodeType":"VariableDeclaration","scope":36253,"src":"1368:31:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36233,"name":"uint256","nodeType":"ElementaryTypeName","src":"1368:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36236,"mutability":"mutable","name":"minValidators","nameLocation":"1416:13:38","nodeType":"VariableDeclaration","scope":36253,"src":"1409:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":36235,"name":"uint64","nodeType":"ElementaryTypeName","src":"1409:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":36238,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1446:19:38","nodeType":"VariableDeclaration","scope":36253,"src":"1439:26:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":36237,"name":"uint64","nodeType":"ElementaryTypeName","src":"1439:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":36240,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1481:18:38","nodeType":"VariableDeclaration","scope":36253,"src":"1475:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":36239,"name":"uint8","nodeType":"ElementaryTypeName","src":"1475:5:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":36242,"mutability":"mutable","name":"activeValidatorsLimit","nameLocation":"1516:21:38","nodeType":"VariableDeclaration","scope":36253,"src":"1509:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":36241,"name":"uint16","nodeType":"ElementaryTypeName","src":"1509:6:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":36244,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"1555:14:38","nodeType":"VariableDeclaration","scope":36253,"src":"1547:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36243,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36246,"mutability":"mutable","name":"powerScale","nameLocation":"1584:10:38","nodeType":"VariableDeclaration","scope":36253,"src":"1579:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":36245,"name":"int8","nodeType":"ElementaryTypeName","src":"1579:4:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":36249,"mutability":"mutable","name":"permissionMode","nameLocation":"1619:14:38","nodeType":"VariableDeclaration","scope":36253,"src":"1604:29:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":36248,"nodeType":"UserDefinedTypeName","pathNode":{"id":36247,"name":"PermissionMode","nameLocations":["1604:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"1604:14:38"},"referencedDeclaration":50165,"src":"1604:14:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":36252,"mutability":"mutable","name":"supplySource","nameLocation":"1656:12:38","nodeType":"VariableDeclaration","scope":36253,"src":"1643:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"},"typeName":{"id":36251,"nodeType":"UserDefinedTypeName","pathNode":{"id":36250,"name":"SupplySource","nameLocations":["1643:12:38"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1643:12:38"},"referencedDeclaration":50226,"src":"1643:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"1248:17:38","scope":36615,"visibility":"public"},{"id":36539,"nodeType":"FunctionDefinition","src":"1681:2901:38","nodes":[],"body":{"id":36538,"nodeType":"Block","src":"1766:2816:38","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36263,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"1780:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1787:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":36229,"src":"1780:21:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1813:1:38","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":36266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1805:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36265,"name":"address","nodeType":"ElementaryTypeName","src":"1805:7:38","typeDescriptions":{}}},"id":36268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1805:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1780:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36274,"nodeType":"IfStatement","src":"1776:94:38","trueBody":{"id":36273,"nodeType":"Block","src":"1817:53:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36270,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"1838:19:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1838:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36272,"nodeType":"RevertStatement","src":"1831:28:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":36278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36275,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"1946:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1953:19:38","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":36238,"src":"1946:26:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":36277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1976:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1946:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36283,"nodeType":"IfStatement","src":"1942:94:38","trueBody":{"id":36282,"nodeType":"Block","src":"1979:57:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36279,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"2000:23:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2000:25:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36281,"nodeType":"RevertStatement","src":"1993:32:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":36293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":36288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36284,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2049:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2056:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":36249,"src":"2049:21:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":36286,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"2074:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":36287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2089:9:38","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"2074:24:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"2049:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36289,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2102:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2109:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":36234,"src":"2102:30:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":36291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2136:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2102:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2049:88:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36298,"nodeType":"IfStatement","src":"2045:145:38","trueBody":{"id":36297,"nodeType":"Block","src":"2139:51:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36294,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37416,"src":"2160:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2160:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36296,"nodeType":"RevertStatement","src":"2153:26:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":36307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":36302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36299,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2203:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2210:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":36240,"src":"2203:25:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":36301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2231:2:38","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"2203:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":36306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36303,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2237:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2244:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":36240,"src":"2237:25:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":36305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2265:3:38","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2237:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2203:65:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36312,"nodeType":"IfStatement","src":"2199:130:38","trueBody":{"id":36311,"nodeType":"Block","src":"2270:59:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36308,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"2291:25:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2291:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36310,"nodeType":"RevertStatement","src":"2284:34:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":36316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36313,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2342:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2349:10:38","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":36246,"src":"2342:17:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3138","id":36315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:2:38","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"2342:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36321,"nodeType":"IfStatement","src":"2338:79:38","trueBody":{"id":36320,"nodeType":"Block","src":"2366:51:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36317,"name":"InvalidPowerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37430,"src":"2387:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36319,"nodeType":"RevertStatement","src":"2380:26:38"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":36322,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2427:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2434:12:38","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":36252,"src":"2427:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":36326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2447:8:38","memberName":"validate","nodeType":"MemberAccess","referencedDeclaration":48161,"src":"2427:28:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SupplySource_$50226_memory_ptr_$returns$__$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory) view"}},"id":36327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2427:30:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36328,"nodeType":"ExpressionStatement","src":"2427:30:38"},{"expression":{"arguments":[{"expression":{"id":36332,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2496:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2500:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2496:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":36329,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2468:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2479:16:38","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":41102,"src":"2468:27:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":36334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2468:39:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36335,"nodeType":"ExpressionStatement","src":"2468:39:38"},{"expression":{"arguments":[{"id":36339,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36257,"src":"2553:11:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":36342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2581:1:38","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":36341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2573:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36340,"name":"address","nodeType":"ElementaryTypeName","src":"2573:7:38","typeDescriptions":{}}},"id":36343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":36346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2606:1:38","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":36345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2596:9:38","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":36344,"name":"bytes","nodeType":"ElementaryTypeName","src":"2600:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":36347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2596:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":36336,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2517:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2528:10:38","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41262,"src":"2517:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":36348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2540:11:38","2566:5:38","2585:9:38"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"2517:93:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36349,"nodeType":"ExpressionStatement","src":"2517:93:38"},{"assignments":[36354],"declarations":[{"constant":false,"id":36354,"mutability":"mutable","name":"ds","nameLocation":"2655:2:38","nodeType":"VariableDeclaration","scope":36538,"src":"2621:36:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36353,"nodeType":"UserDefinedTypeName","pathNode":{"id":36352,"name":"LibDiamond.DiamondStorage","nameLocations":["2621:10:38","2632:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"2621:25:38"},"referencedDeclaration":41072,"src":"2621:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36358,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36355,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2660:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2671:14:38","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"2660:25:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2660:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2621:66:38"},{"expression":{"id":36368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36359,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36354,"src":"2727:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2730:19:38","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2727:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36366,"indexExpression":{"expression":{"arguments":[{"id":36362,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"2755:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}],"id":36361,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2750:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$40241","typeString":"type(contract IERC165)"}},"id":36364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2764:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"2750:25:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2727:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2779:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2727:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36369,"nodeType":"ExpressionStatement","src":"2727:56:38"},{"expression":{"id":36379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36370,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36354,"src":"2793:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2796:19:38","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2793:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36377,"indexExpression":{"expression":{"arguments":[{"id":36373,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"2821:11:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}],"id":36372,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2816:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2816:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$40189","typeString":"type(contract IDiamondCut)"}},"id":36375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2834:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"2816:29:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2793:53:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2849:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2793:60:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36380,"nodeType":"ExpressionStatement","src":"2793:60:38"},{"expression":{"id":36390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36381,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36354,"src":"2863:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2866:19:38","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2863:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36388,"indexExpression":{"expression":{"arguments":[{"id":36384,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"2891:13:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}],"id":36383,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2886:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2886:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$40230","typeString":"type(contract IDiamondLoupe)"}},"id":36386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2906:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"2886:31:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2863:55:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2921:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2863:62:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36391,"nodeType":"ExpressionStatement","src":"2863:62:38"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":36396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36392,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2940:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2947:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":36249,"src":"2940:21:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":36394,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"2965:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":36395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2980:9:38","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"2965:24:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"2940:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36404,"nodeType":"IfStatement","src":"2936:170:38","trueBody":{"id":36403,"nodeType":"Block","src":"2991:115:38","statements":[{"expression":{"id":36401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36397,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3061:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3068:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":36234,"src":"3061:30:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":36400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3094:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3061:34:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36402,"nodeType":"ExpressionStatement","src":"3061:34:38"}]}},{"expression":{"id":36410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36405,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3116:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3118:8:38","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":47238,"src":"3116:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36408,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3129:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3136:8:38","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":36227,"src":"3129:15:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"src":"3116:28:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":36411,"nodeType":"ExpressionStatement","src":"3116:28:38"},{"expression":{"id":36417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36412,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3154:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3156:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"3154:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36415,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3173:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3180:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":36229,"src":"3173:21:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3154:40:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36418,"nodeType":"ExpressionStatement","src":"3154:40:38"},{"expression":{"id":36424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36419,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3204:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3206:9:38","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":47242,"src":"3204:11:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36422,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3218:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3225:9:38","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":36232,"src":"3218:16:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"src":"3204:30:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"id":36425,"nodeType":"ExpressionStatement","src":"3204:30:38"},{"expression":{"id":36431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36426,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3244:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3246:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":47217,"src":"3244:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36429,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3272:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3279:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":36234,"src":"3272:30:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3244:58:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36432,"nodeType":"ExpressionStatement","src":"3244:58:38"},{"expression":{"id":36438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36433,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3312:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3314:13:38","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47223,"src":"3312:15:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36436,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3330:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3337:13:38","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":36236,"src":"3330:20:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3312:38:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36439,"nodeType":"ExpressionStatement","src":"3312:38:38"},{"expression":{"id":36445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36440,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3360:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3362:19:38","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"3360:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36443,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3384:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3391:19:38","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":36238,"src":"3384:26:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3360:50:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36446,"nodeType":"ExpressionStatement","src":"3360:50:38"},{"expression":{"id":36452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36447,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3420:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3422:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":47231,"src":"3420:20:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36450,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3443:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3450:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":36240,"src":"3443:25:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3420:48:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":36453,"nodeType":"ExpressionStatement","src":"3420:48:38"},{"expression":{"id":36459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36454,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3478:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3480:10:38","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":47263,"src":"3478:12:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36457,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3493:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3500:10:38","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":36246,"src":"3493:17:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3478:32:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":36460,"nodeType":"ExpressionStatement","src":"3478:32:38"},{"expression":{"id":36466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36461,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3520:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3522:14:38","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":47234,"src":"3520:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36464,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3539:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3546:14:38","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":36244,"src":"3539:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3520:40:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36467,"nodeType":"ExpressionStatement","src":"3520:40:38"},{"expression":{"id":36481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36468,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3570:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3572:17:38","memberName":"currentSubnetHash","nodeType":"MemberAccess","referencedDeclaration":47225,"src":"3570:19:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":36476,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3626:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":36475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3618:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36474,"name":"address","nodeType":"ElementaryTypeName","src":"3618:7:38","typeDescriptions":{}}},"id":36477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3618:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":36471,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3592:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3594:8:38","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":47238,"src":"3592:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":36473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3603:14:38","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"3592:25:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":36478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:40:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":36479,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3633:6:38","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"3592:47:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":36480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:49:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3570:71:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":36482,"nodeType":"ExpressionStatement","src":"3570:71:38"},{"expression":{"id":36490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36483,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3651:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3653:12:38","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"3651:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":36487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3666:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"3651:29:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36488,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3683:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3690:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":36249,"src":"3683:21:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"3651:53:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"id":36491,"nodeType":"ExpressionStatement","src":"3651:53:38"},{"expression":{"id":36496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36492,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3897:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3899:22:38","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":47211,"src":"3897:24:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36495,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49913,"src":"3924:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3897:39:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36497,"nodeType":"ExpressionStatement","src":"3897:39:38"},{"expression":{"id":36502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36498,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3946:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3948:23:38","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47214,"src":"3946:25:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36501,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49910,"src":"3974:18:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3946:46:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36503,"nodeType":"ExpressionStatement","src":"3946:46:38"},{"expression":{"id":36511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36504,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4003:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4005:12:38","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"4003:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":36508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4018:11:38","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"4003:26:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36509,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"4032:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4039:21:38","memberName":"activeValidatorsLimit","nodeType":"MemberAccess","referencedDeclaration":36242,"src":"4032:28:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4003:57:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36512,"nodeType":"ExpressionStatement","src":"4003:57:38"},{"expression":{"id":36520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36513,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4180:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4182:9:38","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"4180:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4192:23:38","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"4180:35:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36518,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"4218:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":36519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4229:28:38","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45319,"src":"4218:39:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4180:77:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36521,"nodeType":"ExpressionStatement","src":"4180:77:38"},{"expression":{"id":36529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36522,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4415:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4417:9:38","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"4415:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4427:24:38","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"4415:36:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36527,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"4454:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":36528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4465:28:38","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45319,"src":"4454:39:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4415:78:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36530,"nodeType":"ExpressionStatement","src":"4415:78:38"},{"expression":{"id":36536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36531,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4539:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4541:12:38","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":47280,"src":"4539:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage","typeString":"struct SupplySource storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36534,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"4556:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4563:12:38","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":36252,"src":"4556:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"src":"4539:36:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage","typeString":"struct SupplySource storage ref"}},"id":36537,"nodeType":"ExpressionStatement","src":"4539:36:38"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36257,"mutability":"mutable","name":"_diamondCut","nameLocation":"1720:11:38","nodeType":"VariableDeclaration","scope":36539,"src":"1693:38:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":36255,"nodeType":"UserDefinedTypeName","pathNode":{"id":36254,"name":"IDiamond.FacetCut","nameLocations":["1693:8:38","1702:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1693:17:38"},"referencedDeclaration":40159,"src":"1693:17:38","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":36256,"nodeType":"ArrayTypeName","src":"1693:19:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":36260,"mutability":"mutable","name":"params","nameLocation":"1758:6:38","nodeType":"VariableDeclaration","scope":36539,"src":"1733:31:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":36259,"nodeType":"UserDefinedTypeName","pathNode":{"id":36258,"name":"ConstructorParams","nameLocations":["1733:17:38"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"1733:17:38"},"referencedDeclaration":36253,"src":"1733:17:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1692:73:38"},"returnParameters":{"id":36262,"nodeType":"ParameterList","parameters":[],"src":"1766:0:38"},"scope":36615,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36578,"nodeType":"FunctionDefinition","src":"4588:1239:38","nodes":[],"body":{"id":36577,"nodeType":"Block","src":"4618:1209:38","nodes":[],"statements":[{"assignments":[36546],"declarations":[{"constant":false,"id":36546,"mutability":"mutable","name":"ds","nameLocation":"4662:2:38","nodeType":"VariableDeclaration","scope":36577,"src":"4628:36:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36545,"nodeType":"UserDefinedTypeName","pathNode":{"id":36544,"name":"LibDiamond.DiamondStorage","nameLocations":["4628:10:38","4639:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"4628:25:38"},"referencedDeclaration":41072,"src":"4628:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36547,"nodeType":"VariableDeclarationStatement","src":"4628:36:38"},{"assignments":[36549],"declarations":[{"constant":false,"id":36549,"mutability":"mutable","name":"position","nameLocation":"4682:8:38","nodeType":"VariableDeclaration","scope":36577,"src":"4674:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4674:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36552,"initialValue":{"expression":{"id":36550,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"4693:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4704:24:38","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40973,"src":"4693:35:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4674:54:38"},{"AST":{"nodeType":"YulBlock","src":"4824:43:38","statements":[{"nodeType":"YulAssignment","src":"4838:19:38","value":{"name":"position","nodeType":"YulIdentifier","src":"4849:8:38"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"4838:7:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":36546,"isOffset":false,"isSlot":true,"src":"4838:7:38","suffix":"slot","valueSize":1},{"declaration":36549,"isOffset":false,"isSlot":false,"src":"4849:8:38","valueSize":1}],"id":36553,"nodeType":"InlineAssembly","src":"4815:52:38"},{"assignments":[36555],"declarations":[{"constant":false,"id":36555,"mutability":"mutable","name":"facet","nameLocation":"4928:5:38","nodeType":"VariableDeclaration","scope":36577,"src":"4920:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36554,"name":"address","nodeType":"ElementaryTypeName","src":"4920:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36562,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36556,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36546,"src":"4936:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4939:31:38","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"4936:34:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36560,"indexExpression":{"expression":{"id":36558,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4971:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4975:3:38","memberName":"sig","nodeType":"MemberAccess","src":"4971:7:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4936:43:38","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4980:12:38","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"4936:56:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4920:72:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36563,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36555,"src":"5006:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5023:1:38","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":36565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5015:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36564,"name":"address","nodeType":"ElementaryTypeName","src":"5015:7:38","typeDescriptions":{}}},"id":36567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5015:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5006:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36575,"nodeType":"IfStatement","src":"5002:82:38","trueBody":{"id":36574,"nodeType":"Block","src":"5027:57:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":36570,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5065:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5069:3:38","memberName":"sig","nodeType":"MemberAccess","src":"5065:7:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":36569,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36213,"src":"5048:16:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":36572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5048:25:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36573,"nodeType":"RevertStatement","src":"5041:32:38"}]}},{"AST":{"nodeType":"YulBlock","src":"5237:584:38","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5320:1:38","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5323:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"5326:12:38"},"nodeType":"YulFunctionCall","src":"5326:14:38"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"5307:12:38"},"nodeType":"YulFunctionCall","src":"5307:34:38"},"nodeType":"YulExpressionStatement","src":"5307:34:38"},{"nodeType":"YulVariableDeclaration","src":"5407:65:38","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"5434:3:38"},"nodeType":"YulFunctionCall","src":"5434:5:38"},{"name":"facet","nodeType":"YulIdentifier","src":"5441:5:38"},{"kind":"number","nodeType":"YulLiteral","src":"5448:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"5451:12:38"},"nodeType":"YulFunctionCall","src":"5451:14:38"},{"kind":"number","nodeType":"YulLiteral","src":"5467:1:38","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5470:1:38","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"5421:12:38"},"nodeType":"YulFunctionCall","src":"5421:51:38"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"5411:6:38","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5536:1:38","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5539:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5542:14:38"},"nodeType":"YulFunctionCall","src":"5542:16:38"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"5521:14:38"},"nodeType":"YulFunctionCall","src":"5521:38:38"},"nodeType":"YulExpressionStatement","src":"5521:38:38"},{"cases":[{"body":{"nodeType":"YulBlock","src":"5672:59:38","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5697:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5700:14:38"},"nodeType":"YulFunctionCall","src":"5700:16:38"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5690:6:38"},"nodeType":"YulFunctionCall","src":"5690:27:38"},"nodeType":"YulExpressionStatement","src":"5690:27:38"}]},"nodeType":"YulCase","src":"5665:66:38","value":{"kind":"number","nodeType":"YulLiteral","src":"5670:1:38","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"5752:59:38","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5777:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5780:14:38"},"nodeType":"YulFunctionCall","src":"5780:16:38"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"5770:6:38"},"nodeType":"YulFunctionCall","src":"5770:27:38"},"nodeType":"YulExpressionStatement","src":"5770:27:38"}]},"nodeType":"YulCase","src":"5744:67:38","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"5646:6:38"},"nodeType":"YulSwitch","src":"5639:172:38"}]},"evmVersion":"paris","externalReferences":[{"declaration":36555,"isOffset":false,"isSlot":false,"src":"5441:5:38","valueSize":1}],"id":36576,"nodeType":"InlineAssembly","src":"5228:593:38"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"4597:9:38","parameters":{"id":36540,"nodeType":"ParameterList","parameters":[],"src":"4606:2:38"},"returnParameters":{"id":36541,"nodeType":"ParameterList","parameters":[],"src":"4618:0:38"},"scope":36615,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36586,"nodeType":"FunctionDefinition","src":"5894:56:38","nodes":[],"body":{"id":36585,"nodeType":"Block","src":"5922:28:38","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36582,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36578,"src":"5932:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5932:11:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36584,"nodeType":"ExpressionStatement","src":"5932:11:38"}]},"documentation":{"id":36579,"nodeType":"StructuredDocumentation","src":"5833:56:38","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36580,"nodeType":"ParameterList","parameters":[],"src":"5902:2:38"},"returnParameters":{"id":36581,"nodeType":"ParameterList","parameters":[],"src":"5922:0:38"},"scope":36615,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36593,"nodeType":"FunctionDefinition","src":"6065:134:38","nodes":[],"body":{"id":36592,"nodeType":"Block","src":"6104:95:38","nodes":[],"statements":[]},"documentation":{"id":36587,"nodeType":"StructuredDocumentation","src":"5956:62:38","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[{"id":36590,"kind":"modifierInvocation","modifierName":{"id":36589,"name":"onlyGateway","nameLocations":["6092:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":36614,"src":"6092:11:38"},"nodeType":"ModifierInvocation","src":"6092:11:38"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36588,"nodeType":"ParameterList","parameters":[],"src":"6072:2:38"},"returnParameters":{"id":36591,"nodeType":"ParameterList","parameters":[],"src":"6104:0:38"},"scope":36615,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36607,"nodeType":"FunctionDefinition","src":"6247:133:38","nodes":[],"body":{"id":36606,"nodeType":"Block","src":"6284:96:38","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36596,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6298:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6302:6:38","memberName":"sender","nodeType":"MemberAccess","src":"6298:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":36598,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"6312:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6314:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"6312:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6298:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36605,"nodeType":"IfStatement","src":"6294:80:38","trueBody":{"id":36604,"nodeType":"Block","src":"6330:44:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36601,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"6351:10:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6351:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36603,"nodeType":"RevertStatement","src":"6344:19:38"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"6256:12:38","parameters":{"id":36594,"nodeType":"ParameterList","parameters":[],"src":"6268:2:38"},"returnParameters":{"id":36595,"nodeType":"ParameterList","parameters":[],"src":"6284:0:38"},"scope":36615,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":36614,"nodeType":"ModifierDefinition","src":"6386:65:38","nodes":[],"body":{"id":36613,"nodeType":"Block","src":"6409:42:38","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36609,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36607,"src":"6419:12:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":36610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6419:14:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36611,"nodeType":"ExpressionStatement","src":"6419:14:38"},{"id":36612,"nodeType":"PlaceholderStatement","src":"6443:1:38"}]},"name":"onlyGateway","nameLocation":"6395:11:38","parameters":{"id":36608,"nodeType":"ParameterList","parameters":[],"src":"6406:2:38"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36615],"name":"SubnetActorDiamond","nameLocation":"1093:18:38","scope":36616,"usedErrors":[36213,37400,37416,37428,37430,37444,37478,40981,40986,40990,40994,40999,41005,41018,41022,41026,41030,41034,41038,41042,48092]}],"license":"MIT OR Apache-2.0"},"id":38} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"GatewayCannotBeZero","inputs":[]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidERC20Address","inputs":[]},{"type":"error","name":"InvalidMajorityPercentage","inputs":[]},{"type":"error","name":"InvalidPowerScale","inputs":[]},{"type":"error","name":"InvalidSubmissionPeriod","inputs":[]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"1084:5369:38:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1084:5369:38;;;;-1:-1:-1;;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1084:5369:38;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1780:35;1776:94;;1084:5369;;;;-1:-1:-1;;;;;1084:5369:38;1946:31;1942:94;;1084:5369;;;;;;;;:::i;:::-;;;;:::i;:::-;2049:49;;:88;;;1084:5369;2045:145;;1084:5369;;;;;;2231:2;2203:30;;:65;;;;;1084:5369;2199:130;;;2362:2;1084:5369;;;;-1:-1:-1;1084:5369:38;2342:22;2338:79;;1084:5369;;;2427:19;15673:1:69;;1084:5369:38;15673:1:69;;;;;1084:5369:38;1318:37:76;1314:622;;1084:5369:38;-1:-1:-1;2258:16:62;1084:5369:38;;-1:-1:-1;;;;;;1084:5369:38;2496:10;1084:5369;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;-1:-1:-1;1084:5369:38;;;;-1:-1:-1;2937:19:62;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;3911:74:62;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;;:::i;:::-;3911:74:62;;;2727:22:38;1084:5369;;;;;;-1:-1:-1;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1084:5369:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;2940:49;2936:170;;1084:5369;3129:15;;1084:5369;;3116:10;1084:5369;;-1:-1:-1;;;;;;1084:5369:38;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;-1:-1:-1;1084:5369:38;-1:-1:-1;1084:5369:38;;;;;;;;;;;;;;;;;;3154:16;1084:5369;;;;;;;;;;;;2362:2;1084:5369;;;;;;-1:-1:-1;;1084:5369:38;;;;;;;;;;;3244:25;1084:5369;;;;;3312:15;1084:5369;;-1:-1:-1;;;;;;1084:5369:38;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;3360:21;1084:5369;;;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;;3154:16;1084:5369;;;;;;;;;;;;;;;;;;;;3520:16;1084:5369;;;;;;;:::i;:::-;3116:10;1084:5369;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;3592:25:38;1084:5369;;;;;;;;;;3592:40;;1084:5369;3592:40;;;1084:5369;;;;;;:::i;:::-;3626:4;1084:5369;;;;3592:40;;;;;;;;;;-1:-1:-1;3592:40:38;;;1084:5369;;;;;;;;;;;;;;;;3592:49;;;:40;:49;;1084:5369;;;;;;:::i;:::-;3592:49;;;;;;;;-1:-1:-1;3592:49:38;;;1084:5369;;;;3570:19;1084:5369;;;;;;;;:::i;:::-;;;;:::i;:::-;3651:14;1084:5369;282:3:80;3897:24:38;1084:5369;3244:25;1084:5369;;;;;;3946:25;1084:5369;;;3946:25;1084:5369;;246:2:80;1084:5369:38;;;246:2:80;3897:24:38;246:2:80;;1084:5369:38;;246:2:80;;;;;;3651:14:38;246:2:80;15673:1:69;1084:5369:38;15673:1:69;;;;;4180:11:38;1084:5369;15673:1:69;;4180:11:38;15673:1:69;1084:5369:38;4556:19;15673:1:69;;;1084:5369:38;15673:1:69;;;;;1084:5369:38;4539:14;15673:1:69;246:2:80;1084:5369:38;246:2:80;1084:5369:38;246:2:80;;;15673:1:69;;1084:5369:38;3897:24;246:2:80;;1084:5369:38;;;;;;;;;15673:1:69;;;4539:14:38;15673:1:69;1084:5369:38;;;;;;;;;15673:1:69;1084:5369:38;;;-1:-1:-1;1084:5369:38;;3592:40;1084:5369;;-1:-1:-1;1084:5369:38;3592:49;;1084:5369;3592:49;;1084:5369;3592:49;;;;;;1084:5369;3592:49;;;:::i;:::-;;;1084:5369;;;;;;;3592:49;;1084:5369;-1:-1:-1;1084:5369:38;;3592:49;;;-1:-1:-1;3592:49:38;;;1084:5369;;;-1:-1:-1;1084:5369:38;;;;;3592:40;;;;;-1:-1:-1;3592:40:38;;;;;;:::i;:::-;;;1084:5369;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;:::i;:::-;3592:40;;;;;1084:5369;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;2936:170;-1:-1:-1;1084:5369:38;;;;2936:170;;1084:5369;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:62;1084:5369:38;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;1084:5369:38;;;;;3142:29:62;3138:122;;1084:5369:38;3309:23:62;;;;:::i;:::-;;:30;1084:5369:38;;;;:::i;:::-;;;;:::i;:::-;3357:37:62;;;4150:27;;;4146:116;;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;4385:74:62;1084:5369:38;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;4385:74:62;;:::i;:::-;1084:5369:38;;4526:21:62;-1:-1:-1;4521:677:62;4549:22;;;;;;3353:466;;;;;1084:5369:38;3353:466:62;;1084:5369:38;2917:18:62;;4526:21;-1:-1:-1;;;;;;4607:33:62;;;;:::i;:::-;1084:5369:38;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;-1:-1:-1;;;;;1084:5369:38;4751:128:62;;1084:5369:38;;;;;;:::i;:::-;;;;;;;;4939:107:62;;;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;246:2:80;;-1:-1:-1;;;;;;1084:5369:38;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:62;;;1084:5369:38;;;;-1:-1:-1;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;4751:128:62;1084:5369:38;;;;4811:53:62;;;;;;;;;1084:5369:38;4811:53:62;4146:116;1084:5369:38;;-1:-1:-1;;;4200:51:62;;1084:5369:38;4200:51:62;;;1084:5369:38;;;;;;;;;;;:::i;:::-;4200:51:62;;;3353:466;1084:5369:38;;;:::i;:::-;;3484:41:62;;1084:5369:38;;5372:27:62;;;5368:131;;5508:81;1084:5369:38;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;5508:81:62;;:::i;:::-;1084:5369:38;;5652:21:62;-1:-1:-1;5675:18:62;;;;;;3480:339;;;;1084:5369:38;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;1084:5369:38;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;-1:-1:-1;;;;;1084:5369:38;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;5652:21:62;;6268:123;1084:5369:38;;;;6328:48:62;;;;;;;;;1084:5369:38;6328:48:62;6111:144;1084:5369:38;;-1:-1:-1;;;6174:66:62;;;;;1084:5369:38;;;;;6174:66:62;5980:118;1084:5369:38;;-1:-1:-1;;;6043:40:62;;;;;1084:5369:38;;;;;6043:40:62;5368:131;1084:5369:38;;-1:-1:-1;;;5422:66:62;;1084:5369:38;5422:66:62;;;1084:5369:38;;;;;;;;;;;:::i;3480:339:62:-;1084:5369:38;;;:::i;:::-;;3619:40:62;;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;6826:27:62;;6822:115;;1084:5369:38;;;6999:21:62;-1:-1:-1;7022:18:62;;;;;;3615:204;;;;1084:5369:38;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;1084:5369:38;;;;-1:-1:-1;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;7278:61:62;7274:153;;1084:5369:38;;-1:-1:-1;;;;;1084:5369:38;7597:4:62;7538:64;7534:149;;1084:5369:38;;;;;;;;;;;;;246:2:80;1084:5369:38;7780:68:62;7776:412;;6999:21;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;-1:-1:-1;;1084:5369:38;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;-1:-1:-1;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;-1:-1:-1;1084:5369:38;;;;;6999:21:62;;1084:5369:38;;;;-1:-1:-1;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;7776:412:62;8033:140;7890:27;1084:5369:38;;7890:27:62;;;:::i;:::-;1084:5369:38;;;;;;;;;7935:80:62;1084:5369:38;7935:65:62;1084:5369:38;;;;246:2:80;1084:5369:38;7935:65:62;:::i;:80::-;1084:5369:38;246:2:80;-1:-1:-1;;;;;;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;-1:-1:-1;;;;1084:5369:38;;;;;;;-1:-1:-1;;;1084:5369:38;;;;;8033:140:62;7776:412;;;7534:149;1084:5369:38;;-1:-1:-1;;;7629:39:62;;;;;1084:5369:38;;;;;7629:39:62;7274:153;1084:5369:38;;-1:-1:-1;;;7366:46:62;;;;;1084:5369:38;;;;;7366:46:62;6822:115;1084:5369:38;;;;6876:50:62;;;;;;;;;1084:5369:38;6876:50:62;3615:204;1084:5369:38;;-1:-1:-1;;;3773:31:62;;1084:5369:38;;;;;:::i;:::-;3773:31:62;;;1084:5369:38;3773:31:62;3138:122;1084:5369:38;;-1:-1:-1;;;3198:47:62;;;;;1084:5369:38;;;;;3198:47:62;1314:622:76;1084:5369:38;1375:25:76;;1084:5369:38;-1:-1:-1;;;;;1084:5369:38;1375:39:76;1371:106;;1084:5369:38;1375:25:76;;;1084:5369:38;;;-1:-1:-1;;;1898:27:76;;-1:-1:-1;1898:27:76;;;1084:5369:38;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;1898:27:76;;;;;;;1314:622;1898:27;1084:5369:38;1898:27:76;;;;;;;;;;;;:::i;:::-;;;1084:5369:38;;;;1898:27:76;1314:622;;1898:27;;;;;1371:106;1084:5369:38;;-1:-1:-1;;;1441:21:76;;;;;2338:79:38;1084:5369;;-1:-1:-1;;;2387:19:38;;;;;2199:130;1084:5369;;-1:-1:-1;;;2291:27:38;;;;;2203:65;2265:3;2237:31;;;2203:65;;;2045:145;1084:5369;;-1:-1:-1;;;2160:19:38;;;;;2049:88;1084:5369;;;;;2102:35;2049:88;;1942:94;1084:5369;;-1:-1:-1;;;2000:25:38;;;;;1776:94;1084:5369;;-1:-1:-1;;;1838:21:38;;;;;1084:5369;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;-1:-1:-1;;1084:5369:38;;-1:-1:-1;1084:5369:38;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1084:5369:38;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;;;;;;;;:::o;9308:320:62:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;1084:5369:38;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;1084:5369:38;;;9566:45:62;;;1084:5369:38;;;;;;;;;;;;;;;:::i","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1444,"length":20}]}}},"deployedBytecode":{"object":"0x60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c63430008130033","sourceMap":"1084:5369:38:-:0;;;;;;;-1:-1:-1;4971:7:38;;-1:-1:-1;;;;;;4971:7:38;260:43:62;;;;;;1084:5369:38;260:43:62;;;-1:-1:-1;;;;;260:43:62;;5006:19:38;;5002:82;;1084:5369;;;;;5228:593;;;1084:5369;;5228:593;;;;;;;;;;;;;;;;;5002:82;-1:-1:-1;;;1084:5369:38;5048:25;-1:-1:-1;;;;;;260:43:62;5048:25:38;260:43:62;-1:-1:-1;;260:43:62;5048:25:38;1084:5369;5048:25;1084:5369;6312:16;260:43:62;-1:-1:-1;;;;;260:43:62;6298:10:38;:30;6294:80;;1084:5369;6294:80;6351:12;;;1084:5369;6351:12;;1084:5369;6351:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GatewayCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidERC20Address\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPowerScale\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubmissionPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetActorDiamond.sol\":\"SubnetActorDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[],"type":"error","name":"GatewayCannotBeZero"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidERC20Address"},{"inputs":[],"type":"error","name":"InvalidMajorityPercentage"},{"inputs":[],"type":"error","name":"InvalidPowerScale"},{"inputs":[],"type":"error","name":"InvalidSubmissionPeriod"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SubnetActorDiamond.sol":"SubnetActorDiamond"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/SubnetActorDiamond.sol","id":36616,"exportedSymbols":{"BATCH_PERIOD":[49866],"ConsensusType":[37359],"FunctionNotFound":[36213],"GatewayCannotBeZero":[37400],"IDiamond":[40170],"IDiamondCut":[40189],"IDiamondLoupe":[40230],"IERC165":[40241],"IERC20":[31999],"InvalidCollateral":[37416],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidSubmissionPeriod":[37444],"LibDiamond":[41626],"LibStaking":[46129],"MAX_MSGS_PER_BATCH":[49863],"NotGateway":[37478],"PermissionMode":[50118],"SubnetActorDiamond":[36615],"SubnetActorStorage":[47234],"SubnetID":[50030],"SubnetIDHelper":[48025],"SupplyKind":[50182],"SupplySource":[50179],"SupplySourceHelper":[48351]},"nodeType":"SourceUnit","src":"46:6408:38","nodes":[{"id":36172,"nodeType":"PragmaDirective","src":"46:23:38","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36174,"nodeType":"ImportDirective","src":"71:67:38","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":36173,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47234,"src":"79:18:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36176,"nodeType":"ImportDirective","src":"139:56:38","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"./enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":36175,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"147:13:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36178,"nodeType":"ImportDirective","src":"196:51:38","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":36177,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"204:8:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36180,"nodeType":"ImportDirective","src":"248:57:38","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"./interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":36179,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"256:11:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36182,"nodeType":"ImportDirective","src":"306:61:38","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":36181,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"314:13:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36184,"nodeType":"ImportDirective","src":"368:49:38","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":36183,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"376:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36191,"nodeType":"ImportDirective","src":"418:161:38","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":36185,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"426:19:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36186,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"447:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36187,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"459:23:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36188,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37416,"src":"484:17:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36189,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"503:25:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36190,"name":"InvalidPowerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37430,"src":"530:17:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36194,"nodeType":"ImportDirective","src":"580:72:38","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"./structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":36192,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49866,"src":"588:12:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36193,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49863,"src":"602:18:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36196,"nodeType":"ImportDirective","src":"653:48:38","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":41627,"symbolAliases":[{"foreign":{"id":36195,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"661:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36201,"nodeType":"ImportDirective","src":"702:88:38","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":36197,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"710:14:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36198,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"726:8:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36199,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"736:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36200,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"748:12:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36203,"nodeType":"ImportDirective","src":"791:56:38","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"./lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":36202,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"799:14:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36205,"nodeType":"ImportDirective","src":"848:48:38","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"./lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":36204,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"856:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36207,"nodeType":"ImportDirective","src":"897:69:38","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":32000,"symbolAliases":[{"foreign":{"id":36206,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"905:6:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36209,"nodeType":"ImportDirective","src":"967:64:38","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"./lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":36208,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"975:18:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36213,"nodeType":"ErrorDefinition","src":"1033:49:38","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"1039:16:38","parameters":{"id":36212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36211,"mutability":"mutable","name":"_functionSelector","nameLocation":"1063:17:38","nodeType":"VariableDeclaration","scope":36213,"src":"1056:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36210,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1056:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1055:26:38"}},{"id":36615,"nodeType":"ContractDefinition","src":"1084:5369:38","nodes":[{"id":36216,"nodeType":"VariableDeclaration","src":"1118:29:38","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"1146:1:38","scope":36615,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":36215,"nodeType":"UserDefinedTypeName","pathNode":{"id":36214,"name":"SubnetActorStorage","nameLocations":["1118:18:38"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"1118:18:38"},"referencedDeclaration":47234,"src":"1118:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":36220,"nodeType":"UsingForDirective","src":"1154:34:38","nodes":[],"global":false,"libraryName":{"id":36217,"name":"SubnetIDHelper","nameLocations":["1160:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"1160:14:38"},"typeName":{"id":36219,"nodeType":"UserDefinedTypeName","pathNode":{"id":36218,"name":"SubnetID","nameLocations":["1179:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1179:8:38"},"referencedDeclaration":50030,"src":"1179:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":36224,"nodeType":"UsingForDirective","src":"1193:42:38","nodes":[],"global":false,"libraryName":{"id":36221,"name":"SupplySourceHelper","nameLocations":["1199:18:38"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"1199:18:38"},"typeName":{"id":36223,"nodeType":"UserDefinedTypeName","pathNode":{"id":36222,"name":"SupplySource","nameLocations":["1222:12:38"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"1222:12:38"},"referencedDeclaration":50179,"src":"1222:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":36253,"nodeType":"StructDefinition","src":"1241:434:38","nodes":[],"canonicalName":"SubnetActorDiamond.ConstructorParams","members":[{"constant":false,"id":36227,"mutability":"mutable","name":"parentId","nameLocation":"1285:8:38","nodeType":"VariableDeclaration","scope":36253,"src":"1276:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":36226,"nodeType":"UserDefinedTypeName","pathNode":{"id":36225,"name":"SubnetID","nameLocations":["1276:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1276:8:38"},"referencedDeclaration":50030,"src":"1276:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":36229,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"1311:14:38","nodeType":"VariableDeclaration","scope":36253,"src":"1303:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36228,"name":"address","nodeType":"ElementaryTypeName","src":"1303:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36232,"mutability":"mutable","name":"consensus","nameLocation":"1349:9:38","nodeType":"VariableDeclaration","scope":36253,"src":"1335:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":36231,"nodeType":"UserDefinedTypeName","pathNode":{"id":36230,"name":"ConsensusType","nameLocations":["1335:13:38"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"1335:13:38"},"referencedDeclaration":37359,"src":"1335:13:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":36234,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1376:23:38","nodeType":"VariableDeclaration","scope":36253,"src":"1368:31:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36233,"name":"uint256","nodeType":"ElementaryTypeName","src":"1368:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36236,"mutability":"mutable","name":"minValidators","nameLocation":"1416:13:38","nodeType":"VariableDeclaration","scope":36253,"src":"1409:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":36235,"name":"uint64","nodeType":"ElementaryTypeName","src":"1409:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":36238,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1446:19:38","nodeType":"VariableDeclaration","scope":36253,"src":"1439:26:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":36237,"name":"uint64","nodeType":"ElementaryTypeName","src":"1439:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":36240,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1481:18:38","nodeType":"VariableDeclaration","scope":36253,"src":"1475:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":36239,"name":"uint8","nodeType":"ElementaryTypeName","src":"1475:5:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":36242,"mutability":"mutable","name":"activeValidatorsLimit","nameLocation":"1516:21:38","nodeType":"VariableDeclaration","scope":36253,"src":"1509:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":36241,"name":"uint16","nodeType":"ElementaryTypeName","src":"1509:6:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":36244,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"1555:14:38","nodeType":"VariableDeclaration","scope":36253,"src":"1547:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36243,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36246,"mutability":"mutable","name":"powerScale","nameLocation":"1584:10:38","nodeType":"VariableDeclaration","scope":36253,"src":"1579:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":36245,"name":"int8","nodeType":"ElementaryTypeName","src":"1579:4:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":36249,"mutability":"mutable","name":"permissionMode","nameLocation":"1619:14:38","nodeType":"VariableDeclaration","scope":36253,"src":"1604:29:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":36248,"nodeType":"UserDefinedTypeName","pathNode":{"id":36247,"name":"PermissionMode","nameLocations":["1604:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"1604:14:38"},"referencedDeclaration":50118,"src":"1604:14:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":36252,"mutability":"mutable","name":"supplySource","nameLocation":"1656:12:38","nodeType":"VariableDeclaration","scope":36253,"src":"1643:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"},"typeName":{"id":36251,"nodeType":"UserDefinedTypeName","pathNode":{"id":36250,"name":"SupplySource","nameLocations":["1643:12:38"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"1643:12:38"},"referencedDeclaration":50179,"src":"1643:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"1248:17:38","scope":36615,"visibility":"public"},{"id":36539,"nodeType":"FunctionDefinition","src":"1681:2901:38","nodes":[],"body":{"id":36538,"nodeType":"Block","src":"1766:2816:38","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36263,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"1780:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1787:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":36229,"src":"1780:21:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1813:1:38","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":36266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1805:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36265,"name":"address","nodeType":"ElementaryTypeName","src":"1805:7:38","typeDescriptions":{}}},"id":36268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1805:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1780:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36274,"nodeType":"IfStatement","src":"1776:94:38","trueBody":{"id":36273,"nodeType":"Block","src":"1817:53:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36270,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"1838:19:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1838:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36272,"nodeType":"RevertStatement","src":"1831:28:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":36278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36275,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"1946:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1953:19:38","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":36238,"src":"1946:26:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":36277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1976:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1946:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36283,"nodeType":"IfStatement","src":"1942:94:38","trueBody":{"id":36282,"nodeType":"Block","src":"1979:57:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36279,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"2000:23:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2000:25:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36281,"nodeType":"RevertStatement","src":"1993:32:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":36293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"id":36288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36284,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2049:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2056:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":36249,"src":"2049:21:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":36286,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"2074:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":36287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2089:9:38","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"2074:24:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"src":"2049:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36289,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2102:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2109:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":36234,"src":"2102:30:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":36291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2136:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2102:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2049:88:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36298,"nodeType":"IfStatement","src":"2045:145:38","trueBody":{"id":36297,"nodeType":"Block","src":"2139:51:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36294,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37416,"src":"2160:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2160:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36296,"nodeType":"RevertStatement","src":"2153:26:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":36307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":36302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36299,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2203:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2210:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":36240,"src":"2203:25:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":36301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2231:2:38","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"2203:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":36306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36303,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2237:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2244:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":36240,"src":"2237:25:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":36305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2265:3:38","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2237:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2203:65:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36312,"nodeType":"IfStatement","src":"2199:130:38","trueBody":{"id":36311,"nodeType":"Block","src":"2270:59:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36308,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"2291:25:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2291:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36310,"nodeType":"RevertStatement","src":"2284:34:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":36316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36313,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2342:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2349:10:38","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":36246,"src":"2342:17:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3138","id":36315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:2:38","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"2342:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36321,"nodeType":"IfStatement","src":"2338:79:38","trueBody":{"id":36320,"nodeType":"Block","src":"2366:51:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36317,"name":"InvalidPowerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37430,"src":"2387:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36319,"nodeType":"RevertStatement","src":"2380:26:38"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":36322,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2427:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2434:12:38","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":36252,"src":"2427:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":36326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2447:8:38","memberName":"validate","nodeType":"MemberAccess","referencedDeclaration":48114,"src":"2427:28:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SupplySource_$50179_memory_ptr_$returns$__$attached_to$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function (struct SupplySource memory) view"}},"id":36327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2427:30:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36328,"nodeType":"ExpressionStatement","src":"2427:30:38"},{"expression":{"arguments":[{"expression":{"id":36332,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2496:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2500:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2496:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":36329,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"2468:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2479:16:38","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":41046,"src":"2468:27:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":36334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2468:39:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36335,"nodeType":"ExpressionStatement","src":"2468:39:38"},{"expression":{"arguments":[{"id":36339,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36257,"src":"2553:11:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":36342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2581:1:38","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":36341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2573:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36340,"name":"address","nodeType":"ElementaryTypeName","src":"2573:7:38","typeDescriptions":{}}},"id":36343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":36346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2606:1:38","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":36345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2596:9:38","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":36344,"name":"bytes","nodeType":"ElementaryTypeName","src":"2600:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":36347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2596:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":36336,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"2517:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2528:10:38","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41206,"src":"2517:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":36348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2540:11:38","2566:5:38","2585:9:38"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"2517:93:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36349,"nodeType":"ExpressionStatement","src":"2517:93:38"},{"assignments":[36354],"declarations":[{"constant":false,"id":36354,"mutability":"mutable","name":"ds","nameLocation":"2655:2:38","nodeType":"VariableDeclaration","scope":36538,"src":"2621:36:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36353,"nodeType":"UserDefinedTypeName","pathNode":{"id":36352,"name":"LibDiamond.DiamondStorage","nameLocations":["2621:10:38","2632:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"2621:25:38"},"referencedDeclaration":41016,"src":"2621:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36358,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36355,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"2660:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2671:14:38","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41028,"src":"2660:25:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2660:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2621:66:38"},{"expression":{"id":36368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36359,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36354,"src":"2727:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2730:19:38","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41013,"src":"2727:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36366,"indexExpression":{"expression":{"arguments":[{"id":36362,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"2755:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}],"id":36361,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2750:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$40241","typeString":"type(contract IERC165)"}},"id":36364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2764:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"2750:25:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2727:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2779:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2727:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36369,"nodeType":"ExpressionStatement","src":"2727:56:38"},{"expression":{"id":36379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36370,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36354,"src":"2793:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2796:19:38","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41013,"src":"2793:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36377,"indexExpression":{"expression":{"arguments":[{"id":36373,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"2821:11:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}],"id":36372,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2816:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2816:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$40189","typeString":"type(contract IDiamondCut)"}},"id":36375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2834:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"2816:29:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2793:53:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2849:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2793:60:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36380,"nodeType":"ExpressionStatement","src":"2793:60:38"},{"expression":{"id":36390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36381,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36354,"src":"2863:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2866:19:38","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41013,"src":"2863:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36388,"indexExpression":{"expression":{"arguments":[{"id":36384,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"2891:13:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}],"id":36383,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2886:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2886:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$40230","typeString":"type(contract IDiamondLoupe)"}},"id":36386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2906:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"2886:31:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2863:55:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2921:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2863:62:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36391,"nodeType":"ExpressionStatement","src":"2863:62:38"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"id":36396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36392,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2940:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2947:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":36249,"src":"2940:21:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":36394,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"2965:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":36395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2980:9:38","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"2965:24:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"src":"2940:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36404,"nodeType":"IfStatement","src":"2936:170:38","trueBody":{"id":36403,"nodeType":"Block","src":"2991:115:38","statements":[{"expression":{"id":36401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36397,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3061:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3068:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":36234,"src":"3061:30:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":36400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3094:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3061:34:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36402,"nodeType":"ExpressionStatement","src":"3061:34:38"}]}},{"expression":{"id":36410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36405,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3116:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3118:8:38","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":47191,"src":"3116:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36408,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3129:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3136:8:38","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":36227,"src":"3129:15:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"src":"3116:28:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":36411,"nodeType":"ExpressionStatement","src":"3116:28:38"},{"expression":{"id":36417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36412,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3154:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3156:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"3154:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36415,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3173:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3180:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":36229,"src":"3173:21:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3154:40:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36418,"nodeType":"ExpressionStatement","src":"3154:40:38"},{"expression":{"id":36424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36419,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3204:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3206:9:38","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":47195,"src":"3204:11:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36422,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3218:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3225:9:38","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":36232,"src":"3218:16:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"src":"3204:30:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"id":36425,"nodeType":"ExpressionStatement","src":"3204:30:38"},{"expression":{"id":36431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36426,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3244:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3246:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":47170,"src":"3244:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36429,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3272:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3279:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":36234,"src":"3272:30:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3244:58:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36432,"nodeType":"ExpressionStatement","src":"3244:58:38"},{"expression":{"id":36438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36433,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3312:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3314:13:38","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47176,"src":"3312:15:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36436,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3330:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3337:13:38","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":36236,"src":"3330:20:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3312:38:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36439,"nodeType":"ExpressionStatement","src":"3312:38:38"},{"expression":{"id":36445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36440,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3360:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3362:19:38","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47173,"src":"3360:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36443,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3384:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3391:19:38","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":36238,"src":"3384:26:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3360:50:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36446,"nodeType":"ExpressionStatement","src":"3360:50:38"},{"expression":{"id":36452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36447,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3420:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3422:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":47184,"src":"3420:20:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36450,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3443:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3450:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":36240,"src":"3443:25:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3420:48:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":36453,"nodeType":"ExpressionStatement","src":"3420:48:38"},{"expression":{"id":36459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36454,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3478:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3480:10:38","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":47216,"src":"3478:12:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36457,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3493:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3500:10:38","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":36246,"src":"3493:17:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3478:32:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":36460,"nodeType":"ExpressionStatement","src":"3478:32:38"},{"expression":{"id":36466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36461,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3520:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3522:14:38","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":47187,"src":"3520:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36464,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3539:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3546:14:38","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":36244,"src":"3539:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3520:40:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36467,"nodeType":"ExpressionStatement","src":"3520:40:38"},{"expression":{"id":36481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36468,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3570:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3572:17:38","memberName":"currentSubnetHash","nodeType":"MemberAccess","referencedDeclaration":47178,"src":"3570:19:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":36476,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3626:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":36475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3618:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36474,"name":"address","nodeType":"ElementaryTypeName","src":"3618:7:38","typeDescriptions":{}}},"id":36477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3618:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":36471,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3592:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3594:8:38","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":47191,"src":"3592:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":36473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3603:14:38","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"3592:25:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":36478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:40:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":36479,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3633:6:38","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"3592:47:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":36480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:49:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3570:71:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":36482,"nodeType":"ExpressionStatement","src":"3570:71:38"},{"expression":{"id":36490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36483,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3651:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3653:12:38","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"3651:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":36487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3666:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"3651:29:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36488,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3683:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3690:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":36249,"src":"3683:21:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"src":"3651:53:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"id":36491,"nodeType":"ExpressionStatement","src":"3651:53:38"},{"expression":{"id":36496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36492,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3897:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3899:22:38","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":47164,"src":"3897:24:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36495,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49866,"src":"3924:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3897:39:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36497,"nodeType":"ExpressionStatement","src":"3897:39:38"},{"expression":{"id":36502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36498,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3946:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3948:23:38","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"3946:25:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36501,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49863,"src":"3974:18:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3946:46:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36503,"nodeType":"ExpressionStatement","src":"3946:46:38"},{"expression":{"id":36511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36504,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4003:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4005:12:38","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"4003:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":36508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4018:11:38","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50125,"src":"4003:26:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36509,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"4032:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4039:21:38","memberName":"activeValidatorsLimit","nodeType":"MemberAccess","referencedDeclaration":36242,"src":"4032:28:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4003:57:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36512,"nodeType":"ExpressionStatement","src":"4003:57:38"},{"expression":{"id":36520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36513,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4180:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4182:9:38","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"4180:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4192:23:38","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"4180:35:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36518,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"4218:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":36519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4229:28:38","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45272,"src":"4218:39:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4180:77:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36521,"nodeType":"ExpressionStatement","src":"4180:77:38"},{"expression":{"id":36529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36522,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4415:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4417:9:38","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"4415:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4427:24:38","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"4415:36:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36527,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"4454:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":36528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4465:28:38","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45272,"src":"4454:39:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4415:78:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36530,"nodeType":"ExpressionStatement","src":"4415:78:38"},{"expression":{"id":36536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36531,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4539:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4541:12:38","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":47233,"src":"4539:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage","typeString":"struct SupplySource storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36534,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"4556:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4563:12:38","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":36252,"src":"4556:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"src":"4539:36:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage","typeString":"struct SupplySource storage ref"}},"id":36537,"nodeType":"ExpressionStatement","src":"4539:36:38"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36257,"mutability":"mutable","name":"_diamondCut","nameLocation":"1720:11:38","nodeType":"VariableDeclaration","scope":36539,"src":"1693:38:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":36255,"nodeType":"UserDefinedTypeName","pathNode":{"id":36254,"name":"IDiamond.FacetCut","nameLocations":["1693:8:38","1702:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1693:17:38"},"referencedDeclaration":40159,"src":"1693:17:38","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":36256,"nodeType":"ArrayTypeName","src":"1693:19:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":36260,"mutability":"mutable","name":"params","nameLocation":"1758:6:38","nodeType":"VariableDeclaration","scope":36539,"src":"1733:31:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":36259,"nodeType":"UserDefinedTypeName","pathNode":{"id":36258,"name":"ConstructorParams","nameLocations":["1733:17:38"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"1733:17:38"},"referencedDeclaration":36253,"src":"1733:17:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1692:73:38"},"returnParameters":{"id":36262,"nodeType":"ParameterList","parameters":[],"src":"1766:0:38"},"scope":36615,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36578,"nodeType":"FunctionDefinition","src":"4588:1239:38","nodes":[],"body":{"id":36577,"nodeType":"Block","src":"4618:1209:38","nodes":[],"statements":[{"assignments":[36546],"declarations":[{"constant":false,"id":36546,"mutability":"mutable","name":"ds","nameLocation":"4662:2:38","nodeType":"VariableDeclaration","scope":36577,"src":"4628:36:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36545,"nodeType":"UserDefinedTypeName","pathNode":{"id":36544,"name":"LibDiamond.DiamondStorage","nameLocations":["4628:10:38","4639:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"4628:25:38"},"referencedDeclaration":41016,"src":"4628:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36547,"nodeType":"VariableDeclarationStatement","src":"4628:36:38"},{"assignments":[36549],"declarations":[{"constant":false,"id":36549,"mutability":"mutable","name":"position","nameLocation":"4682:8:38","nodeType":"VariableDeclaration","scope":36577,"src":"4674:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4674:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36552,"initialValue":{"expression":{"id":36550,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"4693:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4704:24:38","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40917,"src":"4693:35:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4674:54:38"},{"AST":{"nodeType":"YulBlock","src":"4824:43:38","statements":[{"nodeType":"YulAssignment","src":"4838:19:38","value":{"name":"position","nodeType":"YulIdentifier","src":"4849:8:38"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"4838:7:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":36546,"isOffset":false,"isSlot":true,"src":"4838:7:38","suffix":"slot","valueSize":1},{"declaration":36549,"isOffset":false,"isSlot":false,"src":"4849:8:38","valueSize":1}],"id":36553,"nodeType":"InlineAssembly","src":"4815:52:38"},{"assignments":[36555],"declarations":[{"constant":false,"id":36555,"mutability":"mutable","name":"facet","nameLocation":"4928:5:38","nodeType":"VariableDeclaration","scope":36577,"src":"4920:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36554,"name":"address","nodeType":"ElementaryTypeName","src":"4920:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36562,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36556,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36546,"src":"4936:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4939:31:38","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"4936:34:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36560,"indexExpression":{"expression":{"id":36558,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4971:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4975:3:38","memberName":"sig","nodeType":"MemberAccess","src":"4971:7:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4936:43:38","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4980:12:38","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"4936:56:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4920:72:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36563,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36555,"src":"5006:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5023:1:38","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":36565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5015:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36564,"name":"address","nodeType":"ElementaryTypeName","src":"5015:7:38","typeDescriptions":{}}},"id":36567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5015:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5006:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36575,"nodeType":"IfStatement","src":"5002:82:38","trueBody":{"id":36574,"nodeType":"Block","src":"5027:57:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":36570,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5065:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5069:3:38","memberName":"sig","nodeType":"MemberAccess","src":"5065:7:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":36569,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36213,"src":"5048:16:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":36572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5048:25:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36573,"nodeType":"RevertStatement","src":"5041:32:38"}]}},{"AST":{"nodeType":"YulBlock","src":"5237:584:38","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5320:1:38","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5323:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"5326:12:38"},"nodeType":"YulFunctionCall","src":"5326:14:38"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"5307:12:38"},"nodeType":"YulFunctionCall","src":"5307:34:38"},"nodeType":"YulExpressionStatement","src":"5307:34:38"},{"nodeType":"YulVariableDeclaration","src":"5407:65:38","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"5434:3:38"},"nodeType":"YulFunctionCall","src":"5434:5:38"},{"name":"facet","nodeType":"YulIdentifier","src":"5441:5:38"},{"kind":"number","nodeType":"YulLiteral","src":"5448:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"5451:12:38"},"nodeType":"YulFunctionCall","src":"5451:14:38"},{"kind":"number","nodeType":"YulLiteral","src":"5467:1:38","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5470:1:38","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"5421:12:38"},"nodeType":"YulFunctionCall","src":"5421:51:38"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"5411:6:38","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5536:1:38","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5539:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5542:14:38"},"nodeType":"YulFunctionCall","src":"5542:16:38"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"5521:14:38"},"nodeType":"YulFunctionCall","src":"5521:38:38"},"nodeType":"YulExpressionStatement","src":"5521:38:38"},{"cases":[{"body":{"nodeType":"YulBlock","src":"5672:59:38","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5697:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5700:14:38"},"nodeType":"YulFunctionCall","src":"5700:16:38"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5690:6:38"},"nodeType":"YulFunctionCall","src":"5690:27:38"},"nodeType":"YulExpressionStatement","src":"5690:27:38"}]},"nodeType":"YulCase","src":"5665:66:38","value":{"kind":"number","nodeType":"YulLiteral","src":"5670:1:38","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"5752:59:38","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5777:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5780:14:38"},"nodeType":"YulFunctionCall","src":"5780:16:38"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"5770:6:38"},"nodeType":"YulFunctionCall","src":"5770:27:38"},"nodeType":"YulExpressionStatement","src":"5770:27:38"}]},"nodeType":"YulCase","src":"5744:67:38","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"5646:6:38"},"nodeType":"YulSwitch","src":"5639:172:38"}]},"evmVersion":"paris","externalReferences":[{"declaration":36555,"isOffset":false,"isSlot":false,"src":"5441:5:38","valueSize":1}],"id":36576,"nodeType":"InlineAssembly","src":"5228:593:38"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"4597:9:38","parameters":{"id":36540,"nodeType":"ParameterList","parameters":[],"src":"4606:2:38"},"returnParameters":{"id":36541,"nodeType":"ParameterList","parameters":[],"src":"4618:0:38"},"scope":36615,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36586,"nodeType":"FunctionDefinition","src":"5894:56:38","nodes":[],"body":{"id":36585,"nodeType":"Block","src":"5922:28:38","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36582,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36578,"src":"5932:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5932:11:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36584,"nodeType":"ExpressionStatement","src":"5932:11:38"}]},"documentation":{"id":36579,"nodeType":"StructuredDocumentation","src":"5833:56:38","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36580,"nodeType":"ParameterList","parameters":[],"src":"5902:2:38"},"returnParameters":{"id":36581,"nodeType":"ParameterList","parameters":[],"src":"5922:0:38"},"scope":36615,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36593,"nodeType":"FunctionDefinition","src":"6065:134:38","nodes":[],"body":{"id":36592,"nodeType":"Block","src":"6104:95:38","nodes":[],"statements":[]},"documentation":{"id":36587,"nodeType":"StructuredDocumentation","src":"5956:62:38","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[{"id":36590,"kind":"modifierInvocation","modifierName":{"id":36589,"name":"onlyGateway","nameLocations":["6092:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":36614,"src":"6092:11:38"},"nodeType":"ModifierInvocation","src":"6092:11:38"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36588,"nodeType":"ParameterList","parameters":[],"src":"6072:2:38"},"returnParameters":{"id":36591,"nodeType":"ParameterList","parameters":[],"src":"6104:0:38"},"scope":36615,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36607,"nodeType":"FunctionDefinition","src":"6247:133:38","nodes":[],"body":{"id":36606,"nodeType":"Block","src":"6284:96:38","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36596,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6298:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6302:6:38","memberName":"sender","nodeType":"MemberAccess","src":"6298:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":36598,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"6312:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6314:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"6312:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6298:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36605,"nodeType":"IfStatement","src":"6294:80:38","trueBody":{"id":36604,"nodeType":"Block","src":"6330:44:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36601,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"6351:10:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6351:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36603,"nodeType":"RevertStatement","src":"6344:19:38"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"6256:12:38","parameters":{"id":36594,"nodeType":"ParameterList","parameters":[],"src":"6268:2:38"},"returnParameters":{"id":36595,"nodeType":"ParameterList","parameters":[],"src":"6284:0:38"},"scope":36615,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":36614,"nodeType":"ModifierDefinition","src":"6386:65:38","nodes":[],"body":{"id":36613,"nodeType":"Block","src":"6409:42:38","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36609,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36607,"src":"6419:12:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":36610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6419:14:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36611,"nodeType":"ExpressionStatement","src":"6419:14:38"},{"id":36612,"nodeType":"PlaceholderStatement","src":"6443:1:38"}]},"name":"onlyGateway","nameLocation":"6395:11:38","parameters":{"id":36608,"nodeType":"ParameterList","parameters":[],"src":"6406:2:38"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36615],"name":"SubnetActorDiamond","nameLocation":"1093:18:38","scope":36616,"usedErrors":[36213,37400,37416,37428,37430,37444,37478,40925,40930,40934,40938,40943,40949,40962,40966,40970,40974,40978,40982,40986,48045]}],"license":"MIT OR Apache-2.0"},"id":38} \ No newline at end of file diff --git a/.out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json b/.out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json index dec6249a2..10c41f38e 100644 --- a/.out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json +++ b/.out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"activeValidatorsLimit","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"bootstrapped","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpointAtEpoch","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpointHashAtEpoch","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatchPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"consensus","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ConsensusType"}],"stateMutability":"view"},{"type":"function","name":"crossMsgsHash","inputs":[{"name":"messages","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"genesisBalances","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"genesisCircSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"genesisValidators","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getActiveValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"getBootstrapNodes","inputs":[],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"getConfigurationNumbers","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getParent","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getPower","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRelayerReward","inputs":[{"name":"relayer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalConfirmedCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalValidatorCollateral","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"getValidator","inputs":[{"name":"validatorAddress","type":"address","internalType":"address"}],"outputs":[{"name":"validator","type":"tuple","internalType":"struct ValidatorInfo","components":[{"name":"federatedPower","type":"uint256","internalType":"uint256"},{"name":"confirmedCollateral","type":"uint256","internalType":"uint256"},{"name":"totalCollateral","type":"uint256","internalType":"uint256"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"hasSubmittedInLastBottomUpCheckpointHeight","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hasSubmittedInLastBottomUpMsgBatchHeight","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ipcGatewayAddr","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isActiveValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWaitingValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastBottomUpCheckpointHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"lastBottomUpMsgBatchHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"majorityPercentage","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"minActivationCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minCrossMsgFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minValidators","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"permissionMode","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum PermissionMode"}],"stateMutability":"view"},{"type":"function","name":"powerScale","inputs":[],"outputs":[{"name":"","type":"int8","internalType":"int8"}],"stateMutability":"view"},{"type":"function","name":"supplySource","inputs":[],"outputs":[{"name":"supply","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657611533908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c63430008130033","sourceMap":"681:10025:84:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":4594,"length":20}]}}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c63430008130033","sourceMap":"681:10025:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9186:12;681:10025;9186:12;;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;7510:58;681:10025;;;;;:::i;:::-;;7462:19;681:10025;;;7510:30;681:10025;;;;8861:165:36;681:10025:84;;;;;;-1:-1:-1;681:10025:84;4352:12:36;681:10025:84;;;-1:-1:-1;681:10025:84;;4352:24:36;;8861:165;;7510:58:84;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;1215:14;681:10025;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;2397:19;;;681:10025;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:84;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;:::i;:::-;;;;1317:17:79;681:10025:84;;;;;1317:33:79;;681:10025:84;;;;;;;;;;;;;;;;;;;;1377:16;681:10025;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;5328:27:69;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1564:15:84;681:10025;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;;;-1:-1:-1;;;;;681:10025:84;;:::i;:::-;;;;10485:16;681:10025;;;;;;;;;;;;;;;;;;;;;;;;9186:12;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;4719:25;681:10025;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2576:19;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;10114:20:84;;681:10025;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;2994:9;3005:16;;;;;;681:10025;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;2994:9;681:10025;;;;;;;;;;;;;;;;;;;;;3091:19;;;;;:::i;:::-;681:10025;;;;;;;;;;3124:36;;;;:::i;:::-;681:10025;;2994:9;;;;;;;;;681:10025;;;;;;;;;;;;;;;4220:11;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;1065:10;681:10025;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;10683:14;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;3820:30;681:10025;;;;;;;;;;;;;;;;;;;;;;;3619:24;681:10025;;;;;;;;;;;;;;;;;;;;;;;4893:16;681:10025;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;:::i;:::-;16026:34:69;681:10025:84;16026:14:69;681:10025:84;;;;;;;;;;4668:53:69;;4697:24;4668:53;;4697:24;;-1:-1:-1;;;;;681:10025:84;;;;;18718:25:69;681:10025:84;;;;;;4664:230:69;;681:10025:84;;;;;4664:230:69;-1:-1:-1;;;;;681:10025:84;;;;;18718:25:69;681:10025:84;;;;;4697:24:69;4831:52;681:10025:84;4664:230:69;;;681:10025:84;-1:-1:-1;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;1741:20;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;17942:32:69;681:10025:84;;;17987:31:69;681:10025:84;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:84;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;8935:32;681:10025;;8935:32;:::i;:::-;681:10025;;9003:22;;681:10025;;9003:22;;681:10025;;;;;;;;;:::i;:::-;9003:22;10114:20;;9003:22;;;;;;:::i;:::-;681:10025;8993:33;;681:10025;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;:::i;:::-;;;;1317:17:79;681:10025:84;;;;;1317:33:79;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10114:20;;;;;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;10114:20;;;;;;;;;;;;;;;;;;:::i;:::-;681:10025;10104:31;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;-1:-1:-1;;681:10025:84;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;681:10025:84;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2145:11;681:10025;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4374:14;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1925:14;681:10025;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;7964:63;681:10025;;;;;:::i;:::-;;7917:30;681:10025;;;7964:35;681:10025;;;;8861:165:36;681:10025:84;;;;;;-1:-1:-1;681:10025:84;4352:12:36;681:10025:84;;;-1:-1:-1;681:10025:84;;4352:24:36;;8861:165;;681:10025:84;;;;;;;;;;;;;;;;4028:19;681:10025;;;;;;;;;;;;;;;;;;;;;;;;4535:8;681:10025;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;5207:43;681:10025;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18718:25:69;681:10025:84;;;;;;;5207:43;681:10025;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5207:25;681:10025;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;18718:25:69;:36;681:10025:84;;:::i;:::-;-1:-1:-1;;;;;681:10025:84;;;;;18718:25:69;681:10025:84;;;;;;;18718:36:69;:52;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;3436:21;681:10025;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10114:20;;;681:10025;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;5112:35:69;681:10025:84;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;:::o;:::-;;10114:20;;;681:10025;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;681:10025:84;;;;:::o;:::-;-1:-1:-1;;;;;681:10025:84;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;681:10025:84;;;;;-1:-1:-1;681:10025:84;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;-1:-1:-1;;;681:10025:84;;;;;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;-1:-1:-1;681:10025:84;;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;8269:281;;681:10025;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8477:29;;;681:10025;8477:29;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8477:29;;;;;;;:27;;:29;;;;;;;;;;;;681:10025;8476:30;;;;8516:27;8269:281;:::o;8477:29::-;;;;;;;;;;;;;;;;;:::i;:::-;;;681:10025;;;;;;;;;;;;;8477:29;;;;;;;;;;;;681:10025;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;9266:471;9357:17;681:10025;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;681:10025:84;;;:::i;:::-;;-1:-1:-1;681:10025:84;;;;;;9446:6;;;;9442:49;;681:10025;;;;;;;;;;9357:17;-1:-1:-1;681:10025:84;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9578:5:84;;;;;;9718:12;;;;;9266:471;:::o;9567:9::-;681:10025;;-1:-1:-1;;;;;9629:9:84;681:10025;9629:9;;:::i;:::-;681:10025;;-1:-1:-1;681:10025:84;9612:16;681:10025;;;;;-1:-1:-1;681:10025:84;;;;;;;;:::i;:::-;9601:38;;;;:::i;:::-;;;;;;:::i;:::-;;681:10025;9567:9;;681:10025;;;;;;;;;;;;-1:-1:-1;681:10025:84;;;;;;9442:49;9468:12;;;:::o;681:10025::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;681:10025:84;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;681:10025:84;;;;;;10114:20;681:10025;-1:-1:-1;;681:10025:84;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":4566,"length":20}]}}},"methodIdentifiers":{"activeValidatorsLimit()":"3354c3e1","bootstrapped()":"35142c8c","bottomUpCheckPeriod()":"06c46853","bottomUpCheckpointAtEpoch(uint256)":"4b27aa72","bottomUpCheckpointHashAtEpoch(uint256)":"4b0694e2","bottomUpMsgBatchPeriod()":"69e737fd","consensus()":"8ef3f761","crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"3da33241","genesisBalances()":"903e6930","genesisCircSupply()":"948628a9","genesisValidators()":"d92e8f12","getActiveValidatorsNumber()":"c7cda762","getBootstrapNodes()":"9754b29e","getConfigurationNumbers()":"38a210b3","getParent()":"80f76021","getPower(address)":"5dd9147c","getRelayerReward(address)":"b2bd295e","getTotalCollateral()":"d6eb5910","getTotalConfirmedCollateral()":"332a5ac9","getTotalValidatorCollateral(address)":"1597bf7e","getTotalValidatorsNumber()":"52d182d1","getValidator(address)":"1904bb2e","hasSubmittedInLastBottomUpCheckpointHeight(address)":"2bc31eb3","hasSubmittedInLastBottomUpMsgBatchHeight(address)":"f75499dc","ipcGatewayAddr()":"cfca2824","isActiveValidator(address)":"40550a1c","isWaitingValidator(address)":"d081be03","killed()":"1f3a0e41","lastBottomUpCheckpointHeight()":"72d0a0e0","lastBottomUpMsgBatchHeight()":"28d5551d","majorityPercentage()":"599c7bd1","minActivationCollateral()":"9e33bd02","minCrossMsgFee()":"6704287c","minValidators()":"c5ab2241","permissionMode()":"f0cf6c96","powerScale()":"ad81e4d6","supplySource()":"80875df7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"activeValidatorsLimit\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bootstrapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpMsgBatchPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consensus\",\"outputs\":[{\"internalType\":\"enum ConsensusType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"name\":\"crossMsgsHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBalances\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisCircSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBootstrapNodes\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfigurationNumbers\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"getPower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"getRelayerReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalConfirmedCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"getTotalValidatorCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorAddress\",\"type\":\"address\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"federatedPower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalCollateral\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct ValidatorInfo\",\"name\":\"validator\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"hasSubmittedInLastBottomUpCheckpointHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"hasSubmittedInLastBottomUpMsgBatchHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipcGatewayAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isActiveValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isWaitingValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBottomUpCheckpointHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBottomUpMsgBatchHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minActivationCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minCrossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minValidators\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"permissionMode\",\"outputs\":[{\"internalType\":\"enum PermissionMode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"powerScale\",\"outputs\":[{\"internalType\":\"int8\",\"name\":\"\",\"type\":\"int8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplySource\",\"outputs\":[{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supply\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint256)\":{\"params\":{\"epoch\":\"- the epoch to check.\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct.\",\"exists\":\"- whether the checkpoint exists.\"}},\"bottomUpCheckpointHashAtEpoch(uint256)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"details\":\"This exists for testing purposes.\",\"params\":{\"messages\":\"An array of cross-chain messages to be hashed.\"},\"returns\":{\"_0\":\"The keccak256 hash of the encoded cross-chain messages.\"}},\"getPower(address)\":{\"params\":{\"validator\":\"The address of the checked validator\"}},\"getRelayerReward(address)\":{\"params\":{\"relayer\":\"The address of the relayer whose reward amount is to be queried.\"},\"returns\":{\"_0\":\"The total reward amount accrued by the specified relayer.\"}},\"getTotalValidatorCollateral(address)\":{\"params\":{\"validator\":\"The address of the validator for which collateral is queried.\"}},\"getValidator(address)\":{\"params\":{\"validatorAddress\":\"The address of the validator to query information for.\"}},\"hasSubmittedInLastBottomUpCheckpointHeight(address)\":{\"params\":{\"validator\":\"The address of the validator being checked for inclusion in the last checkpoint.\"}},\"hasSubmittedInLastBottomUpMsgBatchHeight(address)\":{\"params\":{\"validator\":\"The address of the validator being checked for participation.\"}},\"isWaitingValidator(address)\":{\"params\":{\"validator\":\"The address of the checked validator.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"activeValidatorsLimit()\":{\"notice\":\"Fetches the limit on the number of active validators.\"},\"bootstrapped()\":{\"notice\":\"Checks if the subnet has been bootstrapped.\"},\"bottomUpCheckPeriod()\":{\"notice\":\"Returns the period for bottom-up checkpointing operations.\"},\"bottomUpCheckpointAtEpoch(uint256)\":{\"notice\":\"returns the committed bottom-up checkpoint at specific epoch.\"},\"bottomUpCheckpointHashAtEpoch(uint256)\":{\"notice\":\"returns the historical committed bottom-up checkpoint hash.\"},\"bottomUpMsgBatchPeriod()\":{\"notice\":\"Returns the batch period for bottom-up messaging.\"},\"consensus()\":{\"notice\":\"Returns the consensus protocol type used in the subnet.\"},\"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"Computes a hash of an array of cross-chain messages.\"},\"genesisBalances()\":{\"notice\":\"Retrieves initial balances and corresponding addresses of the genesis block.\"},\"genesisValidators()\":{\"notice\":\"Returns the initial set of validators of the genesis block.\"},\"getActiveValidatorsNumber()\":{\"notice\":\"Returns the number of active validators.\"},\"getBootstrapNodes()\":{\"notice\":\"Returns the bootstrap nodes addresses.\"},\"getConfigurationNumbers()\":{\"notice\":\"Returns the next and start configuration numbers related to the changes.\"},\"getParent()\":{\"notice\":\"Returns the parent subnet id.\"},\"getPower(address)\":{\"notice\":\"Checks if the validator address is in an active state.\"},\"getRelayerReward(address)\":{\"notice\":\"Retrieves the total reward amount allocated to a specific relayer.\"},\"getTotalCollateral()\":{\"notice\":\"Returns the total collateral held by all validators.\"},\"getTotalConfirmedCollateral()\":{\"notice\":\"Returns the total amount of confirmed collateral across all validators.\"},\"getTotalValidatorCollateral(address)\":{\"notice\":\"Returns the total collateral amount for a specific validator.\"},\"getTotalValidatorsNumber()\":{\"notice\":\"Returns the total number of validators (active and waiting).\"},\"getValidator(address)\":{\"notice\":\"Returns detailed information about a specific validator.\"},\"hasSubmittedInLastBottomUpCheckpointHeight(address)\":{\"notice\":\"Checks whether a validator has submitted the most recent bottom-up checkpoint message.\"},\"hasSubmittedInLastBottomUpMsgBatchHeight(address)\":{\"notice\":\"Determines if a validator has submitted the most recent bottom-up message batch.\"},\"ipcGatewayAddr()\":{\"notice\":\"Returns the gateway address.\"},\"isActiveValidator(address)\":{\"notice\":\"Checks if the validator address is an active validator\"},\"isWaitingValidator(address)\":{\"notice\":\"Checks if the validator is in a waiting state.\"},\"killed()\":{\"notice\":\"Checks if the subnet has been terminated or \\\"killed\\\".\"},\"lastBottomUpCheckpointHeight()\":{\"notice\":\"Returns the block height of the last bottom-up checkpoint.\"},\"lastBottomUpMsgBatchHeight()\":{\"notice\":\"Returns the block height of the last bottom-up message batch.\"},\"majorityPercentage()\":{\"notice\":\"Returns the majority percentage required for consensus.\"},\"minActivationCollateral()\":{\"notice\":\"Returns the minimum collateral required for subnet activation.\"},\"minCrossMsgFee()\":{\"notice\":\"Returns the minimum fee for cross-messaging.\"},\"minValidators()\":{\"notice\":\"Returns the minimum validators number needed to activate the subnet.\"},\"permissionMode()\":{\"notice\":\"Returns the permission mode.\"},\"powerScale()\":{\"notice\":\"Returns the power scale in number of decimals from whole FIL.\"},\"supplySource()\":{\"notice\":\"Returns the supply strategy for the subnet.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorGetterFacet.sol\":\"SubnetActorGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"activeValidatorsLimit","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bootstrapped","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpCheckPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpointAtEpoch","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpointHashAtEpoch","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpMsgBatchPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"consensus","outputs":[{"internalType":"enum ConsensusType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"messages","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"crossMsgsHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBalances","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisCircSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisValidators","outputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActiveValidatorsNumber","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBootstrapNodes","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getConfigurationNumbers","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getParent","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"getPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"relayer","type":"address"}],"stateMutability":"view","type":"function","name":"getRelayerReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalConfirmedCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalValidatorCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalValidatorsNumber","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"validatorAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getValidator","outputs":[{"internalType":"struct ValidatorInfo","name":"validator","type":"tuple","components":[{"internalType":"uint256","name":"federatedPower","type":"uint256"},{"internalType":"uint256","name":"confirmedCollateral","type":"uint256"},{"internalType":"uint256","name":"totalCollateral","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"hasSubmittedInLastBottomUpCheckpointHeight","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"hasSubmittedInLastBottomUpMsgBatchHeight","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ipcGatewayAddr","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"isActiveValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"isWaitingValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBottomUpCheckpointHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBottomUpMsgBatchHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"majorityPercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minActivationCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minCrossMsgFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minValidators","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"permissionMode","outputs":[{"internalType":"enum PermissionMode","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"powerScale","outputs":[{"internalType":"int8","name":"","type":"int8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"supplySource","outputs":[{"internalType":"struct SupplySource","name":"supply","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"devdoc":{"kind":"dev","methods":{"bottomUpCheckpointAtEpoch(uint256)":{"params":{"epoch":"- the epoch to check."},"returns":{"checkpoint":"- the checkpoint struct.","exists":"- whether the checkpoint exists."}},"bottomUpCheckpointHashAtEpoch(uint256)":{"params":{"epoch":"- the epoch to check"},"returns":{"_0":"exists - whether the checkpoint exists","_1":"hash - the hash of the checkpoint"}},"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"details":"This exists for testing purposes.","params":{"messages":"An array of cross-chain messages to be hashed."},"returns":{"_0":"The keccak256 hash of the encoded cross-chain messages."}},"getPower(address)":{"params":{"validator":"The address of the checked validator"}},"getRelayerReward(address)":{"params":{"relayer":"The address of the relayer whose reward amount is to be queried."},"returns":{"_0":"The total reward amount accrued by the specified relayer."}},"getTotalValidatorCollateral(address)":{"params":{"validator":"The address of the validator for which collateral is queried."}},"getValidator(address)":{"params":{"validatorAddress":"The address of the validator to query information for."}},"hasSubmittedInLastBottomUpCheckpointHeight(address)":{"params":{"validator":"The address of the validator being checked for inclusion in the last checkpoint."}},"hasSubmittedInLastBottomUpMsgBatchHeight(address)":{"params":{"validator":"The address of the validator being checked for participation."}},"isWaitingValidator(address)":{"params":{"validator":"The address of the checked validator."}}},"version":1},"userdoc":{"kind":"user","methods":{"activeValidatorsLimit()":{"notice":"Fetches the limit on the number of active validators."},"bootstrapped()":{"notice":"Checks if the subnet has been bootstrapped."},"bottomUpCheckPeriod()":{"notice":"Returns the period for bottom-up checkpointing operations."},"bottomUpCheckpointAtEpoch(uint256)":{"notice":"returns the committed bottom-up checkpoint at specific epoch."},"bottomUpCheckpointHashAtEpoch(uint256)":{"notice":"returns the historical committed bottom-up checkpoint hash."},"bottomUpMsgBatchPeriod()":{"notice":"Returns the batch period for bottom-up messaging."},"consensus()":{"notice":"Returns the consensus protocol type used in the subnet."},"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"Computes a hash of an array of cross-chain messages."},"genesisBalances()":{"notice":"Retrieves initial balances and corresponding addresses of the genesis block."},"genesisValidators()":{"notice":"Returns the initial set of validators of the genesis block."},"getActiveValidatorsNumber()":{"notice":"Returns the number of active validators."},"getBootstrapNodes()":{"notice":"Returns the bootstrap nodes addresses."},"getConfigurationNumbers()":{"notice":"Returns the next and start configuration numbers related to the changes."},"getParent()":{"notice":"Returns the parent subnet id."},"getPower(address)":{"notice":"Checks if the validator address is in an active state."},"getRelayerReward(address)":{"notice":"Retrieves the total reward amount allocated to a specific relayer."},"getTotalCollateral()":{"notice":"Returns the total collateral held by all validators."},"getTotalConfirmedCollateral()":{"notice":"Returns the total amount of confirmed collateral across all validators."},"getTotalValidatorCollateral(address)":{"notice":"Returns the total collateral amount for a specific validator."},"getTotalValidatorsNumber()":{"notice":"Returns the total number of validators (active and waiting)."},"getValidator(address)":{"notice":"Returns detailed information about a specific validator."},"hasSubmittedInLastBottomUpCheckpointHeight(address)":{"notice":"Checks whether a validator has submitted the most recent bottom-up checkpoint message."},"hasSubmittedInLastBottomUpMsgBatchHeight(address)":{"notice":"Determines if a validator has submitted the most recent bottom-up message batch."},"ipcGatewayAddr()":{"notice":"Returns the gateway address."},"isActiveValidator(address)":{"notice":"Checks if the validator address is an active validator"},"isWaitingValidator(address)":{"notice":"Checks if the validator is in a waiting state."},"killed()":{"notice":"Checks if the subnet has been terminated or \"killed\"."},"lastBottomUpCheckpointHeight()":{"notice":"Returns the block height of the last bottom-up checkpoint."},"lastBottomUpMsgBatchHeight()":{"notice":"Returns the block height of the last bottom-up message batch."},"majorityPercentage()":{"notice":"Returns the majority percentage required for consensus."},"minActivationCollateral()":{"notice":"Returns the minimum collateral required for subnet activation."},"minCrossMsgFee()":{"notice":"Returns the minimum fee for cross-messaging."},"minValidators()":{"notice":"Returns the minimum validators number needed to activate the subnet."},"permissionMode()":{"notice":"Returns the permission mode."},"powerScale()":{"notice":"Returns the power scale in number of decimals from whole FIL."},"supplySource()":{"notice":"Returns the supply strategy for the subnet."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorGetterFacet.sol":"SubnetActorGetterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","id":50888,"exportedSymbols":{"Address":[32838],"BottomUpCheckpoint":[49932],"ConsensusType":[37359],"CrossMsg":[49974],"EnumerableSet":[35815],"LibStaking":[46176],"PermissionMode":[50165],"SubnetActorGetterFacet":[50887],"SubnetActorStorage":[47281],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplySource":[50226],"Validator":[50211],"ValidatorInfo":[50161]},"nodeType":"SourceUnit","src":"46:10661:84","nodes":[{"id":50231,"nodeType":"PragmaDirective","src":"46:23:84","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50233,"nodeType":"ImportDirective","src":"71:57:84","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":50232,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"79:13:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50236,"nodeType":"ImportDirective","src":"129:69:84","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":50234,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"137:18:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50235,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"157:8:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50239,"nodeType":"ImportDirective","src":"199:61:84","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":50237,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"207:8:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50238,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"217:12:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50244,"nodeType":"ImportDirective","src":"261:89:84","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":50240,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"269:8:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50241,"name":"ValidatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50161,"src":"279:13:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50242,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"294:9:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50243,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"305:14:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50246,"nodeType":"ImportDirective","src":"351:68:84","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":50245,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"359:18:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50248,"nodeType":"ImportDirective","src":"420:57:84","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":50247,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"428:14:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50250,"nodeType":"ImportDirective","src":"478:65:84","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":50249,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"486:7:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50252,"nodeType":"ImportDirective","src":"544:85:84","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":50251,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"552:13:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50254,"nodeType":"ImportDirective","src":"630:49:84","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":50253,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"638:10:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50887,"nodeType":"ContractDefinition","src":"681:10025:84","nodes":[{"id":50258,"nodeType":"UsingForDirective","src":"719:49:84","nodes":[],"global":false,"libraryName":{"id":50255,"name":"EnumerableSet","nameLocations":["725:13:84"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"725:13:84"},"typeName":{"id":50257,"nodeType":"UserDefinedTypeName","pathNode":{"id":50256,"name":"EnumerableSet.AddressSet","nameLocations":["743:13:84","757:10:84"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"743:24:84"},"referencedDeclaration":35528,"src":"743:24:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":50262,"nodeType":"UsingForDirective","src":"773:34:84","nodes":[],"global":false,"libraryName":{"id":50259,"name":"SubnetIDHelper","nameLocations":["779:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"779:14:84"},"typeName":{"id":50261,"nodeType":"UserDefinedTypeName","pathNode":{"id":50260,"name":"SubnetID","nameLocations":["798:8:84"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"798:8:84"},"referencedDeclaration":50077,"src":"798:8:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":50265,"nodeType":"UsingForDirective","src":"812:34:84","nodes":[],"global":false,"libraryName":{"id":50263,"name":"Address","nameLocations":["818:7:84"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"818:7:84"},"typeName":{"id":50264,"name":"address","nodeType":"ElementaryTypeName","src":"830:15:84","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":50268,"nodeType":"VariableDeclaration","src":"905:29:84","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"933:1:84","scope":50887,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":50267,"nodeType":"UserDefinedTypeName","pathNode":{"id":50266,"name":"SubnetActorStorage","nameLocations":["905:18:84"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"905:18:84"},"referencedDeclaration":47281,"src":"905:18:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":50279,"nodeType":"FunctionDefinition","src":"987:95:84","nodes":[],"body":{"id":50278,"nodeType":"Block","src":"1048:34:84","nodes":[],"statements":[{"expression":{"expression":{"id":50275,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1065:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1067:8:84","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":47238,"src":"1065:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"functionReturnParameters":50274,"id":50277,"nodeType":"Return","src":"1058:17:84"}]},"documentation":{"id":50269,"nodeType":"StructuredDocumentation","src":"941:41:84","text":"@notice Returns the parent subnet id."},"functionSelector":"80f76021","implemented":true,"kind":"function","modifiers":[],"name":"getParent","nameLocation":"996:9:84","parameters":{"id":50270,"nodeType":"ParameterList","parameters":[],"src":"1005:2:84"},"returnParameters":{"id":50274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50279,"src":"1031:15:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":50272,"nodeType":"UserDefinedTypeName","pathNode":{"id":50271,"name":"SubnetID","nameLocations":["1031:8:84"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1031:8:84"},"referencedDeclaration":50077,"src":"1031:8:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1030:17:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50291,"nodeType":"FunctionDefinition","src":"1133:118:84","nodes":[],"body":{"id":50290,"nodeType":"Block","src":"1198:53:84","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":50286,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1215:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1217:12:84","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"1215:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":50288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1230:14:84","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"1215:29:84","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"functionReturnParameters":50285,"id":50289,"nodeType":"Return","src":"1208:36:84"}]},"documentation":{"id":50280,"nodeType":"StructuredDocumentation","src":"1088:40:84","text":"@notice Returns the permission mode."},"functionSelector":"f0cf6c96","implemented":true,"kind":"function","modifiers":[],"name":"permissionMode","nameLocation":"1142:14:84","parameters":{"id":50281,"nodeType":"ParameterList","parameters":[],"src":"1156:2:84"},"returnParameters":{"id":50285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50291,"src":"1182:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":50283,"nodeType":"UserDefinedTypeName","pathNode":{"id":50282,"name":"PermissionMode","nameLocations":["1182:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"1182:14:84"},"referencedDeclaration":50165,"src":"1182:14:84","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"}],"src":"1181:16:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50301,"nodeType":"FunctionDefinition","src":"1302:98:84","nodes":[],"body":{"id":50300,"nodeType":"Block","src":"1360:40:84","nodes":[],"statements":[{"expression":{"expression":{"id":50297,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1377:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1379:14:84","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"1377:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":50296,"id":50299,"nodeType":"Return","src":"1370:23:84"}]},"documentation":{"id":50292,"nodeType":"StructuredDocumentation","src":"1257:40:84","text":"@notice Returns the gateway address."},"functionSelector":"cfca2824","implemented":true,"kind":"function","modifiers":[],"name":"ipcGatewayAddr","nameLocation":"1311:14:84","parameters":{"id":50293,"nodeType":"ParameterList","parameters":[],"src":"1325:2:84"},"returnParameters":{"id":50296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50301,"src":"1351:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50294,"name":"address","nodeType":"ElementaryTypeName","src":"1351:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1350:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50311,"nodeType":"FunctionDefinition","src":"1491:95:84","nodes":[],"body":{"id":50310,"nodeType":"Block","src":"1547:39:84","nodes":[],"statements":[{"expression":{"expression":{"id":50307,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1564:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1566:13:84","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47223,"src":"1564:15:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":50306,"id":50309,"nodeType":"Return","src":"1557:22:84"}]},"documentation":{"id":50302,"nodeType":"StructuredDocumentation","src":"1406:80:84","text":"@notice Returns the minimum validators number needed to activate the subnet."},"functionSelector":"c5ab2241","implemented":true,"kind":"function","modifiers":[],"name":"minValidators","nameLocation":"1500:13:84","parameters":{"id":50303,"nodeType":"ParameterList","parameters":[],"src":"1513:2:84"},"returnParameters":{"id":50306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50311,"src":"1539:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50304,"name":"uint64","nodeType":"ElementaryTypeName","src":"1539:6:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1538:8:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50321,"nodeType":"FunctionDefinition","src":"1664:104:84","nodes":[],"body":{"id":50320,"nodeType":"Block","src":"1724:44:84","nodes":[],"statements":[{"expression":{"expression":{"id":50317,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1741:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1743:18:84","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":47231,"src":"1741:20:84","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":50316,"id":50319,"nodeType":"Return","src":"1734:27:84"}]},"documentation":{"id":50312,"nodeType":"StructuredDocumentation","src":"1592:67:84","text":"@notice Returns the majority percentage required for consensus."},"functionSelector":"599c7bd1","implemented":true,"kind":"function","modifiers":[],"name":"majorityPercentage","nameLocation":"1673:18:84","parameters":{"id":50313,"nodeType":"ParameterList","parameters":[],"src":"1691:2:84"},"returnParameters":{"id":50316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50321,"src":"1717:5:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":50314,"name":"uint8","nodeType":"ElementaryTypeName","src":"1717:5:84","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1716:7:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50332,"nodeType":"FunctionDefinition","src":"1844:114:84","nodes":[],"body":{"id":50331,"nodeType":"Block","src":"1908:50:84","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":50327,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1925:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1927:12:84","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"1925:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":50329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1940:11:84","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"1925:26:84","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":50326,"id":50330,"nodeType":"Return","src":"1918:33:84"}]},"documentation":{"id":50322,"nodeType":"StructuredDocumentation","src":"1774:65:84","text":"@notice Fetches the limit on the number of active validators."},"functionSelector":"3354c3e1","implemented":true,"kind":"function","modifiers":[],"name":"activeValidatorsLimit","nameLocation":"1853:21:84","parameters":{"id":50323,"nodeType":"ParameterList","parameters":[],"src":"1874:2:84"},"returnParameters":{"id":50326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50332,"src":"1900:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50324,"name":"uint16","nodeType":"ElementaryTypeName","src":"1900:6:84","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1899:8:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50349,"nodeType":"FunctionDefinition","src":"2053:173:84","nodes":[],"body":{"id":50348,"nodeType":"Block","src":"2127:99:84","nodes":[],"statements":[{"expression":{"components":[{"expression":{"expression":{"id":50340,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"2145:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2147:9:84","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"2145:11:84","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":50342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2157:23:84","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"2145:35:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":50343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"2182:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2184:9:84","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"2182:11:84","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":50345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2194:24:84","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"2182:36:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":50346,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2144:75:84","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":50339,"id":50347,"nodeType":"Return","src":"2137:82:84"}]},"documentation":{"id":50333,"nodeType":"StructuredDocumentation","src":"1964:84:84","text":"@notice Returns the next and start configuration numbers related to the changes."},"functionSelector":"38a210b3","implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"2062:23:84","parameters":{"id":50334,"nodeType":"ParameterList","parameters":[],"src":"2085:2:84"},"returnParameters":{"id":50339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50349,"src":"2111:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50335,"name":"uint64","nodeType":"ElementaryTypeName","src":"2111:6:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50349,"src":"2119:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50337,"name":"uint64","nodeType":"ElementaryTypeName","src":"2119:6:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2110:16:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50361,"nodeType":"FunctionDefinition","src":"2308:115:84","nodes":[],"body":{"id":50360,"nodeType":"Block","src":"2380:43:84","nodes":[],"statements":[{"expression":{"expression":{"id":50357,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"2397:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2399:17:84","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"2397:19:84","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"functionReturnParameters":50356,"id":50359,"nodeType":"Return","src":"2390:26:84"}]},"documentation":{"id":50350,"nodeType":"StructuredDocumentation","src":"2232:71:84","text":"@notice Returns the initial set of validators of the genesis block."},"functionSelector":"d92e8f12","implemented":true,"kind":"function","modifiers":[],"name":"genesisValidators","nameLocation":"2317:17:84","parameters":{"id":50351,"nodeType":"ParameterList","parameters":[],"src":"2334:2:84"},"returnParameters":{"id":50356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50361,"src":"2360:18:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":50353,"nodeType":"UserDefinedTypeName","pathNode":{"id":50352,"name":"Validator","nameLocations":["2360:9:84"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"2360:9:84"},"referencedDeclaration":50211,"src":"2360:9:84","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":50354,"nodeType":"ArrayTypeName","src":"2360:11:84","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"src":"2359:20:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50370,"nodeType":"FunctionDefinition","src":"2498:104:84","nodes":[],"body":{"id":50369,"nodeType":"Block","src":"2559:43:84","nodes":[],"statements":[{"expression":{"expression":{"id":50366,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"2576:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2578:17:84","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"2576:19:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50365,"id":50368,"nodeType":"Return","src":"2569:26:84"}]},"functionSelector":"948628a9","implemented":true,"kind":"function","modifiers":[],"name":"genesisCircSupply","nameLocation":"2507:17:84","parameters":{"id":50362,"nodeType":"ParameterList","parameters":[],"src":"2524:2:84"},"returnParameters":{"id":50365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50370,"src":"2550:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50363,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2549:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50447,"nodeType":"FunctionDefinition","src":"2701:574:84","nodes":[],"body":{"id":50446,"nodeType":"Block","src":"2787:488:84","nodes":[],"statements":[{"assignments":[50381],"declarations":[{"constant":false,"id":50381,"mutability":"mutable","name":"numAddresses","nameLocation":"2805:12:84","nodeType":"VariableDeclaration","scope":50446,"src":"2797:20:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50380,"name":"uint256","nodeType":"ElementaryTypeName","src":"2797:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50385,"initialValue":{"expression":{"expression":{"id":50382,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"2820:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2822:18:84","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"2820:20:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":50384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2841:6:84","memberName":"length","nodeType":"MemberAccess","src":"2820:27:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2797:50:84"},{"assignments":[50390],"declarations":[{"constant":false,"id":50390,"mutability":"mutable","name":"addresses","nameLocation":"2874:9:84","nodeType":"VariableDeclaration","scope":50446,"src":"2857:26:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50388,"name":"address","nodeType":"ElementaryTypeName","src":"2857:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50389,"nodeType":"ArrayTypeName","src":"2857:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":50396,"initialValue":{"arguments":[{"id":50394,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50381,"src":"2900:12:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2886:13:84","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":50391,"name":"address","nodeType":"ElementaryTypeName","src":"2890:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50392,"nodeType":"ArrayTypeName","src":"2890:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":50395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2886:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2857:56:84"},{"assignments":[50401],"declarations":[{"constant":false,"id":50401,"mutability":"mutable","name":"balances","nameLocation":"2940:8:84","nodeType":"VariableDeclaration","scope":50446,"src":"2923:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":50399,"name":"uint256","nodeType":"ElementaryTypeName","src":"2923:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50400,"nodeType":"ArrayTypeName","src":"2923:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":50407,"initialValue":{"arguments":[{"id":50405,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50381,"src":"2965:12:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2951:13:84","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":50402,"name":"uint256","nodeType":"ElementaryTypeName","src":"2955:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50403,"nodeType":"ArrayTypeName","src":"2955:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":50406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2951:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2923:55:84"},{"body":{"id":50440,"nodeType":"Block","src":"3025:206:84","statements":[{"assignments":[50415],"declarations":[{"constant":false,"id":50415,"mutability":"mutable","name":"addr","nameLocation":"3047:4:84","nodeType":"VariableDeclaration","scope":50440,"src":"3039:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50414,"name":"address","nodeType":"ElementaryTypeName","src":"3039:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":50420,"initialValue":{"baseExpression":{"expression":{"id":50416,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"3054:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3056:18:84","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"3054:20:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":50419,"indexExpression":{"id":50418,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"3075:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3054:23:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3039:38:84"},{"expression":{"id":50425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":50421,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50390,"src":"3091:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":50423,"indexExpression":{"id":50422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"3101:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3091:12:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50424,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50415,"src":"3106:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3091:19:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50426,"nodeType":"ExpressionStatement","src":"3091:19:84"},{"expression":{"id":50434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":50427,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50401,"src":"3124:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":50429,"indexExpression":{"id":50428,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"3133:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3124:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":50430,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"3138:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3140:14:84","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"3138:16:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":50433,"indexExpression":{"id":50432,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50415,"src":"3155:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3138:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3124:36:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50435,"nodeType":"ExpressionStatement","src":"3124:36:84"},{"id":50439,"nodeType":"UncheckedBlock","src":"3175:46:84","statements":[{"expression":{"id":50437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3203:3:84","subExpression":{"id":50436,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"3205:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50438,"nodeType":"ExpressionStatement","src":"3203:3:84"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50411,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"3005:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":50412,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50381,"src":"3009:12:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3005:16:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50441,"initializationExpression":{"assignments":[50409],"declarations":[{"constant":false,"id":50409,"mutability":"mutable","name":"i","nameLocation":"3002:1:84","nodeType":"VariableDeclaration","scope":50441,"src":"2994:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50408,"name":"uint256","nodeType":"ElementaryTypeName","src":"2994:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50410,"nodeType":"VariableDeclarationStatement","src":"2994:9:84"},"nodeType":"ForStatement","src":"2989:242:84"},{"expression":{"components":[{"id":50442,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50390,"src":"3248:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":50443,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50401,"src":"3259:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"id":50444,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3247:21:84","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"functionReturnParameters":50379,"id":50445,"nodeType":"Return","src":"3240:28:84"}]},"documentation":{"id":50371,"nodeType":"StructuredDocumentation","src":"2608:88:84","text":"@notice Retrieves initial balances and corresponding addresses of the genesis block."},"functionSelector":"903e6930","implemented":true,"kind":"function","modifiers":[],"name":"genesisBalances","nameLocation":"2710:15:84","parameters":{"id":50372,"nodeType":"ParameterList","parameters":[],"src":"2725:2:84"},"returnParameters":{"id":50379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50447,"src":"2751:16:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50373,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50374,"nodeType":"ArrayTypeName","src":"2751:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":50378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50447,"src":"2769:16:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":50376,"name":"uint256","nodeType":"ElementaryTypeName","src":"2769:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50377,"nodeType":"ArrayTypeName","src":"2769:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2750:36:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50457,"nodeType":"FunctionDefinition","src":"3356:108:84","nodes":[],"body":{"id":50456,"nodeType":"Block","src":"3419:45:84","nodes":[],"statements":[{"expression":{"expression":{"id":50453,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"3436:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3438:19:84","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"3436:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50452,"id":50455,"nodeType":"Return","src":"3429:28:84"}]},"documentation":{"id":50448,"nodeType":"StructuredDocumentation","src":"3281:70:84","text":"@notice Returns the period for bottom-up checkpointing operations."},"functionSelector":"06c46853","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckPeriod","nameLocation":"3365:19:84","parameters":{"id":50449,"nodeType":"ParameterList","parameters":[],"src":"3384:2:84"},"returnParameters":{"id":50452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50451,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50457,"src":"3410:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3410:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3409:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50467,"nodeType":"FunctionDefinition","src":"3536:114:84","nodes":[],"body":{"id":50466,"nodeType":"Block","src":"3602:48:84","nodes":[],"statements":[{"expression":{"expression":{"id":50463,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"3619:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3621:22:84","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":47211,"src":"3619:24:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50462,"id":50465,"nodeType":"Return","src":"3612:31:84"}]},"documentation":{"id":50458,"nodeType":"StructuredDocumentation","src":"3470:61:84","text":"@notice Returns the batch period for bottom-up messaging."},"functionSelector":"69e737fd","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatchPeriod","nameLocation":"3545:22:84","parameters":{"id":50459,"nodeType":"ParameterList","parameters":[],"src":"3567:2:84"},"returnParameters":{"id":50462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50467,"src":"3593:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50460,"name":"uint256","nodeType":"ElementaryTypeName","src":"3593:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3592:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50477,"nodeType":"FunctionDefinition","src":"3731:126:84","nodes":[],"body":{"id":50476,"nodeType":"Block","src":"3803:54:84","nodes":[],"statements":[{"expression":{"expression":{"id":50473,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"3820:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3822:28:84","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"3820:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50472,"id":50475,"nodeType":"Return","src":"3813:37:84"}]},"documentation":{"id":50468,"nodeType":"StructuredDocumentation","src":"3656:70:84","text":"@notice Returns the block height of the last bottom-up checkpoint."},"functionSelector":"72d0a0e0","implemented":true,"kind":"function","modifiers":[],"name":"lastBottomUpCheckpointHeight","nameLocation":"3740:28:84","parameters":{"id":50469,"nodeType":"ParameterList","parameters":[],"src":"3768:2:84"},"returnParameters":{"id":50472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50477,"src":"3794:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50470,"name":"uint256","nodeType":"ElementaryTypeName","src":"3794:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3793:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50488,"nodeType":"FunctionDefinition","src":"3941:125:84","nodes":[],"body":{"id":50487,"nodeType":"Block","src":"4011:55:84","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":50483,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4028:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4030:17:84","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"4028:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":50485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4048:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49947,"src":"4028:31:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50482,"id":50486,"nodeType":"Return","src":"4021:38:84"}]},"documentation":{"id":50478,"nodeType":"StructuredDocumentation","src":"3863:73:84","text":"@notice Returns the block height of the last bottom-up message batch."},"functionSelector":"28d5551d","implemented":true,"kind":"function","modifiers":[],"name":"lastBottomUpMsgBatchHeight","nameLocation":"3950:26:84","parameters":{"id":50479,"nodeType":"ParameterList","parameters":[],"src":"3976:2:84"},"returnParameters":{"id":50482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50488,"src":"4002:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50480,"name":"uint256","nodeType":"ElementaryTypeName","src":"4002:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4001:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50499,"nodeType":"FunctionDefinition","src":"4144:94:84","nodes":[],"body":{"id":50498,"nodeType":"Block","src":"4203:35:84","nodes":[],"statements":[{"expression":{"expression":{"id":50495,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4220:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4222:9:84","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":47242,"src":"4220:11:84","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"functionReturnParameters":50494,"id":50497,"nodeType":"Return","src":"4213:18:84"}]},"documentation":{"id":50489,"nodeType":"StructuredDocumentation","src":"4072:67:84","text":"@notice Returns the consensus protocol type used in the subnet."},"functionSelector":"8ef3f761","implemented":true,"kind":"function","modifiers":[],"name":"consensus","nameLocation":"4153:9:84","parameters":{"id":50490,"nodeType":"ParameterList","parameters":[],"src":"4162:2:84"},"returnParameters":{"id":50494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50499,"src":"4188:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":50492,"nodeType":"UserDefinedTypeName","pathNode":{"id":50491,"name":"ConsensusType","nameLocations":["4188:13:84"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"4188:13:84"},"referencedDeclaration":37359,"src":"4188:13:84","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"}],"src":"4187:15:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50509,"nodeType":"FunctionDefinition","src":"4304:91:84","nodes":[],"body":{"id":50508,"nodeType":"Block","src":"4357:38:84","nodes":[],"statements":[{"expression":{"expression":{"id":50505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4374:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4376:12:84","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"4374:14:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50504,"id":50507,"nodeType":"Return","src":"4367:21:84"}]},"documentation":{"id":50500,"nodeType":"StructuredDocumentation","src":"4244:55:84","text":"@notice Checks if the subnet has been bootstrapped."},"functionSelector":"35142c8c","implemented":true,"kind":"function","modifiers":[],"name":"bootstrapped","nameLocation":"4313:12:84","parameters":{"id":50501,"nodeType":"ParameterList","parameters":[],"src":"4325:2:84"},"returnParameters":{"id":50504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50509,"src":"4351:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50502,"name":"bool","nodeType":"ElementaryTypeName","src":"4351:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4350:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50519,"nodeType":"FunctionDefinition","src":"4471:79:84","nodes":[],"body":{"id":50518,"nodeType":"Block","src":"4518:32:84","nodes":[],"statements":[{"expression":{"expression":{"id":50515,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4535:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4537:6:84","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47248,"src":"4535:8:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50514,"id":50517,"nodeType":"Return","src":"4528:15:84"}]},"documentation":{"id":50510,"nodeType":"StructuredDocumentation","src":"4401:65:84","text":"@notice Checks if the subnet has been terminated or \"killed\"."},"functionSelector":"1f3a0e41","implemented":true,"kind":"function","modifiers":[],"name":"killed","nameLocation":"4480:6:84","parameters":{"id":50511,"nodeType":"ParameterList","parameters":[],"src":"4486:2:84"},"returnParameters":{"id":50514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50519,"src":"4512:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50512,"name":"bool","nodeType":"ElementaryTypeName","src":"4512:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4511:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50529,"nodeType":"FunctionDefinition","src":"4635:116:84","nodes":[],"body":{"id":50528,"nodeType":"Block","src":"4702:49:84","nodes":[],"statements":[{"expression":{"expression":{"id":50525,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4719:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4721:23:84","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":47217,"src":"4719:25:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50524,"id":50527,"nodeType":"Return","src":"4712:32:84"}]},"documentation":{"id":50520,"nodeType":"StructuredDocumentation","src":"4556:74:84","text":"@notice Returns the minimum collateral required for subnet activation."},"functionSelector":"9e33bd02","implemented":true,"kind":"function","modifiers":[],"name":"minActivationCollateral","nameLocation":"4644:23:84","parameters":{"id":50521,"nodeType":"ParameterList","parameters":[],"src":"4667:2:84"},"returnParameters":{"id":50524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50529,"src":"4693:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50522,"name":"uint256","nodeType":"ElementaryTypeName","src":"4693:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4692:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50539,"nodeType":"FunctionDefinition","src":"4818:98:84","nodes":[],"body":{"id":50538,"nodeType":"Block","src":"4876:40:84","nodes":[],"statements":[{"expression":{"expression":{"id":50535,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4893:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:14:84","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":47234,"src":"4893:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50534,"id":50537,"nodeType":"Return","src":"4886:23:84"}]},"documentation":{"id":50530,"nodeType":"StructuredDocumentation","src":"4757:56:84","text":"@notice Returns the minimum fee for cross-messaging."},"functionSelector":"6704287c","implemented":true,"kind":"function","modifiers":[],"name":"minCrossMsgFee","nameLocation":"4827:14:84","parameters":{"id":50531,"nodeType":"ParameterList","parameters":[],"src":"4841:2:84"},"returnParameters":{"id":50534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50539,"src":"4867:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50532,"name":"uint256","nodeType":"ElementaryTypeName","src":"4867:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4866:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50557,"nodeType":"FunctionDefinition","src":"5082:175:84","nodes":[],"body":{"id":50556,"nodeType":"Block","src":"5185:72:84","nodes":[],"statements":[{"expression":{"id":50554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50548,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50546,"src":"5195:9:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_memory_ptr","typeString":"struct ValidatorInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":50549,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"5207:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5209:12:84","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"5207:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":50551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5222:10:84","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5207:25:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":50553,"indexExpression":{"id":50552,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50542,"src":"5233:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5207:43:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"src":"5195:55:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_memory_ptr","typeString":"struct ValidatorInfo memory"}},"id":50555,"nodeType":"ExpressionStatement","src":"5195:55:84"}]},"documentation":{"id":50540,"nodeType":"StructuredDocumentation","src":"4922:155:84","text":"@notice Returns detailed information about a specific validator.\n @param validatorAddress The address of the validator to query information for."},"functionSelector":"1904bb2e","implemented":true,"kind":"function","modifiers":[],"name":"getValidator","nameLocation":"5091:12:84","parameters":{"id":50543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50542,"mutability":"mutable","name":"validatorAddress","nameLocation":"5112:16:84","nodeType":"VariableDeclaration","scope":50557,"src":"5104:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50541,"name":"address","nodeType":"ElementaryTypeName","src":"5104:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5103:26:84"},"returnParameters":{"id":50547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50546,"mutability":"mutable","name":"validator","nameLocation":"5174:9:84","nodeType":"VariableDeclaration","scope":50557,"src":"5153:30:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_memory_ptr","typeString":"struct ValidatorInfo"},"typeName":{"id":50545,"nodeType":"UserDefinedTypeName","pathNode":{"id":50544,"name":"ValidatorInfo","nameLocations":["5153:13:84"],"nodeType":"IdentifierPath","referencedDeclaration":50161,"src":"5153:13:84"},"referencedDeclaration":50161,"src":"5153:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo"}},"visibility":"internal"}],"src":"5152:32:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50568,"nodeType":"FunctionDefinition","src":"5340:119:84","nodes":[],"body":{"id":50567,"nodeType":"Block","src":"5407:52:84","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50563,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"5424:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5435:15:84","memberName":"totalValidators","nodeType":"MemberAccess","referencedDeclaration":45478,"src":"5424:26:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":50565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5424:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":50562,"id":50566,"nodeType":"Return","src":"5417:35:84"}]},"documentation":{"id":50558,"nodeType":"StructuredDocumentation","src":"5263:72:84","text":"@notice Returns the total number of validators (active and waiting)."},"functionSelector":"52d182d1","implemented":true,"kind":"function","modifiers":[],"name":"getTotalValidatorsNumber","nameLocation":"5349:24:84","parameters":{"id":50559,"nodeType":"ParameterList","parameters":[],"src":"5373:2:84"},"returnParameters":{"id":50562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50568,"src":"5399:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50560,"name":"uint16","nodeType":"ElementaryTypeName","src":"5399:6:84","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5398:8:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50579,"nodeType":"FunctionDefinition","src":"5522:126:84","nodes":[],"body":{"id":50578,"nodeType":"Block","src":"5590:58:84","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50574,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"5607:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5618:21:84","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":45452,"src":"5607:32:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":50576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5607:34:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":50573,"id":50577,"nodeType":"Return","src":"5600:41:84"}]},"documentation":{"id":50569,"nodeType":"StructuredDocumentation","src":"5465:52:84","text":"@notice Returns the number of active validators."},"functionSelector":"c7cda762","implemented":true,"kind":"function","modifiers":[],"name":"getActiveValidatorsNumber","nameLocation":"5531:25:84","parameters":{"id":50570,"nodeType":"ParameterList","parameters":[],"src":"5556:2:84"},"returnParameters":{"id":50573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50572,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50579,"src":"5582:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50571,"name":"uint16","nodeType":"ElementaryTypeName","src":"5582:6:84","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5581:8:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50590,"nodeType":"FunctionDefinition","src":"5742:135:84","nodes":[],"body":{"id":50589,"nodeType":"Block","src":"5813:64:84","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50585,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"5830:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5841:27:84","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":45496,"src":"5830:38:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":50587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5830:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50584,"id":50588,"nodeType":"Return","src":"5823:47:84"}]},"documentation":{"id":50580,"nodeType":"StructuredDocumentation","src":"5654:83:84","text":"@notice Returns the total amount of confirmed collateral across all validators."},"functionSelector":"332a5ac9","implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"5751:27:84","parameters":{"id":50581,"nodeType":"ParameterList","parameters":[],"src":"5778:2:84"},"returnParameters":{"id":50584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50583,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50590,"src":"5804:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50582,"name":"uint256","nodeType":"ElementaryTypeName","src":"5804:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5803:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50601,"nodeType":"FunctionDefinition","src":"5952:117:84","nodes":[],"body":{"id":50600,"nodeType":"Block","src":"6014:55:84","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50596,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"6031:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6042:18:84","memberName":"getTotalCollateral","nodeType":"MemberAccess","referencedDeclaration":45514,"src":"6031:29:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":50598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6031:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50595,"id":50599,"nodeType":"Return","src":"6024:38:84"}]},"documentation":{"id":50591,"nodeType":"StructuredDocumentation","src":"5883:64:84","text":"@notice Returns the total collateral held by all validators."},"functionSelector":"d6eb5910","implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"5961:18:84","parameters":{"id":50592,"nodeType":"ParameterList","parameters":[],"src":"5979:2:84"},"returnParameters":{"id":50595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50601,"src":"6005:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50593,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6004:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50615,"nodeType":"FunctionDefinition","src":"6240:158:84","nodes":[],"body":{"id":50614,"nodeType":"Block","src":"6328:70:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":50611,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50604,"src":"6381:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50609,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"6345:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6356:24:84","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":45537,"src":"6345:35:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":50612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6345:46:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50608,"id":50613,"nodeType":"Return","src":"6338:53:84"}]},"documentation":{"id":50602,"nodeType":"StructuredDocumentation","src":"6075:160:84","text":"@notice Returns the total collateral amount for a specific validator.\n @param validator The address of the validator for which collateral is queried."},"functionSelector":"1597bf7e","implemented":true,"kind":"function","modifiers":[],"name":"getTotalValidatorCollateral","nameLocation":"6249:27:84","parameters":{"id":50605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50604,"mutability":"mutable","name":"validator","nameLocation":"6285:9:84","nodeType":"VariableDeclaration","scope":50615,"src":"6277:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50603,"name":"address","nodeType":"ElementaryTypeName","src":"6277:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6276:19:84"},"returnParameters":{"id":50608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50615,"src":"6319:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50606,"name":"uint256","nodeType":"ElementaryTypeName","src":"6319:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6318:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50629,"nodeType":"FunctionDefinition","src":"6537:123:84","nodes":[],"body":{"id":50628,"nodeType":"Block","src":"6606:54:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":50625,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50618,"src":"6643:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50623,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"6623:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6634:8:84","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":45350,"src":"6623:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":50626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6623:30:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50622,"id":50627,"nodeType":"Return","src":"6616:37:84"}]},"documentation":{"id":50616,"nodeType":"StructuredDocumentation","src":"6404:128:84","text":"@notice Checks if the validator address is in an active state.\n @param validator The address of the checked validator"},"functionSelector":"5dd9147c","implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"6546:8:84","parameters":{"id":50619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50618,"mutability":"mutable","name":"validator","nameLocation":"6563:9:84","nodeType":"VariableDeclaration","scope":50629,"src":"6555:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50617,"name":"address","nodeType":"ElementaryTypeName","src":"6555:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6554:19:84"},"returnParameters":{"id":50622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50629,"src":"6597:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50620,"name":"uint256","nodeType":"ElementaryTypeName","src":"6597:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6596:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50643,"nodeType":"FunctionDefinition","src":"6737:138:84","nodes":[],"body":{"id":50642,"nodeType":"Block","src":"6812:63:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":50639,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50632,"src":"6858:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50637,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"6829:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6840:17:84","memberName":"isActiveValidator","nodeType":"MemberAccess","referencedDeclaration":45373,"src":"6829:28:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":50640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6829:39:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50636,"id":50641,"nodeType":"Return","src":"6822:46:84"}]},"documentation":{"id":50630,"nodeType":"StructuredDocumentation","src":"6666:66:84","text":"@notice Checks if the validator address is an active validator"},"functionSelector":"40550a1c","implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"6746:17:84","parameters":{"id":50633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50632,"mutability":"mutable","name":"validator","nameLocation":"6772:9:84","nodeType":"VariableDeclaration","scope":50643,"src":"6764:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50631,"name":"address","nodeType":"ElementaryTypeName","src":"6764:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6763:19:84"},"returnParameters":{"id":50636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50635,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50643,"src":"6806:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50634,"name":"bool","nodeType":"ElementaryTypeName","src":"6806:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6805:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50657,"nodeType":"FunctionDefinition","src":"7007:140:84","nodes":[],"body":{"id":50656,"nodeType":"Block","src":"7083:64:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":50653,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50646,"src":"7130:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50651,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"7100:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7111:18:84","memberName":"isWaitingValidator","nodeType":"MemberAccess","referencedDeclaration":45396,"src":"7100:29:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":50654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7100:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50650,"id":50655,"nodeType":"Return","src":"7093:47:84"}]},"documentation":{"id":50644,"nodeType":"StructuredDocumentation","src":"6881:121:84","text":"@notice Checks if the validator is in a waiting state.\n @param validator The address of the checked validator."},"functionSelector":"d081be03","implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"7016:18:84","parameters":{"id":50647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50646,"mutability":"mutable","name":"validator","nameLocation":"7043:9:84","nodeType":"VariableDeclaration","scope":50657,"src":"7035:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50645,"name":"address","nodeType":"ElementaryTypeName","src":"7035:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7034:19:84"},"returnParameters":{"id":50650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50657,"src":"7077:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50648,"name":"bool","nodeType":"ElementaryTypeName","src":"7077:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7076:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50681,"nodeType":"FunctionDefinition","src":"7337:238:84","nodes":[],"body":{"id":50680,"nodeType":"Block","src":"7435:140:84","nodes":[],"statements":[{"assignments":[50666],"declarations":[{"constant":false,"id":50666,"mutability":"mutable","name":"height","nameLocation":"7453:6:84","nodeType":"VariableDeclaration","scope":50680,"src":"7445:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50665,"name":"uint256","nodeType":"ElementaryTypeName","src":"7445:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50670,"initialValue":{"expression":{"expression":{"id":50667,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"7462:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7464:17:84","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"7462:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":50669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7482:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49947,"src":"7462:31:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7445:48:84"},{"expression":{"arguments":[{"id":50677,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50660,"src":"7558:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":50671,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"7510:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7512:14:84","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"7510:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7527:13:84","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":49967,"src":"7510:30:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":50675,"indexExpression":{"id":50674,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50666,"src":"7541:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7510:38:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7549:8:84","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35609,"src":"7510:47:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":50678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7510:58:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50664,"id":50679,"nodeType":"Return","src":"7503:65:84"}]},"documentation":{"id":50658,"nodeType":"StructuredDocumentation","src":"7153:179:84","text":"@notice Determines if a validator has submitted the most recent bottom-up message batch.\n @param validator The address of the validator being checked for participation."},"functionSelector":"f75499dc","implemented":true,"kind":"function","modifiers":[],"name":"hasSubmittedInLastBottomUpMsgBatchHeight","nameLocation":"7346:40:84","parameters":{"id":50661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50660,"mutability":"mutable","name":"validator","nameLocation":"7395:9:84","nodeType":"VariableDeclaration","scope":50681,"src":"7387:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50659,"name":"address","nodeType":"ElementaryTypeName","src":"7387:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7386:19:84"},"returnParameters":{"id":50664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50681,"src":"7429:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50662,"name":"bool","nodeType":"ElementaryTypeName","src":"7429:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7428:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50704,"nodeType":"FunctionDefinition","src":"7790:244:84","nodes":[],"body":{"id":50703,"nodeType":"Block","src":"7890:144:84","nodes":[],"statements":[{"assignments":[50690],"declarations":[{"constant":false,"id":50690,"mutability":"mutable","name":"height","nameLocation":"7908:6:84","nodeType":"VariableDeclaration","scope":50703,"src":"7900:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50689,"name":"uint256","nodeType":"ElementaryTypeName","src":"7900:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50693,"initialValue":{"expression":{"id":50691,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"7917:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7919:28:84","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"7917:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7900:47:84"},{"expression":{"arguments":[{"id":50700,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50684,"src":"8017:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":50694,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"7964:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7966:14:84","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"7964:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7981:18:84","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49961,"src":"7964:35:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":50698,"indexExpression":{"id":50697,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50690,"src":"8000:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7964:43:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8008:8:84","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35609,"src":"7964:52:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":50701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7964:63:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50688,"id":50702,"nodeType":"Return","src":"7957:70:84"}]},"documentation":{"id":50682,"nodeType":"StructuredDocumentation","src":"7581:204:84","text":"@notice Checks whether a validator has submitted the most recent bottom-up checkpoint message.\n @param validator The address of the validator being checked for inclusion in the last checkpoint."},"functionSelector":"2bc31eb3","implemented":true,"kind":"function","modifiers":[],"name":"hasSubmittedInLastBottomUpCheckpointHeight","nameLocation":"7799:42:84","parameters":{"id":50685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50684,"mutability":"mutable","name":"validator","nameLocation":"7850:9:84","nodeType":"VariableDeclaration","scope":50704,"src":"7842:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50683,"name":"address","nodeType":"ElementaryTypeName","src":"7842:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7841:19:84"},"returnParameters":{"id":50688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50704,"src":"7884:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50686,"name":"bool","nodeType":"ElementaryTypeName","src":"7884:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7883:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50735,"nodeType":"FunctionDefinition","src":"8269:281:84","nodes":[],"body":{"id":50734,"nodeType":"Block","src":"8405:145:84","nodes":[],"statements":[{"expression":{"id":50720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50715,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50713,"src":"8415:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":50716,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"8428:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8430:20:84","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":47184,"src":"8428:22:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":50719,"indexExpression":{"id":50718,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50707,"src":"8451:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8428:29:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"8415:42:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":50721,"nodeType":"ExpressionStatement","src":"8415:42:84"},{"expression":{"id":50728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50722,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50710,"src":"8467:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8476:30:84","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":50723,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50713,"src":"8477:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":50724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8488:8:84","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49922,"src":"8477:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":50725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8497:7:84","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48071,"src":"8477:27:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":50726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8477:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8467:39:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50729,"nodeType":"ExpressionStatement","src":"8467:39:84"},{"expression":{"components":[{"id":50730,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50710,"src":"8524:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":50731,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50713,"src":"8532:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":50732,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8523:20:84","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint memory)"}},"functionReturnParameters":50714,"id":50733,"nodeType":"Return","src":"8516:27:84"}]},"documentation":{"id":50705,"nodeType":"StructuredDocumentation","src":"8040:224:84","text":"@notice returns the committed bottom-up checkpoint at specific epoch.\n @param epoch - the epoch to check.\n @return exists - whether the checkpoint exists.\n @return checkpoint - the checkpoint struct."},"functionSelector":"4b27aa72","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointAtEpoch","nameLocation":"8278:25:84","parameters":{"id":50708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50707,"mutability":"mutable","name":"epoch","nameLocation":"8321:5:84","nodeType":"VariableDeclaration","scope":50735,"src":"8313:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50706,"name":"uint256","nodeType":"ElementaryTypeName","src":"8313:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8303:29:84"},"returnParameters":{"id":50714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50710,"mutability":"mutable","name":"exists","nameLocation":"8359:6:84","nodeType":"VariableDeclaration","scope":50735,"src":"8354:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50709,"name":"bool","nodeType":"ElementaryTypeName","src":"8354:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":50713,"mutability":"mutable","name":"checkpoint","nameLocation":"8393:10:84","nodeType":"VariableDeclaration","scope":50735,"src":"8367:36:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":50712,"nodeType":"UserDefinedTypeName","pathNode":{"id":50711,"name":"BottomUpCheckpoint","nameLocations":["8367:18:84"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"8367:18:84"},"referencedDeclaration":49932,"src":"8367:18:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"8353:51:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":50764,"nodeType":"FunctionDefinition","src":"8779:255:84","nodes":[],"body":{"id":50763,"nodeType":"Block","src":"8871:163:84","nodes":[],"statements":[{"assignments":[50746,50749],"declarations":[{"constant":false,"id":50746,"mutability":"mutable","name":"exists","nameLocation":"8887:6:84","nodeType":"VariableDeclaration","scope":50763,"src":"8882:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50745,"name":"bool","nodeType":"ElementaryTypeName","src":"8882:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":50749,"mutability":"mutable","name":"checkpoint","nameLocation":"8921:10:84","nodeType":"VariableDeclaration","scope":50763,"src":"8895:36:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":50748,"nodeType":"UserDefinedTypeName","pathNode":{"id":50747,"name":"BottomUpCheckpoint","nameLocations":["8895:18:84"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"8895:18:84"},"referencedDeclaration":49932,"src":"8895:18:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":50753,"initialValue":{"arguments":[{"id":50751,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50738,"src":"8961:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50750,"name":"bottomUpCheckpointAtEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50735,"src":"8935:25:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpCheckpoint memory)"}},"id":50752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8935:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint memory)"}},"nodeType":"VariableDeclarationStatement","src":"8881:86:84"},{"expression":{"components":[{"id":50754,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50746,"src":"8985:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":50758,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50749,"src":"9014:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":50756,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9003:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":50757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9007:6:84","memberName":"encode","nodeType":"MemberAccess","src":"9003:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":50759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9003:22:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50755,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8993:9:84","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8993:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":50761,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8984:43:84","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"functionReturnParameters":50744,"id":50762,"nodeType":"Return","src":"8977:50:84"}]},"documentation":{"id":50736,"nodeType":"StructuredDocumentation","src":"8556:218:84","text":"@notice returns the historical committed bottom-up checkpoint hash.\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return hash - the hash of the checkpoint"},"functionSelector":"4b0694e2","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointHashAtEpoch","nameLocation":"8788:29:84","parameters":{"id":50739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50738,"mutability":"mutable","name":"epoch","nameLocation":"8826:5:84","nodeType":"VariableDeclaration","scope":50764,"src":"8818:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50737,"name":"uint256","nodeType":"ElementaryTypeName","src":"8818:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8817:15:84"},"returnParameters":{"id":50744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50764,"src":"8856:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50740,"name":"bool","nodeType":"ElementaryTypeName","src":"8856:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":50743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50764,"src":"8862:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8862:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8855:15:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50774,"nodeType":"FunctionDefinition","src":"9118:87:84","nodes":[],"body":{"id":50773,"nodeType":"Block","src":"9169:36:84","nodes":[],"statements":[{"expression":{"expression":{"id":50770,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"9186:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9188:10:84","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":47263,"src":"9186:12:84","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"functionReturnParameters":50769,"id":50772,"nodeType":"Return","src":"9179:19:84"}]},"documentation":{"id":50765,"nodeType":"StructuredDocumentation","src":"9040:73:84","text":"@notice Returns the power scale in number of decimals from whole FIL."},"functionSelector":"ad81e4d6","implemented":true,"kind":"function","modifiers":[],"name":"powerScale","nameLocation":"9127:10:84","parameters":{"id":50766,"nodeType":"ParameterList","parameters":[],"src":"9137:2:84"},"returnParameters":{"id":50769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50774,"src":"9163:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":50767,"name":"int8","nodeType":"ElementaryTypeName","src":"9163:4:84","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"9162:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50842,"nodeType":"FunctionDefinition","src":"9266:471:84","nodes":[],"body":{"id":50841,"nodeType":"Block","src":"9335:402:84","nodes":[],"statements":[{"assignments":[50782],"declarations":[{"constant":false,"id":50782,"mutability":"mutable","name":"n","nameLocation":"9353:1:84","nodeType":"VariableDeclaration","scope":50841,"src":"9345:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50781,"name":"uint256","nodeType":"ElementaryTypeName","src":"9345:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50787,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":50783,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"9357:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9359:15:84","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47276,"src":"9357:17:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9375:6:84","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35624,"src":"9357:24:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":50786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9357:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9345:38:84"},{"assignments":[50792],"declarations":[{"constant":false,"id":50792,"mutability":"mutable","name":"nodes","nameLocation":"9409:5:84","nodeType":"VariableDeclaration","scope":50841,"src":"9393:21:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":50790,"name":"string","nodeType":"ElementaryTypeName","src":"9393:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":50791,"nodeType":"ArrayTypeName","src":"9393:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":50798,"initialValue":{"arguments":[{"id":50796,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50782,"src":"9430:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9417:12:84","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":50793,"name":"string","nodeType":"ElementaryTypeName","src":"9421:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":50794,"nodeType":"ArrayTypeName","src":"9421:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":50797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9417:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9393:39:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50799,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50782,"src":"9446:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9451:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9446:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50805,"nodeType":"IfStatement","src":"9442:49:84","trueBody":{"id":50804,"nodeType":"Block","src":"9454:37:84","statements":[{"expression":{"id":50802,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50792,"src":"9475:5:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":50780,"id":50803,"nodeType":"Return","src":"9468:12:84"}]}},{"assignments":[50810],"declarations":[{"constant":false,"id":50810,"mutability":"mutable","name":"owners","nameLocation":"9517:6:84","nodeType":"VariableDeclaration","scope":50841,"src":"9500:23:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50808,"name":"address","nodeType":"ElementaryTypeName","src":"9500:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50809,"nodeType":"ArrayTypeName","src":"9500:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":50815,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":50811,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"9526:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9528:15:84","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47276,"src":"9526:17:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9544:6:84","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"9526:24:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":50814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9526:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9500:52:84"},{"body":{"id":50837,"nodeType":"Block","src":"9587:122:84","statements":[{"expression":{"id":50831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":50822,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50792,"src":"9601:5:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":50824,"indexExpression":{"id":50823,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50817,"src":"9607:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9601:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":50825,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"9612:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9614:14:84","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":47272,"src":"9612:16:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":50830,"indexExpression":{"baseExpression":{"id":50827,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50810,"src":"9629:6:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":50829,"indexExpression":{"id":50828,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50817,"src":"9636:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9629:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9612:27:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"src":"9601:38:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":50832,"nodeType":"ExpressionStatement","src":"9601:38:84"},{"id":50836,"nodeType":"UncheckedBlock","src":"9653:46:84","statements":[{"expression":{"id":50834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9681:3:84","subExpression":{"id":50833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50817,"src":"9683:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50835,"nodeType":"ExpressionStatement","src":"9681:3:84"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50819,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50817,"src":"9578:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":50820,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50782,"src":"9582:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9578:5:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50838,"initializationExpression":{"assignments":[50817],"declarations":[{"constant":false,"id":50817,"mutability":"mutable","name":"i","nameLocation":"9575:1:84","nodeType":"VariableDeclaration","scope":50838,"src":"9567:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50816,"name":"uint256","nodeType":"ElementaryTypeName","src":"9567:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50818,"nodeType":"VariableDeclarationStatement","src":"9567:9:84"},"nodeType":"ForStatement","src":"9562:147:84"},{"expression":{"id":50839,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50792,"src":"9725:5:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":50780,"id":50840,"nodeType":"Return","src":"9718:12:84"}]},"documentation":{"id":50775,"nodeType":"StructuredDocumentation","src":"9211:50:84","text":"@notice Returns the bootstrap nodes addresses."},"functionSelector":"9754b29e","implemented":true,"kind":"function","modifiers":[],"name":"getBootstrapNodes","nameLocation":"9275:17:84","parameters":{"id":50776,"nodeType":"ParameterList","parameters":[],"src":"9292:2:84"},"returnParameters":{"id":50780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50842,"src":"9318:15:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":50777,"name":"string","nodeType":"ElementaryTypeName","src":"9318:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":50778,"nodeType":"ArrayTypeName","src":"9318:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"9317:17:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50860,"nodeType":"FunctionDefinition","src":"10002:140:84","nodes":[],"body":{"id":50859,"nodeType":"Block","src":"10087:55:84","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":50855,"name":"messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50847,"src":"10125:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":50853,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10114:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":50854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10118:6:84","memberName":"encode","nodeType":"MemberAccess","src":"10114:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":50856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10114:20:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50852,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10104:9:84","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10104:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":50851,"id":50858,"nodeType":"Return","src":"10097:38:84"}]},"documentation":{"id":50843,"nodeType":"StructuredDocumentation","src":"9743:254:84","text":"@notice Computes a hash of an array of cross-chain messages.\n @dev This exists for testing purposes.\n @param messages An array of cross-chain messages to be hashed.\n @return The keccak256 hash of the encoded cross-chain messages."},"functionSelector":"3da33241","implemented":true,"kind":"function","modifiers":[],"name":"crossMsgsHash","nameLocation":"10011:13:84","parameters":{"id":50848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50847,"mutability":"mutable","name":"messages","nameLocation":"10045:8:84","nodeType":"VariableDeclaration","scope":50860,"src":"10025:28:84","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":50845,"nodeType":"UserDefinedTypeName","pathNode":{"id":50844,"name":"CrossMsg","nameLocations":["10025:8:84"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"10025:8:84"},"referencedDeclaration":49974,"src":"10025:8:84","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":50846,"nodeType":"ArrayTypeName","src":"10025:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"10024:30:84"},"returnParameters":{"id":50851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50850,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50860,"src":"10078:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10078:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10077:9:84"},"scope":50887,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":50875,"nodeType":"FunctionDefinition","src":"10393:132:84","nodes":[],"body":{"id":50874,"nodeType":"Block","src":"10468:57:84","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":50868,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"10485:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10487:14:84","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"10485:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10502:7:84","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"10485:24:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":50872,"indexExpression":{"id":50871,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50863,"src":"10510:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10485:33:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50867,"id":50873,"nodeType":"Return","src":"10478:40:84"}]},"documentation":{"id":50861,"nodeType":"StructuredDocumentation","src":"10148:240:84","text":"@notice Retrieves the total reward amount allocated to a specific relayer.\n @param relayer The address of the relayer whose reward amount is to be queried.\n @return The total reward amount accrued by the specified relayer."},"functionSelector":"b2bd295e","implemented":true,"kind":"function","modifiers":[],"name":"getRelayerReward","nameLocation":"10402:16:84","parameters":{"id":50864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50863,"mutability":"mutable","name":"relayer","nameLocation":"10427:7:84","nodeType":"VariableDeclaration","scope":50875,"src":"10419:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50862,"name":"address","nodeType":"ElementaryTypeName","src":"10419:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10418:17:84"},"returnParameters":{"id":50867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50866,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50875,"src":"10459:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50865,"name":"uint256","nodeType":"ElementaryTypeName","src":"10459:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10458:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50886,"nodeType":"FunctionDefinition","src":"10591:113:84","nodes":[],"body":{"id":50885,"nodeType":"Block","src":"10666:38:84","nodes":[],"statements":[{"expression":{"expression":{"id":50882,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"10683:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10685:12:84","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":47280,"src":"10683:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage","typeString":"struct SupplySource storage ref"}},"functionReturnParameters":50881,"id":50884,"nodeType":"Return","src":"10676:21:84"}]},"documentation":{"id":50876,"nodeType":"StructuredDocumentation","src":"10531:55:84","text":"@notice Returns the supply strategy for the subnet."},"functionSelector":"80875df7","implemented":true,"kind":"function","modifiers":[],"name":"supplySource","nameLocation":"10600:12:84","parameters":{"id":50877,"nodeType":"ParameterList","parameters":[],"src":"10612:2:84"},"returnParameters":{"id":50881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50880,"mutability":"mutable","name":"supply","nameLocation":"10658:6:84","nodeType":"VariableDeclaration","scope":50886,"src":"10638:26:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":50879,"nodeType":"UserDefinedTypeName","pathNode":{"id":50878,"name":"SupplySource","nameLocations":["10638:12:84"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"10638:12:84"},"referencedDeclaration":50226,"src":"10638:12:84","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"10637:28:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50887],"name":"SubnetActorGetterFacet","nameLocation":"690:22:84","scope":50888,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":84} \ No newline at end of file +{"abi":[{"type":"function","name":"activeValidatorsLimit","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"bootstrapped","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpointAtEpoch","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpointHashAtEpoch","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatchPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"consensus","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ConsensusType"}],"stateMutability":"view"},{"type":"function","name":"crossMsgsHash","inputs":[{"name":"messages","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"genesisBalances","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"genesisCircSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"genesisValidators","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getActiveValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"getBootstrapNodes","inputs":[],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"getConfigurationNumbers","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getParent","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getPower","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRelayerReward","inputs":[{"name":"relayer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalConfirmedCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalValidatorCollateral","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"getValidator","inputs":[{"name":"validatorAddress","type":"address","internalType":"address"}],"outputs":[{"name":"validator","type":"tuple","internalType":"struct ValidatorInfo","components":[{"name":"federatedPower","type":"uint256","internalType":"uint256"},{"name":"confirmedCollateral","type":"uint256","internalType":"uint256"},{"name":"totalCollateral","type":"uint256","internalType":"uint256"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"hasSubmittedInLastBottomUpCheckpointHeight","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hasSubmittedInLastBottomUpMsgBatchHeight","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ipcGatewayAddr","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isActiveValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWaitingValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastBottomUpCheckpointHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"lastBottomUpMsgBatchHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"majorityPercentage","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"minActivationCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minCrossMsgFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minValidators","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"permissionMode","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum PermissionMode"}],"stateMutability":"view"},{"type":"function","name":"powerScale","inputs":[],"outputs":[{"name":"","type":"int8","internalType":"int8"}],"stateMutability":"view"},{"type":"function","name":"supplySource","inputs":[],"outputs":[{"name":"supply","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657611533908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c63430008130033","sourceMap":"681:10025:85:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":4594,"length":20}]}}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c63430008130033","sourceMap":"681:10025:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9186:12;681:10025;9186:12;;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:85;;;;7510:58;681:10025;;;;;:::i;:::-;;7462:19;681:10025;;;7510:30;681:10025;;;;8861:165:36;681:10025:85;;;;;;-1:-1:-1;681:10025:85;4352:12:36;681:10025:85;;;-1:-1:-1;681:10025:85;;4352:24:36;;8861:165;;7510:58:85;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;1215:14;681:10025;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;2397:19;;;681:10025;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:85;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;681:10025:85;;;;;;;;;;-1:-1:-1;;;;;681:10025:85;;:::i;:::-;;;;1317:17:79;681:10025:85;;;;;1317:33:79;;681:10025:85;;;;;;;;;;;;;;;;;;;;1377:16;681:10025;;;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;;5328:27:69;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1564:15:85;681:10025;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:85;;;;;;;;-1:-1:-1;;;;;681:10025:85;;:::i;:::-;;;;10485:16;681:10025;;;;;;;;;;;;;;;;;;;;;;;;9186:12;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;4719:25;681:10025;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2576:19;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;10114:20:85;;681:10025;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;2994:9;3005:16;;;;;;681:10025;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;681:10025:85;;;;;;;;;;;;2994:9;681:10025;;;;;;;;;;;;;;;;;;;;;3091:19;;;;;:::i;:::-;681:10025;;;;;;;;;;3124:36;;;;:::i;:::-;681:10025;;2994:9;;;;;;;;;681:10025;;;;;;;;;;;;;;;4220:11;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;1065:10;681:10025;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;10683:14;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;3820:30;681:10025;;;;;;;;;;;;;;;;;;;;;;;3619:24;681:10025;;;;;;;;;;;;;;;;;;;;;;;4893:16;681:10025;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:85;;;;;;:::i;:::-;16026:34:69;681:10025:85;16026:14:69;681:10025:85;;;;;;;;;;4668:53:69;;4697:24;4668:53;;4697:24;;-1:-1:-1;;;;;681:10025:85;;;;;18718:25:69;681:10025:85;;;;;;4664:230:69;;681:10025:85;;;;;4664:230:69;-1:-1:-1;;;;;681:10025:85;;;;;18718:25:69;681:10025:85;;;;;4697:24:69;4831:52;681:10025:85;4664:230:69;;;681:10025:85;-1:-1:-1;;;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;;1741:20;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;17942:32:69;681:10025:85;;;17987:31:69;681:10025:85;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:85;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:85;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;681:10025:85;;;;;8935:32;681:10025;;8935:32;:::i;:::-;681:10025;;9003:22;;681:10025;;9003:22;;681:10025;;;;;;;;;:::i;:::-;9003:22;10114:20;;9003:22;;;;;;:::i;:::-;681:10025;8993:33;;681:10025;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:85;;;;;;;;;;-1:-1:-1;;;;;681:10025:85;;:::i;:::-;;;;1317:17:79;681:10025:85;;;;;1317:33:79;;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10114:20;;;;;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;10114:20;;;;;;;;;;;;;;;;;;:::i;:::-;681:10025;10104:31;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;-1:-1:-1;;681:10025:85;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;681:10025:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2145:11;681:10025;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4374:14;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1925:14;681:10025;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:85;;;;7964:63;681:10025;;;;;:::i;:::-;;7917:30;681:10025;;;7964:35;681:10025;;;;8861:165:36;681:10025:85;;;;;;-1:-1:-1;681:10025:85;4352:12:36;681:10025:85;;;-1:-1:-1;681:10025:85;;4352:24:36;;8861:165;;681:10025:85;;;;;;;;;;;;;;;;4028:19;681:10025;;;;;;;;;;;;;;;;;;;;;;;;4535:8;681:10025;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:85;;;;5207:43;681:10025;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18718:25:69;681:10025:85;;;;;;;5207:43;681:10025;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5207:25;681:10025;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;681:10025:85;;;;;;18718:25:69;:36;681:10025:85;;:::i;:::-;-1:-1:-1;;;;;681:10025:85;;;;;18718:25:69;681:10025:85;;;;;;;18718:36:69;:52;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;3436:21;681:10025;;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10114:20;;;681:10025;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:85;;;;;5112:35:69;681:10025:85;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;681:10025:85;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;:::o;:::-;;10114:20;;;681:10025;;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;681:10025:85;;;;:::o;:::-;-1:-1:-1;;;;;681:10025:85;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;681:10025:85;;;;;-1:-1:-1;681:10025:85;;;-1:-1:-1;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:85;;;;;-1:-1:-1;;;681:10025:85;;;;;;;;-1:-1:-1;681:10025:85;;;;;;;;;;;-1:-1:-1;681:10025:85;;;;;-1:-1:-1;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;8269:281;;681:10025;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8477:29;;;681:10025;8477:29;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8477:29;;;;;;;:27;;:29;;;;;;;;;;;;681:10025;8476:30;;;;8516:27;8269:281;:::o;8477:29::-;;;;;;;;;;;;;;;;;:::i;:::-;;;681:10025;;;;;;;;;;;;;8477:29;;;;;;;;;;;;681:10025;;;;;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;-1:-1:-1;681:10025:85;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;;;;;9266:471;9357:17;681:10025;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;681:10025:85;;;:::i;:::-;;-1:-1:-1;681:10025:85;;;;;;9446:6;;;;9442:49;;681:10025;;;;;;;;;;9357:17;-1:-1:-1;681:10025:85;;;;-1:-1:-1;681:10025:85;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9578:5:85;;;;;;9718:12;;;;;9266:471;:::o;9567:9::-;681:10025;;-1:-1:-1;;;;;9629:9:85;681:10025;9629:9;;:::i;:::-;681:10025;;-1:-1:-1;681:10025:85;9612:16;681:10025;;;;;-1:-1:-1;681:10025:85;;;;;;;;:::i;:::-;9601:38;;;;:::i;:::-;;;;;;:::i;:::-;;681:10025;9567:9;;681:10025;;;;;;;;;;;;-1:-1:-1;681:10025:85;;;;;;9442:49;9468:12;;;:::o;681:10025::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;681:10025:85;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;681:10025:85;;;;;;10114:20;681:10025;-1:-1:-1;;681:10025:85;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;681:10025:85;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":4566,"length":20}]}}},"methodIdentifiers":{"activeValidatorsLimit()":"3354c3e1","bootstrapped()":"35142c8c","bottomUpCheckPeriod()":"06c46853","bottomUpCheckpointAtEpoch(uint256)":"4b27aa72","bottomUpCheckpointHashAtEpoch(uint256)":"4b0694e2","bottomUpMsgBatchPeriod()":"69e737fd","consensus()":"8ef3f761","crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"3da33241","genesisBalances()":"903e6930","genesisCircSupply()":"948628a9","genesisValidators()":"d92e8f12","getActiveValidatorsNumber()":"c7cda762","getBootstrapNodes()":"9754b29e","getConfigurationNumbers()":"38a210b3","getParent()":"80f76021","getPower(address)":"5dd9147c","getRelayerReward(address)":"b2bd295e","getTotalCollateral()":"d6eb5910","getTotalConfirmedCollateral()":"332a5ac9","getTotalValidatorCollateral(address)":"1597bf7e","getTotalValidatorsNumber()":"52d182d1","getValidator(address)":"1904bb2e","hasSubmittedInLastBottomUpCheckpointHeight(address)":"2bc31eb3","hasSubmittedInLastBottomUpMsgBatchHeight(address)":"f75499dc","ipcGatewayAddr()":"cfca2824","isActiveValidator(address)":"40550a1c","isWaitingValidator(address)":"d081be03","killed()":"1f3a0e41","lastBottomUpCheckpointHeight()":"72d0a0e0","lastBottomUpMsgBatchHeight()":"28d5551d","majorityPercentage()":"599c7bd1","minActivationCollateral()":"9e33bd02","minCrossMsgFee()":"6704287c","minValidators()":"c5ab2241","permissionMode()":"f0cf6c96","powerScale()":"ad81e4d6","supplySource()":"80875df7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"activeValidatorsLimit\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bootstrapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpMsgBatchPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consensus\",\"outputs\":[{\"internalType\":\"enum ConsensusType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"name\":\"crossMsgsHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBalances\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisCircSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBootstrapNodes\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfigurationNumbers\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"getPower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"getRelayerReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalConfirmedCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"getTotalValidatorCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorAddress\",\"type\":\"address\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"federatedPower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalCollateral\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct ValidatorInfo\",\"name\":\"validator\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"hasSubmittedInLastBottomUpCheckpointHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"hasSubmittedInLastBottomUpMsgBatchHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipcGatewayAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isActiveValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isWaitingValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBottomUpCheckpointHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBottomUpMsgBatchHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minActivationCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minCrossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minValidators\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"permissionMode\",\"outputs\":[{\"internalType\":\"enum PermissionMode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"powerScale\",\"outputs\":[{\"internalType\":\"int8\",\"name\":\"\",\"type\":\"int8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplySource\",\"outputs\":[{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supply\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint256)\":{\"params\":{\"epoch\":\"- the epoch to check.\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct.\",\"exists\":\"- whether the checkpoint exists.\"}},\"bottomUpCheckpointHashAtEpoch(uint256)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"details\":\"This exists for testing purposes.\",\"params\":{\"messages\":\"An array of cross-chain messages to be hashed.\"},\"returns\":{\"_0\":\"The keccak256 hash of the encoded cross-chain messages.\"}},\"getPower(address)\":{\"params\":{\"validator\":\"The address of the checked validator\"}},\"getRelayerReward(address)\":{\"params\":{\"relayer\":\"The address of the relayer whose reward amount is to be queried.\"},\"returns\":{\"_0\":\"The total reward amount accrued by the specified relayer.\"}},\"getTotalValidatorCollateral(address)\":{\"params\":{\"validator\":\"The address of the validator for which collateral is queried.\"}},\"getValidator(address)\":{\"params\":{\"validatorAddress\":\"The address of the validator to query information for.\"}},\"hasSubmittedInLastBottomUpCheckpointHeight(address)\":{\"params\":{\"validator\":\"The address of the validator being checked for inclusion in the last checkpoint.\"}},\"hasSubmittedInLastBottomUpMsgBatchHeight(address)\":{\"params\":{\"validator\":\"The address of the validator being checked for participation.\"}},\"isWaitingValidator(address)\":{\"params\":{\"validator\":\"The address of the checked validator.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"activeValidatorsLimit()\":{\"notice\":\"Fetches the limit on the number of active validators.\"},\"bootstrapped()\":{\"notice\":\"Checks if the subnet has been bootstrapped.\"},\"bottomUpCheckPeriod()\":{\"notice\":\"Returns the period for bottom-up checkpointing operations.\"},\"bottomUpCheckpointAtEpoch(uint256)\":{\"notice\":\"returns the committed bottom-up checkpoint at specific epoch.\"},\"bottomUpCheckpointHashAtEpoch(uint256)\":{\"notice\":\"returns the historical committed bottom-up checkpoint hash.\"},\"bottomUpMsgBatchPeriod()\":{\"notice\":\"Returns the batch period for bottom-up messaging.\"},\"consensus()\":{\"notice\":\"Returns the consensus protocol type used in the subnet.\"},\"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"Computes a hash of an array of cross-chain messages.\"},\"genesisBalances()\":{\"notice\":\"Retrieves initial balances and corresponding addresses of the genesis block.\"},\"genesisValidators()\":{\"notice\":\"Returns the initial set of validators of the genesis block.\"},\"getActiveValidatorsNumber()\":{\"notice\":\"Returns the number of active validators.\"},\"getBootstrapNodes()\":{\"notice\":\"Returns the bootstrap nodes addresses.\"},\"getConfigurationNumbers()\":{\"notice\":\"Returns the next and start configuration numbers related to the changes.\"},\"getParent()\":{\"notice\":\"Returns the parent subnet id.\"},\"getPower(address)\":{\"notice\":\"Checks if the validator address is in an active state.\"},\"getRelayerReward(address)\":{\"notice\":\"Retrieves the total reward amount allocated to a specific relayer.\"},\"getTotalCollateral()\":{\"notice\":\"Returns the total collateral held by all validators.\"},\"getTotalConfirmedCollateral()\":{\"notice\":\"Returns the total amount of confirmed collateral across all validators.\"},\"getTotalValidatorCollateral(address)\":{\"notice\":\"Returns the total collateral amount for a specific validator.\"},\"getTotalValidatorsNumber()\":{\"notice\":\"Returns the total number of validators (active and waiting).\"},\"getValidator(address)\":{\"notice\":\"Returns detailed information about a specific validator.\"},\"hasSubmittedInLastBottomUpCheckpointHeight(address)\":{\"notice\":\"Checks whether a validator has submitted the most recent bottom-up checkpoint message.\"},\"hasSubmittedInLastBottomUpMsgBatchHeight(address)\":{\"notice\":\"Determines if a validator has submitted the most recent bottom-up message batch.\"},\"ipcGatewayAddr()\":{\"notice\":\"Returns the gateway address.\"},\"isActiveValidator(address)\":{\"notice\":\"Checks if the validator address is an active validator\"},\"isWaitingValidator(address)\":{\"notice\":\"Checks if the validator is in a waiting state.\"},\"killed()\":{\"notice\":\"Checks if the subnet has been terminated or \\\"killed\\\".\"},\"lastBottomUpCheckpointHeight()\":{\"notice\":\"Returns the block height of the last bottom-up checkpoint.\"},\"lastBottomUpMsgBatchHeight()\":{\"notice\":\"Returns the block height of the last bottom-up message batch.\"},\"majorityPercentage()\":{\"notice\":\"Returns the majority percentage required for consensus.\"},\"minActivationCollateral()\":{\"notice\":\"Returns the minimum collateral required for subnet activation.\"},\"minCrossMsgFee()\":{\"notice\":\"Returns the minimum fee for cross-messaging.\"},\"minValidators()\":{\"notice\":\"Returns the minimum validators number needed to activate the subnet.\"},\"permissionMode()\":{\"notice\":\"Returns the permission mode.\"},\"powerScale()\":{\"notice\":\"Returns the power scale in number of decimals from whole FIL.\"},\"supplySource()\":{\"notice\":\"Returns the supply strategy for the subnet.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorGetterFacet.sol\":\"SubnetActorGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"activeValidatorsLimit","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bootstrapped","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpCheckPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpointAtEpoch","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpointHashAtEpoch","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpMsgBatchPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"consensus","outputs":[{"internalType":"enum ConsensusType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"messages","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"crossMsgsHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBalances","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisCircSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisValidators","outputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActiveValidatorsNumber","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBootstrapNodes","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getConfigurationNumbers","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getParent","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"getPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"relayer","type":"address"}],"stateMutability":"view","type":"function","name":"getRelayerReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalConfirmedCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalValidatorCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalValidatorsNumber","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"validatorAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getValidator","outputs":[{"internalType":"struct ValidatorInfo","name":"validator","type":"tuple","components":[{"internalType":"uint256","name":"federatedPower","type":"uint256"},{"internalType":"uint256","name":"confirmedCollateral","type":"uint256"},{"internalType":"uint256","name":"totalCollateral","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"hasSubmittedInLastBottomUpCheckpointHeight","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"hasSubmittedInLastBottomUpMsgBatchHeight","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ipcGatewayAddr","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"isActiveValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"isWaitingValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBottomUpCheckpointHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBottomUpMsgBatchHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"majorityPercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minActivationCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minCrossMsgFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minValidators","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"permissionMode","outputs":[{"internalType":"enum PermissionMode","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"powerScale","outputs":[{"internalType":"int8","name":"","type":"int8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"supplySource","outputs":[{"internalType":"struct SupplySource","name":"supply","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"devdoc":{"kind":"dev","methods":{"bottomUpCheckpointAtEpoch(uint256)":{"params":{"epoch":"- the epoch to check."},"returns":{"checkpoint":"- the checkpoint struct.","exists":"- whether the checkpoint exists."}},"bottomUpCheckpointHashAtEpoch(uint256)":{"params":{"epoch":"- the epoch to check"},"returns":{"_0":"exists - whether the checkpoint exists","_1":"hash - the hash of the checkpoint"}},"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"details":"This exists for testing purposes.","params":{"messages":"An array of cross-chain messages to be hashed."},"returns":{"_0":"The keccak256 hash of the encoded cross-chain messages."}},"getPower(address)":{"params":{"validator":"The address of the checked validator"}},"getRelayerReward(address)":{"params":{"relayer":"The address of the relayer whose reward amount is to be queried."},"returns":{"_0":"The total reward amount accrued by the specified relayer."}},"getTotalValidatorCollateral(address)":{"params":{"validator":"The address of the validator for which collateral is queried."}},"getValidator(address)":{"params":{"validatorAddress":"The address of the validator to query information for."}},"hasSubmittedInLastBottomUpCheckpointHeight(address)":{"params":{"validator":"The address of the validator being checked for inclusion in the last checkpoint."}},"hasSubmittedInLastBottomUpMsgBatchHeight(address)":{"params":{"validator":"The address of the validator being checked for participation."}},"isWaitingValidator(address)":{"params":{"validator":"The address of the checked validator."}}},"version":1},"userdoc":{"kind":"user","methods":{"activeValidatorsLimit()":{"notice":"Fetches the limit on the number of active validators."},"bootstrapped()":{"notice":"Checks if the subnet has been bootstrapped."},"bottomUpCheckPeriod()":{"notice":"Returns the period for bottom-up checkpointing operations."},"bottomUpCheckpointAtEpoch(uint256)":{"notice":"returns the committed bottom-up checkpoint at specific epoch."},"bottomUpCheckpointHashAtEpoch(uint256)":{"notice":"returns the historical committed bottom-up checkpoint hash."},"bottomUpMsgBatchPeriod()":{"notice":"Returns the batch period for bottom-up messaging."},"consensus()":{"notice":"Returns the consensus protocol type used in the subnet."},"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"Computes a hash of an array of cross-chain messages."},"genesisBalances()":{"notice":"Retrieves initial balances and corresponding addresses of the genesis block."},"genesisValidators()":{"notice":"Returns the initial set of validators of the genesis block."},"getActiveValidatorsNumber()":{"notice":"Returns the number of active validators."},"getBootstrapNodes()":{"notice":"Returns the bootstrap nodes addresses."},"getConfigurationNumbers()":{"notice":"Returns the next and start configuration numbers related to the changes."},"getParent()":{"notice":"Returns the parent subnet id."},"getPower(address)":{"notice":"Checks if the validator address is in an active state."},"getRelayerReward(address)":{"notice":"Retrieves the total reward amount allocated to a specific relayer."},"getTotalCollateral()":{"notice":"Returns the total collateral held by all validators."},"getTotalConfirmedCollateral()":{"notice":"Returns the total amount of confirmed collateral across all validators."},"getTotalValidatorCollateral(address)":{"notice":"Returns the total collateral amount for a specific validator."},"getTotalValidatorsNumber()":{"notice":"Returns the total number of validators (active and waiting)."},"getValidator(address)":{"notice":"Returns detailed information about a specific validator."},"hasSubmittedInLastBottomUpCheckpointHeight(address)":{"notice":"Checks whether a validator has submitted the most recent bottom-up checkpoint message."},"hasSubmittedInLastBottomUpMsgBatchHeight(address)":{"notice":"Determines if a validator has submitted the most recent bottom-up message batch."},"ipcGatewayAddr()":{"notice":"Returns the gateway address."},"isActiveValidator(address)":{"notice":"Checks if the validator address is an active validator"},"isWaitingValidator(address)":{"notice":"Checks if the validator is in a waiting state."},"killed()":{"notice":"Checks if the subnet has been terminated or \"killed\"."},"lastBottomUpCheckpointHeight()":{"notice":"Returns the block height of the last bottom-up checkpoint."},"lastBottomUpMsgBatchHeight()":{"notice":"Returns the block height of the last bottom-up message batch."},"majorityPercentage()":{"notice":"Returns the majority percentage required for consensus."},"minActivationCollateral()":{"notice":"Returns the minimum collateral required for subnet activation."},"minCrossMsgFee()":{"notice":"Returns the minimum fee for cross-messaging."},"minValidators()":{"notice":"Returns the minimum validators number needed to activate the subnet."},"permissionMode()":{"notice":"Returns the permission mode."},"powerScale()":{"notice":"Returns the power scale in number of decimals from whole FIL."},"supplySource()":{"notice":"Returns the supply strategy for the subnet."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorGetterFacet.sol":"SubnetActorGetterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","id":51236,"exportedSymbols":{"Address":[32838],"BottomUpCheckpoint":[49885],"ConsensusType":[37359],"CrossMsg":[49927],"EnumerableSet":[35815],"LibStaking":[46129],"PermissionMode":[50118],"SubnetActorGetterFacet":[51235],"SubnetActorStorage":[47234],"SubnetID":[50030],"SubnetIDHelper":[48025],"SupplySource":[50179],"Validator":[50164],"ValidatorInfo":[50114]},"nodeType":"SourceUnit","src":"46:10661:85","nodes":[{"id":50579,"nodeType":"PragmaDirective","src":"46:23:85","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50581,"nodeType":"ImportDirective","src":"71:57:85","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":51236,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":50580,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"79:13:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50584,"nodeType":"ImportDirective","src":"129:69:85","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":51236,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":50582,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"137:18:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50583,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"157:8:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50587,"nodeType":"ImportDirective","src":"199:61:85","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":51236,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":50585,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"207:8:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50586,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"217:12:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50592,"nodeType":"ImportDirective","src":"261:89:85","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":51236,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":50588,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"269:8:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50589,"name":"ValidatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50114,"src":"279:13:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50590,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"294:9:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50591,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"305:14:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50594,"nodeType":"ImportDirective","src":"351:68:85","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":51236,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":50593,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47234,"src":"359:18:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50596,"nodeType":"ImportDirective","src":"420:57:85","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":51236,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":50595,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"428:14:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50598,"nodeType":"ImportDirective","src":"478:65:85","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":51236,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":50597,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"486:7:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50600,"nodeType":"ImportDirective","src":"544:85:85","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":51236,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":50599,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"552:13:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50602,"nodeType":"ImportDirective","src":"630:49:85","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":51236,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":50601,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"638:10:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51235,"nodeType":"ContractDefinition","src":"681:10025:85","nodes":[{"id":50606,"nodeType":"UsingForDirective","src":"719:49:85","nodes":[],"global":false,"libraryName":{"id":50603,"name":"EnumerableSet","nameLocations":["725:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"725:13:85"},"typeName":{"id":50605,"nodeType":"UserDefinedTypeName","pathNode":{"id":50604,"name":"EnumerableSet.AddressSet","nameLocations":["743:13:85","757:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"743:24:85"},"referencedDeclaration":35528,"src":"743:24:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":50610,"nodeType":"UsingForDirective","src":"773:34:85","nodes":[],"global":false,"libraryName":{"id":50607,"name":"SubnetIDHelper","nameLocations":["779:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"779:14:85"},"typeName":{"id":50609,"nodeType":"UserDefinedTypeName","pathNode":{"id":50608,"name":"SubnetID","nameLocations":["798:8:85"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"798:8:85"},"referencedDeclaration":50030,"src":"798:8:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":50613,"nodeType":"UsingForDirective","src":"812:34:85","nodes":[],"global":false,"libraryName":{"id":50611,"name":"Address","nameLocations":["818:7:85"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"818:7:85"},"typeName":{"id":50612,"name":"address","nodeType":"ElementaryTypeName","src":"830:15:85","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":50616,"nodeType":"VariableDeclaration","src":"905:29:85","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"933:1:85","scope":51235,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":50615,"nodeType":"UserDefinedTypeName","pathNode":{"id":50614,"name":"SubnetActorStorage","nameLocations":["905:18:85"],"nodeType":"IdentifierPath","referencedDeclaration":47234,"src":"905:18:85"},"referencedDeclaration":47234,"src":"905:18:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":50627,"nodeType":"FunctionDefinition","src":"987:95:85","nodes":[],"body":{"id":50626,"nodeType":"Block","src":"1048:34:85","nodes":[],"statements":[{"expression":{"expression":{"id":50623,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"1065:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1067:8:85","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":47191,"src":"1065:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"functionReturnParameters":50622,"id":50625,"nodeType":"Return","src":"1058:17:85"}]},"documentation":{"id":50617,"nodeType":"StructuredDocumentation","src":"941:41:85","text":"@notice Returns the parent subnet id."},"functionSelector":"80f76021","implemented":true,"kind":"function","modifiers":[],"name":"getParent","nameLocation":"996:9:85","parameters":{"id":50618,"nodeType":"ParameterList","parameters":[],"src":"1005:2:85"},"returnParameters":{"id":50622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50627,"src":"1031:15:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":50620,"nodeType":"UserDefinedTypeName","pathNode":{"id":50619,"name":"SubnetID","nameLocations":["1031:8:85"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1031:8:85"},"referencedDeclaration":50030,"src":"1031:8:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1030:17:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50639,"nodeType":"FunctionDefinition","src":"1133:118:85","nodes":[],"body":{"id":50638,"nodeType":"Block","src":"1198:53:85","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":50634,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"1215:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1217:12:85","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"1215:14:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":50636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1230:14:85","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"1215:29:85","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"functionReturnParameters":50633,"id":50637,"nodeType":"Return","src":"1208:36:85"}]},"documentation":{"id":50628,"nodeType":"StructuredDocumentation","src":"1088:40:85","text":"@notice Returns the permission mode."},"functionSelector":"f0cf6c96","implemented":true,"kind":"function","modifiers":[],"name":"permissionMode","nameLocation":"1142:14:85","parameters":{"id":50629,"nodeType":"ParameterList","parameters":[],"src":"1156:2:85"},"returnParameters":{"id":50633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50639,"src":"1182:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":50631,"nodeType":"UserDefinedTypeName","pathNode":{"id":50630,"name":"PermissionMode","nameLocations":["1182:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"1182:14:85"},"referencedDeclaration":50118,"src":"1182:14:85","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"}],"src":"1181:16:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50649,"nodeType":"FunctionDefinition","src":"1302:98:85","nodes":[],"body":{"id":50648,"nodeType":"Block","src":"1360:40:85","nodes":[],"statements":[{"expression":{"expression":{"id":50645,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"1377:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1379:14:85","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"1377:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":50644,"id":50647,"nodeType":"Return","src":"1370:23:85"}]},"documentation":{"id":50640,"nodeType":"StructuredDocumentation","src":"1257:40:85","text":"@notice Returns the gateway address."},"functionSelector":"cfca2824","implemented":true,"kind":"function","modifiers":[],"name":"ipcGatewayAddr","nameLocation":"1311:14:85","parameters":{"id":50641,"nodeType":"ParameterList","parameters":[],"src":"1325:2:85"},"returnParameters":{"id":50644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50649,"src":"1351:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50642,"name":"address","nodeType":"ElementaryTypeName","src":"1351:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1350:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50659,"nodeType":"FunctionDefinition","src":"1491:95:85","nodes":[],"body":{"id":50658,"nodeType":"Block","src":"1547:39:85","nodes":[],"statements":[{"expression":{"expression":{"id":50655,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"1564:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1566:13:85","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47176,"src":"1564:15:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":50654,"id":50657,"nodeType":"Return","src":"1557:22:85"}]},"documentation":{"id":50650,"nodeType":"StructuredDocumentation","src":"1406:80:85","text":"@notice Returns the minimum validators number needed to activate the subnet."},"functionSelector":"c5ab2241","implemented":true,"kind":"function","modifiers":[],"name":"minValidators","nameLocation":"1500:13:85","parameters":{"id":50651,"nodeType":"ParameterList","parameters":[],"src":"1513:2:85"},"returnParameters":{"id":50654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50659,"src":"1539:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50652,"name":"uint64","nodeType":"ElementaryTypeName","src":"1539:6:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1538:8:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50669,"nodeType":"FunctionDefinition","src":"1664:104:85","nodes":[],"body":{"id":50668,"nodeType":"Block","src":"1724:44:85","nodes":[],"statements":[{"expression":{"expression":{"id":50665,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"1741:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1743:18:85","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":47184,"src":"1741:20:85","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":50664,"id":50667,"nodeType":"Return","src":"1734:27:85"}]},"documentation":{"id":50660,"nodeType":"StructuredDocumentation","src":"1592:67:85","text":"@notice Returns the majority percentage required for consensus."},"functionSelector":"599c7bd1","implemented":true,"kind":"function","modifiers":[],"name":"majorityPercentage","nameLocation":"1673:18:85","parameters":{"id":50661,"nodeType":"ParameterList","parameters":[],"src":"1691:2:85"},"returnParameters":{"id":50664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50669,"src":"1717:5:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":50662,"name":"uint8","nodeType":"ElementaryTypeName","src":"1717:5:85","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1716:7:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50680,"nodeType":"FunctionDefinition","src":"1844:114:85","nodes":[],"body":{"id":50679,"nodeType":"Block","src":"1908:50:85","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":50675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"1925:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1927:12:85","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"1925:14:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":50677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1940:11:85","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50125,"src":"1925:26:85","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":50674,"id":50678,"nodeType":"Return","src":"1918:33:85"}]},"documentation":{"id":50670,"nodeType":"StructuredDocumentation","src":"1774:65:85","text":"@notice Fetches the limit on the number of active validators."},"functionSelector":"3354c3e1","implemented":true,"kind":"function","modifiers":[],"name":"activeValidatorsLimit","nameLocation":"1853:21:85","parameters":{"id":50671,"nodeType":"ParameterList","parameters":[],"src":"1874:2:85"},"returnParameters":{"id":50674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50680,"src":"1900:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50672,"name":"uint16","nodeType":"ElementaryTypeName","src":"1900:6:85","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1899:8:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50697,"nodeType":"FunctionDefinition","src":"2053:173:85","nodes":[],"body":{"id":50696,"nodeType":"Block","src":"2127:99:85","nodes":[],"statements":[{"expression":{"components":[{"expression":{"expression":{"id":50688,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"2145:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2147:9:85","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"2145:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":50690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2157:23:85","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"2145:35:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":50691,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"2182:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2184:9:85","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"2182:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":50693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2194:24:85","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"2182:36:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":50694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2144:75:85","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":50687,"id":50695,"nodeType":"Return","src":"2137:82:85"}]},"documentation":{"id":50681,"nodeType":"StructuredDocumentation","src":"1964:84:85","text":"@notice Returns the next and start configuration numbers related to the changes."},"functionSelector":"38a210b3","implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"2062:23:85","parameters":{"id":50682,"nodeType":"ParameterList","parameters":[],"src":"2085:2:85"},"returnParameters":{"id":50687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50697,"src":"2111:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50683,"name":"uint64","nodeType":"ElementaryTypeName","src":"2111:6:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50697,"src":"2119:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50685,"name":"uint64","nodeType":"ElementaryTypeName","src":"2119:6:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2110:16:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50709,"nodeType":"FunctionDefinition","src":"2308:115:85","nodes":[],"body":{"id":50708,"nodeType":"Block","src":"2380:43:85","nodes":[],"statements":[{"expression":{"expression":{"id":50705,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"2397:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2399:17:85","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47142,"src":"2397:19:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"functionReturnParameters":50704,"id":50707,"nodeType":"Return","src":"2390:26:85"}]},"documentation":{"id":50698,"nodeType":"StructuredDocumentation","src":"2232:71:85","text":"@notice Returns the initial set of validators of the genesis block."},"functionSelector":"d92e8f12","implemented":true,"kind":"function","modifiers":[],"name":"genesisValidators","nameLocation":"2317:17:85","parameters":{"id":50699,"nodeType":"ParameterList","parameters":[],"src":"2334:2:85"},"returnParameters":{"id":50704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50703,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50709,"src":"2360:18:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":50701,"nodeType":"UserDefinedTypeName","pathNode":{"id":50700,"name":"Validator","nameLocations":["2360:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"2360:9:85"},"referencedDeclaration":50164,"src":"2360:9:85","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":50702,"nodeType":"ArrayTypeName","src":"2360:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"src":"2359:20:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50718,"nodeType":"FunctionDefinition","src":"2498:104:85","nodes":[],"body":{"id":50717,"nodeType":"Block","src":"2559:43:85","nodes":[],"statements":[{"expression":{"expression":{"id":50714,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"2576:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2578:17:85","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47145,"src":"2576:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50713,"id":50716,"nodeType":"Return","src":"2569:26:85"}]},"functionSelector":"948628a9","implemented":true,"kind":"function","modifiers":[],"name":"genesisCircSupply","nameLocation":"2507:17:85","parameters":{"id":50710,"nodeType":"ParameterList","parameters":[],"src":"2524:2:85"},"returnParameters":{"id":50713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50718,"src":"2550:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50711,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2549:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50795,"nodeType":"FunctionDefinition","src":"2701:574:85","nodes":[],"body":{"id":50794,"nodeType":"Block","src":"2787:488:85","nodes":[],"statements":[{"assignments":[50729],"declarations":[{"constant":false,"id":50729,"mutability":"mutable","name":"numAddresses","nameLocation":"2805:12:85","nodeType":"VariableDeclaration","scope":50794,"src":"2797:20:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50728,"name":"uint256","nodeType":"ElementaryTypeName","src":"2797:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50733,"initialValue":{"expression":{"expression":{"id":50730,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"2820:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2822:18:85","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47154,"src":"2820:20:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":50732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2841:6:85","memberName":"length","nodeType":"MemberAccess","src":"2820:27:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2797:50:85"},{"assignments":[50738],"declarations":[{"constant":false,"id":50738,"mutability":"mutable","name":"addresses","nameLocation":"2874:9:85","nodeType":"VariableDeclaration","scope":50794,"src":"2857:26:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50736,"name":"address","nodeType":"ElementaryTypeName","src":"2857:7:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50737,"nodeType":"ArrayTypeName","src":"2857:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":50744,"initialValue":{"arguments":[{"id":50742,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50729,"src":"2900:12:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2886:13:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":50739,"name":"address","nodeType":"ElementaryTypeName","src":"2890:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50740,"nodeType":"ArrayTypeName","src":"2890:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":50743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2886:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2857:56:85"},{"assignments":[50749],"declarations":[{"constant":false,"id":50749,"mutability":"mutable","name":"balances","nameLocation":"2940:8:85","nodeType":"VariableDeclaration","scope":50794,"src":"2923:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":50747,"name":"uint256","nodeType":"ElementaryTypeName","src":"2923:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50748,"nodeType":"ArrayTypeName","src":"2923:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":50755,"initialValue":{"arguments":[{"id":50753,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50729,"src":"2965:12:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2951:13:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":50750,"name":"uint256","nodeType":"ElementaryTypeName","src":"2955:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50751,"nodeType":"ArrayTypeName","src":"2955:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":50754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2951:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2923:55:85"},{"body":{"id":50788,"nodeType":"Block","src":"3025:206:85","statements":[{"assignments":[50763],"declarations":[{"constant":false,"id":50763,"mutability":"mutable","name":"addr","nameLocation":"3047:4:85","nodeType":"VariableDeclaration","scope":50788,"src":"3039:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50762,"name":"address","nodeType":"ElementaryTypeName","src":"3039:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":50768,"initialValue":{"baseExpression":{"expression":{"id":50764,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"3054:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3056:18:85","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47154,"src":"3054:20:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":50767,"indexExpression":{"id":50766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50757,"src":"3075:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3054:23:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3039:38:85"},{"expression":{"id":50773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":50769,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50738,"src":"3091:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":50771,"indexExpression":{"id":50770,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50757,"src":"3101:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3091:12:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50772,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50763,"src":"3106:4:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3091:19:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50774,"nodeType":"ExpressionStatement","src":"3091:19:85"},{"expression":{"id":50782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":50775,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50749,"src":"3124:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":50777,"indexExpression":{"id":50776,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50757,"src":"3133:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3124:11:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":50778,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"3138:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3140:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47150,"src":"3138:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":50781,"indexExpression":{"id":50780,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50763,"src":"3155:4:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3138:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3124:36:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50783,"nodeType":"ExpressionStatement","src":"3124:36:85"},{"id":50787,"nodeType":"UncheckedBlock","src":"3175:46:85","statements":[{"expression":{"id":50785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3203:3:85","subExpression":{"id":50784,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50757,"src":"3205:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50786,"nodeType":"ExpressionStatement","src":"3203:3:85"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50759,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50757,"src":"3005:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":50760,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50729,"src":"3009:12:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3005:16:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50789,"initializationExpression":{"assignments":[50757],"declarations":[{"constant":false,"id":50757,"mutability":"mutable","name":"i","nameLocation":"3002:1:85","nodeType":"VariableDeclaration","scope":50789,"src":"2994:9:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50756,"name":"uint256","nodeType":"ElementaryTypeName","src":"2994:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50758,"nodeType":"VariableDeclarationStatement","src":"2994:9:85"},"nodeType":"ForStatement","src":"2989:242:85"},{"expression":{"components":[{"id":50790,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50738,"src":"3248:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":50791,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50749,"src":"3259:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"id":50792,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3247:21:85","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"functionReturnParameters":50727,"id":50793,"nodeType":"Return","src":"3240:28:85"}]},"documentation":{"id":50719,"nodeType":"StructuredDocumentation","src":"2608:88:85","text":"@notice Retrieves initial balances and corresponding addresses of the genesis block."},"functionSelector":"903e6930","implemented":true,"kind":"function","modifiers":[],"name":"genesisBalances","nameLocation":"2710:15:85","parameters":{"id":50720,"nodeType":"ParameterList","parameters":[],"src":"2725:2:85"},"returnParameters":{"id":50727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50795,"src":"2751:16:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50721,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50722,"nodeType":"ArrayTypeName","src":"2751:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":50726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50795,"src":"2769:16:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":50724,"name":"uint256","nodeType":"ElementaryTypeName","src":"2769:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50725,"nodeType":"ArrayTypeName","src":"2769:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2750:36:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50805,"nodeType":"FunctionDefinition","src":"3356:108:85","nodes":[],"body":{"id":50804,"nodeType":"Block","src":"3419:45:85","nodes":[],"statements":[{"expression":{"expression":{"id":50801,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"3436:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3438:19:85","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47173,"src":"3436:21:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50800,"id":50803,"nodeType":"Return","src":"3429:28:85"}]},"documentation":{"id":50796,"nodeType":"StructuredDocumentation","src":"3281:70:85","text":"@notice Returns the period for bottom-up checkpointing operations."},"functionSelector":"06c46853","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckPeriod","nameLocation":"3365:19:85","parameters":{"id":50797,"nodeType":"ParameterList","parameters":[],"src":"3384:2:85"},"returnParameters":{"id":50800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50805,"src":"3410:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50798,"name":"uint256","nodeType":"ElementaryTypeName","src":"3410:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3409:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50815,"nodeType":"FunctionDefinition","src":"3536:114:85","nodes":[],"body":{"id":50814,"nodeType":"Block","src":"3602:48:85","nodes":[],"statements":[{"expression":{"expression":{"id":50811,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"3619:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3621:22:85","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":47164,"src":"3619:24:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50810,"id":50813,"nodeType":"Return","src":"3612:31:85"}]},"documentation":{"id":50806,"nodeType":"StructuredDocumentation","src":"3470:61:85","text":"@notice Returns the batch period for bottom-up messaging."},"functionSelector":"69e737fd","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatchPeriod","nameLocation":"3545:22:85","parameters":{"id":50807,"nodeType":"ParameterList","parameters":[],"src":"3567:2:85"},"returnParameters":{"id":50810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50815,"src":"3593:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50808,"name":"uint256","nodeType":"ElementaryTypeName","src":"3593:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3592:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50825,"nodeType":"FunctionDefinition","src":"3731:126:85","nodes":[],"body":{"id":50824,"nodeType":"Block","src":"3803:54:85","nodes":[],"statements":[{"expression":{"expression":{"id":50821,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"3820:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3822:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47157,"src":"3820:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50820,"id":50823,"nodeType":"Return","src":"3813:37:85"}]},"documentation":{"id":50816,"nodeType":"StructuredDocumentation","src":"3656:70:85","text":"@notice Returns the block height of the last bottom-up checkpoint."},"functionSelector":"72d0a0e0","implemented":true,"kind":"function","modifiers":[],"name":"lastBottomUpCheckpointHeight","nameLocation":"3740:28:85","parameters":{"id":50817,"nodeType":"ParameterList","parameters":[],"src":"3768:2:85"},"returnParameters":{"id":50820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50819,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50825,"src":"3794:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50818,"name":"uint256","nodeType":"ElementaryTypeName","src":"3794:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3793:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50836,"nodeType":"FunctionDefinition","src":"3941:125:85","nodes":[],"body":{"id":50835,"nodeType":"Block","src":"4011:55:85","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":50831,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"4028:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4030:17:85","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47161,"src":"4028:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":50833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4048:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49900,"src":"4028:31:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50830,"id":50834,"nodeType":"Return","src":"4021:38:85"}]},"documentation":{"id":50826,"nodeType":"StructuredDocumentation","src":"3863:73:85","text":"@notice Returns the block height of the last bottom-up message batch."},"functionSelector":"28d5551d","implemented":true,"kind":"function","modifiers":[],"name":"lastBottomUpMsgBatchHeight","nameLocation":"3950:26:85","parameters":{"id":50827,"nodeType":"ParameterList","parameters":[],"src":"3976:2:85"},"returnParameters":{"id":50830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50836,"src":"4002:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50828,"name":"uint256","nodeType":"ElementaryTypeName","src":"4002:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4001:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50847,"nodeType":"FunctionDefinition","src":"4144:94:85","nodes":[],"body":{"id":50846,"nodeType":"Block","src":"4203:35:85","nodes":[],"statements":[{"expression":{"expression":{"id":50843,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"4220:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4222:9:85","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":47195,"src":"4220:11:85","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"functionReturnParameters":50842,"id":50845,"nodeType":"Return","src":"4213:18:85"}]},"documentation":{"id":50837,"nodeType":"StructuredDocumentation","src":"4072:67:85","text":"@notice Returns the consensus protocol type used in the subnet."},"functionSelector":"8ef3f761","implemented":true,"kind":"function","modifiers":[],"name":"consensus","nameLocation":"4153:9:85","parameters":{"id":50838,"nodeType":"ParameterList","parameters":[],"src":"4162:2:85"},"returnParameters":{"id":50842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50847,"src":"4188:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":50840,"nodeType":"UserDefinedTypeName","pathNode":{"id":50839,"name":"ConsensusType","nameLocations":["4188:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"4188:13:85"},"referencedDeclaration":37359,"src":"4188:13:85","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"}],"src":"4187:15:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50857,"nodeType":"FunctionDefinition","src":"4304:91:85","nodes":[],"body":{"id":50856,"nodeType":"Block","src":"4357:38:85","nodes":[],"statements":[{"expression":{"expression":{"id":50853,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"4374:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4376:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"4374:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50852,"id":50855,"nodeType":"Return","src":"4367:21:85"}]},"documentation":{"id":50848,"nodeType":"StructuredDocumentation","src":"4244:55:85","text":"@notice Checks if the subnet has been bootstrapped."},"functionSelector":"35142c8c","implemented":true,"kind":"function","modifiers":[],"name":"bootstrapped","nameLocation":"4313:12:85","parameters":{"id":50849,"nodeType":"ParameterList","parameters":[],"src":"4325:2:85"},"returnParameters":{"id":50852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50851,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50857,"src":"4351:4:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50850,"name":"bool","nodeType":"ElementaryTypeName","src":"4351:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4350:6:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50867,"nodeType":"FunctionDefinition","src":"4471:79:85","nodes":[],"body":{"id":50866,"nodeType":"Block","src":"4518:32:85","nodes":[],"statements":[{"expression":{"expression":{"id":50863,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"4535:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4537:6:85","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"4535:8:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50862,"id":50865,"nodeType":"Return","src":"4528:15:85"}]},"documentation":{"id":50858,"nodeType":"StructuredDocumentation","src":"4401:65:85","text":"@notice Checks if the subnet has been terminated or \"killed\"."},"functionSelector":"1f3a0e41","implemented":true,"kind":"function","modifiers":[],"name":"killed","nameLocation":"4480:6:85","parameters":{"id":50859,"nodeType":"ParameterList","parameters":[],"src":"4486:2:85"},"returnParameters":{"id":50862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50867,"src":"4512:4:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50860,"name":"bool","nodeType":"ElementaryTypeName","src":"4512:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4511:6:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50877,"nodeType":"FunctionDefinition","src":"4635:116:85","nodes":[],"body":{"id":50876,"nodeType":"Block","src":"4702:49:85","nodes":[],"statements":[{"expression":{"expression":{"id":50873,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"4719:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4721:23:85","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":47170,"src":"4719:25:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50872,"id":50875,"nodeType":"Return","src":"4712:32:85"}]},"documentation":{"id":50868,"nodeType":"StructuredDocumentation","src":"4556:74:85","text":"@notice Returns the minimum collateral required for subnet activation."},"functionSelector":"9e33bd02","implemented":true,"kind":"function","modifiers":[],"name":"minActivationCollateral","nameLocation":"4644:23:85","parameters":{"id":50869,"nodeType":"ParameterList","parameters":[],"src":"4667:2:85"},"returnParameters":{"id":50872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50871,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50877,"src":"4693:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50870,"name":"uint256","nodeType":"ElementaryTypeName","src":"4693:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4692:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50887,"nodeType":"FunctionDefinition","src":"4818:98:85","nodes":[],"body":{"id":50886,"nodeType":"Block","src":"4876:40:85","nodes":[],"statements":[{"expression":{"expression":{"id":50883,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"4893:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:14:85","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":47187,"src":"4893:16:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50882,"id":50885,"nodeType":"Return","src":"4886:23:85"}]},"documentation":{"id":50878,"nodeType":"StructuredDocumentation","src":"4757:56:85","text":"@notice Returns the minimum fee for cross-messaging."},"functionSelector":"6704287c","implemented":true,"kind":"function","modifiers":[],"name":"minCrossMsgFee","nameLocation":"4827:14:85","parameters":{"id":50879,"nodeType":"ParameterList","parameters":[],"src":"4841:2:85"},"returnParameters":{"id":50882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50887,"src":"4867:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50880,"name":"uint256","nodeType":"ElementaryTypeName","src":"4867:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4866:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50905,"nodeType":"FunctionDefinition","src":"5082:175:85","nodes":[],"body":{"id":50904,"nodeType":"Block","src":"5185:72:85","nodes":[],"statements":[{"expression":{"id":50902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50896,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50894,"src":"5195:9:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_memory_ptr","typeString":"struct ValidatorInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":50897,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"5207:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5209:12:85","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"5207:14:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":50899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5222:10:85","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"5207:25:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":50901,"indexExpression":{"id":50900,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50890,"src":"5233:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5207:43:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"src":"5195:55:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_memory_ptr","typeString":"struct ValidatorInfo memory"}},"id":50903,"nodeType":"ExpressionStatement","src":"5195:55:85"}]},"documentation":{"id":50888,"nodeType":"StructuredDocumentation","src":"4922:155:85","text":"@notice Returns detailed information about a specific validator.\n @param validatorAddress The address of the validator to query information for."},"functionSelector":"1904bb2e","implemented":true,"kind":"function","modifiers":[],"name":"getValidator","nameLocation":"5091:12:85","parameters":{"id":50891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50890,"mutability":"mutable","name":"validatorAddress","nameLocation":"5112:16:85","nodeType":"VariableDeclaration","scope":50905,"src":"5104:24:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50889,"name":"address","nodeType":"ElementaryTypeName","src":"5104:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5103:26:85"},"returnParameters":{"id":50895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50894,"mutability":"mutable","name":"validator","nameLocation":"5174:9:85","nodeType":"VariableDeclaration","scope":50905,"src":"5153:30:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_memory_ptr","typeString":"struct ValidatorInfo"},"typeName":{"id":50893,"nodeType":"UserDefinedTypeName","pathNode":{"id":50892,"name":"ValidatorInfo","nameLocations":["5153:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":50114,"src":"5153:13:85"},"referencedDeclaration":50114,"src":"5153:13:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage_ptr","typeString":"struct ValidatorInfo"}},"visibility":"internal"}],"src":"5152:32:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50916,"nodeType":"FunctionDefinition","src":"5340:119:85","nodes":[],"body":{"id":50915,"nodeType":"Block","src":"5407:52:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50911,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"5424:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":50912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5435:15:85","memberName":"totalValidators","nodeType":"MemberAccess","referencedDeclaration":45431,"src":"5424:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":50913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5424:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":50910,"id":50914,"nodeType":"Return","src":"5417:35:85"}]},"documentation":{"id":50906,"nodeType":"StructuredDocumentation","src":"5263:72:85","text":"@notice Returns the total number of validators (active and waiting)."},"functionSelector":"52d182d1","implemented":true,"kind":"function","modifiers":[],"name":"getTotalValidatorsNumber","nameLocation":"5349:24:85","parameters":{"id":50907,"nodeType":"ParameterList","parameters":[],"src":"5373:2:85"},"returnParameters":{"id":50910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50916,"src":"5399:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50908,"name":"uint16","nodeType":"ElementaryTypeName","src":"5399:6:85","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5398:8:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50927,"nodeType":"FunctionDefinition","src":"5522:126:85","nodes":[],"body":{"id":50926,"nodeType":"Block","src":"5590:58:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50922,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"5607:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":50923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5618:21:85","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":45405,"src":"5607:32:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":50924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5607:34:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":50921,"id":50925,"nodeType":"Return","src":"5600:41:85"}]},"documentation":{"id":50917,"nodeType":"StructuredDocumentation","src":"5465:52:85","text":"@notice Returns the number of active validators."},"functionSelector":"c7cda762","implemented":true,"kind":"function","modifiers":[],"name":"getActiveValidatorsNumber","nameLocation":"5531:25:85","parameters":{"id":50918,"nodeType":"ParameterList","parameters":[],"src":"5556:2:85"},"returnParameters":{"id":50921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50927,"src":"5582:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50919,"name":"uint16","nodeType":"ElementaryTypeName","src":"5582:6:85","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5581:8:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50938,"nodeType":"FunctionDefinition","src":"5742:135:85","nodes":[],"body":{"id":50937,"nodeType":"Block","src":"5813:64:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50933,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"5830:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":50934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5841:27:85","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":45449,"src":"5830:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":50935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5830:40:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50932,"id":50936,"nodeType":"Return","src":"5823:47:85"}]},"documentation":{"id":50928,"nodeType":"StructuredDocumentation","src":"5654:83:85","text":"@notice Returns the total amount of confirmed collateral across all validators."},"functionSelector":"332a5ac9","implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"5751:27:85","parameters":{"id":50929,"nodeType":"ParameterList","parameters":[],"src":"5778:2:85"},"returnParameters":{"id":50932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50938,"src":"5804:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50930,"name":"uint256","nodeType":"ElementaryTypeName","src":"5804:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5803:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50949,"nodeType":"FunctionDefinition","src":"5952:117:85","nodes":[],"body":{"id":50948,"nodeType":"Block","src":"6014:55:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50944,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"6031:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":50945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6042:18:85","memberName":"getTotalCollateral","nodeType":"MemberAccess","referencedDeclaration":45467,"src":"6031:29:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":50946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6031:31:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50943,"id":50947,"nodeType":"Return","src":"6024:38:85"}]},"documentation":{"id":50939,"nodeType":"StructuredDocumentation","src":"5883:64:85","text":"@notice Returns the total collateral held by all validators."},"functionSelector":"d6eb5910","implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"5961:18:85","parameters":{"id":50940,"nodeType":"ParameterList","parameters":[],"src":"5979:2:85"},"returnParameters":{"id":50943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50949,"src":"6005:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50941,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6004:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50963,"nodeType":"FunctionDefinition","src":"6240:158:85","nodes":[],"body":{"id":50962,"nodeType":"Block","src":"6328:70:85","nodes":[],"statements":[{"expression":{"arguments":[{"id":50959,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50952,"src":"6381:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50957,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"6345:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":50958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6356:24:85","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":45490,"src":"6345:35:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":50960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6345:46:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50956,"id":50961,"nodeType":"Return","src":"6338:53:85"}]},"documentation":{"id":50950,"nodeType":"StructuredDocumentation","src":"6075:160:85","text":"@notice Returns the total collateral amount for a specific validator.\n @param validator The address of the validator for which collateral is queried."},"functionSelector":"1597bf7e","implemented":true,"kind":"function","modifiers":[],"name":"getTotalValidatorCollateral","nameLocation":"6249:27:85","parameters":{"id":50953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50952,"mutability":"mutable","name":"validator","nameLocation":"6285:9:85","nodeType":"VariableDeclaration","scope":50963,"src":"6277:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50951,"name":"address","nodeType":"ElementaryTypeName","src":"6277:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6276:19:85"},"returnParameters":{"id":50956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50963,"src":"6319:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50954,"name":"uint256","nodeType":"ElementaryTypeName","src":"6319:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6318:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50977,"nodeType":"FunctionDefinition","src":"6537:123:85","nodes":[],"body":{"id":50976,"nodeType":"Block","src":"6606:54:85","nodes":[],"statements":[{"expression":{"arguments":[{"id":50973,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50966,"src":"6643:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50971,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"6623:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":50972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6634:8:85","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":45303,"src":"6623:19:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":50974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6623:30:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50970,"id":50975,"nodeType":"Return","src":"6616:37:85"}]},"documentation":{"id":50964,"nodeType":"StructuredDocumentation","src":"6404:128:85","text":"@notice Checks if the validator address is in an active state.\n @param validator The address of the checked validator"},"functionSelector":"5dd9147c","implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"6546:8:85","parameters":{"id":50967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50966,"mutability":"mutable","name":"validator","nameLocation":"6563:9:85","nodeType":"VariableDeclaration","scope":50977,"src":"6555:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50965,"name":"address","nodeType":"ElementaryTypeName","src":"6555:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6554:19:85"},"returnParameters":{"id":50970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50977,"src":"6597:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50968,"name":"uint256","nodeType":"ElementaryTypeName","src":"6597:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6596:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50991,"nodeType":"FunctionDefinition","src":"6737:138:85","nodes":[],"body":{"id":50990,"nodeType":"Block","src":"6812:63:85","nodes":[],"statements":[{"expression":{"arguments":[{"id":50987,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50980,"src":"6858:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50985,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"6829:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":50986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6840:17:85","memberName":"isActiveValidator","nodeType":"MemberAccess","referencedDeclaration":45326,"src":"6829:28:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":50988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6829:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50984,"id":50989,"nodeType":"Return","src":"6822:46:85"}]},"documentation":{"id":50978,"nodeType":"StructuredDocumentation","src":"6666:66:85","text":"@notice Checks if the validator address is an active validator"},"functionSelector":"40550a1c","implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"6746:17:85","parameters":{"id":50981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50980,"mutability":"mutable","name":"validator","nameLocation":"6772:9:85","nodeType":"VariableDeclaration","scope":50991,"src":"6764:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50979,"name":"address","nodeType":"ElementaryTypeName","src":"6764:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6763:19:85"},"returnParameters":{"id":50984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50983,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50991,"src":"6806:4:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50982,"name":"bool","nodeType":"ElementaryTypeName","src":"6806:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6805:6:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51005,"nodeType":"FunctionDefinition","src":"7007:140:85","nodes":[],"body":{"id":51004,"nodeType":"Block","src":"7083:64:85","nodes":[],"statements":[{"expression":{"arguments":[{"id":51001,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50994,"src":"7130:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50999,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"7100:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7111:18:85","memberName":"isWaitingValidator","nodeType":"MemberAccess","referencedDeclaration":45349,"src":"7100:29:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":51002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7100:40:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50998,"id":51003,"nodeType":"Return","src":"7093:47:85"}]},"documentation":{"id":50992,"nodeType":"StructuredDocumentation","src":"6881:121:85","text":"@notice Checks if the validator is in a waiting state.\n @param validator The address of the checked validator."},"functionSelector":"d081be03","implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"7016:18:85","parameters":{"id":50995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50994,"mutability":"mutable","name":"validator","nameLocation":"7043:9:85","nodeType":"VariableDeclaration","scope":51005,"src":"7035:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50993,"name":"address","nodeType":"ElementaryTypeName","src":"7035:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7034:19:85"},"returnParameters":{"id":50998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51005,"src":"7077:4:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50996,"name":"bool","nodeType":"ElementaryTypeName","src":"7077:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7076:6:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51029,"nodeType":"FunctionDefinition","src":"7337:238:85","nodes":[],"body":{"id":51028,"nodeType":"Block","src":"7435:140:85","nodes":[],"statements":[{"assignments":[51014],"declarations":[{"constant":false,"id":51014,"mutability":"mutable","name":"height","nameLocation":"7453:6:85","nodeType":"VariableDeclaration","scope":51028,"src":"7445:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51013,"name":"uint256","nodeType":"ElementaryTypeName","src":"7445:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51018,"initialValue":{"expression":{"expression":{"id":51015,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"7462:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7464:17:85","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47161,"src":"7462:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49903_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":51017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7482:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49900,"src":"7462:31:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7445:48:85"},{"expression":{"arguments":[{"id":51025,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51008,"src":"7558:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":51019,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"7510:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7512:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"7510:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":51021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7527:13:85","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":49920,"src":"7510:30:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":51023,"indexExpression":{"id":51022,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51014,"src":"7541:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7510:38:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7549:8:85","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35609,"src":"7510:47:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":51026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7510:58:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51012,"id":51027,"nodeType":"Return","src":"7503:65:85"}]},"documentation":{"id":51006,"nodeType":"StructuredDocumentation","src":"7153:179:85","text":"@notice Determines if a validator has submitted the most recent bottom-up message batch.\n @param validator The address of the validator being checked for participation."},"functionSelector":"f75499dc","implemented":true,"kind":"function","modifiers":[],"name":"hasSubmittedInLastBottomUpMsgBatchHeight","nameLocation":"7346:40:85","parameters":{"id":51009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51008,"mutability":"mutable","name":"validator","nameLocation":"7395:9:85","nodeType":"VariableDeclaration","scope":51029,"src":"7387:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51007,"name":"address","nodeType":"ElementaryTypeName","src":"7387:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7386:19:85"},"returnParameters":{"id":51012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51029,"src":"7429:4:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51010,"name":"bool","nodeType":"ElementaryTypeName","src":"7429:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7428:6:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51052,"nodeType":"FunctionDefinition","src":"7790:244:85","nodes":[],"body":{"id":51051,"nodeType":"Block","src":"7890:144:85","nodes":[],"statements":[{"assignments":[51038],"declarations":[{"constant":false,"id":51038,"mutability":"mutable","name":"height","nameLocation":"7908:6:85","nodeType":"VariableDeclaration","scope":51051,"src":"7900:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51037,"name":"uint256","nodeType":"ElementaryTypeName","src":"7900:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51041,"initialValue":{"expression":{"id":51039,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"7917:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7919:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47157,"src":"7917:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7900:47:85"},{"expression":{"arguments":[{"id":51048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51032,"src":"8017:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":51042,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"7964:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7966:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"7964:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":51044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7981:18:85","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49914,"src":"7964:35:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":51046,"indexExpression":{"id":51045,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"8000:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7964:43:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8008:8:85","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35609,"src":"7964:52:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":51049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7964:63:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51036,"id":51050,"nodeType":"Return","src":"7957:70:85"}]},"documentation":{"id":51030,"nodeType":"StructuredDocumentation","src":"7581:204:85","text":"@notice Checks whether a validator has submitted the most recent bottom-up checkpoint message.\n @param validator The address of the validator being checked for inclusion in the last checkpoint."},"functionSelector":"2bc31eb3","implemented":true,"kind":"function","modifiers":[],"name":"hasSubmittedInLastBottomUpCheckpointHeight","nameLocation":"7799:42:85","parameters":{"id":51033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51032,"mutability":"mutable","name":"validator","nameLocation":"7850:9:85","nodeType":"VariableDeclaration","scope":51052,"src":"7842:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51031,"name":"address","nodeType":"ElementaryTypeName","src":"7842:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7841:19:85"},"returnParameters":{"id":51036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51052,"src":"7884:4:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51034,"name":"bool","nodeType":"ElementaryTypeName","src":"7884:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7883:6:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51083,"nodeType":"FunctionDefinition","src":"8269:281:85","nodes":[],"body":{"id":51082,"nodeType":"Block","src":"8405:145:85","nodes":[],"statements":[{"expression":{"id":51068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51063,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51061,"src":"8415:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":51064,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"8428:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8430:20:85","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":47137,"src":"8428:22:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49885_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":51067,"indexExpression":{"id":51066,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51055,"src":"8451:5:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8428:29:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"8415:42:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":51069,"nodeType":"ExpressionStatement","src":"8415:42:85"},{"expression":{"id":51076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51070,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51058,"src":"8467:6:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8476:30:85","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":51071,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51061,"src":"8477:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":51072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8488:8:85","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49875,"src":"8477:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":51073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8497:7:85","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48024,"src":"8477:27:85","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":51074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8477:29:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8467:39:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51077,"nodeType":"ExpressionStatement","src":"8467:39:85"},{"expression":{"components":[{"id":51078,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51058,"src":"8524:6:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":51079,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51061,"src":"8532:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":51080,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8523:20:85","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint memory)"}},"functionReturnParameters":51062,"id":51081,"nodeType":"Return","src":"8516:27:85"}]},"documentation":{"id":51053,"nodeType":"StructuredDocumentation","src":"8040:224:85","text":"@notice returns the committed bottom-up checkpoint at specific epoch.\n @param epoch - the epoch to check.\n @return exists - whether the checkpoint exists.\n @return checkpoint - the checkpoint struct."},"functionSelector":"4b27aa72","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointAtEpoch","nameLocation":"8278:25:85","parameters":{"id":51056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51055,"mutability":"mutable","name":"epoch","nameLocation":"8321:5:85","nodeType":"VariableDeclaration","scope":51083,"src":"8313:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51054,"name":"uint256","nodeType":"ElementaryTypeName","src":"8313:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8303:29:85"},"returnParameters":{"id":51062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51058,"mutability":"mutable","name":"exists","nameLocation":"8359:6:85","nodeType":"VariableDeclaration","scope":51083,"src":"8354:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51057,"name":"bool","nodeType":"ElementaryTypeName","src":"8354:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":51061,"mutability":"mutable","name":"checkpoint","nameLocation":"8393:10:85","nodeType":"VariableDeclaration","scope":51083,"src":"8367:36:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":51060,"nodeType":"UserDefinedTypeName","pathNode":{"id":51059,"name":"BottomUpCheckpoint","nameLocations":["8367:18:85"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"8367:18:85"},"referencedDeclaration":49885,"src":"8367:18:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"8353:51:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":51112,"nodeType":"FunctionDefinition","src":"8779:255:85","nodes":[],"body":{"id":51111,"nodeType":"Block","src":"8871:163:85","nodes":[],"statements":[{"assignments":[51094,51097],"declarations":[{"constant":false,"id":51094,"mutability":"mutable","name":"exists","nameLocation":"8887:6:85","nodeType":"VariableDeclaration","scope":51111,"src":"8882:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51093,"name":"bool","nodeType":"ElementaryTypeName","src":"8882:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":51097,"mutability":"mutable","name":"checkpoint","nameLocation":"8921:10:85","nodeType":"VariableDeclaration","scope":51111,"src":"8895:36:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":51096,"nodeType":"UserDefinedTypeName","pathNode":{"id":51095,"name":"BottomUpCheckpoint","nameLocations":["8895:18:85"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"8895:18:85"},"referencedDeclaration":49885,"src":"8895:18:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":51101,"initialValue":{"arguments":[{"id":51099,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51086,"src":"8961:5:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51098,"name":"bottomUpCheckpointAtEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51083,"src":"8935:25:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpCheckpoint memory)"}},"id":51100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8935:32:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$49885_memory_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint memory)"}},"nodeType":"VariableDeclarationStatement","src":"8881:86:85"},{"expression":{"components":[{"id":51102,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51094,"src":"8985:6:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":51106,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51097,"src":"9014:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":51104,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9003:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":51105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9007:6:85","memberName":"encode","nodeType":"MemberAccess","src":"9003:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":51107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9003:22:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":51103,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8993:9:85","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":51108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8993:33:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":51109,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8984:43:85","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"functionReturnParameters":51092,"id":51110,"nodeType":"Return","src":"8977:50:85"}]},"documentation":{"id":51084,"nodeType":"StructuredDocumentation","src":"8556:218:85","text":"@notice returns the historical committed bottom-up checkpoint hash.\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return hash - the hash of the checkpoint"},"functionSelector":"4b0694e2","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointHashAtEpoch","nameLocation":"8788:29:85","parameters":{"id":51087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51086,"mutability":"mutable","name":"epoch","nameLocation":"8826:5:85","nodeType":"VariableDeclaration","scope":51112,"src":"8818:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51085,"name":"uint256","nodeType":"ElementaryTypeName","src":"8818:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8817:15:85"},"returnParameters":{"id":51092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51112,"src":"8856:4:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51088,"name":"bool","nodeType":"ElementaryTypeName","src":"8856:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":51091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51112,"src":"8862:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":51090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8862:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8855:15:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51122,"nodeType":"FunctionDefinition","src":"9118:87:85","nodes":[],"body":{"id":51121,"nodeType":"Block","src":"9169:36:85","nodes":[],"statements":[{"expression":{"expression":{"id":51118,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"9186:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9188:10:85","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":47216,"src":"9186:12:85","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"functionReturnParameters":51117,"id":51120,"nodeType":"Return","src":"9179:19:85"}]},"documentation":{"id":51113,"nodeType":"StructuredDocumentation","src":"9040:73:85","text":"@notice Returns the power scale in number of decimals from whole FIL."},"functionSelector":"ad81e4d6","implemented":true,"kind":"function","modifiers":[],"name":"powerScale","nameLocation":"9127:10:85","parameters":{"id":51114,"nodeType":"ParameterList","parameters":[],"src":"9137:2:85"},"returnParameters":{"id":51117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51122,"src":"9163:4:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":51115,"name":"int8","nodeType":"ElementaryTypeName","src":"9163:4:85","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"9162:6:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51190,"nodeType":"FunctionDefinition","src":"9266:471:85","nodes":[],"body":{"id":51189,"nodeType":"Block","src":"9335:402:85","nodes":[],"statements":[{"assignments":[51130],"declarations":[{"constant":false,"id":51130,"mutability":"mutable","name":"n","nameLocation":"9353:1:85","nodeType":"VariableDeclaration","scope":51189,"src":"9345:9:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51129,"name":"uint256","nodeType":"ElementaryTypeName","src":"9345:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51135,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":51131,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"9357:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9359:15:85","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47229,"src":"9357:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9375:6:85","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35624,"src":"9357:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":51134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9357:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9345:38:85"},{"assignments":[51140],"declarations":[{"constant":false,"id":51140,"mutability":"mutable","name":"nodes","nameLocation":"9409:5:85","nodeType":"VariableDeclaration","scope":51189,"src":"9393:21:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":51138,"name":"string","nodeType":"ElementaryTypeName","src":"9393:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":51139,"nodeType":"ArrayTypeName","src":"9393:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":51146,"initialValue":{"arguments":[{"id":51144,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51130,"src":"9430:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9417:12:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":51141,"name":"string","nodeType":"ElementaryTypeName","src":"9421:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":51142,"nodeType":"ArrayTypeName","src":"9421:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":51145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9417:15:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9393:39:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51147,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51130,"src":"9446:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9451:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9446:6:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51153,"nodeType":"IfStatement","src":"9442:49:85","trueBody":{"id":51152,"nodeType":"Block","src":"9454:37:85","statements":[{"expression":{"id":51150,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51140,"src":"9475:5:85","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":51128,"id":51151,"nodeType":"Return","src":"9468:12:85"}]}},{"assignments":[51158],"declarations":[{"constant":false,"id":51158,"mutability":"mutable","name":"owners","nameLocation":"9517:6:85","nodeType":"VariableDeclaration","scope":51189,"src":"9500:23:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51156,"name":"address","nodeType":"ElementaryTypeName","src":"9500:7:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51157,"nodeType":"ArrayTypeName","src":"9500:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":51163,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":51159,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"9526:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9528:15:85","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47229,"src":"9526:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9544:6:85","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"9526:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":51162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9526:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9500:52:85"},{"body":{"id":51185,"nodeType":"Block","src":"9587:122:85","statements":[{"expression":{"id":51179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51170,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51140,"src":"9601:5:85","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":51172,"indexExpression":{"id":51171,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51165,"src":"9607:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9601:8:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":51173,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"9612:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9614:14:85","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":47225,"src":"9612:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":51178,"indexExpression":{"baseExpression":{"id":51175,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"9629:6:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":51177,"indexExpression":{"id":51176,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51165,"src":"9636:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9629:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9612:27:85","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"src":"9601:38:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":51180,"nodeType":"ExpressionStatement","src":"9601:38:85"},{"id":51184,"nodeType":"UncheckedBlock","src":"9653:46:85","statements":[{"expression":{"id":51182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9681:3:85","subExpression":{"id":51181,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51165,"src":"9683:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51183,"nodeType":"ExpressionStatement","src":"9681:3:85"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51167,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51165,"src":"9578:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":51168,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51130,"src":"9582:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9578:5:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51186,"initializationExpression":{"assignments":[51165],"declarations":[{"constant":false,"id":51165,"mutability":"mutable","name":"i","nameLocation":"9575:1:85","nodeType":"VariableDeclaration","scope":51186,"src":"9567:9:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51164,"name":"uint256","nodeType":"ElementaryTypeName","src":"9567:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51166,"nodeType":"VariableDeclarationStatement","src":"9567:9:85"},"nodeType":"ForStatement","src":"9562:147:85"},{"expression":{"id":51187,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51140,"src":"9725:5:85","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":51128,"id":51188,"nodeType":"Return","src":"9718:12:85"}]},"documentation":{"id":51123,"nodeType":"StructuredDocumentation","src":"9211:50:85","text":"@notice Returns the bootstrap nodes addresses."},"functionSelector":"9754b29e","implemented":true,"kind":"function","modifiers":[],"name":"getBootstrapNodes","nameLocation":"9275:17:85","parameters":{"id":51124,"nodeType":"ParameterList","parameters":[],"src":"9292:2:85"},"returnParameters":{"id":51128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51127,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51190,"src":"9318:15:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":51125,"name":"string","nodeType":"ElementaryTypeName","src":"9318:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":51126,"nodeType":"ArrayTypeName","src":"9318:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"9317:17:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51208,"nodeType":"FunctionDefinition","src":"10002:140:85","nodes":[],"body":{"id":51207,"nodeType":"Block","src":"10087:55:85","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":51203,"name":"messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51195,"src":"10125:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":51201,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10114:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":51202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10118:6:85","memberName":"encode","nodeType":"MemberAccess","src":"10114:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":51204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10114:20:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":51200,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10104:9:85","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":51205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10104:31:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":51199,"id":51206,"nodeType":"Return","src":"10097:38:85"}]},"documentation":{"id":51191,"nodeType":"StructuredDocumentation","src":"9743:254:85","text":"@notice Computes a hash of an array of cross-chain messages.\n @dev This exists for testing purposes.\n @param messages An array of cross-chain messages to be hashed.\n @return The keccak256 hash of the encoded cross-chain messages."},"functionSelector":"3da33241","implemented":true,"kind":"function","modifiers":[],"name":"crossMsgsHash","nameLocation":"10011:13:85","parameters":{"id":51196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51195,"mutability":"mutable","name":"messages","nameLocation":"10045:8:85","nodeType":"VariableDeclaration","scope":51208,"src":"10025:28:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":51193,"nodeType":"UserDefinedTypeName","pathNode":{"id":51192,"name":"CrossMsg","nameLocations":["10025:8:85"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"10025:8:85"},"referencedDeclaration":49927,"src":"10025:8:85","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":51194,"nodeType":"ArrayTypeName","src":"10025:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"10024:30:85"},"returnParameters":{"id":51199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51208,"src":"10078:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":51197,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10078:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10077:9:85"},"scope":51235,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":51223,"nodeType":"FunctionDefinition","src":"10393:132:85","nodes":[],"body":{"id":51222,"nodeType":"Block","src":"10468:57:85","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":51216,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"10485:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10487:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"10485:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":51218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10502:7:85","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"10485:24:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51220,"indexExpression":{"id":51219,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51211,"src":"10510:7:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10485:33:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":51215,"id":51221,"nodeType":"Return","src":"10478:40:85"}]},"documentation":{"id":51209,"nodeType":"StructuredDocumentation","src":"10148:240:85","text":"@notice Retrieves the total reward amount allocated to a specific relayer.\n @param relayer The address of the relayer whose reward amount is to be queried.\n @return The total reward amount accrued by the specified relayer."},"functionSelector":"b2bd295e","implemented":true,"kind":"function","modifiers":[],"name":"getRelayerReward","nameLocation":"10402:16:85","parameters":{"id":51212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51211,"mutability":"mutable","name":"relayer","nameLocation":"10427:7:85","nodeType":"VariableDeclaration","scope":51223,"src":"10419:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51210,"name":"address","nodeType":"ElementaryTypeName","src":"10419:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10418:17:85"},"returnParameters":{"id":51215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51223,"src":"10459:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51213,"name":"uint256","nodeType":"ElementaryTypeName","src":"10459:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10458:9:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51234,"nodeType":"FunctionDefinition","src":"10591:113:85","nodes":[],"body":{"id":51233,"nodeType":"Block","src":"10666:38:85","nodes":[],"statements":[{"expression":{"expression":{"id":51230,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50616,"src":"10683:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10685:12:85","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":47233,"src":"10683:14:85","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage","typeString":"struct SupplySource storage ref"}},"functionReturnParameters":51229,"id":51232,"nodeType":"Return","src":"10676:21:85"}]},"documentation":{"id":51224,"nodeType":"StructuredDocumentation","src":"10531:55:85","text":"@notice Returns the supply strategy for the subnet."},"functionSelector":"80875df7","implemented":true,"kind":"function","modifiers":[],"name":"supplySource","nameLocation":"10600:12:85","parameters":{"id":51225,"nodeType":"ParameterList","parameters":[],"src":"10612:2:85"},"returnParameters":{"id":51229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51228,"mutability":"mutable","name":"supply","nameLocation":"10658:6:85","nodeType":"VariableDeclaration","scope":51234,"src":"10638:26:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":51227,"nodeType":"UserDefinedTypeName","pathNode":{"id":51226,"name":"SupplySource","nameLocations":["10638:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"10638:12:85"},"referencedDeclaration":50179,"src":"10638:12:85","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"10637:28:85"},"scope":51235,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51235],"name":"SubnetActorGetterFacet","nameLocation":"690:22:85","scope":51236,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":85} \ No newline at end of file diff --git a/.out/SubnetActorHandler.sol/SubnetActorHandler.json b/.out/SubnetActorHandler.sol/SubnetActorHandler.json index 239e6f9d8..211e939e0 100644 --- a/.out/SubnetActorHandler.sol/SubnetActorHandler.json +++ b/.out/SubnetActorHandler.sol/SubnetActorHandler.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_subnetActor","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getRandomValidator","inputs":[{"name":"id","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRandomValidatorFromSetOrZero","inputs":[{"name":"seed","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ghost_stakedSum","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_unstakedSum","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_validators_staked","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_validators_unstaked","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"join","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"joinedValidators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"joinedValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"leave","inputs":[{"name":"id","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608034610106576001600160401b0390601f6110eb38819003918201601f1916830191848311848410176100e45780849260209460405283398101031261010657516001600160a01b038116908190036101065760018060a01b03198181600f541617600f556010541617601055737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15610106576000809260446040518095819363c88a5e6d60e01b83523060048401526a6b31bffa03c1c535c0000060248401525af180156100fa576100d4575b604051610fdf908161010c8239f35b81116100e45760405238806100c5565b634e487b7160e01b600052604160045260246000fd5b6040513d6000823e3d90fd5b600080fdfe6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c9182630a52ee9614610547575081632cb5402514610521578163a0758127146104be578163a64efe5d14610498578163a7818a481461045e578163b00053cf1461043f578163b4545b9e146102e8578163bc5683e1146102c3578163bd0fa1b114610298578163c2da05121461025e578163dd752e55146100ef575063f2a2870b146100b65780610012565b346100eb5760203660031901126100eb576020906100da6100d5610563565b610771565b90516001600160a01b039091168152f35b5080fd5b905034610228578160031936011261022857610109610563565b918361011f610119602435610a68565b94610578565b9261012a8585610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d93843b1561022857835163ca669fa760e01b815283816024818360018060a01b038097169a8b898401525af180156102405790849161024a575b505080600f5416803b1561021a5783879184875180948193633a4b66f160e01b83525af180156102405790849161022c575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e57610206575b5050610201916101ed846015546108b7565b6015558452601360205283209182546108b7565b905580f35b61020f906105b3565b61021a5783386101db565b8380fd5b83513d84823e3d90fd5b8280fd5b610235906105b3565b6102285782386101ab565b85513d86823e3d90fd5b610253906105b3565b610228578238610179565b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526014845220549051908152f35b5050346100eb573660031901126102c0576102bd6102b4610563565b602435906108da565b80f35b80fd5b5050346100eb57816003193601126100eb576020906102e0610808565b519051908152f35b905034610228578160031936011261022857610302610563565b91610317610311602435610a68565b93610578565b91737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57825163ca669fa760e01b815286816024818360018060a01b03809716998a898401525af180156104315761041c575b5090818692600f5416803b1561021a5783809160248751809481936305c2fbcf60e31b83528c898401525af1801561024057908491610408575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e576103f4575b5050610201916103e0846016546108b7565b6016558452601460205283209182546108b7565b6103fd906105b3565b61021a5783386103ce565b610411906105b3565b61022857823861039e565b61042990969192966105b3565b949038610364565b84513d89823e3d90fd5b8580fd5b5050346100eb57816003193601126100eb576020906015549051908152f35b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526013845220549051908152f35b5050346100eb5760203660031901126100eb576020906100da6104b9610563565b610578565b5050346100eb57816003193601126100eb576104d8610808565b815192839260208080860192818752855180945286019401925b82811061050157505050500390f35b83516001600160a01b0316855286955093810193928101926001016104f2565b5050346100eb5760203660031901126100eb576020906100da610542610563565b610cd4565b8490346100eb57816003193601126100eb576020906016548152f35b6004359060ff8216820361057357565b600080fd5b60c860ff821610156105a45761058d90610771565b6001600160a01b0381161561059f5790565b503390565b6105ad90610642565b5061058d565b67ffffffffffffffff81116105c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176105c757604052565b67ffffffffffffffff81116105c757601f01601f191660200190565b90815181101561062c570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906080820182811067ffffffffffffffff8211176105c75760405260418252606036602084013781805160019081101561062c576001600160f81b03199260009060f81b8416811a60218401538251600019808201959091861161075d576106c56106af876105ff565b966106bd60405198896105dd565b8088526105ff565b602087019590601f190136873784805b6106f2575b505094519093206001600160a01b0316959350505050565b81518110156107585782610706828461061b565b5116848201908282116107445761072090871a918a61061b565b53838114610730578501856106d5565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b87526011600452602487fd5b6106da565b634e487b7160e01b83526011600452602483fd5b60115480156108015760405190819281835283602080940160116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6860005b868682106107ea5750505060ff92916107cc9103866105dd565b160691805183101561062c5760018060a01b039260051b0101511690565b8254845288945090920191600191820191016107b2565b5050600090565b60405190601154808352826020918282019060116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68936000905b82821061085d5750505061085b925003836105dd565b565b855484526001958601958895509381019390910190610845565b919082519283825260005b8481106108a3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610882565b919082018092116108c457565b634e487b7160e01b600052601160045260246000fd5b6000929160ff821615610a62576108f36108f991610a68565b91610642565b61090583839493610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57604091825163ca669fa760e01b815287816024818360018060a01b038098169a8b60048401525af18015610a5857610a43575b5090869181600f5416803b1561021a5761098f8491879387519485809481936330b858b160e11b8352602060048401526024830190610877565b03925af18015610a3957908391610a25575b5050600f5416803b156100eb578190600484518094819363c7ebdaef60e01b83525af18015610a1b57610a03575b506109f990610a0094956109e5846015546108b7565b6015558481526013602052209182546108b7565b9055610c52565b50565b610a0d86916105b3565b610a1757386109cf565b8480fd5b82513d88823e3d90fd5b610a2e906105b3565b6100eb5781386109a1565b84513d85823e3d90fd5b610a5090979192976105b3565b959038610955565b84513d8a823e3d90fd5b50509050565b610a7190610b04565b906040516040810181811067ffffffffffffffff8211176105c7576000918291604052600c81526b109bdd5b990814995cdd5b1d60a21b6020820152604051610aeb81610ad76020820194632d839cb360e21b8652604060248401526064830190610877565b88604483015203601f1981018352826105dd565b51906a636f6e736f6c652e6c6f675afa50610a00610beb565b6801a055690d9db8000090600090818382118015610bd157600383111580610bd9575b610bd15760031983101580610bbe575b610bae5715610ba757506801a055690d9db7ffff198101908111610b93576801a055690d9db800019006918215610b8d57506000198201918211610b79575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b5050198203918211610b79575090565b5082196801a055690d9db8000111610b37565b505091505090565b50826801a055690d9db8000111610b27565b3d15610c16573d90610bfc826105ff565b91610c0a60405193846105dd565b82523d6000602084013e565b606090565b60115481101561062c5760116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680190600090565b600081815260126020526040812054610ccf5760115468010000000000000000811015610cbb579082610ca7610c9084600160409601601155610c1b565b819391549060031b91821b91600019901b19161790565b905560115492815260126020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b610cdd90610771565b600091906001600160a01b038082168015610e7f57906024918160105416916020604093845195868092630acbdfbf60e11b82528660048301525afa938415610e0d578794610e48575b5086737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156100eb578190602486518094819363ca669fa760e01b83528860048401525af18015610a5857610e35575b50808791600f5416803b1561022857828091600487518094819363d66d9e1960e01b83525af18015610e2b57908391610e17575b5050600f5416803b156100eb578190600485518094819363c7ebdaef60e01b83525af18015610e0d57610df9575b5090610df393949582610de18594610e86565b508152601460205220556016546108b7565b60165590565b610e0387916105b3565b61043b5738610dce565b83513d89823e3d90fd5b610e20906105b3565b6100eb578138610da0565b85513d85823e3d90fd5b610e41909791976105b3565b9538610d6c565b9093506020813d8211610e77575b81610e63602093836105dd565b81010312610e7357519238610d27565b8680fd5b3d9150610e56565b5090925050565b6000818152601260205260408120549091908015610f5757600019908082018181116107305760115490838201918211610f4357808203610f0f575b5050506011548015610efb57810190610eda82610c1b565b909182549160031b1b19169055601155815260126020526040812055600190565b634e487b7160e01b84526031600452602484fd5b610f2d610f1e610c9093610c1b565b90549060031b1c928392610c1b565b9055845260126020526040842055388080610ec2565b634e487b7160e01b86526011600452602486fd5b505090565b600080809381935af1610f6d610beb565b5015610f7557565b60405162461bcd60e51b815260206004820152600c60248201526b1c185e4a0a4819985a5b195960a21b6044820152606490fdfea2646970667358221220cf543ee17777eec8d846eb1b0de72976a8754252c284525b4f853d85e8276b6c64736f6c63430008130033","sourceMap":"625:4139:97:-:0;;;;-1:-1:-1;;;;;625:4139:97;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;625:4139:97;;;;;;;;;;;;;;;;1372:65;625:4139;;;1372:65;625:4139;1447:59;625:4139;;;1447:59;625:4139;;20219:17:6;;;;;;-1:-1:-1;625:4139:97;;17996:59:6;625:4139:97;;17996:59:6;;;;;;;20219:17;;1530:4:97;20219:17:6;;;17996:59;605:17:97;17996:59:6;;;;20219:17;;;;;;;;-1:-1:-1;625:4139:97;;;;;;;;;20219:17:6;625:4139:97;;;;;;20219:17:6;;;;625:4139:97;;;;-1:-1:-1;625:4139:97;;20219:17:6;625:4139:97;17996:59:6;-1:-1:-1;625:4139:97;20219:17:6;625:4139:97;;17996:59:6;-1:-1:-1;17996:59:6;;;;;20219:17;-1:-1:-1;625:4139:97;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c9182630a52ee9614610547575081632cb5402514610521578163a0758127146104be578163a64efe5d14610498578163a7818a481461045e578163b00053cf1461043f578163b4545b9e146102e8578163bc5683e1146102c3578163bd0fa1b114610298578163c2da05121461025e578163dd752e55146100ef575063f2a2870b146100b65780610012565b346100eb5760203660031901126100eb576020906100da6100d5610563565b610771565b90516001600160a01b039091168152f35b5080fd5b905034610228578160031936011261022857610109610563565b918361011f610119602435610a68565b94610578565b9261012a8585610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d93843b1561022857835163ca669fa760e01b815283816024818360018060a01b038097169a8b898401525af180156102405790849161024a575b505080600f5416803b1561021a5783879184875180948193633a4b66f160e01b83525af180156102405790849161022c575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e57610206575b5050610201916101ed846015546108b7565b6015558452601360205283209182546108b7565b905580f35b61020f906105b3565b61021a5783386101db565b8380fd5b83513d84823e3d90fd5b8280fd5b610235906105b3565b6102285782386101ab565b85513d86823e3d90fd5b610253906105b3565b610228578238610179565b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526014845220549051908152f35b5050346100eb573660031901126102c0576102bd6102b4610563565b602435906108da565b80f35b80fd5b5050346100eb57816003193601126100eb576020906102e0610808565b519051908152f35b905034610228578160031936011261022857610302610563565b91610317610311602435610a68565b93610578565b91737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57825163ca669fa760e01b815286816024818360018060a01b03809716998a898401525af180156104315761041c575b5090818692600f5416803b1561021a5783809160248751809481936305c2fbcf60e31b83528c898401525af1801561024057908491610408575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e576103f4575b5050610201916103e0846016546108b7565b6016558452601460205283209182546108b7565b6103fd906105b3565b61021a5783386103ce565b610411906105b3565b61022857823861039e565b61042990969192966105b3565b949038610364565b84513d89823e3d90fd5b8580fd5b5050346100eb57816003193601126100eb576020906015549051908152f35b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526013845220549051908152f35b5050346100eb5760203660031901126100eb576020906100da6104b9610563565b610578565b5050346100eb57816003193601126100eb576104d8610808565b815192839260208080860192818752855180945286019401925b82811061050157505050500390f35b83516001600160a01b0316855286955093810193928101926001016104f2565b5050346100eb5760203660031901126100eb576020906100da610542610563565b610cd4565b8490346100eb57816003193601126100eb576020906016548152f35b6004359060ff8216820361057357565b600080fd5b60c860ff821610156105a45761058d90610771565b6001600160a01b0381161561059f5790565b503390565b6105ad90610642565b5061058d565b67ffffffffffffffff81116105c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176105c757604052565b67ffffffffffffffff81116105c757601f01601f191660200190565b90815181101561062c570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906080820182811067ffffffffffffffff8211176105c75760405260418252606036602084013781805160019081101561062c576001600160f81b03199260009060f81b8416811a60218401538251600019808201959091861161075d576106c56106af876105ff565b966106bd60405198896105dd565b8088526105ff565b602087019590601f190136873784805b6106f2575b505094519093206001600160a01b0316959350505050565b81518110156107585782610706828461061b565b5116848201908282116107445761072090871a918a61061b565b53838114610730578501856106d5565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b87526011600452602487fd5b6106da565b634e487b7160e01b83526011600452602483fd5b60115480156108015760405190819281835283602080940160116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6860005b868682106107ea5750505060ff92916107cc9103866105dd565b160691805183101561062c5760018060a01b039260051b0101511690565b8254845288945090920191600191820191016107b2565b5050600090565b60405190601154808352826020918282019060116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68936000905b82821061085d5750505061085b925003836105dd565b565b855484526001958601958895509381019390910190610845565b919082519283825260005b8481106108a3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610882565b919082018092116108c457565b634e487b7160e01b600052601160045260246000fd5b6000929160ff821615610a62576108f36108f991610a68565b91610642565b61090583839493610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57604091825163ca669fa760e01b815287816024818360018060a01b038098169a8b60048401525af18015610a5857610a43575b5090869181600f5416803b1561021a5761098f8491879387519485809481936330b858b160e11b8352602060048401526024830190610877565b03925af18015610a3957908391610a25575b5050600f5416803b156100eb578190600484518094819363c7ebdaef60e01b83525af18015610a1b57610a03575b506109f990610a0094956109e5846015546108b7565b6015558481526013602052209182546108b7565b9055610c52565b50565b610a0d86916105b3565b610a1757386109cf565b8480fd5b82513d88823e3d90fd5b610a2e906105b3565b6100eb5781386109a1565b84513d85823e3d90fd5b610a5090979192976105b3565b959038610955565b84513d8a823e3d90fd5b50509050565b610a7190610b04565b906040516040810181811067ffffffffffffffff8211176105c7576000918291604052600c81526b109bdd5b990814995cdd5b1d60a21b6020820152604051610aeb81610ad76020820194632d839cb360e21b8652604060248401526064830190610877565b88604483015203601f1981018352826105dd565b51906a636f6e736f6c652e6c6f675afa50610a00610beb565b6801a055690d9db8000090600090818382118015610bd157600383111580610bd9575b610bd15760031983101580610bbe575b610bae5715610ba757506801a055690d9db7ffff198101908111610b93576801a055690d9db800019006918215610b8d57506000198201918211610b79575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b5050198203918211610b79575090565b5082196801a055690d9db8000111610b37565b505091505090565b50826801a055690d9db8000111610b27565b3d15610c16573d90610bfc826105ff565b91610c0a60405193846105dd565b82523d6000602084013e565b606090565b60115481101561062c5760116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680190600090565b600081815260126020526040812054610ccf5760115468010000000000000000811015610cbb579082610ca7610c9084600160409601601155610c1b565b819391549060031b91821b91600019901b19161790565b905560115492815260126020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b610cdd90610771565b600091906001600160a01b038082168015610e7f57906024918160105416916020604093845195868092630acbdfbf60e11b82528660048301525afa938415610e0d578794610e48575b5086737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156100eb578190602486518094819363ca669fa760e01b83528860048401525af18015610a5857610e35575b50808791600f5416803b1561022857828091600487518094819363d66d9e1960e01b83525af18015610e2b57908391610e17575b5050600f5416803b156100eb578190600485518094819363c7ebdaef60e01b83525af18015610e0d57610df9575b5090610df393949582610de18594610e86565b508152601460205220556016546108b7565b60165590565b610e0387916105b3565b61043b5738610dce565b83513d89823e3d90fd5b610e20906105b3565b6100eb578138610da0565b85513d85823e3d90fd5b610e41909791976105b3565b9538610d6c565b9093506020813d8211610e77575b81610e63602093836105dd565b81010312610e7357519238610d27565b8680fd5b3d9150610e56565b5090925050565b6000818152601260205260408120549091908015610f5757600019908082018181116107305760115490838201918211610f4357808203610f0f575b5050506011548015610efb57810190610eda82610c1b565b909182549160031b1b19169055601155815260126020526040812055600190565b634e487b7160e01b84526031600452602484fd5b610f2d610f1e610c9093610c1b565b90549060031b1c928392610c1b565b9055845260126020526040842055388080610ec2565b634e487b7160e01b86526011600452602486fd5b505090565b600080809381935af1610f6d610beb565b5015610f7557565b60405162461bcd60e51b815260206004820152600c60248201526b1c185e4a0a4819985a5b195960a21b6044820152606490fdfea2646970667358221220cf543ee17777eec8d846eb1b0de72976a8754252c284525b4f853d85e8276b6c64736f6c63430008130033","sourceMap":"625:4139:97:-:0;;;;;;;;;;;;;-1:-1:-1;625:4139:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;625:4139:97;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;3371:22;3292:49;625:4139;;3292:49;:::i;:::-;3371:22;;:::i;:::-;3419:6;;;;;:::i;:::-;625:4139;3437:19;;;;;;625:4139;;1220:14:3;;;3437:19:97;;625:4139;;;;;;;;;;;;;3437:19;;;;;625:4139;3437:19;;;;;;;;;;;625:4139;1220:14:3;;;3466:12:97;1220:14:3;625:4139:97;3466:35;;;;;625:4139;;;;;;1220:14:3;;;;;;;3466:35:97;;;;;;;;;;;;;625:4139;1220:14:3;;3466:12:97;1220:14:3;625:4139:97;3511:32;;;;;;625:4139;;-1:-1:-1;;;3511:32:97;;625:4139;;;;;;;;;3511:32;;;;;;;;625:4139;1220:14:3;;3589:44:97;1220:14:3;3554:25:97;1220:14:3;3554:25:97;1220:14:3;3554:25:97;:::i;:::-;;1220:14:3;625:4139:97;;3589:23;625:4139;;;;1220:14:3;;;3589:44:97;:::i;:::-;1220:14:3;;625:4139:97;;3511:32;;;;:::i;:::-;625:4139;;3511:32;;;;625:4139;;;;3511:32;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;3511:32:97;625:4139;;;3466:35;;;;:::i;:::-;625:4139;;3466:35;;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;3437:19:97;;;;:::i;:::-;625:4139;;3437:19;;;;625:4139;;;;;;;;-1:-1:-1;;625:4139:97;;;;;-1:-1:-1;;;;;625:4139:97;;;;;;;;;;;;;;1175:60;625:4139;;;;;;;;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3794:22;3715:49;625:4139;;3715:49;:::i;:::-;3794:22;;:::i;:::-;625:4139;;3827:19;;;;;;625:4139;;1220:14:3;;;3827:19:97;;625:4139;;;;;;;;;;;;;3827:19;;;;;625:4139;3827:19;;;;;;;;625:4139;1220:14:3;;;;;3856:12:97;1220:14:3;625:4139:97;3856:28;;;;;625:4139;;;;;;1220:14:3;;;;;;;3856:28:97;;;;;;625:4139;3856:28;;;;;;;;;;;625:4139;1220:14:3;;3856:12:97;1220:14:3;625:4139:97;3894:32;;;;;;625:4139;;-1:-1:-1;;;3894:32:97;;625:4139;;;;;;;;;3894:32;;;;;;;;625:4139;1220:14:3;;3974:46:97;1220:14:3;3937:27:97;1220:14:3;3937:27:97;1220:14:3;3937:27:97;:::i;:::-;;1220:14:3;625:4139:97;;3974:25;625:4139;;;;1220:14:3;;;3974:46:97;:::i;3894:32::-;;;;:::i;:::-;625:4139;;3894:32;;;;3856:28;;;;:::i;:::-;625:4139;;3856:28;;;;3827:19;;;;;;;;:::i;:::-;;;;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;3827:19:97;625:4139;;;;;;;;;;;;;;;;;;;1242:30;625:4139;;;;;;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;-1:-1:-1;;;;;625:4139:97;;;;;;;;;;;;;;1111:58;625:4139;;;;;;;;;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;625:4139:97;;;;;-1:-1:-1;625:4139:97;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;1278:32;625:4139;;;;;;;;;;;;;;;:::o;:::-;;;;1774:361;1883:3;625:4139;;;1878:8;1883:3;;;1909:35;;;:::i;:::-;-1:-1:-1;;;;;625:4139:97;;2046:18;2042:66;;1774:361;:::o;2042:66::-;2087:10;;2080:17;:::o;1874:159::-;1986:36;;;:::i;:::-;1975:47;1874:159;;625:4139;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;625:4139:97;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;3030:433:96;625:4139:97;;;;;;;;;;;;;;;;;3156:2:96;625:4139:97;;;;;;;;3139:20:96;625:4139:97;;3174:1:96;625:4139:97;;;;;;-1:-1:-1;;;;;;625:4139:97;-1:-1:-1;;625:4139:97;;;;3169:21:96;;625:4139:97;;;3169:21:96;625:4139:97;;-1:-1:-1;;625:4139:97;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;625:4139:97;;;;3305:10:96;;3174:1;;;3300:91;-1:-1:-1;;625:4139:97;;3432:21:96;;;-1:-1:-1;;;;;625:4139:97;;3030:433:96;-1:-1:-1;;;;3030:433:96:o;3334:3::-;625:4139:97;;3317:15:96;;;;;3373:7;;;;;:::i;:::-;625:4139:97;;;;;;;;;;;3353:27:96;;;;;;;:::i;:::-;;625:4139:97;;;;;;;;3305:10:96;;625:4139:97;-1:-1:-1;;;625:4139:97;;;;;;;;;-1:-1:-1;;;625:4139:97;;;;;;;;3317:15:96;;;625:4139:97;-1:-1:-1;;;625:4139:97;;;;;;;;2141:267;2251:16;625:4139;2290:11;;2286:59;;625:4139;;;;;;;;;;;;;2251:16;-1:-1:-1;625:4139:97;;-1:-1:-1;625:4139:97;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2141:267;:::o;625:4139::-;;;;;;;-1:-1:-1;625:4139:97;;;;;;;;;;;;2286:59;2317:17;;-1:-1:-1;2317:17:97;:::o;625:4139::-;;;;2624:16;625:4139;;;;;;;;;;;2624:16;-1:-1:-1;625:4139:97;;;-1:-1:-1;625:4139:97;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;-1:-1:-1;625:4139:97;;;;;;;;;;1220:14:3;;;625:4139:97;;;;;;1220:14:3;;;;;;;;;;;625:4139:97;1220:14:3;;;;;;;625:4139:97;;;;;;1220:14:3;;;:::o;:::-;625:4139:97;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;625:4139:97;;;;;;;;;;;2662:557;2729:1;;2662:557;625:4139;;;2723:7;2719:44;;2781:49;2887:36;2781:49;;:::i;:::-;2887:36;;:::i;:::-;2950:6;;;;;;:::i;:::-;625:4139;2967:19;;;;;;625:4139;;;;1220:14:3;;;2967:19:97;;625:4139;;;;;;;;;;;;;2967:19;;;;;625:4139;2967:19;;;;;;;;2662:557;1220:14:3;;;;;2996:12:97;1220:14:3;625:4139:97;2996:43;;;;;1220:14:3;625:4139:97;;;;;;1220:14:3;;;;;;;;;2996:43:97;;625:4139;2967:19;2996:43;;1220:14:3;625:4139:97;1220:14:3;;;;:::i;:::-;2996:43:97;;;;;;;;;;;;;2662:557;1220:14:3;;2996:12:97;1220:14:3;625:4139:97;3049:32;;;;;625:4139;;2967:19;625:4139;;1220:14:3;;;;;;;3049:32:97;;;;;;;;;;2662:557;1220:14:3;3127:44:97;1220:14:3;8399:50:36;1220:14:3;;3092:25:97;1220:14:3;3092:25:97;1220:14:3;3092:25:97;:::i;:::-;;1220:14:3;625:4139:97;;;3127:23;625:4139;;;1220:14:3;;;3127:44:97;:::i;:::-;1220:14:3;;8399:50:36;:::i;:::-;;2662:557:97:o;3049:32::-;;;;;:::i;:::-;625:4139;;3049:32;;;625:4139;;;;3049:32;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;2996:43:97;;;;:::i;:::-;625:4139;;2996:43;;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;2967:19:97;;;;;;;;:::i;:::-;;;;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;2719:44:97;2746:7;;;;:::o;2680:190:13:-;2798:19;2680:190;2798:19;:::i;:::-;625:4139:97;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;625:4139:97;;;;;;9924:54:13;;679:42;625:4139:97;9924:54:13;;;;;;;;625:4139:97;9924:54:13;;;679:42;;;;;;:::i;:::-;;;;;625:4139:97;9924:54:13;625:4139:97;;9924:54:13;;;;;;:::i;:::-;9887:92;;679:42;9887:92;;;;;:::i;1411:1263::-;907:8:97;;625:4139;;;1847:8:13;;;;;1831:34;;2099:1;2094:6;;;:18;;;1411:1263;2090:38;;-1:-1:-1;;2142:20:13;;;;:46;;1411:1263;2138:82;;2320:7;;;-1:-1:-1;;;625:4139:97;;;;;;;1220:14:3;625:4139:97;;2422:8:13;;;2418:24;;-1:-1:-1;;;625:4139:97;;;;;;;2456:22:13;2316:352;1411:1263::o;625:4139:97:-;-1:-1:-1;;;625:4139:97;;;;;;;;2418:24:13;2432:10;;;;:::o;625:4139:97:-;-1:-1:-1;;;625:4139:97;;;;;;;;2316:352:13;;;;;;1411:1263::o;2138:82::-;625:4139:97;;;;;;;;;;2190:30:13;;:::o;2142:46::-;625:4139:97;;;1220:14:3;2166:22:13;2142:46;;2090:38;2114:14;;;;;;:::o;2094:18::-;2104:8;;1220:14:3;2104:8:13;2094:18;;679:42;;;;;;625:4139:97;;;;:::i;:::-;;;;;;;;:::i;:::-;;;679:42:13;-1:-1:-1;679:42:13;;;;:::o;:::-;625:4139:97;679:42:13;:::o;625:4139:97:-;3181:16;625:4139;;;;;;3181:16;-1:-1:-1;625:4139:97;;;;-1:-1:-1;625:4139:97;:::o;2215:404:36:-;-1:-1:-1;625:4139:97;;;4352:12:36;625:4139:97;;;;;1220:14:3;625:4139:97;;3181:16;625:4139;;;;;;;;;;;;4352:12:36;625:4139:97;;;3181:16;625:4139;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3181:16;625:4139;;;;4352:12:36;625:4139:97;;;1220:14:3;4352:12:36;2548:11;:::o;625:4139:97:-;-1:-1:-1;;;625:4139:97;;;;;;;;2294:319:36;2590:12;;;:::o;4033:545:97:-;4113:35;4033:545;4113:35;:::i;:::-;4183:1;;;-1:-1:-1;;;;;625:4139:97;;;4162:23;;4158:70;;625:4139;;;;4255:11;625:4139;;;4255:50;625:4139;;;;1220:14:3;;;;;;;4255:50:97;;;;;;625:4139;4255:50;;;;;;;;;;;4033:545;625:4139;;;4316:19;;;;;625:4139;;;;;1220:14:3;;;;;;;4316:19:97;;;4255:50;4316:19;;625:4139;4316:19;;;;;;;;4033:545;1220:14:3;;;;4345:12:97;1220:14:3;625:4139:97;4345:20;;;;;625:4139;;;4255:50;625:4139;;1220:14:3;;;;;;;4345:20:97;;;;;;;;;;;;;4033:545;1220:14:3;;4345:12:97;1220:14:3;625:4139:97;4375:32;;;;;625:4139;;4255:50;625:4139;;1220:14:3;;;;;;;4375:32:97;;;;;;;;;;4033:545;8720:53:36;;4517:27:97;8720:53:36;;;;;;;;:::i;:::-;;625:4139:97;;4462:25;4255:50;625:4139;;1220:14:3;4517:27:97;1220:14:3;4517:27:97;:::i;:::-;;1220:14:3;4033:545:97;:::o;4375:32::-;;;;;:::i;:::-;625:4139;;4375:32;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;4345:20:97;;;;:::i;:::-;625:4139;;4345:20;;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;4316:19:97;;;;;;;:::i;:::-;;;;;4255:50;;;;;;;;;;;;;;;;;;:::i;:::-;;;625:4139;;;;;4255:50;;;;625:4139;;;;4255:50;;;-1:-1:-1;4255:50:97;;4158:70;-1:-1:-1;4201:16:97;;-1:-1:-1;;4201:16:97:o;2787:1388:36:-;-1:-1:-1;625:4139:97;;;2990:12:36;625:4139:97;;;;;1220:14:3;-1:-1:-1;;625:4139:97;3024:15:36;;;;-1:-1:-1;;625:4139:97;;;;;;;;;4418:16;625:4139;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;625:4139:97;;;4418:16;625:4139;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4418:16;625:4139;;;2990:12:36;625:4139:97;;;;;;2990:12:36;4104:11;:::o;625:4139:97:-;-1:-1:-1;;;625:4139:97;;;;;;;;3502:398:36;625:4139:97;3572:22:36;3694:26;3572:22;;:::i;:::-;625:4139:97;;;;;;3694:26:36;;;;:::i;625:4139:97:-;;;;;2990:12:36;625:4139:97;;;;;1220:14:3;3502:398:36;;;;;625:4139:97;-1:-1:-1;;;625:4139:97;;4418:16;625:4139;;;;;3020:1149:36;4146:12;;;:::o;4584:143:97:-;4658:26;4584:143;;;;;4658:26;;;;:::i;:::-;;625:4139;;;4584:143::o;625:4139::-;;;-1:-1:-1;;;625:4139:97;;;;;;;;;;;;-1:-1:-1;;;625:4139:97;;;;;;","linkReferences":{}},"methodIdentifiers":{"getRandomValidator(uint8)":"a64efe5d","getRandomValidatorFromSetOrZero(uint8)":"f2a2870b","ghost_stakedSum()":"b00053cf","ghost_unstakedSum()":"0a52ee96","ghost_validators_staked(address)":"a7818a48","ghost_validators_unstaked(address)":"c2da0512","join(uint8,uint256)":"bd0fa1b1","joinedValidators()":"a0758127","joinedValidatorsNumber()":"bc5683e1","leave(uint8)":"2cb54025","stake(uint8,uint256)":"dd752e55","unstake(uint8,uint256)":"b4545b9e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"_subnetActor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"}],\"name\":\"getRandomValidator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"seed\",\"type\":\"uint8\"}],\"name\":\"getRandomValidatorFromSetOrZero\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ghost_stakedSum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ghost_unstakedSum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ghost_validators_staked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ghost_validators_unstaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"joinedValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"joinedValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"}],\"name\":\"leave\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getRandomValidator(uint8)\":{\"notice\":\"getRandomValidator returns a validator from the known validators with probability about 20 %, otherwise it returns a random validator address generated from id. It can't return address(0);\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/invariants/handlers/SubnetActorHandler.sol\":\"SubnetActorHandler\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/invariants/handlers/SubnetActorHandler.sol\":{\"keccak256\":\"0xf8529975192ecfe6893cca1f1d001d9a1a4f1acaf53b049381ad00cda2f831c9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://286b1f6fee0f51c42246a734724410cdcb89e68b72e9cbe600b65c09397139a4\",\"dweb:/ipfs/QmcgtzMD25LuYXmZPepBj3aVEqZYt3DUr744BBHUCWdbgX\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract SubnetActorDiamond","name":"_subnetActor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"stateMutability":"view","type":"function","name":"getRandomValidator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint8","name":"seed","type":"uint8"}],"stateMutability":"view","type":"function","name":"getRandomValidatorFromSetOrZero","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ghost_stakedSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ghost_unstakedSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"ghost_validators_staked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"ghost_validators_unstaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"join"},{"inputs":[],"stateMutability":"view","type":"function","name":"joinedValidators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"joinedValidatorsNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"leave","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getRandomValidator(uint8)":{"notice":"getRandomValidator returns a validator from the known validators with probability about 20 %, otherwise it returns a random validator address generated from id. It can't return address(0);"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/invariants/handlers/SubnetActorHandler.sol":"SubnetActorHandler"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/invariants/handlers/SubnetActorHandler.sol":{"keccak256":"0xf8529975192ecfe6893cca1f1d001d9a1a4f1acaf53b049381ad00cda2f831c9","urls":["bzz-raw://286b1f6fee0f51c42246a734724410cdcb89e68b72e9cbe600b65c09397139a4","dweb:/ipfs/QmcgtzMD25LuYXmZPepBj3aVEqZYt3DUr744BBHUCWdbgX"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/invariants/handlers/SubnetActorHandler.sol","id":57510,"exportedSymbols":{"CommonBase":[3777],"ETH_SUPPLY":[57070],"EnumerableSet":[35815],"IMulticall3":[30545],"StdCheats":[8180],"StdCheatsSafe":[7501],"StdStorage":[9220],"StdUtils":[12691],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorHandler":[57509],"SubnetActorManagerFacetMock":[57957],"TestUtils":[57051],"Vm":[14222],"VmSafe":[13782],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:4719:97","nodes":[{"id":57053,"nodeType":"PragmaDirective","src":"46:23:97","nodes":[],"literals":["solidity","0.8",".19"]},{"id":57054,"nodeType":"ImportDirective","src":"71:32:97","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"forge-std/StdUtils.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":12692,"symbolAliases":[],"unitAlias":""},{"id":57055,"nodeType":"ImportDirective","src":"104:33:97","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"forge-std/StdCheats.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":8181,"symbolAliases":[],"unitAlias":""},{"id":57057,"nodeType":"ImportDirective","src":"138:46:97","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"forge-std/Base.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":3793,"symbolAliases":[{"foreign":{"id":57056,"name":"CommonBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"146:10:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57059,"nodeType":"ImportDirective","src":"185:71:97","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../../../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":57058,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"193:18:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57061,"nodeType":"ImportDirective","src":"257:86:97","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../../../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":57060,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"265:22:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57063,"nodeType":"ImportDirective","src":"344:88:97","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"../../mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":57062,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"352:27:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57065,"nodeType":"ImportDirective","src":"433:54:97","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"../../helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":57064,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"441:9:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57067,"nodeType":"ImportDirective","src":"488:85:97","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":57066,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"496:13:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57070,"nodeType":"VariableDeclaration","src":"575:47:97","nodes":[],"constant":true,"mutability":"constant","name":"ETH_SUPPLY","nameLocation":"592:10:97","scope":57510,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57068,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132395f3539305f303030","id":57069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"605:17:97","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_129590000000000000000000000_by_1","typeString":"int_const 129590000000000000000000000"},"value":"129_590_000"},"visibility":"internal"},{"id":57509,"nodeType":"ContractDefinition","src":"625:4139:97","nodes":[{"id":57080,"nodeType":"UsingForDirective","src":"694:49:97","nodes":[],"global":false,"libraryName":{"id":57077,"name":"EnumerableSet","nameLocations":["700:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"700:13:97"},"typeName":{"id":57079,"nodeType":"UserDefinedTypeName","pathNode":{"id":57078,"name":"EnumerableSet.AddressSet","nameLocations":["718:13:97","732:10:97"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"718:24:97"},"referencedDeclaration":35528,"src":"718:24:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":57083,"nodeType":"VariableDeclaration","src":"749:48:97","nodes":[],"constant":false,"mutability":"mutable","name":"managerFacet","nameLocation":"785:12:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":57082,"nodeType":"UserDefinedTypeName","pathNode":{"id":57081,"name":"SubnetActorManagerFacetMock","nameLocations":["749:27:97"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"749:27:97"},"referencedDeclaration":57957,"src":"749:27:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"private"},{"id":57086,"nodeType":"VariableDeclaration","src":"803:42:97","nodes":[],"constant":false,"mutability":"mutable","name":"getterFacet","nameLocation":"834:11:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":57085,"nodeType":"UserDefinedTypeName","pathNode":{"id":57084,"name":"SubnetActorGetterFacet","nameLocations":["803:22:97"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"803:22:97"},"referencedDeclaration":50887,"src":"803:22:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"private"},{"id":57089,"nodeType":"VariableDeclaration","src":"852:63:97","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"877:27:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57087,"name":"uint256","nodeType":"ElementaryTypeName","src":"852:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":57088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"907:8:97","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"10"},"visibility":"private"},{"id":57092,"nodeType":"VariableDeclaration","src":"1056:49:97","nodes":[],"constant":false,"mutability":"mutable","name":"ghost_validators","nameLocation":"1089:16:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":57091,"nodeType":"UserDefinedTypeName","pathNode":{"id":57090,"name":"EnumerableSet.AddressSet","nameLocations":["1056:13:97","1070:10:97"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1056:24:97"},"referencedDeclaration":35528,"src":"1056:24:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"id":57096,"nodeType":"VariableDeclaration","src":"1111:58:97","nodes":[],"constant":false,"functionSelector":"a7818a48","mutability":"mutable","name":"ghost_validators_staked","nameLocation":"1146:23:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":57095,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":57093,"name":"address","nodeType":"ElementaryTypeName","src":"1119:7:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1111:27:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":57094,"name":"uint256","nodeType":"ElementaryTypeName","src":"1130:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":57100,"nodeType":"VariableDeclaration","src":"1175:60:97","nodes":[],"constant":false,"functionSelector":"c2da0512","mutability":"mutable","name":"ghost_validators_unstaked","nameLocation":"1210:25:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":57099,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":57097,"name":"address","nodeType":"ElementaryTypeName","src":"1183:7:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1175:27:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":57098,"name":"uint256","nodeType":"ElementaryTypeName","src":"1194:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":57102,"nodeType":"VariableDeclaration","src":"1242:30:97","nodes":[],"constant":false,"functionSelector":"b00053cf","mutability":"mutable","name":"ghost_stakedSum","nameLocation":"1257:15:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57101,"name":"uint256","nodeType":"ElementaryTypeName","src":"1242:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":57104,"nodeType":"VariableDeclaration","src":"1278:32:97","nodes":[],"constant":false,"functionSelector":"0a52ee96","mutability":"mutable","name":"ghost_unstakedSum","nameLocation":"1293:17:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57103,"name":"uint256","nodeType":"ElementaryTypeName","src":"1278:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":57137,"nodeType":"FunctionDefinition","src":"1317:238:97","nodes":[],"body":{"id":57136,"nodeType":"Block","src":"1362:193:97","nodes":[],"statements":[{"expression":{"id":57117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57110,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"1372:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57114,"name":"_subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57107,"src":"1423:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":57113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1415:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57112,"name":"address","nodeType":"ElementaryTypeName","src":"1415:7:97","typeDescriptions":{}}},"id":57115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1415:21:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57111,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1387:27:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"type(contract SubnetActorManagerFacetMock)"}},"id":57116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1387:50:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"src":"1372:65:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57118,"nodeType":"ExpressionStatement","src":"1372:65:97"},{"expression":{"id":57126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57119,"name":"getterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57086,"src":"1447:11:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57123,"name":"_subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57107,"src":"1492:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":57122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1484:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57121,"name":"address","nodeType":"ElementaryTypeName","src":"1484:7:97","typeDescriptions":{}}},"id":57124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1484:21:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57120,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1461:22:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":57125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1461:45:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"1447:59:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":57127,"nodeType":"ExpressionStatement","src":"1447:59:97"},{"expression":{"arguments":[{"arguments":[{"id":57131,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1530:4:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorHandler_$57509","typeString":"contract SubnetActorHandler"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorHandler_$57509","typeString":"contract SubnetActorHandler"}],"id":57130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1522:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57129,"name":"address","nodeType":"ElementaryTypeName","src":"1522:7:97","typeDescriptions":{}}},"id":57132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1522:13:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57133,"name":"ETH_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57070,"src":"1537:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57128,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[7789,7806,7929],"referencedDeclaration":7789,"src":"1517:4:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":57134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1517:31:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57135,"nodeType":"ExpressionStatement","src":"1517:31:97"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":57108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57107,"mutability":"mutable","name":"_subnetActor","nameLocation":"1348:12:97","nodeType":"VariableDeclaration","scope":57137,"src":"1329:31:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":57106,"nodeType":"UserDefinedTypeName","pathNode":{"id":57105,"name":"SubnetActorDiamond","nameLocations":["1329:18:97"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"1329:18:97"},"referencedDeclaration":36615,"src":"1329:18:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"1328:33:97"},"returnParameters":{"id":57109,"nodeType":"ParameterList","parameters":[],"src":"1362:0:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57182,"nodeType":"FunctionDefinition","src":"1774:361:97","nodes":[],"body":{"id":57181,"nodeType":"Block","src":"1842:293:97","nodes":[],"statements":[{"assignments":[57146],"declarations":[{"constant":false,"id":57146,"mutability":"mutable","name":"addr","nameLocation":"1860:4:97","nodeType":"VariableDeclaration","scope":57181,"src":"1852:12:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57145,"name":"address","nodeType":"ElementaryTypeName","src":"1852:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57147,"nodeType":"VariableDeclarationStatement","src":"1852:12:97"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57148,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57140,"src":"1878:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"323030","id":57149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1883:3:97","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"1878:8:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":57166,"nodeType":"Block","src":"1961:72:97","statements":[{"expression":{"id":57164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":57158,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57146,"src":"1976:4:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},null],"id":57159,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1975:8:97","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$__$","typeString":"tuple(address,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57162,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57140,"src":"2019:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":57160,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"1986:9:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$57051_$","typeString":"type(library TestUtils)"}},"id":57161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1996:22:97","memberName":"deriveValidatorAddress","nodeType":"MemberAccess","referencedDeclaration":56774,"src":"1986:32:97","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint8_$returns$_t_address_$_t_bytes_memory_ptr_$","typeString":"function (uint8) pure returns (address,bytes memory)"}},"id":57163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1986:36:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}},"src":"1975:47:97","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57165,"nodeType":"ExpressionStatement","src":"1975:47:97"}]},"id":57167,"nodeType":"IfStatement","src":"1874:159:97","trueBody":{"id":57157,"nodeType":"Block","src":"1888:67:97","statements":[{"expression":{"id":57155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57151,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57146,"src":"1902:4:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57153,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57140,"src":"1941:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57152,"name":"getRandomValidatorFromSetOrZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57214,"src":"1909:31:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1909:35:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1902:42:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57156,"nodeType":"ExpressionStatement","src":"1902:42:97"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57168,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57146,"src":"2046:4:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":57171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2062:1:97","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":57170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2054:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57169,"name":"address","nodeType":"ElementaryTypeName","src":"2054:7:97","typeDescriptions":{}}},"id":57172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2054:10:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2046:18:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57178,"nodeType":"IfStatement","src":"2042:66:97","trueBody":{"id":57177,"nodeType":"Block","src":"2066:42:97","statements":[{"expression":{"expression":{"id":57174,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2087:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":57175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2091:6:97","memberName":"sender","nodeType":"MemberAccess","src":"2087:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57144,"id":57176,"nodeType":"Return","src":"2080:17:97"}]}},{"expression":{"id":57179,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57146,"src":"2124:4:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57144,"id":57180,"nodeType":"Return","src":"2117:11:97"}]},"documentation":{"id":57138,"nodeType":"StructuredDocumentation","src":"1561:208:97","text":"getRandomValidator returns a validator from the known validators with probability about 20 %,\n otherwise it returns a random validator address generated from id.\n It can't return address(0);"},"functionSelector":"a64efe5d","implemented":true,"kind":"function","modifiers":[],"name":"getRandomValidator","nameLocation":"1783:18:97","parameters":{"id":57141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57140,"mutability":"mutable","name":"id","nameLocation":"1808:2:97","nodeType":"VariableDeclaration","scope":57182,"src":"1802:8:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57139,"name":"uint8","nodeType":"ElementaryTypeName","src":"1802:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1801:10:97"},"returnParameters":{"id":57144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57182,"src":"1833:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57142,"name":"address","nodeType":"ElementaryTypeName","src":"1833:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1832:9:97"},"scope":57509,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57214,"nodeType":"FunctionDefinition","src":"2141:267:97","nodes":[],"body":{"id":57213,"nodeType":"Block","src":"2224:184:97","nodes":[],"statements":[{"assignments":[57190],"declarations":[{"constant":false,"id":57190,"mutability":"mutable","name":"length","nameLocation":"2242:6:97","nodeType":"VariableDeclaration","scope":57213,"src":"2234:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57189,"name":"uint256","nodeType":"ElementaryTypeName","src":"2234:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57194,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57191,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"2251:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2268:6:97","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35624,"src":"2251:23:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":57193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2251:25:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2234:42:97"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57195,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57190,"src":"2290:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2300:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2290:11:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57204,"nodeType":"IfStatement","src":"2286:59:97","trueBody":{"id":57203,"nodeType":"Block","src":"2303:42:97","statements":[{"expression":{"arguments":[{"hexValue":"30","id":57200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2332:1:97","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":57199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2324:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57198,"name":"address","nodeType":"ElementaryTypeName","src":"2324:7:97","typeDescriptions":{}}},"id":57201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2324:10:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57188,"id":57202,"nodeType":"Return","src":"2317:17:97"}]}},{"expression":{"baseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57205,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"2361:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2378:6:97","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2361:23:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2361:25:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57211,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57208,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57184,"src":"2387:4:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":57209,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57190,"src":"2394:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2387:13:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2361:40:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57188,"id":57212,"nodeType":"Return","src":"2354:47:97"}]},"functionSelector":"f2a2870b","implemented":true,"kind":"function","modifiers":[],"name":"getRandomValidatorFromSetOrZero","nameLocation":"2150:31:97","parameters":{"id":57185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57184,"mutability":"mutable","name":"seed","nameLocation":"2188:4:97","nodeType":"VariableDeclaration","scope":57214,"src":"2182:10:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57183,"name":"uint8","nodeType":"ElementaryTypeName","src":"2182:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2181:12:97"},"returnParameters":{"id":57188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57214,"src":"2215:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57186,"name":"address","nodeType":"ElementaryTypeName","src":"2215:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2214:9:97"},"scope":57509,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57225,"nodeType":"FunctionDefinition","src":"2414:120:97","nodes":[],"body":{"id":57224,"nodeType":"Block","src":"2478:56:97","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57219,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"2495:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2512:6:97","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2495:23:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2495:25:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2521:6:97","memberName":"length","nodeType":"MemberAccess","src":"2495:32:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57218,"id":57223,"nodeType":"Return","src":"2488:39:97"}]},"functionSelector":"bc5683e1","implemented":true,"kind":"function","modifiers":[],"name":"joinedValidatorsNumber","nameLocation":"2423:22:97","parameters":{"id":57215,"nodeType":"ParameterList","parameters":[],"src":"2445:2:97"},"returnParameters":{"id":57218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57225,"src":"2469:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57216,"name":"uint256","nodeType":"ElementaryTypeName","src":"2469:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2468:9:97"},"scope":57509,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57236,"nodeType":"FunctionDefinition","src":"2540:116:97","nodes":[],"body":{"id":57235,"nodeType":"Block","src":"2607:49:97","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57231,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"2624:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2641:6:97","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2624:23:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2624:25:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":57230,"id":57234,"nodeType":"Return","src":"2617:32:97"}]},"functionSelector":"a0758127","implemented":true,"kind":"function","modifiers":[],"name":"joinedValidators","nameLocation":"2549:16:97","parameters":{"id":57226,"nodeType":"ParameterList","parameters":[],"src":"2565:2:97"},"returnParameters":{"id":57230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57229,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57236,"src":"2589:16:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":57227,"name":"address","nodeType":"ElementaryTypeName","src":"2589:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57228,"nodeType":"ArrayTypeName","src":"2589:9:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2588:18:97"},"scope":57509,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57309,"nodeType":"FunctionDefinition","src":"2662:557:97","nodes":[],"body":{"id":57308,"nodeType":"Block","src":"2709:510:97","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57243,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57238,"src":"2723:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2729:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2723:7:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57248,"nodeType":"IfStatement","src":"2719:44:97","trueBody":{"id":57247,"nodeType":"Block","src":"2732:31:97","statements":[{"functionReturnParameters":57242,"id":57246,"nodeType":"Return","src":"2746:7:97"}]}},{"expression":{"id":57257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57249,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"2772:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57251,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"2787:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":57252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2795:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":57253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2798:1:97","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":57254,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57089,"src":"2802:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2798:31:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57250,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"2781:5:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":57256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2781:49:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2772:58:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57258,"nodeType":"ExpressionStatement","src":"2772:58:97"},{"assignments":[57260,57262],"declarations":[{"constant":false,"id":57260,"mutability":"mutable","name":"validator","nameLocation":"2850:9:97","nodeType":"VariableDeclaration","scope":57308,"src":"2842:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57259,"name":"address","nodeType":"ElementaryTypeName","src":"2842:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57262,"mutability":"mutable","name":"publicKey","nameLocation":"2874:9:97","nodeType":"VariableDeclaration","scope":57308,"src":"2861:22:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57261,"name":"bytes","nodeType":"ElementaryTypeName","src":"2861:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57267,"initialValue":{"arguments":[{"id":57265,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57238,"src":"2920:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":57263,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2887:9:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$57051_$","typeString":"type(library TestUtils)"}},"id":57264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2897:22:97","memberName":"deriveValidatorAddress","nodeType":"MemberAccess","referencedDeclaration":56774,"src":"2887:32:97","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint8_$returns$_t_address_$_t_bytes_memory_ptr_$","typeString":"function (uint8) pure returns (address,bytes memory)"}},"id":57266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2887:36:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2841:82:97"},{"expression":{"arguments":[{"id":57269,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57260,"src":"2939:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57270,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"2950:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57268,"name":"_pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57504,"src":"2934:4:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":57271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2934:23:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57272,"nodeType":"ExpressionStatement","src":"2934:23:97"},{"expression":{"arguments":[{"id":57276,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57260,"src":"2976:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"2967:2:97","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2970:5:97","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"2967:8:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2967:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57278,"nodeType":"ExpressionStatement","src":"2967:19:97"},{"expression":{"arguments":[{"id":57284,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57262,"src":"3029:9:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":57279,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"2996:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3009:4:97","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"2996:17:97","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":57283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":57282,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"3021:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2996:32:97","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":57285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2996:43:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57286,"nodeType":"ExpressionStatement","src":"2996:43:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57287,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"3049:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3062:17:97","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":57956,"src":"3049:30:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3049:32:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57291,"nodeType":"ExpressionStatement","src":"3049:32:97"},{"expression":{"id":57294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57292,"name":"ghost_stakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57102,"src":"3092:15:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57293,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"3111:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3092:25:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57295,"nodeType":"ExpressionStatement","src":"3092:25:97"},{"expression":{"id":57300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57296,"name":"ghost_validators_staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57096,"src":"3127:23:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57298,"indexExpression":{"id":57297,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57260,"src":"3151:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3127:34:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57299,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"3165:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3127:44:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57301,"nodeType":"ExpressionStatement","src":"3127:44:97"},{"expression":{"arguments":[{"id":57305,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57260,"src":"3202:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57302,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"3181:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3198:3:97","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"3181:20:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":57306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3181:31:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57307,"nodeType":"ExpressionStatement","src":"3181:31:97"}]},"functionSelector":"bd0fa1b1","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"2671:4:97","parameters":{"id":57241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57238,"mutability":"mutable","name":"id","nameLocation":"2682:2:97","nodeType":"VariableDeclaration","scope":57309,"src":"2676:8:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57237,"name":"uint8","nodeType":"ElementaryTypeName","src":"2676:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57240,"mutability":"mutable","name":"amount","nameLocation":"2694:6:97","nodeType":"VariableDeclaration","scope":57309,"src":"2686:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57239,"name":"uint256","nodeType":"ElementaryTypeName","src":"2686:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2675:26:97"},"returnParameters":{"id":57242,"nodeType":"ParameterList","parameters":[],"src":"2709:0:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57366,"nodeType":"FunctionDefinition","src":"3225:415:97","nodes":[],"body":{"id":57365,"nodeType":"Block","src":"3273:367:97","nodes":[],"statements":[{"expression":{"id":57324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57316,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3283:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57318,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3298:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":57319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3306:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":57320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3309:1:97","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":57321,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57089,"src":"3313:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3309:31:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57317,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"3292:5:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":57323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3292:49:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3283:58:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57325,"nodeType":"ExpressionStatement","src":"3283:58:97"},{"assignments":[57327],"declarations":[{"constant":false,"id":57327,"mutability":"mutable","name":"validator","nameLocation":"3359:9:97","nodeType":"VariableDeclaration","scope":57365,"src":"3351:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57326,"name":"address","nodeType":"ElementaryTypeName","src":"3351:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57331,"initialValue":{"arguments":[{"id":57329,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57311,"src":"3390:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57328,"name":"getRandomValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57182,"src":"3371:18:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3371:22:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3351:42:97"},{"expression":{"arguments":[{"id":57333,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57327,"src":"3408:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57334,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3419:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57332,"name":"_pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57504,"src":"3403:4:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":57335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3403:23:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57336,"nodeType":"ExpressionStatement","src":"3403:23:97"},{"expression":{"arguments":[{"id":57340,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57327,"src":"3446:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57337,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3437:2:97","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3440:5:97","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"3437:8:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3437:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57342,"nodeType":"ExpressionStatement","src":"3437:19:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":57343,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"3466:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3479:5:97","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":51669,"src":"3466:18:97","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":57347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":57346,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3492:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3466:33:97","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":57348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3466:35:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57349,"nodeType":"ExpressionStatement","src":"3466:35:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57350,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"3511:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3524:17:97","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":57956,"src":"3511:30:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3511:32:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57354,"nodeType":"ExpressionStatement","src":"3511:32:97"},{"expression":{"id":57357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57355,"name":"ghost_stakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57102,"src":"3554:15:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57356,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3573:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3554:25:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57358,"nodeType":"ExpressionStatement","src":"3554:25:97"},{"expression":{"id":57363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57359,"name":"ghost_validators_staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57096,"src":"3589:23:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57361,"indexExpression":{"id":57360,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57327,"src":"3613:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3589:34:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57362,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3627:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3589:44:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57364,"nodeType":"ExpressionStatement","src":"3589:44:97"}]},"functionSelector":"dd752e55","implemented":true,"kind":"function","modifiers":[],"name":"stake","nameLocation":"3234:5:97","parameters":{"id":57314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57311,"mutability":"mutable","name":"id","nameLocation":"3246:2:97","nodeType":"VariableDeclaration","scope":57366,"src":"3240:8:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57310,"name":"uint8","nodeType":"ElementaryTypeName","src":"3240:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57313,"mutability":"mutable","name":"amount","nameLocation":"3258:6:97","nodeType":"VariableDeclaration","scope":57366,"src":"3250:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57312,"name":"uint256","nodeType":"ElementaryTypeName","src":"3250:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3239:26:97"},"returnParameters":{"id":57315,"nodeType":"ParameterList","parameters":[],"src":"3273:0:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57417,"nodeType":"FunctionDefinition","src":"3646:381:97","nodes":[],"body":{"id":57416,"nodeType":"Block","src":"3696:331:97","nodes":[],"statements":[{"expression":{"id":57381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57373,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"3706:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57375,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"3721:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":57376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3729:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":57377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3732:1:97","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":57378,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57089,"src":"3736:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3732:31:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57374,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"3715:5:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":57380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3715:49:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3706:58:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57382,"nodeType":"ExpressionStatement","src":"3706:58:97"},{"assignments":[57384],"declarations":[{"constant":false,"id":57384,"mutability":"mutable","name":"validator","nameLocation":"3782:9:97","nodeType":"VariableDeclaration","scope":57416,"src":"3774:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57383,"name":"address","nodeType":"ElementaryTypeName","src":"3774:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57388,"initialValue":{"arguments":[{"id":57386,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57368,"src":"3813:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57385,"name":"getRandomValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57182,"src":"3794:18:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3794:22:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3774:42:97"},{"expression":{"arguments":[{"id":57392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57384,"src":"3836:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57389,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3827:2:97","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3830:5:97","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"3827:8:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3827:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57394,"nodeType":"ExpressionStatement","src":"3827:19:97"},{"expression":{"arguments":[{"id":57398,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"3877:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57395,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"3856:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3869:7:97","memberName":"unstake","nodeType":"MemberAccess","referencedDeclaration":51741,"src":"3856:20:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":57399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3856:28:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57400,"nodeType":"ExpressionStatement","src":"3856:28:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57401,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"3894:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3907:17:97","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":57956,"src":"3894:30:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:32:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57405,"nodeType":"ExpressionStatement","src":"3894:32:97"},{"expression":{"id":57408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57406,"name":"ghost_unstakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57104,"src":"3937:17:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57407,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"3958:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3937:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57409,"nodeType":"ExpressionStatement","src":"3937:27:97"},{"expression":{"id":57414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57410,"name":"ghost_validators_unstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57100,"src":"3974:25:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57412,"indexExpression":{"id":57411,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57384,"src":"4000:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3974:36:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57413,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"4014:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3974:46:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57415,"nodeType":"ExpressionStatement","src":"3974:46:97"}]},"functionSelector":"b4545b9e","implemented":true,"kind":"function","modifiers":[],"name":"unstake","nameLocation":"3655:7:97","parameters":{"id":57371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57368,"mutability":"mutable","name":"id","nameLocation":"3669:2:97","nodeType":"VariableDeclaration","scope":57417,"src":"3663:8:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57367,"name":"uint8","nodeType":"ElementaryTypeName","src":"3663:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57370,"mutability":"mutable","name":"amount","nameLocation":"3681:6:97","nodeType":"VariableDeclaration","scope":57417,"src":"3673:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57369,"name":"uint256","nodeType":"ElementaryTypeName","src":"3673:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3662:26:97"},"returnParameters":{"id":57372,"nodeType":"ParameterList","parameters":[],"src":"3696:0:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57482,"nodeType":"FunctionDefinition","src":"4033:545:97","nodes":[],"body":{"id":57481,"nodeType":"Block","src":"4083:495:97","nodes":[],"statements":[{"assignments":[57425],"declarations":[{"constant":false,"id":57425,"mutability":"mutable","name":"validator","nameLocation":"4101:9:97","nodeType":"VariableDeclaration","scope":57481,"src":"4093:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57424,"name":"address","nodeType":"ElementaryTypeName","src":"4093:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57429,"initialValue":{"arguments":[{"id":57427,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57419,"src":"4145:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57426,"name":"getRandomValidatorFromSetOrZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57214,"src":"4113:31:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4113:35:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4093:55:97"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57430,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4162:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":57433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4183:1:97","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":57432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4175:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57431,"name":"address","nodeType":"ElementaryTypeName","src":"4175:7:97","typeDescriptions":{}}},"id":57434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4175:10:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4162:23:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57439,"nodeType":"IfStatement","src":"4158:70:97","trueBody":{"id":57438,"nodeType":"Block","src":"4187:41:97","statements":[{"expression":{"id":57436,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4208:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57423,"id":57437,"nodeType":"Return","src":"4201:16:97"}]}},{"assignments":[57441],"declarations":[{"constant":false,"id":57441,"mutability":"mutable","name":"amount","nameLocation":"4246:6:97","nodeType":"VariableDeclaration","scope":57481,"src":"4238:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57440,"name":"uint256","nodeType":"ElementaryTypeName","src":"4238:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57446,"initialValue":{"arguments":[{"id":57444,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4295:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57442,"name":"getterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57086,"src":"4255:11:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":57443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4267:27:97","memberName":"getTotalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":50615,"src":"4255:39:97","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":57445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4255:50:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4238:67:97"},{"expression":{"arguments":[{"id":57450,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4325:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57447,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4316:2:97","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4319:5:97","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"4316:8:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4316:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57452,"nodeType":"ExpressionStatement","src":"4316:19:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57453,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"4345:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4358:5:97","memberName":"leave","nodeType":"MemberAccess","referencedDeclaration":51861,"src":"4345:18:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4345:20:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57457,"nodeType":"ExpressionStatement","src":"4345:20:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57458,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"4375:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4388:17:97","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":57956,"src":"4375:30:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4375:32:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57462,"nodeType":"ExpressionStatement","src":"4375:32:97"},{"expression":{"arguments":[{"id":57466,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4442:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57463,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"4418:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4435:6:97","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35582,"src":"4418:23:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":57467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4418:34:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57468,"nodeType":"ExpressionStatement","src":"4418:34:97"},{"expression":{"id":57473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57469,"name":"ghost_validators_unstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57100,"src":"4462:25:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57471,"indexExpression":{"id":57470,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4488:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4462:36:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57472,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57441,"src":"4501:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4462:45:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57474,"nodeType":"ExpressionStatement","src":"4462:45:97"},{"expression":{"id":57477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57475,"name":"ghost_unstakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57104,"src":"4517:17:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57476,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57441,"src":"4538:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4517:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57478,"nodeType":"ExpressionStatement","src":"4517:27:97"},{"expression":{"id":57479,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4562:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57423,"id":57480,"nodeType":"Return","src":"4555:16:97"}]},"functionSelector":"2cb54025","implemented":true,"kind":"function","modifiers":[],"name":"leave","nameLocation":"4042:5:97","parameters":{"id":57420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57419,"mutability":"mutable","name":"id","nameLocation":"4054:2:97","nodeType":"VariableDeclaration","scope":57482,"src":"4048:8:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57418,"name":"uint8","nodeType":"ElementaryTypeName","src":"4048:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4047:10:97"},"returnParameters":{"id":57423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57482,"src":"4074:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57421,"name":"address","nodeType":"ElementaryTypeName","src":"4074:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4073:9:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57504,"nodeType":"FunctionDefinition","src":"4584:143:97","nodes":[],"body":{"id":57503,"nodeType":"Block","src":"4635:92:97","nodes":[],"statements":[{"assignments":[57490,null],"declarations":[{"constant":false,"id":57490,"mutability":"mutable","name":"s","nameLocation":"4651:1:97","nodeType":"VariableDeclaration","scope":57503,"src":"4646:6:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57489,"name":"bool","nodeType":"ElementaryTypeName","src":"4646:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":57497,"initialValue":{"arguments":[{"hexValue":"","id":57495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4681:2:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":57491,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57484,"src":"4658:2:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4661:4:97","memberName":"call","nodeType":"MemberAccess","src":"4658:7:97","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":57494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":57493,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57486,"src":"4673:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4658:22:97","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":57496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4658:26:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4645:39:97"},{"expression":{"arguments":[{"id":57499,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57490,"src":"4702:1:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7061792829206661696c6564","id":57500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4705:14:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_708a605926d72cc62b9c45ef20f4a9137befa0fe0d1bddbd83963293deff2e9a","typeString":"literal_string \"pay() failed\""},"value":"pay() failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_708a605926d72cc62b9c45ef20f4a9137befa0fe0d1bddbd83963293deff2e9a","typeString":"literal_string \"pay() failed\""}],"id":57498,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4694:7:97","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4694:26:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57502,"nodeType":"ExpressionStatement","src":"4694:26:97"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pay","nameLocation":"4593:4:97","parameters":{"id":57487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57484,"mutability":"mutable","name":"to","nameLocation":"4606:2:97","nodeType":"VariableDeclaration","scope":57504,"src":"4598:10:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57483,"name":"address","nodeType":"ElementaryTypeName","src":"4598:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57486,"mutability":"mutable","name":"amount","nameLocation":"4618:6:97","nodeType":"VariableDeclaration","scope":57504,"src":"4610:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57485,"name":"uint256","nodeType":"ElementaryTypeName","src":"4610:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4597:28:97"},"returnParameters":{"id":57488,"nodeType":"ParameterList","parameters":[],"src":"4635:0:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57508,"nodeType":"FunctionDefinition","src":"4733:29:97","nodes":[],"body":{"id":57507,"nodeType":"Block","src":"4760:2:97","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":57505,"nodeType":"ParameterList","parameters":[],"src":"4740:2:97"},"returnParameters":{"id":57506,"nodeType":"ParameterList","parameters":[],"src":"4760:0:97"},"scope":57509,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":57071,"name":"CommonBase","nameLocations":["656:10:97"],"nodeType":"IdentifierPath","referencedDeclaration":3777,"src":"656:10:97"},"id":57072,"nodeType":"InheritanceSpecifier","src":"656:10:97"},{"baseName":{"id":57073,"name":"StdCheats","nameLocations":["668:9:97"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"668:9:97"},"id":57074,"nodeType":"InheritanceSpecifier","src":"668:9:97"},{"baseName":{"id":57075,"name":"StdUtils","nameLocations":["679:8:97"],"nodeType":"IdentifierPath","referencedDeclaration":12691,"src":"679:8:97"},"id":57076,"nodeType":"InheritanceSpecifier","src":"679:8:97"}],"canonicalName":"SubnetActorHandler","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[57509,12691,8180,7501,3777],"name":"SubnetActorHandler","nameLocation":"634:18:97","scope":57510,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":97} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_subnetActor","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getRandomValidator","inputs":[{"name":"id","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRandomValidatorFromSetOrZero","inputs":[{"name":"seed","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ghost_stakedSum","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_unstakedSum","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_validators_staked","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_validators_unstaked","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"join","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"joinedValidators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"joinedValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"leave","inputs":[{"name":"id","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608034610106576001600160401b0390601f6110eb38819003918201601f1916830191848311848410176100e45780849260209460405283398101031261010657516001600160a01b038116908190036101065760018060a01b03198181600f541617600f556010541617601055737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15610106576000809260446040518095819363c88a5e6d60e01b83523060048401526a6b31bffa03c1c535c0000060248401525af180156100fa576100d4575b604051610fdf908161010c8239f35b81116100e45760405238806100c5565b634e487b7160e01b600052604160045260246000fd5b6040513d6000823e3d90fd5b600080fdfe6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c9182630a52ee9614610547575081632cb5402514610521578163a0758127146104be578163a64efe5d14610498578163a7818a481461045e578163b00053cf1461043f578163b4545b9e146102e8578163bc5683e1146102c3578163bd0fa1b114610298578163c2da05121461025e578163dd752e55146100ef575063f2a2870b146100b65780610012565b346100eb5760203660031901126100eb576020906100da6100d5610563565b610771565b90516001600160a01b039091168152f35b5080fd5b905034610228578160031936011261022857610109610563565b918361011f610119602435610a68565b94610578565b9261012a8585610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d93843b1561022857835163ca669fa760e01b815283816024818360018060a01b038097169a8b898401525af180156102405790849161024a575b505080600f5416803b1561021a5783879184875180948193633a4b66f160e01b83525af180156102405790849161022c575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e57610206575b5050610201916101ed846015546108b7565b6015558452601360205283209182546108b7565b905580f35b61020f906105b3565b61021a5783386101db565b8380fd5b83513d84823e3d90fd5b8280fd5b610235906105b3565b6102285782386101ab565b85513d86823e3d90fd5b610253906105b3565b610228578238610179565b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526014845220549051908152f35b5050346100eb573660031901126102c0576102bd6102b4610563565b602435906108da565b80f35b80fd5b5050346100eb57816003193601126100eb576020906102e0610808565b519051908152f35b905034610228578160031936011261022857610302610563565b91610317610311602435610a68565b93610578565b91737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57825163ca669fa760e01b815286816024818360018060a01b03809716998a898401525af180156104315761041c575b5090818692600f5416803b1561021a5783809160248751809481936305c2fbcf60e31b83528c898401525af1801561024057908491610408575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e576103f4575b5050610201916103e0846016546108b7565b6016558452601460205283209182546108b7565b6103fd906105b3565b61021a5783386103ce565b610411906105b3565b61022857823861039e565b61042990969192966105b3565b949038610364565b84513d89823e3d90fd5b8580fd5b5050346100eb57816003193601126100eb576020906015549051908152f35b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526013845220549051908152f35b5050346100eb5760203660031901126100eb576020906100da6104b9610563565b610578565b5050346100eb57816003193601126100eb576104d8610808565b815192839260208080860192818752855180945286019401925b82811061050157505050500390f35b83516001600160a01b0316855286955093810193928101926001016104f2565b5050346100eb5760203660031901126100eb576020906100da610542610563565b610cd4565b8490346100eb57816003193601126100eb576020906016548152f35b6004359060ff8216820361057357565b600080fd5b60c860ff821610156105a45761058d90610771565b6001600160a01b0381161561059f5790565b503390565b6105ad90610642565b5061058d565b67ffffffffffffffff81116105c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176105c757604052565b67ffffffffffffffff81116105c757601f01601f191660200190565b90815181101561062c570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906080820182811067ffffffffffffffff8211176105c75760405260418252606036602084013781805160019081101561062c576001600160f81b03199260009060f81b8416811a60218401538251600019808201959091861161075d576106c56106af876105ff565b966106bd60405198896105dd565b8088526105ff565b602087019590601f190136873784805b6106f2575b505094519093206001600160a01b0316959350505050565b81518110156107585782610706828461061b565b5116848201908282116107445761072090871a918a61061b565b53838114610730578501856106d5565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b87526011600452602487fd5b6106da565b634e487b7160e01b83526011600452602483fd5b60115480156108015760405190819281835283602080940160116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6860005b868682106107ea5750505060ff92916107cc9103866105dd565b160691805183101561062c5760018060a01b039260051b0101511690565b8254845288945090920191600191820191016107b2565b5050600090565b60405190601154808352826020918282019060116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68936000905b82821061085d5750505061085b925003836105dd565b565b855484526001958601958895509381019390910190610845565b919082519283825260005b8481106108a3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610882565b919082018092116108c457565b634e487b7160e01b600052601160045260246000fd5b6000929160ff821615610a62576108f36108f991610a68565b91610642565b61090583839493610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57604091825163ca669fa760e01b815287816024818360018060a01b038098169a8b60048401525af18015610a5857610a43575b5090869181600f5416803b1561021a5761098f8491879387519485809481936330b858b160e11b8352602060048401526024830190610877565b03925af18015610a3957908391610a25575b5050600f5416803b156100eb578190600484518094819363c7ebdaef60e01b83525af18015610a1b57610a03575b506109f990610a0094956109e5846015546108b7565b6015558481526013602052209182546108b7565b9055610c52565b50565b610a0d86916105b3565b610a1757386109cf565b8480fd5b82513d88823e3d90fd5b610a2e906105b3565b6100eb5781386109a1565b84513d85823e3d90fd5b610a5090979192976105b3565b959038610955565b84513d8a823e3d90fd5b50509050565b610a7190610b04565b906040516040810181811067ffffffffffffffff8211176105c7576000918291604052600c81526b109bdd5b990814995cdd5b1d60a21b6020820152604051610aeb81610ad76020820194632d839cb360e21b8652604060248401526064830190610877565b88604483015203601f1981018352826105dd565b51906a636f6e736f6c652e6c6f675afa50610a00610beb565b6801a055690d9db8000090600090818382118015610bd157600383111580610bd9575b610bd15760031983101580610bbe575b610bae5715610ba757506801a055690d9db7ffff198101908111610b93576801a055690d9db800019006918215610b8d57506000198201918211610b79575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b5050198203918211610b79575090565b5082196801a055690d9db8000111610b37565b505091505090565b50826801a055690d9db8000111610b27565b3d15610c16573d90610bfc826105ff565b91610c0a60405193846105dd565b82523d6000602084013e565b606090565b60115481101561062c5760116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680190600090565b600081815260126020526040812054610ccf5760115468010000000000000000811015610cbb579082610ca7610c9084600160409601601155610c1b565b819391549060031b91821b91600019901b19161790565b905560115492815260126020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b610cdd90610771565b600091906001600160a01b038082168015610e7f57906024918160105416916020604093845195868092630acbdfbf60e11b82528660048301525afa938415610e0d578794610e48575b5086737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156100eb578190602486518094819363ca669fa760e01b83528860048401525af18015610a5857610e35575b50808791600f5416803b1561022857828091600487518094819363d66d9e1960e01b83525af18015610e2b57908391610e17575b5050600f5416803b156100eb578190600485518094819363c7ebdaef60e01b83525af18015610e0d57610df9575b5090610df393949582610de18594610e86565b508152601460205220556016546108b7565b60165590565b610e0387916105b3565b61043b5738610dce565b83513d89823e3d90fd5b610e20906105b3565b6100eb578138610da0565b85513d85823e3d90fd5b610e41909791976105b3565b9538610d6c565b9093506020813d8211610e77575b81610e63602093836105dd565b81010312610e7357519238610d27565b8680fd5b3d9150610e56565b5090925050565b6000818152601260205260408120549091908015610f5757600019908082018181116107305760115490838201918211610f4357808203610f0f575b5050506011548015610efb57810190610eda82610c1b565b909182549160031b1b19169055601155815260126020526040812055600190565b634e487b7160e01b84526031600452602484fd5b610f2d610f1e610c9093610c1b565b90549060031b1c928392610c1b565b9055845260126020526040842055388080610ec2565b634e487b7160e01b86526011600452602486fd5b505090565b600080809381935af1610f6d610beb565b5015610f7557565b60405162461bcd60e51b815260206004820152600c60248201526b1c185e4a0a4819985a5b195960a21b6044820152606490fdfea26469706673582212207032b2fad8867e5ef8cab5d75afce7c666314be61148269436468b4014c2deac64736f6c63430008130033","sourceMap":"601:4115:100:-:0;;;;-1:-1:-1;;;;;601:4115:100;;;;;;;;;;-1:-1:-1;;601:4115:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;601:4115:100;;;;;;;;;;;;;;;;1336:53;601:4115;;;1336:53;601:4115;1399:59;601:4115;;;1399:59;601:4115;;20219:17:6;;;;;;-1:-1:-1;601:4115:100;;17996:59:6;601:4115:100;;17996:59:6;;;;;;;20219:17;;1482:4:100;20219:17:6;;;17996:59;581:17:100;17996:59:6;;;;20219:17;;;;;;;;-1:-1:-1;601:4115:100;;;;;;;;;20219:17:6;601:4115:100;;;;;;20219:17:6;;;;601:4115:100;;;;-1:-1:-1;601:4115:100;;20219:17:6;601:4115:100;17996:59:6;-1:-1:-1;601:4115:100;20219:17:6;601:4115:100;;17996:59:6;-1:-1:-1;17996:59:6;;;;;20219:17;-1:-1:-1;601:4115:100;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c9182630a52ee9614610547575081632cb5402514610521578163a0758127146104be578163a64efe5d14610498578163a7818a481461045e578163b00053cf1461043f578163b4545b9e146102e8578163bc5683e1146102c3578163bd0fa1b114610298578163c2da05121461025e578163dd752e55146100ef575063f2a2870b146100b65780610012565b346100eb5760203660031901126100eb576020906100da6100d5610563565b610771565b90516001600160a01b039091168152f35b5080fd5b905034610228578160031936011261022857610109610563565b918361011f610119602435610a68565b94610578565b9261012a8585610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d93843b1561022857835163ca669fa760e01b815283816024818360018060a01b038097169a8b898401525af180156102405790849161024a575b505080600f5416803b1561021a5783879184875180948193633a4b66f160e01b83525af180156102405790849161022c575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e57610206575b5050610201916101ed846015546108b7565b6015558452601360205283209182546108b7565b905580f35b61020f906105b3565b61021a5783386101db565b8380fd5b83513d84823e3d90fd5b8280fd5b610235906105b3565b6102285782386101ab565b85513d86823e3d90fd5b610253906105b3565b610228578238610179565b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526014845220549051908152f35b5050346100eb573660031901126102c0576102bd6102b4610563565b602435906108da565b80f35b80fd5b5050346100eb57816003193601126100eb576020906102e0610808565b519051908152f35b905034610228578160031936011261022857610302610563565b91610317610311602435610a68565b93610578565b91737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57825163ca669fa760e01b815286816024818360018060a01b03809716998a898401525af180156104315761041c575b5090818692600f5416803b1561021a5783809160248751809481936305c2fbcf60e31b83528c898401525af1801561024057908491610408575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e576103f4575b5050610201916103e0846016546108b7565b6016558452601460205283209182546108b7565b6103fd906105b3565b61021a5783386103ce565b610411906105b3565b61022857823861039e565b61042990969192966105b3565b949038610364565b84513d89823e3d90fd5b8580fd5b5050346100eb57816003193601126100eb576020906015549051908152f35b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526013845220549051908152f35b5050346100eb5760203660031901126100eb576020906100da6104b9610563565b610578565b5050346100eb57816003193601126100eb576104d8610808565b815192839260208080860192818752855180945286019401925b82811061050157505050500390f35b83516001600160a01b0316855286955093810193928101926001016104f2565b5050346100eb5760203660031901126100eb576020906100da610542610563565b610cd4565b8490346100eb57816003193601126100eb576020906016548152f35b6004359060ff8216820361057357565b600080fd5b60c860ff821610156105a45761058d90610771565b6001600160a01b0381161561059f5790565b503390565b6105ad90610642565b5061058d565b67ffffffffffffffff81116105c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176105c757604052565b67ffffffffffffffff81116105c757601f01601f191660200190565b90815181101561062c570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906080820182811067ffffffffffffffff8211176105c75760405260418252606036602084013781805160019081101561062c576001600160f81b03199260009060f81b8416811a60218401538251600019808201959091861161075d576106c56106af876105ff565b966106bd60405198896105dd565b8088526105ff565b602087019590601f190136873784805b6106f2575b505094519093206001600160a01b0316959350505050565b81518110156107585782610706828461061b565b5116848201908282116107445761072090871a918a61061b565b53838114610730578501856106d5565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b87526011600452602487fd5b6106da565b634e487b7160e01b83526011600452602483fd5b60115480156108015760405190819281835283602080940160116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6860005b868682106107ea5750505060ff92916107cc9103866105dd565b160691805183101561062c5760018060a01b039260051b0101511690565b8254845288945090920191600191820191016107b2565b5050600090565b60405190601154808352826020918282019060116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68936000905b82821061085d5750505061085b925003836105dd565b565b855484526001958601958895509381019390910190610845565b919082519283825260005b8481106108a3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610882565b919082018092116108c457565b634e487b7160e01b600052601160045260246000fd5b6000929160ff821615610a62576108f36108f991610a68565b91610642565b61090583839493610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57604091825163ca669fa760e01b815287816024818360018060a01b038098169a8b60048401525af18015610a5857610a43575b5090869181600f5416803b1561021a5761098f8491879387519485809481936330b858b160e11b8352602060048401526024830190610877565b03925af18015610a3957908391610a25575b5050600f5416803b156100eb578190600484518094819363c7ebdaef60e01b83525af18015610a1b57610a03575b506109f990610a0094956109e5846015546108b7565b6015558481526013602052209182546108b7565b9055610c52565b50565b610a0d86916105b3565b610a1757386109cf565b8480fd5b82513d88823e3d90fd5b610a2e906105b3565b6100eb5781386109a1565b84513d85823e3d90fd5b610a5090979192976105b3565b959038610955565b84513d8a823e3d90fd5b50509050565b610a7190610b04565b906040516040810181811067ffffffffffffffff8211176105c7576000918291604052600c81526b109bdd5b990814995cdd5b1d60a21b6020820152604051610aeb81610ad76020820194632d839cb360e21b8652604060248401526064830190610877565b88604483015203601f1981018352826105dd565b51906a636f6e736f6c652e6c6f675afa50610a00610beb565b6801a055690d9db8000090600090818382118015610bd157600383111580610bd9575b610bd15760031983101580610bbe575b610bae5715610ba757506801a055690d9db7ffff198101908111610b93576801a055690d9db800019006918215610b8d57506000198201918211610b79575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b5050198203918211610b79575090565b5082196801a055690d9db8000111610b37565b505091505090565b50826801a055690d9db8000111610b27565b3d15610c16573d90610bfc826105ff565b91610c0a60405193846105dd565b82523d6000602084013e565b606090565b60115481101561062c5760116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680190600090565b600081815260126020526040812054610ccf5760115468010000000000000000811015610cbb579082610ca7610c9084600160409601601155610c1b565b819391549060031b91821b91600019901b19161790565b905560115492815260126020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b610cdd90610771565b600091906001600160a01b038082168015610e7f57906024918160105416916020604093845195868092630acbdfbf60e11b82528660048301525afa938415610e0d578794610e48575b5086737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156100eb578190602486518094819363ca669fa760e01b83528860048401525af18015610a5857610e35575b50808791600f5416803b1561022857828091600487518094819363d66d9e1960e01b83525af18015610e2b57908391610e17575b5050600f5416803b156100eb578190600485518094819363c7ebdaef60e01b83525af18015610e0d57610df9575b5090610df393949582610de18594610e86565b508152601460205220556016546108b7565b60165590565b610e0387916105b3565b61043b5738610dce565b83513d89823e3d90fd5b610e20906105b3565b6100eb578138610da0565b85513d85823e3d90fd5b610e41909791976105b3565b9538610d6c565b9093506020813d8211610e77575b81610e63602093836105dd565b81010312610e7357519238610d27565b8680fd5b3d9150610e56565b5090925050565b6000818152601260205260408120549091908015610f5757600019908082018181116107305760115490838201918211610f4357808203610f0f575b5050506011548015610efb57810190610eda82610c1b565b909182549160031b1b19169055601155815260126020526040812055600190565b634e487b7160e01b84526031600452602484fd5b610f2d610f1e610c9093610c1b565b90549060031b1c928392610c1b565b9055845260126020526040842055388080610ec2565b634e487b7160e01b86526011600452602486fd5b505090565b600080809381935af1610f6d610beb565b5015610f7557565b60405162461bcd60e51b815260206004820152600c60248201526b1c185e4a0a4819985a5b195960a21b6044820152606490fdfea26469706673582212207032b2fad8867e5ef8cab5d75afce7c666314be61148269436468b4014c2deac64736f6c63430008130033","sourceMap":"601:4115:100:-:0;;;;;;;;;;;;;-1:-1:-1;601:4115:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;601:4115:100;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;601:4115:100;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;3323:22;3244:49;601:4115;;3244:49;:::i;:::-;3323:22;;:::i;:::-;3371:6;;;;;:::i;:::-;601:4115;3389:19;;;;;;601:4115;;1220:14:3;;;3389:19:100;;601:4115;;;;;;;;;;;;;3389:19;;;;;601:4115;3389:19;;;;;;;;;;;601:4115;1220:14:3;;;3418:12:100;1220:14:3;601:4115:100;3418:35;;;;;601:4115;;;;;;1220:14:3;;;;;;;3418:35:100;;;;;;;;;;;;;601:4115;1220:14:3;;3418:12:100;1220:14:3;601:4115:100;3463:32;;;;;;601:4115;;-1:-1:-1;;;3463:32:100;;601:4115;;;;;;;;;3463:32;;;;;;;;601:4115;1220:14:3;;3541:44:100;1220:14:3;3506:25:100;1220:14:3;3506:25:100;1220:14:3;3506:25:100;:::i;:::-;;1220:14:3;601:4115:100;;3541:23;601:4115;;;;1220:14:3;;;3541:44:100;:::i;:::-;1220:14:3;;601:4115:100;;3463:32;;;;:::i;:::-;601:4115;;3463:32;;;;601:4115;;;;3463:32;601:4115;;1220:14:3;601:4115:100;;1220:14:3;;;;3463:32:100;601:4115;;;3418:35;;;;:::i;:::-;601:4115;;3418:35;;;;;601:4115;;1220:14:3;601:4115:100;;1220:14:3;;;;3389:19:100;;;;:::i;:::-;601:4115;;3389:19;;;;601:4115;;;;;;;;-1:-1:-1;;601:4115:100;;;;;-1:-1:-1;;;;;601:4115:100;;;;;;;;;;;;;;1139:60;601:4115;;;;;;;;;;;;;;;;;-1:-1:-1;;601:4115:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3746:22;3667:49;601:4115;;3667:49;:::i;:::-;3746:22;;:::i;:::-;601:4115;;3779:19;;;;;;601:4115;;1220:14:3;;;3779:19:100;;601:4115;;;;;;;;;;;;;3779:19;;;;;601:4115;3779:19;;;;;;;;601:4115;1220:14:3;;;;;3808:12:100;1220:14:3;601:4115:100;3808:28;;;;;601:4115;;;;;;1220:14:3;;;;;;;3808:28:100;;;;;;601:4115;3808:28;;;;;;;;;;;601:4115;1220:14:3;;3808:12:100;1220:14:3;601:4115:100;3846:32;;;;;;601:4115;;-1:-1:-1;;;3846:32:100;;601:4115;;;;;;;;;3846:32;;;;;;;;601:4115;1220:14:3;;3926:46:100;1220:14:3;3889:27:100;1220:14:3;3889:27:100;1220:14:3;3889:27:100;:::i;:::-;;1220:14:3;601:4115:100;;3926:25;601:4115;;;;1220:14:3;;;3926:46:100;:::i;3846:32::-;;;;:::i;:::-;601:4115;;3846:32;;;;3808:28;;;;:::i;:::-;601:4115;;3808:28;;;;3779:19;;;;;;;;:::i;:::-;;;;;;;601:4115;;1220:14:3;601:4115:100;;1220:14:3;;;;3779:19:100;601:4115;;;;;;;;;;;;;;;;;;;1206:30;601:4115;;;;;;;;;;;;;;;-1:-1:-1;;601:4115:100;;;;;-1:-1:-1;;;;;601:4115:100;;;;;;;;;;;;;;1075:58;601:4115;;;;;;;;;;;;;;;;;;-1:-1:-1;;601:4115:100;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;601:4115:100;;;;;-1:-1:-1;601:4115:100;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;601:4115:100;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;1242:32;601:4115;;;;;;;;;;;;;;;:::o;:::-;;;;1726:361;1835:3;601:4115;;;1830:8;1835:3;;;1861:35;;;:::i;:::-;-1:-1:-1;;;;;601:4115:100;;1998:18;1994:66;;1726:361;:::o;1994:66::-;2039:10;;2032:17;:::o;1826:159::-;1938:36;;;:::i;:::-;1927:47;1826:159;;601:4115;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;601:4115:100;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;3030:433:99;601:4115:100;;;;;;;;;;;;;;;;;3156:2:99;601:4115:100;;;;;;;;3139:20:99;601:4115:100;;3174:1:99;601:4115:100;;;;;;-1:-1:-1;;;;;;601:4115:100;-1:-1:-1;;601:4115:100;;;;3169:21:99;;601:4115:100;;;3169:21:99;601:4115:100;;-1:-1:-1;;601:4115:100;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;601:4115:100;;;;3305:10:99;;3174:1;;;3300:91;-1:-1:-1;;601:4115:100;;3432:21:99;;;-1:-1:-1;;;;;601:4115:100;;3030:433:99;-1:-1:-1;;;;3030:433:99:o;3334:3::-;601:4115:100;;3317:15:99;;;;;3373:7;;;;;:::i;:::-;601:4115:100;;;;;;;;;;;3353:27:99;;;;;;;:::i;:::-;;601:4115:100;;;;;;;;3305:10:99;;601:4115:100;-1:-1:-1;;;601:4115:100;;;;;;;;;-1:-1:-1;;;601:4115:100;;;;;;;;3317:15:99;;;601:4115:100;-1:-1:-1;;;601:4115:100;;;;;;;;2093:267;2203:16;601:4115;2242:11;;2238:59;;601:4115;;;;;;;;;;;;;2203:16;-1:-1:-1;601:4115:100;;-1:-1:-1;601:4115:100;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2093:267;:::o;601:4115::-;;;;;;;-1:-1:-1;601:4115:100;;;;;;;;;;;;2238:59;2269:17;;-1:-1:-1;2269:17:100;:::o;601:4115::-;;;;2576:16;601:4115;;;;;;;;;;;2576:16;-1:-1:-1;601:4115:100;;;-1:-1:-1;601:4115:100;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;-1:-1:-1;601:4115:100;;;;;;;;;;1220:14:3;;;601:4115:100;;;;;;1220:14:3;;;;;;;;;;;601:4115:100;1220:14:3;;;;;;;601:4115:100;;;;;;1220:14:3;;;:::o;:::-;601:4115:100;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;601:4115:100;;;;;;;;;;;2614:557;2681:1;;2614:557;601:4115;;;2675:7;2671:44;;2733:49;2839:36;2733:49;;:::i;:::-;2839:36;;:::i;:::-;2902:6;;;;;;:::i;:::-;601:4115;2919:19;;;;;;601:4115;;;;1220:14:3;;;2919:19:100;;601:4115;;;;;;;;;;;;;2919:19;;;;;601:4115;2919:19;;;;;;;;2614:557;1220:14:3;;;;;2948:12:100;1220:14:3;601:4115:100;2948:43;;;;;1220:14:3;601:4115:100;;;;;;1220:14:3;;;;;;;;;2948:43:100;;601:4115;2919:19;2948:43;;1220:14:3;601:4115:100;1220:14:3;;;;:::i;:::-;2948:43:100;;;;;;;;;;;;;2614:557;1220:14:3;;2948:12:100;1220:14:3;601:4115:100;3001:32;;;;;601:4115;;2919:19;601:4115;;1220:14:3;;;;;;;3001:32:100;;;;;;;;;;2614:557;1220:14:3;3079:44:100;1220:14:3;8399:50:36;1220:14:3;;3044:25:100;1220:14:3;3044:25:100;1220:14:3;3044:25:100;:::i;:::-;;1220:14:3;601:4115:100;;;3079:23;601:4115;;;1220:14:3;;;3079:44:100;:::i;:::-;1220:14:3;;8399:50:36;:::i;:::-;;2614:557:100:o;3001:32::-;;;;;:::i;:::-;601:4115;;3001:32;;;601:4115;;;;3001:32;601:4115;;1220:14:3;601:4115:100;;1220:14:3;;;;2948:43:100;;;;:::i;:::-;601:4115;;2948:43;;;;;601:4115;;1220:14:3;601:4115:100;;1220:14:3;;;;2919:19:100;;;;;;;;:::i;:::-;;;;;;;601:4115;;1220:14:3;601:4115:100;;1220:14:3;;;;2671:44:100;2698:7;;;;:::o;2680:190:13:-;2798:19;2680:190;2798:19;:::i;:::-;601:4115:100;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;601:4115:100;;;;;;9924:54:13;;679:42;601:4115:100;9924:54:13;;;;;;;;601:4115:100;9924:54:13;;;679:42;;;;;;:::i;:::-;;;;;601:4115:100;9924:54:13;601:4115:100;;9924:54:13;;;;;;:::i;:::-;9887:92;;679:42;9887:92;;;;;:::i;1411:1263::-;871:8:100;;601:4115;;;1847:8:13;;;;;1831:34;;2099:1;2094:6;;;:18;;;1411:1263;2090:38;;-1:-1:-1;;2142:20:13;;;;:46;;1411:1263;2138:82;;2320:7;;;-1:-1:-1;;;601:4115:100;;;;;;;1220:14:3;601:4115:100;;2422:8:13;;;2418:24;;-1:-1:-1;;;601:4115:100;;;;;;;2456:22:13;2316:352;1411:1263::o;601:4115:100:-;-1:-1:-1;;;601:4115:100;;;;;;;;2418:24:13;2432:10;;;;:::o;601:4115:100:-;-1:-1:-1;;;601:4115:100;;;;;;;;2316:352:13;;;;;;1411:1263::o;2138:82::-;601:4115:100;;;;;;;;;;2190:30:13;;:::o;2142:46::-;601:4115:100;;;1220:14:3;2166:22:13;2142:46;;2090:38;2114:14;;;;;;:::o;2094:18::-;2104:8;;1220:14:3;2104:8:13;2094:18;;679:42;;;;;;601:4115:100;;;;:::i;:::-;;;;;;;;:::i;:::-;;;679:42:13;-1:-1:-1;679:42:13;;;;:::o;:::-;601:4115:100;679:42:13;:::o;601:4115:100:-;3133:16;601:4115;;;;;;3133:16;-1:-1:-1;601:4115:100;;;;-1:-1:-1;601:4115:100;:::o;2215:404:36:-;-1:-1:-1;601:4115:100;;;4352:12:36;601:4115:100;;;;;1220:14:3;601:4115:100;;3133:16;601:4115;;;;;;;;;;;;4352:12:36;601:4115:100;;;3133:16;601:4115;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3133:16;601:4115;;;;4352:12:36;601:4115:100;;;1220:14:3;4352:12:36;2548:11;:::o;601:4115:100:-;-1:-1:-1;;;601:4115:100;;;;;;;;2294:319:36;2590:12;;;:::o;3985:545:100:-;4065:35;3985:545;4065:35;:::i;:::-;4135:1;;;-1:-1:-1;;;;;601:4115:100;;;4114:23;;4110:70;;601:4115;;;;4207:11;601:4115;;;4207:50;601:4115;;;;1220:14:3;;;;;;;4207:50:100;;;;;;601:4115;4207:50;;;;;;;;;;;3985:545;601:4115;;;4268:19;;;;;601:4115;;;;;1220:14:3;;;;;;;4268:19:100;;;4207:50;4268:19;;601:4115;4268:19;;;;;;;;3985:545;1220:14:3;;;;4297:12:100;1220:14:3;601:4115:100;4297:20;;;;;601:4115;;;4207:50;601:4115;;1220:14:3;;;;;;;4297:20:100;;;;;;;;;;;;;3985:545;1220:14:3;;4297:12:100;1220:14:3;601:4115:100;4327:32;;;;;601:4115;;4207:50;601:4115;;1220:14:3;;;;;;;4327:32:100;;;;;;;;;;3985:545;8720:53:36;;4469:27:100;8720:53:36;;;;;;;;:::i;:::-;;601:4115:100;;4414:25;4207:50;601:4115;;1220:14:3;4469:27:100;1220:14:3;4469:27:100;:::i;:::-;;1220:14:3;3985:545:100;:::o;4327:32::-;;;;;:::i;:::-;601:4115;;4327:32;;;;601:4115;;1220:14:3;601:4115:100;;1220:14:3;;;;4297:20:100;;;;:::i;:::-;601:4115;;4297:20;;;;;601:4115;;1220:14:3;601:4115:100;;1220:14:3;;;;4268:19:100;;;;;;;:::i;:::-;;;;;4207:50;;;;;;;;;;;;;;;;;;:::i;:::-;;;601:4115;;;;;4207:50;;;;601:4115;;;;4207:50;;;-1:-1:-1;4207:50:100;;4110:70;-1:-1:-1;4153:16:100;;-1:-1:-1;;4153:16:100:o;2787:1388:36:-;-1:-1:-1;601:4115:100;;;2990:12:36;601:4115:100;;;;;1220:14:3;-1:-1:-1;;601:4115:100;3024:15:36;;;;-1:-1:-1;;601:4115:100;;;;;;;;;4370:16;601:4115;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;601:4115:100;;;4370:16;601:4115;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4370:16;601:4115;;;2990:12:36;601:4115:100;;;;;;2990:12:36;4104:11;:::o;601:4115:100:-;-1:-1:-1;;;601:4115:100;;;;;;;;3502:398:36;601:4115:100;3572:22:36;3694:26;3572:22;;:::i;:::-;601:4115:100;;;;;;3694:26:36;;;;:::i;601:4115:100:-;;;;;2990:12:36;601:4115:100;;;;;1220:14:3;3502:398:36;;;;;601:4115:100;-1:-1:-1;;;601:4115:100;;4370:16;601:4115;;;;;3020:1149:36;4146:12;;;:::o;4536:143:100:-;4610:26;4536:143;;;;;4610:26;;;;:::i;:::-;;601:4115;;;4536:143::o;601:4115::-;;;-1:-1:-1;;;601:4115:100;;;;;;;;;;;;-1:-1:-1;;;601:4115:100;;;;;;","linkReferences":{}},"methodIdentifiers":{"getRandomValidator(uint8)":"a64efe5d","getRandomValidatorFromSetOrZero(uint8)":"f2a2870b","ghost_stakedSum()":"b00053cf","ghost_unstakedSum()":"0a52ee96","ghost_validators_staked(address)":"a7818a48","ghost_validators_unstaked(address)":"c2da0512","join(uint8,uint256)":"bd0fa1b1","joinedValidators()":"a0758127","joinedValidatorsNumber()":"bc5683e1","leave(uint8)":"2cb54025","stake(uint8,uint256)":"dd752e55","unstake(uint8,uint256)":"b4545b9e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"_subnetActor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"}],\"name\":\"getRandomValidator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"seed\",\"type\":\"uint8\"}],\"name\":\"getRandomValidatorFromSetOrZero\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ghost_stakedSum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ghost_unstakedSum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ghost_validators_staked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ghost_validators_unstaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"joinedValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"joinedValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"}],\"name\":\"leave\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getRandomValidator(uint8)\":{\"notice\":\"getRandomValidator returns a validator from the known validators with probability about 20 %, otherwise it returns a random validator address generated from id. It can't return address(0);\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/invariants/handlers/SubnetActorHandler.sol\":\"SubnetActorHandler\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3\",\"dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorCheckpointingFacet.sol\":{\"keccak256\":\"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a\",\"dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8\",\"dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm\"]},\"src/subnet/SubnetActorPauseFacet.sol\":{\"keccak256\":\"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14\",\"dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb\"]},\"src/subnet/SubnetActorRewardFacet.sol\":{\"keccak256\":\"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088\",\"dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/invariants/handlers/SubnetActorHandler.sol\":{\"keccak256\":\"0xa9fea2b7bc5b62191923a1e44cf2d7021d1ce9c1d5ff92e4d12c7d92a709fb74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0ac1f133d8743cc65fa7d187315615a96ac1d9fd7e01b5518588aa767852d8cd\",\"dweb:/ipfs/QmNYADsmWAfybyD6ZPvhgHxrzJyWtJG2ws6mjuQWk5Vp7w\"]},\"test/mocks/SubnetActorMock.sol\":{\"keccak256\":\"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43\",\"dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract SubnetActorDiamond","name":"_subnetActor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"stateMutability":"view","type":"function","name":"getRandomValidator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint8","name":"seed","type":"uint8"}],"stateMutability":"view","type":"function","name":"getRandomValidatorFromSetOrZero","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ghost_stakedSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ghost_unstakedSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"ghost_validators_staked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"ghost_validators_unstaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"join"},{"inputs":[],"stateMutability":"view","type":"function","name":"joinedValidators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"joinedValidatorsNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"leave","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getRandomValidator(uint8)":{"notice":"getRandomValidator returns a validator from the known validators with probability about 20 %, otherwise it returns a random validator address generated from id. It can't return address(0);"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/invariants/handlers/SubnetActorHandler.sol":"SubnetActorHandler"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451","urls":["bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3","dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorCheckpointingFacet.sol":{"keccak256":"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96","urls":["bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a","dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c","urls":["bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8","dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorPauseFacet.sol":{"keccak256":"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49","urls":["bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14","dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorRewardFacet.sol":{"keccak256":"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435","urls":["bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088","dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/invariants/handlers/SubnetActorHandler.sol":{"keccak256":"0xa9fea2b7bc5b62191923a1e44cf2d7021d1ce9c1d5ff92e4d12c7d92a709fb74","urls":["bzz-raw://0ac1f133d8743cc65fa7d187315615a96ac1d9fd7e01b5518588aa767852d8cd","dweb:/ipfs/QmNYADsmWAfybyD6ZPvhgHxrzJyWtJG2ws6mjuQWk5Vp7w"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorMock.sol":{"keccak256":"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a","urls":["bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43","dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/invariants/handlers/SubnetActorHandler.sol","id":57883,"exportedSymbols":{"CommonBase":[3777],"ETH_SUPPLY":[57443],"EnumerableSet":[35815],"IMulticall3":[30545],"StdCheats":[8180],"StdCheatsSafe":[7501],"StdStorage":[9220],"StdUtils":[12691],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[51235],"SubnetActorHandler":[57882],"SubnetActorMock":[58342],"TestUtils":[57424],"Vm":[14222],"VmSafe":[13782],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:4671:100","nodes":[{"id":57426,"nodeType":"PragmaDirective","src":"46:23:100","nodes":[],"literals":["solidity","0.8",".19"]},{"id":57427,"nodeType":"ImportDirective","src":"71:32:100","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"forge-std/StdUtils.sol","nameLocation":"-1:-1:-1","scope":57883,"sourceUnit":12692,"symbolAliases":[],"unitAlias":""},{"id":57428,"nodeType":"ImportDirective","src":"104:33:100","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"forge-std/StdCheats.sol","nameLocation":"-1:-1:-1","scope":57883,"sourceUnit":8181,"symbolAliases":[],"unitAlias":""},{"id":57430,"nodeType":"ImportDirective","src":"138:46:100","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"forge-std/Base.sol","nameLocation":"-1:-1:-1","scope":57883,"sourceUnit":3793,"symbolAliases":[{"foreign":{"id":57429,"name":"CommonBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"146:10:100","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57432,"nodeType":"ImportDirective","src":"185:71:100","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../../../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":57883,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":57431,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"193:18:100","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57434,"nodeType":"ImportDirective","src":"257:86:100","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../../../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":57883,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":57433,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"265:22:100","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57436,"nodeType":"ImportDirective","src":"344:64:100","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"../../mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":57883,"sourceUnit":58343,"symbolAliases":[{"foreign":{"id":57435,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58342,"src":"352:15:100","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57438,"nodeType":"ImportDirective","src":"409:54:100","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"../../helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":57883,"sourceUnit":57425,"symbolAliases":[{"foreign":{"id":57437,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57424,"src":"417:9:100","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57440,"nodeType":"ImportDirective","src":"464:85:100","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":57883,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":57439,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"472:13:100","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57443,"nodeType":"VariableDeclaration","src":"551:47:100","nodes":[],"constant":true,"mutability":"constant","name":"ETH_SUPPLY","nameLocation":"568:10:100","scope":57883,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57441,"name":"uint256","nodeType":"ElementaryTypeName","src":"551:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132395f3539305f303030","id":57442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"581:17:100","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_129590000000000000000000000_by_1","typeString":"int_const 129590000000000000000000000"},"value":"129_590_000"},"visibility":"internal"},{"id":57882,"nodeType":"ContractDefinition","src":"601:4115:100","nodes":[{"id":57453,"nodeType":"UsingForDirective","src":"670:49:100","nodes":[],"global":false,"libraryName":{"id":57450,"name":"EnumerableSet","nameLocations":["676:13:100"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"676:13:100"},"typeName":{"id":57452,"nodeType":"UserDefinedTypeName","pathNode":{"id":57451,"name":"EnumerableSet.AddressSet","nameLocations":["694:13:100","708:10:100"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"694:24:100"},"referencedDeclaration":35528,"src":"694:24:100","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":57456,"nodeType":"VariableDeclaration","src":"725:36:100","nodes":[],"constant":false,"mutability":"mutable","name":"managerFacet","nameLocation":"749:12:100","scope":57882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"},"typeName":{"id":57455,"nodeType":"UserDefinedTypeName","pathNode":{"id":57454,"name":"SubnetActorMock","nameLocations":["725:15:100"],"nodeType":"IdentifierPath","referencedDeclaration":58342,"src":"725:15:100"},"referencedDeclaration":58342,"src":"725:15:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"visibility":"private"},{"id":57459,"nodeType":"VariableDeclaration","src":"767:42:100","nodes":[],"constant":false,"mutability":"mutable","name":"getterFacet","nameLocation":"798:11:100","scope":57882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":57458,"nodeType":"UserDefinedTypeName","pathNode":{"id":57457,"name":"SubnetActorGetterFacet","nameLocations":["767:22:100"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"767:22:100"},"referencedDeclaration":51235,"src":"767:22:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"private"},{"id":57462,"nodeType":"VariableDeclaration","src":"816:63:100","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"841:27:100","scope":57882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57460,"name":"uint256","nodeType":"ElementaryTypeName","src":"816:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":57461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"871:8:100","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"10"},"visibility":"private"},{"id":57465,"nodeType":"VariableDeclaration","src":"1020:49:100","nodes":[],"constant":false,"mutability":"mutable","name":"ghost_validators","nameLocation":"1053:16:100","scope":57882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":57464,"nodeType":"UserDefinedTypeName","pathNode":{"id":57463,"name":"EnumerableSet.AddressSet","nameLocations":["1020:13:100","1034:10:100"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1020:24:100"},"referencedDeclaration":35528,"src":"1020:24:100","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"id":57469,"nodeType":"VariableDeclaration","src":"1075:58:100","nodes":[],"constant":false,"functionSelector":"a7818a48","mutability":"mutable","name":"ghost_validators_staked","nameLocation":"1110:23:100","scope":57882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":57468,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":57466,"name":"address","nodeType":"ElementaryTypeName","src":"1083:7:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1075:27:100","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":57467,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":57473,"nodeType":"VariableDeclaration","src":"1139:60:100","nodes":[],"constant":false,"functionSelector":"c2da0512","mutability":"mutable","name":"ghost_validators_unstaked","nameLocation":"1174:25:100","scope":57882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":57472,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":57470,"name":"address","nodeType":"ElementaryTypeName","src":"1147:7:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1139:27:100","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":57471,"name":"uint256","nodeType":"ElementaryTypeName","src":"1158:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":57475,"nodeType":"VariableDeclaration","src":"1206:30:100","nodes":[],"constant":false,"functionSelector":"b00053cf","mutability":"mutable","name":"ghost_stakedSum","nameLocation":"1221:15:100","scope":57882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57474,"name":"uint256","nodeType":"ElementaryTypeName","src":"1206:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":57477,"nodeType":"VariableDeclaration","src":"1242:32:100","nodes":[],"constant":false,"functionSelector":"0a52ee96","mutability":"mutable","name":"ghost_unstakedSum","nameLocation":"1257:17:100","scope":57882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57476,"name":"uint256","nodeType":"ElementaryTypeName","src":"1242:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":57510,"nodeType":"FunctionDefinition","src":"1281:226:100","nodes":[],"body":{"id":57509,"nodeType":"Block","src":"1326:181:100","nodes":[],"statements":[{"expression":{"id":57490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57483,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57456,"src":"1336:12:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57487,"name":"_subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57480,"src":"1375:12:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":57486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1367:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57485,"name":"address","nodeType":"ElementaryTypeName","src":"1367:7:100","typeDescriptions":{}}},"id":57488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1367:21:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57484,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58342,"src":"1351:15:100","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorMock_$58342_$","typeString":"type(contract SubnetActorMock)"}},"id":57489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:38:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"src":"1336:53:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"id":57491,"nodeType":"ExpressionStatement","src":"1336:53:100"},{"expression":{"id":57499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57492,"name":"getterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57459,"src":"1399:11:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57496,"name":"_subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57480,"src":"1444:12:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":57495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1436:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57494,"name":"address","nodeType":"ElementaryTypeName","src":"1436:7:100","typeDescriptions":{}}},"id":57497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1436:21:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57493,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"1413:22:100","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":57498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1413:45:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"1399:59:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":57500,"nodeType":"ExpressionStatement","src":"1399:59:100"},{"expression":{"arguments":[{"arguments":[{"id":57504,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1482:4:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorHandler_$57882","typeString":"contract SubnetActorHandler"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorHandler_$57882","typeString":"contract SubnetActorHandler"}],"id":57503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1474:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57502,"name":"address","nodeType":"ElementaryTypeName","src":"1474:7:100","typeDescriptions":{}}},"id":57505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1474:13:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57506,"name":"ETH_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57443,"src":"1489:10:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57501,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[7789,7806,7929],"referencedDeclaration":7789,"src":"1469:4:100","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":57507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1469:31:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57508,"nodeType":"ExpressionStatement","src":"1469:31:100"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":57481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57480,"mutability":"mutable","name":"_subnetActor","nameLocation":"1312:12:100","nodeType":"VariableDeclaration","scope":57510,"src":"1293:31:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":57479,"nodeType":"UserDefinedTypeName","pathNode":{"id":57478,"name":"SubnetActorDiamond","nameLocations":["1293:18:100"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"1293:18:100"},"referencedDeclaration":36615,"src":"1293:18:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"1292:33:100"},"returnParameters":{"id":57482,"nodeType":"ParameterList","parameters":[],"src":"1326:0:100"},"scope":57882,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57555,"nodeType":"FunctionDefinition","src":"1726:361:100","nodes":[],"body":{"id":57554,"nodeType":"Block","src":"1794:293:100","nodes":[],"statements":[{"assignments":[57519],"declarations":[{"constant":false,"id":57519,"mutability":"mutable","name":"addr","nameLocation":"1812:4:100","nodeType":"VariableDeclaration","scope":57554,"src":"1804:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57518,"name":"address","nodeType":"ElementaryTypeName","src":"1804:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57520,"nodeType":"VariableDeclarationStatement","src":"1804:12:100"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57521,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57513,"src":"1830:2:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"323030","id":57522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1835:3:100","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"1830:8:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":57539,"nodeType":"Block","src":"1913:72:100","statements":[{"expression":{"id":57537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":57531,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57519,"src":"1928:4:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},null],"id":57532,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1927:8:100","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$__$","typeString":"tuple(address,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57535,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57513,"src":"1971:2:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":57533,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57424,"src":"1938:9:100","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$57424_$","typeString":"type(library TestUtils)"}},"id":57534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1948:22:100","memberName":"deriveValidatorAddress","nodeType":"MemberAccess","referencedDeclaration":57147,"src":"1938:32:100","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint8_$returns$_t_address_$_t_bytes_memory_ptr_$","typeString":"function (uint8) pure returns (address,bytes memory)"}},"id":57536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1938:36:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}},"src":"1927:47:100","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57538,"nodeType":"ExpressionStatement","src":"1927:47:100"}]},"id":57540,"nodeType":"IfStatement","src":"1826:159:100","trueBody":{"id":57530,"nodeType":"Block","src":"1840:67:100","statements":[{"expression":{"id":57528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57524,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57519,"src":"1854:4:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57526,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57513,"src":"1893:2:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57525,"name":"getRandomValidatorFromSetOrZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57587,"src":"1861:31:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1861:35:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1854:42:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57529,"nodeType":"ExpressionStatement","src":"1854:42:100"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57541,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57519,"src":"1998:4:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":57544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2014:1:100","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":57543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2006:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57542,"name":"address","nodeType":"ElementaryTypeName","src":"2006:7:100","typeDescriptions":{}}},"id":57545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2006:10:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1998:18:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57551,"nodeType":"IfStatement","src":"1994:66:100","trueBody":{"id":57550,"nodeType":"Block","src":"2018:42:100","statements":[{"expression":{"expression":{"id":57547,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2039:3:100","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":57548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2043:6:100","memberName":"sender","nodeType":"MemberAccess","src":"2039:10:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57517,"id":57549,"nodeType":"Return","src":"2032:17:100"}]}},{"expression":{"id":57552,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57519,"src":"2076:4:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57517,"id":57553,"nodeType":"Return","src":"2069:11:100"}]},"documentation":{"id":57511,"nodeType":"StructuredDocumentation","src":"1513:208:100","text":"getRandomValidator returns a validator from the known validators with probability about 20 %,\n otherwise it returns a random validator address generated from id.\n It can't return address(0);"},"functionSelector":"a64efe5d","implemented":true,"kind":"function","modifiers":[],"name":"getRandomValidator","nameLocation":"1735:18:100","parameters":{"id":57514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57513,"mutability":"mutable","name":"id","nameLocation":"1760:2:100","nodeType":"VariableDeclaration","scope":57555,"src":"1754:8:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57512,"name":"uint8","nodeType":"ElementaryTypeName","src":"1754:5:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1753:10:100"},"returnParameters":{"id":57517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57555,"src":"1785:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57515,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1784:9:100"},"scope":57882,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57587,"nodeType":"FunctionDefinition","src":"2093:267:100","nodes":[],"body":{"id":57586,"nodeType":"Block","src":"2176:184:100","nodes":[],"statements":[{"assignments":[57563],"declarations":[{"constant":false,"id":57563,"mutability":"mutable","name":"length","nameLocation":"2194:6:100","nodeType":"VariableDeclaration","scope":57586,"src":"2186:14:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57562,"name":"uint256","nodeType":"ElementaryTypeName","src":"2186:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57567,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57564,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57465,"src":"2203:16:100","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2220:6:100","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35624,"src":"2203:23:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":57566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2203:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2186:42:100"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57568,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57563,"src":"2242:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2252:1:100","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2242:11:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57577,"nodeType":"IfStatement","src":"2238:59:100","trueBody":{"id":57576,"nodeType":"Block","src":"2255:42:100","statements":[{"expression":{"arguments":[{"hexValue":"30","id":57573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2284:1:100","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":57572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2276:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57571,"name":"address","nodeType":"ElementaryTypeName","src":"2276:7:100","typeDescriptions":{}}},"id":57574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2276:10:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57561,"id":57575,"nodeType":"Return","src":"2269:17:100"}]}},{"expression":{"baseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57578,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57465,"src":"2313:16:100","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2330:6:100","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2313:23:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2313:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57584,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57581,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57557,"src":"2339:4:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":57582,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57563,"src":"2346:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2339:13:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2313:40:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57561,"id":57585,"nodeType":"Return","src":"2306:47:100"}]},"functionSelector":"f2a2870b","implemented":true,"kind":"function","modifiers":[],"name":"getRandomValidatorFromSetOrZero","nameLocation":"2102:31:100","parameters":{"id":57558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57557,"mutability":"mutable","name":"seed","nameLocation":"2140:4:100","nodeType":"VariableDeclaration","scope":57587,"src":"2134:10:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57556,"name":"uint8","nodeType":"ElementaryTypeName","src":"2134:5:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2133:12:100"},"returnParameters":{"id":57561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57587,"src":"2167:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57559,"name":"address","nodeType":"ElementaryTypeName","src":"2167:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2166:9:100"},"scope":57882,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57598,"nodeType":"FunctionDefinition","src":"2366:120:100","nodes":[],"body":{"id":57597,"nodeType":"Block","src":"2430:56:100","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57592,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57465,"src":"2447:16:100","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2464:6:100","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2447:23:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2447:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2473:6:100","memberName":"length","nodeType":"MemberAccess","src":"2447:32:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57591,"id":57596,"nodeType":"Return","src":"2440:39:100"}]},"functionSelector":"bc5683e1","implemented":true,"kind":"function","modifiers":[],"name":"joinedValidatorsNumber","nameLocation":"2375:22:100","parameters":{"id":57588,"nodeType":"ParameterList","parameters":[],"src":"2397:2:100"},"returnParameters":{"id":57591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57598,"src":"2421:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57589,"name":"uint256","nodeType":"ElementaryTypeName","src":"2421:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2420:9:100"},"scope":57882,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57609,"nodeType":"FunctionDefinition","src":"2492:116:100","nodes":[],"body":{"id":57608,"nodeType":"Block","src":"2559:49:100","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57604,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57465,"src":"2576:16:100","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2593:6:100","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2576:23:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2576:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":57603,"id":57607,"nodeType":"Return","src":"2569:32:100"}]},"functionSelector":"a0758127","implemented":true,"kind":"function","modifiers":[],"name":"joinedValidators","nameLocation":"2501:16:100","parameters":{"id":57599,"nodeType":"ParameterList","parameters":[],"src":"2517:2:100"},"returnParameters":{"id":57603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57609,"src":"2541:16:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":57600,"name":"address","nodeType":"ElementaryTypeName","src":"2541:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57601,"nodeType":"ArrayTypeName","src":"2541:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2540:18:100"},"scope":57882,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57682,"nodeType":"FunctionDefinition","src":"2614:557:100","nodes":[],"body":{"id":57681,"nodeType":"Block","src":"2661:510:100","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57616,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57611,"src":"2675:2:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2681:1:100","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2675:7:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57621,"nodeType":"IfStatement","src":"2671:44:100","trueBody":{"id":57620,"nodeType":"Block","src":"2684:31:100","statements":[{"functionReturnParameters":57615,"id":57619,"nodeType":"Return","src":"2698:7:100"}]}},{"expression":{"id":57630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57622,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57613,"src":"2724:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57624,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57613,"src":"2739:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":57625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:1:100","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":57626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2750:1:100","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":57627,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57462,"src":"2754:27:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2750:31:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57623,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"2733:5:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":57629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2733:49:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2724:58:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57631,"nodeType":"ExpressionStatement","src":"2724:58:100"},{"assignments":[57633,57635],"declarations":[{"constant":false,"id":57633,"mutability":"mutable","name":"validator","nameLocation":"2802:9:100","nodeType":"VariableDeclaration","scope":57681,"src":"2794:17:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57632,"name":"address","nodeType":"ElementaryTypeName","src":"2794:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57635,"mutability":"mutable","name":"publicKey","nameLocation":"2826:9:100","nodeType":"VariableDeclaration","scope":57681,"src":"2813:22:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57634,"name":"bytes","nodeType":"ElementaryTypeName","src":"2813:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57640,"initialValue":{"arguments":[{"id":57638,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57611,"src":"2872:2:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":57636,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57424,"src":"2839:9:100","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$57424_$","typeString":"type(library TestUtils)"}},"id":57637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2849:22:100","memberName":"deriveValidatorAddress","nodeType":"MemberAccess","referencedDeclaration":57147,"src":"2839:32:100","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint8_$returns$_t_address_$_t_bytes_memory_ptr_$","typeString":"function (uint8) pure returns (address,bytes memory)"}},"id":57639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:36:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2793:82:100"},{"expression":{"arguments":[{"id":57642,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57633,"src":"2891:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57643,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57613,"src":"2902:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57641,"name":"_pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57877,"src":"2886:4:100","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":57644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2886:23:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57645,"nodeType":"ExpressionStatement","src":"2886:23:100"},{"expression":{"arguments":[{"id":57649,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57633,"src":"2928:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57646,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"2919:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2922:5:100","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"2919:8:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2919:19:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57651,"nodeType":"ExpressionStatement","src":"2919:19:100"},{"expression":{"arguments":[{"id":57657,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57635,"src":"2981:9:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":57652,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57456,"src":"2948:12:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"id":57654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2961:4:100","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"2948:17:100","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":57656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":57655,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57613,"src":"2973:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2948:32:100","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":57658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2948:43:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57659,"nodeType":"ExpressionStatement","src":"2948:43:100"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57660,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57456,"src":"3001:12:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"id":57662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3014:17:100","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":58341,"src":"3001:30:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3001:32:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57664,"nodeType":"ExpressionStatement","src":"3001:32:100"},{"expression":{"id":57667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57665,"name":"ghost_stakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57475,"src":"3044:15:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57666,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57613,"src":"3063:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3044:25:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57668,"nodeType":"ExpressionStatement","src":"3044:25:100"},{"expression":{"id":57673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57669,"name":"ghost_validators_staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57469,"src":"3079:23:100","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57671,"indexExpression":{"id":57670,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57633,"src":"3103:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3079:34:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57672,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57613,"src":"3117:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3079:44:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57674,"nodeType":"ExpressionStatement","src":"3079:44:100"},{"expression":{"arguments":[{"id":57678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57633,"src":"3154:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57675,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57465,"src":"3133:16:100","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3150:3:100","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"3133:20:100","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":57679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3133:31:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57680,"nodeType":"ExpressionStatement","src":"3133:31:100"}]},"functionSelector":"bd0fa1b1","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"2623:4:100","parameters":{"id":57614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57611,"mutability":"mutable","name":"id","nameLocation":"2634:2:100","nodeType":"VariableDeclaration","scope":57682,"src":"2628:8:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57610,"name":"uint8","nodeType":"ElementaryTypeName","src":"2628:5:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57613,"mutability":"mutable","name":"amount","nameLocation":"2646:6:100","nodeType":"VariableDeclaration","scope":57682,"src":"2638:14:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2638:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2627:26:100"},"returnParameters":{"id":57615,"nodeType":"ParameterList","parameters":[],"src":"2661:0:100"},"scope":57882,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57739,"nodeType":"FunctionDefinition","src":"3177:415:100","nodes":[],"body":{"id":57738,"nodeType":"Block","src":"3225:367:100","nodes":[],"statements":[{"expression":{"id":57697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57689,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57686,"src":"3235:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57691,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57686,"src":"3250:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":57692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3258:1:100","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":57693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3261:1:100","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":57694,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57462,"src":"3265:27:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3261:31:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57690,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"3244:5:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":57696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3244:49:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3235:58:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57698,"nodeType":"ExpressionStatement","src":"3235:58:100"},{"assignments":[57700],"declarations":[{"constant":false,"id":57700,"mutability":"mutable","name":"validator","nameLocation":"3311:9:100","nodeType":"VariableDeclaration","scope":57738,"src":"3303:17:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57699,"name":"address","nodeType":"ElementaryTypeName","src":"3303:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57704,"initialValue":{"arguments":[{"id":57702,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57684,"src":"3342:2:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57701,"name":"getRandomValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57555,"src":"3323:18:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:22:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3303:42:100"},{"expression":{"arguments":[{"id":57706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57700,"src":"3360:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57707,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57686,"src":"3371:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57705,"name":"_pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57877,"src":"3355:4:100","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":57708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3355:23:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57709,"nodeType":"ExpressionStatement","src":"3355:23:100"},{"expression":{"arguments":[{"id":57713,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57700,"src":"3398:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57710,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3389:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3392:5:100","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"3389:8:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3389:19:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57715,"nodeType":"ExpressionStatement","src":"3389:19:100"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":57716,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57456,"src":"3418:12:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"id":57718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3431:5:100","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":51670,"src":"3418:18:100","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":57720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":57719,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57686,"src":"3444:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3418:33:100","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":57721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:35:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57722,"nodeType":"ExpressionStatement","src":"3418:35:100"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57723,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57456,"src":"3463:12:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"id":57725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3476:17:100","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":58341,"src":"3463:30:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3463:32:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57727,"nodeType":"ExpressionStatement","src":"3463:32:100"},{"expression":{"id":57730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57728,"name":"ghost_stakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57475,"src":"3506:15:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57729,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57686,"src":"3525:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3506:25:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57731,"nodeType":"ExpressionStatement","src":"3506:25:100"},{"expression":{"id":57736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57732,"name":"ghost_validators_staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57469,"src":"3541:23:100","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57734,"indexExpression":{"id":57733,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57700,"src":"3565:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3541:34:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57735,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57686,"src":"3579:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3541:44:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57737,"nodeType":"ExpressionStatement","src":"3541:44:100"}]},"functionSelector":"dd752e55","implemented":true,"kind":"function","modifiers":[],"name":"stake","nameLocation":"3186:5:100","parameters":{"id":57687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57684,"mutability":"mutable","name":"id","nameLocation":"3198:2:100","nodeType":"VariableDeclaration","scope":57739,"src":"3192:8:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57683,"name":"uint8","nodeType":"ElementaryTypeName","src":"3192:5:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57686,"mutability":"mutable","name":"amount","nameLocation":"3210:6:100","nodeType":"VariableDeclaration","scope":57739,"src":"3202:14:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57685,"name":"uint256","nodeType":"ElementaryTypeName","src":"3202:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3191:26:100"},"returnParameters":{"id":57688,"nodeType":"ParameterList","parameters":[],"src":"3225:0:100"},"scope":57882,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57790,"nodeType":"FunctionDefinition","src":"3598:381:100","nodes":[],"body":{"id":57789,"nodeType":"Block","src":"3648:331:100","nodes":[],"statements":[{"expression":{"id":57754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57746,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57743,"src":"3658:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57748,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57743,"src":"3673:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":57749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3681:1:100","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":57750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3684:1:100","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":57751,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57462,"src":"3688:27:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3684:31:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57747,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"3667:5:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":57753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3667:49:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3658:58:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57755,"nodeType":"ExpressionStatement","src":"3658:58:100"},{"assignments":[57757],"declarations":[{"constant":false,"id":57757,"mutability":"mutable","name":"validator","nameLocation":"3734:9:100","nodeType":"VariableDeclaration","scope":57789,"src":"3726:17:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57756,"name":"address","nodeType":"ElementaryTypeName","src":"3726:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57761,"initialValue":{"arguments":[{"id":57759,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57741,"src":"3765:2:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57758,"name":"getRandomValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57555,"src":"3746:18:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3746:22:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3726:42:100"},{"expression":{"arguments":[{"id":57765,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57757,"src":"3788:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57762,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3779:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3782:5:100","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"3779:8:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3779:19:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57767,"nodeType":"ExpressionStatement","src":"3779:19:100"},{"expression":{"arguments":[{"id":57771,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57743,"src":"3829:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57768,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57456,"src":"3808:12:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"id":57770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3821:7:100","memberName":"unstake","nodeType":"MemberAccess","referencedDeclaration":51742,"src":"3808:20:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":57772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3808:28:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57773,"nodeType":"ExpressionStatement","src":"3808:28:100"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57774,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57456,"src":"3846:12:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"id":57776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3859:17:100","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":58341,"src":"3846:30:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3846:32:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57778,"nodeType":"ExpressionStatement","src":"3846:32:100"},{"expression":{"id":57781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57779,"name":"ghost_unstakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57477,"src":"3889:17:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57780,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57743,"src":"3910:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3889:27:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57782,"nodeType":"ExpressionStatement","src":"3889:27:100"},{"expression":{"id":57787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57783,"name":"ghost_validators_unstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57473,"src":"3926:25:100","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57785,"indexExpression":{"id":57784,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57757,"src":"3952:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3926:36:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57786,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57743,"src":"3966:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3926:46:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57788,"nodeType":"ExpressionStatement","src":"3926:46:100"}]},"functionSelector":"b4545b9e","implemented":true,"kind":"function","modifiers":[],"name":"unstake","nameLocation":"3607:7:100","parameters":{"id":57744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57741,"mutability":"mutable","name":"id","nameLocation":"3621:2:100","nodeType":"VariableDeclaration","scope":57790,"src":"3615:8:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57740,"name":"uint8","nodeType":"ElementaryTypeName","src":"3615:5:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57743,"mutability":"mutable","name":"amount","nameLocation":"3633:6:100","nodeType":"VariableDeclaration","scope":57790,"src":"3625:14:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57742,"name":"uint256","nodeType":"ElementaryTypeName","src":"3625:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3614:26:100"},"returnParameters":{"id":57745,"nodeType":"ParameterList","parameters":[],"src":"3648:0:100"},"scope":57882,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57855,"nodeType":"FunctionDefinition","src":"3985:545:100","nodes":[],"body":{"id":57854,"nodeType":"Block","src":"4035:495:100","nodes":[],"statements":[{"assignments":[57798],"declarations":[{"constant":false,"id":57798,"mutability":"mutable","name":"validator","nameLocation":"4053:9:100","nodeType":"VariableDeclaration","scope":57854,"src":"4045:17:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57797,"name":"address","nodeType":"ElementaryTypeName","src":"4045:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57802,"initialValue":{"arguments":[{"id":57800,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57792,"src":"4097:2:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57799,"name":"getRandomValidatorFromSetOrZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57587,"src":"4065:31:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4065:35:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4045:55:100"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57803,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57798,"src":"4114:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":57806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4135:1:100","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":57805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4127:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57804,"name":"address","nodeType":"ElementaryTypeName","src":"4127:7:100","typeDescriptions":{}}},"id":57807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4127:10:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4114:23:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57812,"nodeType":"IfStatement","src":"4110:70:100","trueBody":{"id":57811,"nodeType":"Block","src":"4139:41:100","statements":[{"expression":{"id":57809,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57798,"src":"4160:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57796,"id":57810,"nodeType":"Return","src":"4153:16:100"}]}},{"assignments":[57814],"declarations":[{"constant":false,"id":57814,"mutability":"mutable","name":"amount","nameLocation":"4198:6:100","nodeType":"VariableDeclaration","scope":57854,"src":"4190:14:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57813,"name":"uint256","nodeType":"ElementaryTypeName","src":"4190:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57819,"initialValue":{"arguments":[{"id":57817,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57798,"src":"4247:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57815,"name":"getterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57459,"src":"4207:11:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":57816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4219:27:100","memberName":"getTotalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":50963,"src":"4207:39:100","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":57818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4207:50:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4190:67:100"},{"expression":{"arguments":[{"id":57823,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57798,"src":"4277:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57820,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4268:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4271:5:100","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"4268:8:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4268:19:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57825,"nodeType":"ExpressionStatement","src":"4268:19:100"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57826,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57456,"src":"4297:12:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"id":57828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4310:5:100","memberName":"leave","nodeType":"MemberAccess","referencedDeclaration":51862,"src":"4297:18:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:20:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57830,"nodeType":"ExpressionStatement","src":"4297:20:100"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57831,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57456,"src":"4327:12:100","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58342","typeString":"contract SubnetActorMock"}},"id":57833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4340:17:100","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":58341,"src":"4327:30:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4327:32:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57835,"nodeType":"ExpressionStatement","src":"4327:32:100"},{"expression":{"arguments":[{"id":57839,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57798,"src":"4394:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57836,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57465,"src":"4370:16:100","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4387:6:100","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35582,"src":"4370:23:100","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":57840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4370:34:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57841,"nodeType":"ExpressionStatement","src":"4370:34:100"},{"expression":{"id":57846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57842,"name":"ghost_validators_unstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57473,"src":"4414:25:100","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57844,"indexExpression":{"id":57843,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57798,"src":"4440:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4414:36:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57845,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57814,"src":"4453:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4414:45:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57847,"nodeType":"ExpressionStatement","src":"4414:45:100"},{"expression":{"id":57850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57848,"name":"ghost_unstakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57477,"src":"4469:17:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57849,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57814,"src":"4490:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4469:27:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57851,"nodeType":"ExpressionStatement","src":"4469:27:100"},{"expression":{"id":57852,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57798,"src":"4514:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57796,"id":57853,"nodeType":"Return","src":"4507:16:100"}]},"functionSelector":"2cb54025","implemented":true,"kind":"function","modifiers":[],"name":"leave","nameLocation":"3994:5:100","parameters":{"id":57793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57792,"mutability":"mutable","name":"id","nameLocation":"4006:2:100","nodeType":"VariableDeclaration","scope":57855,"src":"4000:8:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57791,"name":"uint8","nodeType":"ElementaryTypeName","src":"4000:5:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3999:10:100"},"returnParameters":{"id":57796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57795,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57855,"src":"4026:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57794,"name":"address","nodeType":"ElementaryTypeName","src":"4026:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4025:9:100"},"scope":57882,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57877,"nodeType":"FunctionDefinition","src":"4536:143:100","nodes":[],"body":{"id":57876,"nodeType":"Block","src":"4587:92:100","nodes":[],"statements":[{"assignments":[57863,null],"declarations":[{"constant":false,"id":57863,"mutability":"mutable","name":"s","nameLocation":"4603:1:100","nodeType":"VariableDeclaration","scope":57876,"src":"4598:6:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57862,"name":"bool","nodeType":"ElementaryTypeName","src":"4598:4:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":57870,"initialValue":{"arguments":[{"hexValue":"","id":57868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4633:2:100","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":57864,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57857,"src":"4610:2:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4613:4:100","memberName":"call","nodeType":"MemberAccess","src":"4610:7:100","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":57867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":57866,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57859,"src":"4625:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4610:22:100","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":57869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4610:26:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4597:39:100"},{"expression":{"arguments":[{"id":57872,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57863,"src":"4654:1:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7061792829206661696c6564","id":57873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4657:14:100","typeDescriptions":{"typeIdentifier":"t_stringliteral_708a605926d72cc62b9c45ef20f4a9137befa0fe0d1bddbd83963293deff2e9a","typeString":"literal_string \"pay() failed\""},"value":"pay() failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_708a605926d72cc62b9c45ef20f4a9137befa0fe0d1bddbd83963293deff2e9a","typeString":"literal_string \"pay() failed\""}],"id":57871,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4646:7:100","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4646:26:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57875,"nodeType":"ExpressionStatement","src":"4646:26:100"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pay","nameLocation":"4545:4:100","parameters":{"id":57860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57857,"mutability":"mutable","name":"to","nameLocation":"4558:2:100","nodeType":"VariableDeclaration","scope":57877,"src":"4550:10:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57856,"name":"address","nodeType":"ElementaryTypeName","src":"4550:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57859,"mutability":"mutable","name":"amount","nameLocation":"4570:6:100","nodeType":"VariableDeclaration","scope":57877,"src":"4562:14:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57858,"name":"uint256","nodeType":"ElementaryTypeName","src":"4562:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4549:28:100"},"returnParameters":{"id":57861,"nodeType":"ParameterList","parameters":[],"src":"4587:0:100"},"scope":57882,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57881,"nodeType":"FunctionDefinition","src":"4685:29:100","nodes":[],"body":{"id":57880,"nodeType":"Block","src":"4712:2:100","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":57878,"nodeType":"ParameterList","parameters":[],"src":"4692:2:100"},"returnParameters":{"id":57879,"nodeType":"ParameterList","parameters":[],"src":"4712:0:100"},"scope":57882,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":57444,"name":"CommonBase","nameLocations":["632:10:100"],"nodeType":"IdentifierPath","referencedDeclaration":3777,"src":"632:10:100"},"id":57445,"nodeType":"InheritanceSpecifier","src":"632:10:100"},{"baseName":{"id":57446,"name":"StdCheats","nameLocations":["644:9:100"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"644:9:100"},"id":57447,"nodeType":"InheritanceSpecifier","src":"644:9:100"},{"baseName":{"id":57448,"name":"StdUtils","nameLocations":["655:8:100"],"nodeType":"IdentifierPath","referencedDeclaration":12691,"src":"655:8:100"},"id":57449,"nodeType":"InheritanceSpecifier","src":"655:8:100"}],"canonicalName":"SubnetActorHandler","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[57882,12691,8180,7501,3777],"name":"SubnetActorHandler","nameLocation":"610:18:100","scope":57883,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":100} \ No newline at end of file diff --git a/.out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json b/.out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json index f0b91c0f5..778f64835 100644 --- a/.out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json +++ b/.out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addBootstrapNode","inputs":[{"name":"netAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"reward","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"publicKey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFederatedPower","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"publicKeys","type":"bytes[]","internalType":"bytes[]"},{"name":"powers","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateActiveQuorumSignatures","inputs":[{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"BottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BottomUpCheckpointSubmitted","inputs":[{"name":"checkpoint","type":"tuple","indexed":false,"internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NextBottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"CollateralIsZero","inputs":[]},{"type":"error","name":"DuplicatedGenesisValidator","inputs":[]},{"type":"error","name":"EmptyAddress","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidFederationPayload","inputs":[]},{"type":"error","name":"InvalidPublicKeyLength","inputs":[]},{"type":"error","name":"InvalidSignatureErr","inputs":[{"name":"","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NoCollateralToWithdraw","inputs":[]},{"type":"error","name":"NotAllValidatorsHaveLeft","inputs":[]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughCollateral","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughGenesisValidators","inputs":[]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"NotOwnerOfPublicKey","inputs":[]},{"type":"error","name":"NotValidator","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SubnetAlreadyBootstrapped","inputs":[]},{"type":"error","name":"SubnetAlreadyKilled","inputs":[]},{"type":"error","name":"WithdrawExceedingCollateral","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657615081908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119e15750806310fd426114611870578063268119361461165d5780632e17de78146116305780633a4b66f1146115545780633f4ba83a146114dc57806341c0e1b51461144b5780634c860af6146113f75780634e71d92d146112635780635c975abb146112335780636170b16214610e8357806366783c9b14610da25780638456cb5914610d3a578063b9ee2bb91461093b578063cc2dc2b9146108bb578063d66d9e1914610870578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a25760008051602061502c83398151915260018154146101905780600183925561011d611cde565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611ac3565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b03811161086c576101d6903690600401611b69565b906024356001600160401b038111610868576101f6903690600401611b69565b916044356001600160401b03811161086457610216903690600401611b69565b909461022061411c565b610228611c99565b60ff601354166003811015610850576001036108205781810361080e5784810361080e5760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888613eca565b906140e0565b6001600160a01b0361029c610297848689613f0b565b611ea9565b166001600160a01b03909116036104fd576103066102be610297838588613f0b565b6102c9838989613eca565b6102d785888d969496613f0b565b356102f2604051958693604060208601526060850191613abb565b90604083015203601f198101845283611af1565b6001600160401b03601c541660405161031e81611ad6565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103518161202f565b61035a8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761039282610389600186015461204f565b60018601612142565b602090601f8311600114610460579282600080516020614fec83398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b82612267565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613ea5565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614fec8339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613f56565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611ac3565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828786613eca565b6001600160a01b039190828061060e610297858d8d613f0b565b169116036104fd5761062c610627610297838b8b613f0b565b6131c1565b6107fc576106c391610656610645610297848c8c613f0b565b610650848a89613eca565b91614003565b610679610667610297848c8c613f0b565b61067284878a613f0b565b3590612758565b610687610297838b8b613f0b565b90610693838689613f0b565b35906106a0848a89613eca565b9590604051936106af85611ad6565b845260209683888601961686523691611b2d565b9260408301938452600154600160401b8110156104e7578060016106ea9201600155613f1b565b9290926107e657600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104e75761073882610732855461204f565b85612142565b80601f83116001146107775750819060019560009261076c575b5050600019600383901b1c191690841b1790555b01610516565b015190503880610752565b91929394601f1984168560005283600020936000905b8282106107ce575050916001969594929183889593106107b5575b505050811b019055610766565b015160001960f88460031b161c191690553880806107a8565b8060018697829497870151815501960194019061078d565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b61084c61082b613e28565b60405163015538b160e01b8152602060048201529182916024830190613ea5565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a25760008051602061502c8339815191526001815414610190578060018392556108a7611cde565b6108af61411c565b6108b761490d565b5580f35b50346101a25760603660031901126101a2576001600160401b036004358181116109375736602382011215610937576108fe903690602481600401359101611bc4565b60443591821161093757366023830112156109375761092a610934923690602481600401359101611c1a565b9060243590614cb0565b80f35b8280fd5b50346101a25760031960603682011261086c576001600160401b036004351161086c576080600435600401916004353603011261086c576024356001600160401b03811161093757610991903690600401611b69565b91906044356001600160401b038111610d36576109b2903690600401611b69565b916109bb611cde565b60055494600b54956109cd8782611d09565b60246004350135141580610d26575b610d145760405190610a1460208301836109f68a83611df8565b0393610a0a601f1995868101835282611af1565b5190209882611d09565b6004356024013503610c1157505091610a37610a3f92610a459697943691611bc4565b933691611c1a565b91614cb0565b6024600435013582528160205260408220908035604219600435360301811215610868576004350191600483016001600160401b03610a8382611e49565b16936001600160401b03199485845416178355610aa96001926024848601930190611e5d565b91906001600160401b038311610bfd57600160401b8311610bfd578154838355808410610be2575b509087959493929190865260208620865b838110610bbb575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b1e86611e49565b16908254161790556024600435013582526022602052610b42604083203390611faa565b5060043560240135600555600e546001600160a01b0316803b15610937576040516347dc9b4f60e01b81529183918391829084908290610b859060048301611df8565b03925af180156105c957610ba7575b5050610ba261093491611e49565b61227f565b610bb090611ac3565b61086c578138610b94565b84959697506020610bcf8495969394611ea9565b848301558a989796959401929101610ae2565b82895260208920610bf7918101908501611e92565b38610ad1565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c2957505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610cf3575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610cc8915082611af1565b51902014610cd35780f35b6024600435013581526022602052610cef604082203390611faa565b5080f35b82546001600160a01b03168552889550602090940193918101918101610c87565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156109dc565b8480fd5b50346101a257806003193601126101a257610d53611c99565b610d5b611cde565b60008051602061500c833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a25760043560008051602061502c833981519152600181541461019057600181558115610e715760ff60125460081c16610e5f57338352600360205281604084205410610e4d576108b78392338452600360205260408420610e158282546127ec565b9055610e23816002546127ec565b6002553384526003602052604084205415610e3f575b33613cc7565b610e4833613d41565b610e39565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b03811161086c573660238201121561086c576001600160401b0381600401351161086c5736602482600401358301011161086c57600160008051602061502c833981519152541461019057600160008051602061502c83398151915255610eff611cde565b610f0761411c565b60ff60125460081c1680611226575b3415611214573360009081526015602052604090206002015461119f57604182600401350361118d57336001600160a01b03610f596004850135602486016140e0565b16036104fd57610f9c57806024610f769260040135910133614003565b610f80343361413d565b610f88614571565b8060008051602061502c8339815191525580f35b610fae36826004013560248401611b2d565b6001600160401b03601c54169060405190610fc882611ad6565b600282526020820190815233604083015282600052601d6020526040600020908251610ff38161202f565b610ffc8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761102b82610389600186015461204f565b602090601f8311600114611105579282600080516020614fec8339815191529795936002936110e298966000926110fa575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036110a682612267565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613abb565b9060608301520390a16110f53433614357565b610f88565b01519050388061105d565b906001840160005260206000209160005b601f19851681106111755750836002936110e2989693600193600080516020614fec8339815191529b9997601f1981161061115c575b505050811b016001820155611075565b015160001960f88460031b161c1916905538808061114c565b91926020600181928685015181550194019201611116565b6040516318dca5e960e21b8152600490fd5b61084c6040516111ae81611ad6565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b604051635a78c58160e11b8152600490fd5b61122e61455c565b610f16565b50346101a257806003193601126101a257602060ff60008051602061500c83398151915254166040519015158152f35b50346101a257806003193601126101a25760019060008051602061502c8339815191528281541461019057828155611299611cde565b336000908152601f602052604090209283549061ffff908183169283156113e557829060101c16918391808795818a01915b61135f575b50505086611341937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611348575b6113298133613cc7565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561131f565b9091939483811696828810156113dc578760005260208091858252604060002060405161138b81611aa8565b898254928383520154938491015243106113d157859493889688946113b286958a95611d09565b9c600052526000826040822082815501550116966000190116946112cb565b9850505094936112d0565b965094936112d0565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561086c57611418611cde565b600e546001600160a01b031633036114395761093490602435600435614b05565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a25761146461411c565b61ffff61147a8160195416826016541690612742565b166114ca576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a2576114f5611c99565b60008051602061500c833981519152805460ff8116156115425760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611568611cde565b61157061411c565b61157861455c565b34156112145733600090815260156020526040902060020154156115bf5760125460081c60ff166115b5576115ad343361413d565b610934614571565b6109343433614357565b61084c6040516115ce81611ad6565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b50346101a25760203660031901126101a25761164a611cde565b61165261411c565b61093460043561463d565b50346101a25760031960603682011261086c576004356001600160401b03918282116108685760608260040191833603011261086857602435838111610d36576116ab903690600401611b69565b919060443585811161186c576116c5903690600401611b69565b916024860135966006549687891061182157604401906116e58287611e5d565b9190506009541680911161185a576116fd8287611e5d565b9050141580611833575b611821576117159085611e5d565b90501561180f5787946040516020810190611742816117348985613b45565b03601f198101835282611af1565b519020968803611773575050505050506007541461175e575080f35b81526023602052610cef604082203390611faa565b61178d9392610a3788969893610a3f939a989a3691611bc4565b80602060405161179c81611aa8565b848152015281600655600755825260236020526117bd604083203390611faa565b50600e546001600160a01b031690813b1561018c5782916117f491604051948580948193630bed761560e01b835260048301613b45565b03925af180156105c957611806575080f35b61093490611ac3565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118465788061515611707565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b03916004358381116109375736602382011215610937576118b6903690602481600401359101611b2d565b926118bf611cde565b3383526017825261ffff604084205416156119c9578351156119b75733835260248252604083209184519182116119a3576118fe82610732855461204f565b80601f831160011461193f5750839482939492611934575b50508160011b916000199060031b1c19161790555b610cef33611f41565b015190503880611916565b90601f198316958486528286209286905b88821061198b57505083600195969710611972575b505050811b01905561192b565b015160001960f88460031b161c19169055388080611965565b80600185968294968601518155019501930190611950565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b90508160031936011261086c573415611a99575060ff60125460081c16610e5f573381526003602052604081205415611a40575b338152600360205260408120611a2c348254611d09565b9055611a3a34600254611d09565b60025580f35b600454600160401b811015611a8557611a62816001611a809301600455611ebd565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a15565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b929192611b3982611b12565b91611b476040519384611af1565b829481845281830111611b64578281602093846000960137010152565b600080fd5b9181601f84011215611b64578235916001600160401b038311611b64576020808501948460051b010111611b6457565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b0382168203611b6457565b9291611bcf82611b99565b91611bdd6040519384611af1565b829481845260208094019160051b8101928311611b6457905b828210611c035750505050565b838091611c0f84611bb0565b815201910190611bf6565b92919092611c2784611b99565b91611c356040519384611af1565b829480845260208094019060051b830192828411611b645780915b848310611c5f57505050505050565b82356001600160401b038111611b6457820184601f82011215611b64578691611c8e8683858095359101611b2d565b815201920191611c50565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611ccc57565b6040516330cd747160e01b8152600490fd5b60ff60008051602061500c8339815191525416611cf757565b60405163d93c066560e01b8152600490fd5b91908201809211611d1657565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215611b64570190565b35906001600160401b0382168203611b6457565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578160051b36038313611b6457565b60408201916001600160401b03611d9e83611d40565b1681526060611db260209384810190611d54565b839195604086839601525201929160005b828110611dd1575050505090565b909192938280600192838060a01b03611de989611bb0565b16815201950193929101611dc3565b6020815260806001600160401b03611e426060611e28611e188780611d2c565b85602088015260a0870190611d88565b956020810135604087015260408101358287015201611d40565b1691015290565b356001600160401b0381168103611b645790565b903590601e1981360301821215611b6457018035906001600160401b038211611b6457602001918160051b36038313611b6457565b818110611e9d575050565b60008155600101611e92565b356001600160a01b0381168103611b645790565b600454811015611ef45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611ef45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fa557602554600160401b811015611a85579082611f91611f7a84600160409601602555611f0a565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461202957845494600160401b861015612015576001860180825586101561200157836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561203957565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561207f575b602083101461206957565b634e487b7160e01b600052602260045260246000fd5b91607f169161205e565b906000929180549161209a8361204f565b9182825260019384811690816000146120fc57506001146120bc575b50505050565b90919394506000526020928360002092846000945b8386106120e85750505050010190388080806120b6565b8054858701830152940193859082016120d1565b9294505050602093945060ff191683830152151560051b010190388080806120b6565b60005b8381106121325750506000910152565b8181015183820152602001612122565b9190601f811161215157505050565b61217d926000526020600020906020601f840160051c8301931061217f575b601f0160051c0190611e92565b565b9091508190612170565b908082146122635761219b815461204f565b906001600160401b0382116104e75781906121c0826121ba865461204f565b86612142565b600090601f83116001146121f7576000926121ec575b50508160011b916000199060031b1c1916179055565b0154905038806121d6565b81526020808220858352818320935090601f1985169083905b82821061224a575050908460019594939210612231575b505050811b019055565b015460001960f88460031b161c19169055388080612227565b8495819295850154815560018091019601940190612210565b5050565b9060016001600160401b0380931601918211611d1657565b601c546001600160401b03828116929080831684106122aa5760405163040aaa0560e11b8152600490fd5b808360401c1684106120b65780604093841c165b848282161115612325575050916020916122f87f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612267565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612343826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123688161202f565b8085036123da5750506003612399600161239f94959697019260018060a01b03166000526015602052604060002090565b01612189565b6123bc816001600160401b0316600052601d602052604060002090565b916000908184556001936123d18582016127f9565b015501166122be565b909194506123e78161202f565b60039181830361258557505087519361240f85612408816001809a01612089565b0386611af1565b84518501916020928a87858301920312611b645783870151898111611b645787019681603f89011215611b645787858d9901519261245861244f85611b12565b9a519a8b611af1565b838a528d8483010111611b64578c926124769184888c01910161211f565b015192816124968460018060a01b03166000526015602052604060002090565b01918751918a8311612570578a986124b8846124b2875461204f565b87612142565b81601f85116001146124fd57506124ed9798999a84939284926000956124f2575b50501b92600019911b1c1916179055612758565b61239f565b0151935038806124d9565b91601f9b9493919b1984169b866000528c84600020946000915b8210612555575050846124ed9a9b9c9d1061253b575b50505050811b019055612758565b01519060f884600019921b161c191690553880808061252d565b8383015186558f9d509487019492830192908101908e612517565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125a185612408816001809501612089565b60208086805181010312611b645781818c970151956125bf8161202f565b036126e45784906125d08285612842565b601e546125dd9043611d09565b928751906125ea82611aa8565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061262d91612742565b169c60009d8e5282870188528d20925183555191015561264c9061272f565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b15610937578291602483928a5195869384926345f5448560e01b845260048401525af19081156126d9575090849392916126ca575b5061239f565b6126d390611ac3565b386126c4565b8751903d90823e3d90fd5b5050829350916126f4919261279c565b600e541690813b15611b64578651916316989f6f60e21b83528260048160009485945af19081156126d9575090849392916126ca575061239f565b90600161ffff80931601918211611d1657565b91909161ffff80809416911601918211611d1657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278357505050565b8111156127935761217d916128d1565b61217d91612c17565b9061217d916127e460018060a01b038216928360005260156020526127c981600160406000200154611d09565b93600052601560205283600160406000200155601454611d09565b6014556128d1565b91908203918211611d1657565b612803815461204f565b908161280d575050565b81601f6000931160011461281f575055565b90808391825261283e601f60208420940160051c840160018501611e92565b5555565b906128af6128b79260018060a01b038116906000828152601560205261286f8560016040842001546127ec565b92815260156020526040812060028101848154811590816128c8575b50156128bc575090826003926128aa94835581600184015555016127f9565b612c17565b6014546127ec565b601455565b92505060010155612c17565b9050153861288b565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b02578360135460081c16846016541610612ace5761291661379a565b60019283825260188652828a8320541688612930826131c1565b10612a4857508152601a855283898220541661299f57505050505061299a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461297a8361314c565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129a8866137ed565b926129b2876131c1565b935b8186821611612a0a575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd90806040810161299a565b8085612a2986617fff8f95871c1694858852601b8c52872054166131c1565b1015612a425790612a3b8392826139fb565b90506129b4565b506129be565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061299a95601a91612a83613480565b835252205416612ac0575b612a978461340b565b612aa08361314c565b516001600160a01b03928316815292909116602083015281906040820190565b612ac984613224565b612a8e565b505050505061299a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b97929150612b1385949796956137b6565b97612b1d856131c1565b97612b278a61339c565b8460165416905b858116828111612be05782811015612bc4575080612b4e612b549261272f565b9061374a565b9b909b5b8b1115612b7757612b69908c61396c565b612b728b61339c565b612b2e565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979150806040810161299a565b849c919c5260188352612bdb8588862054166131c1565b612b58565b5050505050505061299a91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197945061297a565b9060018060a01b039283831691600093838552602094601a865261ffff96604095888784205416613016578083526017885288878420541615613005578415612e9f5750612c64836137b6565b97612c6e846131c1565b985b6001808383161115612e905781617fff911c169081855260188a528a612c9a858b882054166131c1565b1115612caf57612caa908261396c565b612c70565b505091939597509193955b816019541615612e8657612ccc61379a565b6001918285526018825283898620541693612ce6856131c1565b95612cef6137a8565b848152601b808552828c8320541697612d07896131c1565b11612d5a57505098516001600160a01b0390961686525050505060208201929092529192507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197919050806040810161299a565b91939597509193959750612d6c613480565b83601954168015612e755780612d87612da3929896986138b3565b87612d9182613210565b1661ffff196019541617601955613812565b838252808552612db7838b842054166131c1565b9484809760028160195416925b612e02575b5050505050505050505061299a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759394612a978461340b565b818116838111612e6f578e9080851115612e5457505080612e25612e2b9261272f565b906133b3565b9990995b891015612e4f57612e40908a6139fb565b612e498961339c565b87612dc4565b612dc9565b8752858552862054909990612e6a9088166131c1565b612e2f565b50612dc9565b8a516340d9b01160e01b8152600490fd5b5050505050509050565b50509193959750919395612cba565b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b929450612ed388949996989297996135db565b8851908152a18260195416928315948515612ef2575050505050509050565b612efa6137a8565b600193848152601b808552828a8320541696612f15886131c1565b98612e755780612d87612f2a929896986138b3565b838252808552612f3e838b842054166131c1565b9484809760028160195416925b612f98575b50505050505050505050612f897f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b0390a180388080808080612e86565b818116838111612fff578e9080851115612fe457505080612e25612fbb9261272f565b9990995b891015612fdf57612fd0908a6139fb565b612fd98961339c565b87612f4b565b612f50565b8752858552862054909990612ffa9088166131c1565b612fbf565b50612f50565b8651632a55ca5360e01b8152600490fd5b84969892949793959715613111575061fffe9193613033866137ed565b9361303d876131c1565b9480966001958692831b168160195416925b6130a3575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd919050806040810161299a565b81811683811161310b578d90848110156130ef57505080612e256130c69261272f565b9890985b8810156130ea576130db90896139fb565b6130e48861339c565b8661304f565b613054565b8652601b85528520549098906131069087166131c1565b6130ca565b50613054565b949150506131459194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613224565b51908152a1565b61217d906131bb61ffff91613164836019541661272f565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556131c1565b90613347565b60ff601354166003811015612039576001036131f2576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d1657565b61322d906137ed565b61ffff9081601954169161324183836139fb565b8061324b84613210565b1661ffff19601954161760195561326183613812565b808216809314613342579161fffe91600091808352601b9060209382855260018060a01b03926040926132a161329b8686862054166131c1565b87613347565b82528086526132b48484842054166131c1565b9585986001988997881b168160195416995b6132d8575b5050505050505050505050565b8181168a811161333c578a811015613321575080612e256132f89261272f565b9a909a5b89101561331c5761330d908b6139fb565b6133168a61339c565b876132c6565b6132cb565b859b919b528383526133378787872054166131c1565b6132fc565b506132cb565b505050565b9190915b60018061ffff831611156133965781617fff911c1690836133816000848152601b602052604060018060a01b03912054166131c1565b10156133965761339190826139fb565b61334b565b50509050565b60011b906201fffe61fffe831692168203611d1657565b91909161ffff92838216600052601b6020526133f660018060a01b036133df81604060002054166131c1565b958316600052601b602052604060002054166131c1565b908185106134045750509190565b9350919050565b61217d9061347a61ffff91613423836016541661272f565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556131c1565b906136fb565b61ffff80601654169081156135c9579060019061349f81831115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161353991908a61352a83613210565b16906016541617601655613854565b84825280865261354d8484842054166131c1565b95859860028160165416995b61356a575050505050505050505050565b8181168a811161333c578a8110156135ae575080612b4e61358a9261272f565b9a909a5b89111561331c5761359f908b61396c565b6135a88a61339c565b87613559565b859b919b528383526135c48787872054166131c1565b61358e565b6040516340d9b01160e01b8152600490fd5b6135e4906137b6565b9061ffff908160165416906135f9828561396c565b8261360383613210565b1661ffff19601654161760165561361982613854565b8284168092146136f55760009291929183835260189260209484865260018060a01b03916040916136576136518585852054166131c1565b8a6136fb565b815285875261366a8383832054166131c1565b956136748961339c565b978560165416985b8681168a81116136e7578a8110156136cc575080612b4e61369c9261272f565b9a909a5b8911156136bf576136b1908b61396c565b6136ba8a61339c565b61367c565b5050505050505092505050565b849b919b528282526136e28686862054166131c1565b6136a0565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133965781617fff911c16908361373560008481526018602052604060018060a01b03912054166131c1565b111561339657613745908261396c565b6136ff565b919061ffff808416600052601860205261378b60018060a01b0361377481604060002054166131c1565b9284166000526018602052604060002054166131c1565b93848211156134045750509190565b61ffff60165416156135c957565b61ffff60195416156135c957565b6001600160a01b031660009081526017602052604090205461ffff169081156137db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561389d57565b634e487b7160e01b600052600160045260246000fd5b6138d661ffff8060195416926138cc8460011115613896565b1691821115613896565b601b60208181527f9fafca4c9c0d5c2cbf85f49fd8ab8212430ce78c2a0cb75b51e0f9c4f9ace00380546000858152604080822080546001600160a01b03948516808552601a8852838520805461ffff19908116909b1790559416808452918320805490981660019081179098559590945284546001600160a01b03199081169092179094559390925281549092169091179055565b61398761ffff8080601654169316936138cc84861115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a1661ffff8080601954169316936138cc84861115613896565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578136038313611b6457565b908060209392818452848401376000828201840152601f01601f1916010190565b613b05613afa613aec8380611d2c565b604085526040850190611d88565b916020810190611d2c565b91602081830391015281359160ff8316809303611b6457613b32604091613b429484526020810190613a8a565b9190928160208201520191613abb565b90565b6020808252613b548380611d2c565b6060918281850152613b6b60809283860190611d88565b613b82604096838101358888015287810190611d54565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bbd57505050505050505050505090565b909192939495969798999a82828203018752613bd98c85611d2c565b90813560de1983360301811215611b64578782528201918a90888e6001600160401b03613c50613c40613c2d613c24613c128b80611d2c565b60e080988c01526101208b0190613adc565b978a018a611d2c565b96603f1997888a830301868b0152613adc565b928d8901358d8901528801611d40565b169060a091828701528a8701359263ffffffff60e01b8416809403611b64578f95613c87613c979460c096878b01528a018a613a8a565b9290918985030190890152613abb565b940135610100840152013590811515809203611b64578a01529a8801999897966001019587019493929190613ba8565b814710613d29576000918291829182916001600160a01b03165af13d15613d24573d613cf281611b12565b90613d006040519283611af1565b8152600060203d92013e5b15613d1257565b604051630a12f52160e11b8152600490fd5b613d0b565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d575750505050565b613d6081611ebd565b90546003916001600160a01b039190831b1c811685821614613d86575050600101613d4a565b929350939060001991828101908111613e135790613db784613daa613dd694611ebd565b905490891b1c1691611ebd565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613dfe570192613de984611ebd565b81939154921b1b1916905555388080806120b6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613ebe8151809281855285808601910161211f565b601f01601f1916010190565b9190811015611ef45760051b81013590601e1981360301821215611b645701908135916001600160401b038311611b64576020018236038113611b64579190565b9190811015611ef45760051b0190565b600154811015611ef4576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613fb257505050505050505090565b909192939495856003613ff1839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612089565b9a019401940192969594939190613fa0565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e7576140448161403e845461204f565b84612142565b6000601f821160011461407d57819293946000926140725750508160011b916000199060031b1c1916179055565b0135905038806121d6565b601f198216948382526020918281209281905b8882106140c8575050836001959697106140ae57505050811b019055565b0135600019600384901b60f8161c19169055388080612227565b80600184968294958701358155019501920190614090565b906140ed60418214613896565b80600111611b64576141089136916000190190600101611b2d565b80516020909101206001600160a01b031690565b60ff60125460101c1661412b57565b60405163248c8efb60e11b8152600490fd5b906141529061414c8184614330565b8261279c565b60ff60125460081c16156141635750565b60018054600082815b8381106142e0575b50501561418057505050565b6001600160a01b0383166000908152601560205260409020828101546141d6949091600301604051926141b284611ad6565b83526020936141dd8585019260018060a01b03809516845260405198898092612089565b0388611af1565b60408401968752600160401b8110156104e75780866141fe92018755613f1b565b9290926107e6576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104e757614245836124b2875461204f565b81601f841160011461427e5750928293918392600094614273575b50501b916000199060031b1c1916179055565b015192503880614260565b919083601f1981168760005284600020946000905b888383106142c657505050106142ad57505050811b019055565b015160001960f88460031b161c19169055388080612227565b858701518855909601959485019487935090810190614293565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146143265701839061416c565b5090508238614174565b60018060a01b031660005260156020526143536002604060002001918254611d09565b9055565b9190604051928160208501526020845261437084611aa8565b6001600160401b03601c5416936040519461438a86611ad6565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516143be8161202f565b6143c78161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576143ff816143f6600185015461204f565b60018501612142565b6020601f82116001146144d1576144b8949282600080516020614fec83398151915297959360029361217d9c9d6000926144c6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361447d82612267565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a1614330565b015190503880614434565b6001830160005260206000209960005b601f198416811061454457509260018361217d9b9c6002946144b89997600080516020614fec8339815191529b9997601f1981161061452b575b505050811b01600182015561444c565b015160001960f88460031b161c1916905538808061451b565b828201518c556001909b019a602092830192016144e1565b60ff6013541660038110156120395761082057565b601454600a54811015614582575b50565b61ffff601654166001600160401b03600c5416111561459e5750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806145db81613f56565b0390a160018060a01b03600e5416906145f76002548092611d09565b91803b15611b645760246000926040519485938492637903ab2760e11b845260048401525af18015614631571561457f5761217d90611ac3565b6040513d6000823e3d90fd5b61464561455c565b80156146ac573360009081526015602052604090206002015480156119c95781101561469b5760ff60125460081c16156146835761217d9033614711565b8061469161217d92336146be565b610e398133612842565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146ff576146eb916127ec565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472a84611aa8565b6001600160401b03601c5416936040519461474486611ad6565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516147788161202f565b6147818161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576147b0816143f6600185015461204f565b6020601f821160011461488257614869949282600080516020614fec83398151915297959360029361217d9c9d600092614877575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482e82612267565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a16146be565b0151905038806147e5565b6001830160005260206000209960005b601f19841681106148f557509260018361217d9b9c6002946148699997600080516020614fec8339815191529b9997601f198116106148dc575b505050811b0160018201556147fd565b015160001960f88460031b161c191690553880806148cc565b828201518c556001909b019a60209283019201614892565b60ff60125460081c166149fa575b3360009081526015602052604090206002015480156119c95761493d33614a07565b5060009033825260246020528160408120614958815461204f565b806149bd575b50505060ff60125460081c161561497a5761217d915033614711565b604061217d92338152600360205220548061499b575b5061469181336146be565b806149ab6149b7926002546127ec565b600255610e3933613d41565b38614990565b82601f82116001146149d5575050555b81388061495e565b90918082526149f3601f60208420940160051c840160018501611e92565b55556149cd565b614a0261455c565b61491b565b6000818152602660205260408120549091908015614aec5760001990808201818111614ad85760255490838201918211614ac457808203614a90575b5050506025548015614a7c57810190614a5b82611f0a565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aae614a9f611f7a93611f0a565b90549060031b1c928392611f0a565b9055845260266020526040842055388080614a43565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611ef45760209160051b010190565b9190918215613342576040908151906020938483018381106001600160401b038211176104e75784526000928390526002811015614c9c5780614bfd5750600b54614b4f916127ec565b8152602283528181208251808286829454938481520190855286852092855b88828210614be757505050614b8592500382611af1565b928351948515614bdf57858110614bdf5785900493825b868110614bac5750505050505050565b6001906001600160a01b03614bc18285614af1565b5116855260218452858520614bd7888254611d09565b905501614b9c565b505050505050565b8554845260019586019587955093019201614b6e565b846001859214600014614c4d57606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cbd83611b99565b93604094614ccd86519182611af1565b848152601f19614cdc86611b99565b0194602095368784013760005b818110614db357505060009461ffff8060165416600192839182945b614d62575b505050505060ff600e5460a01c1694858102958187041490151715611d16576064614d36950491614e2a565b9015614d40575050565b60068110156120395760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614dab5760009081526018855220548493929186918591614da191614d9b906001600160a01b03166131c1565b90611d09565b9b01169493614d05565b505098614d0a565b6001600160a01b0380614dc68387614af1565b51166000526017885261ffff89600020541615614e065790614df5600192614dee8388614af1565b51166131c1565b614dff8286614af1565b5201614ce9565b8890614e1460249387614af1565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f125782518514801590614f07575b614efa579392919085945b848610614e72575050505050501015614e6a57600090600590565b600190600090565b909192939495614e8c614e858884614af1565b5184614f1f565b50614e968161202f565b614ee9576001600160a01b0380614ead8a88614af1565b5116911603614ed957614ecd600191614ec68988614af1565b5190611d09565b96019493929190614e4f565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e44565b5050505050905090600290565b8151919060418303614f5057614f4992506020820151906060604084015193015160001a90614f5b565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fdf57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fd35780516001600160a01b03811615614fca57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122078a0ac48511a213e0eba4669384b0aa5256d166c6201d23a213b1f403cf446a764736f6c63430008130033","sourceMap":"1637:19376:85:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":315,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119e15750806310fd426114611870578063268119361461165d5780632e17de78146116305780633a4b66f1146115545780633f4ba83a146114dc57806341c0e1b51461144b5780634c860af6146113f75780634e71d92d146112635780635c975abb146112335780636170b16214610e8357806366783c9b14610da25780638456cb5914610d3a578063b9ee2bb91461093b578063cc2dc2b9146108bb578063d66d9e1914610870578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a25760008051602061502c83398151915260018154146101905780600183925561011d611cde565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611ac3565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b03811161086c576101d6903690600401611b69565b906024356001600160401b038111610868576101f6903690600401611b69565b916044356001600160401b03811161086457610216903690600401611b69565b909461022061411c565b610228611c99565b60ff601354166003811015610850576001036108205781810361080e5784810361080e5760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888613eca565b906140e0565b6001600160a01b0361029c610297848689613f0b565b611ea9565b166001600160a01b03909116036104fd576103066102be610297838588613f0b565b6102c9838989613eca565b6102d785888d969496613f0b565b356102f2604051958693604060208601526060850191613abb565b90604083015203601f198101845283611af1565b6001600160401b03601c541660405161031e81611ad6565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103518161202f565b61035a8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761039282610389600186015461204f565b60018601612142565b602090601f8311600114610460579282600080516020614fec83398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b82612267565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613ea5565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614fec8339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613f56565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611ac3565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828786613eca565b6001600160a01b039190828061060e610297858d8d613f0b565b169116036104fd5761062c610627610297838b8b613f0b565b6131c1565b6107fc576106c391610656610645610297848c8c613f0b565b610650848a89613eca565b91614003565b610679610667610297848c8c613f0b565b61067284878a613f0b565b3590612758565b610687610297838b8b613f0b565b90610693838689613f0b565b35906106a0848a89613eca565b9590604051936106af85611ad6565b845260209683888601961686523691611b2d565b9260408301938452600154600160401b8110156104e7578060016106ea9201600155613f1b565b9290926107e657600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104e75761073882610732855461204f565b85612142565b80601f83116001146107775750819060019560009261076c575b5050600019600383901b1c191690841b1790555b01610516565b015190503880610752565b91929394601f1984168560005283600020936000905b8282106107ce575050916001969594929183889593106107b5575b505050811b019055610766565b015160001960f88460031b161c191690553880806107a8565b8060018697829497870151815501960194019061078d565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b61084c61082b613e28565b60405163015538b160e01b8152602060048201529182916024830190613ea5565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a25760008051602061502c8339815191526001815414610190578060018392556108a7611cde565b6108af61411c565b6108b761490d565b5580f35b50346101a25760603660031901126101a2576001600160401b036004358181116109375736602382011215610937576108fe903690602481600401359101611bc4565b60443591821161093757366023830112156109375761092a610934923690602481600401359101611c1a565b9060243590614cb0565b80f35b8280fd5b50346101a25760031960603682011261086c576001600160401b036004351161086c576080600435600401916004353603011261086c576024356001600160401b03811161093757610991903690600401611b69565b91906044356001600160401b038111610d36576109b2903690600401611b69565b916109bb611cde565b60055494600b54956109cd8782611d09565b60246004350135141580610d26575b610d145760405190610a1460208301836109f68a83611df8565b0393610a0a601f1995868101835282611af1565b5190209882611d09565b6004356024013503610c1157505091610a37610a3f92610a459697943691611bc4565b933691611c1a565b91614cb0565b6024600435013582528160205260408220908035604219600435360301811215610868576004350191600483016001600160401b03610a8382611e49565b16936001600160401b03199485845416178355610aa96001926024848601930190611e5d565b91906001600160401b038311610bfd57600160401b8311610bfd578154838355808410610be2575b509087959493929190865260208620865b838110610bbb575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b1e86611e49565b16908254161790556024600435013582526022602052610b42604083203390611faa565b5060043560240135600555600e546001600160a01b0316803b15610937576040516347dc9b4f60e01b81529183918391829084908290610b859060048301611df8565b03925af180156105c957610ba7575b5050610ba261093491611e49565b61227f565b610bb090611ac3565b61086c578138610b94565b84959697506020610bcf8495969394611ea9565b848301558a989796959401929101610ae2565b82895260208920610bf7918101908501611e92565b38610ad1565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c2957505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610cf3575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610cc8915082611af1565b51902014610cd35780f35b6024600435013581526022602052610cef604082203390611faa565b5080f35b82546001600160a01b03168552889550602090940193918101918101610c87565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156109dc565b8480fd5b50346101a257806003193601126101a257610d53611c99565b610d5b611cde565b60008051602061500c833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a25760043560008051602061502c833981519152600181541461019057600181558115610e715760ff60125460081c16610e5f57338352600360205281604084205410610e4d576108b78392338452600360205260408420610e158282546127ec565b9055610e23816002546127ec565b6002553384526003602052604084205415610e3f575b33613cc7565b610e4833613d41565b610e39565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b03811161086c573660238201121561086c576001600160401b0381600401351161086c5736602482600401358301011161086c57600160008051602061502c833981519152541461019057600160008051602061502c83398151915255610eff611cde565b610f0761411c565b60ff60125460081c1680611226575b3415611214573360009081526015602052604090206002015461119f57604182600401350361118d57336001600160a01b03610f596004850135602486016140e0565b16036104fd57610f9c57806024610f769260040135910133614003565b610f80343361413d565b610f88614571565b8060008051602061502c8339815191525580f35b610fae36826004013560248401611b2d565b6001600160401b03601c54169060405190610fc882611ad6565b600282526020820190815233604083015282600052601d6020526040600020908251610ff38161202f565b610ffc8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761102b82610389600186015461204f565b602090601f8311600114611105579282600080516020614fec8339815191529795936002936110e298966000926110fa575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036110a682612267565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613abb565b9060608301520390a16110f53433614357565b610f88565b01519050388061105d565b906001840160005260206000209160005b601f19851681106111755750836002936110e2989693600193600080516020614fec8339815191529b9997601f1981161061115c575b505050811b016001820155611075565b015160001960f88460031b161c1916905538808061114c565b91926020600181928685015181550194019201611116565b6040516318dca5e960e21b8152600490fd5b61084c6040516111ae81611ad6565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b604051635a78c58160e11b8152600490fd5b61122e61455c565b610f16565b50346101a257806003193601126101a257602060ff60008051602061500c83398151915254166040519015158152f35b50346101a257806003193601126101a25760019060008051602061502c8339815191528281541461019057828155611299611cde565b336000908152601f602052604090209283549061ffff908183169283156113e557829060101c16918391808795818a01915b61135f575b50505086611341937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611348575b6113298133613cc7565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561131f565b9091939483811696828810156113dc578760005260208091858252604060002060405161138b81611aa8565b898254928383520154938491015243106113d157859493889688946113b286958a95611d09565b9c600052526000826040822082815501550116966000190116946112cb565b9850505094936112d0565b965094936112d0565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561086c57611418611cde565b600e546001600160a01b031633036114395761093490602435600435614b05565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a25761146461411c565b61ffff61147a8160195416826016541690612742565b166114ca576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a2576114f5611c99565b60008051602061500c833981519152805460ff8116156115425760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611568611cde565b61157061411c565b61157861455c565b34156112145733600090815260156020526040902060020154156115bf5760125460081c60ff166115b5576115ad343361413d565b610934614571565b6109343433614357565b61084c6040516115ce81611ad6565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b50346101a25760203660031901126101a25761164a611cde565b61165261411c565b61093460043561463d565b50346101a25760031960603682011261086c576004356001600160401b03918282116108685760608260040191833603011261086857602435838111610d36576116ab903690600401611b69565b919060443585811161186c576116c5903690600401611b69565b916024860135966006549687891061182157604401906116e58287611e5d565b9190506009541680911161185a576116fd8287611e5d565b9050141580611833575b611821576117159085611e5d565b90501561180f5787946040516020810190611742816117348985613b45565b03601f198101835282611af1565b519020968803611773575050505050506007541461175e575080f35b81526023602052610cef604082203390611faa565b61178d9392610a3788969893610a3f939a989a3691611bc4565b80602060405161179c81611aa8565b848152015281600655600755825260236020526117bd604083203390611faa565b50600e546001600160a01b031690813b1561018c5782916117f491604051948580948193630bed761560e01b835260048301613b45565b03925af180156105c957611806575080f35b61093490611ac3565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118465788061515611707565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b03916004358381116109375736602382011215610937576118b6903690602481600401359101611b2d565b926118bf611cde565b3383526017825261ffff604084205416156119c9578351156119b75733835260248252604083209184519182116119a3576118fe82610732855461204f565b80601f831160011461193f5750839482939492611934575b50508160011b916000199060031b1c19161790555b610cef33611f41565b015190503880611916565b90601f198316958486528286209286905b88821061198b57505083600195969710611972575b505050811b01905561192b565b015160001960f88460031b161c19169055388080611965565b80600185968294968601518155019501930190611950565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b90508160031936011261086c573415611a99575060ff60125460081c16610e5f573381526003602052604081205415611a40575b338152600360205260408120611a2c348254611d09565b9055611a3a34600254611d09565b60025580f35b600454600160401b811015611a8557611a62816001611a809301600455611ebd565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a15565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b929192611b3982611b12565b91611b476040519384611af1565b829481845281830111611b64578281602093846000960137010152565b600080fd5b9181601f84011215611b64578235916001600160401b038311611b64576020808501948460051b010111611b6457565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b0382168203611b6457565b9291611bcf82611b99565b91611bdd6040519384611af1565b829481845260208094019160051b8101928311611b6457905b828210611c035750505050565b838091611c0f84611bb0565b815201910190611bf6565b92919092611c2784611b99565b91611c356040519384611af1565b829480845260208094019060051b830192828411611b645780915b848310611c5f57505050505050565b82356001600160401b038111611b6457820184601f82011215611b64578691611c8e8683858095359101611b2d565b815201920191611c50565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611ccc57565b6040516330cd747160e01b8152600490fd5b60ff60008051602061500c8339815191525416611cf757565b60405163d93c066560e01b8152600490fd5b91908201809211611d1657565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215611b64570190565b35906001600160401b0382168203611b6457565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578160051b36038313611b6457565b60408201916001600160401b03611d9e83611d40565b1681526060611db260209384810190611d54565b839195604086839601525201929160005b828110611dd1575050505090565b909192938280600192838060a01b03611de989611bb0565b16815201950193929101611dc3565b6020815260806001600160401b03611e426060611e28611e188780611d2c565b85602088015260a0870190611d88565b956020810135604087015260408101358287015201611d40565b1691015290565b356001600160401b0381168103611b645790565b903590601e1981360301821215611b6457018035906001600160401b038211611b6457602001918160051b36038313611b6457565b818110611e9d575050565b60008155600101611e92565b356001600160a01b0381168103611b645790565b600454811015611ef45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611ef45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fa557602554600160401b811015611a85579082611f91611f7a84600160409601602555611f0a565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461202957845494600160401b861015612015576001860180825586101561200157836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561203957565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561207f575b602083101461206957565b634e487b7160e01b600052602260045260246000fd5b91607f169161205e565b906000929180549161209a8361204f565b9182825260019384811690816000146120fc57506001146120bc575b50505050565b90919394506000526020928360002092846000945b8386106120e85750505050010190388080806120b6565b8054858701830152940193859082016120d1565b9294505050602093945060ff191683830152151560051b010190388080806120b6565b60005b8381106121325750506000910152565b8181015183820152602001612122565b9190601f811161215157505050565b61217d926000526020600020906020601f840160051c8301931061217f575b601f0160051c0190611e92565b565b9091508190612170565b908082146122635761219b815461204f565b906001600160401b0382116104e75781906121c0826121ba865461204f565b86612142565b600090601f83116001146121f7576000926121ec575b50508160011b916000199060031b1c1916179055565b0154905038806121d6565b81526020808220858352818320935090601f1985169083905b82821061224a575050908460019594939210612231575b505050811b019055565b015460001960f88460031b161c19169055388080612227565b8495819295850154815560018091019601940190612210565b5050565b9060016001600160401b0380931601918211611d1657565b601c546001600160401b03828116929080831684106122aa5760405163040aaa0560e11b8152600490fd5b808360401c1684106120b65780604093841c165b848282161115612325575050916020916122f87f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612267565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612343826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123688161202f565b8085036123da5750506003612399600161239f94959697019260018060a01b03166000526015602052604060002090565b01612189565b6123bc816001600160401b0316600052601d602052604060002090565b916000908184556001936123d18582016127f9565b015501166122be565b909194506123e78161202f565b60039181830361258557505087519361240f85612408816001809a01612089565b0386611af1565b84518501916020928a87858301920312611b645783870151898111611b645787019681603f89011215611b645787858d9901519261245861244f85611b12565b9a519a8b611af1565b838a528d8483010111611b64578c926124769184888c01910161211f565b015192816124968460018060a01b03166000526015602052604060002090565b01918751918a8311612570578a986124b8846124b2875461204f565b87612142565b81601f85116001146124fd57506124ed9798999a84939284926000956124f2575b50501b92600019911b1c1916179055612758565b61239f565b0151935038806124d9565b91601f9b9493919b1984169b866000528c84600020946000915b8210612555575050846124ed9a9b9c9d1061253b575b50505050811b019055612758565b01519060f884600019921b161c191690553880808061252d565b8383015186558f9d509487019492830192908101908e612517565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125a185612408816001809501612089565b60208086805181010312611b645781818c970151956125bf8161202f565b036126e45784906125d08285612842565b601e546125dd9043611d09565b928751906125ea82611aa8565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061262d91612742565b169c60009d8e5282870188528d20925183555191015561264c9061272f565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b15610937578291602483928a5195869384926345f5448560e01b845260048401525af19081156126d9575090849392916126ca575b5061239f565b6126d390611ac3565b386126c4565b8751903d90823e3d90fd5b5050829350916126f4919261279c565b600e541690813b15611b64578651916316989f6f60e21b83528260048160009485945af19081156126d9575090849392916126ca575061239f565b90600161ffff80931601918211611d1657565b91909161ffff80809416911601918211611d1657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278357505050565b8111156127935761217d916128d1565b61217d91612c17565b9061217d916127e460018060a01b038216928360005260156020526127c981600160406000200154611d09565b93600052601560205283600160406000200155601454611d09565b6014556128d1565b91908203918211611d1657565b612803815461204f565b908161280d575050565b81601f6000931160011461281f575055565b90808391825261283e601f60208420940160051c840160018501611e92565b5555565b906128af6128b79260018060a01b038116906000828152601560205261286f8560016040842001546127ec565b92815260156020526040812060028101848154811590816128c8575b50156128bc575090826003926128aa94835581600184015555016127f9565b612c17565b6014546127ec565b601455565b92505060010155612c17565b9050153861288b565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b02578360135460081c16846016541610612ace5761291661379a565b60019283825260188652828a8320541688612930826131c1565b10612a4857508152601a855283898220541661299f57505050505061299a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461297a8361314c565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129a8866137ed565b926129b2876131c1565b935b8186821611612a0a575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd90806040810161299a565b8085612a2986617fff8f95871c1694858852601b8c52872054166131c1565b1015612a425790612a3b8392826139fb565b90506129b4565b506129be565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061299a95601a91612a83613480565b835252205416612ac0575b612a978461340b565b612aa08361314c565b516001600160a01b03928316815292909116602083015281906040820190565b612ac984613224565b612a8e565b505050505061299a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b97929150612b1385949796956137b6565b97612b1d856131c1565b97612b278a61339c565b8460165416905b858116828111612be05782811015612bc4575080612b4e612b549261272f565b9061374a565b9b909b5b8b1115612b7757612b69908c61396c565b612b728b61339c565b612b2e565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979150806040810161299a565b849c919c5260188352612bdb8588862054166131c1565b612b58565b5050505050505061299a91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197945061297a565b9060018060a01b039283831691600093838552602094601a865261ffff96604095888784205416613016578083526017885288878420541615613005578415612e9f5750612c64836137b6565b97612c6e846131c1565b985b6001808383161115612e905781617fff911c169081855260188a528a612c9a858b882054166131c1565b1115612caf57612caa908261396c565b612c70565b505091939597509193955b816019541615612e8657612ccc61379a565b6001918285526018825283898620541693612ce6856131c1565b95612cef6137a8565b848152601b808552828c8320541697612d07896131c1565b11612d5a57505098516001600160a01b0390961686525050505060208201929092529192507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197919050806040810161299a565b91939597509193959750612d6c613480565b83601954168015612e755780612d87612da3929896986138b3565b87612d9182613210565b1661ffff196019541617601955613812565b838252808552612db7838b842054166131c1565b9484809760028160195416925b612e02575b5050505050505050505061299a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759394612a978461340b565b818116838111612e6f578e9080851115612e5457505080612e25612e2b9261272f565b906133b3565b9990995b891015612e4f57612e40908a6139fb565b612e498961339c565b87612dc4565b612dc9565b8752858552862054909990612e6a9088166131c1565b612e2f565b50612dc9565b8a516340d9b01160e01b8152600490fd5b5050505050509050565b50509193959750919395612cba565b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b929450612ed388949996989297996135db565b8851908152a18260195416928315948515612ef2575050505050509050565b612efa6137a8565b600193848152601b808552828a8320541696612f15886131c1565b98612e755780612d87612f2a929896986138b3565b838252808552612f3e838b842054166131c1565b9484809760028160195416925b612f98575b50505050505050505050612f897f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b0390a180388080808080612e86565b818116838111612fff578e9080851115612fe457505080612e25612fbb9261272f565b9990995b891015612fdf57612fd0908a6139fb565b612fd98961339c565b87612f4b565b612f50565b8752858552862054909990612ffa9088166131c1565b612fbf565b50612f50565b8651632a55ca5360e01b8152600490fd5b84969892949793959715613111575061fffe9193613033866137ed565b9361303d876131c1565b9480966001958692831b168160195416925b6130a3575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd919050806040810161299a565b81811683811161310b578d90848110156130ef57505080612e256130c69261272f565b9890985b8810156130ea576130db90896139fb565b6130e48861339c565b8661304f565b613054565b8652601b85528520549098906131069087166131c1565b6130ca565b50613054565b949150506131459194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613224565b51908152a1565b61217d906131bb61ffff91613164836019541661272f565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556131c1565b90613347565b60ff601354166003811015612039576001036131f2576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d1657565b61322d906137ed565b61ffff9081601954169161324183836139fb565b8061324b84613210565b1661ffff19601954161760195561326183613812565b808216809314613342579161fffe91600091808352601b9060209382855260018060a01b03926040926132a161329b8686862054166131c1565b87613347565b82528086526132b48484842054166131c1565b9585986001988997881b168160195416995b6132d8575b5050505050505050505050565b8181168a811161333c578a811015613321575080612e256132f89261272f565b9a909a5b89101561331c5761330d908b6139fb565b6133168a61339c565b876132c6565b6132cb565b859b919b528383526133378787872054166131c1565b6132fc565b506132cb565b505050565b9190915b60018061ffff831611156133965781617fff911c1690836133816000848152601b602052604060018060a01b03912054166131c1565b10156133965761339190826139fb565b61334b565b50509050565b60011b906201fffe61fffe831692168203611d1657565b91909161ffff92838216600052601b6020526133f660018060a01b036133df81604060002054166131c1565b958316600052601b602052604060002054166131c1565b908185106134045750509190565b9350919050565b61217d9061347a61ffff91613423836016541661272f565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556131c1565b906136fb565b61ffff80601654169081156135c9579060019061349f81831115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161353991908a61352a83613210565b16906016541617601655613854565b84825280865261354d8484842054166131c1565b95859860028160165416995b61356a575050505050505050505050565b8181168a811161333c578a8110156135ae575080612b4e61358a9261272f565b9a909a5b89111561331c5761359f908b61396c565b6135a88a61339c565b87613559565b859b919b528383526135c48787872054166131c1565b61358e565b6040516340d9b01160e01b8152600490fd5b6135e4906137b6565b9061ffff908160165416906135f9828561396c565b8261360383613210565b1661ffff19601654161760165561361982613854565b8284168092146136f55760009291929183835260189260209484865260018060a01b03916040916136576136518585852054166131c1565b8a6136fb565b815285875261366a8383832054166131c1565b956136748961339c565b978560165416985b8681168a81116136e7578a8110156136cc575080612b4e61369c9261272f565b9a909a5b8911156136bf576136b1908b61396c565b6136ba8a61339c565b61367c565b5050505050505092505050565b849b919b528282526136e28686862054166131c1565b6136a0565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133965781617fff911c16908361373560008481526018602052604060018060a01b03912054166131c1565b111561339657613745908261396c565b6136ff565b919061ffff808416600052601860205261378b60018060a01b0361377481604060002054166131c1565b9284166000526018602052604060002054166131c1565b93848211156134045750509190565b61ffff60165416156135c957565b61ffff60195416156135c957565b6001600160a01b031660009081526017602052604090205461ffff169081156137db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561389d57565b634e487b7160e01b600052600160045260246000fd5b6138d661ffff8060195416926138cc8460011115613896565b1691821115613896565b601b60208181527f9fafca4c9c0d5c2cbf85f49fd8ab8212430ce78c2a0cb75b51e0f9c4f9ace00380546000858152604080822080546001600160a01b03948516808552601a8852838520805461ffff19908116909b1790559416808452918320805490981660019081179098559590945284546001600160a01b03199081169092179094559390925281549092169091179055565b61398761ffff8080601654169316936138cc84861115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a1661ffff8080601954169316936138cc84861115613896565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578136038313611b6457565b908060209392818452848401376000828201840152601f01601f1916010190565b613b05613afa613aec8380611d2c565b604085526040850190611d88565b916020810190611d2c565b91602081830391015281359160ff8316809303611b6457613b32604091613b429484526020810190613a8a565b9190928160208201520191613abb565b90565b6020808252613b548380611d2c565b6060918281850152613b6b60809283860190611d88565b613b82604096838101358888015287810190611d54565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bbd57505050505050505050505090565b909192939495969798999a82828203018752613bd98c85611d2c565b90813560de1983360301811215611b64578782528201918a90888e6001600160401b03613c50613c40613c2d613c24613c128b80611d2c565b60e080988c01526101208b0190613adc565b978a018a611d2c565b96603f1997888a830301868b0152613adc565b928d8901358d8901528801611d40565b169060a091828701528a8701359263ffffffff60e01b8416809403611b64578f95613c87613c979460c096878b01528a018a613a8a565b9290918985030190890152613abb565b940135610100840152013590811515809203611b64578a01529a8801999897966001019587019493929190613ba8565b814710613d29576000918291829182916001600160a01b03165af13d15613d24573d613cf281611b12565b90613d006040519283611af1565b8152600060203d92013e5b15613d1257565b604051630a12f52160e11b8152600490fd5b613d0b565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d575750505050565b613d6081611ebd565b90546003916001600160a01b039190831b1c811685821614613d86575050600101613d4a565b929350939060001991828101908111613e135790613db784613daa613dd694611ebd565b905490891b1c1691611ebd565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613dfe570192613de984611ebd565b81939154921b1b1916905555388080806120b6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613ebe8151809281855285808601910161211f565b601f01601f1916010190565b9190811015611ef45760051b81013590601e1981360301821215611b645701908135916001600160401b038311611b64576020018236038113611b64579190565b9190811015611ef45760051b0190565b600154811015611ef4576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613fb257505050505050505090565b909192939495856003613ff1839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612089565b9a019401940192969594939190613fa0565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e7576140448161403e845461204f565b84612142565b6000601f821160011461407d57819293946000926140725750508160011b916000199060031b1c1916179055565b0135905038806121d6565b601f198216948382526020918281209281905b8882106140c8575050836001959697106140ae57505050811b019055565b0135600019600384901b60f8161c19169055388080612227565b80600184968294958701358155019501920190614090565b906140ed60418214613896565b80600111611b64576141089136916000190190600101611b2d565b80516020909101206001600160a01b031690565b60ff60125460101c1661412b57565b60405163248c8efb60e11b8152600490fd5b906141529061414c8184614330565b8261279c565b60ff60125460081c16156141635750565b60018054600082815b8381106142e0575b50501561418057505050565b6001600160a01b0383166000908152601560205260409020828101546141d6949091600301604051926141b284611ad6565b83526020936141dd8585019260018060a01b03809516845260405198898092612089565b0388611af1565b60408401968752600160401b8110156104e75780866141fe92018755613f1b565b9290926107e6576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104e757614245836124b2875461204f565b81601f841160011461427e5750928293918392600094614273575b50501b916000199060031b1c1916179055565b015192503880614260565b919083601f1981168760005284600020946000905b888383106142c657505050106142ad57505050811b019055565b015160001960f88460031b161c19169055388080612227565b858701518855909601959485019487935090810190614293565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146143265701839061416c565b5090508238614174565b60018060a01b031660005260156020526143536002604060002001918254611d09565b9055565b9190604051928160208501526020845261437084611aa8565b6001600160401b03601c5416936040519461438a86611ad6565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516143be8161202f565b6143c78161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576143ff816143f6600185015461204f565b60018501612142565b6020601f82116001146144d1576144b8949282600080516020614fec83398151915297959360029361217d9c9d6000926144c6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361447d82612267565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a1614330565b015190503880614434565b6001830160005260206000209960005b601f198416811061454457509260018361217d9b9c6002946144b89997600080516020614fec8339815191529b9997601f1981161061452b575b505050811b01600182015561444c565b015160001960f88460031b161c1916905538808061451b565b828201518c556001909b019a602092830192016144e1565b60ff6013541660038110156120395761082057565b601454600a54811015614582575b50565b61ffff601654166001600160401b03600c5416111561459e5750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806145db81613f56565b0390a160018060a01b03600e5416906145f76002548092611d09565b91803b15611b645760246000926040519485938492637903ab2760e11b845260048401525af18015614631571561457f5761217d90611ac3565b6040513d6000823e3d90fd5b61464561455c565b80156146ac573360009081526015602052604090206002015480156119c95781101561469b5760ff60125460081c16156146835761217d9033614711565b8061469161217d92336146be565b610e398133612842565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146ff576146eb916127ec565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472a84611aa8565b6001600160401b03601c5416936040519461474486611ad6565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516147788161202f565b6147818161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576147b0816143f6600185015461204f565b6020601f821160011461488257614869949282600080516020614fec83398151915297959360029361217d9c9d600092614877575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482e82612267565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a16146be565b0151905038806147e5565b6001830160005260206000209960005b601f19841681106148f557509260018361217d9b9c6002946148699997600080516020614fec8339815191529b9997601f198116106148dc575b505050811b0160018201556147fd565b015160001960f88460031b161c191690553880806148cc565b828201518c556001909b019a60209283019201614892565b60ff60125460081c166149fa575b3360009081526015602052604090206002015480156119c95761493d33614a07565b5060009033825260246020528160408120614958815461204f565b806149bd575b50505060ff60125460081c161561497a5761217d915033614711565b604061217d92338152600360205220548061499b575b5061469181336146be565b806149ab6149b7926002546127ec565b600255610e3933613d41565b38614990565b82601f82116001146149d5575050555b81388061495e565b90918082526149f3601f60208420940160051c840160018501611e92565b55556149cd565b614a0261455c565b61491b565b6000818152602660205260408120549091908015614aec5760001990808201818111614ad85760255490838201918211614ac457808203614a90575b5050506025548015614a7c57810190614a5b82611f0a565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aae614a9f611f7a93611f0a565b90549060031b1c928392611f0a565b9055845260266020526040842055388080614a43565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611ef45760209160051b010190565b9190918215613342576040908151906020938483018381106001600160401b038211176104e75784526000928390526002811015614c9c5780614bfd5750600b54614b4f916127ec565b8152602283528181208251808286829454938481520190855286852092855b88828210614be757505050614b8592500382611af1565b928351948515614bdf57858110614bdf5785900493825b868110614bac5750505050505050565b6001906001600160a01b03614bc18285614af1565b5116855260218452858520614bd7888254611d09565b905501614b9c565b505050505050565b8554845260019586019587955093019201614b6e565b846001859214600014614c4d57606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cbd83611b99565b93604094614ccd86519182611af1565b848152601f19614cdc86611b99565b0194602095368784013760005b818110614db357505060009461ffff8060165416600192839182945b614d62575b505050505060ff600e5460a01c1694858102958187041490151715611d16576064614d36950491614e2a565b9015614d40575050565b60068110156120395760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614dab5760009081526018855220548493929186918591614da191614d9b906001600160a01b03166131c1565b90611d09565b9b01169493614d05565b505098614d0a565b6001600160a01b0380614dc68387614af1565b51166000526017885261ffff89600020541615614e065790614df5600192614dee8388614af1565b51166131c1565b614dff8286614af1565b5201614ce9565b8890614e1460249387614af1565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f125782518514801590614f07575b614efa579392919085945b848610614e72575050505050501015614e6a57600090600590565b600190600090565b909192939495614e8c614e858884614af1565b5184614f1f565b50614e968161202f565b614ee9576001600160a01b0380614ead8a88614af1565b5116911603614ed957614ecd600191614ec68988614af1565b5190611d09565b96019493929190614e4f565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e44565b5050505050905090600290565b8151919060418303614f5057614f4992506020820151906060604084015193015160001a90614f5b565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fdf57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fd35780516001600160a01b03811615614fca57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122078a0ac48511a213e0eba4669384b0aa5256d166c6201d23a213b1f403cf446a764736f6c63430008130033","sourceMap":"1637:19376:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;1637:19376:85;;582:20:68;578:50;;1637:19376:85;477:1:68;1637:19376:85;;;982:72:66;;:::i;:::-;17146:10:85;:44;;;;;1637:19376;;;;;;;;;;;;17146:44;;17179:10;1637:19376;17146:44;;1637:19376;17146:44;;;;;;;;;;;1637:19376;;;;;;17146:44;;;;:::i;:::-;1637:19376;;17146:44;;;;1637:19376;;;17146:44;1637:19376;;;;;;;;;17146:44;1637:19376;;;578:50:68;1637:19376:85;;-1:-1:-1;;;611:17:68;;1637:19376:85;;611:17:68;1637:19376:85;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::i;:::-;4273:61:72;;;;:::i;:::-;10233:10:85;;:::i;:::-;1637:19376;1693:14:71;1637:19376:85;;;;;;;;1726:24:71;1693:57;1689:146;;10337:34:85;;;10333:98;;10445:38;;;10441:102;;10557:14;1637:19376;;;;;;;;6249:9:71;6260:10;;;;;;10553:229:85;;;;;;;1637:19376;;6249:9:71;6346:33;6365:13;;;;;:::i;:::-;6346:33;;:::i;:::-;-1:-1:-1;;;;;6417:13:71;;;;;;:::i;:::-;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;6397:33:71;6393:100;;1243:27:70;6684:13:71;;;;;;:::i;:::-;6709;;;;;:::i;:::-;6732:9;;;;;;;;:::i;:::-;1637:19376:85;;;;1243:27:70;;;1637:19376:85;;1243:27:70;;1637:19376:85;;;;;;:::i;:::-;;;;;;1243:27:70;1637:19376:85;;1243:27:70;;;;;;:::i;:::-;-1:-1:-1;;;;;21913:11:69;1637:19376:85;;;;;;;:::i;:::-;;;;;3528:63:70;;1637:19376:85;;;;;;;;;;;3528:63:70;;1637:19376:85;;;;3489:15:70;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;1726:24:71;1637:19376:85;;;;:::i;:::-;1726:24:71;1637:19376:85;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;1726:24:71;1637:19376:85;;;;;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;21913:11:69;1637:19376:85;;;21913:11:69;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1496:205:70;;;1637:19376:85;6249:9:71;;1637:19376:85;;;;-1:-1:-1;1637:19376:85;;;;;;1726:24:71;1637:19376:85;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;;1726:24:71;1637:19376:85;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;6393:100:71;1637:19376:85;;-1:-1:-1;;;6457:21:71;;1637:19376:85;;6457:21:71;10553:229:85;4447:9:71;;;;;;4458:10;;;;;;1637:19376:85;;;;;;-1:-1:-1;;;;;5341:15:71;1637:19376:85;;-1:-1:-1;5331:25:71;5327:91;;1637:19376:85;;;10557:14;1637:19376;;;10557:14;1637:19376;5464:39:71;1637:19376:85;;5464:39:71;;;;:::i;:::-;;;;5596:16;1637:19376:85;;;;;-1:-1:-1;;;;;1637:19376:85;5587:84:71;;;;;1637:19376:85;;;;;;;;;;;;5587:84:71;;;1637:19376:85;5587:84:71;;1637:19376:85;5587:84:71;;;;;;;;10553:229:85;;1637:19376;;5587:84:71;;;;:::i;:::-;1637:19376:85;;;;5587:84:71;1637:19376:85;;;;;;;;;5327:91:71;1637:19376:85;;-1:-1:-1;;;5379:28:71;;1637:19376:85;;5379:28:71;4447:9;4544:33;4563:13;;;;;:::i;4544:33::-;-1:-1:-1;;;;;1637:19376:85;;;;4615:13:71;;1637:19376:85;4615:13:71;;;:::i;:::-;1637:19376:85;;;4595:33:71;4591:100;;16026:34:69;4832:13:71;;;;;;:::i;:::-;16026:34:69;:::i;:::-;4808:112:71;;1637:19376:85;4968:13:71;4983;4968;;;;;;:::i;:::-;4983;;;;;:::i;:::-;;;:::i;:::-;19151:5:69;5051:13:71;;;;;;:::i;:::-;5066:9;;;;;:::i;:::-;1637:19376:85;19151:5:69;;:::i;:::-;5133:13:71;;;;;;:::i;:::-;5156:9;;;;;;:::i;:::-;1637:19376:85;5177:13:71;;;;;;:::i;:::-;1637:19376:85;;;;;;;;:::i;:::-;;;;5116:76:71;;;;;1637:19376:85;;;;;;;:::i;:::-;5116:76:71;1637:19376:85;5116:76:71;;1637:19376:85;;;1726:24:71;1637:19376:85;-1:-1:-1;;;1637:19376:85;;;;;;1726:24:71;1637:19376:85;;;1726:24:71;1637:19376:85;;:::i;:::-;;;;;;;;;;;1726:24:71;1637:19376:85;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;1726:24:71;1637:19376:85;;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;;;;;;;;;4447:9:71;;1637:19376:85;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4808:112:71;1637:19376:85;;-1:-1:-1;;;4877:28:71;;1637:19376:85;;4877:28:71;10441:102:85;1637:19376;;-1:-1:-1;;;10506:26:85;;1637:19376;;10506:26;1689:146:71;2502:71:45;1637:19376:85;;:::i;:::-;;;-1:-1:-1;;;1773:51:71;;1637:19376:85;;1773:51:71;;2502:71:45;1637:19376:85;;;;2502:71:45;;;;:::i;:::-;1773:51:71;;;1637:19376:85;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;1637:19376:85;;582:20:68;578:50;;1637:19376:85;477:1:68;1637:19376:85;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;;:::i;:::-;1637:19376:85;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::i;:::-;982:72:66;;;:::i;:::-;3298:30:85;1637:19376;;3331:21;1637:19376;3298:54;;;;;:::i;:::-;1637:19376;;;3272:22;1637:19376;3272:80;;:152;;;1637:19376;3255:236;;1637:19376;;3535:22;3599:54;1637:19376;3535:22;;;;;;;:::i;:::-;;1637:19376;3535:22;1637:19376;;3535:22;;;;;;;;:::i;:::-;1637:19376;3525:33;;3599:54;;;:::i;:::-;1637:19376;;;3272:22;1637:19376;3573:80;1637:19376;;;;;;;;3753:104;1637:19376;;;;;;:::i;:::-;;;;;:::i;:::-;3753:104;;:::i;:::-;1637:19376;;;3272:22;1637:19376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;:::i;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;;3569:2184;1637:19376;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;3272:22;;1637:19376;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;:::i;:::-;;;;;;;;;;;;3272:22;1637:19376;;;4241:35;1637:19376;;8399:50:36;1637:19376:85;;;4305:10;8399:50:36;;:::i;:::-;-1:-1:-1;1637:19376:85;;;3272:22;1637:19376;3298:30;1637:19376;4465:16;1637:19376;-1:-1:-1;;;;;1637:19376:85;4456:55;;;;;1637:19376;;-1:-1:-1;;;4456:55:85;;1637:19376;;;;;;;;;;;4456:55;;1637:19376;4456:55;;;:::i;:::-;;;;;;;;;;;1637:19376;4616:34;;;;;;:::i;:::-;;:::i;4456:55::-;;;;:::i;:::-;1637:19376;;4456:55;;;;1637:19376;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;3569:2184;1637:19376;;;;;;;;;;3272:22;1637:19376;4672:56;4668:1085;;3569:2184;;1637:19376;;4668:1085;1637:19376;;;3272:22;1637:19376;;;;;;;;;;;5461:58;1637:19376;5461:58;;1637:19376;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;5461:58;;;;;;;;-1:-1:-1;5461:58:85;;:::i;:::-;1637:19376;5451:69;;5538:36;5534:209;;1637:19376;;5534:209;1637:19376;;;3272:22;1637:19376;;;5653:35;1637:19376;;8399:50:36;1637:19376:85;;;5717:10;8399:50:36;;:::i;:::-;;1637:19376:85;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;3255:236;1637:19376;;-1:-1:-1;;;3456:24:85;;1637:19376;;3456:24;3272:152;1637:19376;;;;;3272:22;1637:19376;3368:56;;3272:152;;1637:19376;;;;;;;;;;;;;;;;;2234:10;;:::i;:::-;982:72:66;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1883:4:66;1637:19376:85;;;;;;;;1902:20:66;1637:19376:85;;;1911:10:66;1637:19376:85;;1902:20:66;1637:19376:85;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;582:20:68;578:50;;1637:19376:85;;;9203:11;;9199:65;;1637:19376;9278:14;1637:19376;;;;9274:79;;9384:10;1637:19376;;;;;;;;;;9367:37;9363:93;;9708:6;9384:10;;;1637:19376;;;;;;;;9466:38;1637:19376;;;9466:38;:::i;:::-;1637:19376;;9514:29;1637:19376;9514:19;1637:19376;9514:29;:::i;:::-;:19;1637:19376;9384:10;1637:19376;;;;;;;;;9558:33;9554:114;;1637:19376;9384:10;9708:6;:::i;9554:114::-;9646:10;9384;9646;:::i;:::-;9554:114;;9363:93;1637:19376;;-1:-1:-1;;;9427:18:85;;1637:19376;;9427:18;9274:79;1637:19376;;-1:-1:-1;;;9315:27:85;;1637:19376;;9315:27;9199:65;1637:19376;;-1:-1:-1;;;9237:16:85;;1637:19376;;9237:16;1637:19376;-1:-1:-1;1637:19376:85;;-1:-1:-1;;1637:19376:85;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;477:1:68;-1:-1:-1;;;;;;;;;;;1637:19376:85;582:20:68;578:50;;477:1;-1:-1:-1;;;;;;;;;;;1637:19376:85;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;1637:19376:85;11499:14;1637:19376;;;;11495:89;;;1637:19376;11597:9;:14;11593:70;;11700:10;1637:19376;;;;25176:25:69;1637:19376:85;;;;;17433:25:69;:52;1637:19376:85;11673:110;;372:2:40;1637:19376:85;;;;11797:57;11793:232;;11700:10;-1:-1:-1;;;;;12062:44:85;1637:19376;;;;;;;12062:44;:::i;:::-;1637:19376;12120:30;12116:89;;1637:19376;;;;12517:9;1637:19376;;;;;;11700:10;12517:9;:::i;:::-;12583;11597;11700:10;12583:9;:::i;:::-;12608:14;;:::i;:::-;1637:19376;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;12215:670;1637:19376;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22229:11:69;1637:19376:85;;;;;;;;;:::i;:::-;17433:25:69;1637:19376:85;;;3528:63:70;;1637:19376:85;;;11700:10;1637:19376;3528:63:70;;1637:19376:85;;;;3489:15:70;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;477:1:68;1637:19376:85;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;17433:25:69;1637:19376:85;;;;;;;;;;;;477:1:68;1637:19376:85;;;;;;;;;;;477:1:68;1637:19376:85;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;22229:11:69;1637:19376:85;;;22229:11:69;1637:19376:85;;;;;;17433:25:69;1637:19376:85;;11700:10;1637:19376;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;747:200:70;;;12864:9:85;11597;11700:10;12864:9;:::i;:::-;12215:670;;1637:19376;;;;-1:-1:-1;1637:19376:85;;;;;;477:1:68;1637:19376:85;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;17433:25:69;1637:19376:85;;;;;477:1:68;1637:19376:85;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;477:1:68;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;1637:19376:85;;;;;;;;;;;;;;;11793:232;1637:19376;;-1:-1:-1;;;11990:24:85;;1637:19376;;11990:24;11673:110;2502:71:45;1637:19376:85;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;13582:42;;;;;;11734:38;;1637:19376;;11734:38;;2502:71:45;1637:19376:85;2502:71:45;;;;:::i;11593:70:85:-;1637:19376;;-1:-1:-1;;;11634:18:85;;1637:19376;;11634:18;11495:89;11529:14;;:::i;:::-;11495:89;;1637:19376;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;477:1:68;247:48;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;582:20:68;578:50;;1637:19376:85;;;982:72:66;;:::i;:::-;17000:10:85;1637:19376;;;;3658:13:69;1637:19376:85;;;;;;;;;;;;;;1777:16:69;;;1773:78;;1637:19376:85;;;;;1895:25:69;;1930:14;;;2019:13;;;;1954:477;477:1:68;;;1954:477:69;1637:19376:85;;;;23200:36:69;1637:19376:85;23200:36:69;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;3707:14:69;3703:76;;1954:477;3818:6;17000:10:85;;3818:6:69;:::i;:::-;1637:19376:85;;;17000:10;1637:19376;;;;;;;;;;;;;;;;;23200:36:69;;;;1637:19376:85;;;3703:76:69;17000:10:85;1637:19376;;;;3658:13:69;1637:19376:85;;;;;17000:10;;1637:19376;3703:76:69;;1954:477;1637:19376:85;;;;;;;1961:10:69;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2204:12:69;-1:-1:-1;2180:76:69;;2270:24;;;;;;;;;;;;;:::i;:::-;1637:19376:85;;;;;;;;;;;;;;;;;;;;;1954:477:69;;;2180:76;2236:5;;;;;;;;1961:10;;;;;;;1773:78;1637:19376:85;;-1:-1:-1;;;1816:24:69;;1637:19376:85;;1816:24:69;1637:19376:85;-1:-1:-1;1637:19376:85;;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;982:72:66;;:::i;:::-;4004:16:72;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;3990:10:72;:30;3986:80;;4259:1;1637:19376:85;;;;;4259:1:72;:::i;3986:80::-;1637:19376:85;;-1:-1:-1;;;4043:12:72;;1637:19376:85;;4043:12:72;1637:19376:85;;;;;;;;;;;;;4273:61:72;;:::i;:::-;1637:19376:85;17942:86:69;1637:19376:85;17942:32:69;1637:19376:85;;;17987:31:69;1637:19376:85;;17942:86:69;;:::i;:::-;1637:19376:85;16672:97;;16779:8;1637:19376;;-1:-1:-1;;1637:19376:85;;;;;16813:16;1637:19376;;;-1:-1:-1;;;;;1637:19376:85;16804:33;;;;;1637:19376;;;;;;;;;;;;;16804:33;;;;;;;;;;1637:19376;;16672:97;1637:19376;;-1:-1:-1;;;16732:26:85;;1637:19376;;16732:26;1637:19376;;;;;;;;;;;;;2421:10;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;1384:9:66;1380:62;;1637:19376:85;;;;;2212:20:66;1637:19376:85;;;2221:10:66;1637:19376:85;;2212:20:66;1637:19376:85;;1380:62:66;1637:19376:85;;-1:-1:-1;;;1416:15:66;;1637:19376:85;;1416:15:66;1637:19376:85;;;;;;;;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;13386:14:85;;:::i;:::-;13444:9;:14;13440:70;;13548:10;1637:19376;;;;25176:25:69;1637:19376:85;;;;;17433:25:69;:52;1637:19376:85;17433:57:69;13520:115:85;;13650:14;1637:19376;;;;;;;13722:9;13444;13548:10;13722:9;:::i;:::-;13747:14;;:::i;13645:225::-;13849:9;13444;13548:10;13849:9;:::i;13520:115::-;2502:71:45;1637:19376:85;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;13582:42;;;;;;;;1637:19376;;13582:42;;2502:71:45;;;;;;:::i;1637:19376:85:-;;;;;;;-1:-1:-1;;1637:19376:85;;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;1637:19376:85;;4326:1:72;:::i;1637:19376:85:-;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;6337:17;1637:19376;6337:17;;1637:19376;;6357:19;1637:19376;6337:51;;;;6333:108;;1637:19376;6454:10;;;;;;:::i;:::-;1637:19376;;;6474:25;1637:19376;;6454:45;;;6450:108;;6664:10;;;;:::i;:::-;:46;;;;:99;;;1637:19376;6660:156;;6829:10;;;;:::i;:::-;:22;;;6825:81;;1637:19376;;;;;6946:17;;;;;;;;;:::i;:::-;;1637:19376;;6946:17;;;;;;:::i;:::-;1637:19376;6936:28;;;6979:52;;;;1637:19376;;;;;;7310:24;1637:19376;7297:37;7293:200;;6975:1250;1637:19376;;7293:200;1637:19376;;7413:30;1637:19376;;8399:50:36;1637:19376:85;;;7467:10;8399:50:36;;:::i;6975:1250:85:-;7607:99;1637:19376;;;;;;;;;;;;;;;:::i;7607:99::-;1637:19376;;;;;;;:::i;:::-;;;;7906:71;1637:19376;;6357:19;1637:19376;;;;;8047:30;1637:19376;;8399:50:36;1637:19376:85;;;8101:10;8399:50:36;;:::i;:::-;-1:-1:-1;8169:16:85;1637:19376;-1:-1:-1;;;;;1637:19376:85;;8160:54;;;;;1637:19376;;8160:54;1637:19376;;;;;;;;;;;;8160:54;;1637:19376;8160:54;;;:::i;:::-;;;;;;;;;;;6975:1250;1637:19376;;8160:54;;;;:::i;6825:81::-;1637:19376;;-1:-1:-1;;;6874:21:85;;1637:19376;;6874:21;6660:156;1637:19376;;-1:-1:-1;;;6786:19:85;;1637:19376;;6786:19;6664:99;1637:19376;6734:24;1637:19376;;;;;;;6714:49;;6664:99;;1637:19376;-1:-1:-1;;;1637:19376:85;;;;;;;;6450:108;1637:19376;;-1:-1:-1;;;6522:25:85;;1637:19376;;6522:25;1637:19376;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;982:72:66;;;:::i;:::-;17437:10:85;1637:19376;;1317:17:79;1637:19376:85;;;;;;;;1317:33:79;17399:107:85;;1637:19376;;17519:29;17515:81;;17437:10;1637:19376;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:50:36;17437:10:85;8399:50:36;:::i;1637:19376:85:-;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;17515:81;1637:19376;;-1:-1:-1;;;17571:14:85;;1637:19376;;17571:14;17399:107;1637:19376;;-1:-1:-1;;;17471:24:85;;17437:10;1637:19376;17471:24;;1637:19376;;;17471:24;1637:19376;;;;;;;;;;;8507:9;:14;8503:68;;1637:19376;;8585:14;1637:19376;;;;8581:79;;8691:10;1637:19376;;;;;;;;;8674:33;8670:101;;1637:19376;8691:10;1637:19376;;;;;;;;8781:41;8507:9;1637:19376;;8781:41;:::i;:::-;1637:19376;;8832:32;8507:9;8832:19;1637:19376;8832:32;:::i;:::-;:19;1637:19376;;;8670:101;1637:19376;;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;8691:10;1637:19376;;;;;;;;8670:101;;1637:19376;-1:-1:-1;;;1637:19376:85;;;;;;;;8503:68;-1:-1:-1;;;8544:16:85;;1637:19376;;8544:16;1637:19376;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::o;:::-;-1:-1:-1;;;;;1637:19376:85;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::o;:::-;-1:-1:-1;;;;;1637:19376:85;;;;;;-1:-1:-1;;1637:19376:85;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;:::o;:::-;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2587:156:62;2663:30;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;2649:10:62;:44;2645:92;;2587:156::o;2645:92::-;1637:19376:85;;-1:-1:-1;;;2716:10:62;;;;;1122:128:66;1637:19376:85;-1:-1:-1;;;;;;;;;;;1637:19376:85;;1183:61:66;;1122:128::o;1183:61::-;1637:19376:85;;-1:-1:-1;;;1218:15:66;;;;;1637:19376:85;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;1637:19376:85;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;1637:19376:85;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1637:19376:85;;;;-1:-1:-1;1637:19376:85;:::o;:::-;;;;;;;;;;;;;17707:17;1637:19376;;;;;;17707:17;-1:-1:-1;1637:19376:85;;;;-1:-1:-1;1637:19376:85;:::o;2215:404:36:-;-1:-1:-1;1637:19376:85;;;4352:12:36;1637:19376:85;;;;;;;;17707:17;1637:19376;-1:-1:-1;;;1637:19376:85;;;;;;;;;;4352:12:36;1637:19376:85;;;17707:17;1637:19376;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;17707:17;1637:19376;;;;4352:12:36;1637:19376:85;;;;4352:12:36;2548:11;:::o;2294:319::-;2590:12;;;:::o;2215:404::-;;;4352:12;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;4352:24:36;2294:319;1637:19376:85;;;;;;-1:-1:-1;;;1637:19376:85;;;;;4352:12:36;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:36;2548:11;:::o;1637:19376:85:-;-1:-1:-1;;;1637:19376:85;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;2294:319:36;-1:-1:-1;2590:12:36;-1:-1:-1;;2590:12:36:o;1637:19376:85:-;;-1:-1:-1;1637:19376:85;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;1637:19376:85;;;;-1:-1:-1;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;1637:19376:85;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;:::o;24177:1944:69:-;24359:11;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;;;;;;24385:56:69;;1637:19376:85;;;;-1:-1:-1;;;24464:28:69;;;;;24381:221;1637:19376:85;;;;;24513:56:69;;24509:93;;1637:19376:85;;;;;;24694:24:69;1637:19376:85;;;;24694:24:69;;;;26026:23;;;1637:19376:85;26026:23:69;;26065:49;26026:23;;:::i;:::-;-1:-1:-1;;;24359:11:69;1637:19376:85;;;;;;-1:-1:-1;;;1637:19376:85;;;24359:11:69;1637:19376:85;;;;;26065:49:69;24177:1944::o;24676:16::-;3893:36:70;;;-1:-1:-1;;;;;1637:19376:85;;;3893:15:70;1637:19376:85;;;;;;;3893:36:70;24823:16:69;;;;1637:19376:85;;;;;24823:16:69;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;:::i;:::-;24858:41:69;;;24823:16;;24967:14;;24919:45;:36;1637:19376:85;;24967:14:69;;;;;24919:36;1637:19376:85;;;;;;;;25176:25:69;1637:19376:85;;;;;;;24919:36:69;:45;1637:19376:85;:::i;:::-;4051:36:70;;-1:-1:-1;;;;;1637:19376:85;;;3893:15:70;1637:19376:85;;;;;;;4051:36:70;3793:45:72;;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;;24676:16:69;;24854:1017;1637:19376:85;;;;;;;:::i;:::-;25019:34:69;;25006:47;;;25019:34;;1637:19376:85;;;;;;;;;;25125:14:69;;;1637:19376:85;:::i;:::-;;;;:::i;:::-;;;25114:44:69;;;;;;;;;;1637:19376:85;;;;;25114:44:69;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;25176:36:69;;;;1637:19376:85;;;;;;;;25176:25:69;1637:19376:85;;;;;;;25176:36:69;:45;1637:19376:85;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;25298:5:69;1637:19376:85;;;;;;;;;3793:45:72;1637:19376:85;;;;;;;;;;;;;;;;;;25298:5:69;:::i;:::-;24854:1017;;1637:19376:85;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;3793:45:72;1637:19376:85;;;3793:45:72;1637:19376:85;;3793:45:72;1637:19376:85;;;;;;;;;25298:5:69;1637:19376:85;;;;;;;;;;;;;;;;;25298:5:69;:::i;1637:19376:85:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;3793:45:72;1637:19376:85;;;;;;;;;25002:869:69;1637:19376:85;;;;;;;;;;;;;;;25371:14:69;;;1637:19376:85;:::i;:::-;25360:37:69;1637:19376:85;;;;25360:37:69;;1637:19376:85;;;;25360:37:69;;;;;1637:19376:85;;;;;:::i;:::-;25420:38:69;3893:15:70;;25524:6:69;;;;;;:::i;:::-;25553:14;1637:19376:85;3147:35:69;;:12;:35;:::i;:::-;1637:19376:85;;;;;;;:::i;:::-;;;;3224:54:69;;;1637:19376:85;;;-1:-1:-1;;;;;1637:19376:85;;;;;;3658:13:69;1637:19376:85;;;;;3224:54:69;;1637:19376:85;;;;;;;;;;;;;;;;;;;1273:22:69;;;;:::i;:::-;1637:19376:85;3793:45:72;;1637:19376:85;;;1306:13:69;;;1637:19376:85;;;;;;;;;;;;1362:10:69;;;:::i;:::-;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;3343:85:69;;;25631:16;1637:19376:85;;25622:47:69;;;;;;1637:19376:85;;;;;;;;;;;;;;;25622:47:69;;;;;1637:19376:85;25622:47:69;;;;;;;;;;;;;;;25416:441;;24854:1017;;25622:47;;;;:::i;:::-;;;;;1637:19376:85;;;;;;;;;;25416:441:69;25757:6;;;;;;;;;;:::i;:::-;25795:16;1637:19376:85;;25786:52:69;;;;;;1637:19376:85;;;;;;25786:52:69;;3793:45:72;25786:52:69;3793:45:72;;25786:52:69;;;;;;;;;;;;;;;;;;25416:441;24854:1017;;1637:19376:85;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;9330:540:69:-;;1637:19376:85;;;;;;;-1:-1:-1;1637:19376:85;9465:15:69;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;;;;9580:22:69;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:69;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;9876:404::-;;10258:13;9876:404;10143:39;1637:19376:85;;;;;;;;;-1:-1:-1;1637:19376:85;10005:15:69;1637:19376:85;;10005:55:69;1637:19376:85;;;-1:-1:-1;1637:19376:85;10005:46:69;1637:19376:85;10005:55:69;:::i;:::-;1637:19376:85;-1:-1:-1;1637:19376:85;10005:15:69;1637:19376:85;;;;;-1:-1:-1;1637:19376:85;10070:46:69;1637:19376:85;10143:29:69;1637:19376:85;10143:39:69;:::i;:::-;:29;1637:19376:85;10258:13:69;:::i;1637:19376:85:-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;10286:616:69:-;;10830:13;10856:39;10286:616;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;10416:15:69;1637:19376:85;;10416:55:69;1637:19376:85;;;;;10416:46:69;1637:19376:85;10416:55:69;:::i;:::-;1637:19376:85;;;10416:15:69;1637:19376:85;;;;;10416:15:69;10507:42;;1637:19376:85;;;10564:18:69;;:42;;;;10286:616;-1:-1:-1;10560:199:69;;;1637:19376:85;;;;;;;;;;;;;;;;;:::i;:::-;10830:13:69;:::i;:::-;10856:29;1637:19376:85;10856:39:69;:::i;:::-;:29;1637:19376:85;10286:616:69:o;10560:199::-;10686:46;;;1637:19376:85;10686:46:69;1637:19376:85;10830:13:69;:::i;10564:42::-;10586:20;;;10564:42;;;11008:2209;;;1637:19376:85;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;1317:17:79;1637:19376:85;;;;;;;;;;;;11120:226:69;;1637:19376:85;1693:14:71;1637:19376:85;;;;;11124:21:69;1637:19376:85;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;1637:19376:85;;;;;4077:23:77;1637:19376:85;;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;1637:19376:85;;;1317:17:79;1637:19376:85;;;;;;;;12866:229:69;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;13168:42:69;;;;11008:2209::o;12866:229::-;3147:36:77;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;1637:19376:85;;;;4619:7:77;;;4612:423;-1:-1:-1;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;;;-1:-1:-1;13008:56:69;;1637:19376:85;;;;13008:56:69;1637:19376:85;4612:423:77;1637:19376:85;;1991:25:79;1637:19376:85;;;;;;;;;;;1952:17:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:69;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:79;12475:4:69;;;:::i;:::-;1637:19376:85;;;;;;12495:140:69;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;12495:140:69;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:78;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;1637:19376:85;11124:21:69;1637:19376:85;;4932:763:78;;1637:19376:85;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;5556:5:78;;-1:-1:-1;11260:55:69;;-1:-1:-1;1637:19376:85;;;;11260:55:69;1637:19376:85;4971:413:78;1637:19376:85;;;;;1952:17:79;1637:19376:85;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;11260:55:69;4939:16:78;;;;;11260:55:69;4939:16:78;;;;13320:2014:69;;1637:19376:85;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;1317:17:79;1637:19376:85;;;;;;;;;;;;13428:421:69;;1637:19376:85;;;1317:17:79;1637:19376:85;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;1637:19376:85;;;;;4277:7:78;;;;1637:19376:85;;;;;;;;;1952:17:79;1637:19376:85;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;1637:19376:85;13432:22:69;1637:19376:85;;14638:37:69;14634:74;;4023:26:77;;:::i;:::-;1637:19376:85;;;;;1952:17:79;1637:19376:85;;;;;;;;4129:25:77;;;;:::i;:::-;4023:26;;;:::i;:::-;1637:19376:85;;;4077:23:77;1637:19376:85;;;;;;;;;4129:25:77;;;;:::i;:::-;-1:-1:-1;14901:358:69;;-1:-1:-1;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;;;-1:-1:-1;15274:53:69;;1637:19376:85;-1:-1:-1;1637:19376:85;;;;15274:53:69;1637:19376:85;14901:358:69;14979:4;;;;;;;;;;;;:::i;:::-;1637:19376:85;13432:22:69;1637:19376:85;;1044:14:79;;1040:61;;1709:28:77;;1799:4;1709:28;;;;;:::i;:::-;1766:8;;;;:::i;:::-;1637:19376:85;;;13432:22:69;1637:19376:85;;;13432:22:69;1637:19376:85;1799:4:77;:::i;:::-;1637:19376:85;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;;5160:26;1952:17:79;1637:19376:85;13432:22:69;1637:19376:85;;5287:763:77;1637:19376:85;;;5287:763:77;15079:13:69;;;;;;;;;;15176:52;;15079:13;;;;;:::i;5287:763:77:-;1637:19376:85;;;5294:16:77;;;;;5330:15;;-1:-1:-1;;;5330:15:77;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1637:19376:85;;;;;;;;;;;1991:25:79;;1637:19376:85;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;1040:61:79;1637:19376:85;;-1:-1:-1;;;1081:9:79;;;;;14634:74:69;14691:7;;;;;;;;:::o;4277::78:-;;;;;;;;;;;;;14049:508:69;14155:30;14126:9;;;;;;;;;;;;;:::i;:::-;1637:19376:85;;;;;14155:30:69;1637:19376:85;13432:22:69;1637:19376:85;;14204:37:69;;;;;;14200:326;;14540:7;;;;;;;;:::o;14200:326::-;4023:26:77;;:::i;:::-;1637:19376:85;;;;;4077:23:77;1637:19376:85;;;;;;;;;4129:25:77;;;;:::i;:::-;1040:61:79;;;1709:28:77;;1799:4;1709:28;;;;;:::i;1799:4::-;1637:19376:85;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;;5160:26;1952:17:79;1637:19376:85;13432:22:69;1637:19376:85;;5287:763:77;1637:19376:85;;;5287:763:77;14436:12:69;;;;;;;;;;14472:39;;14436:12;;;;;:::i;14472:39::-;;;;14200:326;;;;;;;;;5287:763:77;1637:19376:85;;;5294:16:77;;;;;5330:15;;-1:-1:-1;;;5330:15:77;;;5599:12;;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1637:19376:85;;;;;;;;;;;1991:25:79;;1637:19376:85;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13883:106:69;1637:19376:85;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:77;1637:19376:85;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;1637:19376:85;;;;;;;;;13432:22:69;1637:19376:85;;5287:763:77;1637:19376:85;;;5287:763:77;-1:-1:-1;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;-1:-1:-1;1637:19376:85;;-1:-1:-1;13764:54:69;;1637:19376:85;-1:-1:-1;1637:19376:85;;;;13764:54:69;1637:19376:85;5287:763:77;1637:19376:85;;;5294:16:77;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1637:19376:85;;1952:17:79;1637:19376:85;;;;;;;;1991:25:79;;1637:19376:85;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13490:185:69;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;1637:19376:85;;;;13605:31:69;13654:7::o;998:417:77:-;1401:5;998:417;1301:30;1637:19376:85;;1119:19:77;1637:19376:85;12499:22:69;1637:19376:85;;1119:19:77;:::i;:::-;1637:19376:85;;;;;;;;;;-1:-1:-1;1637:19376:85;1149:23:77;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;1200:23:77;1637:19376:85;;;-1:-1:-1;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;12499:22:69;1637:19376:85;;;12499:22:69;1637:19376:85;1301:30:77;:::i;:::-;1401:5;;:::i;4525:375:69:-;1637:19376:85;1693:14:71;1637:19376:85;;;;;;;;4697:24:69;4668:53;4697:24;;-1:-1:-1;;;;;1637:19376:85;-1:-1:-1;1637:19376:85;;;4745:21:69;1637:19376:85;;;;;;;4525:375:69:o;4664:230::-;-1:-1:-1;;;;;1637:19376:85;-1:-1:-1;1637:19376:85;;;4831:21:69;1637:19376:85;;;;;;4831:52:69;1637:19376:85;;4525:375:69:o;1637:19376:85:-;;;;;-1:-1:-1;;1637:19376:85;;;;;;;:::o;2081:787:77:-;2210:36;2081:787;2210:36;:::i;:::-;1637:19376:85;;;12499:22:69;1637:19376:85;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;1637:19376:85;;;12499:22:69;1637:19376:85;;;12499:22:69;1637:19376:85;2415:4:77;;;:::i;:::-;1637:19376:85;;;2435:11:77;;;2431:48;;-1:-1:-1;1637:19376:85;-1:-1:-1;;1637:19376:85;;;;1952:17:79;1637:19376:85;;;;;;;;;;;;;;2668:5:77;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;1637:19376:85;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;2854:5:77;;1637:19376:85;;;;;;;;;12499:22:69;1637:19376:85;;5287:763:77;1637:19376:85;;;5287:763:77;2081:787;;;;;;;;;;;:::o;5287:763::-;1637:19376:85;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1637:19376:85;;;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;2431:48;2462:7;;;:::o;4443:598::-;;;;4612:423;4625:1;1637:19376:85;;;;4619:7:77;;;;1637:19376:85;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;1637:19376:85;;;1952:17:79;1637:19376:85;;;;;;;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;1637:19376:85:-;;;;;;;;;;;;;;:::o;6117:442:77:-;;;;1637:19376:85;;;;;-1:-1:-1;1637:19376:85;1952:17:79;1637:19376:85;;1991:25:79;1637:19376:85;;;;;1991:25:79;1637:19376:85;;-1:-1:-1;1637:19376:85;;;1991:25:79;:::i;:::-;1637:19376:85;;;-1:-1:-1;1637:19376:85;1952:17:79;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;1991:25:79;:::i;:::-;6662:7:77;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:77;;-1:-1:-1;6490:21:77:o;924:417:78:-;1327:5;924:417;1227:30;1637:19376:85;;1045:19:78;1637:19376:85;11124:21:69;1637:19376:85;;1045:19:78;:::i;:::-;1637:19376:85;;;;;;;;;;-1:-1:-1;1637:19376:85;1075:23:78;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;1126:23:78;1637:19376:85;;;-1:-1:-1;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;11124:21:69;1637:19376:85;;;11124:21:69;1637:19376:85;1227:30:78;:::i;:::-;1327:5;;:::i;1408:401::-;1637:19376:85;;11124:21:69;1637:19376:85;;1044:14:79;;;1040:61;;1637:19376:85;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;1637:19376:85;;;;2468:17:79;1637:19376:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;2551:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1662:4:78;;1637:19376:85;1629:8:78;;1637:19376:85;1629:8:78;:::i;:::-;1637:19376:85;;11124:21:69;1637:19376:85;;;11124:21:69;1637:19376:85;1662:4:78;:::i;:::-;1637:19376:85;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;4715:986:78;;4828:25;1952:17:79;1637:19376:85;11124:21:69;1637:19376:85;;4932:763:78;1637:19376:85;;;1408:401:78;;;;;;;;;;;:::o;4932:763::-;1637:19376:85;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;1637:19376:85;;;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;4971:413:78;;1040:61:79;1637:19376:85;;-1:-1:-1;;;1081:9:79;;;;;1881:779:78;2010:36;1881:779;2010:36;:::i;:::-;1637:19376:85;;;;13888:21:69;1637:19376:85;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;1637:19376:85;;;13888:21:69;1637:19376:85;;;13888:21:69;1637:19376:85;2215:4:78;;;:::i;:::-;1637:19376:85;;;2235:11:78;;;2231:48;;-1:-1:-1;;;;1637:19376:85;;;;1952:17:79;1637:19376:85;;;;;;;;;;;;;;2466:3:78;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;1637:19376:85;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;2648:3:78;4846:7;2648:3;4846:7;:::i;:::-;4863:18;1637:19376:85;13888:21:69;1637:19376:85;;4932:763:78;;1637:19376:85;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;1637:19376:85;;;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;1637:19376:85;;;;4277:7:78;;;;1637:19376:85;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;1637:19376:85;;;1952:17:79;1637:19376:85;;;;;;;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;5763:443;;;1637:19376:85;;;;-1:-1:-1;1637:19376:85;1952:17:79;1637:19376:85;;1991:25:79;1637:19376:85;;;;;1991:25:79;1637:19376:85;;-1:-1:-1;1637:19376:85;;;1991:25:79;:::i;:::-;1637:19376:85;;;-1:-1:-1;1637:19376:85;1952:17:79;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;1991:25:79;:::i;:::-;6308:7:78;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:79:-;1637:19376:85;11124:21:69;1637:19376:85;;1044:14:79;1040:61;;974:133::o;:::-;1637:19376:85;13432:22:69;1637:19376:85;;1044:14:79;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;1637:19376:85;-1:-1:-1;1637:19376:85;;;1474:17:79;1637:19376:85;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1512:71::-;1637:19376:85;;-1:-1:-1;;;1547:25:79;;;;;1363:226;-1:-1:-1;;;;;1637:19376:85;-1:-1:-1;1637:19376:85;;;1474:17:79;1637:19376:85;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1595:184::-;1637:19376:85;;-1:-1:-1;1637:19376:85;;;1671:17:79;1637:19376:85;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;-1:-1:-1;;;;;1637:19376:85;;;1749:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;1595:184:79:o;:::-;1637:19376:85;;-1:-1:-1;1637:19376:85;;;1671:17:79;1637:19376:85;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;-1:-1:-1;;;;;1637:19376:85;;;1749:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;1595:184:79:o;1637:19376:85:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:79;2416:25;1637:19376:85;;13432:22:69;1637:19376:85;;2388:17:79;2381:25;2388:17;1637:19376:85;2388:17:79;;2381:25;:::i;:::-;1637:19376:85;2423:17:79;;;;2416:25;:::i;:::-;2468:17;1637:19376:85;;;;;;;-1:-1:-1;1637:19376:85;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;2551:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;1637:19376:85;;;11124:21:69;1637:19376:85;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;1637:19376:85;;;2468:17:79;1637:19376:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;2551:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;1637:19376:85;;;12870:22:69;1637:19376:85;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;1637:19376:85;;;2468:17:79;1637:19376:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;2551:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;2301:412:79:o;1637:19376:85:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;;;-1:-1:-1;;1637:19376:85;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1530:331:29;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;1637:19376:85;1749:33:29;;1637:19376:85;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1749:33:29;1637:19376:85;;;;;;1796:8:29;1792:63;;1530:331::o;1792:63::-;1637:19376:85;;-1:-1:-1;;;1827:17:29;;;;;1637:19376:85;;;1611:109:29;1637:19376:85;;-1:-1:-1;;;1668:41:29;;1623:4;1668:41;;;1637:19376:85;;;1668:41:29;6969:557:71;7128:20;1637:19376:85;;;7170:9:71;3793:45:72;7181:10:71;;;;;;6969:557;;;;:::o;7170:9::-;7213:23;;;:::i;:::-;1637:19376:85;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;7213:31:71;7209:242;;1637:19376:85;;;;7170:9:71;;7209:242;1637:19376:85;;;;;;;;;;;;;;;;7290:32:71;7264:23;7290:32;;7264:58;7290:32;;:::i;:::-;1637:19376:85;;;;;;;7264:23:71;;:::i;:::-;:58;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;7264:58:71;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7431:5:71;;;;;;1637:19376:85;;;;;;3793:45:72;1637:19376:85;;;3793:45:72;1637:19376:85;;;;;;;3793:45:72;1637:19376:85;;;3793:45:72;1637:19376:85;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;;:::o;2502:71:45:-;;1637:19376:85;2502:71:45;;1637:19376:85;;;;;;;;;;;2502:71:45;;;:::i;:::-;1637:19376:85;;-1:-1:-1;;1637:19376:85;2502:71:45;;;:::o;1637:19376:85:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;1726:24:71;1637:19376:85;;;;;;;;1726:24:71;-1:-1:-1;1637:19376:85;;;;;-1:-1:-1;1637:19376:85;:::o;:::-;;;;;;;;5091:19:71;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;19251:224:69;-1:-1:-1;;;;;1637:19376:85;;;;;25176:25:69;1637:19376:85;;;;;19251:224:69;;;;8282:41;;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;:::i;:::-;;;:::i;:::-;3793:45:72;1637:19376:85;;;;;;;;;;;3793:45:72;1637:19376:85;;;;;;;;;;;;8282:41:69;1637:19376:85;;;;;;;19251:224:69:o;1637:19376:85:-;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19251:224:69:o;1637:19376:85:-;;;-1:-1:-1;;8282:41:69;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3527:269:71;;3623:65;372:2:40;3630:57:71;;3623:65;:::i;:::-;372:2:40;3735:1:71;372:2:40;;;1637:19376:85;;;;-1:-1:-1;;372:2:40;;3735:1:71;372:2:40;1637:19376:85;:::i;:::-;;;;;;;3715:24:71;-1:-1:-1;;;;;1637:19376:85;;3527:269:71:o;4078:118:72:-;1637:19376:85;4127:8:72;1637:19376:85;;;;4123:67:72;;4078:118::o;4123:67::-;1637:19376:85;;-1:-1:-1;;;4158:21:72;;;;;19573:1335:69;;19954:6;19573:1335;19831:6;;;;:::i;:::-;19954;;:::i;:::-;1637:19376:85;19977:14:69;1637:19376:85;;;;19976:15:69;19972:930;;19573:1335;:::o;19972:930::-;20165:19;1637:19376:85;;3793:45:72;20165:19:69;3793:45:72;20221:10:69;;;;;;20205:270;20492:17;;;20488:404;;19972:930;;19573:1335;:::o;20488:404::-;-1:-1:-1;;;;;1637:19376:85;;;;;;25176:25:69;1637:19376:85;;;;;20550:56:69;;;1637:19376:85;;;;;;20766:45:69;1637:19376:85;;;;;;:::i;:::-;;;20647:183:69;;1637:19376:85;20647:183:69;;;1637:19376:85;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;20647:183:69;;1637:19376:85;;;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3793:45:72;1637:19376:85;;;;;;;;;;;;;;;;;;;2462:7:77:o;1637:19376:85:-;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;3793:45:72;1637:19376:85;;3793:45:72;1637:19376:85;;3793:45:72;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;20210:9:69;3793:45:72;1637:19376:85;;;;;;20257:27:69;;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;;;20257:40:69;20253:137;;1637:19376:85;20210:9:69;;;;20253:137;20321:23;;;20366:5;;;;8648:175;1637:19376:85;;;;;;-1:-1:-1;1637:19376:85;8758:21:69;1637:19376:85;;8758:58:69;:21;1637:19376:85;-1:-1:-1;1637:19376:85;8758:48:69;1637:19376:85;;;8758:58:69;:::i;:::-;1637:19376:85;;8648:175:69:o;22329:256::-;;;1637:19376:85;;2707:18:70;;;;;1637:19376:85;2707:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22476:11:69;1637:19376:85;;;;;;;;;:::i;:::-;-1:-1:-1;1637:19376:85;;2707:18:70;3528:63;;1637:19376:85;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;1637:19376:85;3489:15:70;2707:18;1637:19376:85;;-1:-1:-1;1637:19376:85;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;2707:18:70;1637:19376:85;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;22571:6:69;1637:19376:85;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;22476:11:69;1637:19376:85;;;22476:11:69;1637:19376:85;;;;;;-1:-1:-1;1637:19376:85;;;;;;;;;2707:18:70;1637:19376:85;;;;;;;;;;;;;:::i;:::-;;;;;;2941:195:70;;;22571:6:69;:::i;1637:19376:85:-;;;;-1:-1:-1;1637:19376:85;;;;;;;;-1:-1:-1;1637:19376:85;2707:18:70;-1:-1:-1;1637:19376:85;;-1:-1:-1;1637:19376:85;-1:-1:-1;;1637:19376:85;;;;;;;;;;22571:6:69;1637:19376:85;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:70;1637:19376:85;;;;;;;1090:308:71;1637:19376:85;1233:14:71;1637:19376:85;;;;;;;;1229:147:71;;1090:308::o;2006:664::-;5112:35:69;1637:19376:85;2236:25:71;1637:19376:85;2217:44:71;;;2213:451;;2006:664;;:::o;2213:451::-;1637:19376:85;5328:27:69;1637:19376:85;;-1:-1:-1;;;;;2319:15:71;1637:19376:85;;-1:-1:-1;2281:53:71;2277:377;;2006:664;:::o;2277:377::-;1637:19376:85;;;2354:14:71;1637:19376:85;;;2354:14:71;1637:19376:85;2398:39:71;1637:19376:85;;2398:39:71;;;;:::i;:::-;;;;1637:19376:85;;;;;2546:16:71;1637:19376:85;;;2580:37:71;2598:19;1637:19376:85;2580:37:71;;;:::i;:::-;2537:102;;;;;;1637:19376:85;3793:45:72;1637:19376:85;;;;;;;;;;;2537:102:71;;;;;1637:19376:85;2537:102:71;;;;;;;2213:451;2537:102;;;;:::i;:::-;1637:19376:85;;;3793:45:72;1637:19376:85;;;;;14088:782;14312:14;;:::i;:::-;14371:11;;14367:68;;14502:10;1637:19376;;;;25176:25:69;1637:19376:85;;;;;18718:25:69;:52;1637:19376:85;14528:15;;14524:77;;14614:20;-1:-1:-1;14614:20:85;14610:79;;1637:19376;14703:14;1637:19376;;;;14702:15;14698:116;;14856:6;14502:10;;14856:6;:::i;14698:116::-;14502:10;21358:6:69;21588;14502:10:85;;21358:6:69;:::i;:::-;21482;14502:10:85;;21482:6:69;:::i;14610:79:85:-;1637:19376;;-1:-1:-1;;;14657:21:85;;;;;14367:68;1637:19376;;-1:-1:-1;;;14405:19:85;;;;;8895:364:69;-1:-1:-1;;;;;1637:19376:85;-1:-1:-1;1637:19376:85;;;9022:21:69;1637:19376:85;;;;;9022:21:69;:48;1637:19376:85;;;9084:14:69;;;9080:81;;9171:15;;;:::i;:::-;1637:19376:85;-1:-1:-1;1637:19376:85;9022:21:69;1637:19376:85;;9022:21:69;1637:19376:85;-1:-1:-1;1637:19376:85;9196:48:69;1637:19376:85;8895:364:69:o;9080:81::-;1637:19376:85;;-1:-1:-1;;;9121:29:69;;;;;22631:259;;;1637:19376:85;;2064:18:70;;;;;1637:19376:85;2064:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22779:11:69;1637:19376:85;;;;;;;;;:::i;:::-;2217:25:70;1637:19376:85;;2064:18:70;3528:63;;1637:19376:85;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;1637:19376:85;3489:15:70;2064:18;1637:19376:85;;-1:-1:-1;1637:19376:85;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;2217:25:70;1637:19376:85;;;;:::i;:::-;2064:18:70;1637:19376:85;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;22876:6:69;1637:19376:85;;-1:-1:-1;1637:19376:85;;;;;;;2217:25:70;1637:19376:85;;;;;;;;;;;2217:25:70;1637:19376:85;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;22779:11:69;1637:19376:85;;;22779:11:69;1637:19376:85;;;;;;2217:25:70;1637:19376:85;;;;;;;;;2064:18:70;1637:19376:85;;;;;;;;;;;;;:::i;:::-;;;;;;2299:196:70;;;22876:6:69;:::i;1637:19376:85:-;;;;-1:-1:-1;1637:19376:85;;;;;2217:25:70;1637:19376:85;;-1:-1:-1;1637:19376:85;2064:18:70;-1:-1:-1;1637:19376:85;;-1:-1:-1;1637:19376:85;-1:-1:-1;;1637:19376:85;;;;;;;;2217:25:70;1637:19376:85;22876:6:69;1637:19376:85;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;2217:25:70;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2217:25:70;1637:19376:85;;;;2064:18:70;1637:19376:85;;;;;;;14944:1550;1637:19376;15345:14;1637:19376;;;;15341:89;;14944:1550;15551:10;1637:19376;;;;25176:25:69;1637:19376:85;;;;;18718:25:69;:52;1637:19376:85;15576:11;;15572:73;;8720:53:36;15551:10:85;8720:53:36;:::i;:::-;;-1:-1:-1;15551:10:85;;1637:19376;;15759:16;1637:19376;;;;;;;;;;:::i;:::-;;;;14944:1550;1637:19376;;;;15345:14;1637:19376;;;;15802:15;15798:641;;16480:6;15551:10;;;16480:6;:::i;15798:641::-;1637:19376;21588:6:69;15551:10:85;;1637:19376;;15955:16;1637:19376;;;;16001:19;15997:277;;15798:641;15551:10;21358:6:69;15551:10:85;;21358:6:69;:::i;15997:277:85:-;1637:19376;16091:37;16244:14;1637:19376;18718:25:69;1637:19376:85;16091:37;:::i;:::-;18718:25:69;1637:19376:85;16185:10;15551;16185;:::i;16244:14::-;15997:277;;;1637:19376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;15341:89;15375:14;;:::i;:::-;15341:89;;2787:1388:36;-1:-1:-1;1637:19376:85;;;2990:12:36;1637:19376:85;;;;;;-1:-1:-1;;1637:19376:85;3024:15:36;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;15706:17;1637:19376;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;1637:19376:85;;;15706:17;1637:19376;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15706:17;1637:19376;;;2990:12:36;1637:19376:85;;;;;;2990:12:36;4104:11;:::o;1637:19376:85:-;-1:-1:-1;;;1637:19376:85;;;;;;;;3502:398:36;1637:19376:85;3572:22:36;3694:26;3572:22;;:::i;:::-;1637:19376:85;;;;;;3694:26:36;;;;:::i;1637:19376:85:-;;;;;2990:12:36;1637:19376:85;;;;;;3502:398:36;;;;;1637:19376:85;-1:-1:-1;;;1637:19376:85;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;3020:1149:36;4146:12;;;:::o;1637:19376:85:-;;;;;;;;;;;;;;;:::o;18068:1492::-;;;;18243:11;;18239:48;;1637:19376;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;18253:1;1637:19376;;;;;;;;;;18389:32;;;-1:-1:-1;3208:21:71;1637:19376:85;3199:30:71;;;:::i;:::-;1637:19376:85;;3250:35:71;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18385:568;1637:19376;;19161:19;;;19157:56;;19226:23;;;19222:60;;1637:19376;;;19383:9;;19394:18;;;;;;18068:1492;;;;;;;:::o;19383:9::-;1637:19376;;-1:-1:-1;;;;;19455:11:85;1637:19376;19455:11;;:::i;:::-;1637:19376;;;;19430:16;1637:19376;;;;;19430:54;1637:19376;;;19430:54;:::i;:::-;1637:19376;;;19383:9;;19222:60;19265:7;;;;;;:::o;1637:19376::-;;;;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;18385:568;18515:38;1637:19376;18515:38;;;18511:442;1637:19376;;;;;;13582:42;;;;18798:51;;;;;1637:19376;;;;;;;;;;;18798:51;18511:442;1637:19376;;;13582:42;;;;18887:55;;;;;1637:19376;;;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;18887:55;1637:19376;-1:-1:-1;;;1637:19376:85;;;;;;;;20121:890;;1637:19376;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1637:19376:85;;;:::i;:::-;;;;;;;;;;-1:-1:-1;7631:8:69;;;;;;20517:36:85;;-1:-1:-1;1637:19376:85;;;6312:27:69;1637:19376:85;;;6364:12:69;;;;6359:236;1637:19376:85;;;6359:236:69;1637:19376:85;;;;;;20604:20;1637:19376;;;;;;;;;;;;;;;;;;;20628:3;20690:229;1637:19376;;20690:229;;:::i;:::-;20934:6;;20930:75;;20121:890;;:::o;20930:75::-;1637:19376;;;;;;;;;;20963:31;;;;;;1637:19376;20963:31;;;1637:19376;20963:31;6364:12:69;1637:19376:85;;;;;;;;;6378:9:69;;;;;-1:-1:-1;1637:19376:85;;;598:23:78;1637:19376:85;;;;;;;;;;;;6480:45:69;;6494:31;;-1:-1:-1;;;;;1637:19376:85;6494:31:69;:::i;:::-;6480:45;;:::i;:::-;1637:19376:85;;;6364:12:69;;;;6378:9;;;;;;7620;-1:-1:-1;;;;;1637:19376:85;7692:12:69;;;;:::i;:::-;1637:19376:85;;-1:-1:-1;1637:19376:85;1317:17:79;1637:19376:85;;;;-1:-1:-1;1637:19376:85;;;1317:33:79;7657:116:69;;7829:12;7808:34;1637:19376:85;7829:12:69;;;;;:::i;:::-;1637:19376:85;;7808:34:69;:::i;:::-;7786:56;;;;:::i;:::-;1637:19376:85;;7620:9:69;;7657:116;7745:12;;;1637:19376:85;7745:12:69;;;:::i;:::-;1637:19376:85;;;-1:-1:-1;;;7732:26:69;;1637:19376:85;;7732:26:69;;;1637:19376:85;7732:26:69;1239:1329:65;1637:19376:85;;1239:1329:65;;1637:19376:85;;;1596:21:65;;1592:90;;1637:19376:85;;1696:38:65;;;;:76;;;1239:1329;1692:148;;1855:9;;;;;1850:568;1866:20;;;;;;2431:19;;;;;;;;2427:75;;1637:19376:85;2511:50:65;2527:33;1239:1329;:::o;2427:75::-;1637:19376:85;2466:25:65;1637:19376:85;2466:25:65;:::o;1855:9::-;2031:13;;;;;;1957:102;2031:13;;;;:::i;:::-;;1957:102;;:::i;:::-;1637:19376:85;;;;:::i;:::-;2073:116:65;;-1:-1:-1;;;;;1637:19376:85;2219:14:65;;;;:::i;:::-;1637:19376:85;;;;2206:27:65;2202:105;;2329:19;1637:19376:85;2338:10:65;;;;;:::i;:::-;1637:19376:85;2329:19:65;;:::i;:::-;1637:19376:85;;1855:9:65;;;;;;;2202:105;2253:39;;;;;;;;1637:19376:85;2253:39:65;2269:22;2253:39;:::o;2073:116::-;2135:39;;;;;;;;;1637:19376:85;2135:39:65;2151:22;2135:39;:::o;1692:148::-;1788:41;;;;;;;;1637:19376:85;1788:41:65;:::o;1696:76::-;1637:19376:85;;;1738:34:65;;;1696:76;;1592:90;1633:38;;;;;;;;1649:21;1633:38;:::o;2483:766:32:-;1637:19376:85;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;1637:19376:85;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":287,"length":20}]}}},"methodIdentifiers":{"addBootstrapNode(string)":"10fd4261","claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","pause()":"8456cb59","paused()":"5c975abb","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","setFederatedPower(address[],bytes[],uint256[])":"da5d09ee","stake()":"3a4b66f1","submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":"26811936","submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":"b9ee2bb9","unpause()":"3f4ba83a","unstake(uint256)":"2e17de78","validateActiveQuorumSignatures(address[],bytes32,bytes[])":"cc2dc2b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicatedGenesisValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFederationPayload\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPublicKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"InvalidSignatureErr\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCollateralToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughGenesisValidators\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOfPublicKey\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyBootstrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawExceedingCollateral\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"NextBottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddress\",\"type\":\"string\"}],\"name\":\"addBootstrapNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"publicKeys\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"powers\",\"type\":\"uint256[]\"}],\"name\":\"setFederatedPower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateActiveQuorumSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"addBootstrapNode(string)\":{\"params\":{\"netAddress\":\"The network address of the new bootstrap node.\"}},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"params\":{\"height\":\"The height of the checkpoint for which rewards are being distributed.\",\"kind\":\"The type of object for which rewards are being distributed.\",\"reward\":\"The total amount of reward to be distributed.\"}},\"join(bytes)\":{\"params\":{\"publicKey\":\"The off-chain 65 byte public key that should be associated with the validator\"}},\"kill()\":{\"details\":\"It is not a privileged operation.\"},\"preFund()\":{\"details\":\"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply.\"},\"preRelease(uint256)\":{\"details\":\"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.\",\"params\":{\"amount\":\"The amount to remove.\"}},\"setFederatedPower(address[],bytes[],uint256[])\":{\"details\":\"method that allows the contract owner to set the validators' federated power.\",\"params\":{\"powers\":\"The federated powers to be assigned to validators.\",\"publicKeys\":\"The public keys of validators.\",\"validators\":\"The addresses of validators.\"}},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"details\":\"It triggers the execution of a cross-net message batch.\",\"params\":{\"batch\":\"The batch of bottom-up messages.\",\"signatories\":\"The addresses of validators signing the batch.\",\"signatures\":\"The signatures of validators on the batch.\"}},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"details\":\"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\",\"params\":{\"checkpoint\":\"The executed bottom-up checkpoint.\",\"signatories\":\"The addresses of validators signing the checkpoint.\",\"signatures\":\"The signatures of validators on the checkpoint.\"}},\"unstake(uint256)\":{\"details\":\"`leave` must be used to unstake the entire stake.\",\"params\":{\"amount\":\"The amount to unstake.\"}},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"details\":\"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.\",\"params\":{\"hash\":\"The hash of the checkpoint.\",\"signatories\":\"The addresses of the signatories.\",\"signatures\":\"The packed signatures of the checkpoint.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBootstrapNode(string)\":{\"notice\":\"Add a bootstrap node.\"},\"claim()\":{\"notice\":\"Validator claims their released collateral.\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims its reward.\"},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"Distributes rewards to relayers for a specific checkpoint.\"},\"join(bytes)\":{\"notice\":\"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"kill()\":{\"notice\":\"method that allows to kill the subnet when all validators left.\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet.\"},\"pause()\":{\"notice\":\"Pauses all contract functions with the `whenNotPaused` modifier.\"},\"paused()\":{\"notice\":\"sets if to pause the contract\"},\"preFund()\":{\"notice\":\"method to add some initial balance into a subnet that hasn't yet bootstrapped.\"},\"preRelease(uint256)\":{\"notice\":\"method to remove funds from the initial balance of a subnet.\"},\"setFederatedPower(address[],bytes[],uint256[])\":{\"notice\":\"Sets the federated power of validators.\"},\"stake()\":{\"notice\":\"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"notice\":\"Submits a batch of bottom-up messages for execution.\"},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"notice\":\"Submits a checkpoint commitment for execution.\"},\"unpause()\":{\"notice\":\"Unpauses all contract functions with the `whenNotPaused` modifier.\"},\"unstake(uint256)\":{\"notice\":\"method that allows a validator to unstake a part of its collateral from a subnet.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"notice\":\"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorManagerFacet.sol\":\"SubnetActorManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"CollateralIsZero"},{"inputs":[],"type":"error","name":"DuplicatedGenesisValidator"},{"inputs":[],"type":"error","name":"EmptyAddress"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidFederationPayload"},{"inputs":[],"type":"error","name":"InvalidPublicKeyLength"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"type":"error","name":"InvalidSignatureErr"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NoCollateralToWithdraw"},{"inputs":[],"type":"error","name":"NotAllValidatorsHaveLeft"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughCollateral"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughGenesisValidators"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"NotOwnerOfPublicKey"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotValidator"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"SubnetAlreadyBootstrapped"},{"inputs":[],"type":"error","name":"SubnetAlreadyKilled"},{"inputs":[],"type":"error","name":"WithdrawExceedingCollateral"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}],"indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointSubmitted","anonymous":false},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"NextBottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"netAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addBootstrapNode"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"publicKey","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"bytes[]","name":"publicKeys","type":"bytes[]"},{"internalType":"uint256[]","name":"powers","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setFederatedPower"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"validateActiveQuorumSignatures"}],"devdoc":{"kind":"dev","methods":{"addBootstrapNode(string)":{"params":{"netAddress":"The network address of the new bootstrap node."}},"distributeRewardToRelayers(uint256,uint256,uint8)":{"params":{"height":"The height of the checkpoint for which rewards are being distributed.","kind":"The type of object for which rewards are being distributed.","reward":"The total amount of reward to be distributed."}},"join(bytes)":{"params":{"publicKey":"The off-chain 65 byte public key that should be associated with the validator"}},"kill()":{"details":"It is not a privileged operation."},"preFund()":{"details":"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply."},"preRelease(uint256)":{"details":"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.","params":{"amount":"The amount to remove."}},"setFederatedPower(address[],bytes[],uint256[])":{"details":"method that allows the contract owner to set the validators' federated power.","params":{"powers":"The federated powers to be assigned to validators.","publicKeys":"The public keys of validators.","validators":"The addresses of validators."}},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"details":"It triggers the execution of a cross-net message batch.","params":{"batch":"The batch of bottom-up messages.","signatories":"The addresses of validators signing the batch.","signatures":"The signatures of validators on the batch."}},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"details":"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.","params":{"checkpoint":"The executed bottom-up checkpoint.","signatories":"The addresses of validators signing the checkpoint.","signatures":"The signatures of validators on the checkpoint."}},"unstake(uint256)":{"details":"`leave` must be used to unstake the entire stake.","params":{"amount":"The amount to unstake."}},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"details":"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.","params":{"hash":"The hash of the checkpoint.","signatories":"The addresses of the signatories.","signatures":"The packed signatures of the checkpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"addBootstrapNode(string)":{"notice":"Add a bootstrap node."},"claim()":{"notice":"Validator claims their released collateral."},"claimRewardForRelayer()":{"notice":"Relayer claims its reward."},"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"Distributes rewards to relayers for a specific checkpoint."},"join(bytes)":{"notice":"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"kill()":{"notice":"method that allows to kill the subnet when all validators left."},"leave()":{"notice":"method that allows a validator to leave the subnet."},"pause()":{"notice":"Pauses all contract functions with the `whenNotPaused` modifier."},"paused()":{"notice":"sets if to pause the contract"},"preFund()":{"notice":"method to add some initial balance into a subnet that hasn't yet bootstrapped."},"preRelease(uint256)":{"notice":"method to remove funds from the initial balance of a subnet."},"setFederatedPower(address[],bytes[],uint256[])":{"notice":"Sets the federated power of validators."},"stake()":{"notice":"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"notice":"Submits a batch of bottom-up messages for execution."},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"notice":"Submits a checkpoint commitment for execution."},"unpause()":{"notice":"Unpauses all contract functions with the `whenNotPaused` modifier."},"unstake(uint256)":{"notice":"method that allows a validator to unstake a part of its collateral from a subnet."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"notice":"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorManagerFacet.sol":"SubnetActorManagerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","id":52152,"exportedSymbols":{"Address":[32838],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"BottomUpMsgBatchInfo":[49950],"CannotReleaseZero":[37374],"CollateralIsZero":[37390],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"EnumerableSet":[35815],"IGateway":[40354],"ISubnetActor":[40428],"InvalidBatchEpoch":[37406],"InvalidCheckpointEpoch":[37404],"InvalidFederationPayload":[37528],"InvalidPublicKeyLength":[37442],"InvalidSignatureErr":[37438],"LibDiamond":[41682],"LibStaking":[46176],"LibSubnetActor":[47157],"LibValidatorSet":[45293],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"MultisignatureChecker":[43291],"NotAllValidatorsHaveLeft":[37454],"NotEnoughBalance":[37462],"NotEnoughCollateral":[37466],"NotEnoughFunds":[37470],"NotOwnerOfPublicKey":[37480],"NotStakedBefore":[37484],"NotValidator":[37490],"Pausable":[43432],"PermissionMode":[50165],"QuorumObjKind":[50012],"ReentrancyGuard":[44013],"SubnetActorManagerFacet":[52151],"SubnetActorModifiers":[47335],"SubnetAlreadyBootstrapped":[37514],"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH":[36882],"Validator":[50211],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:20968:85","nodes":[{"id":50889,"nodeType":"PragmaDirective","src":"46:23:85","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50891,"nodeType":"ImportDirective","src":"71:81:85","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":50890,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"79:37:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50895,"nodeType":"ImportDirective","src":"153:122:85","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":50892,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37535,"src":"161:33:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50893,"name":"ERR_VALIDATOR_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37538,"src":"196:20:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50894,"name":"ERR_VALIDATOR_NOT_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37541,"src":"218:24:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50915,"nodeType":"ImportDirective","src":"276:428:85","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":50896,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"284:17:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50897,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"303:23:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50898,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"328:19:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50899,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37528,"src":"349:24:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50900,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37514,"src":"375:25:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50901,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"402:14:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50902,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37390,"src":"418:16:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50903,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"436:17:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50904,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"455:19:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50905,"name":"EmptyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37392,"src":"476:12:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50906,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37462,"src":"490:16:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50907,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37466,"src":"508:19:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50908,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"529:12:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50909,"name":"NotAllValidatorsHaveLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37454,"src":"543:24:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50910,"name":"NotStakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37484,"src":"569:15:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50911,"name":"InvalidSignatureErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37438,"src":"586:19:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50912,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"607:22:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50913,"name":"InvalidPublicKeyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37442,"src":"631:22:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50914,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"655:16:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50917,"nodeType":"ImportDirective","src":"705:52:85","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":50916,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"713:8:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50919,"nodeType":"ImportDirective","src":"758:60:85","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":40429,"symbolAliases":[{"foreign":{"id":50918,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40428,"src":"766:12:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50921,"nodeType":"ImportDirective","src":"819:52:85","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":50920,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"827:13:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50925,"nodeType":"ImportDirective","src":"872:99:85","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":50922,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"880:18:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50923,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"900:16:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50924,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49950,"src":"918:20:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50929,"nodeType":"ImportDirective","src":"972:78:85","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":50926,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"980:9:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50927,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"991:12:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50928,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"1005:14:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50931,"nodeType":"ImportDirective","src":"1051:48:85","nodes":[],"absolutePath":"src/lib/LibPausable.sol","file":"../lib/LibPausable.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":43433,"symbolAliases":[{"foreign":{"id":50930,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"1059:8:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50933,"nodeType":"ImportDirective","src":"1100:49:85","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":50932,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1108:10:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50935,"nodeType":"ImportDirective","src":"1150:74:85","nodes":[],"absolutePath":"src/lib/LibMultisignatureChecker.sol","file":"../lib/LibMultisignatureChecker.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":43292,"symbolAliases":[{"foreign":{"id":50934,"name":"MultisignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43291,"src":"1158:21:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50937,"nodeType":"ImportDirective","src":"1225:62:85","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":44014,"symbolAliases":[{"foreign":{"id":50936,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44013,"src":"1233:15:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50939,"nodeType":"ImportDirective","src":"1288:70:85","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":50938,"name":"SubnetActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47335,"src":"1296:20:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50942,"nodeType":"ImportDirective","src":"1359:66:85","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":50940,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"1367:15:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50941,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"1384:10:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50944,"nodeType":"ImportDirective","src":"1426:85:85","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":50943,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"1434:13:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50946,"nodeType":"ImportDirective","src":"1512:65:85","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":50945,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"1520:7:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50948,"nodeType":"ImportDirective","src":"1578:57:85","nodes":[],"absolutePath":"src/lib/LibSubnetActor.sol","file":"../lib/LibSubnetActor.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":47158,"symbolAliases":[{"foreign":{"id":50947,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"1586:14:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52151,"nodeType":"ContractDefinition","src":"1637:19376:85","nodes":[{"id":50960,"nodeType":"UsingForDirective","src":"1741:49:85","nodes":[],"global":false,"libraryName":{"id":50957,"name":"EnumerableSet","nameLocations":["1747:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"1747:13:85"},"typeName":{"id":50959,"nodeType":"UserDefinedTypeName","pathNode":{"id":50958,"name":"EnumerableSet.AddressSet","nameLocations":["1765:13:85","1779:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1765:24:85"},"referencedDeclaration":35528,"src":"1765:24:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":50964,"nodeType":"UsingForDirective","src":"1795:39:85","nodes":[],"global":false,"libraryName":{"id":50961,"name":"LibValidatorSet","nameLocations":["1801:15:85"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"1801:15:85"},"typeName":{"id":50963,"nodeType":"UserDefinedTypeName","pathNode":{"id":50962,"name":"ValidatorSet","nameLocations":["1821:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1821:12:85"},"referencedDeclaration":50190,"src":"1821:12:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":50967,"nodeType":"UsingForDirective","src":"1839:34:85","nodes":[],"global":false,"libraryName":{"id":50965,"name":"Address","nameLocations":["1845:7:85"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"1845:7:85"},"typeName":{"id":50966,"name":"address","nodeType":"ElementaryTypeName","src":"1857:15:85","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":50974,"nodeType":"EventDefinition","src":"1879:84:85","nodes":[],"anonymous":false,"eventSelector":"d63563b27ce36973f83298826a819cf265baf84d804105df045332d478d6e729","name":"BottomUpCheckpointSubmitted","nameLocation":"1885:27:85","parameters":{"id":50973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50970,"indexed":false,"mutability":"mutable","name":"checkpoint","nameLocation":"1932:10:85","nodeType":"VariableDeclaration","scope":50974,"src":"1913:29:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":50969,"nodeType":"UserDefinedTypeName","pathNode":{"id":50968,"name":"BottomUpCheckpoint","nameLocations":["1913:18:85"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1913:18:85"},"referencedDeclaration":49932,"src":"1913:18:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":50972,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"1952:9:85","nodeType":"VariableDeclaration","scope":50974,"src":"1944:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50971,"name":"address","nodeType":"ElementaryTypeName","src":"1944:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1912:50:85"}},{"id":50980,"nodeType":"EventDefinition","src":"1968:67:85","nodes":[],"anonymous":false,"eventSelector":"80a0a4fd3793019c6c7b5b585afa82ddec6688153f00043373aa40b7f98c7684","name":"BottomUpCheckpointExecuted","nameLocation":"1974:26:85","parameters":{"id":50979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50976,"indexed":false,"mutability":"mutable","name":"epoch","nameLocation":"2009:5:85","nodeType":"VariableDeclaration","scope":50980,"src":"2001:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50975,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50978,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"2024:9:85","nodeType":"VariableDeclaration","scope":50980,"src":"2016:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50977,"name":"address","nodeType":"ElementaryTypeName","src":"2016:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2000:34:85"}},{"id":50986,"nodeType":"EventDefinition","src":"2040:71:85","nodes":[],"anonymous":false,"eventSelector":"68a21aa05d1dd93ff19ca25c17b08ee04c5707e70b46d2355f126ac379e50e78","name":"NextBottomUpCheckpointExecuted","nameLocation":"2046:30:85","parameters":{"id":50985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50982,"indexed":false,"mutability":"mutable","name":"epoch","nameLocation":"2085:5:85","nodeType":"VariableDeclaration","scope":50986,"src":"2077:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50981,"name":"uint256","nodeType":"ElementaryTypeName","src":"2077:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50984,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"2100:9:85","nodeType":"VariableDeclaration","scope":50986,"src":"2092:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50983,"name":"address","nodeType":"ElementaryTypeName","src":"2092:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2076:34:85"}},{"id":50999,"nodeType":"FunctionDefinition","src":"2198:96:85","nodes":[],"body":{"id":50998,"nodeType":"Block","src":"2224:70:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50990,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2234:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":50992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2245:22:85","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41144,"src":"2234:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":50993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2234:35:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50994,"nodeType":"ExpressionStatement","src":"2234:35:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":50995,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43391,"src":"2279:6:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":50996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2279:8:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50997,"nodeType":"ExpressionStatement","src":"2279:8:85"}]},"documentation":{"id":50987,"nodeType":"StructuredDocumentation","src":"2117:76:85","text":"@notice Pauses all contract functions with the `whenNotPaused` modifier."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[],"name":"pause","nameLocation":"2207:5:85","parameters":{"id":50988,"nodeType":"ParameterList","parameters":[],"src":"2212:2:85"},"returnParameters":{"id":50989,"nodeType":"ParameterList","parameters":[],"src":"2224:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51012,"nodeType":"FunctionDefinition","src":"2383:100:85","nodes":[],"body":{"id":51011,"nodeType":"Block","src":"2411:72:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51003,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2421:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":51005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2432:22:85","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41144,"src":"2421:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2421:35:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51007,"nodeType":"ExpressionStatement","src":"2421:35:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":51008,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2466:8:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":51009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2466:10:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51010,"nodeType":"ExpressionStatement","src":"2466:10:85"}]},"documentation":{"id":51000,"nodeType":"StructuredDocumentation","src":"2300:78:85","text":"@notice Unpauses all contract functions with the `whenNotPaused` modifier."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"2392:7:85","parameters":{"id":51001,"nodeType":"ParameterList","parameters":[],"src":"2399:2:85"},"returnParameters":{"id":51002,"nodeType":"ParameterList","parameters":[],"src":"2411:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51154,"nodeType":"FunctionDefinition","src":"2951:2808:85","nodes":[],"body":{"id":51153,"nodeType":"Block","src":"3131:2628:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":51040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51027,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"3272:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3283:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3272:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51029,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"3298:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3300:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"3298:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":51031,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"3331:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3333:19:85","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"3331:21:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3298:54:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3272:80:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51035,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"3368:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3379:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3368:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51037,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"3394:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3396:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"3394:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3368:56:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3272:152:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51045,"nodeType":"IfStatement","src":"3255:236:85","trueBody":{"id":51044,"nodeType":"Block","src":"3435:56:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51041,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"3456:22:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3456:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51043,"nodeType":"RevertStatement","src":"3449:31:85"}]}},{"assignments":[51047],"declarations":[{"constant":false,"id":51047,"mutability":"mutable","name":"checkpointHash","nameLocation":"3508:14:85","nodeType":"VariableDeclaration","scope":51153,"src":"3500:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":51046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3500:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":51054,"initialValue":{"arguments":[{"arguments":[{"id":51051,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"3546:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":51049,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3535:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":51050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3539:6:85","memberName":"encode","nodeType":"MemberAccess","src":"3535:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":51052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3535:22:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":51048,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3525:9:85","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":51053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3525:33:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3500:58:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51055,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"3573:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3584:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3573:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"3599:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3601:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"3599:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":51059,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"3632:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3634:19:85","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"3632:21:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3599:54:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3573:80:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51114,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4672:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4683:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"4672:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":51116,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4698:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4700:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"4698:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4672:56:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51151,"nodeType":"IfStatement","src":"4668:1085:85","trueBody":{"id":51150,"nodeType":"Block","src":"4730:1023:85","statements":[{"assignments":[51120],"declarations":[{"constant":false,"id":51120,"mutability":"mutable","name":"lastCheckpointHash","nameLocation":"5430:18:85","nodeType":"VariableDeclaration","scope":51150,"src":"5422:26:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":51119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5422:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":51131,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":51124,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"5472:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5474:20:85","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":47184,"src":"5472:22:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":51128,"indexExpression":{"expression":{"id":51126,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"5495:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5506:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"5495:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5472:46:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}],"expression":{"id":51122,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5461:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":51123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5465:6:85","memberName":"encode","nodeType":"MemberAccess","src":"5461:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":51129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5461:58:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":51121,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5451:9:85","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":51130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:69:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5422:98:85"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":51134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51132,"name":"checkpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51047,"src":"5538:14:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":51133,"name":"lastCheckpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51120,"src":"5556:18:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5538:36:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51149,"nodeType":"IfStatement","src":"5534:209:85","trueBody":{"id":51148,"nodeType":"Block","src":"5576:167:85","statements":[{"expression":{"arguments":[{"expression":{"id":51144,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5717:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5721:6:85","memberName":"sender","nodeType":"MemberAccess","src":"5717:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":51135,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"5653:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5655:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"5653:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":51141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5670:18:85","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49961,"src":"5653:35:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":51142,"indexExpression":{"expression":{"id":51138,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"5689:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5700:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"5689:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5653:59:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5713:3:85","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"5653:63:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:75:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51147,"nodeType":"ExpressionStatement","src":"5653:75:85"}]}}]}},"id":51152,"nodeType":"IfStatement","src":"3569:2184:85","trueBody":{"id":51113,"nodeType":"Block","src":"3655:1007:85","statements":[{"expression":{"arguments":[{"id":51064,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51019,"src":"3798:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":51065,"name":"checkpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51047,"src":"3817:14:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":51066,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51022,"src":"3845:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":51063,"name":"validateActiveQuorumSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52150,"src":"3753:30:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bytes32,bytes memory[] memory) view"}},"id":51067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3785:11:85","3811:4:85","3833:10:85"],"names":["signatories","hash","signatures"],"nodeType":"FunctionCall","src":"3753:104:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51068,"nodeType":"ExpressionStatement","src":"3753:104:85"},{"expression":{"id":51076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":51069,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4112:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4114:20:85","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":47184,"src":"4112:22:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":51074,"indexExpression":{"expression":{"id":51071,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4135:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4146:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"4135:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4112:46:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51075,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4161:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"src":"4112:59:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":51077,"nodeType":"ExpressionStatement","src":"4112:59:85"},{"expression":{"arguments":[{"expression":{"id":51087,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4305:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4309:6:85","memberName":"sender","nodeType":"MemberAccess","src":"4305:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":51078,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4241:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4243:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"4241:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":51084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4258:18:85","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49961,"src":"4241:35:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":51085,"indexExpression":{"expression":{"id":51081,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4277:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4288:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"4277:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4241:59:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4301:3:85","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"4241:63:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4241:75:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51090,"nodeType":"ExpressionStatement","src":"4241:75:85"},{"expression":{"id":51096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51091,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4331:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4333:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"4331:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":51094,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4364:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4375:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"4364:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4331:55:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51097,"nodeType":"ExpressionStatement","src":"4331:55:85"},{"expression":{"arguments":[{"id":51103,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4500:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"arguments":[{"expression":{"id":51099,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4465:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4467:14:85","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"4465:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51098,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"4456:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":51101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4456:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":51102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4483:16:85","memberName":"commitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":40286,"src":"4456:43:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory) external"}},"id":51104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4456:55:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51105,"nodeType":"ExpressionStatement","src":"4456:55:85"},{"expression":{"arguments":[{"expression":{"id":51109,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4616:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4627:23:85","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":49931,"src":"4616:34:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":51106,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"4591:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4602:13:85","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46175,"src":"4591:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":51111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4591:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51112,"nodeType":"ExpressionStatement","src":"4591:60:85"}]}}]},"baseFunctions":[40416],"documentation":{"id":51013,"nodeType":"StructuredDocumentation","src":"2489:457:85","text":"@notice Submits a checkpoint commitment for execution.\n @dev It triggers the commitment of the checkpoint and any other side-effects that\n need to be triggered by the checkpoint such as relayer reward book keeping.\n @param checkpoint The executed bottom-up checkpoint.\n @param signatories The addresses of validators signing the checkpoint.\n @param signatures The signatures of validators on the checkpoint."},"functionSelector":"b9ee2bb9","implemented":true,"kind":"function","modifiers":[{"id":51025,"kind":"modifierInvocation","modifierName":{"id":51024,"name":"whenNotPaused","nameLocations":["3117:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"3117:13:85"},"nodeType":"ModifierInvocation","src":"3117:13:85"}],"name":"submitCheckpoint","nameLocation":"2960:16:85","parameters":{"id":51023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51016,"mutability":"mutable","name":"checkpoint","nameLocation":"3014:10:85","nodeType":"VariableDeclaration","scope":51154,"src":"2986:38:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":51015,"nodeType":"UserDefinedTypeName","pathNode":{"id":51014,"name":"BottomUpCheckpoint","nameLocations":["2986:18:85"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"2986:18:85"},"referencedDeclaration":49932,"src":"2986:18:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":51019,"mutability":"mutable","name":"signatories","nameLocation":"3053:11:85","nodeType":"VariableDeclaration","scope":51154,"src":"3034:30:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51017,"name":"address","nodeType":"ElementaryTypeName","src":"3034:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51018,"nodeType":"ArrayTypeName","src":"3034:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":51022,"mutability":"mutable","name":"signatures","nameLocation":"3091:10:85","nodeType":"VariableDeclaration","scope":51154,"src":"3074:27:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":51020,"name":"bytes","nodeType":"ElementaryTypeName","src":"3074:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":51021,"nodeType":"ArrayTypeName","src":"3074:7:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2976:131:85"},"returnParameters":{"id":51026,"nodeType":"ParameterList","parameters":[],"src":"3131:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51294,"nodeType":"FunctionDefinition","src":"6100:2131:85","nodes":[],"body":{"id":51293,"nodeType":"Block","src":"6265:1966:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51167,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6337:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6343:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"6337:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":51169,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"6357:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6359:17:85","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"6357:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":51171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6377:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49947,"src":"6357:31:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6337:51:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51177,"nodeType":"IfStatement","src":"6333:108:85","trueBody":{"id":51176,"nodeType":"Block","src":"6390:51:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51173,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"6411:17:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6411:19:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51175,"nodeType":"RevertStatement","src":"6404:26:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":51178,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6454:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6460:4:85","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"6454:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":51180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6465:6:85","memberName":"length","nodeType":"MemberAccess","src":"6454:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":51181,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"6474:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6476:23:85","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47214,"src":"6474:25:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6454:45:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51188,"nodeType":"IfStatement","src":"6450:108:85","trueBody":{"id":51187,"nodeType":"Block","src":"6501:57:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51184,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"6522:23:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6522:25:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51186,"nodeType":"RevertStatement","src":"6515:32:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":51202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":51189,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6664:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6670:4:85","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"6664:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":51191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6675:6:85","memberName":"length","nodeType":"MemberAccess","src":"6664:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51192,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"6685:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6687:23:85","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47214,"src":"6685:25:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6664:46:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51195,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6714:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6720:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"6714:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":51197,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"6734:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6736:22:85","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":47211,"src":"6734:24:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6714:44:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":51200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6762:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6714:49:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6664:99:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51207,"nodeType":"IfStatement","src":"6660:156:85","trueBody":{"id":51206,"nodeType":"Block","src":"6765:51:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51203,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"6786:17:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6786:19:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51205,"nodeType":"RevertStatement","src":"6779:26:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":51208,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6829:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6835:4:85","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"6829:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":51210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6840:6:85","memberName":"length","nodeType":"MemberAccess","src":"6829:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6850:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6829:22:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51217,"nodeType":"IfStatement","src":"6825:81:85","trueBody":{"id":51216,"nodeType":"Block","src":"6853:53:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51213,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"6874:19:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6874:21:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51215,"nodeType":"RevertStatement","src":"6867:28:85"}]}},{"assignments":[51219],"declarations":[{"constant":false,"id":51219,"mutability":"mutable","name":"batchHash","nameLocation":"6924:9:85","nodeType":"VariableDeclaration","scope":51293,"src":"6916:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":51218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6916:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":51226,"initialValue":{"arguments":[{"arguments":[{"id":51223,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6957:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":51221,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6946:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":51222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6950:6:85","memberName":"encode","nodeType":"MemberAccess","src":"6946:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":51224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6946:17:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":51220,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6936:9:85","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":51225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6936:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6916:48:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51227,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6979:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6985:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"6979:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":51229,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"7000:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7002:17:85","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"7000:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":51231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7020:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49947,"src":"7000:31:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6979:52:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51291,"nodeType":"Block","src":"7509:716:85","statements":[{"expression":{"arguments":[{"id":51255,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51161,"src":"7652:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":51256,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51219,"src":"7671:9:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":51257,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51164,"src":"7694:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":51254,"name":"validateActiveQuorumSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52150,"src":"7607:30:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bytes32,bytes memory[] memory) view"}},"id":51258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["7639:11:85","7665:4:85","7682:10:85"],"names":["signatories","hash","signatures"],"nodeType":"FunctionCall","src":"7607:99:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51259,"nodeType":"ExpressionStatement","src":"7607:99:85"},{"expression":{"id":51268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51260,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"7884:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7886:17:85","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"7884:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":51264,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"7941:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7947:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"7941:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":51266,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51219,"src":"7966:9:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":51263,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49950,"src":"7906:20:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpMsgBatchInfo_$49950_storage_ptr_$","typeString":"type(struct BottomUpMsgBatchInfo storage pointer)"}},"id":51267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7928:11:85","7960:4:85"],"names":["blockHeight","hash"],"nodeType":"FunctionCall","src":"7906:71:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_memory_ptr","typeString":"struct BottomUpMsgBatchInfo memory"}},"src":"7884:93:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":51269,"nodeType":"ExpressionStatement","src":"7884:93:85"},{"expression":{"arguments":[{"expression":{"id":51279,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8101:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8105:6:85","memberName":"sender","nodeType":"MemberAccess","src":"8101:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":51270,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8047:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8049:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"8047:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":51276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8064:13:85","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":49967,"src":"8047:30:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":51277,"indexExpression":{"expression":{"id":51273,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"8078:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8084:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"8078:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8047:49:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8097:3:85","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"8047:53:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8047:65:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51282,"nodeType":"ExpressionStatement","src":"8047:65:85"},{"expression":{"arguments":[{"id":51288,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"8208:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"arguments":[{"expression":{"id":51284,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8169:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8171:14:85","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"8169:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51283,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"8160:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":51286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8160:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":51287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8187:20:85","memberName":"execBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":40353,"src":"8160:47:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) external"}},"id":51289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8160:54:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51290,"nodeType":"ExpressionStatement","src":"8160:54:85"}]},"id":51292,"nodeType":"IfStatement","src":"6975:1250:85","trueBody":{"id":51253,"nodeType":"Block","src":"7033:470:85","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":51237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51233,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51219,"src":"7297:9:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":51234,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"7310:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7312:17:85","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"7310:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":51236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7330:4:85","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":49949,"src":"7310:24:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7297:37:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51252,"nodeType":"IfStatement","src":"7293:200:85","trueBody":{"id":51251,"nodeType":"Block","src":"7336:157:85","statements":[{"expression":{"arguments":[{"expression":{"id":51247,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7467:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7471:6:85","memberName":"sender","nodeType":"MemberAccess","src":"7467:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":51238,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"7413:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7415:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"7413:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":51244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7430:13:85","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":49967,"src":"7413:30:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":51245,"indexExpression":{"expression":{"id":51241,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"7444:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7450:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"7444:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7413:49:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7463:3:85","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"7413:53:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7413:65:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51250,"nodeType":"ExpressionStatement","src":"7413:65:85"}]}}]}}]},"documentation":{"id":51155,"nodeType":"StructuredDocumentation","src":"5765:330:85","text":"@notice Submits a batch of bottom-up messages for execution.\n @dev It triggers the execution of a cross-net message batch.\n @param batch The batch of bottom-up messages.\n @param signatories The addresses of validators signing the batch.\n @param signatures The signatures of validators on the batch."},"functionSelector":"26811936","implemented":true,"kind":"function","modifiers":[],"name":"submitBottomUpMsgBatch","nameLocation":"6109:22:85","parameters":{"id":51165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51158,"mutability":"mutable","name":"batch","nameLocation":"6167:5:85","nodeType":"VariableDeclaration","scope":51294,"src":"6141:31:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":51157,"nodeType":"UserDefinedTypeName","pathNode":{"id":51156,"name":"BottomUpMsgBatch","nameLocations":["6141:16:85"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"6141:16:85"},"referencedDeclaration":49945,"src":"6141:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":51161,"mutability":"mutable","name":"signatories","nameLocation":"6201:11:85","nodeType":"VariableDeclaration","scope":51294,"src":"6182:30:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51159,"name":"address","nodeType":"ElementaryTypeName","src":"6182:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51160,"nodeType":"ArrayTypeName","src":"6182:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":51164,"mutability":"mutable","name":"signatures","nameLocation":"6239:10:85","nodeType":"VariableDeclaration","scope":51294,"src":"6222:27:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":51162,"name":"bytes","nodeType":"ElementaryTypeName","src":"6222:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":51163,"nodeType":"ArrayTypeName","src":"6222:7:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"6131:124:85"},"returnParameters":{"id":51166,"nodeType":"ParameterList","parameters":[],"src":"6265:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51350,"nodeType":"FunctionDefinition","src":"8457:414:85","nodes":[],"body":{"id":51349,"nodeType":"Block","src":"8493:378:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51298,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8507:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8511:5:85","memberName":"value","nodeType":"MemberAccess","src":"8507:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8520:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8507:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51306,"nodeType":"IfStatement","src":"8503:68:85","trueBody":{"id":51305,"nodeType":"Block","src":"8523:48:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51302,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"8544:14:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8544:16:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51304,"nodeType":"RevertStatement","src":"8537:23:85"}]}},{"condition":{"expression":{"id":51307,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8585:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8587:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"8585:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51313,"nodeType":"IfStatement","src":"8581:79:85","trueBody":{"id":51312,"nodeType":"Block","src":"8601:59:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51309,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37514,"src":"8622:25:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8622:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51311,"nodeType":"RevertStatement","src":"8615:34:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51314,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8674:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8676:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"8674:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51318,"indexExpression":{"expression":{"id":51316,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8691:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8695:6:85","memberName":"sender","nodeType":"MemberAccess","src":"8691:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8674:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8706:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8674:33:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51331,"nodeType":"IfStatement","src":"8670:101:85","trueBody":{"id":51330,"nodeType":"Block","src":"8709:62:85","statements":[{"expression":{"arguments":[{"expression":{"id":51326,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8749:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8753:6:85","memberName":"sender","nodeType":"MemberAccess","src":"8749:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51321,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8723:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8725:18:85","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"8723:20:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":51325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8744:4:85","memberName":"push","nodeType":"MemberAccess","src":"8723:25:85","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":51328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8723:37:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51329,"nodeType":"ExpressionStatement","src":"8723:37:85"}]}},{"expression":{"id":51340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":51332,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8781:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8783:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"8781:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51337,"indexExpression":{"expression":{"id":51334,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8798:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8802:6:85","memberName":"sender","nodeType":"MemberAccess","src":"8798:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8781:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":51338,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8813:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8817:5:85","memberName":"value","nodeType":"MemberAccess","src":"8813:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8781:41:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51341,"nodeType":"ExpressionStatement","src":"8781:41:85"},{"expression":{"id":51347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51342,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8832:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8834:17:85","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"8832:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":51345,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8855:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8859:5:85","memberName":"value","nodeType":"MemberAccess","src":"8855:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8832:32:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51348,"nodeType":"ExpressionStatement","src":"8832:32:85"}]},"baseFunctions":[40379],"documentation":{"id":51295,"nodeType":"StructuredDocumentation","src":"8237:215:85","text":"@notice method to add some initial balance into a subnet that hasn't yet bootstrapped.\n @dev This balance is added to user addresses in genesis, and becomes part of the genesis\n circulating supply."},"functionSelector":"0b7fbe60","implemented":true,"kind":"function","modifiers":[],"name":"preFund","nameLocation":"8466:7:85","parameters":{"id":51296,"nodeType":"ParameterList","parameters":[],"src":"8473:2:85"},"returnParameters":{"id":51297,"nodeType":"ParameterList","parameters":[],"src":"8493:0:85"},"scope":52151,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":51426,"nodeType":"FunctionDefinition","src":"9131:591:85","nodes":[],"body":{"id":51425,"nodeType":"Block","src":"9189:533:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51358,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51353,"src":"9203:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9213:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9203:11:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51365,"nodeType":"IfStatement","src":"9199:65:85","trueBody":{"id":51364,"nodeType":"Block","src":"9216:48:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51361,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"9237:14:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9237:16:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51363,"nodeType":"RevertStatement","src":"9230:23:85"}]}},{"condition":{"expression":{"id":51366,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"9278:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9280:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"9278:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51372,"nodeType":"IfStatement","src":"9274:79:85","trueBody":{"id":51371,"nodeType":"Block","src":"9294:59:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51368,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37514,"src":"9315:25:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9315:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51370,"nodeType":"RevertStatement","src":"9308:34:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51373,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"9367:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9369:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"9367:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51377,"indexExpression":{"expression":{"id":51375,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9384:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9388:6:85","memberName":"sender","nodeType":"MemberAccess","src":"9384:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9367:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":51378,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51353,"src":"9398:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9367:37:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51384,"nodeType":"IfStatement","src":"9363:93:85","trueBody":{"id":51383,"nodeType":"Block","src":"9406:50:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51380,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37462,"src":"9427:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9427:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51382,"nodeType":"RevertStatement","src":"9420:25:85"}]}},{"expression":{"id":51392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":51385,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"9466:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9468:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"9466:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51390,"indexExpression":{"expression":{"id":51387,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9483:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9487:6:85","memberName":"sender","nodeType":"MemberAccess","src":"9483:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9466:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":51391,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51353,"src":"9498:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9466:38:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51393,"nodeType":"ExpressionStatement","src":"9466:38:85"},{"expression":{"id":51398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51394,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"9514:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9516:17:85","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"9514:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":51397,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51353,"src":"9537:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9514:29:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51399,"nodeType":"ExpressionStatement","src":"9514:29:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51400,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"9558:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9560:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"9558:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51404,"indexExpression":{"expression":{"id":51402,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9575:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9579:6:85","memberName":"sender","nodeType":"MemberAccess","src":"9575:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9558:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9590:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9558:33:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51415,"nodeType":"IfStatement","src":"9554:114:85","trueBody":{"id":51414,"nodeType":"Block","src":"9593:75:85","statements":[{"expression":{"arguments":[{"expression":{"id":51410,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9646:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9650:6:85","memberName":"sender","nodeType":"MemberAccess","src":"9646:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51407,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"9607:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9622:23:85","memberName":"rmAddressFromBalanceKey","nodeType":"MemberAccess","referencedDeclaration":47156,"src":"9607:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":51412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9607:50:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51413,"nodeType":"ExpressionStatement","src":"9607:50:85"}]}},{"expression":{"arguments":[{"id":51422,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51353,"src":"9708:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":51418,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9686:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9690:6:85","memberName":"sender","nodeType":"MemberAccess","src":"9686:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9678:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":51416,"name":"address","nodeType":"ElementaryTypeName","src":"9678:8:85","stateMutability":"payable","typeDescriptions":{}}},"id":51420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9678:19:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":51421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9698:9:85","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"9678:29:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":51423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9678:37:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51424,"nodeType":"ExpressionStatement","src":"9678:37:85"}]},"baseFunctions":[40385],"documentation":{"id":51351,"nodeType":"StructuredDocumentation","src":"8877:249:85","text":"@notice method to remove funds from the initial balance of a subnet.\n @dev This method can be used by users looking to recover part of their\n initial balance before the subnet bootstraps.\n @param amount The amount to remove."},"functionSelector":"66783c9b","implemented":true,"kind":"function","modifiers":[{"id":51356,"kind":"modifierInvocation","modifierName":{"id":51355,"name":"nonReentrant","nameLocations":["9176:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"9176:12:85"},"nodeType":"ModifierInvocation","src":"9176:12:85"}],"name":"preRelease","nameLocation":"9140:10:85","parameters":{"id":51354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51353,"mutability":"mutable","name":"amount","nameLocation":"9159:6:85","nodeType":"VariableDeclaration","scope":51426,"src":"9151:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51352,"name":"uint256","nodeType":"ElementaryTypeName","src":"9151:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9150:16:85"},"returnParameters":{"id":51357,"nodeType":"ParameterList","parameters":[],"src":"9189:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51493,"nodeType":"FunctionDefinition","src":"10060:728:85","nodes":[],"body":{"id":51492,"nodeType":"Block","src":"10223:565:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51441,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"10233:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":51443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10244:22:85","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41144,"src":"10233:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10233:35:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51445,"nodeType":"ExpressionStatement","src":"10233:35:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51446,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"10279:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10294:26:85","memberName":"enforceFederatedValidation","nodeType":"MemberAccess","referencedDeclaration":46765,"src":"10279:41:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10279:43:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51450,"nodeType":"ExpressionStatement","src":"10279:43:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51451,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51430,"src":"10337:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":51452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10348:6:85","memberName":"length","nodeType":"MemberAccess","src":"10337:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51453,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51436,"src":"10358:6:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":51454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10365:6:85","memberName":"length","nodeType":"MemberAccess","src":"10358:13:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10337:34:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51460,"nodeType":"IfStatement","src":"10333:98:85","trueBody":{"id":51459,"nodeType":"Block","src":"10373:58:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51456,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37528,"src":"10394:24:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10394:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51458,"nodeType":"RevertStatement","src":"10387:33:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51461,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51430,"src":"10445:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":51462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10456:6:85","memberName":"length","nodeType":"MemberAccess","src":"10445:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51463,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51433,"src":"10466:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":51464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10477:6:85","memberName":"length","nodeType":"MemberAccess","src":"10466:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10445:38:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51470,"nodeType":"IfStatement","src":"10441:102:85","trueBody":{"id":51469,"nodeType":"Block","src":"10485:58:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51466,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37528,"src":"10506:24:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10506:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51468,"nodeType":"RevertStatement","src":"10499:33:85"}]}},{"condition":{"expression":{"id":51471,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"10557:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10559:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"10557:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51490,"nodeType":"Block","src":"10681:101:85","statements":[{"expression":{"arguments":[{"id":51485,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51430,"src":"10740:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":51486,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51433,"src":"10752:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":51487,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51436,"src":"10764:6:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"expression":{"id":51482,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"10695:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10710:29:85","memberName":"preBootstrapSetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":47032,"src":"10695:44:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$","typeString":"function (address[] calldata,bytes calldata[] calldata,uint256[] calldata)"}},"id":51488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10695:76:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51489,"nodeType":"ExpressionStatement","src":"10695:76:85"}]},"id":51491,"nodeType":"IfStatement","src":"10553:229:85","trueBody":{"id":51481,"nodeType":"Block","src":"10573:102:85","statements":[{"expression":{"arguments":[{"id":51476,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51430,"src":"10633:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":51477,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51433,"src":"10645:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":51478,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51436,"src":"10657:6:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"expression":{"id":51473,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"10587:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10602:30:85","memberName":"postBootstrapSetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":47095,"src":"10587:45:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$","typeString":"function (address[] calldata,bytes calldata[] calldata,uint256[] calldata)"}},"id":51479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10587:77:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51480,"nodeType":"ExpressionStatement","src":"10587:77:85"}]}}]},"documentation":{"id":51427,"nodeType":"StructuredDocumentation","src":"9728:327:85","text":"@notice Sets the federated power of validators.\n @dev method that allows the contract owner to set the validators' federated power.\n @param validators The addresses of validators.\n @param publicKeys The public keys of validators.\n @param powers The federated powers to be assigned to validators."},"functionSelector":"da5d09ee","implemented":true,"kind":"function","modifiers":[{"id":51439,"kind":"modifierInvocation","modifierName":{"id":51438,"name":"notKilled","nameLocations":["10213:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"10213:9:85"},"nodeType":"ModifierInvocation","src":"10213:9:85"}],"name":"setFederatedPower","nameLocation":"10069:17:85","parameters":{"id":51437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51430,"mutability":"mutable","name":"validators","nameLocation":"10115:10:85","nodeType":"VariableDeclaration","scope":51493,"src":"10096:29:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51428,"name":"address","nodeType":"ElementaryTypeName","src":"10096:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51429,"nodeType":"ArrayTypeName","src":"10096:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":51433,"mutability":"mutable","name":"publicKeys","nameLocation":"10152:10:85","nodeType":"VariableDeclaration","scope":51493,"src":"10135:27:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":51431,"name":"bytes","nodeType":"ElementaryTypeName","src":"10135:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":51432,"nodeType":"ArrayTypeName","src":"10135:7:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":51436,"mutability":"mutable","name":"powers","nameLocation":"10191:6:85","nodeType":"VariableDeclaration","scope":51493,"src":"10172:25:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":51434,"name":"uint256","nodeType":"ElementaryTypeName","src":"10172:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51435,"nodeType":"ArrayTypeName","src":"10172:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"10086:117:85"},"returnParameters":{"id":51440,"nodeType":"ParameterList","parameters":[],"src":"10223:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51605,"nodeType":"FunctionDefinition","src":"11177:1714:85","nodes":[],"body":{"id":51604,"nodeType":"Block","src":"11271:1620:85","nodes":[],"statements":[{"condition":{"expression":{"id":51505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"11499:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11501:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"11499:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51513,"nodeType":"IfStatement","src":"11495:89:85","trueBody":{"id":51512,"nodeType":"Block","src":"11515:69:85","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51507,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"11529:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11544:27:85","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46740,"src":"11529:42:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11529:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51511,"nodeType":"ExpressionStatement","src":"11529:44:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51514,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11597:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11601:5:85","memberName":"value","nodeType":"MemberAccess","src":"11597:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11610:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11597:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51522,"nodeType":"IfStatement","src":"11593:70:85","trueBody":{"id":51521,"nodeType":"Block","src":"11613:50:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51518,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37390,"src":"11634:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11634:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51520,"nodeType":"RevertStatement","src":"11627:25:85"}]}},{"condition":{"arguments":[{"expression":{"id":51525,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11700:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11704:6:85","memberName":"sender","nodeType":"MemberAccess","src":"11700:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51523,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"11677:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11688:11:85","memberName":"isValidator","nodeType":"MemberAccess","referencedDeclaration":45409,"src":"11677:22:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":51527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11677:34:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51533,"nodeType":"IfStatement","src":"11673:110:85","trueBody":{"id":51532,"nodeType":"Block","src":"11713:70:85","statements":[{"errorCall":{"arguments":[{"id":51529,"name":"ERR_VALIDATOR_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37538,"src":"11751:20:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":51528,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"11734:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11734:38:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51531,"nodeType":"RevertStatement","src":"11727:45:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51534,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"11797:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":51535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11807:6:85","memberName":"length","nodeType":"MemberAccess","src":"11797:16:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51536,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"11817:37:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11797:57:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51542,"nodeType":"IfStatement","src":"11793:232:85","trueBody":{"id":51541,"nodeType":"Block","src":"11856:169:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51538,"name":"InvalidPublicKeyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37442,"src":"11990:22:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11990:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51540,"nodeType":"RevertStatement","src":"11983:31:85"}]}},{"assignments":[51544],"declarations":[{"constant":false,"id":51544,"mutability":"mutable","name":"convertedAddress","nameLocation":"12043:16:85","nodeType":"VariableDeclaration","scope":51604,"src":"12035:24:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51543,"name":"address","nodeType":"ElementaryTypeName","src":"12035:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51549,"initialValue":{"arguments":[{"id":51547,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"12096:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51545,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"12062:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12077:18:85","memberName":"publicKeyToAddress","nodeType":"MemberAccess","referencedDeclaration":46891,"src":"12062:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":51548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12062:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12035:71:85"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51550,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"12120:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51551,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12140:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12144:6:85","memberName":"sender","nodeType":"MemberAccess","src":"12140:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12120:30:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51558,"nodeType":"IfStatement","src":"12116:89:85","trueBody":{"id":51557,"nodeType":"Block","src":"12152:53:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51554,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"12173:19:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12173:21:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51556,"nodeType":"RevertStatement","src":"12166:28:85"}]}},{"condition":{"id":51561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12219:15:85","subExpression":{"expression":{"id":51559,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"12220:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12222:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"12220:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51602,"nodeType":"Block","src":"12665:220:85","statements":[{"expression":{"arguments":[{"expression":{"id":51588,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12797:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12801:6:85","memberName":"sender","nodeType":"MemberAccess","src":"12797:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51590,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"12809:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51585,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"12765:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12776:20:85","memberName":"setValidatorMetadata","nodeType":"MemberAccess","referencedDeclaration":45791,"src":"12765:31:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":51591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12765:54:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51592,"nodeType":"ExpressionStatement","src":"12765:54:85"},{"expression":{"arguments":[{"expression":{"id":51596,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12852:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12856:6:85","memberName":"sender","nodeType":"MemberAccess","src":"12852:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51598,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12864:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12868:5:85","memberName":"value","nodeType":"MemberAccess","src":"12864:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51593,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"12833:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12844:7:85","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":45825,"src":"12833:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12833:41:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51601,"nodeType":"ExpressionStatement","src":"12833:41:85"}]},"id":51603,"nodeType":"IfStatement","src":"12215:670:85","trueBody":{"id":51584,"nodeType":"Block","src":"12236:423:85","statements":[{"expression":{"arguments":[{"expression":{"id":51565,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12505:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12509:6:85","memberName":"sender","nodeType":"MemberAccess","src":"12505:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51567,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"12517:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51562,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"12471:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12482:22:85","memberName":"setMetadataWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45587,"src":"12471:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":51568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12471:56:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51569,"nodeType":"ExpressionStatement","src":"12471:56:85"},{"expression":{"arguments":[{"expression":{"id":51573,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12571:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12575:6:85","memberName":"sender","nodeType":"MemberAccess","src":"12571:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51575,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12583:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12587:5:85","memberName":"value","nodeType":"MemberAccess","src":"12583:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51570,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"12541:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12552:18:85","memberName":"depositWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45696,"src":"12541:29:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12541:52:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51578,"nodeType":"ExpressionStatement","src":"12541:52:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51579,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"12608:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12623:23:85","memberName":"bootstrapSubnetIfNeeded","nodeType":"MemberAccess","referencedDeclaration":46822,"src":"12608:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":51582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12608:40:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51583,"nodeType":"ExpressionStatement","src":"12608:40:85"}]}}]},"baseFunctions":[40367],"documentation":{"id":51494,"nodeType":"StructuredDocumentation","src":"10794:378:85","text":"@notice method that allows a validator to join the subnet.\n If the total confirmed collateral of the subnet is greater\n or equal to minimum activation collateral as a result of this operation,\n then subnet will be registered.\n @param publicKey The off-chain 65 byte public key that should be associated with the validator"},"functionSelector":"6170b162","implemented":true,"kind":"function","modifiers":[{"id":51499,"kind":"modifierInvocation","modifierName":{"id":51498,"name":"nonReentrant","nameLocations":["11234:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"11234:12:85"},"nodeType":"ModifierInvocation","src":"11234:12:85"},{"id":51501,"kind":"modifierInvocation","modifierName":{"id":51500,"name":"whenNotPaused","nameLocations":["11247:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"11247:13:85"},"nodeType":"ModifierInvocation","src":"11247:13:85"},{"id":51503,"kind":"modifierInvocation","modifierName":{"id":51502,"name":"notKilled","nameLocations":["11261:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"11261:9:85"},"nodeType":"ModifierInvocation","src":"11261:9:85"}],"name":"join","nameLocation":"11186:4:85","parameters":{"id":51497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51496,"mutability":"mutable","name":"publicKey","nameLocation":"11206:9:85","nodeType":"VariableDeclaration","scope":51605,"src":"11191:24:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51495,"name":"bytes","nodeType":"ElementaryTypeName","src":"11191:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11190:26:85"},"returnParameters":{"id":51504,"nodeType":"ParameterList","parameters":[],"src":"11271:0:85"},"scope":52151,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":51669,"nodeType":"FunctionDefinition","src":"13180:696:85","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"13238:638:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51613,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"13386:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13401:27:85","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46740,"src":"13386:42:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13386:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51617,"nodeType":"ExpressionStatement","src":"13386:44:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51618,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13444:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13448:5:85","memberName":"value","nodeType":"MemberAccess","src":"13444:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13457:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13444:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51626,"nodeType":"IfStatement","src":"13440:70:85","trueBody":{"id":51625,"nodeType":"Block","src":"13460:50:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51622,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37390,"src":"13481:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13481:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51624,"nodeType":"RevertStatement","src":"13474:25:85"}]}},{"condition":{"id":51632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13524:35:85","subExpression":{"arguments":[{"expression":{"id":51629,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13548:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13552:6:85","memberName":"sender","nodeType":"MemberAccess","src":"13548:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51627,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"13525:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13536:11:85","memberName":"isValidator","nodeType":"MemberAccess","referencedDeclaration":45409,"src":"13525:22:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":51631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13525:34:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51638,"nodeType":"IfStatement","src":"13520:115:85","trueBody":{"id":51637,"nodeType":"Block","src":"13561:74:85","statements":[{"errorCall":{"arguments":[{"id":51634,"name":"ERR_VALIDATOR_NOT_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37541,"src":"13599:24:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":51633,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"13582:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13582:42:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51636,"nodeType":"RevertStatement","src":"13575:49:85"}]}},{"condition":{"id":51641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13649:15:85","subExpression":{"expression":{"id":51639,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"13650:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13652:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"13650:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51666,"nodeType":"Block","src":"13804:66:85","statements":[{"expression":{"arguments":[{"expression":{"id":51660,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13837:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13841:6:85","memberName":"sender","nodeType":"MemberAccess","src":"13837:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51662,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13849:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13853:5:85","memberName":"value","nodeType":"MemberAccess","src":"13849:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51657,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"13818:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13829:7:85","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":45825,"src":"13818:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13818:41:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51665,"nodeType":"ExpressionStatement","src":"13818:41:85"}]},"id":51667,"nodeType":"IfStatement","src":"13645:225:85","trueBody":{"id":51656,"nodeType":"Block","src":"13666:132:85","statements":[{"expression":{"arguments":[{"expression":{"id":51645,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13710:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13714:6:85","memberName":"sender","nodeType":"MemberAccess","src":"13710:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51647,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13722:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13726:5:85","memberName":"value","nodeType":"MemberAccess","src":"13722:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51642,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"13680:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13691:18:85","memberName":"depositWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45696,"src":"13680:29:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13680:52:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51650,"nodeType":"ExpressionStatement","src":"13680:52:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51651,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"13747:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13762:23:85","memberName":"bootstrapSubnetIfNeeded","nodeType":"MemberAccess","referencedDeclaration":46822,"src":"13747:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":51654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13747:40:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51655,"nodeType":"ExpressionStatement","src":"13747:40:85"}]}}]},"baseFunctions":[40375],"documentation":{"id":51606,"nodeType":"StructuredDocumentation","src":"12897:278:85","text":"@notice method that allows a validator to increase its stake.\n If the total confirmed collateral of the subnet is greater\n or equal to minimum activation collateral as a result of this operation,\n then subnet will be registered."},"functionSelector":"3a4b66f1","implemented":true,"kind":"function","modifiers":[{"id":51609,"kind":"modifierInvocation","modifierName":{"id":51608,"name":"whenNotPaused","nameLocations":["13214:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"13214:13:85"},"nodeType":"ModifierInvocation","src":"13214:13:85"},{"id":51611,"kind":"modifierInvocation","modifierName":{"id":51610,"name":"notKilled","nameLocations":["13228:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"13228:9:85"},"nodeType":"ModifierInvocation","src":"13228:9:85"}],"name":"stake","nameLocation":"13189:5:85","parameters":{"id":51607,"nodeType":"ParameterList","parameters":[],"src":"13194:2:85"},"returnParameters":{"id":51612,"nodeType":"ParameterList","parameters":[],"src":"13238:0:85"},"scope":52151,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":51741,"nodeType":"FunctionDefinition","src":"14088:782:85","nodes":[],"body":{"id":51740,"nodeType":"Block","src":"14154:716:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51679,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"14312:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14327:27:85","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46740,"src":"14312:42:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14312:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51683,"nodeType":"ExpressionStatement","src":"14312:44:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"14371:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14381:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14371:11:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51691,"nodeType":"IfStatement","src":"14367:68:85","trueBody":{"id":51690,"nodeType":"Block","src":"14384:51:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51687,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"14405:17:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14405:19:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51689,"nodeType":"RevertStatement","src":"14398:26:85"}]}},{"assignments":[51693],"declarations":[{"constant":false,"id":51693,"mutability":"mutable","name":"collateral","nameLocation":"14453:10:85","nodeType":"VariableDeclaration","scope":51740,"src":"14445:18:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51692,"name":"uint256","nodeType":"ElementaryTypeName","src":"14445:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51699,"initialValue":{"arguments":[{"expression":{"id":51696,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14502:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14506:6:85","memberName":"sender","nodeType":"MemberAccess","src":"14502:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51694,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"14466:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14477:24:85","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":45537,"src":"14466:35:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":51698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14466:47:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14445:68:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51700,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51693,"src":"14528:10:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14542:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14528:15:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51709,"nodeType":"IfStatement","src":"14524:77:85","trueBody":{"id":51708,"nodeType":"Block","src":"14545:56:85","statements":[{"errorCall":{"arguments":[{"expression":{"id":51704,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14579:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14583:6:85","memberName":"sender","nodeType":"MemberAccess","src":"14579:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51703,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"14566:12:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":51706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14566:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51707,"nodeType":"RevertStatement","src":"14559:31:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51710,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51693,"src":"14614:10:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":51711,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"14628:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14614:20:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51717,"nodeType":"IfStatement","src":"14610:79:85","trueBody":{"id":51716,"nodeType":"Block","src":"14636:53:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51713,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37466,"src":"14657:19:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14657:21:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51715,"nodeType":"RevertStatement","src":"14650:28:85"}]}},{"condition":{"id":51720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14702:15:85","subExpression":{"expression":{"id":51718,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"14703:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14705:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"14703:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51731,"nodeType":"IfStatement","src":"14698:116:85","trueBody":{"id":51730,"nodeType":"Block","src":"14719:95:85","statements":[{"expression":{"arguments":[{"expression":{"id":51724,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14764:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14768:6:85","memberName":"sender","nodeType":"MemberAccess","src":"14764:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"14776:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51721,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"14733:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14744:19:85","memberName":"withdrawWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45738,"src":"14733:30:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14733:50:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51728,"nodeType":"ExpressionStatement","src":"14733:50:85"},{"functionReturnParameters":51678,"id":51729,"nodeType":"Return","src":"14797:7:85"}]}},{"expression":{"arguments":[{"expression":{"id":51735,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14844:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14848:6:85","memberName":"sender","nodeType":"MemberAccess","src":"14844:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51737,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"14856:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51732,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"14824:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14835:8:85","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":45859,"src":"14824:19:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14824:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51739,"nodeType":"ExpressionStatement","src":"14824:39:85"}]},"baseFunctions":[40391],"documentation":{"id":51670,"nodeType":"StructuredDocumentation","src":"13882:201:85","text":"@notice method that allows a validator to unstake a part of its collateral from a subnet.\n @dev `leave` must be used to unstake the entire stake.\n @param amount The amount to unstake."},"functionSelector":"2e17de78","implemented":true,"kind":"function","modifiers":[{"id":51675,"kind":"modifierInvocation","modifierName":{"id":51674,"name":"whenNotPaused","nameLocations":["14130:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"14130:13:85"},"nodeType":"ModifierInvocation","src":"14130:13:85"},{"id":51677,"kind":"modifierInvocation","modifierName":{"id":51676,"name":"notKilled","nameLocations":["14144:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"14144:9:85"},"nodeType":"ModifierInvocation","src":"14144:9:85"}],"name":"unstake","nameLocation":"14097:7:85","parameters":{"id":51673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51672,"mutability":"mutable","name":"amount","nameLocation":"14113:6:85","nodeType":"VariableDeclaration","scope":51741,"src":"14105:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51671,"name":"uint256","nodeType":"ElementaryTypeName","src":"14105:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14104:16:85"},"returnParameters":{"id":51678,"nodeType":"ParameterList","parameters":[],"src":"14154:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51861,"nodeType":"FunctionDefinition","src":"14944:1550:85","nodes":[],"body":{"id":51860,"nodeType":"Block","src":"15007:1487:85","nodes":[],"statements":[{"condition":{"expression":{"id":51751,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"15345:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15347:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"15345:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51759,"nodeType":"IfStatement","src":"15341:89:85","trueBody":{"id":51758,"nodeType":"Block","src":"15361:69:85","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51753,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"15375:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15390:27:85","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46740,"src":"15375:42:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15375:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51757,"nodeType":"ExpressionStatement","src":"15375:44:85"}]}},{"assignments":[51761],"declarations":[{"constant":false,"id":51761,"mutability":"mutable","name":"amount","nameLocation":"15506:6:85","nodeType":"VariableDeclaration","scope":51860,"src":"15498:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51760,"name":"uint256","nodeType":"ElementaryTypeName","src":"15498:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51767,"initialValue":{"arguments":[{"expression":{"id":51764,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15551:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15555:6:85","memberName":"sender","nodeType":"MemberAccess","src":"15551:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51762,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"15515:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15526:24:85","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":45537,"src":"15515:35:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":51766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15515:47:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15498:64:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51768,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51761,"src":"15576:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15586:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15576:11:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51777,"nodeType":"IfStatement","src":"15572:73:85","trueBody":{"id":51776,"nodeType":"Block","src":"15589:56:85","statements":[{"errorCall":{"arguments":[{"expression":{"id":51772,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15623:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15627:6:85","memberName":"sender","nodeType":"MemberAccess","src":"15623:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51771,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"15610:12:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":51774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15610:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51775,"nodeType":"RevertStatement","src":"15603:31:85"}]}},{"expression":{"arguments":[{"expression":{"id":51783,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15731:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15735:6:85","memberName":"sender","nodeType":"MemberAccess","src":"15731:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51778,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"15706:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15708:15:85","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47276,"src":"15706:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15724:6:85","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35582,"src":"15706:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15706:36:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51786,"nodeType":"ExpressionStatement","src":"15706:36:85"},{"expression":{"id":51792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"15752:35:85","subExpression":{"baseExpression":{"expression":{"id":51787,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"15759:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15761:14:85","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":47272,"src":"15759:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":51791,"indexExpression":{"expression":{"id":51789,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15776:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15780:6:85","memberName":"sender","nodeType":"MemberAccess","src":"15776:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15759:28:85","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51793,"nodeType":"ExpressionStatement","src":"15752:35:85"},{"condition":{"id":51796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15802:15:85","subExpression":{"expression":{"id":51794,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"15803:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15805:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"15803:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51851,"nodeType":"IfStatement","src":"15798:641:85","trueBody":{"id":51850,"nodeType":"Block","src":"15819:620:85","statements":[{"assignments":[51798],"declarations":[{"constant":false,"id":51798,"mutability":"mutable","name":"genesisBalance","nameLocation":"15938:14:85","nodeType":"VariableDeclaration","scope":51850,"src":"15930:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51797,"name":"uint256","nodeType":"ElementaryTypeName","src":"15930:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51804,"initialValue":{"baseExpression":{"expression":{"id":51799,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"15955:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15957:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"15955:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51803,"indexExpression":{"expression":{"id":51801,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15972:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15976:6:85","memberName":"sender","nodeType":"MemberAccess","src":"15972:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15955:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15930:53:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51805,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51798,"src":"16001:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":51806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16019:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16001:19:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51840,"nodeType":"IfStatement","src":"15997:277:85","trueBody":{"id":51839,"nodeType":"Block","src":"16022:252:85","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51808,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"16040:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16042:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"16040:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51813,"indexExpression":{"expression":{"id":51810,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16057:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16061:6:85","memberName":"sender","nodeType":"MemberAccess","src":"16057:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16040:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16072:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16040:33:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51816,"nodeType":"ExpressionStatement","src":"16040:33:85"},{"expression":{"id":51821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51817,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"16091:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16093:17:85","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"16091:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":51820,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51798,"src":"16114:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16091:37:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51822,"nodeType":"ExpressionStatement","src":"16091:37:85"},{"expression":{"arguments":[{"expression":{"id":51826,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16185:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16189:6:85","memberName":"sender","nodeType":"MemberAccess","src":"16185:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51823,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"16146:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16161:23:85","memberName":"rmAddressFromBalanceKey","nodeType":"MemberAccess","referencedDeclaration":47156,"src":"16146:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":51828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16146:50:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51829,"nodeType":"ExpressionStatement","src":"16146:50:85"},{"expression":{"arguments":[{"id":51836,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51798,"src":"16244:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":51832,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16222:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16226:6:85","memberName":"sender","nodeType":"MemberAccess","src":"16222:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16214:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":51830,"name":"address","nodeType":"ElementaryTypeName","src":"16214:8:85","stateMutability":"payable","typeDescriptions":{}}},"id":51834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16214:19:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":51835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16234:9:85","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"16214:29:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":51837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16214:45:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51838,"nodeType":"ExpressionStatement","src":"16214:45:85"}]}},{"expression":{"arguments":[{"expression":{"id":51844,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16389:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16393:6:85","memberName":"sender","nodeType":"MemberAccess","src":"16389:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51761,"src":"16401:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51841,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"16358:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16369:19:85","memberName":"withdrawWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45738,"src":"16358:30:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16358:50:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51848,"nodeType":"ExpressionStatement","src":"16358:50:85"},{"functionReturnParameters":51750,"id":51849,"nodeType":"Return","src":"16422:7:85"}]}},{"expression":{"arguments":[{"expression":{"id":51855,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16468:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16472:6:85","memberName":"sender","nodeType":"MemberAccess","src":"16468:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51857,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51761,"src":"16480:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51852,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"16448:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16459:8:85","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":45859,"src":"16448:19:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16448:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51859,"nodeType":"ExpressionStatement","src":"16448:39:85"}]},"baseFunctions":[40371],"documentation":{"id":51742,"nodeType":"StructuredDocumentation","src":"14876:63:85","text":"@notice method that allows a validator to leave the subnet."},"functionSelector":"d66d9e19","implemented":true,"kind":"function","modifiers":[{"id":51745,"kind":"modifierInvocation","modifierName":{"id":51744,"name":"nonReentrant","nameLocations":["14970:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"14970:12:85"},"nodeType":"ModifierInvocation","src":"14970:12:85"},{"id":51747,"kind":"modifierInvocation","modifierName":{"id":51746,"name":"whenNotPaused","nameLocations":["14983:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"14983:13:85"},"nodeType":"ModifierInvocation","src":"14983:13:85"},{"id":51749,"kind":"modifierInvocation","modifierName":{"id":51748,"name":"notKilled","nameLocations":["14997:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"14997:9:85"},"nodeType":"ModifierInvocation","src":"14997:9:85"}],"name":"leave","nameLocation":"14953:5:85","parameters":{"id":51743,"nodeType":"ParameterList","parameters":[],"src":"14958:2:85"},"returnParameters":{"id":51750,"nodeType":"ParameterList","parameters":[],"src":"15007:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51891,"nodeType":"FunctionDefinition","src":"16627:217:85","nodes":[],"body":{"id":51890,"nodeType":"Block","src":"16662:182:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":51871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51867,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"16676:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16687:15:85","memberName":"totalValidators","nodeType":"MemberAccess","referencedDeclaration":45478,"src":"16676:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":51869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16676:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":51870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16708:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16676:33:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51876,"nodeType":"IfStatement","src":"16672:97:85","trueBody":{"id":51875,"nodeType":"Block","src":"16711:58:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51872,"name":"NotAllValidatorsHaveLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37454,"src":"16732:24:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16732:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51874,"nodeType":"RevertStatement","src":"16725:33:85"}]}},{"expression":{"id":51881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51877,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"16779:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16781:6:85","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47248,"src":"16779:8:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":51880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16790:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16779:15:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51882,"nodeType":"ExpressionStatement","src":"16779:15:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":51884,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"16813:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16815:14:85","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"16813:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51883,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"16804:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":51886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16804:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":51887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16831:4:85","memberName":"kill","nodeType":"MemberAccess","referencedDeclaration":40279,"src":"16804:31:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":51888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16804:33:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51889,"nodeType":"ExpressionStatement","src":"16804:33:85"}]},"baseFunctions":[40395],"documentation":{"id":51862,"nodeType":"StructuredDocumentation","src":"16500:122:85","text":"@notice method that allows to kill the subnet when all validators left.\n @dev It is not a privileged operation."},"functionSelector":"41c0e1b5","implemented":true,"kind":"function","modifiers":[{"id":51865,"kind":"modifierInvocation","modifierName":{"id":51864,"name":"notKilled","nameLocations":["16652:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"16652:9:85"},"nodeType":"ModifierInvocation","src":"16652:9:85"}],"name":"kill","nameLocation":"16636:4:85","parameters":{"id":51863,"nodeType":"ParameterList","parameters":[],"src":"16640:2:85"},"returnParameters":{"id":51866,"nodeType":"ParameterList","parameters":[],"src":"16662:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51907,"nodeType":"FunctionDefinition","src":"16910:108:85","nodes":[],"body":{"id":51906,"nodeType":"Block","src":"16963:55:85","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":51902,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17000:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17004:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17000:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51899,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"16973:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16984:15:85","memberName":"claimCollateral","nodeType":"MemberAccess","referencedDeclaration":45886,"src":"16973:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":51904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16973:38:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51905,"nodeType":"ExpressionStatement","src":"16973:38:85"}]},"baseFunctions":[40399],"documentation":{"id":51892,"nodeType":"StructuredDocumentation","src":"16850:55:85","text":"@notice Validator claims their released collateral."},"functionSelector":"4e71d92d","implemented":true,"kind":"function","modifiers":[{"id":51895,"kind":"modifierInvocation","modifierName":{"id":51894,"name":"nonReentrant","nameLocations":["16936:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"16936:12:85"},"nodeType":"ModifierInvocation","src":"16936:12:85"},{"id":51897,"kind":"modifierInvocation","modifierName":{"id":51896,"name":"whenNotPaused","nameLocations":["16949:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"16949:13:85"},"nodeType":"ModifierInvocation","src":"16949:13:85"}],"name":"claim","nameLocation":"16919:5:85","parameters":{"id":51893,"nodeType":"ParameterList","parameters":[],"src":"16924:2:85"},"returnParameters":{"id":51898,"nodeType":"ParameterList","parameters":[],"src":"16963:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51923,"nodeType":"FunctionDefinition","src":"17067:130:85","nodes":[],"body":{"id":51922,"nodeType":"Block","src":"17136:61:85","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":51918,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17179:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17183:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17179:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51915,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"17146:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17157:21:85","memberName":"claimRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":45942,"src":"17146:32:85","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":51920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17146:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51921,"nodeType":"ExpressionStatement","src":"17146:44:85"}]},"baseFunctions":[40403],"documentation":{"id":51908,"nodeType":"StructuredDocumentation","src":"17024:38:85","text":"@notice Relayer claims its reward."},"functionSelector":"ed7c4da1","implemented":true,"kind":"function","modifiers":[{"id":51911,"kind":"modifierInvocation","modifierName":{"id":51910,"name":"nonReentrant","nameLocations":["17109:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"17109:12:85"},"nodeType":"ModifierInvocation","src":"17109:12:85"},{"id":51913,"kind":"modifierInvocation","modifierName":{"id":51912,"name":"whenNotPaused","nameLocations":["17122:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"17122:13:85"},"nodeType":"ModifierInvocation","src":"17122:13:85"}],"name":"claimRewardForRelayer","nameLocation":"17076:21:85","parameters":{"id":51909,"nodeType":"ParameterList","parameters":[],"src":"17097:2:85"},"returnParameters":{"id":51914,"nodeType":"ParameterList","parameters":[],"src":"17136:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51976,"nodeType":"FunctionDefinition","src":"17314:433:85","nodes":[],"body":{"id":51975,"nodeType":"Block","src":"17389:358:85","nodes":[],"statements":[{"condition":{"id":51937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17403:45:85","subExpression":{"arguments":[{"expression":{"id":51934,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17437:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17441:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17437:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51931,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"17404:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17406:12:85","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17404:14:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":51933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17419:17:85","memberName":"isActiveValidator","nodeType":"MemberAccess","referencedDeclaration":44672,"src":"17404:32:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":51936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17404:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51944,"nodeType":"IfStatement","src":"17399:107:85","trueBody":{"id":51943,"nodeType":"Block","src":"17450:56:85","statements":[{"errorCall":{"arguments":[{"expression":{"id":51939,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17484:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17488:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17484:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51938,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"17471:12:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":51941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17471:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51942,"nodeType":"RevertStatement","src":"17464:31:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":51947,"name":"netAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51926,"src":"17525:10:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":51946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17519:5:85","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":51945,"name":"bytes","nodeType":"ElementaryTypeName","src":"17519:5:85","typeDescriptions":{}}},"id":51948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17519:17:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":51949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17537:6:85","memberName":"length","nodeType":"MemberAccess","src":"17519:24:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17547:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17519:29:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51956,"nodeType":"IfStatement","src":"17515:81:85","trueBody":{"id":51955,"nodeType":"Block","src":"17550:46:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51952,"name":"EmptyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37392,"src":"17571:12:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17571:14:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51954,"nodeType":"RevertStatement","src":"17564:21:85"}]}},{"expression":{"id":51964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":51957,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"17605:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17607:14:85","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":47272,"src":"17605:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":51962,"indexExpression":{"expression":{"id":51959,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17622:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17626:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17622:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17605:28:85","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51963,"name":"netAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51926,"src":"17636:10:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"17605:41:85","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":51965,"nodeType":"ExpressionStatement","src":"17605:41:85"},{"expression":{"arguments":[{"expression":{"id":51971,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17729:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17733:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17729:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51966,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"17707:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17709:15:85","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47276,"src":"17707:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17725:3:85","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"17707:21:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17707:33:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51974,"nodeType":"ExpressionStatement","src":"17707:33:85"}]},"documentation":{"id":51924,"nodeType":"StructuredDocumentation","src":"17203:106:85","text":"@notice Add a bootstrap node.\n @param netAddress The network address of the new bootstrap node."},"functionSelector":"10fd4261","implemented":true,"kind":"function","modifiers":[{"id":51929,"kind":"modifierInvocation","modifierName":{"id":51928,"name":"whenNotPaused","nameLocations":["17375:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"17375:13:85"},"nodeType":"ModifierInvocation","src":"17375:13:85"}],"name":"addBootstrapNode","nameLocation":"17323:16:85","parameters":{"id":51927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51926,"mutability":"mutable","name":"netAddress","nameLocation":"17354:10:85","nodeType":"VariableDeclaration","scope":51976,"src":"17340:24:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51925,"name":"string","nodeType":"ElementaryTypeName","src":"17340:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17339:26:85"},"returnParameters":{"id":51930,"nodeType":"ParameterList","parameters":[],"src":"17389:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":52084,"nodeType":"FunctionDefinition","src":"18068:1492:85","nodes":[],"body":{"id":52083,"nodeType":"Block","src":"18229:1331:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51991,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51981,"src":"18243:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18253:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18243:11:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51996,"nodeType":"IfStatement","src":"18239:48:85","trueBody":{"id":51995,"nodeType":"Block","src":"18256:31:85","statements":[{"functionReturnParameters":51990,"id":51994,"nodeType":"Return","src":"18270:7:85"}]}},{"assignments":[52001],"declarations":[{"constant":false,"id":52001,"mutability":"mutable","name":"relayers","nameLocation":"18348:8:85","nodeType":"VariableDeclaration","scope":52083,"src":"18331:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51999,"name":"address","nodeType":"ElementaryTypeName","src":"18331:7:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52000,"nodeType":"ArrayTypeName","src":"18331:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":52007,"initialValue":{"arguments":[{"hexValue":"30","id":52005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18373:1:85","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":52004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18359:13:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52002,"name":"address","nodeType":"ElementaryTypeName","src":"18363:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52003,"nodeType":"ArrayTypeName","src":"18363:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18359:16:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18331:44:85"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"id":52011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52008,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51984,"src":"18389:4:85","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":52009,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"18397:13:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$50012_$","typeString":"type(enum QuorumObjKind)"}},"id":52010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18411:10:85","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":50010,"src":"18397:24:85","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"src":"18389:32:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"id":52023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52020,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51984,"src":"18515:4:85","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":52021,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"18523:13:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$50012_$","typeString":"type(enum QuorumObjKind)"}},"id":52022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18537:16:85","memberName":"BottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":50011,"src":"18523:30:85","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"src":"18515:38:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":52033,"nodeType":"Block","src":"18866:87:85","statements":[{"errorCall":{"arguments":[{"hexValue":"72657761726473206e6f7420646566696e656420666f72206f626a656374206b696e64","id":52030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18904:37:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5d5a9667afc22826bedfac6abae6135d509547bfc0cd862f890b74ed636031a","typeString":"literal_string \"rewards not defined for object kind\""},"value":"rewards not defined for object kind"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5d5a9667afc22826bedfac6abae6135d509547bfc0cd862f890b74ed636031a","typeString":"literal_string \"rewards not defined for object kind\""}],"id":52029,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"18887:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":52031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18887:55:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52032,"nodeType":"RevertStatement","src":"18880:62:85"}]},"id":52034,"nodeType":"IfStatement","src":"18511:442:85","trueBody":{"id":52028,"nodeType":"Block","src":"18555:305:85","statements":[{"errorCall":{"arguments":[{"hexValue":"72657761726473206e6f7420646566696e656420666f722062617463686573","id":52025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18815:33:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_b9da9cb0c4374da0abe5efd456ab1dd51477d12760d042f65c0c4dce4c666fdb","typeString":"literal_string \"rewards not defined for batches\""},"value":"rewards not defined for batches"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b9da9cb0c4374da0abe5efd456ab1dd51477d12760d042f65c0c4dce4c666fdb","typeString":"literal_string \"rewards not defined for batches\""}],"id":52024,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"18798:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":52026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18798:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52027,"nodeType":"RevertStatement","src":"18791:58:85"}]}},"id":52035,"nodeType":"IfStatement","src":"18385:568:85","trueBody":{"id":52019,"nodeType":"Block","src":"18423:82:85","statements":[{"expression":{"id":52017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52012,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52001,"src":"18437:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52015,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51979,"src":"18487:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52013,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"18448:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":52014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18463:23:85","memberName":"checkpointRewardedAddrs","nodeType":"MemberAccess","referencedDeclaration":46856,"src":"18448:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) view returns (address[] memory)"}},"id":52016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18448:46:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18437:57:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52018,"nodeType":"ExpressionStatement","src":"18437:57:85"}]}},{"assignments":[52037],"declarations":[{"constant":false,"id":52037,"mutability":"mutable","name":"relayersLength","nameLocation":"19115:14:85","nodeType":"VariableDeclaration","scope":52083,"src":"19107:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52036,"name":"uint256","nodeType":"ElementaryTypeName","src":"19107:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52040,"initialValue":{"expression":{"id":52038,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52001,"src":"19132:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19141:6:85","memberName":"length","nodeType":"MemberAccess","src":"19132:15:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19107:40:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52041,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52037,"src":"19161:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19179:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19161:19:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52046,"nodeType":"IfStatement","src":"19157:56:85","trueBody":{"id":52045,"nodeType":"Block","src":"19182:31:85","statements":[{"functionReturnParameters":51990,"id":52044,"nodeType":"Return","src":"19196:7:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52047,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51981,"src":"19226:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":52048,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52037,"src":"19235:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19226:23:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52052,"nodeType":"IfStatement","src":"19222:60:85","trueBody":{"id":52051,"nodeType":"Block","src":"19251:31:85","statements":[{"functionReturnParameters":51990,"id":52050,"nodeType":"Return","src":"19265:7:85"}]}},{"assignments":[52054],"declarations":[{"constant":false,"id":52054,"mutability":"mutable","name":"relayerReward","nameLocation":"19299:13:85","nodeType":"VariableDeclaration","scope":52083,"src":"19291:21:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52053,"name":"uint256","nodeType":"ElementaryTypeName","src":"19291:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52058,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52055,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51981,"src":"19315:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":52056,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52037,"src":"19324:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19315:23:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19291:47:85"},{"body":{"id":52081,"nodeType":"Block","src":"19416:138:85","statements":[{"expression":{"id":52075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":52065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"19430:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":52071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19432:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"19430:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":52072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19447:7:85","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"19430:24:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":52073,"indexExpression":{"baseExpression":{"id":52068,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52001,"src":"19455:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52070,"indexExpression":{"id":52069,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52060,"src":"19464:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19455:11:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19430:37:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":52074,"name":"relayerReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52054,"src":"19471:13:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19430:54:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52076,"nodeType":"ExpressionStatement","src":"19430:54:85"},{"id":52080,"nodeType":"UncheckedBlock","src":"19498:46:85","statements":[{"expression":{"id":52078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"19526:3:85","subExpression":{"id":52077,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52060,"src":"19528:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52079,"nodeType":"ExpressionStatement","src":"19526:3:85"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52062,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52060,"src":"19394:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":52063,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52037,"src":"19398:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19394:18:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52082,"initializationExpression":{"assignments":[52060],"declarations":[{"constant":false,"id":52060,"mutability":"mutable","name":"i","nameLocation":"19391:1:85","nodeType":"VariableDeclaration","scope":52082,"src":"19383:9:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52059,"name":"uint256","nodeType":"ElementaryTypeName","src":"19383:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52061,"nodeType":"VariableDeclarationStatement","src":"19383:9:85"},"nodeType":"ForStatement","src":"19378:176:85"}]},"baseFunctions":[40427],"documentation":{"id":51977,"nodeType":"StructuredDocumentation","src":"17753:310:85","text":"@notice Distributes rewards to relayers for a specific checkpoint.\n @param height The height of the checkpoint for which rewards are being distributed.\n @param reward The total amount of reward to be distributed.\n @param kind The type of object for which rewards are being distributed."},"functionSelector":"4c860af6","implemented":true,"kind":"function","modifiers":[{"id":51987,"kind":"modifierInvocation","modifierName":{"id":51986,"name":"whenNotPaused","nameLocations":["18203:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"18203:13:85"},"nodeType":"ModifierInvocation","src":"18203:13:85"},{"id":51989,"kind":"modifierInvocation","modifierName":{"id":51988,"name":"onlyGateway","nameLocations":["18217:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":47327,"src":"18217:11:85"},"nodeType":"ModifierInvocation","src":"18217:11:85"}],"name":"distributeRewardToRelayers","nameLocation":"18077:26:85","parameters":{"id":51985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51979,"mutability":"mutable","name":"height","nameLocation":"18121:6:85","nodeType":"VariableDeclaration","scope":52084,"src":"18113:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51978,"name":"uint256","nodeType":"ElementaryTypeName","src":"18113:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51981,"mutability":"mutable","name":"reward","nameLocation":"18145:6:85","nodeType":"VariableDeclaration","scope":52084,"src":"18137:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51980,"name":"uint256","nodeType":"ElementaryTypeName","src":"18137:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51984,"mutability":"mutable","name":"kind","nameLocation":"18175:4:85","nodeType":"VariableDeclaration","scope":52084,"src":"18161:18:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"typeName":{"id":51983,"nodeType":"UserDefinedTypeName","pathNode":{"id":51982,"name":"QuorumObjKind","nameLocations":["18161:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"18161:13:85"},"referencedDeclaration":50012,"src":"18161:13:85","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"visibility":"internal"}],"src":"18103:82:85"},"returnParameters":{"id":51990,"nodeType":"ParameterList","parameters":[],"src":"18229:0:85"},"scope":52151,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":52150,"nodeType":"FunctionDefinition","src":"20121:890:85","nodes":[],"body":{"id":52149,"nodeType":"Block","src":"20274:737:85","nodes":[],"statements":[{"assignments":[52100],"declarations":[{"constant":false,"id":52100,"mutability":"mutable","name":"collaterals","nameLocation":"20413:11:85","nodeType":"VariableDeclaration","scope":52149,"src":"20396:28:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52098,"name":"uint256","nodeType":"ElementaryTypeName","src":"20396:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52099,"nodeType":"ArrayTypeName","src":"20396:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":52106,"initialValue":{"arguments":[{"id":52104,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52088,"src":"20468:11:85","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"}],"expression":{"expression":{"id":52101,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"20427:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":52102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20429:12:85","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20427:14:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":52103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20442:25:85","memberName":"getTotalPowerOfValidators","nodeType":"MemberAccess","referencedDeclaration":44655,"src":"20427:40:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address[] memory) view returns (uint256[] memory)"}},"id":52105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20427:53:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20396:84:85"},{"assignments":[52108],"declarations":[{"constant":false,"id":52108,"mutability":"mutable","name":"activeCollateral","nameLocation":"20498:16:85","nodeType":"VariableDeclaration","scope":52149,"src":"20490:24:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52107,"name":"uint256","nodeType":"ElementaryTypeName","src":"20490:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52113,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":52109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"20517:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":52110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20519:12:85","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20517:14:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":52111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20532:19:85","memberName":"getTotalActivePower","nodeType":"MemberAccess","referencedDeclaration":44534,"src":"20517:34:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":52112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20517:36:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20490:63:85"},{"assignments":[52115],"declarations":[{"constant":false,"id":52115,"mutability":"mutable","name":"threshold","nameLocation":"20572:9:85","nodeType":"VariableDeclaration","scope":52149,"src":"20564:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52114,"name":"uint256","nodeType":"ElementaryTypeName","src":"20564:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52123,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52116,"name":"activeCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52108,"src":"20585:16:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":52117,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"20604:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":52118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20606:18:85","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":47231,"src":"20604:20:85","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"20585:39:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":52120,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20584:41:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":52121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20628:3:85","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20584:47:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20564:67:85"},{"assignments":[52125,52128],"declarations":[{"constant":false,"id":52125,"mutability":"mutable","name":"valid","nameLocation":"20648:5:85","nodeType":"VariableDeclaration","scope":52149,"src":"20643:10:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52124,"name":"bool","nodeType":"ElementaryTypeName","src":"20643:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":52128,"mutability":"mutable","name":"err","nameLocation":"20683:3:85","nodeType":"VariableDeclaration","scope":52149,"src":"20655:31:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"},"typeName":{"id":52127,"nodeType":"UserDefinedTypeName","pathNode":{"id":52126,"name":"MultisignatureChecker.Error","nameLocations":["20655:21:85","20677:5:85"],"nodeType":"IdentifierPath","referencedDeclaration":43152,"src":"20655:27:85"},"referencedDeclaration":43152,"src":"20655:27:85","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}},"visibility":"internal"}],"id":52137,"initialValue":{"arguments":[{"id":52131,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52088,"src":"20769:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":52132,"name":"collaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52100,"src":"20803:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":52133,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52115,"src":"20839:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52134,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52090,"src":"20868:4:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52135,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52093,"src":"20898:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":52129,"name":"MultisignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43291,"src":"20690:21:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MultisignatureChecker_$43291_$","typeString":"type(library MultisignatureChecker)"}},"id":52130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20712:29:85","memberName":"isValidWeightedMultiSignature","nodeType":"MemberAccess","referencedDeclaration":43290,"src":"20690:51:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$_t_enum$_Error_$43152_$","typeString":"function (address[] memory,uint256[] memory,uint256,bytes32,bytes memory[] memory) pure returns (bool,enum MultisignatureChecker.Error)"}},"id":52136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["20756:11:85","20794:7:85","20828:9:85","20862:4:85","20886:10:85"],"names":["signatories","weights","threshold","hash","signatures"],"nodeType":"FunctionCall","src":"20690:229:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"nodeType":"VariableDeclarationStatement","src":"20642:277:85"},{"condition":{"id":52139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20934:6:85","subExpression":{"id":52138,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52125,"src":"20935:5:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52148,"nodeType":"IfStatement","src":"20930:75:85","trueBody":{"id":52147,"nodeType":"Block","src":"20942:63:85","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":52143,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52128,"src":"20989:3:85","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}],"id":52142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20983:5:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":52141,"name":"uint8","nodeType":"ElementaryTypeName","src":"20983:5:85","typeDescriptions":{}}},"id":52144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20983:10:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":52140,"name":"InvalidSignatureErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37438,"src":"20963:19:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$returns$__$","typeString":"function (uint8) pure"}},"id":52145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20963:31:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52146,"nodeType":"RevertStatement","src":"20956:38:85"}]}}]},"documentation":{"id":52085,"nodeType":"StructuredDocumentation","src":"19566:550:85","text":"@notice Checks whether the signatures are valid for the provided signatories and hash within the current validator set.\n Reverts otherwise.\n @dev Signatories in `signatories` and their signatures in `signatures` must be provided in the same order.\n Having it public allows external users to perform sanity-check verification if needed.\n @param signatories The addresses of the signatories.\n @param hash The hash of the checkpoint.\n @param signatures The packed signatures of the checkpoint."},"functionSelector":"cc2dc2b9","implemented":true,"kind":"function","modifiers":[],"name":"validateActiveQuorumSignatures","nameLocation":"20130:30:85","parameters":{"id":52094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52088,"mutability":"mutable","name":"signatories","nameLocation":"20187:11:85","nodeType":"VariableDeclaration","scope":52150,"src":"20170:28:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":52086,"name":"address","nodeType":"ElementaryTypeName","src":"20170:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52087,"nodeType":"ArrayTypeName","src":"20170:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":52090,"mutability":"mutable","name":"hash","nameLocation":"20216:4:85","nodeType":"VariableDeclaration","scope":52150,"src":"20208:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52089,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20208:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":52093,"mutability":"mutable","name":"signatures","nameLocation":"20245:10:85","nodeType":"VariableDeclaration","scope":52150,"src":"20230:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":52091,"name":"bytes","nodeType":"ElementaryTypeName","src":"20230:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":52092,"nodeType":"ArrayTypeName","src":"20230:7:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"20160:101:85"},"returnParameters":{"id":52095,"nodeType":"ParameterList","parameters":[],"src":"20274:0:85"},"scope":52151,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":50949,"name":"ISubnetActor","nameLocations":["1673:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":40428,"src":"1673:12:85"},"id":50950,"nodeType":"InheritanceSpecifier","src":"1673:12:85"},{"baseName":{"id":50951,"name":"SubnetActorModifiers","nameLocations":["1687:20:85"],"nodeType":"IdentifierPath","referencedDeclaration":47335,"src":"1687:20:85"},"id":50952,"nodeType":"InheritanceSpecifier","src":"1687:20:85"},{"baseName":{"id":50953,"name":"Pausable","nameLocations":["1709:8:85"],"nodeType":"IdentifierPath","referencedDeclaration":43432,"src":"1709:8:85"},"id":50954,"nodeType":"InheritanceSpecifier","src":"1709:8:85"},{"baseName":{"id":50955,"name":"ReentrancyGuard","nameLocations":["1719:15:85"],"nodeType":"IdentifierPath","referencedDeclaration":44013,"src":"1719:15:85"},"id":50956,"nodeType":"InheritanceSpecifier","src":"1719:15:85"}],"canonicalName":"SubnetActorManagerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52151,44013,43432,47335,40428],"name":"SubnetActorManagerFacet","nameLocation":"1646:23:85","scope":52152,"usedErrors":[32461,32469,37368,37372,37374,37382,37390,37392,37404,37406,37408,37438,37442,37448,37454,37462,37466,37470,37478,37480,37490,37494,37496,37504,37510,37514,37526,37528,37530,37532,40975,43315,43318,43961]}],"license":"MIT OR Apache-2.0"},"id":85} \ No newline at end of file +{"abi":[{"type":"function","name":"addBootstrapNode","inputs":[{"name":"netAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"join","inputs":[{"name":"publicKey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFederatedPower","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"publicKeys","type":"bytes[]","internalType":"bytes[]"},{"name":"powers","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"CollateralIsZero","inputs":[]},{"type":"error","name":"DuplicatedGenesisValidator","inputs":[]},{"type":"error","name":"EmptyAddress","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidFederationPayload","inputs":[]},{"type":"error","name":"InvalidPublicKeyLength","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NotAllValidatorsHaveLeft","inputs":[]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughCollateral","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughGenesisValidators","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"NotOwnerOfPublicKey","inputs":[]},{"type":"error","name":"NotValidator","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SubnetAlreadyBootstrapped","inputs":[]},{"type":"error","name":"SubnetAlreadyKilled","inputs":[]},{"type":"error","name":"WithdrawExceedingCollateral","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657613926908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014610ec55750806310fd426114610d4c5780632e17de7814610d1f5780633a4b66f114610c4357806341c0e1b514610b905780636170b1621461084d57806366783c9b1461075a578063d66d9e19146106eb5763da5d09ee1461008457600080fd5b346104ed5760603660031901126104ed576004356001600160401b0381116106e7576100b490369060040161104d565b6024356001600160401b0381116106e3576100d390369060040161104d565b9190926044356001600160401b0381116106df576100f590369060040161104d565b90926100ff6121ce565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036106cd5760ff6013541660038110156106b95760010361068957818103610677578481036106775760125460081c60ff161561043457865b818110610175575050505050505080f35b61018961018382888a61133a565b90612171565b6001600160a01b036101a461019f84868961137b565b61138b565b166001600160a01b0390911603610422576101c361019f82848761137b565b9061020f6101d282898b61133a565b6101e084888b95949561137b565b356101fb6040519485936040602086015260608501916121ad565b90604083015203601f198101835282610fd5565b6001600160401b03601c54169060405161022881610f9f565b6003815281602082015260018060a01b038516604082015282600052601d60205260406000208151600481101561040c5760ff8019835416911617815560208201518051906001600160401b0382116103f6576102958261028c600186015461139f565b600186016113f0565b602090601f831160011461038357600293929160009183610378575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03600183011161036257600193826001600160401b03866000805160206138918339815191529501166001600160401b0319601c541617601c5561035360405193849360038552888060a01b0316602085015260808060408601528401906112fa565b9060608301520390a101610164565b634e487b7160e01b600052601160045260246000fd5b0151905038806102b1565b906001840160005260206000209160005b601f19851681106103de575091839160019360029695601f198116106103c5575b505050811b0160018201556102c9565b015160001960f88460031b161c191690553880806103b5565b91926020600181928685015181550194019201610394565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b604051634be9251d60e11b8152600490fd5b94909391865b868110610511575050505050506001600160401b03600c541610156104ff5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061049681611641565b0390a1600e5460025482916001600160a01b0316803b156104fb578290602460405180948193637903ab2760e11b83528160048401525af180156104f0576104dd57505080f35b6104e690610f8c565b6104ed5780f35b80fd5b6040513d84823e3d90fd5b5050fd5b60405163031480b160e51b8152600490fd5b61051f61018382868661133a565b6001600160a01b0361053561019f848b8761137b565b166001600160a01b03909116036104225761055461019f82898561137b565b600060ff6013541660038110156106635760010361064457506001600160a01b03166000908152601560205260409020545b61063257806105af61059e61019f6001948b8761137b565b6105a983888861133a565b91612076565b6105d26105c061019f838b8761137b565b6105cb838a8a61137b565b359061173d565b61062c6105e361019f838b8761137b565b6106226105f1848b8b61137b565b35916105fe858a8a61133a565b90916040519461060d86610f9f565b8552878060a01b031660208501523691611011565b6040820152611437565b0161043a565b604051630472b35360e41b8152600490fd5b6001600160a01b03909116815260156020526040902060010154610586565b634e487b7160e01b82526021600452602482fd5b604051637e65935960e01b8152600490fd5b6106b561069461127d565b60405163015538b160e01b81526020600482015291829160248301906112fa565b0390fd5b634e487b7160e01b88526021600452602488fd5b6040516330cd747160e01b8152600490fd5b8580fd5b8380fd5b5080fd5b50346104ed57806003193601126104ed577f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095600181541461074857806001839255610734612dab565b61073c6121ce565b610744613647565b5580f35b6040516329f745a760e01b8152600490fd5b50346104ed5760203660031901126104ed576004357f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009560018154146107485760018155811561083b5760ff60125460081c16610829573383526003602052816040842054106108175761074483923384526003602052604084206107df82825461110e565b90556107ed8160025461110e565b6002553384526003602052604084205415610809575b3361111b565b61081233611195565b610803565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b506020806003193601126106e7576001600160401b03906004358281116106e357366023820112156106e357806004013590838211610b8c5760248101906024833692010111610b8c576001937f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959385855414610748578585556108cf612dab565b6108d76121ce565b60ff60125460081c169586610b7f575b3415610b6d5733600090815260156020526040902060020154610af95760418503610ae7576001600160a01b039033826109218888612171565b160361042257889761094e57505050509061093c9133612076565b6109463433612de8565b6107446131a9565b90919294939650610960368589611011565b85601c54169260405161097281610f9f565b60028152858101928352604081019233845285600052601d875260406000209151600481101561040c5760ff8019845416911617825584820190518051908a82116103f6576109cb826109c5855461139f565b856113f0565b8890601f8311600114610a7f5760029493929160009183610a74575b5050600019600383901b1c191690871b1790555b019151166001600160601b0360a01b825416179055810184811161036257879660008051602061389183398151915295610a6192166001600160401b0319601c541617601c556040519485946002865233908601526080604086015260808501916121ad565b9060608301520390a16107443433612f78565b0151905038806109e7565b9392918791601f19821690846000528b6000209160005b8d828210610ad1575050968360029810610ab8575b505050811b0190556109fb565b015160001960f88460031b161c19169055388080610aab565b838a015185558c96909401939283019201610a96565b6040516318dca5e960e21b8152600490fd5b5060405190610b0782610f9f565b603282527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722081830152711a185cc8185b1c9958591e481a9bda5b995960721b60408301526106b560405192839263015538b160e01b8452600484015260248301906112fa565b604051635a78c58160e11b8152600490fd5b610b87613194565b6108e7565b8480fd5b50346104ed57806003193601126104ed57610ba96121ce565b61ffff8060195416816016541601818111610c2f5716610c1d576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610c1a5781906004604051809481936341c0e1b560e01b83525af180156104f057610c0e575080f35b610c1790610f8c565b80f35b50fd5b604051636b62255160e11b8152600490fd5b634e487b7160e01b83526011600452602483fd5b50806003193601126104ed57610c57612dab565b610c5f6121ce565b610c67613194565b3415610b6d573360009081526015602052604090206002015415610cae5760125460081c60ff16610ca457610c9c3433612de8565b610c176131a9565b610c173433612f78565b6106b5604051610cbd81610f9f565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b83526020600484015260248301906112fa565b50346104ed5760203660031901126104ed57610d39612dab565b610d416121ce565b610c17600435613275565b50346104ed57602090816003193601126104ed576001600160401b0391600435838111610ec15736602382011215610ec157610d92903690602481600401359101611011565b92610d9b612dab565b3383526017825261ffff60408420541615610ea957835115610e97573383526024825260408320918451918211610e8357610dda826109c5855461139f565b80601f8311600114610e1f5750839482939492610e14575b50508160011b916000199060031b1c19161790555b610e103361383e565b5080f35b015190503880610df2565b90601f198316958486528286209286905b888210610e6b57505083600195969710610e52575b505050811b019055610e07565b015160001960f88460031b161c19169055388080610e45565b80600185968294968601518155019501930190610e30565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b8280fd5b9050816003193601126106e7573415610f7d575060ff60125460081c16610829573381526003602052604081205415610f24575b338152600360205260408120610f10348254611101565b9055610f1e34600254611101565b60025580f35b600454600160401b811015610f6957610f46816001610f64930160045561107d565b81546001600160a01b0360039290921b91821b19163390911b179055565b610ef9565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b6001600160401b0381116103f657604052565b606081019081106001600160401b038211176103f657604052565b604081019081106001600160401b038211176103f657604052565b90601f801991011681019081106001600160401b038211176103f657604052565b6001600160401b0381116103f657601f01601f191660200190565b92919261101d82610ff6565b9161102b6040519384610fd5565b829481845281830111611048578281602093846000960137010152565b600080fd5b9181601f84011215611048578235916001600160401b038311611048576020808501948460051b01011161104857565b6004548110156110b45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156110b45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b9190820180921161036257565b9190820391821161036257565b81471061117d576000918291829182916001600160a01b03165af13d15611178573d61114681610ff6565b906111546040519283610fd5565b8152600060203d92013e5b1561116657565b604051630a12f52160e11b8152600490fd5b61115f565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b8381106111ac575b50505050565b6111b58161107d565b90546003916001600160a01b039190831b1c8116858216146111db57505060010161119e565b929350939060001991828101908111611268579061120c846111ff61122b9461107d565b905490891b1c169161107d565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561125357019261123e8461107d565b81939154921b1b1916905555388080806111a6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176103f6576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b919082519283825260005b848110611326575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611305565b91908110156110b45760051b81013590601e19813603018212156110485701908135916001600160401b038311611048576020018236038113611048579190565b91908110156110b45760051b0190565b356001600160a01b03811681036110485790565b90600182811c921680156113cf575b60208310146113b957565b634e487b7160e01b600052602260045260246000fd5b91607f16916113ae565b8181106113e4575050565b600081556001016113d9565b9190601f81116113ff57505050565b61142b926000526020600020906020601f840160051c8301931061142d575b601f0160051c01906113d9565b565b909150819061141e565b60018054600160401b8110156103f6578181018083558110156110b457600360009183835202918351837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6015560407fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf87fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf785019460209560018060a01b0387890151166001600160601b0360a01b82541617905501940151918251926001600160401b038411610f69576115158461150f885461139f565b886113f0565b8491601f851160011461154d579394508492919083611542575b50501b916000199060031b1c1916179055565b01519250388061152f565b86815285812093958591601f198316915b888383106115925750505010611579575b505050811b019055565b015160001960f88460031b161c1916905538808061156f565b85870151885590960195948501948793509081019061155e565b90600092918054916115bd8361139f565b91828252600193848116908160001461161e57506001146115de5750505050565b90919394506000526020928360002092846000945b83861061160a5750505050010190388080806111a6565b8054858701830152940193859082016115f3565b9294505050602093945060ff191683830152151560051b010190388080806111a6565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061169d57505050505050505090565b9091929394958560036116dc839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016115ac565b9a01940194019296959493919061168b565b60ff60135416600381101561040c5760010361171f576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b9060018060a01b03821660005260156020526040600020818154915581811460001461176857505050565b8111156117785761142b91611a91565b61142b91611f69565b919060018060a01b03928381166000948186526020916017835261ffff916040978389822054166119a0578360135460081c1684601654161061196c576117c6612b87565b60019283825260188652828a83205416886117e0826116ee565b106118e657508152601a855283898220541661184f57505050505061184a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461182a83612202565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b61185886612bda565b92611862876116ee565b935b81868216116118a8575b505097516001600160a01b0390951685525050505060208101919091529091506000805160206138d183398151915290806040810161184a565b80856118c786617fff8f95871c1694858852601b8c52872054166116ee565b10156118e057906118d9839282612d1c565b9050611864565b5061186e565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061184a95601a91611921612761565b83525220541661195e575b611935846126f2565b61193e83612202565b516001600160a01b03928316815292909116602083015281906040820190565b611967846123ec565b61192c565b505050505061184a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461182a836126f2565b979291506119b18594979695612ba3565b976119bb856116ee565b976119c58a6125e7565b8460165416905b858116828111611a6c5782811015611a505750806119ec6119f2926121ef565b90612b37565b9b909b5b8b1115611a1557611a07908c612c83565b611a108b6125e7565b6119cc565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206138b18339815191529150806040810161184a565b849c919c5260188352611a678588862054166116ee565b6119f6565b5050505050505061184a91929395506000805160206138b1833981519152945061182a565b6001600160a01b03808216600081815260176020526040808220549095949361ffff93918416611be5578360135460081c16846016541610611bb357611ad5612b87565b600183526018602052868320541685611aed826116ee565b10611b5f57508152601a6020528490205416611b315761184a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361182a83612202565b61184a6000805160206138d18339815191529361182a611b5084612bda565b611b59856116ee565b90612592565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261184a94611b93612761565b8152601a602052205416611baa57611935846126f2565b6119678461247b565b5050505061184a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361182a836126f2565b5050505061184a6000805160206138b18339815191529361182a611c0884612ba3565b611c11856116ee565b90612aa4565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416611e3f578082526017835287868320541615611e2e578415611d865750611c6483612ba3565b97611c6e846116ee565b985b6001808a83161115611d775781617fff911c1690818452601885528a611c9a848a872054166116ee565b1115611caf57611caa9082612c83565b611c70565b505091939597509193955b6019541615611d6f57611ccb612b87565b60018252601883528581818420541692601b611ce6856116ee565b95611cef612b95565b600183525220541691611d01836116ee565b11611d3657505091516001600160a01b03909216825260208201526000805160206138b183398151915290806040810161184a565b9150915061184a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611d67612761565b61192c612285565b505050505050565b50509193959750919395611cba565b829450611dba7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996128aa565b8651908152a160195416611dce5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492611dfc612b95565b6001835252205416611e22611e10826116ee565b92611e19612285565b61182a836126f2565b0390a1388080806111a6565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611f2e575061fffe9193611e5c86612bda565b93611e66876116ee565b9480966001958692831b168160195416925b611eba575b505099516001600160a01b039097168752505050506020830193909352509192506000805160206138d1833981519152919050806040810161184a565b818116838111611f28578d9084811015611f0c57505080611edd611ee3926121ef565b9061269a565b9890985b881015611f0757611ef89089612d1c565b611f01886125e7565b86611e78565b611e7d565b8652601b8552852054909890611f239087166116ee565b611ee7565b50611e7d565b94915050611f629194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506123ec565b51908152a1565b6001600160a01b038082166000818152601a602090815260408083205490969594919361ffff91821661200c578084526017855281888520541615611ffb578615611fca5750611cba611fbb86612ba3565b611fc4876116ee565b90612a55565b849193979650611dba7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396612935565b8751632a55ca5360e01b8152600490fd5b969392505050831561204957506000805160206138d1833981519152935061184a9061182a61203a84612bda565b612043856116ee565b906125fe565b9250611f627f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949261247b565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116103f6576120b7816120b1845461139f565b846113f0565b6000601f82116001146120f157819293946000926120e6575b50508160011b916000199060031b1c1916179055565b0135905038806120d0565b601f198216948382526020918281209281905b88821061213c5750508360019596971061212257505050811b019055565b0135600019600384901b60f8161c1916905538808061156f565b80600184968294958701358155019501920190612104565b1561215b57565b634e487b7160e01b600052600160045260246000fd5b9061217e60418214612154565b80600111611048576121999136916000190190600101611011565b80516020909101206001600160a01b031690565b908060209392818452848401376000828201840152601f01601f1916010190565b60ff60125460101c166121dd57565b60405163248c8efb60e11b8152600490fd5b90600161ffff8093160191821161036257565b61142b90611b5961ffff9161221a83601954166121ef565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556116ee565b61ffff908116600019019190821161036257565b61ffff80601954169081156123da57906001906122a481831115612154565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161233e91908a61232f83612271565b16906019541617601955612bff565b8482528086526123528484842054166116ee565b95859860028160195416995b612370575b5050505050505050505050565b8181168a81116123d4578a8110156123b9575080611edd612390926121ef565b9a909a5b8910156123b4576123a5908b612d1c565b6123ae8a6125e7565b8761235e565b612363565b859b919b528383526123cf8787872054166116ee565b612394565b50612363565b6040516340d9b01160e01b8152600490fd5b6123f590612bda565b61ffff908160195416916124098383612d1c565b8061241384612271565b1661ffff19601954161760195561242983612bff565b8116809214612477576120438261142b93600052601b60205260018060a01b039061246361245d83604060002054166116ee565b85612592565b600052601b602052604060002054166116ee565b5050565b61248490612bda565b61ffff908160195416916124988383612d1c565b806124a284612271565b1661ffff1960195416176019556124b883612bff565b80821680931461258d579161fffe91600091808352601b9060209382855260018060a01b03926040926124f86124f28686862054166116ee565b87612592565b825280865261250b8484842054166116ee565b9585986001988997881b168160195416995b61252e575050505050505050505050565b8181168a81116123d4578a811015612572575080611edd61254e926121ef565b9a909a5b8910156123b457612563908b612d1c565b61256c8a6125e7565b8761251d565b859b919b528383526125888787872054166116ee565b612552565b505050565b9190915b60018061ffff831611156125e15781617fff911c1690836125cc6000848152601b602052604060018060a01b03912054166116ee565b10156125e1576125dc9082612d1c565b612596565b50509050565b60011b906201fffe61fffe83169216820361036257565b90600161fffe83821b168160009161ffff908160195416925b612625575b50505050505050565b818116838111612694578381101561266e575080611edd612645926121ef565b9690965b8610156126695761265a9087612d1c565b612663866125e7565b84612617565b61261c565b8452601b602052604084205490969061268f906001600160a01b03166116ee565b612649565b5061261c565b91909161ffff92838216600052601b6020526126dd60018060a01b036126c681604060002054166116ee565b958316600052601b602052604060002054166116ee565b908185106126eb5750509190565b9350919050565b61142b90611fc461ffff9161270a83601654166121ef565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556116ee565b61ffff80601654169081156123da579060019061278081831115612154565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161281a91908a61280b83612271565b16906016541617601655612c41565b84825280865261282e8484842054166116ee565b95859860028160165416995b61284b575050505050505050505050565b8181168a81116123d4578a81101561288f5750806119ec61286b926121ef565b9a909a5b8911156123b457612880908b612c83565b6128898a6125e7565b8761283a565b859b919b528383526128a58787872054166116ee565b61286f565b6128b390612ba3565b61ffff908160165416916128c78383612c83565b806128d184612271565b1661ffff1960165416176016556128e783612c41565b811680921461247757611c118261142b93600052601860205260018060a01b039061292161291b83604060002054166116ee565b85612a55565b6000526018602052604060002054166116ee565b61293e90612ba3565b9061ffff908160165416906129538285612c83565b8261295d83612271565b1661ffff19601654161760165561297382612c41565b828416809214612a4f5760009291929183835260189260209484865260018060a01b03916040916129b16129ab8585852054166116ee565b8a612a55565b81528587526129c48383832054166116ee565b956129ce896125e7565b978560165416985b8681168a8111612a41578a811015612a265750806119ec6129f6926121ef565b9a909a5b891115612a1957612a0b908b612c83565b612a148a6125e7565b6129d6565b5050505050505092505050565b849b919b52828252612a3c8686862054166116ee565b6129fa565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156125e15781617fff911c169083612a8f60008481526018602052604060018060a01b03912054166116ee565b11156125e157612a9f9082612c83565b612a59565b91612aae836125e7565b600061ffff918260165416905b838116828111612b2d5782811015612b075750806119ec612adb926121ef565b9690965b861115612afe57612af09087612c83565b612af9866125e7565b612abb565b50505050915050565b835260186020526040832054909690612b28906001600160a01b03166116ee565b612adf565b5050505050915050565b919061ffff8084166000526018602052612b7860018060a01b03612b6181604060002054166116ee565b9284166000526018602052604060002054166116ee565b93848211156126eb5750509190565b61ffff60165416156123da57565b61ffff60195416156123da57565b6001600160a01b031660009081526017602052604090205461ffff16908115612bc857565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff16908115612bc857565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b612ca861ffff808060165416931693612c9e84861115612154565b1691821115612154565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b612d3761ffff808060195416931693612c9e84861115612154565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b60ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f8635416612dd657565b60405163d93c066560e01b8152600490fd5b612df28282612f51565b612e55600192612e4c612e238286612e1c8760018060a01b03166000526015602052604060002090565b0154611101565b918286612e428760018060a01b03166000526015602052604060002090565b0155601454611101565b60145582611781565b60ff60125460081c1615612e67575050565b60008083549084815b838110612eff575b5050505015612e85575050565b612ef861062261142b93612eab8460018060a01b03166000526015602052604060002090565b0154926003612ecc8260018060a01b03166000526015602052604060002090565b019060405194612edb86610f9f565b85526001600160a01b0316602085015260405192839182906115ac565b0382610fd5565b818352600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614612f4357018590612e70565b509250505038808481612e78565b60018060a01b03166000526015602052612f746002604060002001918254611101565b9055565b91906040519281602085015260208452612f9184610fba565b6001600160401b03601c54169360405194612fab86610f9f565b600095868152602081019083825260018060a01b0385166040820152828852601d6020526040882091815160048110156131805760ff80198554169116178355519182516001600160401b03811161316c57600193613018826130108786015461139f565b8786016113f0565b602090601f83116001146131015760029392918c91836130f6575b5050600019600383901b1c191690851b17818501555b0190604060018060a01b03910151166001600160601b0360a01b82541617905581016001600160401b0381116130e2579560008051602061389183398151915292916001600160401b0361142b9798166001600160401b0319601c541617601c556130d4604051938493845260018060a01b03871660208501526080604085015260808401906112fa565b9060608301520390a1612f51565b634e487b7160e01b87526011600452602487fd5b015190503880613033565b929185918284018d5260208d20908d5b601f1984168110613154575060029583601f1981161061313b575b505050811b0184820155613049565b015160001960f88460031b161c1916905538808061312c565b81870151835588949092019160209182019101613111565b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b8a52602160045260248afd5b60ff60135416600381101561040c5761068957565b601454600a548110156131ba575b50565b61ffff601654166001600160401b03600c541611156131d65750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061321381611641565b0390a160018060a01b03600e54169061322f6002548092611101565b91803b156110485760246000926040519485938492637903ab2760e11b845260048401525af1801561326957156131b75761142b90610f8c565b6040513d6000823e3d90fd5b61327d613194565b80156132d657336000908152601560205260409020600201548015610ea9578110156132c55760ff60125460081c16156132bb5761142b903361346e565b61142b90336132e8565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b9061142b916132f7828261341b565b61339561332383600161331c8560018060a01b03166000526015602052604060002090565b015461110e565b6001600160a01b03831660009081526015602052604090206002015481159081613412575b50156133ef576001600160a01b0383166000908152601560205260409020600360009182815582600182015582600282015501613385815461139f565b806133b2575b5050505b82611c17565b6133a18260145461110e565b6014556001600160a01b031661111b565b82601f82116001146133ca575050555b38808061338b565b90918082526133e8601f60208420940160051c8401600185016113d9565b55556133c2565b6001600160a01b038316600090815260156020526040902081906001015561338f565b90501538613348565b6001600160a01b0316600081815260156020526040902060020154909180821061345c576134489161110e565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b90604051918160208401526020835261348683610fba565b6001600160401b03601c541692604051906134a082610f9f565b600182526020820191818352604081019060018060a01b0385169384835287600052601d60205260406000209151600481101561040c5760ff80198454169116178255518051906001600160401b0382116103f6576135068261028c600186015461139f565b602090601f83116001146135d4576002939291600091836135c9575b50508160011b916000199060031b1c19161760018201555b019060018060a01b039051166001600160601b0360a01b82541617905560018501916001600160401b0383116103625761142b956001600160401b0360008051602061389183398151915294166001600160401b0319601c541617601c556135bb6040519384936001855260208501526080604085015260808401906112fa565b9060608301520390a161341b565b015190503880613522565b906001840160005260206000209160005b601f198516811061362f575091839160019360029695601f19811610613616575b505050811b01600182015561353a565b015160001960f88460031b161c19169055388080613606565b919260206001819286850151815501940192016135e5565b60ff60125460081c16613730575b336000908152601560205260409020600201548015610ea9576136773361373d565b5060009033825260246020528160408120613692815461139f565b806136f3575b50505060ff60125460081c16156136b45761142b91503361346e565b604061142b9233815260036020522054806136d1575b50336132e8565b806136e16136ed9260025461110e565b60025561080333611195565b386136ca565b82601f821160011461370b575050555b813880613698565b9091808252613729601f60208420940160051c8401600185016113d9565b5555613703565b613738613194565b613655565b600081815260266020526040812054909190801561383957600019908082018181116138255760255490838201918211613811578082036137c6575b50505060255480156137b257810190613791826110ca565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6137fb6137d56137e4936110ca565b90549060031b1c9283926110ca565b819391549060031b91821b91600019901b19161790565b9055845260266020526040842055388080613779565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b60008181526026602052604081205461388b57602554600160401b811015610f695790826138776137e4846001604096016025556110ca565b905560255492815260266020522055600190565b90509056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda264697066735822122083f27a7a77250915921f99077b478e87411ad3c8f0a1e4a71f87e5481ace8fde64736f6c63430008130033","sourceMap":"1170:9579:86:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014610ec55750806310fd426114610d4c5780632e17de7814610d1f5780633a4b66f114610c4357806341c0e1b514610b905780636170b1621461084d57806366783c9b1461075a578063d66d9e19146106eb5763da5d09ee1461008457600080fd5b346104ed5760603660031901126104ed576004356001600160401b0381116106e7576100b490369060040161104d565b6024356001600160401b0381116106e3576100d390369060040161104d565b9190926044356001600160401b0381116106df576100f590369060040161104d565b90926100ff6121ce565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036106cd5760ff6013541660038110156106b95760010361068957818103610677578481036106775760125460081c60ff161561043457865b818110610175575050505050505080f35b61018961018382888a61133a565b90612171565b6001600160a01b036101a461019f84868961137b565b61138b565b166001600160a01b0390911603610422576101c361019f82848761137b565b9061020f6101d282898b61133a565b6101e084888b95949561137b565b356101fb6040519485936040602086015260608501916121ad565b90604083015203601f198101835282610fd5565b6001600160401b03601c54169060405161022881610f9f565b6003815281602082015260018060a01b038516604082015282600052601d60205260406000208151600481101561040c5760ff8019835416911617815560208201518051906001600160401b0382116103f6576102958261028c600186015461139f565b600186016113f0565b602090601f831160011461038357600293929160009183610378575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03600183011161036257600193826001600160401b03866000805160206138918339815191529501166001600160401b0319601c541617601c5561035360405193849360038552888060a01b0316602085015260808060408601528401906112fa565b9060608301520390a101610164565b634e487b7160e01b600052601160045260246000fd5b0151905038806102b1565b906001840160005260206000209160005b601f19851681106103de575091839160019360029695601f198116106103c5575b505050811b0160018201556102c9565b015160001960f88460031b161c191690553880806103b5565b91926020600181928685015181550194019201610394565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b604051634be9251d60e11b8152600490fd5b94909391865b868110610511575050505050506001600160401b03600c541610156104ff5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061049681611641565b0390a1600e5460025482916001600160a01b0316803b156104fb578290602460405180948193637903ab2760e11b83528160048401525af180156104f0576104dd57505080f35b6104e690610f8c565b6104ed5780f35b80fd5b6040513d84823e3d90fd5b5050fd5b60405163031480b160e51b8152600490fd5b61051f61018382868661133a565b6001600160a01b0361053561019f848b8761137b565b166001600160a01b03909116036104225761055461019f82898561137b565b600060ff6013541660038110156106635760010361064457506001600160a01b03166000908152601560205260409020545b61063257806105af61059e61019f6001948b8761137b565b6105a983888861133a565b91612076565b6105d26105c061019f838b8761137b565b6105cb838a8a61137b565b359061173d565b61062c6105e361019f838b8761137b565b6106226105f1848b8b61137b565b35916105fe858a8a61133a565b90916040519461060d86610f9f565b8552878060a01b031660208501523691611011565b6040820152611437565b0161043a565b604051630472b35360e41b8152600490fd5b6001600160a01b03909116815260156020526040902060010154610586565b634e487b7160e01b82526021600452602482fd5b604051637e65935960e01b8152600490fd5b6106b561069461127d565b60405163015538b160e01b81526020600482015291829160248301906112fa565b0390fd5b634e487b7160e01b88526021600452602488fd5b6040516330cd747160e01b8152600490fd5b8580fd5b8380fd5b5080fd5b50346104ed57806003193601126104ed577f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095600181541461074857806001839255610734612dab565b61073c6121ce565b610744613647565b5580f35b6040516329f745a760e01b8152600490fd5b50346104ed5760203660031901126104ed576004357f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009560018154146107485760018155811561083b5760ff60125460081c16610829573383526003602052816040842054106108175761074483923384526003602052604084206107df82825461110e565b90556107ed8160025461110e565b6002553384526003602052604084205415610809575b3361111b565b61081233611195565b610803565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b506020806003193601126106e7576001600160401b03906004358281116106e357366023820112156106e357806004013590838211610b8c5760248101906024833692010111610b8c576001937f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959385855414610748578585556108cf612dab565b6108d76121ce565b60ff60125460081c169586610b7f575b3415610b6d5733600090815260156020526040902060020154610af95760418503610ae7576001600160a01b039033826109218888612171565b160361042257889761094e57505050509061093c9133612076565b6109463433612de8565b6107446131a9565b90919294939650610960368589611011565b85601c54169260405161097281610f9f565b60028152858101928352604081019233845285600052601d875260406000209151600481101561040c5760ff8019845416911617825584820190518051908a82116103f6576109cb826109c5855461139f565b856113f0565b8890601f8311600114610a7f5760029493929160009183610a74575b5050600019600383901b1c191690871b1790555b019151166001600160601b0360a01b825416179055810184811161036257879660008051602061389183398151915295610a6192166001600160401b0319601c541617601c556040519485946002865233908601526080604086015260808501916121ad565b9060608301520390a16107443433612f78565b0151905038806109e7565b9392918791601f19821690846000528b6000209160005b8d828210610ad1575050968360029810610ab8575b505050811b0190556109fb565b015160001960f88460031b161c19169055388080610aab565b838a015185558c96909401939283019201610a96565b6040516318dca5e960e21b8152600490fd5b5060405190610b0782610f9f565b603282527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722081830152711a185cc8185b1c9958591e481a9bda5b995960721b60408301526106b560405192839263015538b160e01b8452600484015260248301906112fa565b604051635a78c58160e11b8152600490fd5b610b87613194565b6108e7565b8480fd5b50346104ed57806003193601126104ed57610ba96121ce565b61ffff8060195416816016541601818111610c2f5716610c1d576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610c1a5781906004604051809481936341c0e1b560e01b83525af180156104f057610c0e575080f35b610c1790610f8c565b80f35b50fd5b604051636b62255160e11b8152600490fd5b634e487b7160e01b83526011600452602483fd5b50806003193601126104ed57610c57612dab565b610c5f6121ce565b610c67613194565b3415610b6d573360009081526015602052604090206002015415610cae5760125460081c60ff16610ca457610c9c3433612de8565b610c176131a9565b610c173433612f78565b6106b5604051610cbd81610f9f565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b83526020600484015260248301906112fa565b50346104ed5760203660031901126104ed57610d39612dab565b610d416121ce565b610c17600435613275565b50346104ed57602090816003193601126104ed576001600160401b0391600435838111610ec15736602382011215610ec157610d92903690602481600401359101611011565b92610d9b612dab565b3383526017825261ffff60408420541615610ea957835115610e97573383526024825260408320918451918211610e8357610dda826109c5855461139f565b80601f8311600114610e1f5750839482939492610e14575b50508160011b916000199060031b1c19161790555b610e103361383e565b5080f35b015190503880610df2565b90601f198316958486528286209286905b888210610e6b57505083600195969710610e52575b505050811b019055610e07565b015160001960f88460031b161c19169055388080610e45565b80600185968294968601518155019501930190610e30565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b8280fd5b9050816003193601126106e7573415610f7d575060ff60125460081c16610829573381526003602052604081205415610f24575b338152600360205260408120610f10348254611101565b9055610f1e34600254611101565b60025580f35b600454600160401b811015610f6957610f46816001610f64930160045561107d565b81546001600160a01b0360039290921b91821b19163390911b179055565b610ef9565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b6001600160401b0381116103f657604052565b606081019081106001600160401b038211176103f657604052565b604081019081106001600160401b038211176103f657604052565b90601f801991011681019081106001600160401b038211176103f657604052565b6001600160401b0381116103f657601f01601f191660200190565b92919261101d82610ff6565b9161102b6040519384610fd5565b829481845281830111611048578281602093846000960137010152565b600080fd5b9181601f84011215611048578235916001600160401b038311611048576020808501948460051b01011161104857565b6004548110156110b45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156110b45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b9190820180921161036257565b9190820391821161036257565b81471061117d576000918291829182916001600160a01b03165af13d15611178573d61114681610ff6565b906111546040519283610fd5565b8152600060203d92013e5b1561116657565b604051630a12f52160e11b8152600490fd5b61115f565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b8381106111ac575b50505050565b6111b58161107d565b90546003916001600160a01b039190831b1c8116858216146111db57505060010161119e565b929350939060001991828101908111611268579061120c846111ff61122b9461107d565b905490891b1c169161107d565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561125357019261123e8461107d565b81939154921b1b1916905555388080806111a6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176103f6576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b919082519283825260005b848110611326575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611305565b91908110156110b45760051b81013590601e19813603018212156110485701908135916001600160401b038311611048576020018236038113611048579190565b91908110156110b45760051b0190565b356001600160a01b03811681036110485790565b90600182811c921680156113cf575b60208310146113b957565b634e487b7160e01b600052602260045260246000fd5b91607f16916113ae565b8181106113e4575050565b600081556001016113d9565b9190601f81116113ff57505050565b61142b926000526020600020906020601f840160051c8301931061142d575b601f0160051c01906113d9565b565b909150819061141e565b60018054600160401b8110156103f6578181018083558110156110b457600360009183835202918351837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6015560407fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf87fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf785019460209560018060a01b0387890151166001600160601b0360a01b82541617905501940151918251926001600160401b038411610f69576115158461150f885461139f565b886113f0565b8491601f851160011461154d579394508492919083611542575b50501b916000199060031b1c1916179055565b01519250388061152f565b86815285812093958591601f198316915b888383106115925750505010611579575b505050811b019055565b015160001960f88460031b161c1916905538808061156f565b85870151885590960195948501948793509081019061155e565b90600092918054916115bd8361139f565b91828252600193848116908160001461161e57506001146115de5750505050565b90919394506000526020928360002092846000945b83861061160a5750505050010190388080806111a6565b8054858701830152940193859082016115f3565b9294505050602093945060ff191683830152151560051b010190388080806111a6565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061169d57505050505050505090565b9091929394958560036116dc839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016115ac565b9a01940194019296959493919061168b565b60ff60135416600381101561040c5760010361171f576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b9060018060a01b03821660005260156020526040600020818154915581811460001461176857505050565b8111156117785761142b91611a91565b61142b91611f69565b919060018060a01b03928381166000948186526020916017835261ffff916040978389822054166119a0578360135460081c1684601654161061196c576117c6612b87565b60019283825260188652828a83205416886117e0826116ee565b106118e657508152601a855283898220541661184f57505050505061184a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461182a83612202565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b61185886612bda565b92611862876116ee565b935b81868216116118a8575b505097516001600160a01b0390951685525050505060208101919091529091506000805160206138d183398151915290806040810161184a565b80856118c786617fff8f95871c1694858852601b8c52872054166116ee565b10156118e057906118d9839282612d1c565b9050611864565b5061186e565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061184a95601a91611921612761565b83525220541661195e575b611935846126f2565b61193e83612202565b516001600160a01b03928316815292909116602083015281906040820190565b611967846123ec565b61192c565b505050505061184a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461182a836126f2565b979291506119b18594979695612ba3565b976119bb856116ee565b976119c58a6125e7565b8460165416905b858116828111611a6c5782811015611a505750806119ec6119f2926121ef565b90612b37565b9b909b5b8b1115611a1557611a07908c612c83565b611a108b6125e7565b6119cc565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206138b18339815191529150806040810161184a565b849c919c5260188352611a678588862054166116ee565b6119f6565b5050505050505061184a91929395506000805160206138b1833981519152945061182a565b6001600160a01b03808216600081815260176020526040808220549095949361ffff93918416611be5578360135460081c16846016541610611bb357611ad5612b87565b600183526018602052868320541685611aed826116ee565b10611b5f57508152601a6020528490205416611b315761184a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361182a83612202565b61184a6000805160206138d18339815191529361182a611b5084612bda565b611b59856116ee565b90612592565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261184a94611b93612761565b8152601a602052205416611baa57611935846126f2565b6119678461247b565b5050505061184a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361182a836126f2565b5050505061184a6000805160206138b18339815191529361182a611c0884612ba3565b611c11856116ee565b90612aa4565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416611e3f578082526017835287868320541615611e2e578415611d865750611c6483612ba3565b97611c6e846116ee565b985b6001808a83161115611d775781617fff911c1690818452601885528a611c9a848a872054166116ee565b1115611caf57611caa9082612c83565b611c70565b505091939597509193955b6019541615611d6f57611ccb612b87565b60018252601883528581818420541692601b611ce6856116ee565b95611cef612b95565b600183525220541691611d01836116ee565b11611d3657505091516001600160a01b03909216825260208201526000805160206138b183398151915290806040810161184a565b9150915061184a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611d67612761565b61192c612285565b505050505050565b50509193959750919395611cba565b829450611dba7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996128aa565b8651908152a160195416611dce5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492611dfc612b95565b6001835252205416611e22611e10826116ee565b92611e19612285565b61182a836126f2565b0390a1388080806111a6565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611f2e575061fffe9193611e5c86612bda565b93611e66876116ee565b9480966001958692831b168160195416925b611eba575b505099516001600160a01b039097168752505050506020830193909352509192506000805160206138d1833981519152919050806040810161184a565b818116838111611f28578d9084811015611f0c57505080611edd611ee3926121ef565b9061269a565b9890985b881015611f0757611ef89089612d1c565b611f01886125e7565b86611e78565b611e7d565b8652601b8552852054909890611f239087166116ee565b611ee7565b50611e7d565b94915050611f629194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506123ec565b51908152a1565b6001600160a01b038082166000818152601a602090815260408083205490969594919361ffff91821661200c578084526017855281888520541615611ffb578615611fca5750611cba611fbb86612ba3565b611fc4876116ee565b90612a55565b849193979650611dba7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396612935565b8751632a55ca5360e01b8152600490fd5b969392505050831561204957506000805160206138d1833981519152935061184a9061182a61203a84612bda565b612043856116ee565b906125fe565b9250611f627f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949261247b565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116103f6576120b7816120b1845461139f565b846113f0565b6000601f82116001146120f157819293946000926120e6575b50508160011b916000199060031b1c1916179055565b0135905038806120d0565b601f198216948382526020918281209281905b88821061213c5750508360019596971061212257505050811b019055565b0135600019600384901b60f8161c1916905538808061156f565b80600184968294958701358155019501920190612104565b1561215b57565b634e487b7160e01b600052600160045260246000fd5b9061217e60418214612154565b80600111611048576121999136916000190190600101611011565b80516020909101206001600160a01b031690565b908060209392818452848401376000828201840152601f01601f1916010190565b60ff60125460101c166121dd57565b60405163248c8efb60e11b8152600490fd5b90600161ffff8093160191821161036257565b61142b90611b5961ffff9161221a83601954166121ef565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556116ee565b61ffff908116600019019190821161036257565b61ffff80601954169081156123da57906001906122a481831115612154565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161233e91908a61232f83612271565b16906019541617601955612bff565b8482528086526123528484842054166116ee565b95859860028160195416995b612370575b5050505050505050505050565b8181168a81116123d4578a8110156123b9575080611edd612390926121ef565b9a909a5b8910156123b4576123a5908b612d1c565b6123ae8a6125e7565b8761235e565b612363565b859b919b528383526123cf8787872054166116ee565b612394565b50612363565b6040516340d9b01160e01b8152600490fd5b6123f590612bda565b61ffff908160195416916124098383612d1c565b8061241384612271565b1661ffff19601954161760195561242983612bff565b8116809214612477576120438261142b93600052601b60205260018060a01b039061246361245d83604060002054166116ee565b85612592565b600052601b602052604060002054166116ee565b5050565b61248490612bda565b61ffff908160195416916124988383612d1c565b806124a284612271565b1661ffff1960195416176019556124b883612bff565b80821680931461258d579161fffe91600091808352601b9060209382855260018060a01b03926040926124f86124f28686862054166116ee565b87612592565b825280865261250b8484842054166116ee565b9585986001988997881b168160195416995b61252e575050505050505050505050565b8181168a81116123d4578a811015612572575080611edd61254e926121ef565b9a909a5b8910156123b457612563908b612d1c565b61256c8a6125e7565b8761251d565b859b919b528383526125888787872054166116ee565b612552565b505050565b9190915b60018061ffff831611156125e15781617fff911c1690836125cc6000848152601b602052604060018060a01b03912054166116ee565b10156125e1576125dc9082612d1c565b612596565b50509050565b60011b906201fffe61fffe83169216820361036257565b90600161fffe83821b168160009161ffff908160195416925b612625575b50505050505050565b818116838111612694578381101561266e575080611edd612645926121ef565b9690965b8610156126695761265a9087612d1c565b612663866125e7565b84612617565b61261c565b8452601b602052604084205490969061268f906001600160a01b03166116ee565b612649565b5061261c565b91909161ffff92838216600052601b6020526126dd60018060a01b036126c681604060002054166116ee565b958316600052601b602052604060002054166116ee565b908185106126eb5750509190565b9350919050565b61142b90611fc461ffff9161270a83601654166121ef565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556116ee565b61ffff80601654169081156123da579060019061278081831115612154565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161281a91908a61280b83612271565b16906016541617601655612c41565b84825280865261282e8484842054166116ee565b95859860028160165416995b61284b575050505050505050505050565b8181168a81116123d4578a81101561288f5750806119ec61286b926121ef565b9a909a5b8911156123b457612880908b612c83565b6128898a6125e7565b8761283a565b859b919b528383526128a58787872054166116ee565b61286f565b6128b390612ba3565b61ffff908160165416916128c78383612c83565b806128d184612271565b1661ffff1960165416176016556128e783612c41565b811680921461247757611c118261142b93600052601860205260018060a01b039061292161291b83604060002054166116ee565b85612a55565b6000526018602052604060002054166116ee565b61293e90612ba3565b9061ffff908160165416906129538285612c83565b8261295d83612271565b1661ffff19601654161760165561297382612c41565b828416809214612a4f5760009291929183835260189260209484865260018060a01b03916040916129b16129ab8585852054166116ee565b8a612a55565b81528587526129c48383832054166116ee565b956129ce896125e7565b978560165416985b8681168a8111612a41578a811015612a265750806119ec6129f6926121ef565b9a909a5b891115612a1957612a0b908b612c83565b612a148a6125e7565b6129d6565b5050505050505092505050565b849b919b52828252612a3c8686862054166116ee565b6129fa565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156125e15781617fff911c169083612a8f60008481526018602052604060018060a01b03912054166116ee565b11156125e157612a9f9082612c83565b612a59565b91612aae836125e7565b600061ffff918260165416905b838116828111612b2d5782811015612b075750806119ec612adb926121ef565b9690965b861115612afe57612af09087612c83565b612af9866125e7565b612abb565b50505050915050565b835260186020526040832054909690612b28906001600160a01b03166116ee565b612adf565b5050505050915050565b919061ffff8084166000526018602052612b7860018060a01b03612b6181604060002054166116ee565b9284166000526018602052604060002054166116ee565b93848211156126eb5750509190565b61ffff60165416156123da57565b61ffff60195416156123da57565b6001600160a01b031660009081526017602052604090205461ffff16908115612bc857565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff16908115612bc857565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b612ca861ffff808060165416931693612c9e84861115612154565b1691821115612154565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b612d3761ffff808060195416931693612c9e84861115612154565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b60ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f8635416612dd657565b60405163d93c066560e01b8152600490fd5b612df28282612f51565b612e55600192612e4c612e238286612e1c8760018060a01b03166000526015602052604060002090565b0154611101565b918286612e428760018060a01b03166000526015602052604060002090565b0155601454611101565b60145582611781565b60ff60125460081c1615612e67575050565b60008083549084815b838110612eff575b5050505015612e85575050565b612ef861062261142b93612eab8460018060a01b03166000526015602052604060002090565b0154926003612ecc8260018060a01b03166000526015602052604060002090565b019060405194612edb86610f9f565b85526001600160a01b0316602085015260405192839182906115ac565b0382610fd5565b818352600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614612f4357018590612e70565b509250505038808481612e78565b60018060a01b03166000526015602052612f746002604060002001918254611101565b9055565b91906040519281602085015260208452612f9184610fba565b6001600160401b03601c54169360405194612fab86610f9f565b600095868152602081019083825260018060a01b0385166040820152828852601d6020526040882091815160048110156131805760ff80198554169116178355519182516001600160401b03811161316c57600193613018826130108786015461139f565b8786016113f0565b602090601f83116001146131015760029392918c91836130f6575b5050600019600383901b1c191690851b17818501555b0190604060018060a01b03910151166001600160601b0360a01b82541617905581016001600160401b0381116130e2579560008051602061389183398151915292916001600160401b0361142b9798166001600160401b0319601c541617601c556130d4604051938493845260018060a01b03871660208501526080604085015260808401906112fa565b9060608301520390a1612f51565b634e487b7160e01b87526011600452602487fd5b015190503880613033565b929185918284018d5260208d20908d5b601f1984168110613154575060029583601f1981161061313b575b505050811b0184820155613049565b015160001960f88460031b161c1916905538808061312c565b81870151835588949092019160209182019101613111565b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b8a52602160045260248afd5b60ff60135416600381101561040c5761068957565b601454600a548110156131ba575b50565b61ffff601654166001600160401b03600c541611156131d65750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061321381611641565b0390a160018060a01b03600e54169061322f6002548092611101565b91803b156110485760246000926040519485938492637903ab2760e11b845260048401525af1801561326957156131b75761142b90610f8c565b6040513d6000823e3d90fd5b61327d613194565b80156132d657336000908152601560205260409020600201548015610ea9578110156132c55760ff60125460081c16156132bb5761142b903361346e565b61142b90336132e8565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b9061142b916132f7828261341b565b61339561332383600161331c8560018060a01b03166000526015602052604060002090565b015461110e565b6001600160a01b03831660009081526015602052604090206002015481159081613412575b50156133ef576001600160a01b0383166000908152601560205260409020600360009182815582600182015582600282015501613385815461139f565b806133b2575b5050505b82611c17565b6133a18260145461110e565b6014556001600160a01b031661111b565b82601f82116001146133ca575050555b38808061338b565b90918082526133e8601f60208420940160051c8401600185016113d9565b55556133c2565b6001600160a01b038316600090815260156020526040902081906001015561338f565b90501538613348565b6001600160a01b0316600081815260156020526040902060020154909180821061345c576134489161110e565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b90604051918160208401526020835261348683610fba565b6001600160401b03601c541692604051906134a082610f9f565b600182526020820191818352604081019060018060a01b0385169384835287600052601d60205260406000209151600481101561040c5760ff80198454169116178255518051906001600160401b0382116103f6576135068261028c600186015461139f565b602090601f83116001146135d4576002939291600091836135c9575b50508160011b916000199060031b1c19161760018201555b019060018060a01b039051166001600160601b0360a01b82541617905560018501916001600160401b0383116103625761142b956001600160401b0360008051602061389183398151915294166001600160401b0319601c541617601c556135bb6040519384936001855260208501526080604085015260808401906112fa565b9060608301520390a161341b565b015190503880613522565b906001840160005260206000209160005b601f198516811061362f575091839160019360029695601f19811610613616575b505050811b01600182015561353a565b015160001960f88460031b161c19169055388080613606565b919260206001819286850151815501940192016135e5565b60ff60125460081c16613730575b336000908152601560205260409020600201548015610ea9576136773361373d565b5060009033825260246020528160408120613692815461139f565b806136f3575b50505060ff60125460081c16156136b45761142b91503361346e565b604061142b9233815260036020522054806136d1575b50336132e8565b806136e16136ed9260025461110e565b60025561080333611195565b386136ca565b82601f821160011461370b575050555b813880613698565b9091808252613729601f60208420940160051c8401600185016113d9565b5555613703565b613738613194565b613655565b600081815260266020526040812054909190801561383957600019908082018181116138255760255490838201918211613811578082036137c6575b50505060255480156137b257810190613791826110ca565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6137fb6137d56137e4936110ca565b90549060031b1c9283926110ca565b819391549060031b91821b91600019901b19161790565b9055845260266020526040842055388080613779565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b60008181526026602052604081205461388b57602554600160401b811015610f695790826138776137e4846001604096016025556110ca565b905560255492815260266020522055600190565b90509056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda264697066735822122083f27a7a77250915921f99077b478e87411ad3c8f0a1e4a71f87e5481ace8fde64736f6c63430008130033","sourceMap":"1170:9579:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1170:9579:86;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;:::i;:::-;4273:61:72;;;;:::i;:::-;2663:30:62;1170:9579:86;-1:-1:-1;;;;;1170:9579:86;2649:10:62;:44;2645:92;;1170:9579:86;1693:14:71;1170:9579:86;;;;;;;;;1693:57:71;1689:146;;3498:34:86;;;3494:98;;3606:38;;;3602:102;;3718:14;1170:9579;;;;;;;;6249:9:71;6260:10;;;;;;3714:421:86;;;;;;;1170:9579;;6249:9:71;6346:33;6365:13;;;;;:::i;:::-;6346:33;;:::i;:::-;-1:-1:-1;;;;;6417:13:71;;;;;;:::i;:::-;;:::i;:::-;1170:9579:86;-1:-1:-1;;;;;1170:9579:86;;;6397:33:71;6393:100;;6684:13;;;;;;:::i;:::-;6709;1243:27:70;6709:13:71;;;;;:::i;:::-;6732:9;;;;;;;;:::i;:::-;1170:9579:86;;;;1243:27:70;;;1170:9579:86;;1243:27:70;;1170:9579:86;;;;;;:::i;:::-;;;;;;1243:27:70;1170:9579:86;;1243:27:70;;;;;;:::i;:::-;-1:-1:-1;;;;;21913:11:69;1170:9579:86;;;;;;;;:::i;:::-;;;;3528:63:70;1170:9579:86;3528:63:70;;1170:9579:86;;;;;;;;;3528:63:70;;1170:9579:86;;;;3489:15:70;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;2502:71:45;;;1170:9579:86;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;1170:9579:86;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;-1:-1:-1;;;;;;;;;;;1170:9579:86;;;-1:-1:-1;;;;;1170:9579:86;21913:11:69;1170:9579:86;;;21913:11:69;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1496:205:70;;;1170:9579:86;6249:9:71;;1170:9579:86;;;;;;;;;;;;;;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;-1:-1:-1;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6393:100:71;1170:9579:86;;-1:-1:-1;;;6457:21:71;;1170:9579:86;;6457:21:71;3714:421:86;4447:9:71;;;;;4458:10;;;;;;1170:9579:86;;;;;;-1:-1:-1;;;;;5341:15:71;1170:9579:86;;-1:-1:-1;5331:25:71;5327:91;;1170:9579:86;;;3718:14;1170:9579;;;3718:14;1170:9579;5464:39:71;1170:9579:86;;5464:39:71;;;;:::i;:::-;;;;5596:16;1170:9579:86;5630:19:71;1170:9579:86;;;-1:-1:-1;;;;;1170:9579:86;5587:84:71;;;;;1170:9579:86;;;;;;;;;;;;5587:84:71;;;1170:9579:86;5587:84:71;;1170:9579:86;5587:84:71;;;;;;;;3714:421:86;;1170:9579;;5587:84:71;;;;:::i;:::-;1170:9579:86;;;;;;;5587:84:71;1170:9579:86;;;;;;;;;5587:84:71;1170:9579:86;;;5327:91:71;1170:9579:86;;-1:-1:-1;;;5379:28:71;;1170:9579:86;;5379:28:71;4447:9;4544:33;4563:13;;;;;:::i;4544:33::-;-1:-1:-1;;;;;4615:13:71;;;;;;:::i;:::-;1170:9579:86;-1:-1:-1;;;;;1170:9579:86;;;4595:33:71;4591:100;;4832:13;;;;;;:::i;:::-;1170:9579:86;;1693:14:71;1170:9579:86;;;;;;;;;4668:53:69;1726:24:71;;-1:-1:-1;;;;;;1170:9579:86;;;;;4745:21:69;1170:9579:86;;;;;;4664:230:69;4808:112:71;;4968:13;4983;4968;;1170:9579:86;4968:13:71;;;;:::i;:::-;4983;;;;;:::i;:::-;;;:::i;:::-;19151:5:69;5051:13:71;;;;;;:::i;:::-;5066:9;;;;;:::i;:::-;1170:9579:86;19151:5:69;;:::i;:::-;5091:102:71;5133:13;;;;;;:::i;:::-;1170:9579:86;5156:9:71;;;;;:::i;:::-;1170:9579:86;5177:13:71;;;;;;:::i;:::-;1170:9579:86;;;;;;;;:::i;:::-;;;;;;;;;;5116:76:71;;1170:9579:86;;;;:::i;:::-;;5116:76:71;;1170:9579:86;5091:102:71;:::i;:::-;1170:9579:86;4447:9:71;;4808:112;1170:9579:86;;-1:-1:-1;;;4877:28:71;;1170:9579:86;;4877:28:71;4664:230:69;-1:-1:-1;;;;;1170:9579:86;;;;;4831:21:69;1170:9579:86;;;;;;4831:52:69;1170:9579:86;4664:230:69;;1170:9579:86;-1:-1:-1;;;1170:9579:86;;;;;;;;3602:102;1170:9579;;-1:-1:-1;;;3667:26:86;;1170:9579;;3667:26;1689:146:71;2502:71:45;1170:9579:86;;:::i;:::-;;;-1:-1:-1;;;1773:51:71;;1170:9579:86;;1773:51:71;;2502:71:45;1170:9579:86;;;;2502:71:45;;;;:::i;:::-;1773:51:71;;;1170:9579:86;-1:-1:-1;;;1170:9579:86;;;;;;;;2645:92:62;1170:9579:86;;-1:-1:-1;;;2716:10:62;;1170:9579:86;;2716:10:62;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;247:48:68;477:1;1170:9579:86;;582:20:68;578:50;;1170:9579:86;477:1:68;1170:9579:86;;;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;;:::i;:::-;1170:9579:86;;;578:50:68;1170:9579:86;;-1:-1:-1;;;611:17:68;;1170:9579:86;;611:17:68;1170:9579:86;;;;;;;-1:-1:-1;;1170:9579:86;;;;;;247:48:68;1170:9579:86;;;582:20:68;578:50;;1170:9579:86;;;2364:11;;2360:65;;1170:9579;2439:14;1170:9579;;;;2435:79;;2545:10;1170:9579;;;;;;;;;;2528:37;2524:93;;2869:6;2545:10;;;1170:9579;;;;;;;;2627:38;1170:9579;;;2627:38;:::i;:::-;1170:9579;;2675:29;1170:9579;2675:19;1170:9579;2675:29;:::i;:::-;:19;1170:9579;2545:10;1170:9579;;;;;;;;;2719:33;2715:114;;1170:9579;2545:10;2869:6;:::i;2715:114::-;2807:10;2545;2807;:::i;:::-;2715:114;;2524:93;1170:9579;;-1:-1:-1;;;2588:18:86;;1170:9579;;2588:18;2435:79;1170:9579;;-1:-1:-1;;;2476:27:86;;1170:9579;;2476:27;2360:65;1170:9579;;-1:-1:-1;;;2398:16:86;;1170:9579;;2398:16;1170:9579;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;247:48;;1170:9579:86;;;;582:20:68;578:50;;1170:9579:86;;;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;1170:9579:86;4852:14;1170:9579;;;;4848:89;;;;1170:9579;4950:9;:14;4946:70;;5053:10;1170:9579;;;;8282:21:69;1170:9579:86;;;;;17433:25:69;:52;1170:9579:86;5026:110;;372:2:40;5150:57:86;;5146:232;;-1:-1:-1;;;;;1170:9579:86;5053:10;1170:9579;5415:44;;;;:::i;:::-;1170:9579;5473:30;5469:89;;5572:15;;1170:9579;;5053:10;;;;;5870:9;5053:10;;5870:9;:::i;:::-;5936;4950;5053:10;5936:9;:::i;:::-;5961:14;;:::i;5568:670::-;1170:9579;;;;;;;;;;;;:::i;:::-;;22229:11:69;1170:9579:86;;;;;;;;:::i;:::-;17433:25:69;1170:9579:86;;3528:63:70;;;1170:9579:86;;;;3528:63:70;;5053:10:86;;1170:9579;;;;;3489:15:70;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;2502:71:45;;;;1170:9579:86;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;17433:25:69;;1170:9579:86;;;;;;;;;-1:-1:-1;;;;1170:9579:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1170:9579:86;;;;-1:-1:-1;;;;;1170:9579:86;22229:11:69;1170:9579:86;;;22229:11:69;1170:9579:86;;;;;;17433:25:69;1170:9579:86;;5053:10;1170:9579;;;;;;;;;;;;;;:::i;:::-;;;;;;747:200:70;;;6217:9:86;4950;5053:10;6217:9;:::i;1170:9579::-;;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17433:25:69;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5146:232;1170:9579;;-1:-1:-1;;;5343:24:86;;1170:9579;;5343:24;5026:110;1170:9579;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1170:9579:86;;;;2502:71:45;1170:9579:86;;6935:42;;;;;;5087:38;;1170:9579;5087:38;;2502:71:45;1170:9579:86;2502:71:45;;;;:::i;4946:70:86:-;1170:9579;;-1:-1:-1;;;4987:18:86;;1170:9579;;4987:18;4848:89;4882:14;;:::i;:::-;4848:89;;1170:9579;;;;;;;;;;;;;;;;;4273:61:72;;:::i;:::-;1170:9579:86;;17942:32:69;1170:9579:86;;;17987:31:69;1170:9579:86;;;;;;;;;10025:97;;10132:8;1170:9579;;-1:-1:-1;;1170:9579:86;;;;;10166:16;1170:9579;;;-1:-1:-1;;;;;1170:9579:86;10157:33;;;;;1170:9579;;;;;;;;;;;;10157:33;;;;;;;;;;1170:9579;;;10157:33;;;;:::i;:::-;1170:9579;;10157:33;1170:9579;;10025:97;1170:9579;;-1:-1:-1;;;10085:26:86;;1170:9579;;10085:26;1170:9579;-1:-1:-1;;;1170:9579:86;;;;;;;;;;;;;;;;;;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;6739:14:86;;:::i;:::-;6797:9;:14;6793:70;;6901:10;1170:9579;;;;8282:21:69;1170:9579:86;;;;;17433:25:69;:52;1170:9579:86;17433:57:69;6873:115:86;;7003:14;1170:9579;;;;;;;7075:9;6797;6901:10;7075:9;:::i;:::-;7100:14;;:::i;6998:225::-;7202:9;6797;6901:10;7202:9;:::i;6873:115::-;2502:71:45;1170:9579:86;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1170:9579:86;;;;;;6935:42;;;;;;;;1170:9579;;6935:42;;2502:71:45;;;;;;:::i;1170:9579:86:-;;;;;;;-1:-1:-1;;1170:9579:86;;;;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;1170:9579:86;;4326:1:72;:::i;1170:9579:86:-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;987:72:66;;;:::i;:::-;10437:10:86;1170:9579;;1317:17:79;1170:9579:86;;;;;;;;1317:33:79;10399:107:86;;2502:71:45;;10519:29:86;10515:81;;10437:10;1170:9579;;;;;;;;2502:71:45;;;1170:9579:86;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:50:36;10437:10:86;8399:50:36;:::i;:::-;;1170:9579:86;;;;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1170:9579:86;;;;;;;;10515:81;1170:9579;;-1:-1:-1;;;10571:14:86;;1170:9579;;10571:14;10399:107;1170:9579;;-1:-1:-1;;;10471:24:86;;10437:10;1170:9579;10471:24;;1170:9579;;;10471:24;1170:9579;;;;;;;;;;;;;;;1668:9;:14;1664:68;;1170:9579;;1746:14;1170:9579;;;;1742:79;;1852:10;1170:9579;;;;;;;;;1835:33;1831:101;;1170:9579;1852:10;1170:9579;;;;;;;;1942:41;1668:9;1170:9579;;1942:41;:::i;:::-;1170:9579;;1993:32;1668:9;1993:19;1170:9579;1993:32;:::i;:::-;:19;1170:9579;;;1831:101;1170:9579;;-1:-1:-1;;;1170:9579:86;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;1852:10;1170:9579;;;;;;;;1831:101;;1170:9579;-1:-1:-1;;;1170:9579:86;;;;;;;;1664:68;-1:-1:-1;;;1705:16:86;;1170:9579;;1705:16;1170:9579;-1:-1:-1;;;;;1170:9579:86;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;:::o;:::-;-1:-1:-1;;;;;1170:9579:86;;;;;;-1:-1:-1;;1170:9579:86;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1170:9579:86;;;;;;:::o;:::-;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1170:9579:86;;;;-1:-1:-1;1170:9579:86;:::o;:::-;;;;;;;;;;;;;9059:17;1170:9579;;;;;;9059:17;-1:-1:-1;1170:9579:86;;;;-1:-1:-1;1170:9579:86;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;1530:331:29:-;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;1170:9579:86;1749:33:29;;1170:9579:86;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1749:33:29;1170:9579:86;;;;;;1796:8:29;1792:63;;1530:331::o;1792:63::-;1170:9579:86;;-1:-1:-1;;;1827:17:29;;;;;1170:9579:86;;;1611:109:29;1170:9579:86;;-1:-1:-1;;;1668:41:29;;1623:4;1668:41;;;1170:9579:86;;;1668:41:29;6969:557:71;7128:20;1170:9579:86;;;7170:9:71;3793:45:72;7181:10:71;;;;;;7165:355;6969:557;;;;:::o;7170:9::-;7213:23;;;:::i;:::-;1170:9579:86;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;7213:31:71;7209:242;;1170:9579:86;;;;7170:9:71;;7209:242;1170:9579:86;;;;;;;;;;;;;;;;7290:32:71;7264:23;7290:32;;7264:58;7290:32;;:::i;:::-;1170:9579:86;;;;;;;7264:23:71;;:::i;:::-;:58;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;7264:58:71;1170:9579:86;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7431:5:71;;;;;;1170:9579:86;;;;;;3793:45:72;1170:9579:86;;;3793:45:72;1170:9579:86;;;;;;;3793:45:72;1170:9579:86;;;3793:45:72;1170:9579:86;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;-1:-1:-1;;;1170:9579:86;;;;;;;;;;;;;;:::o;2502:71:45:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1170:9579:86;;;;;;2502:71:45;;;:::o;:::-;;;;;;;;;;;;;;;;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1170:9579:86;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;1170:9579:86;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;1170:9579:86;;;;;5091:19:71;1170:9579:86;;-1:-1:-1;;;1170:9579:86;;;;;;;;;;;;;;;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;2502:71:45;;;;1170:9579:86;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;-1:-1:-1;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;:::i;:::-;2502:71:45;;;;1170:9579:86;;;;;;;;;;;2502:71:45;1170:9579:86;2502:71:45;;;1170:9579:86;;;;:::o;:::-;;;;;;-1:-1:-1;1170:9579:86;2502:71:45;1170:9579:86;;-1:-1:-1;1170:9579:86;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2502:71:45;1170:9579:86;;;;;;2502:71:45;;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;5091:19:71;1170:9579:86;;;2502:71:45;;;;;;;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4525:375:69;1170:9579:86;19791:14:69;1170:9579:86;;;;;;;;4697:24:69;4668:53;4697:24;;-1:-1:-1;;;;;1170:9579:86;-1:-1:-1;1170:9579:86;;;4745:21:69;1170:9579:86;;;;;;;4525:375:69:o;4664:230::-;-1:-1:-1;;;;;1170:9579:86;-1:-1:-1;1170:9579:86;;;4831:21:69;1170:9579:86;;;;;;4831:52:69;1170:9579:86;;4525:375:69:o;9330:540::-;;1170:9579:86;;;;;;;-1:-1:-1;1170:9579:86;9465:15:69;1170:9579:86;;;-1:-1:-1;1170:9579:86;;;;;;9580:22:69;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:69;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;11008:2209::-;;;1170:9579:86;;;;;;;;;-1:-1:-1;1170:9579:86;;;;;;1317:17:79;1170:9579:86;;;;;;;;;;;;11120:226:69;;1170:9579:86;19791:14:69;1170:9579:86;;;;;11124:21:69;1170:9579:86;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;1170:9579:86;;;;;4077:23:77;1170:9579:86;;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;1170:9579:86;;;1317:17:79;1170:9579:86;;;;;;;;12866:229:69;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;1170:9579:86;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;;;;;;;;;;13168:42:69;;;;11008:2209::o;12866:229::-;3147:36:77;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;1170:9579:86;;;;4619:7:77;;;4612:423;-1:-1:-1;;1170:9579:86;;-1:-1:-1;;;;;1170:9579:86;;;;;-1:-1:-1;;;;1170:9579:86;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13008:56:69;1170:9579:86;;;;13008:56:69;1170:9579:86;4612:423:77;1170:9579:86;;1991:25:79;1170:9579:86;;;;;;;;;;;1952:17:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:69;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:79;12475:4:69;;;:::i;:::-;1170:9579:86;;;;;;12495:140:69;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;1170:9579:86;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;;;;;;;;;;12495:140:69;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:78;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;1170:9579:86;11124:21:69;1170:9579:86;;4932:763:78;;1170:9579:86;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;1170:9579:86;;-1:-1:-1;;;;;1170:9579:86;;;;;-1:-1:-1;;;;1170:9579:86;;;;;;;5556:5:78;;-1:-1:-1;;;;;;;;;;;;11260:55:69;-1:-1:-1;1170:9579:86;;;;11260:55:69;1170:9579:86;4971:413:78;1170:9579:86;;;;;1952:17:79;1170:9579:86;;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;11260:55:69;4939:16:78;;;;;-1:-1:-1;;;;;;;;;;;4939:16:78;;;;11008:2209:69;-1:-1:-1;;;;;1170:9579:86;;;-1:-1:-1;1170:9579:86;;;1317:17:79;1170:9579:86;;;;;;;;;11008:2209:69;;1170:9579:86;;;;;11120:226:69;;1170:9579:86;1693:14:71;1170:9579:86;;;;;11124:21:69;1170:9579:86;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;1170:9579:86;;;4077:23:77;1170:9579:86;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;-1:-1:-1;1170:9579:86;;1317:17:79;1170:9579:86;;;;;;;12866:229:69;;13168:42;;13141:11;;;;:::i;12866:229::-;13008:56;-1:-1:-1;;;;;;;;;;;3147:36:77;3308:5;3147:36;;;:::i;:::-;3209:30;;;:::i;:::-;3308:5;;:::i;12404:452:69:-;12475:4;;;;;12777:48;12475:4;;12777:48;12475:4;;;:::i;:::-;1170:9579:86;;1317:17:79;1170:9579:86;;;;;12495:140:69;;12684:11;;;:::i;12495:140::-;12608:11;;;:::i;11516:262::-;11675:11;;;;11706:41;;11675:11;;;;:::i;11120:226::-;2876:36:78;;;;11260:55:69;-1:-1:-1;;;;;;;;;;;2876:36:78;3035:3;2876:36;;;:::i;:::-;2936:30;;;:::i;:::-;3035:3;;:::i;13320:2014:69:-;;;1170:9579:86;;;;;;;;;-1:-1:-1;;1170:9579:86;;;;;1317:17:79;1170:9579:86;;;;;;;;;;;;13428:421:69;;1170:9579:86;;;1317:17:79;1170:9579:86;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;1170:9579:86;;;;;4277:7:78;;;;1170:9579:86;;;;;;;;;1952:17:79;1170:9579:86;;;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;13432:22:69;1170:9579:86;;14638:37:69;14634:74;;4023:26:77;;:::i;:::-;1170:9579:86;;;1952:17:79;1170:9579:86;;;;;;;;;4129:25:77;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;1170:9579:86;;;;;;;4129:25:77;;;;:::i;:::-;-1:-1:-1;14901:358:69;;-1:-1:-1;;1170:9579:86;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;-1:-1:-1;;;;;;;;;;;15274:53:69;1170:9579:86;;;;15274:53:69;1170:9579:86;14901:358:69;14979:4;;;;15176:52;;14979:4;;;:::i;:::-;15025;;:::i;14634:74::-;14691:7;;;;;;:::o;4277::78:-;;;;;;;;;;;;;14049:508:69;14126:9;;;;14155:30;14126:9;;;;;;;;;:::i;:::-;1170:9579:86;;;;;14155:30:69;13432:22;1170:9579:86;;14200:326:69;;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:77;4077:23;4023:26;;;;:::i;:::-;1170:9579:86;;;;;;;14472:39:69;4129:25:77;;;:::i;:::-;14378:4:69;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;1170:9579:86;;-1:-1:-1;;;13952:26:69;;;;;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:77;1170:9579:86;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;1170:9579:86;;;;;;;;;13432:22:69;1170:9579:86;;5287:763:77;1170:9579:86;;;5287:763:77;-1:-1:-1;;1170:9579:86;;-1:-1:-1;;;;;1170:9579:86;;;;;-1:-1:-1;;;;1170:9579:86;;;;;;;-1:-1:-1;1170:9579:86;;-1:-1:-1;;;;;;;;;;;;13764:54:69;1170:9579:86;-1:-1:-1;1170:9579:86;;;;13764:54:69;1170:9579:86;5287:763:77;1170:9579:86;;;5294:16:77;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1170:9579:86;;1952:17:79;1170:9579:86;;;;;;;;1991:25:79;;1170:9579:86;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13490:185:69;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;1170:9579:86;;;;13605:31:69;13654:7::o;13320:2014::-;-1:-1:-1;;;;;1170:9579:86;;;-1:-1:-1;1170:9579:86;;;1317:17:79;1170:9579:86;;;;;;;;;;;13320:2014:69;;1170:9579:86;;;;;;13428:421:69;;1170:9579:86;;;1317:17:79;1170:9579:86;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;3422:3;3263:36;;;:::i;:::-;3323:30;;;:::i;:::-;3422:3;;:::i;14049:508:69:-;14126:9;;;;;;;14155:30;14126:9;;;:::i;13883:106::-;1170:9579:86;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;13490:185;;3601:36:77;-1:-1:-1;;;;;;;;;;;3601:36:77;;13764:54:69;3601:36:77;3762:5;3601:36;;;:::i;:::-;3663:30;;;:::i;:::-;3762:5;;:::i;13490:185:69:-;13572:9;;;13605:31;13572:9;;;:::i;19251:224::-;-1:-1:-1;;;;;1170:9579:86;;;;;8282:21:69;1170:9579:86;;;;;19251:224:69;;;;8282:41;;1170:9579:86;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;:::i;:::-;;;:::i;:::-;3793:45:72;1170:9579:86;;;;;;;;;;;3793:45:72;1170:9579:86;;;;;;;;;;;;;8282:41:69;1170:9579:86;;;;;;;19251:224:69:o;1170:9579:86:-;;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19251:224:69:o;1170:9579:86:-;;;-1:-1:-1;;8282:41:69;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;372:2:40;;;;:::o;:::-;1170:9579:86;;;372:2:40;;;;;;;;3527:269:71;;3623:65;372:2:40;3630:57:71;;3623:65;:::i;:::-;372:2:40;3735:1:71;372:2:40;;;1170:9579:86;;;;-1:-1:-1;;372:2:40;;3735:1:71;372:2:40;1170:9579:86;:::i;:::-;2502:71:45;;372:2:40;;;;3715:24:71;-1:-1:-1;;;;;1170:9579:86;;3527:269:71:o;1170:9579:86:-;;;2502:71:45;1170:9579:86;;2502:71:45;;;;;;1170:9579:86;-1:-1:-1;1170:9579:86;;;;;;;;-1:-1:-1;;1170:9579:86;;;;:::o;4078:118:72:-;1170:9579:86;4127:8:72;1170:9579:86;;;;4123:67:72;;4078:118::o;4123:67::-;1170:9579:86;;-1:-1:-1;;;4158:21:72;;;;;1170:9579:86;;;;;;;;;;;;;:::o;998:417:77:-;1401:5;998:417;1301:30;1170:9579:86;;1119:19:77;1170:9579:86;12499:22:69;1170:9579:86;;1119:19:77;:::i;:::-;1170:9579:86;;;;;;;;;;-1:-1:-1;1170:9579:86;1149:23:77;1170:9579:86;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;-1:-1:-1;1170:9579:86;1200:23:77;1170:9579:86;;;-1:-1:-1;1170:9579:86;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;12499:22:69;1170:9579:86;;;12499:22:69;1170:9579:86;1301:30:77;:::i;1170:9579:86:-;;;;;-1:-1:-1;;1170:9579:86;;;;;;;:::o;1545:401:77:-;1170:9579:86;;13432:22:69;1170:9579:86;;1044:14:79;;;1040:61;;1170:9579:86;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;372:2:40;1170:9579:86;;;2468:17:79;1170:9579:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;2551:17:79;1170:9579:86;;;;;;;-1:-1:-1;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;372:2:40;;1170:9579:86;;;;372:2:40;2468:17:79;1799:4:77;;1170:9579:86;1766:8:77;;1170:9579:86;1766:8:77;:::i;:::-;1170:9579:86;;13432:22:69;1170:9579:86;;;13432:22:69;1170:9579:86;1799:4:77;:::i;:::-;1170:9579:86;;;;;;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;5160:26;1952:17:79;1170:9579:86;13432:22:69;1170:9579:86;;5287:763:77;1170:9579:86;;;5287:763:77;1545:401;;;;;;;;;;;:::o;5287:763::-;1170:9579:86;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1170:9579:86;;;;;;;;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;1040:61:79;1170:9579:86;;-1:-1:-1;;;1081:9:79;;;;;2081:787:77;2210:36;2081:787;2210:36;:::i;:::-;1170:9579:86;;;12499:22:69;1170:9579:86;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;1170:9579:86;;;12499:22:69;1170:9579:86;;;12499:22:69;1170:9579:86;2415:4:77;;;:::i;:::-;1170:9579:86;;2435:11:77;;;2431:48;;1991:25:79;1170:9579:86;2854:5:77;1170:9579:86;-1:-1:-1;1170:9579:86;1952:17:79;1170:9579:86;;;;;;;;2668:5:77;1991:25:79;1170:9579:86;;-1:-1:-1;1170:9579:86;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;-1:-1:-1;1170:9579:86;1952:17:79;1170:9579:86;;;-1:-1:-1;1170:9579:86;;;1991:25:79;:::i;2431:48:77:-;2462:7;;:::o;2081:787::-;2210:36;2081:787;2210:36;:::i;:::-;1170:9579:86;;;12499:22:69;1170:9579:86;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;1170:9579:86;;;12499:22:69;1170:9579:86;;;12499:22:69;1170:9579:86;2415:4:77;;;:::i;:::-;1170:9579:86;;;2435:11:77;;;2431:48;;-1:-1:-1;1170:9579:86;-1:-1:-1;;1170:9579:86;;;;1952:17:79;1170:9579:86;;;;;;;;;;;;;;2668:5:77;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;1170:9579:86;;;;;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;2854:5:77;;1170:9579:86;;;;;;;;;12499:22:69;1170:9579:86;;5287:763:77;1170:9579:86;;;2081:787:77;;;;;;;;;;;:::o;5287:763::-;1170:9579:86;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;1170:9579:86;;;;;;;;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;5326:412:77;;2431:48;2462:7;;;:::o;4443:598::-;;;;4612:423;4625:1;1170:9579:86;;;;4619:7:77;;;;1170:9579:86;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;1170:9579:86;;;1952:17:79;1170:9579:86;;;;;;;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;1170:9579:86:-;;;;;;;;;;;;;;:::o;5047:1009:77:-;;5185:1;1170:9579:86;;;;;5218:18:77;-1:-1:-1;5218:18:77;1170:9579:86;;;13432:22:69;1170:9579:86;;5287:763:77;5185:1;;;5287:763;5047:1009;;;;;;;:::o;5287:763::-;1170:9579:86;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1170:9579:86;;1952:17:79;1170:9579:86;;;;;;;;;1991:25:79;;-1:-1:-1;;;;;1170:9579:86;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;6117:442;;;;1170:9579:86;;;;;-1:-1:-1;1170:9579:86;1952:17:79;1170:9579:86;;1991:25:79;1170:9579:86;;;;;1991:25:79;1170:9579:86;;-1:-1:-1;1170:9579:86;;;1991:25:79;:::i;:::-;1170:9579:86;;;-1:-1:-1;1170:9579:86;1952:17:79;1170:9579:86;;;-1:-1:-1;1170:9579:86;;;1991:25:79;:::i;:::-;6662:7:77;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:77;;-1:-1:-1;6490:21:77:o;924:417:78:-;1327:5;924:417;1227:30;1170:9579:86;;1045:19:78;1170:9579:86;11124:21:69;1170:9579:86;;1045:19:78;:::i;:::-;1170:9579:86;;;;;;;;;;-1:-1:-1;1170:9579:86;1075:23:78;1170:9579:86;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;-1:-1:-1;1170:9579:86;1126:23:78;1170:9579:86;;;-1:-1:-1;1170:9579:86;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;11124:21:69;1170:9579:86;;;11124:21:69;1170:9579:86;1227:30:78;:::i;1408:401::-;1170:9579:86;;11124:21:69;1170:9579:86;;1044:14:79;;;1040:61;;1170:9579:86;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;372:2:40;1170:9579:86;;;2468:17:79;1170:9579:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;2551:17:79;1170:9579:86;;;;;;;-1:-1:-1;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;372:2:40;;1170:9579:86;;;;372:2:40;2468:17:79;1662:4:78;;1170:9579:86;1629:8:78;;1170:9579:86;1629:8:78;:::i;:::-;1170:9579:86;;11124:21:69;1170:9579:86;;;11124:21:69;1170:9579:86;1662:4:78;:::i;:::-;1170:9579:86;;;;;;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;4715:986:78;;4828:25;1170:9579:86;;11124:21:69;1170:9579:86;;4932:763:78;1170:9579:86;;;1408:401:78;;;;;;;;;;;:::o;4932:763::-;1170:9579:86;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;1170:9579:86;;;;;;;;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;4971:413:78;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;1170:9579:86;;;13888:21:69;1170:9579:86;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;1170:9579:86;;;13888:21:69;1170:9579:86;;;13888:21:69;1170:9579:86;2215:4:78;;;:::i;:::-;1170:9579:86;;2235:11:78;;;2231:48;;1991:25:79;1170:9579:86;2648:3:78;1170:9579:86;-1:-1:-1;1170:9579:86;1952:17:79;1170:9579:86;;;;;;;;2466:3:78;1991:25:79;1170:9579:86;;-1:-1:-1;1170:9579:86;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;-1:-1:-1;1170:9579:86;1952:17:79;1170:9579:86;;;-1:-1:-1;1170:9579:86;;;1991:25:79;:::i;1881:779:78:-;2010:36;1881:779;2010:36;:::i;:::-;1170:9579:86;;;;13888:21:69;1170:9579:86;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;1170:9579:86;;;13888:21:69;1170:9579:86;;;13888:21:69;1170:9579:86;2215:4:78;;;:::i;:::-;1170:9579:86;;;2235:11:78;;;2231:48;;-1:-1:-1;;;;1170:9579:86;;;;1952:17:79;1170:9579:86;;;;;;;;;;;;;;2466:3:78;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;1170:9579:86;;;;;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;2648:3:78;4846:7;2648:3;4846:7;:::i;:::-;4863:18;1170:9579:86;13888:21:69;1170:9579:86;;4932:763:78;;1170:9579:86;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;1170:9579:86;;;;;;;;1991:25:79;1170:9579:86;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;1170:9579:86;;;;4277:7:78;;;;1170:9579:86;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;1170:9579:86;;;1952:17:79;1170:9579:86;;;;;;;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4715:986;;4846:7;;;:::i;:::-;-1:-1:-1;1170:9579:86;;;11124:21:69;1170:9579:86;;4932:763:78;;1170:9579:86;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;4715:986::o;4971:413::-;1170:9579:86;;1952:17:79;1170:9579:86;;;;;;;;;1991:25:79;;-1:-1:-1;;;;;1170:9579:86;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;4715:986::o;5763:443::-;;;1170:9579:86;;;;-1:-1:-1;1170:9579:86;1952:17:79;1170:9579:86;;1991:25:79;1170:9579:86;;;;;1991:25:79;1170:9579:86;;-1:-1:-1;1170:9579:86;;;1991:25:79;:::i;:::-;1170:9579:86;;;-1:-1:-1;1170:9579:86;1952:17:79;1170:9579:86;;;-1:-1:-1;1170:9579:86;;;1991:25:79;:::i;:::-;6308:7:78;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:79:-;1170:9579:86;11124:21:69;1170:9579:86;;1044:14:79;1040:61;;974:133::o;:::-;1170:9579:86;13432:22:69;1170:9579:86;;1044:14:79;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;1170:9579:86;-1:-1:-1;1170:9579:86;;;1474:17:79;1170:9579:86;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1512:71::-;1170:9579:86;;-1:-1:-1;;;1547:25:79;;;;;1363:226;-1:-1:-1;;;;;1170:9579:86;-1:-1:-1;1170:9579:86;;;1474:17:79;1170:9579:86;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1595:184::-;1170:9579:86;;-1:-1:-1;1170:9579:86;;;1671:17:79;1170:9579:86;;;;;;;;;;-1:-1:-1;;;;;;1170:9579:86;;;;;-1:-1:-1;;;;;1170:9579:86;;;1749:17:79;1170:9579:86;;;;;;;-1:-1:-1;;1170:9579:86;;;1595:184:79:o;:::-;1170:9579:86;;-1:-1:-1;1170:9579:86;;;1671:17:79;1170:9579:86;;;;;;;;;;-1:-1:-1;;;;;;1170:9579:86;;;;;-1:-1:-1;;;;;1170:9579:86;;;1749:17:79;1170:9579:86;;;;;;;-1:-1:-1;;1170:9579:86;;;1595:184:79:o;2301:412::-;2416:25;1170:9579:86;;;11124:21:69;1170:9579:86;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;1170:9579:86;2423:17:79;;;;2416:25;:::i;:::-;-1:-1:-1;1170:9579:86;;;2468:17:79;1170:9579:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;2551:17:79;1170:9579:86;;;;;;;-1:-1:-1;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1170:9579:86;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;1170:9579:86;;;12870:22:69;1170:9579:86;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;1170:9579:86;;;2468:17:79;1170:9579:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;2551:17:79;1170:9579:86;;;;;;;-1:-1:-1;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1170:9579:86;;;;;;;;;;;;;;;;;;;2301:412:79:o;1371:121:66:-;1170:9579:86;248:41:66;1170:9579:86;;1424:62:66;;1371:121::o;1424:62::-;1170:9579:86;;-1:-1:-1;;;1460:15:66;;;;;19573:1335:69;19831:6;;;;:::i;:::-;10258:13;10005:46;:26;10143:39;10005:55;:26;;;;1170:9579:86;;;;;;;;8282:21:69;1170:9579:86;;;;;;;10005:26:69;:46;1170:9579:86;10005:55:69;:::i;:::-;10070:26;;;;;1170:9579:86;;;;;;;;8282:21:69;1170:9579:86;;;;;;;10070:26:69;:46;1170:9579:86;10143:29:69;1170:9579:86;10143:39:69;:::i;:::-;:29;1170:9579:86;10258:13:69;;:::i;:::-;1170:9579:86;19977:14:69;1170:9579:86;;;;19976:15:69;19972:930;;19573:1335;;:::o;19972:930::-;3793:45:72;20113:21:69;1170:9579:86;;20210:9:69;;;20221:10;;;;;;20205:270;20492:17;;;;;20488:404;;19573:1335;;:::o;20488:404::-;1170:9579:86;;20848:29:69;20550:36;;;1170:9579:86;;;;;;;;8282:21:69;1170:9579:86;;;;;;;20550:36:69;:56;1170:9579:86;20766:36:69;1170:9579:86;20766:36:69;;1170:9579:86;;;;;;;;8282:21:69;1170:9579:86;;;;;;;20766:36:69;:45;1170:9579:86;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1170:9579:86;20647:183:69;;;1170:9579:86;;;;;;;;;:::i;:::-;;;;:::i;20210:9:69:-;1170:9579:86;;;;;;20257:27:69;;1170:9579:86;-1:-1:-1;;;;;1170:9579:86;;;;;20257:40:69;20253:137;;1170:9579:86;20210:9:69;;;;20253:137;20321:23;;;;;20366:5;;;;;;8648:175;1170:9579:86;;;;;;-1:-1:-1;1170:9579:86;8758:21:69;1170:9579:86;;8758:58:69;:21;1170:9579:86;-1:-1:-1;1170:9579:86;8758:48:69;1170:9579:86;;;8758:58:69;:::i;:::-;1170:9579:86;;8648:175:69:o;22329:256::-;;;1170:9579:86;;2707:18:70;;;;;1170:9579:86;2707:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22476:11:69;1170:9579:86;;;;;;;;;:::i;:::-;-1:-1:-1;1170:9579:86;;;;2707:18:70;3528:63;;1170:9579:86;;;;;;;;;;;;3528:63:70;;1170:9579:86;;;;3489:15:70;2707:18;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;2502:71:45;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;2707:18:70;1170:9579:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;1170:9579:86;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;-1:-1:-1;;;;;;;;;;;1170:9579:86;;-1:-1:-1;;;;;22571:6:69;1170:9579:86;;;-1:-1:-1;;;;;1170:9579:86;22476:11:69;1170:9579:86;;;22476:11:69;1170:9579:86;;;;;;;;;;;;;;;;2707:18:70;1170:9579:86;;;;;;;;;;;;;:::i;:::-;;;;;;2941:195:70;;;22571:6:69;:::i;1170:9579:86:-;-1:-1:-1;;;1170:9579:86;;;;;;;;;;;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;2707:18:70;1170:9579:86;;;;;-1:-1:-1;;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:70;1170:9579:86;;;;;;;;-1:-1:-1;;;1170:9579:86;;;;;;;;;-1:-1:-1;;;1170:9579:86;;;;;;;;1090:308:71;1170:9579:86;1233:14:71;1170:9579:86;;;;;;;;1229:147:71;;1090:308::o;2006:664::-;5112:35:69;1170:9579:86;2236:25:71;1170:9579:86;2217:44:71;;;2213:451;;2006:664;;:::o;2213:451::-;1170:9579:86;5328:27:69;1170:9579:86;;-1:-1:-1;;;;;2319:15:71;1170:9579:86;;-1:-1:-1;2281:53:71;2277:377;;2006:664;:::o;2277:377::-;1170:9579:86;;;2354:14:71;1170:9579:86;;;2354:14:71;1170:9579:86;2398:39:71;1170:9579:86;;2398:39:71;;;;:::i;:::-;;;;1170:9579:86;;;;;2546:16:71;1170:9579:86;;;2580:37:71;2598:19;1170:9579:86;2580:37:71;;;:::i;:::-;2537:102;;;;;;1170:9579:86;3793:45:72;1170:9579:86;;;;;;;;;;;2537:102:71;;;;;1170:9579:86;2537:102:71;;;;;;;2213:451;2537:102;;;;:::i;:::-;1170:9579:86;;;3793:45:72;1170:9579:86;;;;;7441:782;7665:14;;:::i;:::-;7724:11;;7720:68;;7855:10;1170:9579;;;;8282:21:69;1170:9579:86;;;;;18718:25:69;:52;1170:9579:86;7881:15;;7877:77;;7967:20;-1:-1:-1;7967:20:86;7963:79;;1170:9579;8056:14;1170:9579;;;;8055:15;8051:116;;8209:6;7855:10;;8209:6;:::i;8051:116::-;8129:6;7855:10;;8129:6;:::i;7963:79::-;1170:9579;;-1:-1:-1;;;8010:21:86;;;;;7720:68;1170:9579;;-1:-1:-1;;;7758:19:86;;;;;21098:504:69;;21588:6;21098:504;21358:6;;;;:::i;:::-;10830:13;10416:55;:26;:46;:26;;1170:9579:86;;;;;;;;8282:21:69;1170:9579:86;;;;;;;10416:26:69;:46;1170:9579:86;10416:55:69;:::i;:::-;-1:-1:-1;;;;;1170:9579:86;;;;;;8282:21:69;1170:9579:86;;;;;10416:15:69;10507:42;1170:9579:86;10564:18:69;;:42;;;;21098:504;-1:-1:-1;10560:199:69;;;-1:-1:-1;;;;;1170:9579:86;;;;;;8282:21:69;1170:9579:86;;;;;;-1:-1:-1;1170:9579:86;;;;;10416:46:69;1170:9579:86;;;;10416:15:69;1170:9579:86;;;;;;;;:::i;:::-;;;;10560:199:69;;;;;10830:13;;:::i;:::-;10856:39;1170:9579:86;10856:29:69;1170:9579:86;10856:39:69;:::i;:::-;:29;1170:9579:86;-1:-1:-1;;;;;1170:9579:86;21588:6:69;:::i;1170:9579:86:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10416:46:69;1170:9579:86;;;:::i;:::-;;;;;10560:199:69;-1:-1:-1;;;;;1170:9579:86;;;;;;8282:21:69;1170:9579:86;;;;;10686:26:69;;10416:46;10686;1170:9579:86;10560:199:69;;10564:42;10586:20;;;10564:42;;;8895:364;-1:-1:-1;;;;;1170:9579:86;-1:-1:-1;1170:9579:86;;;9022:21:69;1170:9579:86;;;;;9022:21:69;:48;1170:9579:86;;;9084:14:69;;;9080:81;;9171:15;;;:::i;:::-;1170:9579:86;-1:-1:-1;1170:9579:86;9022:21:69;1170:9579:86;;9022:21:69;1170:9579:86;-1:-1:-1;1170:9579:86;9196:48:69;1170:9579:86;8895:364:69:o;9080:81::-;1170:9579:86;;-1:-1:-1;;;9121:29:69;;;;;22631:259;;1170:9579:86;;2064:18:70;;;;;1170:9579:86;2064:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22779:11:69;1170:9579:86;;;;;;;;;:::i;:::-;2217:25:70;1170:9579:86;;2064:18:70;3528:63;;1170:9579:86;;;;;3528:63:70;;1170:9579:86;;;;;;;;;;;;;-1:-1:-1;1170:9579:86;3489:15:70;2064:18;1170:9579:86;;-1:-1:-1;1170:9579:86;;;;;;;;;;;;;;;;;;;;2502:71:45;;;1170:9579:86;-1:-1:-1;;;;;1170:9579:86;;;;;;;2217:25:70;1170:9579:86;;;;:::i;:::-;2064:18:70;1170:9579:86;;;;;;;;;;;;-1:-1:-1;;1170:9579:86;;;;;;;2217:25:70;1170:9579:86;;;;;;;;;;;2217:25:70;1170:9579:86;;;;;;;;;;;;;;-1:-1:-1;;;;;1170:9579:86;;;;;;;;2217:25:70;1170:9579:86;;;-1:-1:-1;;;;;1170:9579:86;;;;22876:6:69;1170:9579:86;-1:-1:-1;;;;;;;;;;;;;;;;1170:9579:86;;-1:-1:-1;;;;;1170:9579:86;22779:11:69;1170:9579:86;;;22779:11:69;1170:9579:86;;;;;;;2217:25:70;1170:9579:86;;2064:18:70;1170:9579:86;;;;;;;;;;;;;:::i;:::-;;;;;;2299:196:70;;;22876:6:69;:::i;1170:9579:86:-;;;;-1:-1:-1;1170:9579:86;;;;;;2217:25:70;1170:9579:86;;-1:-1:-1;1170:9579:86;2064:18:70;-1:-1:-1;1170:9579:86;;-1:-1:-1;1170:9579:86;-1:-1:-1;;1170:9579:86;;;;;;;;;;2217:25:70;1170:9579:86;;;;;;;;;;;;;;;;;;2217:25:70;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:18:70;2217:25;1170:9579:86;;;;;;;;;;;;;;;8297:1550;1170:9579;8698:14;1170:9579;;;;8694:89;;8297:1550;8904:10;1170:9579;;;;8282:21:69;1170:9579:86;;;;;18718:25:69;:52;1170:9579:86;8929:11;;8925:73;;8720:53:36;8904:10:86;8720:53:36;:::i;:::-;;-1:-1:-1;8904:10:86;;1170:9579;;9112:16;1170:9579;;;;;;;;;;:::i;:::-;;;;8297:1550;1170:9579;;;;8698:14;1170:9579;;;;9155:15;9151:641;;9833:6;8904:10;;;9833:6;:::i;9151:641::-;1170:9579;9754:6;8904:10;;1170:9579;;9308:16;1170:9579;;;;9354:19;9350:277;;9151:641;8904:10;;9754:6;:::i;9350:277::-;1170:9579;9444:37;9597:14;1170:9579;18718:25:69;1170:9579:86;9444:37;:::i;:::-;18718:25:69;1170:9579:86;9538:10;8904;9538;:::i;9597:14::-;9350:277;;;1170:9579;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8694:89;8728:14;;:::i;:::-;8694:89;;2787:1388:36;-1:-1:-1;1170:9579:86;;;2990:12:36;1170:9579:86;;;;;;-1:-1:-1;;1170:9579:86;3024:15:36;;;;-1:-1:-1;;1170:9579:86;;;;;;;;;9059:17;1170:9579;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;1170:9579:86;;;9059:17;1170:9579;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9059:17;1170:9579;;;2990:12:36;1170:9579:86;;;;;;2990:12:36;4104:11;:::o;1170:9579:86:-;-1:-1:-1;;;1170:9579:86;;;;;;;;3502:398:36;1170:9579:86;3572:22:36;3694:26;3572:22;;:::i;:::-;1170:9579:86;;;;;;3694:26:36;;;;:::i;:::-;1170:9579:86;;;;;;;;;;;;;;;;;;;;;;;;;2990:12:36;1170:9579:86;;;;;;3502:398:36;;;;;1170:9579:86;-1:-1:-1;;;1170:9579:86;;;;;;;;;-1:-1:-1;;;1170:9579:86;;;;;;;;3020:1149:36;4146:12;;;:::o;2215:404::-;-1:-1:-1;1170:9579:86;;;4352:12:36;1170:9579:86;;;;;;;;10707:17;1170:9579;-1:-1:-1;;;1170:9579:86;;;;;;;;;;4352:12:36;1170:9579:86;;;10707:17;1170:9579;;:::i;:::-;;;10707:17;1170:9579;;;;4352:12:36;1170:9579:86;;;;4352:12:36;2548:11;:::o;2294:319::-;2590:12;;;:::o","linkReferences":{}},"methodIdentifiers":{"addBootstrapNode(string)":"10fd4261","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","setFederatedPower(address[],bytes[],uint256[])":"da5d09ee","stake()":"3a4b66f1","unstake(uint256)":"2e17de78"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicatedGenesisValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFederationPayload\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPublicKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughGenesisValidators\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOfPublicKey\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyBootstrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawExceedingCollateral\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddress\",\"type\":\"string\"}],\"name\":\"addBootstrapNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"publicKeys\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"powers\",\"type\":\"uint256[]\"}],\"name\":\"setFederatedPower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the unpause is triggered by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"addBootstrapNode(string)\":{\"params\":{\"netAddress\":\"The network address of the new bootstrap node.\"}},\"join(bytes)\":{\"params\":{\"publicKey\":\"The off-chain 65 byte public key that should be associated with the validator\"}},\"kill()\":{\"details\":\"It is not a privileged operation.\"},\"preFund()\":{\"details\":\"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply.\"},\"preRelease(uint256)\":{\"details\":\"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.\",\"params\":{\"amount\":\"The amount to remove.\"}},\"setFederatedPower(address[],bytes[],uint256[])\":{\"details\":\"method that allows the contract owner to set the validators' federated power.\",\"params\":{\"powers\":\"The federated powers to be assigned to validators.\",\"publicKeys\":\"The public keys of validators.\",\"validators\":\"The addresses of validators.\"}},\"unstake(uint256)\":{\"details\":\"`leave` must be used to unstake the entire stake.\",\"params\":{\"amount\":\"The amount to unstake.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBootstrapNode(string)\":{\"notice\":\"Add a bootstrap node.\"},\"join(bytes)\":{\"notice\":\"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"kill()\":{\"notice\":\"method that allows to kill the subnet when all validators left.\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet.\"},\"preFund()\":{\"notice\":\"method to add some initial balance into a subnet that hasn't yet bootstrapped.\"},\"preRelease(uint256)\":{\"notice\":\"method to remove funds from the initial balance of a subnet.\"},\"setFederatedPower(address[],bytes[],uint256[])\":{\"notice\":\"Sets the federated power of validators.\"},\"stake()\":{\"notice\":\"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"unstake(uint256)\":{\"notice\":\"method that allows a validator to unstake a part of its collateral from a subnet.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorManagerFacet.sol\":\"SubnetActorManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8\",\"dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"CollateralIsZero"},{"inputs":[],"type":"error","name":"DuplicatedGenesisValidator"},{"inputs":[],"type":"error","name":"EmptyAddress"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidFederationPayload"},{"inputs":[],"type":"error","name":"InvalidPublicKeyLength"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NotAllValidatorsHaveLeft"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughCollateral"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughGenesisValidators"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"NotOwnerOfPublicKey"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotValidator"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"SubnetAlreadyBootstrapped"},{"inputs":[],"type":"error","name":"SubnetAlreadyKilled"},{"inputs":[],"type":"error","name":"WithdrawExceedingCollateral"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"netAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addBootstrapNode"},{"inputs":[{"internalType":"bytes","name":"publicKey","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"bytes[]","name":"publicKeys","type":"bytes[]"},{"internalType":"uint256[]","name":"powers","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setFederatedPower"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"}],"devdoc":{"kind":"dev","methods":{"addBootstrapNode(string)":{"params":{"netAddress":"The network address of the new bootstrap node."}},"join(bytes)":{"params":{"publicKey":"The off-chain 65 byte public key that should be associated with the validator"}},"kill()":{"details":"It is not a privileged operation."},"preFund()":{"details":"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply."},"preRelease(uint256)":{"details":"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.","params":{"amount":"The amount to remove."}},"setFederatedPower(address[],bytes[],uint256[])":{"details":"method that allows the contract owner to set the validators' federated power.","params":{"powers":"The federated powers to be assigned to validators.","publicKeys":"The public keys of validators.","validators":"The addresses of validators."}},"unstake(uint256)":{"details":"`leave` must be used to unstake the entire stake.","params":{"amount":"The amount to unstake."}}},"version":1},"userdoc":{"kind":"user","methods":{"addBootstrapNode(string)":{"notice":"Add a bootstrap node."},"join(bytes)":{"notice":"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"kill()":{"notice":"method that allows to kill the subnet when all validators left."},"leave()":{"notice":"method that allows a validator to leave the subnet."},"preFund()":{"notice":"method to add some initial balance into a subnet that hasn't yet bootstrapped."},"preRelease(uint256)":{"notice":"method to remove funds from the initial balance of a subnet."},"setFederatedPower(address[],bytes[],uint256[])":{"notice":"Sets the federated power of validators."},"stake()":{"notice":"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"unstake(uint256)":{"notice":"method that allows a validator to unstake a part of its collateral from a subnet."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorManagerFacet.sol":"SubnetActorManagerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c","urls":["bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8","dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","id":51947,"exportedSymbols":{"Address":[32838],"CannotReleaseZero":[37374],"CollateralIsZero":[37390],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"EnumerableSet":[35815],"IGateway":[40354],"InvalidFederationPayload":[37528],"InvalidPublicKeyLength":[37442],"LibDiamond":[41626],"LibStaking":[46129],"LibSubnetActor":[47110],"LibValidatorSet":[45246],"MethodNotAllowed":[37526],"NotAllValidatorsHaveLeft":[37454],"NotEnoughBalance":[37462],"NotEnoughCollateral":[37466],"NotEnoughFunds":[37470],"NotOwnerOfPublicKey":[37480],"NotValidator":[37490],"Pausable":[43385],"ReentrancyGuard":[43966],"SubnetActorManagerFacet":[51946],"SubnetActorModifiers":[47288],"SubnetAlreadyBootstrapped":[37514],"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH":[36882],"Validator":[50164],"ValidatorSet":[50143]},"nodeType":"SourceUnit","src":"46:10704:86","nodes":[{"id":51237,"nodeType":"PragmaDirective","src":"46:23:86","nodes":[],"literals":["solidity","0.8",".19"]},{"id":51239,"nodeType":"ImportDirective","src":"71:81:86","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":51238,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"79:37:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51242,"nodeType":"ImportDirective","src":"153:87:86","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":51240,"name":"ERR_VALIDATOR_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37538,"src":"161:20:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51241,"name":"ERR_VALIDATOR_NOT_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37541,"src":"183:24:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51256,"nodeType":"ImportDirective","src":"241:301:86","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":51243,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37528,"src":"249:24:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51244,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37514,"src":"275:25:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51245,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"302:14:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51246,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37390,"src":"318:16:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51247,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"336:17:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51248,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"355:19:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51249,"name":"EmptyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37392,"src":"376:12:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51250,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37462,"src":"390:16:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51251,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37466,"src":"408:19:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51252,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"429:12:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51253,"name":"NotAllValidatorsHaveLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37454,"src":"443:24:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51254,"name":"InvalidPublicKeyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37442,"src":"469:22:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51255,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"493:16:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51258,"nodeType":"ImportDirective","src":"543:52:86","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":51257,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"551:8:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51261,"nodeType":"ImportDirective","src":"596:62:86","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":51259,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"604:9:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51260,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"615:12:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51263,"nodeType":"ImportDirective","src":"659:49:86","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":41627,"symbolAliases":[{"foreign":{"id":51262,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"667:10:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51265,"nodeType":"ImportDirective","src":"709:62:86","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":43967,"symbolAliases":[{"foreign":{"id":51264,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43966,"src":"717:15:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51267,"nodeType":"ImportDirective","src":"772:70:86","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":51266,"name":"SubnetActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47288,"src":"780:20:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51270,"nodeType":"ImportDirective","src":"843:66:86","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":51268,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45246,"src":"851:15:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51269,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"868:10:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51272,"nodeType":"ImportDirective","src":"910:85:86","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":51271,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"918:13:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51274,"nodeType":"ImportDirective","src":"996:65:86","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":51273,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"1004:7:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51276,"nodeType":"ImportDirective","src":"1062:57:86","nodes":[],"absolutePath":"src/lib/LibSubnetActor.sol","file":"../lib/LibSubnetActor.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":47111,"symbolAliases":[{"foreign":{"id":51275,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"1070:14:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51278,"nodeType":"ImportDirective","src":"1120:48:86","nodes":[],"absolutePath":"src/lib/LibPausable.sol","file":"../lib/LibPausable.sol","nameLocation":"-1:-1:-1","scope":51947,"sourceUnit":43386,"symbolAliases":[{"foreign":{"id":51277,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43385,"src":"1128:8:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51946,"nodeType":"ContractDefinition","src":"1170:9579:86","nodes":[{"id":51288,"nodeType":"UsingForDirective","src":"1260:49:86","nodes":[],"global":false,"libraryName":{"id":51285,"name":"EnumerableSet","nameLocations":["1266:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"1266:13:86"},"typeName":{"id":51287,"nodeType":"UserDefinedTypeName","pathNode":{"id":51286,"name":"EnumerableSet.AddressSet","nameLocations":["1284:13:86","1298:10:86"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1284:24:86"},"referencedDeclaration":35528,"src":"1284:24:86","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":51292,"nodeType":"UsingForDirective","src":"1314:39:86","nodes":[],"global":false,"libraryName":{"id":51289,"name":"LibValidatorSet","nameLocations":["1320:15:86"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"1320:15:86"},"typeName":{"id":51291,"nodeType":"UserDefinedTypeName","pathNode":{"id":51290,"name":"ValidatorSet","nameLocations":["1340:12:86"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"1340:12:86"},"referencedDeclaration":50143,"src":"1340:12:86","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":51295,"nodeType":"UsingForDirective","src":"1358:34:86","nodes":[],"global":false,"libraryName":{"id":51293,"name":"Address","nameLocations":["1364:7:86"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"1364:7:86"},"typeName":{"id":51294,"name":"address","nodeType":"ElementaryTypeName","src":"1376:15:86","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":51351,"nodeType":"FunctionDefinition","src":"1618:414:86","nodes":[],"body":{"id":51350,"nodeType":"Block","src":"1654:378:86","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51299,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1668:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1672:5:86","memberName":"value","nodeType":"MemberAccess","src":"1668:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1681:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1668:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51307,"nodeType":"IfStatement","src":"1664:68:86","trueBody":{"id":51306,"nodeType":"Block","src":"1684:48:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51303,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"1705:14:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1705:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51305,"nodeType":"RevertStatement","src":"1698:23:86"}]}},{"condition":{"expression":{"id":51308,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"1746:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1748:12:86","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"1746:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51314,"nodeType":"IfStatement","src":"1742:79:86","trueBody":{"id":51313,"nodeType":"Block","src":"1762:59:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51310,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37514,"src":"1783:25:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1783:27:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51312,"nodeType":"RevertStatement","src":"1776:34:86"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51315,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"1835:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1837:14:86","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47150,"src":"1835:16:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51319,"indexExpression":{"expression":{"id":51317,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1852:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1856:6:86","memberName":"sender","nodeType":"MemberAccess","src":"1852:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1835:28:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1867:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1835:33:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51332,"nodeType":"IfStatement","src":"1831:101:86","trueBody":{"id":51331,"nodeType":"Block","src":"1870:62:86","statements":[{"expression":{"arguments":[{"expression":{"id":51327,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1910:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1914:6:86","memberName":"sender","nodeType":"MemberAccess","src":"1910:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51322,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"1884:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1886:18:86","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47154,"src":"1884:20:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":51326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1905:4:86","memberName":"push","nodeType":"MemberAccess","src":"1884:25:86","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":51329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1884:37:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51330,"nodeType":"ExpressionStatement","src":"1884:37:86"}]}},{"expression":{"id":51341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":51333,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"1942:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1944:14:86","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47150,"src":"1942:16:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51338,"indexExpression":{"expression":{"id":51335,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1959:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1963:6:86","memberName":"sender","nodeType":"MemberAccess","src":"1959:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1942:28:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":51339,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1974:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1978:5:86","memberName":"value","nodeType":"MemberAccess","src":"1974:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1942:41:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51342,"nodeType":"ExpressionStatement","src":"1942:41:86"},{"expression":{"id":51348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"1993:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1995:17:86","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47145,"src":"1993:19:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":51346,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2016:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2020:5:86","memberName":"value","nodeType":"MemberAccess","src":"2016:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1993:32:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51349,"nodeType":"ExpressionStatement","src":"1993:32:86"}]},"documentation":{"id":51296,"nodeType":"StructuredDocumentation","src":"1398:215:86","text":"@notice method to add some initial balance into a subnet that hasn't yet bootstrapped.\n @dev This balance is added to user addresses in genesis, and becomes part of the genesis\n circulating supply."},"functionSelector":"0b7fbe60","implemented":true,"kind":"function","modifiers":[],"name":"preFund","nameLocation":"1627:7:86","parameters":{"id":51297,"nodeType":"ParameterList","parameters":[],"src":"1634:2:86"},"returnParameters":{"id":51298,"nodeType":"ParameterList","parameters":[],"src":"1654:0:86"},"scope":51946,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":51427,"nodeType":"FunctionDefinition","src":"2292:591:86","nodes":[],"body":{"id":51426,"nodeType":"Block","src":"2350:533:86","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51359,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51354,"src":"2364:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2374:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2364:11:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51366,"nodeType":"IfStatement","src":"2360:65:86","trueBody":{"id":51365,"nodeType":"Block","src":"2377:48:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51362,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"2398:14:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51364,"nodeType":"RevertStatement","src":"2391:23:86"}]}},{"condition":{"expression":{"id":51367,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2439:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2441:12:86","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"2439:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51373,"nodeType":"IfStatement","src":"2435:79:86","trueBody":{"id":51372,"nodeType":"Block","src":"2455:59:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51369,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37514,"src":"2476:25:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2476:27:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51371,"nodeType":"RevertStatement","src":"2469:34:86"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51374,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2528:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2530:14:86","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47150,"src":"2528:16:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51378,"indexExpression":{"expression":{"id":51376,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2545:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2549:6:86","memberName":"sender","nodeType":"MemberAccess","src":"2545:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2528:28:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":51379,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51354,"src":"2559:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2528:37:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51385,"nodeType":"IfStatement","src":"2524:93:86","trueBody":{"id":51384,"nodeType":"Block","src":"2567:50:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51381,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37462,"src":"2588:16:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2588:18:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51383,"nodeType":"RevertStatement","src":"2581:25:86"}]}},{"expression":{"id":51393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":51386,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2627:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2629:14:86","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47150,"src":"2627:16:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51391,"indexExpression":{"expression":{"id":51388,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2644:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2648:6:86","memberName":"sender","nodeType":"MemberAccess","src":"2644:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2627:28:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":51392,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51354,"src":"2659:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2627:38:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51394,"nodeType":"ExpressionStatement","src":"2627:38:86"},{"expression":{"id":51399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51395,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2675:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2677:17:86","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47145,"src":"2675:19:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":51398,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51354,"src":"2698:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2675:29:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51400,"nodeType":"ExpressionStatement","src":"2675:29:86"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51401,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2719:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2721:14:86","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47150,"src":"2719:16:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51405,"indexExpression":{"expression":{"id":51403,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2736:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2740:6:86","memberName":"sender","nodeType":"MemberAccess","src":"2736:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2719:28:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2751:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2719:33:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51416,"nodeType":"IfStatement","src":"2715:114:86","trueBody":{"id":51415,"nodeType":"Block","src":"2754:75:86","statements":[{"expression":{"arguments":[{"expression":{"id":51411,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2807:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2811:6:86","memberName":"sender","nodeType":"MemberAccess","src":"2807:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51408,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"2768:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2783:23:86","memberName":"rmAddressFromBalanceKey","nodeType":"MemberAccess","referencedDeclaration":47109,"src":"2768:38:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":51413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2768:50:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51414,"nodeType":"ExpressionStatement","src":"2768:50:86"}]}},{"expression":{"arguments":[{"id":51423,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51354,"src":"2869:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":51419,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2847:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2851:6:86","memberName":"sender","nodeType":"MemberAccess","src":"2847:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2839:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":51417,"name":"address","nodeType":"ElementaryTypeName","src":"2839:8:86","stateMutability":"payable","typeDescriptions":{}}},"id":51421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:19:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":51422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2859:9:86","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"2839:29:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":51424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:37:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51425,"nodeType":"ExpressionStatement","src":"2839:37:86"}]},"documentation":{"id":51352,"nodeType":"StructuredDocumentation","src":"2038:249:86","text":"@notice method to remove funds from the initial balance of a subnet.\n @dev This method can be used by users looking to recover part of their\n initial balance before the subnet bootstraps.\n @param amount The amount to remove."},"functionSelector":"66783c9b","implemented":true,"kind":"function","modifiers":[{"id":51357,"kind":"modifierInvocation","modifierName":{"id":51356,"name":"nonReentrant","nameLocations":["2337:12:86"],"nodeType":"IdentifierPath","referencedDeclaration":43950,"src":"2337:12:86"},"nodeType":"ModifierInvocation","src":"2337:12:86"}],"name":"preRelease","nameLocation":"2301:10:86","parameters":{"id":51355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51354,"mutability":"mutable","name":"amount","nameLocation":"2320:6:86","nodeType":"VariableDeclaration","scope":51427,"src":"2312:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51353,"name":"uint256","nodeType":"ElementaryTypeName","src":"2312:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2311:16:86"},"returnParameters":{"id":51358,"nodeType":"ParameterList","parameters":[],"src":"2350:0:86"},"scope":51946,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51494,"nodeType":"FunctionDefinition","src":"3221:920:86","nodes":[],"body":{"id":51493,"nodeType":"Block","src":"3384:757:86","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51442,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"3394:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":51444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3405:22:86","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41088,"src":"3394:33:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3394:35:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51446,"nodeType":"ExpressionStatement","src":"3394:35:86"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51447,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"3440:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3455:26:86","memberName":"enforceFederatedValidation","nodeType":"MemberAccess","referencedDeclaration":46718,"src":"3440:41:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3440:43:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51451,"nodeType":"ExpressionStatement","src":"3440:43:86"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51452,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51431,"src":"3498:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":51453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3509:6:86","memberName":"length","nodeType":"MemberAccess","src":"3498:17:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51454,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51437,"src":"3519:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":51455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3526:6:86","memberName":"length","nodeType":"MemberAccess","src":"3519:13:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3498:34:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51461,"nodeType":"IfStatement","src":"3494:98:86","trueBody":{"id":51460,"nodeType":"Block","src":"3534:58:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51457,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37528,"src":"3555:24:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3555:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51459,"nodeType":"RevertStatement","src":"3548:33:86"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51462,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51431,"src":"3606:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":51463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3617:6:86","memberName":"length","nodeType":"MemberAccess","src":"3606:17:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51464,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51434,"src":"3627:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":51465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3638:6:86","memberName":"length","nodeType":"MemberAccess","src":"3627:17:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3606:38:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51471,"nodeType":"IfStatement","src":"3602:102:86","trueBody":{"id":51470,"nodeType":"Block","src":"3646:58:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51467,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37528,"src":"3667:24:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3667:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51469,"nodeType":"RevertStatement","src":"3660:33:86"}]}},{"condition":{"expression":{"id":51472,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"3718:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3720:12:86","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"3718:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51491,"nodeType":"Block","src":"3938:197:86","statements":[{"expression":{"arguments":[{"id":51486,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51431,"src":"4027:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":51487,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51434,"src":"4067:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":51488,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51437,"src":"4103:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"expression":{"id":51483,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"3952:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3967:29:86","memberName":"preBootstrapSetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":46985,"src":"3952:44:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$","typeString":"function (address[] calldata,bytes calldata[] calldata,uint256[] calldata)"}},"id":51489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4015:10:86","4055:10:86","4095:6:86"],"names":["validators","publicKeys","powers"],"nodeType":"FunctionCall","src":"3952:172:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51490,"nodeType":"ExpressionStatement","src":"3952:172:86"}]},"id":51492,"nodeType":"IfStatement","src":"3714:421:86","trueBody":{"id":51482,"nodeType":"Block","src":"3734:198:86","statements":[{"expression":{"arguments":[{"id":51477,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51431,"src":"3824:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":51478,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51434,"src":"3864:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":51479,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51437,"src":"3900:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"expression":{"id":51474,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"3748:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3763:30:86","memberName":"postBootstrapSetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":47048,"src":"3748:45:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$","typeString":"function (address[] calldata,bytes calldata[] calldata,uint256[] calldata)"}},"id":51480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3812:10:86","3852:10:86","3892:6:86"],"names":["validators","publicKeys","powers"],"nodeType":"FunctionCall","src":"3748:173:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51481,"nodeType":"ExpressionStatement","src":"3748:173:86"}]}}]},"documentation":{"id":51428,"nodeType":"StructuredDocumentation","src":"2889:327:86","text":"@notice Sets the federated power of validators.\n @dev method that allows the contract owner to set the validators' federated power.\n @param validators The addresses of validators.\n @param publicKeys The public keys of validators.\n @param powers The federated powers to be assigned to validators."},"functionSelector":"da5d09ee","implemented":true,"kind":"function","modifiers":[{"id":51440,"kind":"modifierInvocation","modifierName":{"id":51439,"name":"notKilled","nameLocations":["3374:9:86"],"nodeType":"IdentifierPath","referencedDeclaration":47287,"src":"3374:9:86"},"nodeType":"ModifierInvocation","src":"3374:9:86"}],"name":"setFederatedPower","nameLocation":"3230:17:86","parameters":{"id":51438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51431,"mutability":"mutable","name":"validators","nameLocation":"3276:10:86","nodeType":"VariableDeclaration","scope":51494,"src":"3257:29:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51429,"name":"address","nodeType":"ElementaryTypeName","src":"3257:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51430,"nodeType":"ArrayTypeName","src":"3257:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":51434,"mutability":"mutable","name":"publicKeys","nameLocation":"3313:10:86","nodeType":"VariableDeclaration","scope":51494,"src":"3296:27:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":51432,"name":"bytes","nodeType":"ElementaryTypeName","src":"3296:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":51433,"nodeType":"ArrayTypeName","src":"3296:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":51437,"mutability":"mutable","name":"powers","nameLocation":"3352:6:86","nodeType":"VariableDeclaration","scope":51494,"src":"3333:25:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":51435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3333:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51436,"nodeType":"ArrayTypeName","src":"3333:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3247:117:86"},"returnParameters":{"id":51441,"nodeType":"ParameterList","parameters":[],"src":"3384:0:86"},"scope":51946,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51606,"nodeType":"FunctionDefinition","src":"4530:1714:86","nodes":[],"body":{"id":51605,"nodeType":"Block","src":"4624:1620:86","nodes":[],"statements":[{"condition":{"expression":{"id":51506,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"4852:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4854:12:86","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"4852:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51514,"nodeType":"IfStatement","src":"4848:89:86","trueBody":{"id":51513,"nodeType":"Block","src":"4868:69:86","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51508,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"4882:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4897:27:86","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46693,"src":"4882:42:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4882:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51512,"nodeType":"ExpressionStatement","src":"4882:44:86"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51515,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4950:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4954:5:86","memberName":"value","nodeType":"MemberAccess","src":"4950:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4963:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4950:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51523,"nodeType":"IfStatement","src":"4946:70:86","trueBody":{"id":51522,"nodeType":"Block","src":"4966:50:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51519,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37390,"src":"4987:16:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4987:18:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51521,"nodeType":"RevertStatement","src":"4980:25:86"}]}},{"condition":{"arguments":[{"expression":{"id":51526,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5053:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5057:6:86","memberName":"sender","nodeType":"MemberAccess","src":"5053:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51524,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"5030:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5041:11:86","memberName":"isValidator","nodeType":"MemberAccess","referencedDeclaration":45362,"src":"5030:22:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":51528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5030:34:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51534,"nodeType":"IfStatement","src":"5026:110:86","trueBody":{"id":51533,"nodeType":"Block","src":"5066:70:86","statements":[{"errorCall":{"arguments":[{"id":51530,"name":"ERR_VALIDATOR_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37538,"src":"5104:20:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":51529,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"5087:16:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5087:38:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51532,"nodeType":"RevertStatement","src":"5080:45:86"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51535,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51497,"src":"5150:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":51536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5160:6:86","memberName":"length","nodeType":"MemberAccess","src":"5150:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51537,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"5170:37:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5150:57:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51543,"nodeType":"IfStatement","src":"5146:232:86","trueBody":{"id":51542,"nodeType":"Block","src":"5209:169:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51539,"name":"InvalidPublicKeyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37442,"src":"5343:22:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5343:24:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51541,"nodeType":"RevertStatement","src":"5336:31:86"}]}},{"assignments":[51545],"declarations":[{"constant":false,"id":51545,"mutability":"mutable","name":"convertedAddress","nameLocation":"5396:16:86","nodeType":"VariableDeclaration","scope":51605,"src":"5388:24:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51544,"name":"address","nodeType":"ElementaryTypeName","src":"5388:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51550,"initialValue":{"arguments":[{"id":51548,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51497,"src":"5449:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51546,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"5415:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5430:18:86","memberName":"publicKeyToAddress","nodeType":"MemberAccess","referencedDeclaration":46844,"src":"5415:33:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":51549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5415:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5388:71:86"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51551,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51545,"src":"5473:16:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51552,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5493:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5497:6:86","memberName":"sender","nodeType":"MemberAccess","src":"5493:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5473:30:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51559,"nodeType":"IfStatement","src":"5469:89:86","trueBody":{"id":51558,"nodeType":"Block","src":"5505:53:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51555,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"5526:19:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5526:21:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51557,"nodeType":"RevertStatement","src":"5519:28:86"}]}},{"condition":{"id":51562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5572:15:86","subExpression":{"expression":{"id":51560,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"5573:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5575:12:86","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"5573:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51603,"nodeType":"Block","src":"6018:220:86","statements":[{"expression":{"arguments":[{"expression":{"id":51589,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6150:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6154:6:86","memberName":"sender","nodeType":"MemberAccess","src":"6150:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51591,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51497,"src":"6162:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51586,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"6118:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6129:20:86","memberName":"setValidatorMetadata","nodeType":"MemberAccess","referencedDeclaration":45744,"src":"6118:31:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":51592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6118:54:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51593,"nodeType":"ExpressionStatement","src":"6118:54:86"},{"expression":{"arguments":[{"expression":{"id":51597,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6205:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6209:6:86","memberName":"sender","nodeType":"MemberAccess","src":"6205:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51599,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6217:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6221:5:86","memberName":"value","nodeType":"MemberAccess","src":"6217:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51594,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"6186:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6197:7:86","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":45778,"src":"6186:18:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:41:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51602,"nodeType":"ExpressionStatement","src":"6186:41:86"}]},"id":51604,"nodeType":"IfStatement","src":"5568:670:86","trueBody":{"id":51585,"nodeType":"Block","src":"5589:423:86","statements":[{"expression":{"arguments":[{"expression":{"id":51566,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5858:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5862:6:86","memberName":"sender","nodeType":"MemberAccess","src":"5858:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51568,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51497,"src":"5870:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51563,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"5824:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5835:22:86","memberName":"setMetadataWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45540,"src":"5824:33:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":51569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5824:56:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51570,"nodeType":"ExpressionStatement","src":"5824:56:86"},{"expression":{"arguments":[{"expression":{"id":51574,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5924:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5928:6:86","memberName":"sender","nodeType":"MemberAccess","src":"5924:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51576,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5936:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5940:5:86","memberName":"value","nodeType":"MemberAccess","src":"5936:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51571,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"5894:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5905:18:86","memberName":"depositWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45649,"src":"5894:29:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5894:52:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51579,"nodeType":"ExpressionStatement","src":"5894:52:86"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51580,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"5961:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5976:23:86","memberName":"bootstrapSubnetIfNeeded","nodeType":"MemberAccess","referencedDeclaration":46775,"src":"5961:38:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":51583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5961:40:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51584,"nodeType":"ExpressionStatement","src":"5961:40:86"}]}}]},"documentation":{"id":51495,"nodeType":"StructuredDocumentation","src":"4147:378:86","text":"@notice method that allows a validator to join the subnet.\n If the total confirmed collateral of the subnet is greater\n or equal to minimum activation collateral as a result of this operation,\n then subnet will be registered.\n @param publicKey The off-chain 65 byte public key that should be associated with the validator"},"functionSelector":"6170b162","implemented":true,"kind":"function","modifiers":[{"id":51500,"kind":"modifierInvocation","modifierName":{"id":51499,"name":"nonReentrant","nameLocations":["4587:12:86"],"nodeType":"IdentifierPath","referencedDeclaration":43950,"src":"4587:12:86"},"nodeType":"ModifierInvocation","src":"4587:12:86"},{"id":51502,"kind":"modifierInvocation","modifierName":{"id":51501,"name":"whenNotPaused","nameLocations":["4600:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":43270,"src":"4600:13:86"},"nodeType":"ModifierInvocation","src":"4600:13:86"},{"id":51504,"kind":"modifierInvocation","modifierName":{"id":51503,"name":"notKilled","nameLocations":["4614:9:86"],"nodeType":"IdentifierPath","referencedDeclaration":47287,"src":"4614:9:86"},"nodeType":"ModifierInvocation","src":"4614:9:86"}],"name":"join","nameLocation":"4539:4:86","parameters":{"id":51498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51497,"mutability":"mutable","name":"publicKey","nameLocation":"4559:9:86","nodeType":"VariableDeclaration","scope":51606,"src":"4544:24:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51496,"name":"bytes","nodeType":"ElementaryTypeName","src":"4544:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4543:26:86"},"returnParameters":{"id":51505,"nodeType":"ParameterList","parameters":[],"src":"4624:0:86"},"scope":51946,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":51670,"nodeType":"FunctionDefinition","src":"6533:696:86","nodes":[],"body":{"id":51669,"nodeType":"Block","src":"6591:638:86","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51614,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"6739:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6754:27:86","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46693,"src":"6739:42:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6739:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51618,"nodeType":"ExpressionStatement","src":"6739:44:86"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51619,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6797:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6801:5:86","memberName":"value","nodeType":"MemberAccess","src":"6797:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6810:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6797:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51627,"nodeType":"IfStatement","src":"6793:70:86","trueBody":{"id":51626,"nodeType":"Block","src":"6813:50:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51623,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37390,"src":"6834:16:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6834:18:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51625,"nodeType":"RevertStatement","src":"6827:25:86"}]}},{"condition":{"id":51633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6877:35:86","subExpression":{"arguments":[{"expression":{"id":51630,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6901:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6905:6:86","memberName":"sender","nodeType":"MemberAccess","src":"6901:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51628,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"6878:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6889:11:86","memberName":"isValidator","nodeType":"MemberAccess","referencedDeclaration":45362,"src":"6878:22:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":51632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6878:34:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51639,"nodeType":"IfStatement","src":"6873:115:86","trueBody":{"id":51638,"nodeType":"Block","src":"6914:74:86","statements":[{"errorCall":{"arguments":[{"id":51635,"name":"ERR_VALIDATOR_NOT_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37541,"src":"6952:24:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":51634,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"6935:16:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6935:42:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51637,"nodeType":"RevertStatement","src":"6928:49:86"}]}},{"condition":{"id":51642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7002:15:86","subExpression":{"expression":{"id":51640,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"7003:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7005:12:86","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"7003:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51667,"nodeType":"Block","src":"7157:66:86","statements":[{"expression":{"arguments":[{"expression":{"id":51661,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7190:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7194:6:86","memberName":"sender","nodeType":"MemberAccess","src":"7190:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51663,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7202:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7206:5:86","memberName":"value","nodeType":"MemberAccess","src":"7202:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51658,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"7171:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7182:7:86","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":45778,"src":"7171:18:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7171:41:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51666,"nodeType":"ExpressionStatement","src":"7171:41:86"}]},"id":51668,"nodeType":"IfStatement","src":"6998:225:86","trueBody":{"id":51657,"nodeType":"Block","src":"7019:132:86","statements":[{"expression":{"arguments":[{"expression":{"id":51646,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7063:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7067:6:86","memberName":"sender","nodeType":"MemberAccess","src":"7063:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51648,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7075:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7079:5:86","memberName":"value","nodeType":"MemberAccess","src":"7075:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51643,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"7033:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7044:18:86","memberName":"depositWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45649,"src":"7033:29:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7033:52:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51651,"nodeType":"ExpressionStatement","src":"7033:52:86"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51652,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"7100:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7115:23:86","memberName":"bootstrapSubnetIfNeeded","nodeType":"MemberAccess","referencedDeclaration":46775,"src":"7100:38:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":51655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7100:40:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51656,"nodeType":"ExpressionStatement","src":"7100:40:86"}]}}]},"documentation":{"id":51607,"nodeType":"StructuredDocumentation","src":"6250:278:86","text":"@notice method that allows a validator to increase its stake.\n If the total confirmed collateral of the subnet is greater\n or equal to minimum activation collateral as a result of this operation,\n then subnet will be registered."},"functionSelector":"3a4b66f1","implemented":true,"kind":"function","modifiers":[{"id":51610,"kind":"modifierInvocation","modifierName":{"id":51609,"name":"whenNotPaused","nameLocations":["6567:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":43270,"src":"6567:13:86"},"nodeType":"ModifierInvocation","src":"6567:13:86"},{"id":51612,"kind":"modifierInvocation","modifierName":{"id":51611,"name":"notKilled","nameLocations":["6581:9:86"],"nodeType":"IdentifierPath","referencedDeclaration":47287,"src":"6581:9:86"},"nodeType":"ModifierInvocation","src":"6581:9:86"}],"name":"stake","nameLocation":"6542:5:86","parameters":{"id":51608,"nodeType":"ParameterList","parameters":[],"src":"6547:2:86"},"returnParameters":{"id":51613,"nodeType":"ParameterList","parameters":[],"src":"6591:0:86"},"scope":51946,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":51742,"nodeType":"FunctionDefinition","src":"7441:782:86","nodes":[],"body":{"id":51741,"nodeType":"Block","src":"7507:716:86","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51680,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"7665:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7680:27:86","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46693,"src":"7665:42:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7665:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51684,"nodeType":"ExpressionStatement","src":"7665:44:86"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51685,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51673,"src":"7724:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7734:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7724:11:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51692,"nodeType":"IfStatement","src":"7720:68:86","trueBody":{"id":51691,"nodeType":"Block","src":"7737:51:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51688,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"7758:17:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7758:19:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51690,"nodeType":"RevertStatement","src":"7751:26:86"}]}},{"assignments":[51694],"declarations":[{"constant":false,"id":51694,"mutability":"mutable","name":"collateral","nameLocation":"7806:10:86","nodeType":"VariableDeclaration","scope":51741,"src":"7798:18:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51693,"name":"uint256","nodeType":"ElementaryTypeName","src":"7798:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51700,"initialValue":{"arguments":[{"expression":{"id":51697,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7855:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7859:6:86","memberName":"sender","nodeType":"MemberAccess","src":"7855:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51695,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"7819:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7830:24:86","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":45490,"src":"7819:35:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":51699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7819:47:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7798:68:86"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51701,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51694,"src":"7881:10:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7895:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7881:15:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51710,"nodeType":"IfStatement","src":"7877:77:86","trueBody":{"id":51709,"nodeType":"Block","src":"7898:56:86","statements":[{"errorCall":{"arguments":[{"expression":{"id":51705,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7932:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7936:6:86","memberName":"sender","nodeType":"MemberAccess","src":"7932:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51704,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7919:12:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":51707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7919:24:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51708,"nodeType":"RevertStatement","src":"7912:31:86"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51711,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51694,"src":"7967:10:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":51712,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51673,"src":"7981:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7967:20:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51718,"nodeType":"IfStatement","src":"7963:79:86","trueBody":{"id":51717,"nodeType":"Block","src":"7989:53:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51714,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37466,"src":"8010:19:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8010:21:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51716,"nodeType":"RevertStatement","src":"8003:28:86"}]}},{"condition":{"id":51721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8055:15:86","subExpression":{"expression":{"id":51719,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"8056:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8058:12:86","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"8056:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51732,"nodeType":"IfStatement","src":"8051:116:86","trueBody":{"id":51731,"nodeType":"Block","src":"8072:95:86","statements":[{"expression":{"arguments":[{"expression":{"id":51725,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8117:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8121:6:86","memberName":"sender","nodeType":"MemberAccess","src":"8117:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51727,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51673,"src":"8129:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51722,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"8086:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8097:19:86","memberName":"withdrawWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45691,"src":"8086:30:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8086:50:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51729,"nodeType":"ExpressionStatement","src":"8086:50:86"},{"functionReturnParameters":51679,"id":51730,"nodeType":"Return","src":"8150:7:86"}]}},{"expression":{"arguments":[{"expression":{"id":51736,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8197:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8201:6:86","memberName":"sender","nodeType":"MemberAccess","src":"8197:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51738,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51673,"src":"8209:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51733,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"8177:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8188:8:86","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":45812,"src":"8177:19:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8177:39:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51740,"nodeType":"ExpressionStatement","src":"8177:39:86"}]},"documentation":{"id":51671,"nodeType":"StructuredDocumentation","src":"7235:201:86","text":"@notice method that allows a validator to unstake a part of its collateral from a subnet.\n @dev `leave` must be used to unstake the entire stake.\n @param amount The amount to unstake."},"functionSelector":"2e17de78","implemented":true,"kind":"function","modifiers":[{"id":51676,"kind":"modifierInvocation","modifierName":{"id":51675,"name":"whenNotPaused","nameLocations":["7483:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":43270,"src":"7483:13:86"},"nodeType":"ModifierInvocation","src":"7483:13:86"},{"id":51678,"kind":"modifierInvocation","modifierName":{"id":51677,"name":"notKilled","nameLocations":["7497:9:86"],"nodeType":"IdentifierPath","referencedDeclaration":47287,"src":"7497:9:86"},"nodeType":"ModifierInvocation","src":"7497:9:86"}],"name":"unstake","nameLocation":"7450:7:86","parameters":{"id":51674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51673,"mutability":"mutable","name":"amount","nameLocation":"7466:6:86","nodeType":"VariableDeclaration","scope":51742,"src":"7458:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51672,"name":"uint256","nodeType":"ElementaryTypeName","src":"7458:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7457:16:86"},"returnParameters":{"id":51679,"nodeType":"ParameterList","parameters":[],"src":"7507:0:86"},"scope":51946,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51862,"nodeType":"FunctionDefinition","src":"8297:1550:86","nodes":[],"body":{"id":51861,"nodeType":"Block","src":"8360:1487:86","nodes":[],"statements":[{"condition":{"expression":{"id":51752,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"8698:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8700:12:86","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"8698:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51760,"nodeType":"IfStatement","src":"8694:89:86","trueBody":{"id":51759,"nodeType":"Block","src":"8714:69:86","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51754,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"8728:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8743:27:86","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46693,"src":"8728:42:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8728:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51758,"nodeType":"ExpressionStatement","src":"8728:44:86"}]}},{"assignments":[51762],"declarations":[{"constant":false,"id":51762,"mutability":"mutable","name":"amount","nameLocation":"8859:6:86","nodeType":"VariableDeclaration","scope":51861,"src":"8851:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51761,"name":"uint256","nodeType":"ElementaryTypeName","src":"8851:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51768,"initialValue":{"arguments":[{"expression":{"id":51765,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8904:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8908:6:86","memberName":"sender","nodeType":"MemberAccess","src":"8904:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51763,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"8868:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8879:24:86","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":45490,"src":"8868:35:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":51767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8868:47:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8851:64:86"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51769,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51762,"src":"8929:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8939:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8929:11:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51778,"nodeType":"IfStatement","src":"8925:73:86","trueBody":{"id":51777,"nodeType":"Block","src":"8942:56:86","statements":[{"errorCall":{"arguments":[{"expression":{"id":51773,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8976:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8980:6:86","memberName":"sender","nodeType":"MemberAccess","src":"8976:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51772,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"8963:12:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":51775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8963:24:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51776,"nodeType":"RevertStatement","src":"8956:31:86"}]}},{"expression":{"arguments":[{"expression":{"id":51784,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9084:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9088:6:86","memberName":"sender","nodeType":"MemberAccess","src":"9084:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51779,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"9059:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9061:15:86","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47229,"src":"9059:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9077:6:86","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35582,"src":"9059:24:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9059:36:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51787,"nodeType":"ExpressionStatement","src":"9059:36:86"},{"expression":{"id":51793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9105:35:86","subExpression":{"baseExpression":{"expression":{"id":51788,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"9112:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9114:14:86","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":47225,"src":"9112:16:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":51792,"indexExpression":{"expression":{"id":51790,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9129:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9133:6:86","memberName":"sender","nodeType":"MemberAccess","src":"9129:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9112:28:86","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51794,"nodeType":"ExpressionStatement","src":"9105:35:86"},{"condition":{"id":51797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9155:15:86","subExpression":{"expression":{"id":51795,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"9156:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9158:12:86","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47198,"src":"9156:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51852,"nodeType":"IfStatement","src":"9151:641:86","trueBody":{"id":51851,"nodeType":"Block","src":"9172:620:86","statements":[{"assignments":[51799],"declarations":[{"constant":false,"id":51799,"mutability":"mutable","name":"genesisBalance","nameLocation":"9291:14:86","nodeType":"VariableDeclaration","scope":51851,"src":"9283:22:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51798,"name":"uint256","nodeType":"ElementaryTypeName","src":"9283:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51805,"initialValue":{"baseExpression":{"expression":{"id":51800,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"9308:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9310:14:86","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47150,"src":"9308:16:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51804,"indexExpression":{"expression":{"id":51802,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9325:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9329:6:86","memberName":"sender","nodeType":"MemberAccess","src":"9325:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9308:28:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9283:53:86"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51806,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51799,"src":"9354:14:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":51807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9372:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9354:19:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51841,"nodeType":"IfStatement","src":"9350:277:86","trueBody":{"id":51840,"nodeType":"Block","src":"9375:252:86","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51809,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"9393:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9395:14:86","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47150,"src":"9393:16:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51814,"indexExpression":{"expression":{"id":51811,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9410:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9414:6:86","memberName":"sender","nodeType":"MemberAccess","src":"9410:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9393:28:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9425:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9393:33:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51817,"nodeType":"ExpressionStatement","src":"9393:33:86"},{"expression":{"id":51822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51818,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"9444:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9446:17:86","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47145,"src":"9444:19:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":51821,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51799,"src":"9467:14:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9444:37:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51823,"nodeType":"ExpressionStatement","src":"9444:37:86"},{"expression":{"arguments":[{"expression":{"id":51827,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9538:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9542:6:86","memberName":"sender","nodeType":"MemberAccess","src":"9538:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51824,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"9499:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":51826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9514:23:86","memberName":"rmAddressFromBalanceKey","nodeType":"MemberAccess","referencedDeclaration":47109,"src":"9499:38:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":51829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9499:50:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51830,"nodeType":"ExpressionStatement","src":"9499:50:86"},{"expression":{"arguments":[{"id":51837,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51799,"src":"9597:14:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":51833,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9575:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9579:6:86","memberName":"sender","nodeType":"MemberAccess","src":"9575:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9567:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":51831,"name":"address","nodeType":"ElementaryTypeName","src":"9567:8:86","stateMutability":"payable","typeDescriptions":{}}},"id":51835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9567:19:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":51836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9587:9:86","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"9567:29:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":51838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9567:45:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51839,"nodeType":"ExpressionStatement","src":"9567:45:86"}]}},{"expression":{"arguments":[{"expression":{"id":51845,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9742:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9746:6:86","memberName":"sender","nodeType":"MemberAccess","src":"9742:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51847,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51762,"src":"9754:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51842,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"9711:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9722:19:86","memberName":"withdrawWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45691,"src":"9711:30:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9711:50:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51849,"nodeType":"ExpressionStatement","src":"9711:50:86"},{"functionReturnParameters":51751,"id":51850,"nodeType":"Return","src":"9775:7:86"}]}},{"expression":{"arguments":[{"expression":{"id":51856,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9821:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9825:6:86","memberName":"sender","nodeType":"MemberAccess","src":"9821:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51858,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51762,"src":"9833:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51853,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"9801:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9812:8:86","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":45812,"src":"9801:19:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9801:39:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51860,"nodeType":"ExpressionStatement","src":"9801:39:86"}]},"documentation":{"id":51743,"nodeType":"StructuredDocumentation","src":"8229:63:86","text":"@notice method that allows a validator to leave the subnet."},"functionSelector":"d66d9e19","implemented":true,"kind":"function","modifiers":[{"id":51746,"kind":"modifierInvocation","modifierName":{"id":51745,"name":"nonReentrant","nameLocations":["8323:12:86"],"nodeType":"IdentifierPath","referencedDeclaration":43950,"src":"8323:12:86"},"nodeType":"ModifierInvocation","src":"8323:12:86"},{"id":51748,"kind":"modifierInvocation","modifierName":{"id":51747,"name":"whenNotPaused","nameLocations":["8336:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":43270,"src":"8336:13:86"},"nodeType":"ModifierInvocation","src":"8336:13:86"},{"id":51750,"kind":"modifierInvocation","modifierName":{"id":51749,"name":"notKilled","nameLocations":["8350:9:86"],"nodeType":"IdentifierPath","referencedDeclaration":47287,"src":"8350:9:86"},"nodeType":"ModifierInvocation","src":"8350:9:86"}],"name":"leave","nameLocation":"8306:5:86","parameters":{"id":51744,"nodeType":"ParameterList","parameters":[],"src":"8311:2:86"},"returnParameters":{"id":51751,"nodeType":"ParameterList","parameters":[],"src":"8360:0:86"},"scope":51946,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51892,"nodeType":"FunctionDefinition","src":"9980:217:86","nodes":[],"body":{"id":51891,"nodeType":"Block","src":"10015:182:86","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":51872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51868,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"10029:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":51869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10040:15:86","memberName":"totalValidators","nodeType":"MemberAccess","referencedDeclaration":45431,"src":"10029:26:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":51870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10029:28:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":51871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10061:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10029:33:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51877,"nodeType":"IfStatement","src":"10025:97:86","trueBody":{"id":51876,"nodeType":"Block","src":"10064:58:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51873,"name":"NotAllValidatorsHaveLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37454,"src":"10085:24:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10085:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51875,"nodeType":"RevertStatement","src":"10078:33:86"}]}},{"expression":{"id":51882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51878,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"10132:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10134:6:86","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"10132:8:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":51881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10143:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10132:15:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51883,"nodeType":"ExpressionStatement","src":"10132:15:86"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":51885,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"10166:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10168:14:86","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47181,"src":"10166:16:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51884,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"10157:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":51887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10157:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":51888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10184:4:86","memberName":"kill","nodeType":"MemberAccess","referencedDeclaration":40279,"src":"10157:31:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":51889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10157:33:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51890,"nodeType":"ExpressionStatement","src":"10157:33:86"}]},"documentation":{"id":51863,"nodeType":"StructuredDocumentation","src":"9853:122:86","text":"@notice method that allows to kill the subnet when all validators left.\n @dev It is not a privileged operation."},"functionSelector":"41c0e1b5","implemented":true,"kind":"function","modifiers":[{"id":51866,"kind":"modifierInvocation","modifierName":{"id":51865,"name":"notKilled","nameLocations":["10005:9:86"],"nodeType":"IdentifierPath","referencedDeclaration":47287,"src":"10005:9:86"},"nodeType":"ModifierInvocation","src":"10005:9:86"}],"name":"kill","nameLocation":"9989:4:86","parameters":{"id":51864,"nodeType":"ParameterList","parameters":[],"src":"9993:2:86"},"returnParameters":{"id":51867,"nodeType":"ParameterList","parameters":[],"src":"10015:0:86"},"scope":51946,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51945,"nodeType":"FunctionDefinition","src":"10314:433:86","nodes":[],"body":{"id":51944,"nodeType":"Block","src":"10389:358:86","nodes":[],"statements":[{"condition":{"id":51906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10403:45:86","subExpression":{"arguments":[{"expression":{"id":51903,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10437:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10441:6:86","memberName":"sender","nodeType":"MemberAccess","src":"10437:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51900,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"10404:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10406:12:86","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47205,"src":"10404:14:86","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":51902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10419:17:86","memberName":"isActiveValidator","nodeType":"MemberAccess","referencedDeclaration":44625,"src":"10404:32:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":51905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10404:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51913,"nodeType":"IfStatement","src":"10399:107:86","trueBody":{"id":51912,"nodeType":"Block","src":"10450:56:86","statements":[{"errorCall":{"arguments":[{"expression":{"id":51908,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10484:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10488:6:86","memberName":"sender","nodeType":"MemberAccess","src":"10484:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51907,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"10471:12:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":51910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10471:24:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51911,"nodeType":"RevertStatement","src":"10464:31:86"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":51916,"name":"netAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51895,"src":"10525:10:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":51915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10519:5:86","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":51914,"name":"bytes","nodeType":"ElementaryTypeName","src":"10519:5:86","typeDescriptions":{}}},"id":51917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10519:17:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":51918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10537:6:86","memberName":"length","nodeType":"MemberAccess","src":"10519:24:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10547:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10519:29:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51925,"nodeType":"IfStatement","src":"10515:81:86","trueBody":{"id":51924,"nodeType":"Block","src":"10550:46:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51921,"name":"EmptyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37392,"src":"10571:12:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10571:14:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51923,"nodeType":"RevertStatement","src":"10564:21:86"}]}},{"expression":{"id":51933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":51926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"10605:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10607:14:86","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":47225,"src":"10605:16:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":51931,"indexExpression":{"expression":{"id":51928,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10622:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10626:6:86","memberName":"sender","nodeType":"MemberAccess","src":"10622:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10605:28:86","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51932,"name":"netAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51895,"src":"10636:10:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"10605:41:86","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":51934,"nodeType":"ExpressionStatement","src":"10605:41:86"},{"expression":{"arguments":[{"expression":{"id":51940,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10729:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10733:6:86","memberName":"sender","nodeType":"MemberAccess","src":"10729:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51935,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"10707:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10709:15:86","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47229,"src":"10707:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10725:3:86","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"10707:21:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10707:33:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51943,"nodeType":"ExpressionStatement","src":"10707:33:86"}]},"documentation":{"id":51893,"nodeType":"StructuredDocumentation","src":"10203:106:86","text":"@notice Add a bootstrap node.\n @param netAddress The network address of the new bootstrap node."},"functionSelector":"10fd4261","implemented":true,"kind":"function","modifiers":[{"id":51898,"kind":"modifierInvocation","modifierName":{"id":51897,"name":"whenNotPaused","nameLocations":["10375:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":43270,"src":"10375:13:86"},"nodeType":"ModifierInvocation","src":"10375:13:86"}],"name":"addBootstrapNode","nameLocation":"10323:16:86","parameters":{"id":51896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51895,"mutability":"mutable","name":"netAddress","nameLocation":"10354:10:86","nodeType":"VariableDeclaration","scope":51945,"src":"10340:24:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51894,"name":"string","nodeType":"ElementaryTypeName","src":"10340:6:86","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10339:26:86"},"returnParameters":{"id":51899,"nodeType":"ParameterList","parameters":[],"src":"10389:0:86"},"scope":51946,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51279,"name":"SubnetActorModifiers","nameLocations":["1206:20:86"],"nodeType":"IdentifierPath","referencedDeclaration":47288,"src":"1206:20:86"},"id":51280,"nodeType":"InheritanceSpecifier","src":"1206:20:86"},{"baseName":{"id":51281,"name":"ReentrancyGuard","nameLocations":["1228:15:86"],"nodeType":"IdentifierPath","referencedDeclaration":43966,"src":"1228:15:86"},"id":51282,"nodeType":"InheritanceSpecifier","src":"1228:15:86"},{"baseName":{"id":51283,"name":"Pausable","nameLocations":["1245:8:86"],"nodeType":"IdentifierPath","referencedDeclaration":43385,"src":"1245:8:86"},"id":51284,"nodeType":"InheritanceSpecifier","src":"1245:8:86"}],"canonicalName":"SubnetActorManagerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51946,43385,43966,47288],"name":"SubnetActorManagerFacet","nameLocation":"1179:23:86","scope":51947,"usedErrors":[32461,32469,37368,37374,37390,37392,37442,37454,37462,37466,37470,37480,37490,37494,37496,37504,37510,37514,37526,37528,37530,37532,40919,43259,43262,43914]}],"license":"MIT OR Apache-2.0"},"id":86} \ No newline at end of file diff --git a/.out/SubnetActorManagerFacetMock.sol/SubnetActorManagerFacetMock.json b/.out/SubnetActorManagerFacetMock.sol/SubnetActorManagerFacetMock.json deleted file mode 100644 index 42da791b9..000000000 --- a/.out/SubnetActorManagerFacetMock.sol/SubnetActorManagerFacetMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"addBootstrapNode","inputs":[{"name":"netAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"confirmChange","inputs":[{"name":"_configurationNumber","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"confirmNextChange","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"reward","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"publicKey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFederatedPower","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"publicKeys","type":"bytes[]","internalType":"bytes[]"},{"name":"powers","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateActiveQuorumSignatures","inputs":[{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"BottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BottomUpCheckpointSubmitted","inputs":[{"name":"checkpoint","type":"tuple","indexed":false,"internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NextBottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"CollateralIsZero","inputs":[]},{"type":"error","name":"DuplicatedGenesisValidator","inputs":[]},{"type":"error","name":"EmptyAddress","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidFederationPayload","inputs":[]},{"type":"error","name":"InvalidPublicKeyLength","inputs":[]},{"type":"error","name":"InvalidSignatureErr","inputs":[{"name":"","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NoCollateralToWithdraw","inputs":[]},{"type":"error","name":"NotAllValidatorsHaveLeft","inputs":[]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughCollateral","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughGenesisValidators","inputs":[]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"NotOwnerOfPublicKey","inputs":[]},{"type":"error","name":"NotValidator","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SubnetAlreadyBootstrapped","inputs":[]},{"type":"error","name":"SubnetAlreadyKilled","inputs":[]},{"type":"error","name":"WithdrawExceedingCollateral","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657615076908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611b175750806310fd4261146119a0578063268119361461178d5780632e17de7814611760578063350a14bf1461172d5780633a4b66f1146116515780633f4ba83a146115d957806341c0e1b5146115485780634c860af6146114f45780634e71d92d146113605780635c975abb146113305780636170b16214610f8057806366783c9b14610e9f5780638456cb5914610e37578063b9ee2bb914610a38578063c7ebdaef146109f2578063cc2dc2b914610972578063d66d9e1914610927578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b85760008051602061502183398151915260018154146101a657806001839255610133611e23565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611bf9565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610923576101ec903690600401611c9a565b906024356001600160401b03811161091f5761020c903690600401611c9a565b916044356001600160401b03811161091b5761022c903690600401611c9a565b909461023661407b565b61023e611dde565b60ff601354166003811015610907576001036108d7578181036108c5578481036108c55760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888613ed6565b9061403f565b6001600160a01b036102b26102ad848689613f17565b611fda565b166001600160a01b03909116036105135761031c6102d46102ad838588613f17565b6102df838989613ed6565b6102ed85888d969496613f17565b35610308604051958693604060208601526060850191613ac7565b90604083015203601f198101845283611c27565b6001600160401b03601c541660405161033481611c0c565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612160565b61037081612160565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612180565b60018601612273565b602090601f8311600114610476579282600080516020614fe183398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612398565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613eb1565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614fe18339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9490929391865b868110610697575050505050506001600160401b03600c541610156106855761010061ff0019601254161760125560405190602091828101838252600154809152604082019060408160051b8401019460016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6926000905b838210610639575050505050807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959392930390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af1801561062e5761061e57505080f35b61062790611bf9565b6101b85780f35b6040513d84823e3d90fd5b90919293968360036106766060600194603f198b82030187528c5481528c86808060a01b0391015416858201528160408201520160028c016121ba565b990192019201909392916105a7565b60405163031480b160e51b8152600490fd5b6106a5610291828689613ed6565b6001600160a01b039081806106be6102ad868d89613f17565b16911603610513576106dc6106d76102ad848b87613f17565b613133565b6108b3576107026106f16102ad848b87613f17565b6106fc84888b613ed6565b91613f62565b6107256107136102ad848b87613f17565b61071e848988613f17565b3590612889565b6107336102ad838a86613f17565b9061073f838887613f17565b359161076e61074f85898c613ed6565b6040519561075c87611c0c565b86528460208701941684523691611c63565b9160408401928352600154600160401b8110156104fd578060016107959201600155613f27565b94909461089d57518455600184019151166001600160601b0360a01b825416179055518051906001600160401b0382116104fd576107e3826107da6002860154612180565b60028601612273565b602090601f8311600114610829579180600292600196959460009261081e575b5050600019600383901b1c191690851b179101555b0161052c565b015190503880610803565b906002840160005260206000209160005b601f1985168110610885575092600292600196959492879383601f1981161061086c575b505050811b01910155610818565b015160001960f88460031b161c1916905538808061085e565b9192602060018192868501518155019401920161083a565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6109036108e2613e34565b60405163015538b160e01b8152602060048201529182916024830190613eb1565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b85760008051602061502183398151915260018154146101a65780600183925561095e611e23565b61096661407b565b61096e61490a565b5580f35b50346101b85760603660031901126101b8576001600160401b036004358181116109ee57366023820112156109ee576109b5903690602481600401359101611d09565b6044359182116109ee57366023830112156109ee576109e16109eb923690602481600401359101611d5f565b9060243590614ca5565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c541601908111610a24576109eb906123b0565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610923576001600160401b03600435116109235760806004356004019160043536030112610923576024356001600160401b0381116109ee57610a8e903690600401611c9a565b91906044356001600160401b038111610e3357610aaf903690600401611c9a565b91610ab8611e23565b60055494600b5495610aca8782611e4e565b60246004350135141580610e23575b610e115760405190610b116020830183610af38a83611f29565b0393610b07601f1995868101835282611c27565b5190209882611e4e565b6004356024013503610d0e57505091610b34610b3c92610b429697943691611d09565b933691611d5f565b91614ca5565b602460043501358252816020526040822090803560421960043536030181121561091f576004350191600483016001600160401b03610b8082611f7a565b16936001600160401b03199485845416178355610ba66001926024848601930190611f8e565b91906001600160401b038311610cfa57600160401b8311610cfa578154838355808410610cdf575b509087959493929190865260208620865b838110610cb8575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610c1b86611f7a565b16908254161790556024600435013582526022602052610c3f6040832033906120db565b5060043560240135600555600e546001600160a01b0316803b156109ee576040516347dc9b4f60e01b81529183918391829084908290610c829060048301611f29565b03925af1801561062e57610ca4575b5050610c9f6109eb91611f7a565b6123b0565b610cad90611bf9565b610923578138610c91565b84959697506020610ccc8495969394611fda565b848301558a989796959401929101610bdf565b82895260208920610cf4918101908501611fc3565b38610bce565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610d2657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610df0575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610dc5915082611c27565b51902014610dd05780f35b6024600435013581526022602052610dec6040822033906120db565b5080f35b82546001600160a01b03168552889550602090940193918101918101610d84565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610ad9565b8480fd5b50346101b857806003193601126101b857610e50611dde565b610e58611e23565b600080516020615001833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b85760043560008051602061502183398151915260018154146101a657600181558115610f6e5760ff60125460081c16610f5c57338352600360205281604084205410610f4a5761096e8392338452600360205260408420610f1282825461291d565b9055610f208160025461291d565b6002553384526003602052604084205415610f3c575b33613cd3565b610f4533613d4d565b610f36565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116109235736602382011215610923576001600160401b038160040135116109235736602482600401358301011161092357600160008051602061502183398151915254146101a657600160008051602061502183398151915255610ffc611e23565b61100461407b565b60ff60125460081c1680611323575b3415611311573360009081526015602052604090206002015461129c57604182600401350361128a57336001600160a01b0361105660048501356024860161403f565b160361051357611099578060246110739260040135910133613f62565b61107d343361409c565b6110856144d0565b806000805160206150218339815191525580f35b6110ab36826004013560248401611c63565b6001600160401b03601c541690604051906110c582611c0c565b600282526020820190815233604083015282600052601d60205260406000209082516110f081612160565b6110f981612160565b60ff80198454169116178255518051906001600160401b0382116104fd576111288261039f6001860154612180565b602090601f8311600114611202579282600080516020614fe18339815191529795936002936111df98966000926111f7575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111a382612398565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613ac7565b9060608301520390a16111f234336142b6565b611085565b01519050388061115a565b906001840160005260206000209160005b601f19851681106112725750836002936111df989693600193600080516020614fe18339815191529b9997601f19811610611259575b505050811b016001820155611172565b015160001960f88460031b161c19169055388080611249565b91926020600181928685015181550194019201611213565b6040516318dca5e960e21b8152600490fd5b6109036040516112ab81611c0c565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b604051635a78c58160e11b8152600490fd5b61132b6144bb565b611013565b50346101b857806003193601126101b857602060ff60008051602061500183398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020615021833981519152828154146101a657828155611396611e23565b336000908152601f602052604090209283549061ffff908183169283156114e257829060101c16918391808795818a01915b61145c575b5050508661143e937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611445575b6114268133613cd3565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561141c565b9091939483811696828810156114d9578760005260208091858252604060002060405161148881611bde565b898254928383520154938491015243106114ce57859493889688946114af86958a95611e4e565b9c600052526000826040822082815501550116966000190116946113c8565b9850505094936113cd565b965094936113cd565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561092357611515611e23565b600e546001600160a01b03163303611536576109eb90602435600435614b02565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b85761156161407b565b61ffff6115778160195416826016541690612873565b166115c7576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af1801561062e5761061e5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b8576115f2611dde565b600080516020615001833981519152805460ff81161561163f5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b857611665611e23565b61166d61407b565b6116756144bb565b34156113115733600090815260156020526040902060020154156116bc5760125460081c60ff166116b2576116aa343361409c565b6109eb6144d0565b6109eb34336142b6565b6109036040516116cb81611c0c565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b50346101b85760203660031901126101b8576004356001600160401b038116810361175b576109eb906123b0565b600080fd5b50346101b85760203660031901126101b85761177a611e23565b61178261407b565b6109eb60043561463a565b50346101b857600319606036820112610923576004356001600160401b039182821161091f5760608260040191833603011261091f57602435838111610e33576117db903690600401611c9a565b919060443585811161199c576117f5903690600401611c9a565b916024860135966006549687891061195157604401906118158287611f8e565b9190506009541680911161198a5761182d8287611f8e565b9050141580611963575b611951576118459085611f8e565b90501561193f5787946040516020810190611872816118648985613b51565b03601f198101835282611c27565b5190209688036118a3575050505050506007541461188e575080f35b81526023602052610dec6040822033906120db565b6118bd9392610b3488969893610b3c939a989a3691611d09565b8060206040516118cc81611bde565b848152015281600655600755825260236020526118ed6040832033906120db565b50600e546001600160a01b031690813b156101a257829161192491604051948580948193630bed761560e01b835260048301613b51565b03925af1801561062e57611936575080f35b6109eb90611bf9565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156119765788061515611837565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b03916004358381116109ee57366023820112156109ee576119e6903690602481600401359101611c63565b926119ef611e23565b3383526017825261ffff60408420541615611aff57835115611aed573383526024825260408320918451918211611ad957611a3482611a2e8554612180565b85612273565b80601f8311600114611a755750839482939492611a6a575b50508160011b916000199060031b1c19161790555b610dec33612072565b015190503880611a4c565b90601f198316958486528286209286905b888210611ac157505083600195969710611aa8575b505050811b019055611a61565b015160001960f88460031b161c19169055388080611a9b565b80600185968294968601518155019501930190611a86565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610923573415611bcf575060ff60125460081c16610f5c573381526003602052604081205415611b76575b338152600360205260408120611b62348254611e4e565b9055611b7034600254611e4e565b60025580f35b600454600160401b811015611bbb57611b98816001611bb69301600455611fee565b81546001600160a01b0360039290921b91821b19163390911b179055565b611b4b565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611c6f82611c48565b91611c7d6040519384611c27565b82948184528183011161175b578281602093846000960137010152565b9181601f8401121561175b578235916001600160401b03831161175b576020808501948460051b01011161175b57565b35906001600160401b038216820361175b57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361175b57565b9291611d1482611cde565b91611d226040519384611c27565b829481845260208094019160051b810192831161175b57905b828210611d485750505050565b838091611d5484611cf5565b815201910190611d3b565b92919092611d6c84611cde565b91611d7a6040519384611c27565b829480845260208094019060051b83019282841161175b5780915b848310611da457505050505050565b82356001600160401b03811161175b57820184601f8201121561175b578691611dd38683858095359101611c63565b815201920191611d95565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611e1157565b6040516330cd747160e01b8152600490fd5b60ff6000805160206150018339815191525416611e3c57565b60405163d93c066560e01b8152600490fd5b91908201809211611e5b57565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561175b570190565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b578160051b3603831361175b57565b60408201916001600160401b03611ecf83611cca565b1681526060611ee360209384810190611e85565b839195604086839601525201929160005b828110611f02575050505090565b909192938280600192838060a01b03611f1a89611cf5565b16815201950193929101611ef4565b6020815260806001600160401b03611f736060611f59611f498780611e71565b85602088015260a0870190611eb9565b956020810135604087015260408101358287015201611cca565b1691015290565b356001600160401b038116810361175b5790565b903590601e198136030182121561175b57018035906001600160401b03821161175b57602001918160051b3603831361175b57565b818110611fce575050565b60008155600101611fc3565b356001600160a01b038116810361175b5790565b6004548110156120255760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156120255760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b6000818152602660205260408120546120d657602554600160401b811015611bbb5790826120c26120ab8460016040960160255561203b565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461215a57845494600160401b861015612146576001860180825586101561213257836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561216a57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156121b0575b602083101461219a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161218f565b90600092918054916121cb83612180565b91828252600193848116908160001461222d57506001146121ed575b50505050565b90919394506000526020928360002092846000945b8386106122195750505050010190388080806121e7565b805485870183015294019385908201612202565b9294505050602093945060ff191683830152151560051b010190388080806121e7565b60005b8381106122635750506000910152565b8181015183820152602001612253565b9190601f811161228257505050565b6122ae926000526020600020906020601f840160051c830193106122b0575b601f0160051c0190611fc3565b565b90915081906122a1565b90808214612394576122cc8154612180565b906001600160401b0382116104fd5781906122f1826122eb8654612180565b86612273565b600090601f83116001146123285760009261231d575b50508160011b916000199060031b1c1916179055565b015490503880612307565b81526020808220858352818320935090601f1985169083905b82821061237b575050908460019594939210612362575b505050811b019055565b015460001960f88460031b161c19169055388080612358565b8495819295850154815560018091019601940190612341565b5050565b9060016001600160401b0380931601918211611e5b57565b601c546001600160401b03828116929080831684106123db5760405163040aaa0560e11b8152600490fd5b808360401c1684106121e75780604093841c165b848282161115612456575050916020916124297f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612398565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612474826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff1661249981612160565b80850361250b57505060036124ca60016124d094959697019260018060a01b03166000526015602052604060002090565b016122ba565b6124ed816001600160401b0316600052601d602052604060002090565b9160009081845560019361250285820161292a565b015501166123ef565b9091945061251881612160565b6003918183036126b657505087519361254085612539816001809a016121ba565b0386611c27565b84518501916020928a8785830192031261175b578387015189811161175b5787019681603f8901121561175b5787858d9901519261258961258085611c48565b9a519a8b611c27565b838a528d848301011161175b578c926125a79184888c019101612250565b015192816125c78460018060a01b03166000526015602052604060002090565b01918751918a83116126a1578a986125e9846125e38754612180565b87612273565b81601f851160011461262e575061261e9798999a8493928492600095612623575b50501b92600019911b1c1916179055612889565b6124d0565b01519350388061260a565b91601f9b9493919b1984169b866000528c84600020946000915b82106126865750508461261e9a9b9c9d1061266c575b50505050811b019055612889565b01519060f884600019921b161c191690553880808061265e565b8383015186558f9d509487019492830192908101908e612648565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936126d2856125398160018095016121ba565b6020808680518101031261175b5781818c970151956126f081612160565b036128155784906127018285612973565b601e5461270e9043611e4e565b9287519061271b82611bde565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061275e91612873565b169c60009d8e5282870188528d20925183555191015561277d90612860565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b156109ee578291602483928a5195869384926345f5448560e01b845260048401525af190811561280a575090849392916127fb575b506124d0565b61280490611bf9565b386127f5565b8751903d90823e3d90fd5b50508293509161282591926128cd565b600e541690813b1561175b578651916316989f6f60e21b83528260048160009485945af190811561280a575090849392916127fb57506124d0565b90600161ffff80931601918211611e5b57565b91909161ffff80809416911601918211611e5b57565b9060018060a01b0382166000526015602052604060002081815491558181146000146128b457505050565b8111156128c4576122ae91612a02565b6122ae91612d48565b906122ae9161291560018060a01b038216928360005260156020526128fa81600160406000200154611e4e565b93600052601560205283600160406000200155601454611e4e565b601455612a02565b91908203918211611e5b57565b6129348154612180565b908161293e575050565b81601f60009311600114612950575055565b90808391825261296f601f60208420940160051c840160018501611fc3565b5555565b906129e06129e89260018060a01b03811690600082815260156020526129a085600160408420015461291d565b92815260156020526040812060028101848154811590816129f9575b50156129ed575090826003926129db948355816001840155550161292a565b612d48565b60145461291d565b601455565b92505060010155612d48565b905015386129bc565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612c33578360135460081c16846016541610612bff57612a47613855565b60019283825260188652828a8320541688612a6182613133565b10612b7957508152601a8552838982205416612ad0575050505050612acb7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649394612aab836130be565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612ad9866138a8565b92612ae387613133565b935b8186821611612b3b575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd908060408101612acb565b8085612b5a86617fff8f95871c1694858852601b8c5287205416613133565b1015612b735790612b6c839282613a07565b9050612ae5565b50612aef565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7598999250612acb95601a91612bb461354d565b835252205416612bf1575b612bc8846134d8565b612bd1836130be565b516001600160a01b03928316815292909116602083015281906040820190565b612bfa846132fd565b612bbf565b5050505050612acb7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612aab836134d8565b97929150612c448594979695613871565b97612c4e85613133565b97612c588a613469565b8460165416905b858116828111612d115782811015612cf5575080612c7f612c8592612860565b90613805565b9b909b5b8b1115612ca857612c9a908c61396e565b612ca38b613469565b612c5f565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019791508060408101612acb565b849c919c5260188352612d0c858886205416613133565b612c89565b50505050505050612acb91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612aab565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612f82578082526017835287868320541615612f71578415612ec95750612d9583613871565b97612d9f84613133565b985b6001808a83161115612eba5781617fff911c1690818452601885528a612dcb848a87205416613133565b1115612de057612ddb908261396e565b612da1565b505091939597509193955b6019541615612eb257612dfc613855565b60018252601883528581818420541692601b612e1785613133565b95612e20613863565b600183525220541691612e3283613133565b11612e7957505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197908060408101612acb565b91509150612acb7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612eaa61354d565b612bbf613196565b505050505050565b50509193959750919395612deb565b829450612efd7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613696565b8651908152a160195416612f115750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612f3f613863565b6001835252205416612f65612f5382613133565b92612f5c613196565b612aab836134d8565b0390a1388080806121e7565b8551632a55ca5360e01b8152600490fd5b84969792939598919415613083575061fffe9193612f9f866138a8565b93612fa987613133565b9480966001958692831b168160195416925b61300f575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9190508060408101612acb565b81811683811161307d578d90848110156130615750508061303261303892612860565b90613480565b9890985b88101561305c5761304d9089613a07565b61305688613469565b86612fbb565b612fc0565b8652601b8552852054909890613078908716613133565b61303c565b50612fc0565b949150506130b79194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506132fd565b51908152a1565b6122ae9061312d61ffff916130d68360195416612860565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613133565b90613414565b60ff60135416600381101561216a57600103613164576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611e5b57565b61ffff80601954169081156132eb57906001906131b581831115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161324f91908a61324083613182565b169060195416176019556138cd565b848252808652613263848484205416613133565b95859860028160195416995b613281575b5050505050505050505050565b8181168a81116132e5578a8110156132ca5750806130326132a192612860565b9a909a5b8910156132c5576132b6908b613a07565b6132bf8a613469565b8761326f565b613274565b859b919b528383526132e0878787205416613133565b6132a5565b50613274565b6040516340d9b01160e01b8152600490fd5b613306906138a8565b61ffff9081601954169161331a8383613a07565b8061332484613182565b1661ffff19601954161760195561333a836138cd565b80821680931461340f579161fffe91600091808352601b9060209382855260018060a01b039260409261337a613374868686205416613133565b87613414565b825280865261338d848484205416613133565b9585986001988997881b168160195416995b6133b0575050505050505050505050565b8181168a81116132e5578a8110156133f45750806130326133d092612860565b9a909a5b8910156132c5576133e5908b613a07565b6133ee8a613469565b8761339f565b859b919b5283835261340a878787205416613133565b6133d4565b505050565b9190915b60018061ffff831611156134635781617fff911c16908361344e6000848152601b602052604060018060a01b0391205416613133565b10156134635761345e9082613a07565b613418565b50509050565b60011b906201fffe61fffe831692168203611e5b57565b91909161ffff92838216600052601b6020526134c360018060a01b036134ac8160406000205416613133565b958316600052601b60205260406000205416613133565b908185106134d15750509190565b9350919050565b6122ae9061354761ffff916134f08360165416612860565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613133565b906137b6565b61ffff80601654169081156132eb579060019061356c81831115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161360691908a6135f783613182565b1690601654161760165561390f565b84825280865261361a848484205416613133565b95859860028160165416995b613637575050505050505050505050565b8181168a81116132e5578a81101561367b575080612c7f61365792612860565b9a909a5b8911156132c55761366c908b61396e565b6136758a613469565b87613626565b859b919b52838352613691878787205416613133565b61365b565b61369f90613871565b9061ffff908160165416906136b4828561396e565b826136be83613182565b1661ffff1960165416176016556136d48261390f565b8284168092146137b05760009291929183835260189260209484865260018060a01b039160409161371261370c858585205416613133565b8a6137b6565b8152858752613725838383205416613133565b9561372f89613469565b978560165416985b8681168a81116137a2578a811015613787575080612c7f61375792612860565b9a909a5b89111561377a5761376c908b61396e565b6137758a613469565b613737565b5050505050505092505050565b849b919b5282825261379d868686205416613133565b61375b565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156134635781617fff911c1690836137f060008481526018602052604060018060a01b0391205416613133565b111561346357613800908261396e565b6137ba565b919061ffff808416600052601860205261384660018060a01b0361382f8160406000205416613133565b928416600052601860205260406000205416613133565b93848211156134d15750509190565b61ffff60165416156132eb57565b61ffff60195416156132eb57565b6001600160a01b031660009081526017602052604090205461ffff1690811561389657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561389657565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561395857565b634e487b7160e01b600052600160045260246000fd5b61399361ffff80806016541693169361398984861115613951565b1691821115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a2261ffff80806019541693169361398984861115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b57813603831361175b57565b908060209392818452848401376000828201840152601f01601f1916010190565b613b11613b06613af88380611e71565b604085526040850190611eb9565b916020810190611e71565b91602081830391015281359160ff831680930361175b57613b3e604091613b4e9484526020810190613a96565b9190928160208201520191613ac7565b90565b6020808252613b608380611e71565b6060918281850152613b7760809283860190611eb9565b613b8e604096838101358888015287810190611e85565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bc957505050505050505050505090565b909192939495969798999a82828203018752613be58c85611e71565b90813560de198336030181121561175b578782528201918a90888e6001600160401b03613c5c613c4c613c39613c30613c1e8b80611e71565b60e080988c01526101208b0190613ae8565b978a018a611e71565b96603f1997888a830301868b0152613ae8565b928d8901358d8901528801611cca565b169060a091828701528a8701359263ffffffff60e01b841680940361175b578f95613c93613ca39460c096878b01528a018a613a96565b9290918985030190890152613ac7565b94013561010084015201359081151580920361175b578a01529a8801999897966001019587019493929190613bb4565b814710613d35576000918291829182916001600160a01b03165af13d15613d30573d613cfe81611c48565b90613d0c6040519283611c27565b8152600060203d92013e5b15613d1e57565b604051630a12f52160e11b8152600490fd5b613d17565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d635750505050565b613d6c81611fee565b90546003916001600160a01b039190831b1c811685821614613d92575050600101613d56565b929350939060001991828101908111613e1f5790613dc384613db6613de294611fee565b905490891b1c1691611fee565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613e0a570192613df584611fee565b81939154921b1b1916905555388080806121e7565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613eca81518092818552858086019101612250565b601f01601f1916010190565b91908110156120255760051b81013590601e198136030182121561175b5701908135916001600160401b03831161175b57602001823603811361175b579190565b91908110156120255760051b0190565b600154811015612025576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613fa381613f9d8454612180565b84612273565b6000601f8211600114613fdc5781929394600092613fd15750508160011b916000199060031b1c1916179055565b013590503880612307565b601f198216948382526020918281209281905b8882106140275750508360019596971061400d57505050811b019055565b0135600019600384901b60f8161c19169055388080612358565b80600184968294958701358155019501920190613fef565b9061404c60418214613951565b8060011161175b576140679136916000190190600101611c63565b80516020909101206001600160a01b031690565b60ff60125460101c1661408a57565b60405163248c8efb60e11b8152600490fd5b906140b1906140ab818461428f565b826128cd565b60ff60125460081c16156140c25750565b60018054600082815b83811061423f575b5050156140df57505050565b6001600160a01b0383166000908152601560205260409020828101546141359490916003016040519261411184611c0c565b835260209361413c8585019260018060a01b038095168452604051988980926121ba565b0388611c27565b60408401968752600160401b8110156104fd57808661415d92018755613f27565b92909261089d576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576141a4836125e38754612180565b81601f84116001146141dd57509282939183926000946141d2575b50501b916000199060031b1c1916179055565b0151925038806141bf565b919083601f1981168760005284600020946000905b88838310614225575050501061420c57505050811b019055565b015160001960f88460031b161c19169055388080612358565b8587015188559096019594850194879350908101906141f2565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614614285570183906140cb565b50905082386140d3565b60018060a01b031660005260156020526142b26002604060002001918254611e4e565b9055565b919060405192816020850152602084526142cf84611bde565b6001600160401b03601c541693604051946142e986611c0c565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161431d81612160565b61432681612160565b60ff80198a54169116178855519687516001600160401b0381116104fd5761435e816143556001850154612180565b60018501612273565b6020601f821160011461443057614417949282600080516020614fe18339815191529795936002936122ae9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc82612398565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a161428f565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a35750926001836122ae9b9c6002946144179997600080516020614fe18339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60135416600381101561216a576108d757565b601454600a548110156144e1575b50565b61ffff601654166001600160401b03600c541611156144fd5750565b61010061ff00196012541617601255604080516020908181018282526001805480925284830190858360051b850101926000958287527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69387905b898483106145ec575050505050505090807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a160018060a01b03600e54166145a66002548095611e4e565b93813b156109ee57906024839285519687938492637903ab2760e11b845260048401525af19182156145e2575050156144de576122ae90611bf9565b51903d90823e3d90fd5b92600361462a87989995839798949596603f198d82030187528b54815260018060a01b03868d01541685820152606080928201520160028b016121ba565b9801920192019094939291614558565b6146426144bb565b80156146a957336000908152601560205260409020600201548015611aff578110156146985760ff60125460081c1615614680576122ae903361470e565b8061468e6122ae92336146bb565b610f368133612973565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146fc576146e89161291d565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472784611bde565b6001600160401b03601c5416936040519461474186611c0c565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161477581612160565b61477e81612160565b60ff80198a54169116178855519687516001600160401b0381116104fd576147ad816143556001850154612180565b6020601f821160011461487f57614866949282600080516020614fe18339815191529795936002936122ae9c9d600092614874575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482b82612398565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a16146bb565b0151905038806147e2565b6001830160005260206000209960005b601f19841681106148f25750926001836122ae9b9c6002946148669997600080516020614fe18339815191529b9997601f198116106148d9575b505050811b0160018201556147fa565b015160001960f88460031b161c191690553880806148c9565b828201518c556001909b019a6020928301920161488f565b60ff60125460081c166149f7575b336000908152601560205260409020600201548015611aff5761493a33614a04565b50600090338252602460205281604081206149558154612180565b806149ba575b50505060ff60125460081c1615614977576122ae91503361470e565b60406122ae923381526003602052205480614998575b5061468e81336146bb565b806149a86149b49260025461291d565b600255610f3633613d4d565b3861498d565b82601f82116001146149d2575050555b81388061495b565b90918082526149f0601f60208420940160051c840160018501611fc3565b55556149ca565b6149ff6144bb565b614918565b6000818152602660205260408120549091908015614ae95760001990808201818111614ad55760255490838201918211614ac157808203614a8d575b5050506025548015614a7957810190614a588261203b565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aab614a9c6120ab9361203b565b90549060031b1c92839261203b565b9055845260266020526040842055388080614a40565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b80518210156120255760209160051b010190565b919091821561340f576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614c915780614bf25750600b54614b4c9161291d565b8152602283528181208251808286829454938481520190855286852092855b88828210614bdc57505050614b8292500382611c27565b928351948515612eb257858110612eb25785900493825b868110614ba95750505050505050565b6001906001600160a01b03614bbe8285614aee565b5116855260218452858520614bd4888254611e4e565b905501614b99565b8554845260019586019587955093019201614b6b565b846001859214600014614c4257606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cb283611cde565b93604094614cc286519182611c27565b848152601f19614cd186611cde565b0194602095368784013760005b818110614da857505060009461ffff8060165416600192839182945b614d57575b505050505060ff600e5460a01c1694858102958187041490151715611e5b576064614d2b950491614e1f565b9015614d35575050565b600681101561216a5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614da05760009081526018855220548493929186918591614d9691614d90906001600160a01b0316613133565b90611e4e565b9b01169493614cfa565b505098614cff565b6001600160a01b0380614dbb8387614aee565b51166000526017885261ffff89600020541615614dfb5790614dea600192614de38388614aee565b5116613133565b614df48286614aee565b5201614cde565b8890614e0960249387614aee565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f075782518514801590614efc575b614eef579392919085945b848610614e67575050505050501015614e5f57600090600590565b600190600090565b909192939495614e81614e7a8884614aee565b5184614f14565b50614e8b81612160565b614ede576001600160a01b0380614ea28a88614aee565b5116911603614ece57614ec2600191614ebb8988614aee565b5190611e4e565b96019493929190614e44565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e39565b5050505050905090600290565b8151919060418303614f4557614f3e92506020820151906060604084015193015160001a90614f50565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fd457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fc85780516001600160a01b03811615614fbf57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212208365497f3930f76c2e44a97011eac04d4fdac27c51258885a3dbc3b6ce4a273664736f6c63430008130033","sourceMap":"215:373:99:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":337,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611b175750806310fd4261146119a0578063268119361461178d5780632e17de7814611760578063350a14bf1461172d5780633a4b66f1146116515780633f4ba83a146115d957806341c0e1b5146115485780634c860af6146114f45780634e71d92d146113605780635c975abb146113305780636170b16214610f8057806366783c9b14610e9f5780638456cb5914610e37578063b9ee2bb914610a38578063c7ebdaef146109f2578063cc2dc2b914610972578063d66d9e1914610927578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b85760008051602061502183398151915260018154146101a657806001839255610133611e23565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611bf9565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610923576101ec903690600401611c9a565b906024356001600160401b03811161091f5761020c903690600401611c9a565b916044356001600160401b03811161091b5761022c903690600401611c9a565b909461023661407b565b61023e611dde565b60ff601354166003811015610907576001036108d7578181036108c5578481036108c55760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888613ed6565b9061403f565b6001600160a01b036102b26102ad848689613f17565b611fda565b166001600160a01b03909116036105135761031c6102d46102ad838588613f17565b6102df838989613ed6565b6102ed85888d969496613f17565b35610308604051958693604060208601526060850191613ac7565b90604083015203601f198101845283611c27565b6001600160401b03601c541660405161033481611c0c565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612160565b61037081612160565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612180565b60018601612273565b602090601f8311600114610476579282600080516020614fe183398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612398565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613eb1565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614fe18339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9490929391865b868110610697575050505050506001600160401b03600c541610156106855761010061ff0019601254161760125560405190602091828101838252600154809152604082019060408160051b8401019460016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6926000905b838210610639575050505050807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959392930390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af1801561062e5761061e57505080f35b61062790611bf9565b6101b85780f35b6040513d84823e3d90fd5b90919293968360036106766060600194603f198b82030187528c5481528c86808060a01b0391015416858201528160408201520160028c016121ba565b990192019201909392916105a7565b60405163031480b160e51b8152600490fd5b6106a5610291828689613ed6565b6001600160a01b039081806106be6102ad868d89613f17565b16911603610513576106dc6106d76102ad848b87613f17565b613133565b6108b3576107026106f16102ad848b87613f17565b6106fc84888b613ed6565b91613f62565b6107256107136102ad848b87613f17565b61071e848988613f17565b3590612889565b6107336102ad838a86613f17565b9061073f838887613f17565b359161076e61074f85898c613ed6565b6040519561075c87611c0c565b86528460208701941684523691611c63565b9160408401928352600154600160401b8110156104fd578060016107959201600155613f27565b94909461089d57518455600184019151166001600160601b0360a01b825416179055518051906001600160401b0382116104fd576107e3826107da6002860154612180565b60028601612273565b602090601f8311600114610829579180600292600196959460009261081e575b5050600019600383901b1c191690851b179101555b0161052c565b015190503880610803565b906002840160005260206000209160005b601f1985168110610885575092600292600196959492879383601f1981161061086c575b505050811b01910155610818565b015160001960f88460031b161c1916905538808061085e565b9192602060018192868501518155019401920161083a565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6109036108e2613e34565b60405163015538b160e01b8152602060048201529182916024830190613eb1565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b85760008051602061502183398151915260018154146101a65780600183925561095e611e23565b61096661407b565b61096e61490a565b5580f35b50346101b85760603660031901126101b8576001600160401b036004358181116109ee57366023820112156109ee576109b5903690602481600401359101611d09565b6044359182116109ee57366023830112156109ee576109e16109eb923690602481600401359101611d5f565b9060243590614ca5565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c541601908111610a24576109eb906123b0565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610923576001600160401b03600435116109235760806004356004019160043536030112610923576024356001600160401b0381116109ee57610a8e903690600401611c9a565b91906044356001600160401b038111610e3357610aaf903690600401611c9a565b91610ab8611e23565b60055494600b5495610aca8782611e4e565b60246004350135141580610e23575b610e115760405190610b116020830183610af38a83611f29565b0393610b07601f1995868101835282611c27565b5190209882611e4e565b6004356024013503610d0e57505091610b34610b3c92610b429697943691611d09565b933691611d5f565b91614ca5565b602460043501358252816020526040822090803560421960043536030181121561091f576004350191600483016001600160401b03610b8082611f7a565b16936001600160401b03199485845416178355610ba66001926024848601930190611f8e565b91906001600160401b038311610cfa57600160401b8311610cfa578154838355808410610cdf575b509087959493929190865260208620865b838110610cb8575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610c1b86611f7a565b16908254161790556024600435013582526022602052610c3f6040832033906120db565b5060043560240135600555600e546001600160a01b0316803b156109ee576040516347dc9b4f60e01b81529183918391829084908290610c829060048301611f29565b03925af1801561062e57610ca4575b5050610c9f6109eb91611f7a565b6123b0565b610cad90611bf9565b610923578138610c91565b84959697506020610ccc8495969394611fda565b848301558a989796959401929101610bdf565b82895260208920610cf4918101908501611fc3565b38610bce565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610d2657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610df0575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610dc5915082611c27565b51902014610dd05780f35b6024600435013581526022602052610dec6040822033906120db565b5080f35b82546001600160a01b03168552889550602090940193918101918101610d84565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610ad9565b8480fd5b50346101b857806003193601126101b857610e50611dde565b610e58611e23565b600080516020615001833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b85760043560008051602061502183398151915260018154146101a657600181558115610f6e5760ff60125460081c16610f5c57338352600360205281604084205410610f4a5761096e8392338452600360205260408420610f1282825461291d565b9055610f208160025461291d565b6002553384526003602052604084205415610f3c575b33613cd3565b610f4533613d4d565b610f36565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116109235736602382011215610923576001600160401b038160040135116109235736602482600401358301011161092357600160008051602061502183398151915254146101a657600160008051602061502183398151915255610ffc611e23565b61100461407b565b60ff60125460081c1680611323575b3415611311573360009081526015602052604090206002015461129c57604182600401350361128a57336001600160a01b0361105660048501356024860161403f565b160361051357611099578060246110739260040135910133613f62565b61107d343361409c565b6110856144d0565b806000805160206150218339815191525580f35b6110ab36826004013560248401611c63565b6001600160401b03601c541690604051906110c582611c0c565b600282526020820190815233604083015282600052601d60205260406000209082516110f081612160565b6110f981612160565b60ff80198454169116178255518051906001600160401b0382116104fd576111288261039f6001860154612180565b602090601f8311600114611202579282600080516020614fe18339815191529795936002936111df98966000926111f7575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111a382612398565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613ac7565b9060608301520390a16111f234336142b6565b611085565b01519050388061115a565b906001840160005260206000209160005b601f19851681106112725750836002936111df989693600193600080516020614fe18339815191529b9997601f19811610611259575b505050811b016001820155611172565b015160001960f88460031b161c19169055388080611249565b91926020600181928685015181550194019201611213565b6040516318dca5e960e21b8152600490fd5b6109036040516112ab81611c0c565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b604051635a78c58160e11b8152600490fd5b61132b6144bb565b611013565b50346101b857806003193601126101b857602060ff60008051602061500183398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020615021833981519152828154146101a657828155611396611e23565b336000908152601f602052604090209283549061ffff908183169283156114e257829060101c16918391808795818a01915b61145c575b5050508661143e937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611445575b6114268133613cd3565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561141c565b9091939483811696828810156114d9578760005260208091858252604060002060405161148881611bde565b898254928383520154938491015243106114ce57859493889688946114af86958a95611e4e565b9c600052526000826040822082815501550116966000190116946113c8565b9850505094936113cd565b965094936113cd565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561092357611515611e23565b600e546001600160a01b03163303611536576109eb90602435600435614b02565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b85761156161407b565b61ffff6115778160195416826016541690612873565b166115c7576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af1801561062e5761061e5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b8576115f2611dde565b600080516020615001833981519152805460ff81161561163f5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b857611665611e23565b61166d61407b565b6116756144bb565b34156113115733600090815260156020526040902060020154156116bc5760125460081c60ff166116b2576116aa343361409c565b6109eb6144d0565b6109eb34336142b6565b6109036040516116cb81611c0c565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b50346101b85760203660031901126101b8576004356001600160401b038116810361175b576109eb906123b0565b600080fd5b50346101b85760203660031901126101b85761177a611e23565b61178261407b565b6109eb60043561463a565b50346101b857600319606036820112610923576004356001600160401b039182821161091f5760608260040191833603011261091f57602435838111610e33576117db903690600401611c9a565b919060443585811161199c576117f5903690600401611c9a565b916024860135966006549687891061195157604401906118158287611f8e565b9190506009541680911161198a5761182d8287611f8e565b9050141580611963575b611951576118459085611f8e565b90501561193f5787946040516020810190611872816118648985613b51565b03601f198101835282611c27565b5190209688036118a3575050505050506007541461188e575080f35b81526023602052610dec6040822033906120db565b6118bd9392610b3488969893610b3c939a989a3691611d09565b8060206040516118cc81611bde565b848152015281600655600755825260236020526118ed6040832033906120db565b50600e546001600160a01b031690813b156101a257829161192491604051948580948193630bed761560e01b835260048301613b51565b03925af1801561062e57611936575080f35b6109eb90611bf9565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156119765788061515611837565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b03916004358381116109ee57366023820112156109ee576119e6903690602481600401359101611c63565b926119ef611e23565b3383526017825261ffff60408420541615611aff57835115611aed573383526024825260408320918451918211611ad957611a3482611a2e8554612180565b85612273565b80601f8311600114611a755750839482939492611a6a575b50508160011b916000199060031b1c19161790555b610dec33612072565b015190503880611a4c565b90601f198316958486528286209286905b888210611ac157505083600195969710611aa8575b505050811b019055611a61565b015160001960f88460031b161c19169055388080611a9b565b80600185968294968601518155019501930190611a86565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610923573415611bcf575060ff60125460081c16610f5c573381526003602052604081205415611b76575b338152600360205260408120611b62348254611e4e565b9055611b7034600254611e4e565b60025580f35b600454600160401b811015611bbb57611b98816001611bb69301600455611fee565b81546001600160a01b0360039290921b91821b19163390911b179055565b611b4b565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611c6f82611c48565b91611c7d6040519384611c27565b82948184528183011161175b578281602093846000960137010152565b9181601f8401121561175b578235916001600160401b03831161175b576020808501948460051b01011161175b57565b35906001600160401b038216820361175b57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361175b57565b9291611d1482611cde565b91611d226040519384611c27565b829481845260208094019160051b810192831161175b57905b828210611d485750505050565b838091611d5484611cf5565b815201910190611d3b565b92919092611d6c84611cde565b91611d7a6040519384611c27565b829480845260208094019060051b83019282841161175b5780915b848310611da457505050505050565b82356001600160401b03811161175b57820184601f8201121561175b578691611dd38683858095359101611c63565b815201920191611d95565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611e1157565b6040516330cd747160e01b8152600490fd5b60ff6000805160206150018339815191525416611e3c57565b60405163d93c066560e01b8152600490fd5b91908201809211611e5b57565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561175b570190565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b578160051b3603831361175b57565b60408201916001600160401b03611ecf83611cca565b1681526060611ee360209384810190611e85565b839195604086839601525201929160005b828110611f02575050505090565b909192938280600192838060a01b03611f1a89611cf5565b16815201950193929101611ef4565b6020815260806001600160401b03611f736060611f59611f498780611e71565b85602088015260a0870190611eb9565b956020810135604087015260408101358287015201611cca565b1691015290565b356001600160401b038116810361175b5790565b903590601e198136030182121561175b57018035906001600160401b03821161175b57602001918160051b3603831361175b57565b818110611fce575050565b60008155600101611fc3565b356001600160a01b038116810361175b5790565b6004548110156120255760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156120255760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b6000818152602660205260408120546120d657602554600160401b811015611bbb5790826120c26120ab8460016040960160255561203b565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461215a57845494600160401b861015612146576001860180825586101561213257836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561216a57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156121b0575b602083101461219a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161218f565b90600092918054916121cb83612180565b91828252600193848116908160001461222d57506001146121ed575b50505050565b90919394506000526020928360002092846000945b8386106122195750505050010190388080806121e7565b805485870183015294019385908201612202565b9294505050602093945060ff191683830152151560051b010190388080806121e7565b60005b8381106122635750506000910152565b8181015183820152602001612253565b9190601f811161228257505050565b6122ae926000526020600020906020601f840160051c830193106122b0575b601f0160051c0190611fc3565b565b90915081906122a1565b90808214612394576122cc8154612180565b906001600160401b0382116104fd5781906122f1826122eb8654612180565b86612273565b600090601f83116001146123285760009261231d575b50508160011b916000199060031b1c1916179055565b015490503880612307565b81526020808220858352818320935090601f1985169083905b82821061237b575050908460019594939210612362575b505050811b019055565b015460001960f88460031b161c19169055388080612358565b8495819295850154815560018091019601940190612341565b5050565b9060016001600160401b0380931601918211611e5b57565b601c546001600160401b03828116929080831684106123db5760405163040aaa0560e11b8152600490fd5b808360401c1684106121e75780604093841c165b848282161115612456575050916020916124297f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612398565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612474826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff1661249981612160565b80850361250b57505060036124ca60016124d094959697019260018060a01b03166000526015602052604060002090565b016122ba565b6124ed816001600160401b0316600052601d602052604060002090565b9160009081845560019361250285820161292a565b015501166123ef565b9091945061251881612160565b6003918183036126b657505087519361254085612539816001809a016121ba565b0386611c27565b84518501916020928a8785830192031261175b578387015189811161175b5787019681603f8901121561175b5787858d9901519261258961258085611c48565b9a519a8b611c27565b838a528d848301011161175b578c926125a79184888c019101612250565b015192816125c78460018060a01b03166000526015602052604060002090565b01918751918a83116126a1578a986125e9846125e38754612180565b87612273565b81601f851160011461262e575061261e9798999a8493928492600095612623575b50501b92600019911b1c1916179055612889565b6124d0565b01519350388061260a565b91601f9b9493919b1984169b866000528c84600020946000915b82106126865750508461261e9a9b9c9d1061266c575b50505050811b019055612889565b01519060f884600019921b161c191690553880808061265e565b8383015186558f9d509487019492830192908101908e612648565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936126d2856125398160018095016121ba565b6020808680518101031261175b5781818c970151956126f081612160565b036128155784906127018285612973565b601e5461270e9043611e4e565b9287519061271b82611bde565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061275e91612873565b169c60009d8e5282870188528d20925183555191015561277d90612860565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b156109ee578291602483928a5195869384926345f5448560e01b845260048401525af190811561280a575090849392916127fb575b506124d0565b61280490611bf9565b386127f5565b8751903d90823e3d90fd5b50508293509161282591926128cd565b600e541690813b1561175b578651916316989f6f60e21b83528260048160009485945af190811561280a575090849392916127fb57506124d0565b90600161ffff80931601918211611e5b57565b91909161ffff80809416911601918211611e5b57565b9060018060a01b0382166000526015602052604060002081815491558181146000146128b457505050565b8111156128c4576122ae91612a02565b6122ae91612d48565b906122ae9161291560018060a01b038216928360005260156020526128fa81600160406000200154611e4e565b93600052601560205283600160406000200155601454611e4e565b601455612a02565b91908203918211611e5b57565b6129348154612180565b908161293e575050565b81601f60009311600114612950575055565b90808391825261296f601f60208420940160051c840160018501611fc3565b5555565b906129e06129e89260018060a01b03811690600082815260156020526129a085600160408420015461291d565b92815260156020526040812060028101848154811590816129f9575b50156129ed575090826003926129db948355816001840155550161292a565b612d48565b60145461291d565b601455565b92505060010155612d48565b905015386129bc565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612c33578360135460081c16846016541610612bff57612a47613855565b60019283825260188652828a8320541688612a6182613133565b10612b7957508152601a8552838982205416612ad0575050505050612acb7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649394612aab836130be565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612ad9866138a8565b92612ae387613133565b935b8186821611612b3b575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd908060408101612acb565b8085612b5a86617fff8f95871c1694858852601b8c5287205416613133565b1015612b735790612b6c839282613a07565b9050612ae5565b50612aef565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7598999250612acb95601a91612bb461354d565b835252205416612bf1575b612bc8846134d8565b612bd1836130be565b516001600160a01b03928316815292909116602083015281906040820190565b612bfa846132fd565b612bbf565b5050505050612acb7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612aab836134d8565b97929150612c448594979695613871565b97612c4e85613133565b97612c588a613469565b8460165416905b858116828111612d115782811015612cf5575080612c7f612c8592612860565b90613805565b9b909b5b8b1115612ca857612c9a908c61396e565b612ca38b613469565b612c5f565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019791508060408101612acb565b849c919c5260188352612d0c858886205416613133565b612c89565b50505050505050612acb91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612aab565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612f82578082526017835287868320541615612f71578415612ec95750612d9583613871565b97612d9f84613133565b985b6001808a83161115612eba5781617fff911c1690818452601885528a612dcb848a87205416613133565b1115612de057612ddb908261396e565b612da1565b505091939597509193955b6019541615612eb257612dfc613855565b60018252601883528581818420541692601b612e1785613133565b95612e20613863565b600183525220541691612e3283613133565b11612e7957505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197908060408101612acb565b91509150612acb7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612eaa61354d565b612bbf613196565b505050505050565b50509193959750919395612deb565b829450612efd7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613696565b8651908152a160195416612f115750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612f3f613863565b6001835252205416612f65612f5382613133565b92612f5c613196565b612aab836134d8565b0390a1388080806121e7565b8551632a55ca5360e01b8152600490fd5b84969792939598919415613083575061fffe9193612f9f866138a8565b93612fa987613133565b9480966001958692831b168160195416925b61300f575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9190508060408101612acb565b81811683811161307d578d90848110156130615750508061303261303892612860565b90613480565b9890985b88101561305c5761304d9089613a07565b61305688613469565b86612fbb565b612fc0565b8652601b8552852054909890613078908716613133565b61303c565b50612fc0565b949150506130b79194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506132fd565b51908152a1565b6122ae9061312d61ffff916130d68360195416612860565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613133565b90613414565b60ff60135416600381101561216a57600103613164576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611e5b57565b61ffff80601954169081156132eb57906001906131b581831115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161324f91908a61324083613182565b169060195416176019556138cd565b848252808652613263848484205416613133565b95859860028160195416995b613281575b5050505050505050505050565b8181168a81116132e5578a8110156132ca5750806130326132a192612860565b9a909a5b8910156132c5576132b6908b613a07565b6132bf8a613469565b8761326f565b613274565b859b919b528383526132e0878787205416613133565b6132a5565b50613274565b6040516340d9b01160e01b8152600490fd5b613306906138a8565b61ffff9081601954169161331a8383613a07565b8061332484613182565b1661ffff19601954161760195561333a836138cd565b80821680931461340f579161fffe91600091808352601b9060209382855260018060a01b039260409261337a613374868686205416613133565b87613414565b825280865261338d848484205416613133565b9585986001988997881b168160195416995b6133b0575050505050505050505050565b8181168a81116132e5578a8110156133f45750806130326133d092612860565b9a909a5b8910156132c5576133e5908b613a07565b6133ee8a613469565b8761339f565b859b919b5283835261340a878787205416613133565b6133d4565b505050565b9190915b60018061ffff831611156134635781617fff911c16908361344e6000848152601b602052604060018060a01b0391205416613133565b10156134635761345e9082613a07565b613418565b50509050565b60011b906201fffe61fffe831692168203611e5b57565b91909161ffff92838216600052601b6020526134c360018060a01b036134ac8160406000205416613133565b958316600052601b60205260406000205416613133565b908185106134d15750509190565b9350919050565b6122ae9061354761ffff916134f08360165416612860565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613133565b906137b6565b61ffff80601654169081156132eb579060019061356c81831115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161360691908a6135f783613182565b1690601654161760165561390f565b84825280865261361a848484205416613133565b95859860028160165416995b613637575050505050505050505050565b8181168a81116132e5578a81101561367b575080612c7f61365792612860565b9a909a5b8911156132c55761366c908b61396e565b6136758a613469565b87613626565b859b919b52838352613691878787205416613133565b61365b565b61369f90613871565b9061ffff908160165416906136b4828561396e565b826136be83613182565b1661ffff1960165416176016556136d48261390f565b8284168092146137b05760009291929183835260189260209484865260018060a01b039160409161371261370c858585205416613133565b8a6137b6565b8152858752613725838383205416613133565b9561372f89613469565b978560165416985b8681168a81116137a2578a811015613787575080612c7f61375792612860565b9a909a5b89111561377a5761376c908b61396e565b6137758a613469565b613737565b5050505050505092505050565b849b919b5282825261379d868686205416613133565b61375b565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156134635781617fff911c1690836137f060008481526018602052604060018060a01b0391205416613133565b111561346357613800908261396e565b6137ba565b919061ffff808416600052601860205261384660018060a01b0361382f8160406000205416613133565b928416600052601860205260406000205416613133565b93848211156134d15750509190565b61ffff60165416156132eb57565b61ffff60195416156132eb57565b6001600160a01b031660009081526017602052604090205461ffff1690811561389657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561389657565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561395857565b634e487b7160e01b600052600160045260246000fd5b61399361ffff80806016541693169361398984861115613951565b1691821115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a2261ffff80806019541693169361398984861115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b57813603831361175b57565b908060209392818452848401376000828201840152601f01601f1916010190565b613b11613b06613af88380611e71565b604085526040850190611eb9565b916020810190611e71565b91602081830391015281359160ff831680930361175b57613b3e604091613b4e9484526020810190613a96565b9190928160208201520191613ac7565b90565b6020808252613b608380611e71565b6060918281850152613b7760809283860190611eb9565b613b8e604096838101358888015287810190611e85565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bc957505050505050505050505090565b909192939495969798999a82828203018752613be58c85611e71565b90813560de198336030181121561175b578782528201918a90888e6001600160401b03613c5c613c4c613c39613c30613c1e8b80611e71565b60e080988c01526101208b0190613ae8565b978a018a611e71565b96603f1997888a830301868b0152613ae8565b928d8901358d8901528801611cca565b169060a091828701528a8701359263ffffffff60e01b841680940361175b578f95613c93613ca39460c096878b01528a018a613a96565b9290918985030190890152613ac7565b94013561010084015201359081151580920361175b578a01529a8801999897966001019587019493929190613bb4565b814710613d35576000918291829182916001600160a01b03165af13d15613d30573d613cfe81611c48565b90613d0c6040519283611c27565b8152600060203d92013e5b15613d1e57565b604051630a12f52160e11b8152600490fd5b613d17565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d635750505050565b613d6c81611fee565b90546003916001600160a01b039190831b1c811685821614613d92575050600101613d56565b929350939060001991828101908111613e1f5790613dc384613db6613de294611fee565b905490891b1c1691611fee565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613e0a570192613df584611fee565b81939154921b1b1916905555388080806121e7565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613eca81518092818552858086019101612250565b601f01601f1916010190565b91908110156120255760051b81013590601e198136030182121561175b5701908135916001600160401b03831161175b57602001823603811361175b579190565b91908110156120255760051b0190565b600154811015612025576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613fa381613f9d8454612180565b84612273565b6000601f8211600114613fdc5781929394600092613fd15750508160011b916000199060031b1c1916179055565b013590503880612307565b601f198216948382526020918281209281905b8882106140275750508360019596971061400d57505050811b019055565b0135600019600384901b60f8161c19169055388080612358565b80600184968294958701358155019501920190613fef565b9061404c60418214613951565b8060011161175b576140679136916000190190600101611c63565b80516020909101206001600160a01b031690565b60ff60125460101c1661408a57565b60405163248c8efb60e11b8152600490fd5b906140b1906140ab818461428f565b826128cd565b60ff60125460081c16156140c25750565b60018054600082815b83811061423f575b5050156140df57505050565b6001600160a01b0383166000908152601560205260409020828101546141359490916003016040519261411184611c0c565b835260209361413c8585019260018060a01b038095168452604051988980926121ba565b0388611c27565b60408401968752600160401b8110156104fd57808661415d92018755613f27565b92909261089d576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576141a4836125e38754612180565b81601f84116001146141dd57509282939183926000946141d2575b50501b916000199060031b1c1916179055565b0151925038806141bf565b919083601f1981168760005284600020946000905b88838310614225575050501061420c57505050811b019055565b015160001960f88460031b161c19169055388080612358565b8587015188559096019594850194879350908101906141f2565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614614285570183906140cb565b50905082386140d3565b60018060a01b031660005260156020526142b26002604060002001918254611e4e565b9055565b919060405192816020850152602084526142cf84611bde565b6001600160401b03601c541693604051946142e986611c0c565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161431d81612160565b61432681612160565b60ff80198a54169116178855519687516001600160401b0381116104fd5761435e816143556001850154612180565b60018501612273565b6020601f821160011461443057614417949282600080516020614fe18339815191529795936002936122ae9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc82612398565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a161428f565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a35750926001836122ae9b9c6002946144179997600080516020614fe18339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60135416600381101561216a576108d757565b601454600a548110156144e1575b50565b61ffff601654166001600160401b03600c541611156144fd5750565b61010061ff00196012541617601255604080516020908181018282526001805480925284830190858360051b850101926000958287527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69387905b898483106145ec575050505050505090807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a160018060a01b03600e54166145a66002548095611e4e565b93813b156109ee57906024839285519687938492637903ab2760e11b845260048401525af19182156145e2575050156144de576122ae90611bf9565b51903d90823e3d90fd5b92600361462a87989995839798949596603f198d82030187528b54815260018060a01b03868d01541685820152606080928201520160028b016121ba565b9801920192019094939291614558565b6146426144bb565b80156146a957336000908152601560205260409020600201548015611aff578110156146985760ff60125460081c1615614680576122ae903361470e565b8061468e6122ae92336146bb565b610f368133612973565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146fc576146e89161291d565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472784611bde565b6001600160401b03601c5416936040519461474186611c0c565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161477581612160565b61477e81612160565b60ff80198a54169116178855519687516001600160401b0381116104fd576147ad816143556001850154612180565b6020601f821160011461487f57614866949282600080516020614fe18339815191529795936002936122ae9c9d600092614874575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482b82612398565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a16146bb565b0151905038806147e2565b6001830160005260206000209960005b601f19841681106148f25750926001836122ae9b9c6002946148669997600080516020614fe18339815191529b9997601f198116106148d9575b505050811b0160018201556147fa565b015160001960f88460031b161c191690553880806148c9565b828201518c556001909b019a6020928301920161488f565b60ff60125460081c166149f7575b336000908152601560205260409020600201548015611aff5761493a33614a04565b50600090338252602460205281604081206149558154612180565b806149ba575b50505060ff60125460081c1615614977576122ae91503361470e565b60406122ae923381526003602052205480614998575b5061468e81336146bb565b806149a86149b49260025461291d565b600255610f3633613d4d565b3861498d565b82601f82116001146149d2575050555b81388061495b565b90918082526149f0601f60208420940160051c840160018501611fc3565b55556149ca565b6149ff6144bb565b614918565b6000818152602660205260408120549091908015614ae95760001990808201818111614ad55760255490838201918211614ac157808203614a8d575b5050506025548015614a7957810190614a588261203b565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aab614a9c6120ab9361203b565b90549060031b1c92839261203b565b9055845260266020526040842055388080614a40565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b80518210156120255760209160051b010190565b919091821561340f576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614c915780614bf25750600b54614b4c9161291d565b8152602283528181208251808286829454938481520190855286852092855b88828210614bdc57505050614b8292500382611c27565b928351948515612eb257858110612eb25785900493825b868110614ba95750505050505050565b6001906001600160a01b03614bbe8285614aee565b5116855260218452858520614bd4888254611e4e565b905501614b99565b8554845260019586019587955093019201614b6b565b846001859214600014614c4257606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cb283611cde565b93604094614cc286519182611c27565b848152601f19614cd186611cde565b0194602095368784013760005b818110614da857505060009461ffff8060165416600192839182945b614d57575b505050505060ff600e5460a01c1694858102958187041490151715611e5b576064614d2b950491614e1f565b9015614d35575050565b600681101561216a5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614da05760009081526018855220548493929186918591614d9691614d90906001600160a01b0316613133565b90611e4e565b9b01169493614cfa565b505098614cff565b6001600160a01b0380614dbb8387614aee565b51166000526017885261ffff89600020541615614dfb5790614dea600192614de38388614aee565b5116613133565b614df48286614aee565b5201614cde565b8890614e0960249387614aee565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f075782518514801590614efc575b614eef579392919085945b848610614e67575050505050501015614e5f57600090600590565b600190600090565b909192939495614e81614e7a8884614aee565b5184614f14565b50614e8b81612160565b614ede576001600160a01b0380614ea28a88614aee565b5116911603614ece57614ec2600191614ebb8988614aee565b5190611e4e565b96019493929190614e44565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e39565b5050505050905090600290565b8151919060418303614f4557614f3e92506020820151906060604084015193015160001a90614f50565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fd457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fc85780516001600160a01b03811615614fbf57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212208365497f3930f76c2e44a97011eac04d4fdac27c51258885a3dbc3b6ce4a273664736f6c63430008130033","sourceMap":"215:373:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;215:373:99;;582:20:68;578:50;;215:373:99;477:1:68;215:373:99;;;982:72:66;;:::i;:::-;17146:10:85;:44;;;;;215:373:99;;;;;;;;;;;;17146:44:85;;17179:10;215:373:99;17146:44:85;;215:373:99;17146:44:85;;;;;;;;;;;215:373:99;;;;;;17146:44:85;;;;:::i;:::-;215:373:99;;17146:44:85;;;;215:373:99;;;17146:44:85;215:373:99;;;;;;;;;17146:44:85;215:373:99;;;578:50:68;215:373:99;;-1:-1:-1;;;611:17:68;;215:373:99;;611:17:68;215:373:99;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::i;:::-;4273:61:72;;;;:::i;:::-;10233:10:85;;:::i;:::-;215:373:99;1693:14:71;215:373:99;;;;;;;;1726:24:71;1693:57;1689:146;;10337:34:85;;;10333:98;;10445:38;;;10441:102;;10557:14;215:373:99;;;;;;;;6249:9:71;6260:10;;;;;;10553:229:85;;;;;;;215:373:99;;6249:9:71;6346:33;6365:13;;;;;:::i;:::-;6346:33;;:::i;:::-;-1:-1:-1;;;;;6417:13:71;;;;;;:::i;:::-;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;;;6397:33:71;6393:100;;1243:27:70;6684:13:71;;;;;;:::i;:::-;6709;;;;;:::i;:::-;6732:9;;;;;;;;:::i;:::-;215:373:99;;;;1243:27:70;;;215:373:99;;1243:27:70;;215:373:99;;;;;;:::i;:::-;;;;;;1243:27:70;215:373:99;;1243:27:70;;;;;;:::i;:::-;-1:-1:-1;;;;;21913:11:69;215:373:99;;;;;;;:::i;:::-;;;;;3528:63:70;;215:373:99;;;;;;;;;;;3528:63:70;;215:373:99;;;;3489:15:70;215:373:99;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;1726:24:71;215:373:99;;;;:::i;:::-;1726:24:71;215:373:99;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;1726:24:71;215:373:99;;;;;;;;;-1:-1:-1;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;21913:11:69;215:373:99;;;21913:11:69;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1496:205:70;;;215:373:99;6249:9:71;;215:373:99;;;;-1:-1:-1;215:373:99;;;;;;1726:24:71;215:373:99;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;1726:24:71;215:373:99;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;6393:100:71;215:373:99;;-1:-1:-1;;;6457:21:71;;215:373:99;;6457:21:71;10553:229:85;4447:9:71;;;;;;4458:10;;;;;;215:373:99;;;;;;-1:-1:-1;;;;;5341:15:71;215:373:99;;-1:-1:-1;5331:25:71;5327:91;;215:373:99;;;10557:14:85;215:373:99;;;10557:14:85;215:373:99;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;5464:39:71;;;;;;;;;;;;5596:16;215:373:99;;;;;-1:-1:-1;;;;;215:373:99;5587:84:71;;;;;215:373:99;;;;;;;;;;;;5587:84:71;;;215:373:99;5587:84:71;;215:373:99;5587:84:71;;;;;;;;10553:229:85;;215:373:99;;5587:84:71;;;;:::i;:::-;215:373:99;;;;5587:84:71;215:373:99;;;;;;;;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5327:91:71;215:373:99;;-1:-1:-1;;;5379:28:71;;215:373:99;;5379:28:71;4447:9;4544:33;4563:13;;;;;:::i;4544:33::-;-1:-1:-1;;;;;215:373:99;;;4615:13:71;;;;;;:::i;:::-;215:373:99;;;4595:33:71;4591:100;;16026:34:69;4832:13:71;;;;;;:::i;:::-;16026:34:69;:::i;:::-;4808:112:71;;4983:13;4968;;;;;;:::i;:::-;4983;;;;;:::i;:::-;;;:::i;:::-;19151:5:69;5051:13:71;;;;;;:::i;:::-;5066:9;;;;;:::i;:::-;215:373:99;19151:5:69;;:::i;:::-;5133:13:71;;;;;;:::i;:::-;5156:9;;;;;;:::i;:::-;215:373:99;5177:13:71;215:373:99;5177:13:71;;;;;:::i;:::-;215:373:99;;;;;;:::i;:::-;;;5116:76:71;215:373:99;5116:76:71;;215:373:99;;;;;;;:::i;:::-;5116:76:71;215:373:99;5116:76:71;;215:373:99;;;1726:24:71;215:373:99;-1:-1:-1;;;215:373:99;;;;;;1726:24:71;215:373:99;;;1726:24:71;215:373:99;;:::i;:::-;;;;;;;;;1726:24:71;215:373:99;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;-1:-1:-1;;;;215:373:99;;;;;;;;;;;;;;;;4447:9:71;;215:373:99;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;4808:112:71;215:373:99;;-1:-1:-1;;;4877:28:71;;215:373:99;;4877:28:71;10441:102:85;215:373:99;;-1:-1:-1;;;10506:26:85;;215:373:99;;10506:26:85;1689:146:71;2502:71:45;215:373:99;;:::i;:::-;;;-1:-1:-1;;;1773:51:71;;215:373:99;;1773:51:71;;2502:71:45;215:373:99;;;;2502:71:45;;;;:::i;:::-;1773:51:71;;;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;215:373:99;;582:20:68;578:50;;215:373:99;477:1:68;215:373:99;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;;:::i;:::-;215:373:99;;;;;;;;;;-1:-1:-1;;215:373:99;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;23968:11:69;215:373:99;;;;;;;;561:17;;;:::i;215:373::-;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::i;:::-;982:72:66;;;:::i;:::-;3298:30:85;215:373:99;;3331:21:85;215:373:99;3298:54:85;;;;;:::i;:::-;215:373:99;;;3272:22:85;215:373:99;3272:80:85;;:152;;;215:373:99;3255:236:85;;215:373:99;;3535:22:85;3599:54;215:373:99;3535:22:85;;;;;;;:::i;:::-;;215:373:99;3535:22:85;215:373:99;;3535:22:85;;;;;;;;:::i;:::-;215:373:99;3525:33:85;;3599:54;;;:::i;:::-;215:373:99;;;3272:22:85;215:373:99;3573:80:85;215:373:99;;;;;;;;3753:104:85;215:373:99;;;;;;:::i;:::-;;;;;:::i;:::-;3753:104:85;;:::i;:::-;215:373:99;;;3272:22:85;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;:::i;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;215:373:99;;;;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;;3569:2184:85;215:373:99;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;3272:22:85;;215:373:99;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;:::i;:::-;;;;;;;;;;;;3272:22:85;215:373:99;;;4241:35:85;215:373:99;;8399:50:36;215:373:99;;;4305:10:85;8399:50:36;;:::i;:::-;-1:-1:-1;215:373:99;;;3272:22:85;215:373:99;3298:30:85;215:373:99;4465:16:85;215:373:99;-1:-1:-1;;;;;215:373:99;4456:55:85;;;;;215:373:99;;-1:-1:-1;;;4456:55:85;;215:373:99;;;;;;;;;;;4456:55:85;;215:373:99;4456:55:85;;;:::i;:::-;;;;;;;;;;;215:373:99;4616:34:85;;;;;;:::i;:::-;;:::i;4456:55::-;;;;:::i;:::-;215:373:99;;4456:55:85;;;;215:373:99;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;215:373:99;;;;;;;;3569:2184:85;215:373:99;;;;;;;;;;3272:22:85;215:373:99;4672:56:85;4668:1085;;3569:2184;;215:373:99;;4668:1085:85;215:373:99;;;3272:22:85;215:373:99;;;;;;;;;;;5461:58:85;215:373:99;5461:58:85;;215:373:99;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;5461:58:85;;;;;;;;-1:-1:-1;5461:58:85;;:::i;:::-;215:373:99;5451:69:85;;5538:36;5534:209;;215:373:99;;5534:209:85;215:373:99;;;3272:22:85;215:373:99;;;5653:35:85;215:373:99;;8399:50:36;215:373:99;;;5717:10:85;8399:50:36;;:::i;:::-;;215:373:99;;;;;-1:-1:-1;;;;;215:373:99;;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;3255:236:85;215:373:99;;-1:-1:-1;;;3456:24:85;;215:373:99;;3456:24:85;3272:152;215:373:99;;;;;3272:22:85;215:373:99;3368:56:85;;3272:152;;215:373:99;;;;;;;;;;;;;;;;;2234:10:85;;:::i;:::-;982:72:66;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1883:4:66;215:373:99;;;;;;;;1902:20:66;215:373:99;;;1911:10:66;215:373:99;;1902:20:66;215:373:99;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;582:20:68;578:50;;215:373:99;;;9203:11:85;;9199:65;;215:373:99;9278:14:85;215:373:99;;;;9274:79:85;;9384:10;215:373:99;;;;;;;;;;9367:37:85;9363:93;;9708:6;9384:10;;;215:373:99;;;;;;;;9466:38:85;215:373:99;;;9466:38:85;:::i;:::-;215:373:99;;9514:29:85;215:373:99;9514:19:85;215:373:99;9514:29:85;:::i;:::-;:19;215:373:99;9384:10:85;215:373:99;;;;;;;;;9558:33:85;9554:114;;215:373:99;9384:10:85;9708:6;:::i;9554:114::-;9646:10;9384;9646;:::i;:::-;9554:114;;9363:93;215:373:99;;-1:-1:-1;;;9427:18:85;;215:373:99;;9427:18:85;9274:79;215:373:99;;-1:-1:-1;;;9315:27:85;;215:373:99;;9315:27:85;9199:65;215:373:99;;-1:-1:-1;;;9237:16:85;;215:373:99;;9237:16:85;215:373:99;-1:-1:-1;215:373:99;;-1:-1:-1;;215:373:99;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;477:1:68;-1:-1:-1;;;;;;;;;;;215:373:99;582:20:68;578:50;;477:1;-1:-1:-1;;;;;;;;;;;215:373:99;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;215:373:99;11499:14:85;215:373:99;;;;11495:89:85;;;215:373:99;11597:9:85;:14;11593:70;;11700:10;215:373:99;;;;25176:25:69;215:373:99;;;;;17433:25:69;:52;215:373:99;11673:110:85;;372:2:40;215:373:99;;;;11797:57:85;11793:232;;11700:10;-1:-1:-1;;;;;12062:44:85;215:373:99;;;;;;;12062:44:85;:::i;:::-;215:373:99;12120:30:85;12116:89;;215:373:99;;;;12517:9:85;215:373:99;;;;;;11700:10:85;12517:9;:::i;:::-;12583;11597;11700:10;12583:9;:::i;:::-;12608:14;;:::i;:::-;215:373:99;-1:-1:-1;;;;;;;;;;;215:373:99;;;12215:670:85;215:373:99;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22229:11:69;215:373:99;;;;;;;;;:::i;:::-;17433:25:69;215:373:99;;;3528:63:70;;215:373:99;;;11700:10:85;215:373:99;3528:63:70;;215:373:99;;;;3489:15:70;215:373:99;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;477:1:68;215:373:99;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;17433:25:69;215:373:99;;;;;;;;;;;;477:1:68;215:373:99;;;;;;;;;;;477:1:68;215:373:99;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;22229:11:69;215:373:99;;;22229:11:69;215:373:99;;;;;;17433:25:69;215:373:99;;11700:10:85;215:373:99;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;747:200:70;;;12864:9:85;11597;11700:10;12864:9;:::i;:::-;12215:670;;215:373:99;;;;-1:-1:-1;215:373:99;;;;;;477:1:68;215:373:99;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;17433:25:69;215:373:99;;;;;477:1:68;215:373:99;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;;;;;;;;;;;;;477:1:68;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;215:373:99;;;;;;;;;;;;;;;11793:232:85;215:373:99;;-1:-1:-1;;;11990:24:85;;215:373:99;;11990:24:85;11673:110;2502:71:45;215:373:99;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;13582:42:85;;;;;;11734:38;;215:373:99;;11734:38:85;;2502:71:45;215:373:99;2502:71:45;;;;:::i;11593:70:85:-;215:373:99;;-1:-1:-1;;;11634:18:85;;215:373:99;;11634:18:85;11495:89;11529:14;;:::i;:::-;11495:89;;215:373:99;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;477:1:68;247:48;-1:-1:-1;;;;;;;;;;;215:373:99;;;582:20:68;578:50;;215:373:99;;;982:72:66;;:::i;:::-;17000:10:85;215:373:99;;;;3658:13:69;215:373:99;;;;;;;;;;;;;;1777:16:69;;;1773:78;;215:373:99;;;;;1895:25:69;;1930:14;;;2019:13;;;;1954:477;477:1:68;;;1954:477:69;215:373:99;;;;23200:36:69;215:373:99;23200:36:69;215:373:99;;;;;;;;;;;;;;;;;;;;;;;3707:14:69;3703:76;;1954:477;3818:6;17000:10:85;;3818:6:69;:::i;:::-;215:373:99;;;17000:10:85;215:373:99;;;;;;;;;;;;;;;;;23200:36:69;;;;215:373:99;;;3703:76:69;17000:10:85;215:373:99;;;;3658:13:69;215:373:99;;;;;17000:10:85;;215:373:99;3703:76:69;;1954:477;215:373:99;;;;;;;1961:10:69;;;;;;;215:373:99;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2204:12:69;-1:-1:-1;2180:76:69;;2270:24;;;;;;;;;;;;;:::i;:::-;215:373:99;;;;;;;;;;;;;;;;;;;;;1954:477:69;;;2180:76;2236:5;;;;;;;;1961:10;;;;;;;1773:78;215:373:99;;-1:-1:-1;;;1816:24:69;;215:373:99;;1816:24:69;215:373:99;-1:-1:-1;215:373:99;;-1:-1:-1;;215:373:99;;;;;;;;;;;;982:72:66;;:::i;:::-;4004:16:72;215:373:99;-1:-1:-1;;;;;215:373:99;3990:10:72;:30;3986:80;;4259:1;215:373:99;;;;;4259:1:72;:::i;3986:80::-;215:373:99;;-1:-1:-1;;;4043:12:72;;215:373:99;;4043:12:72;215:373:99;;;;;;;;;;;;;4273:61:72;;:::i;:::-;215:373:99;17942:86:69;215:373:99;17942:32:69;215:373:99;;;17987:31:69;215:373:99;;17942:86:69;;:::i;:::-;215:373:99;16672:97:85;;16779:8;215:373:99;;-1:-1:-1;;215:373:99;;;;;16813:16:85;215:373:99;;;-1:-1:-1;;;;;215:373:99;16804:33:85;;;;;215:373:99;;;;;;;;;;;;;16804:33:85;;;;;;;;;;215:373:99;;16672:97:85;215:373:99;;-1:-1:-1;;;16732:26:85;;215:373:99;;16732:26:85;215:373:99;;;;;;;;;;;;;2421:10:85;;:::i;:::-;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;1384:9:66;1380:62;;215:373:99;;;;;2212:20:66;215:373:99;;;2221:10:66;215:373:99;;2212:20:66;215:373:99;;1380:62:66;215:373:99;;-1:-1:-1;;;1416:15:66;;215:373:99;;1416:15:66;215:373:99;;;;;;;;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;13386:14:85;;:::i;:::-;13444:9;:14;13440:70;;13548:10;215:373:99;;;;25176:25:69;215:373:99;;;;;17433:25:69;:52;215:373:99;17433:57:69;13520:115:85;;13650:14;215:373:99;;;;;;;13722:9:85;13444;13548:10;13722:9;:::i;:::-;13747:14;;:::i;13645:225::-;13849:9;13444;13548:10;13849:9;:::i;13520:115::-;2502:71:45;215:373:99;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;13582:42:85;;;;;;;;215:373:99;;13582:42:85;;2502:71:45;;;;;;:::i;215:373:99:-;;;;;;;-1:-1:-1;;215:373:99;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;381:20;;;:::i;215:373::-;;;;;;;;;;;-1:-1:-1;;215:373:99;;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;215:373:99;;4326:1:72;:::i;215:373:99:-;;;;;-1:-1:-1;;215:373:99;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;6337:17:85;215:373:99;6337:17:85;;215:373:99;;6357:19:85;215:373:99;6337:51:85;;;;6333:108;;215:373:99;6454:10:85;;;;;;:::i;:::-;215:373:99;;;6474:25:85;215:373:99;;6454:45:85;;;6450:108;;6664:10;;;;:::i;:::-;:46;;;;:99;;;215:373:99;6660:156:85;;6829:10;;;;:::i;:::-;:22;;;6825:81;;215:373:99;;;;;6946:17:85;;;;;;;;;:::i;:::-;;215:373:99;;6946:17:85;;;;;;:::i;:::-;215:373:99;6936:28:85;;;6979:52;;;;215:373:99;;;;;;7310:24:85;215:373:99;7297:37:85;7293:200;;6975:1250;215:373:99;;7293:200:85;215:373:99;;7413:30:85;215:373:99;;8399:50:36;215:373:99;;;7467:10:85;8399:50:36;;:::i;6975:1250:85:-;7607:99;215:373:99;;;;;;;;;;;;;;;:::i;7607:99:85:-;215:373:99;;;;;;;:::i;:::-;;;;7906:71:85;215:373:99;;6357:19:85;215:373:99;;;;;8047:30:85;215:373:99;;8399:50:36;215:373:99;;;8101:10:85;8399:50:36;;:::i;:::-;-1:-1:-1;8169:16:85;215:373:99;-1:-1:-1;;;;;215:373:99;;8160:54:85;;;;;215:373:99;;8160:54:85;215:373:99;;;;;;;;;;;;8160:54:85;;215:373:99;8160:54:85;;;:::i;:::-;;;;;;;;;;;6975:1250;215:373:99;;8160:54:85;;;;:::i;6825:81::-;215:373:99;;-1:-1:-1;;;6874:21:85;;215:373:99;;6874:21:85;6660:156;215:373:99;;-1:-1:-1;;;6786:19:85;;215:373:99;;6786:19:85;6664:99;215:373:99;6734:24:85;215:373:99;;;;;;;6714:49:85;;6664:99;;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;6450:108:85;215:373:99;;-1:-1:-1;;;6522:25:85;;215:373:99;;6522:25:85;215:373:99;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;982:72:66;;;:::i;:::-;17437:10:85;215:373:99;;1317:17:79;215:373:99;;;;;;;;1317:33:79;17399:107:85;;215:373:99;;17519:29:85;17515:81;;17437:10;215:373:99;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:50:36;17437:10:85;8399:50:36;:::i;215:373:99:-;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;;;17515:81:85;215:373:99;;-1:-1:-1;;;17571:14:85;;215:373:99;;17571:14:85;17399:107;215:373:99;;-1:-1:-1;;;17471:24:85;;17437:10;215:373:99;17471:24:85;;215:373:99;;;17471:24:85;215:373:99;;;;;;;;;;;8507:9:85;:14;8503:68;;215:373:99;;8585:14:85;215:373:99;;;;8581:79:85;;8691:10;215:373:99;;;;;;;;;8674:33:85;8670:101;;215:373:99;8691:10:85;215:373:99;;;;;;;;8781:41:85;8507:9;215:373:99;;8781:41:85;:::i;:::-;215:373:99;;8832:32:85;8507:9;8832:19;215:373:99;8832:32:85;:::i;:::-;:19;215:373:99;;;8670:101:85;215:373:99;;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;8691:10:85;215:373:99;;;;;;;;8670:101:85;;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;8503:68:85;-1:-1:-1;;;8544:16:85;;215:373:99;;8544:16:85;215:373:99;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;:::o;:::-;-1:-1:-1;;;;;215:373:99;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;:::o;:::-;-1:-1:-1;;;;;215:373:99;;;;;;-1:-1:-1;;215:373:99;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;:::o;:::-;-1:-1:-1;;;;;215:373:99;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2587:156:62;2663:30;215:373:99;-1:-1:-1;;;;;215:373:99;2649:10:62;:44;2645:92;;2587:156::o;2645:92::-;215:373:99;;-1:-1:-1;;;2716:10:62;;;;;1122:128:66;215:373:99;-1:-1:-1;;;;;;;;;;;215:373:99;;1183:61:66;;1122:128::o;1183:61::-;215:373:99;;-1:-1:-1;;;1218:15:66;;;;;215:373:99;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;215:373:99;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;;;;;215:373:99;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;215:373:99;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;215:373:99;;;;-1:-1:-1;215:373:99;:::o;:::-;;;;;;;;;;;;;17707:17:85;215:373:99;;;;;;17707:17:85;-1:-1:-1;215:373:99;;;;-1:-1:-1;215:373:99;:::o;2215:404:36:-;-1:-1:-1;215:373:99;;;4352:12:36;215:373:99;;;;;;;;17707:17:85;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;;;4352:12:36;215:373:99;;;17707:17:85;215:373:99;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;17707:17:85;215:373:99;;;;4352:12:36;215:373:99;;;;4352:12:36;2548:11;:::o;2294:319::-;2590:12;;;:::o;2215:404::-;;;4352:12;;;-1:-1:-1;215:373:99;;;;;;;;;;;4352:24:36;2294:319;215:373:99;;;;;;-1:-1:-1;;;215:373:99;;;;;4352:12:36;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:36;2548:11;:::o;215:373:99:-;-1:-1:-1;;;215:373:99;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;;;2294:319:36;-1:-1:-1;2590:12:36;-1:-1:-1;;2590:12:36:o;215:373:99:-;;-1:-1:-1;215:373:99;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;215:373:99;;;;-1:-1:-1;215:373:99;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;215:373:99;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;215:373:99;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;:::o;24177:1944:69:-;24359:11;215:373:99;-1:-1:-1;;;;;215:373:99;;;;;;;;24385:56:69;;215:373:99;;;;-1:-1:-1;;;24464:28:69;;;;;24381:221;215:373:99;;;;;24513:56:69;;24509:93;;215:373:99;;;;;;24694:24:69;215:373:99;;;;24694:24:69;;;;26026:23;;;215:373:99;26026:23:69;;26065:49;26026:23;;:::i;:::-;-1:-1:-1;;;24359:11:69;215:373:99;;;;;;-1:-1:-1;;;215:373:99;;;24359:11:69;215:373:99;;;;;26065:49:69;24177:1944::o;24676:16::-;3893:36:70;;;-1:-1:-1;;;;;215:373:99;;;3893:15:70;215:373:99;;;;;;;3893:36:70;24823:16:69;;;;215:373:99;;;;;24823:16:69;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;:::i;:::-;24858:41:69;;;24823:16;;24967:14;;24919:45;:36;215:373:99;;24967:14:69;;;;;24919:36;215:373:99;;;;;;;;25176:25:69;215:373:99;;;;;;;24919:36:69;:45;215:373:99;:::i;:::-;4051:36:70;;-1:-1:-1;;;;;215:373:99;;;3893:15:70;215:373:99;;;;;;;4051:36:70;3793:45:72;;215:373:99;;;;;;;;;;;:::i;:::-;;;;;24676:16:69;;24854:1017;215:373:99;;;;;;;:::i;:::-;25019:34:69;;25006:47;;;25019:34;;215:373:99;;;;;;;;;;25125:14:69;;;215:373:99;:::i;:::-;;;;:::i;:::-;;;25114:44:69;;;;;;;;;;215:373:99;;;;;25114:44:69;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;25176:36:69;;;;215:373:99;;;;;;;;25176:25:69;215:373:99;;;;;;;25176:36:69;:45;215:373:99;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;25298:5:69;215:373:99;;;;;;;;;3793:45:72;215:373:99;;;;;;;;;;;;;;;;;;25298:5:69;:::i;:::-;24854:1017;;215:373:99;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;3793:45:72;215:373:99;;;3793:45:72;215:373:99;;3793:45:72;215:373:99;;;;;;;;;25298:5:69;215:373:99;;;;;;;;;;;;;;;;;25298:5:69;:::i;215:373:99:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;3793:45:72;215:373:99;;;;;;;;;25002:869:69;215:373:99;;;;;;;;;;;;;;;25371:14:69;;;215:373:99;:::i;:::-;25360:37:69;215:373:99;;;;25360:37:69;;215:373:99;;;;25360:37:69;;;;;215:373:99;;;;;:::i;:::-;25420:38:69;3893:15:70;;25524:6:69;;;;;;:::i;:::-;25553:14;215:373:99;3147:35:69;;:12;:35;:::i;:::-;215:373:99;;;;;;;:::i;:::-;;;;3224:54:69;;;215:373:99;;;-1:-1:-1;;;;;215:373:99;;;;;;3658:13:69;215:373:99;;;;;3224:54:69;;215:373:99;;;;;;;;;;;;;;;;;;;1273:22:69;;;;:::i;:::-;215:373:99;3793:45:72;;215:373:99;;;1306:13:69;;;215:373:99;;;;;;;;;;;;1362:10:69;;;:::i;:::-;215:373:99;;;;;;;;;;;;;;;;;;;;;;3343:85:69;;;25631:16;215:373:99;;25622:47:69;;;;;;215:373:99;;;;;;;;;;;;;;;25622:47:69;;;;;215:373:99;25622:47:69;;;;;;;;;;;;;;;25416:441;;24854:1017;;25622:47;;;;:::i;:::-;;;;;215:373:99;;;;;;;;;;25416:441:69;25757:6;;;;;;;;;;:::i;:::-;25795:16;215:373:99;;25786:52:69;;;;;;215:373:99;;;;;;25786:52:69;;3793:45:72;25786:52:69;3793:45:72;;25786:52:69;;;;;;;;;;;;;;;;;;25416:441;24854:1017;;215:373:99;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;9330:540:69:-;;215:373:99;;;;;;;-1:-1:-1;215:373:99;9465:15:69;215:373:99;;;-1:-1:-1;215:373:99;;;;;;9580:22:69;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:69;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;9876:404::-;;10258:13;9876:404;10143:39;215:373:99;;;;;;;;;-1:-1:-1;215:373:99;10005:15:69;215:373:99;;10005:55:69;215:373:99;;;-1:-1:-1;215:373:99;10005:46:69;215:373:99;10005:55:69;:::i;:::-;215:373:99;-1:-1:-1;215:373:99;10005:15:69;215:373:99;;;;;-1:-1:-1;215:373:99;10070:46:69;215:373:99;10143:29:69;215:373:99;10143:39:69;:::i;:::-;:29;215:373:99;10258:13:69;:::i;215:373:99:-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;10286:616:69:-;;10830:13;10856:39;10286:616;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;10416:15:69;215:373:99;;10416:55:69;215:373:99;;;;;10416:46:69;215:373:99;10416:55:69;:::i;:::-;215:373:99;;;10416:15:69;215:373:99;;;;;10416:15:69;10507:42;;215:373:99;;;10564:18:69;;:42;;;;10286:616;-1:-1:-1;10560:199:69;;;215:373:99;;;;;;;;;;;;;;;;;:::i;:::-;10830:13:69;:::i;:::-;10856:29;215:373:99;10856:39:69;:::i;:::-;:29;215:373:99;10286:616:69:o;10560:199::-;10686:46;;;215:373:99;10686:46:69;215:373:99;10830:13:69;:::i;10564:42::-;10586:20;;;10564:42;;;11008:2209;;;215:373:99;;;;;;;;;-1:-1:-1;215:373:99;;;;;;1317:17:79;215:373:99;;;;;;;;;;;;11120:226:69;;215:373:99;1693:14:71;215:373:99;;;;;11124:21:69;215:373:99;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;215:373:99;;;;;4077:23:77;215:373:99;;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;215:373:99;;;1317:17:79;215:373:99;;;;;;;;12866:229:69;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;13168:42:69;;;;11008:2209::o;12866:229::-;3147:36:77;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;215:373:99;;;;4619:7:77;;;4612:423;-1:-1:-1;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;-1:-1:-1;;;;215:373:99;;;;;;;;;-1:-1:-1;13008:56:69;;215:373:99;;;;13008:56:69;215:373:99;4612:423:77;215:373:99;;1991:25:79;215:373:99;;;;;;;;;;;1952:17:79;215:373:99;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:69;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:79;12475:4:69;;;:::i;:::-;215:373:99;;;;;;12495:140:69;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;12495:140:69;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:78;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;215:373:99;11124:21:69;215:373:99;;4932:763:78;;215:373:99;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;-1:-1:-1;;;;215:373:99;;;;;;;5556:5:78;;-1:-1:-1;11260:55:69;;-1:-1:-1;215:373:99;;;;11260:55:69;215:373:99;4971:413:78;215:373:99;;;;;1952:17:79;215:373:99;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;11260:55:69;4939:16:78;;;;;11260:55:69;4939:16:78;;;;13320:2014:69;;;215:373:99;;;;;;;;;-1:-1:-1;;215:373:99;;;;;1317:17:79;215:373:99;;;;;;;;;;;;13428:421:69;;215:373:99;;;1317:17:79;215:373:99;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;215:373:99;;;;;4277:7:78;;;;215:373:99;;;;;;;;;1952:17:79;215:373:99;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;13432:22:69;215:373:99;;14638:37:69;14634:74;;4023:26:77;;:::i;:::-;215:373:99;;;1952:17:79;215:373:99;;;;;;;;;4129:25:77;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;215:373:99;;;;;;;4129:25:77;;;;:::i;:::-;-1:-1:-1;14901:358:69;;-1:-1:-1;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;;15274:53:69;;215:373:99;;;;15274:53:69;215:373:99;14901:358:69;14979:4;;;;15176:52;;14979:4;;;:::i;:::-;15025;;:::i;14634:74::-;14691:7;;;;;;:::o;4277::78:-;;;;;;;;;;;;;14049:508:69;14126:9;;;;14155:30;14126:9;;;;;;;;;:::i;:::-;215:373:99;;;;;14155:30:69;13432:22;215:373:99;;14200:326:69;;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:77;4077:23;4023:26;;;;:::i;:::-;215:373:99;;;;;;;14472:39:69;4129:25:77;;;:::i;:::-;14378:4:69;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;215:373:99;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:77;215:373:99;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;215:373:99;;;;;;;;;13432:22:69;215:373:99;;5287:763:77;215:373:99;;;5287:763:77;-1:-1:-1;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;-1:-1:-1;;;;215:373:99;;;;;;;-1:-1:-1;215:373:99;;-1:-1:-1;13764:54:69;;215:373:99;-1:-1:-1;215:373:99;;;;13764:54:69;215:373:99;5287:763:77;215:373:99;;;5294:16:77;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;215:373:99;;1952:17:79;215:373:99;;;;;;;;1991:25:79;;215:373:99;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13490:185:69;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;215:373:99;;;;13605:31:69;13654:7::o;998:417:77:-;1401:5;998:417;1301:30;215:373:99;;1119:19:77;215:373:99;12499:22:69;215:373:99;;1119:19:77;:::i;:::-;215:373:99;;;;;;;;;;-1:-1:-1;215:373:99;1149:23:77;215:373:99;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;1200:23:77;215:373:99;;;-1:-1:-1;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;12499:22:69;215:373:99;;;12499:22:69;215:373:99;1301:30:77;:::i;:::-;1401:5;;:::i;4525:375:69:-;215:373:99;1693:14:71;215:373:99;;;;;;;;4697:24:69;4668:53;4697:24;;-1:-1:-1;;;;;215:373:99;-1:-1:-1;215:373:99;;;4745:21:69;215:373:99;;;;;;;4525:375:69:o;4664:230::-;-1:-1:-1;;;;;215:373:99;-1:-1:-1;215:373:99;;;4831:21:69;215:373:99;;;;;;4831:52:69;215:373:99;;4525:375:69:o;215:373:99:-;;;;;-1:-1:-1;;215:373:99;;;;;;;:::o;1545:401:77:-;215:373:99;;13432:22:69;215:373:99;;1044:14:79;;;1040:61;;215:373:99;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;215:373:99;;;;2468:17:79;215:373:99;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;2551:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1799:4:77;;215:373:99;1766:8:77;;215:373:99;1766:8:77;:::i;:::-;215:373:99;;13432:22:69;215:373:99;;;13432:22:69;215:373:99;1799:4:77;:::i;:::-;215:373:99;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;5160:26;1952:17:79;215:373:99;13432:22:69;215:373:99;;5287:763:77;215:373:99;;;5287:763:77;1545:401;;;;;;;;;;;:::o;5287:763::-;215:373:99;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;215:373:99;;;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;1040:61:79;215:373:99;;-1:-1:-1;;;1081:9:79;;;;;2081:787:77;2210:36;2081:787;2210:36;:::i;:::-;215:373:99;;;12499:22:69;215:373:99;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;215:373:99;;;12499:22:69;215:373:99;;;12499:22:69;215:373:99;2415:4:77;;;:::i;:::-;215:373:99;;;2435:11:77;;;2431:48;;-1:-1:-1;215:373:99;-1:-1:-1;;215:373:99;;;;1952:17:79;215:373:99;;;;;;;;;;;;;;2668:5:77;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;215:373:99;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;2854:5:77;;215:373:99;;;;;;;;;12499:22:69;215:373:99;;5287:763:77;215:373:99;;;2081:787:77;;;;;;;;;;;:::o;5287:763::-;215:373:99;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;215:373:99;;;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;5326:412:77;;2431:48;2462:7;;;:::o;4443:598::-;;;;4612:423;4625:1;215:373:99;;;;4619:7:77;;;;215:373:99;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;215:373:99;;;1952:17:79;215:373:99;;;;;;;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;215:373:99:-;;;;;;;;;;;;;;:::o;6117:442:77:-;;;;215:373:99;;;;;-1:-1:-1;215:373:99;1952:17:79;215:373:99;;1991:25:79;215:373:99;;;;;1991:25:79;215:373:99;;-1:-1:-1;215:373:99;;;1991:25:79;:::i;:::-;215:373:99;;;-1:-1:-1;215:373:99;1952:17:79;215:373:99;;;-1:-1:-1;215:373:99;;;1991:25:79;:::i;:::-;6662:7:77;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:77;;-1:-1:-1;6490:21:77:o;924:417:78:-;1327:5;924:417;1227:30;215:373:99;;1045:19:78;215:373:99;11124:21:69;215:373:99;;1045:19:78;:::i;:::-;215:373:99;;;;;;;;;;-1:-1:-1;215:373:99;1075:23:78;215:373:99;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;1126:23:78;215:373:99;;;-1:-1:-1;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;11124:21:69;215:373:99;;;11124:21:69;215:373:99;1227:30:78;:::i;:::-;1327:5;;:::i;1408:401::-;215:373:99;;11124:21:69;215:373:99;;1044:14:79;;;1040:61;;215:373:99;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;215:373:99;;;;2468:17:79;215:373:99;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;2551:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1662:4:78;;215:373:99;1629:8:78;;215:373:99;1629:8:78;:::i;:::-;215:373:99;;11124:21:69;215:373:99;;;11124:21:69;215:373:99;1662:4:78;:::i;:::-;215:373:99;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;4715:986:78;;4828:25;1952:17:79;215:373:99;11124:21:69;215:373:99;;4932:763:78;215:373:99;;;1408:401:78;;;;;;;;;;;:::o;4932:763::-;215:373:99;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;215:373:99;;;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;4971:413:78;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;215:373:99;;;;13888:21:69;215:373:99;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;215:373:99;;;13888:21:69;215:373:99;;;13888:21:69;215:373:99;2215:4:78;;;:::i;:::-;215:373:99;;;2235:11:78;;;2231:48;;-1:-1:-1;;;;215:373:99;;;;1952:17:79;215:373:99;;;;;;;;;;;;;;2466:3:78;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;215:373:99;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;2648:3:78;4846:7;2648:3;4846:7;:::i;:::-;4863:18;215:373:99;13888:21:69;215:373:99;;4932:763:78;;215:373:99;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;215:373:99;;;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;215:373:99;;;;4277:7:78;;;;215:373:99;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;215:373:99;;;1952:17:79;215:373:99;;;;;;;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;5763:443;;;215:373:99;;;;-1:-1:-1;215:373:99;1952:17:79;215:373:99;;1991:25:79;215:373:99;;;;;1991:25:79;215:373:99;;-1:-1:-1;215:373:99;;;1991:25:79;:::i;:::-;215:373:99;;;-1:-1:-1;215:373:99;1952:17:79;215:373:99;;;-1:-1:-1;215:373:99;;;1991:25:79;:::i;:::-;6308:7:78;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:79:-;215:373:99;11124:21:69;215:373:99;;1044:14:79;1040:61;;974:133::o;:::-;215:373:99;13432:22:69;215:373:99;;1044:14:79;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;215:373:99;-1:-1:-1;215:373:99;;;1474:17:79;215:373:99;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1512:71::-;215:373:99;;-1:-1:-1;;;1547:25:79;;;;;1363:226;-1:-1:-1;;;;;215:373:99;-1:-1:-1;215:373:99;;;1474:17:79;215:373:99;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1595:184::-;215:373:99;;-1:-1:-1;215:373:99;;;1671:17:79;215:373:99;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;-1:-1:-1;;;;;215:373:99;;;1749:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;1595:184:79:o;:::-;215:373:99;;-1:-1:-1;215:373:99;;;1671:17:79;215:373:99;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;-1:-1:-1;;;;;215:373:99;;;1749:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;1595:184:79:o;215:373:99:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:79;2416:25;215:373:99;;;11124:21:69;215:373:99;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;215:373:99;2423:17:79;;;;2416:25;:::i;:::-;-1:-1:-1;215:373:99;;;2468:17:79;215:373:99;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;2551:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;215:373:99;;;12870:22:69;215:373:99;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;215:373:99;;;2468:17:79;215:373:99;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;2551:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;2301:412:79:o;215:373:99:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;215:373:99;;;;;;;;-1:-1:-1;;215:373:99;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1530:331:29;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;215:373:99;1749:33:29;;215:373:99;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1749:33:29;215:373:99;;;;;;1796:8:29;1792:63;;1530:331::o;1792:63::-;215:373:99;;-1:-1:-1;;;1827:17:29;;;;;215:373:99;;;1611:109:29;215:373:99;;-1:-1:-1;;;1668:41:29;;1623:4;1668:41;;;215:373:99;;;1668:41:29;6969:557:71;7128:20;215:373:99;;;7170:9:71;3793:45:72;7181:10:71;;;;;;6969:557;;;;:::o;7170:9::-;7213:23;;;:::i;:::-;215:373:99;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;7213:31:71;7209:242;;215:373:99;;;;7170:9:71;;7209:242;215:373:99;;;;;;;;;;;;;;;;7290:32:71;7264:23;7290:32;;7264:58;7290:32;;:::i;:::-;215:373:99;;;;;;;7264:23:71;;:::i;:::-;:58;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;7264:58:71;215:373:99;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7431:5:71;;;;;;215:373:99;;;;;;3793:45:72;215:373:99;;;3793:45:72;215:373:99;;;;;;;3793:45:72;215:373:99;;;3793:45:72;215:373:99;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;;:::o;2502:71:45:-;;215:373:99;2502:71:45;;215:373:99;;;;;;;;;;;2502:71:45;;;:::i;:::-;215:373:99;;-1:-1:-1;;215:373:99;2502:71:45;;;:::o;215:373:99:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;1726:24:71;215:373:99;;;;;;;;1726:24:71;-1:-1:-1;215:373:99;;;;;-1:-1:-1;215:373:99;:::o;19251:224:69:-;-1:-1:-1;;;;;215:373:99;;;;;25176:25:69;215:373:99;;;;;19251:224:69;;;;8282:41;;215:373:99;-1:-1:-1;;;;;215:373:99;;;;;;;;;;:::i;:::-;;;:::i;:::-;3793:45:72;215:373:99;;;;;;;;;;;3793:45:72;215:373:99;;;;;;;;;;;;8282:41:69;215:373:99;;;;;;;19251:224:69:o;215:373:99:-;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19251:224:69:o;215:373:99:-;;;-1:-1:-1;;8282:41:69;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3527:269:71;;3623:65;372:2:40;3630:57:71;;3623:65;:::i;:::-;372:2:40;3735:1:71;372:2:40;;;215:373:99;;;;-1:-1:-1;;372:2:40;;3735:1:71;372:2:40;215:373:99;:::i;:::-;;;;;;;3715:24:71;-1:-1:-1;;;;;215:373:99;;3527:269:71:o;4078:118:72:-;215:373:99;4127:8:72;215:373:99;;;;4123:67:72;;4078:118::o;4123:67::-;215:373:99;;-1:-1:-1;;;4158:21:72;;;;;19573:1335:69;;19954:6;19573:1335;19831:6;;;;:::i;:::-;19954;;:::i;:::-;215:373:99;19977:14:69;215:373:99;;;;19976:15:69;19972:930;;19573:1335;:::o;19972:930::-;20165:19;215:373:99;;3793:45:72;20165:19:69;3793:45:72;20221:10:69;;;;;;20205:270;20492:17;;;20488:404;;19972:930;;19573:1335;:::o;20488:404::-;-1:-1:-1;;;;;215:373:99;;;;;;25176:25:69;215:373:99;;;;;20550:56:69;;;215:373:99;;;;;;20766:45:69;215:373:99;;;;;;:::i;:::-;;;20647:183:69;;215:373:99;20647:183:69;;;215:373:99;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;20647:183:69;;215:373:99;;;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3793:45:72;215:373:99;;;;;;;;;;;;;;;;;;;2462:7:77:o;215:373:99:-;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;3793:45:72;215:373:99;;3793:45:72;215:373:99;;3793:45:72;215:373:99;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;;;;;;20210:9:69;3793:45:72;215:373:99;;;;;;20257:27:69;;215:373:99;-1:-1:-1;;;;;215:373:99;;;;;20257:40:69;20253:137;;215:373:99;20210:9:69;;;;20253:137;20321:23;;;20366:5;;;;8648:175;215:373:99;;;;;;-1:-1:-1;215:373:99;8758:21:69;215:373:99;;8758:58:69;:21;215:373:99;-1:-1:-1;215:373:99;8758:48:69;215:373:99;;;8758:58:69;:::i;:::-;215:373:99;;8648:175:69:o;22329:256::-;;;215:373:99;;2707:18:70;;;;;215:373:99;2707:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22476:11:69;215:373:99;;;;;;;;;:::i;:::-;-1:-1:-1;215:373:99;;2707:18:70;3528:63;;215:373:99;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;215:373:99;3489:15:70;2707:18;215:373:99;;-1:-1:-1;215:373:99;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;2707:18:70;215:373:99;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;22571:6:69;215:373:99;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;22476:11:69;215:373:99;;;22476:11:69;215:373:99;;;;;;-1:-1:-1;215:373:99;;;;;;;;;2707:18:70;215:373:99;;;;;;;;;;;;;:::i;:::-;;;;;;2941:195:70;;;22571:6:69;:::i;215:373:99:-;;;;-1:-1:-1;215:373:99;;;;;;;;-1:-1:-1;215:373:99;2707:18:70;-1:-1:-1;215:373:99;;-1:-1:-1;215:373:99;-1:-1:-1;;215:373:99;;;;;;;;;;22571:6:69;215:373:99;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:70;215:373:99;;;;;;;1090:308:71;215:373:99;1233:14:71;215:373:99;;;;;;;;1229:147:71;;1090:308::o;2006:664::-;5112:35:69;215:373:99;2236:25:71;215:373:99;2217:44:71;;;2213:451;;2006:664;;:::o;2213:451::-;215:373:99;5328:27:69;215:373:99;;-1:-1:-1;;;;;2319:15:71;215:373:99;;-1:-1:-1;2281:53:71;2277:377;;2006:664;:::o;2277:377::-;215:373:99;;;2354:14:71;215:373:99;;;2354:14:71;215:373:99;;;;;;;;;;;;2417:19:71;215:373:99;;;;;;;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;2398:39:71;;;;;;;;;;;;;;215:373:99;;;;;2546:16:71;215:373:99;;2580:37:71;215:373:99;;2580:37:71;;;:::i;:::-;2537:102;;;;;;215:373:99;;;;;;;;;;;;;;2537:102:71;;;;;215:373:99;2537:102:71;;;;;;;;;;2213:451;2537:102;;;;:::i;:::-;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;14088:782:85;14312:14;;:::i;:::-;14371:11;;14367:68;;14502:10;215:373:99;;;;25176:25:69;215:373:99;;;;;18718:25:69;:52;215:373:99;14528:15:85;;14524:77;;14614:20;-1:-1:-1;14614:20:85;14610:79;;215:373:99;14703:14:85;215:373:99;;;;14702:15:85;14698:116;;14856:6;14502:10;;14856:6;:::i;14698:116::-;14502:10;21358:6:69;21588;14502:10:85;;21358:6:69;:::i;:::-;21482;14502:10:85;;21482:6:69;:::i;14610:79:85:-;215:373:99;;-1:-1:-1;;;14657:21:85;;;;;14367:68;215:373:99;;-1:-1:-1;;;14405:19:85;;;;;8895:364:69;-1:-1:-1;;;;;215:373:99;-1:-1:-1;215:373:99;;;9022:21:69;215:373:99;;;;;9022:21:69;:48;215:373:99;;;9084:14:69;;;9080:81;;9171:15;;;:::i;:::-;215:373:99;-1:-1:-1;215:373:99;9022:21:69;215:373:99;;9022:21:69;215:373:99;-1:-1:-1;215:373:99;9196:48:69;215:373:99;8895:364:69:o;9080:81::-;215:373:99;;-1:-1:-1;;;9121:29:69;;;;;22631:259;;;215:373:99;;2064:18:70;;;;;215:373:99;2064:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22779:11:69;215:373:99;;;;;;;;;:::i;:::-;2217:25:70;215:373:99;;2064:18:70;3528:63;;215:373:99;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;215:373:99;3489:15:70;2064:18;215:373:99;;-1:-1:-1;215:373:99;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;2217:25:70;215:373:99;;;;:::i;:::-;2064:18:70;215:373:99;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;22876:6:69;215:373:99;;-1:-1:-1;215:373:99;;;;;;;2217:25:70;215:373:99;;;;;;;;;;;2217:25:70;215:373:99;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;22779:11:69;215:373:99;;;22779:11:69;215:373:99;;;;;;2217:25:70;215:373:99;;;;;;;;;2064:18:70;215:373:99;;;;;;;;;;;;;:::i;:::-;;;;;;2299:196:70;;;22876:6:69;:::i;215:373:99:-;;;;-1:-1:-1;215:373:99;;;;;2217:25:70;215:373:99;;-1:-1:-1;215:373:99;2064:18:70;-1:-1:-1;215:373:99;;-1:-1:-1;215:373:99;-1:-1:-1;;215:373:99;;;;;;;;2217:25:70;215:373:99;22876:6:69;215:373:99;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;;;;;;;;;;;;;2217:25:70;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2217:25:70;215:373:99;;;;2064:18:70;215:373:99;;;;;;;14944:1550:85;215:373:99;15345:14:85;215:373:99;;;;15341:89:85;;14944:1550;15551:10;215:373:99;;;;25176:25:69;215:373:99;;;;;18718:25:69;:52;215:373:99;15576:11:85;;15572:73;;8720:53:36;15551:10:85;8720:53:36;:::i;:::-;;-1:-1:-1;15551:10:85;;215:373:99;;15759:16:85;215:373:99;;;;;;;;;;:::i;:::-;;;;14944:1550:85;215:373:99;;;;15345:14:85;215:373:99;;;;15802:15:85;15798:641;;16480:6;15551:10;;;16480:6;:::i;15798:641::-;215:373:99;21588:6:69;15551:10:85;;215:373:99;;15955:16:85;215:373:99;;;;16001:19:85;15997:277;;15798:641;15551:10;21358:6:69;15551:10:85;;21358:6:69;:::i;15997:277:85:-;215:373:99;16091:37:85;16244:14;215:373:99;18718:25:69;215:373:99;16091:37:85;:::i;:::-;18718:25:69;215:373:99;16185:10:85;15551;16185;:::i;16244:14::-;15997:277;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;15341:89:85;15375:14;;:::i;:::-;15341:89;;2787:1388:36;-1:-1:-1;215:373:99;;;2990:12:36;215:373:99;;;;;;-1:-1:-1;;215:373:99;3024:15:36;;;;-1:-1:-1;;215:373:99;;;;;;;;;15706:17:85;215:373:99;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;215:373:99;;;15706:17:85;215:373:99;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15706:17:85;215:373:99;;;2990:12:36;215:373:99;;;;;;2990:12:36;4104:11;:::o;215:373:99:-;-1:-1:-1;;;215:373:99;;;;;;;;3502:398:36;215:373:99;3572:22:36;3694:26;3572:22;;:::i;:::-;215:373:99;;;;;;3694:26:36;;;;:::i;215:373:99:-;;;;;2990:12:36;215:373:99;;;;;;3502:398:36;;;;;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;;;3020:1149:36;4146:12;;;:::o;215:373:99:-;;;;;;;;;;;;;;;:::o;18068:1492:85:-;;;;18243:11;;18239:48;;215:373:99;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;18253:1:85;215:373:99;;;;;;;;;;18389:32:85;;;-1:-1:-1;3208:21:71;215:373:99;3199:30:71;;;:::i;:::-;215:373:99;;3250:35:71;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18385:568:85;215:373:99;;19161:19:85;;;19157:56;;19226:23;;;19222:60;;215:373:99;;;19383:9:85;;19394:18;;;;;;18068:1492;;;;;;;:::o;19383:9::-;215:373:99;;-1:-1:-1;;;;;19455:11:85;215:373:99;19455:11:85;;:::i;:::-;215:373:99;;;;19430:16:85;215:373:99;;;;;19430:54:85;215:373:99;;;19430:54:85;:::i;:::-;215:373:99;;;19383:9:85;;215:373:99;;;;;;;;;;;;-1:-1:-1;215:373:99;;;;;;18385:568:85;18515:38;215:373:99;18515:38:85;;;18511:442;215:373:99;;;;;;13582:42:85;;;;18798:51;;;;;215:373:99;;;;;;;;;;;18798:51:85;18511:442;215:373:99;;;13582:42:85;;;;18887:55;;;;;215:373:99;;;;;;;;;;;-1:-1:-1;;;215:373:99;;;;18887:55:85;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;20121:890:85;;215:373:99;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;215:373:99;;;:::i;:::-;;;;;;;;;;-1:-1:-1;7631:8:69;;;;;;20517:36:85;;-1:-1:-1;215:373:99;;;6312:27:69;215:373:99;;;6364:12:69;;;;6359:236;215:373:99;;;6359:236:69;215:373:99;;;;;;20604:20:85;215:373:99;;;;;;;;;;;;;;;;;;;20628:3:85;20690:229;215:373:99;;20690:229:85;;:::i;:::-;20934:6;;20930:75;;20121:890;;:::o;20930:75::-;215:373:99;;;;;;;;;;20963:31:85;;;;;;215:373:99;20963:31:85;;;215:373:99;20963:31:85;6364:12:69;215:373:99;;;;;;;;;6378:9:69;;;;;-1:-1:-1;215:373:99;;;598:23:78;215:373:99;;;;;;;;;;;;6480:45:69;;6494:31;;-1:-1:-1;;;;;215:373:99;6494:31:69;:::i;:::-;6480:45;;:::i;:::-;215:373:99;;;6364:12:69;;;;6378:9;;;;;;7620;-1:-1:-1;;;;;215:373:99;7692:12:69;;;;:::i;:::-;215:373:99;;-1:-1:-1;215:373:99;1317:17:79;215:373:99;;;;-1:-1:-1;215:373:99;;;1317:33:79;7657:116:69;;7829:12;7808:34;215:373:99;7829:12:69;;;;;:::i;:::-;215:373:99;;7808:34:69;:::i;:::-;7786:56;;;;:::i;:::-;215:373:99;;7620:9:69;;7657:116;7745:12;;;215:373:99;7745:12:69;;;:::i;:::-;215:373:99;;;-1:-1:-1;;;7732:26:69;;215:373:99;;7732:26:69;;;215:373:99;7732:26:69;1239:1329:65;215:373:99;;1239:1329:65;;215:373:99;;;1596:21:65;;1592:90;;215:373:99;;1696:38:65;;;;:76;;;1239:1329;1692:148;;1855:9;;;;;1850:568;1866:20;;;;;;2431:19;;;;;;;;2427:75;;215:373:99;2511:50:65;2527:33;1239:1329;:::o;2427:75::-;215:373:99;2466:25:65;215:373:99;2466:25:65;:::o;1855:9::-;2031:13;;;;;;1957:102;2031:13;;;;:::i;:::-;;1957:102;;:::i;:::-;215:373:99;;;;:::i;:::-;2073:116:65;;-1:-1:-1;;;;;215:373:99;2219:14:65;;;;:::i;:::-;215:373:99;;;;2206:27:65;2202:105;;2329:19;215:373:99;2338:10:65;;;;;:::i;:::-;215:373:99;2329:19:65;;:::i;:::-;215:373:99;;1855:9:65;;;;;;;2202:105;2253:39;;;;;;;;215:373:99;2253:39:65;2269:22;2253:39;:::o;2073:116::-;2135:39;;;;;;;;;215:373:99;2135:39:65;2151:22;2135:39;:::o;1692:148::-;1788:41;;;;;;;;215:373:99;1788:41:65;:::o;1696:76::-;215:373:99;;;1738:34:65;;;1696:76;;1592:90;1633:38;;;;;;;;1649:21;1633:38;:::o;2483:766:32:-;215:373:99;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;215:373:99;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":309,"length":20}]}}},"methodIdentifiers":{"addBootstrapNode(string)":"10fd4261","claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","confirmChange(uint64)":"350a14bf","confirmNextChange()":"c7ebdaef","distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","pause()":"8456cb59","paused()":"5c975abb","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","setFederatedPower(address[],bytes[],uint256[])":"da5d09ee","stake()":"3a4b66f1","submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":"26811936","submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":"b9ee2bb9","unpause()":"3f4ba83a","unstake(uint256)":"2e17de78","validateActiveQuorumSignatures(address[],bytes32,bytes[])":"cc2dc2b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicatedGenesisValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFederationPayload\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPublicKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"InvalidSignatureErr\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCollateralToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughGenesisValidators\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOfPublicKey\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyBootstrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawExceedingCollateral\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"NextBottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddress\",\"type\":\"string\"}],\"name\":\"addBootstrapNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_configurationNumber\",\"type\":\"uint64\"}],\"name\":\"confirmChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"confirmNextChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"publicKeys\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"powers\",\"type\":\"uint256[]\"}],\"name\":\"setFederatedPower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateActiveQuorumSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"addBootstrapNode(string)\":{\"params\":{\"netAddress\":\"The network address of the new bootstrap node.\"}},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"params\":{\"height\":\"The height of the checkpoint for which rewards are being distributed.\",\"kind\":\"The type of object for which rewards are being distributed.\",\"reward\":\"The total amount of reward to be distributed.\"}},\"join(bytes)\":{\"params\":{\"publicKey\":\"The off-chain 65 byte public key that should be associated with the validator\"}},\"kill()\":{\"details\":\"It is not a privileged operation.\"},\"preFund()\":{\"details\":\"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply.\"},\"preRelease(uint256)\":{\"details\":\"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.\",\"params\":{\"amount\":\"The amount to remove.\"}},\"setFederatedPower(address[],bytes[],uint256[])\":{\"details\":\"method that allows the contract owner to set the validators' federated power.\",\"params\":{\"powers\":\"The federated powers to be assigned to validators.\",\"publicKeys\":\"The public keys of validators.\",\"validators\":\"The addresses of validators.\"}},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"details\":\"It triggers the execution of a cross-net message batch.\",\"params\":{\"batch\":\"The batch of bottom-up messages.\",\"signatories\":\"The addresses of validators signing the batch.\",\"signatures\":\"The signatures of validators on the batch.\"}},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"details\":\"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\",\"params\":{\"checkpoint\":\"The executed bottom-up checkpoint.\",\"signatories\":\"The addresses of validators signing the checkpoint.\",\"signatures\":\"The signatures of validators on the checkpoint.\"}},\"unstake(uint256)\":{\"details\":\"`leave` must be used to unstake the entire stake.\",\"params\":{\"amount\":\"The amount to unstake.\"}},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"details\":\"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.\",\"params\":{\"hash\":\"The hash of the checkpoint.\",\"signatories\":\"The addresses of the signatories.\",\"signatures\":\"The packed signatures of the checkpoint.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBootstrapNode(string)\":{\"notice\":\"Add a bootstrap node.\"},\"claim()\":{\"notice\":\"Validator claims their released collateral.\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims its reward.\"},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"Distributes rewards to relayers for a specific checkpoint.\"},\"join(bytes)\":{\"notice\":\"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"kill()\":{\"notice\":\"method that allows to kill the subnet when all validators left.\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet.\"},\"pause()\":{\"notice\":\"Pauses all contract functions with the `whenNotPaused` modifier.\"},\"paused()\":{\"notice\":\"sets if to pause the contract\"},\"preFund()\":{\"notice\":\"method to add some initial balance into a subnet that hasn't yet bootstrapped.\"},\"preRelease(uint256)\":{\"notice\":\"method to remove funds from the initial balance of a subnet.\"},\"setFederatedPower(address[],bytes[],uint256[])\":{\"notice\":\"Sets the federated power of validators.\"},\"stake()\":{\"notice\":\"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"notice\":\"Submits a batch of bottom-up messages for execution.\"},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"notice\":\"Submits a checkpoint commitment for execution.\"},\"unpause()\":{\"notice\":\"Unpauses all contract functions with the `whenNotPaused` modifier.\"},\"unstake(uint256)\":{\"notice\":\"method that allows a validator to unstake a part of its collateral from a subnet.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"notice\":\"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/SubnetActorManagerFacetMock.sol\":\"SubnetActorManagerFacetMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"CollateralIsZero"},{"inputs":[],"type":"error","name":"DuplicatedGenesisValidator"},{"inputs":[],"type":"error","name":"EmptyAddress"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidFederationPayload"},{"inputs":[],"type":"error","name":"InvalidPublicKeyLength"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"type":"error","name":"InvalidSignatureErr"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NoCollateralToWithdraw"},{"inputs":[],"type":"error","name":"NotAllValidatorsHaveLeft"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughCollateral"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughGenesisValidators"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"NotOwnerOfPublicKey"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotValidator"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"SubnetAlreadyBootstrapped"},{"inputs":[],"type":"error","name":"SubnetAlreadyKilled"},{"inputs":[],"type":"error","name":"WithdrawExceedingCollateral"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}],"indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointSubmitted","anonymous":false},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"NextBottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"netAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addBootstrapNode"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint64","name":"_configurationNumber","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"confirmChange"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"confirmNextChange"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"publicKey","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"bytes[]","name":"publicKeys","type":"bytes[]"},{"internalType":"uint256[]","name":"powers","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setFederatedPower"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"validateActiveQuorumSignatures"}],"devdoc":{"kind":"dev","methods":{"addBootstrapNode(string)":{"params":{"netAddress":"The network address of the new bootstrap node."}},"distributeRewardToRelayers(uint256,uint256,uint8)":{"params":{"height":"The height of the checkpoint for which rewards are being distributed.","kind":"The type of object for which rewards are being distributed.","reward":"The total amount of reward to be distributed."}},"join(bytes)":{"params":{"publicKey":"The off-chain 65 byte public key that should be associated with the validator"}},"kill()":{"details":"It is not a privileged operation."},"preFund()":{"details":"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply."},"preRelease(uint256)":{"details":"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.","params":{"amount":"The amount to remove."}},"setFederatedPower(address[],bytes[],uint256[])":{"details":"method that allows the contract owner to set the validators' federated power.","params":{"powers":"The federated powers to be assigned to validators.","publicKeys":"The public keys of validators.","validators":"The addresses of validators."}},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"details":"It triggers the execution of a cross-net message batch.","params":{"batch":"The batch of bottom-up messages.","signatories":"The addresses of validators signing the batch.","signatures":"The signatures of validators on the batch."}},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"details":"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.","params":{"checkpoint":"The executed bottom-up checkpoint.","signatories":"The addresses of validators signing the checkpoint.","signatures":"The signatures of validators on the checkpoint."}},"unstake(uint256)":{"details":"`leave` must be used to unstake the entire stake.","params":{"amount":"The amount to unstake."}},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"details":"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.","params":{"hash":"The hash of the checkpoint.","signatories":"The addresses of the signatories.","signatures":"The packed signatures of the checkpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"addBootstrapNode(string)":{"notice":"Add a bootstrap node."},"claim()":{"notice":"Validator claims their released collateral."},"claimRewardForRelayer()":{"notice":"Relayer claims its reward."},"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"Distributes rewards to relayers for a specific checkpoint."},"join(bytes)":{"notice":"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"kill()":{"notice":"method that allows to kill the subnet when all validators left."},"leave()":{"notice":"method that allows a validator to leave the subnet."},"pause()":{"notice":"Pauses all contract functions with the `whenNotPaused` modifier."},"paused()":{"notice":"sets if to pause the contract"},"preFund()":{"notice":"method to add some initial balance into a subnet that hasn't yet bootstrapped."},"preRelease(uint256)":{"notice":"method to remove funds from the initial balance of a subnet."},"setFederatedPower(address[],bytes[],uint256[])":{"notice":"Sets the federated power of validators."},"stake()":{"notice":"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"notice":"Submits a batch of bottom-up messages for execution."},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"notice":"Submits a checkpoint commitment for execution."},"unpause()":{"notice":"Unpauses all contract functions with the `whenNotPaused` modifier."},"unstake(uint256)":{"notice":"method that allows a validator to unstake a part of its collateral from a subnet."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"notice":"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/SubnetActorManagerFacetMock.sol":"SubnetActorManagerFacetMock"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","id":57958,"exportedSymbols":{"LibStaking":[46176],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957]},"nodeType":"SourceUnit","src":"46:543:99","nodes":[{"id":57920,"nodeType":"PragmaDirective","src":"46:23:99","nodes":[],"literals":["solidity","0.8",".19"]},{"id":57922,"nodeType":"ImportDirective","src":"71:85:99","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":57958,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":57921,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"79:23:99","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57924,"nodeType":"ImportDirective","src":"157:56:99","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../../src/lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":57958,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":57923,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"165:10:99","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57957,"nodeType":"ContractDefinition","src":"215:373:99","nodes":[{"id":57938,"nodeType":"FunctionDefinition","src":"285:124:99","nodes":[],"body":{"id":57937,"nodeType":"Block","src":"346:63:99","nodes":[],"statements":[{"expression":{"arguments":[{"id":57934,"name":"_configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57928,"src":"381:20:99","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":57931,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"356:10:99","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":57933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"367:13:99","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46175,"src":"356:24:99","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":57935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"356:46:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57936,"nodeType":"ExpressionStatement","src":"356:46:99"}]},"functionSelector":"350a14bf","implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"294:13:99","parameters":{"id":57929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57928,"mutability":"mutable","name":"_configurationNumber","nameLocation":"315:20:99","nodeType":"VariableDeclaration","scope":57938,"src":"308:27:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57927,"name":"uint64","nodeType":"ElementaryTypeName","src":"308:6:99","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"307:29:99"},"returnParameters":{"id":57930,"nodeType":"ParameterList","parameters":[],"src":"346:0:99"},"scope":57957,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":57956,"nodeType":"FunctionDefinition","src":"415:171:99","nodes":[],"body":{"id":57955,"nodeType":"Block","src":"453:133:99","nodes":[],"statements":[{"assignments":[57942,null],"declarations":[{"constant":false,"id":57942,"mutability":"mutable","name":"nextConfigNum","nameLocation":"471:13:99","nodeType":"VariableDeclaration","scope":57955,"src":"464:20:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57941,"name":"uint64","nodeType":"ElementaryTypeName","src":"464:6:99","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":57946,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57943,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"490:10:99","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":57944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"501:23:99","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"490:34:99","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view returns (uint64,uint64)"}},"id":57945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"490:36:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"463:63:99"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":57952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57950,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57942,"src":"561:13:99","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"577:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"561:17:99","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":57947,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"536:10:99","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":57949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"547:13:99","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46175,"src":"536:24:99","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":57953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"536:43:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57954,"nodeType":"ExpressionStatement","src":"536:43:99"}]},"functionSelector":"c7ebdaef","implemented":true,"kind":"function","modifiers":[],"name":"confirmNextChange","nameLocation":"424:17:99","parameters":{"id":57939,"nodeType":"ParameterList","parameters":[],"src":"441:2:99"},"returnParameters":{"id":57940,"nodeType":"ParameterList","parameters":[],"src":"453:0:99"},"scope":57957,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":57925,"name":"SubnetActorManagerFacet","nameLocations":["255:23:99"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"255:23:99"},"id":57926,"nodeType":"InheritanceSpecifier","src":"255:23:99"}],"canonicalName":"SubnetActorManagerFacetMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[57957,52151,44013,43432,47335,40428],"name":"SubnetActorManagerFacetMock","nameLocation":"224:27:99","scope":57958,"usedErrors":[32461,32469,37368,37372,37374,37382,37390,37392,37404,37406,37408,37438,37442,37448,37454,37462,37466,37470,37478,37480,37490,37494,37496,37504,37510,37514,37526,37528,37530,37532,40975,43315,43318,43961]}],"license":"MIT OR Apache-2.0"},"id":99} \ No newline at end of file diff --git a/.out/SubnetActorMock.sol/SubnetActorMock.json b/.out/SubnetActorMock.sol/SubnetActorMock.json new file mode 100644 index 000000000..ace7c9234 --- /dev/null +++ b/.out/SubnetActorMock.sol/SubnetActorMock.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addBootstrapNode","inputs":[{"name":"netAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"confirmChange","inputs":[{"name":"_configurationNumber","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"confirmNextChange","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"reward","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"publicKey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFederatedPower","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"publicKeys","type":"bytes[]","internalType":"bytes[]"},{"name":"powers","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateActiveQuorumSignatures","inputs":[{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"CollateralIsZero","inputs":[]},{"type":"error","name":"DuplicatedGenesisValidator","inputs":[]},{"type":"error","name":"EmptyAddress","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidFederationPayload","inputs":[]},{"type":"error","name":"InvalidPublicKeyLength","inputs":[]},{"type":"error","name":"InvalidSignatureErr","inputs":[{"name":"","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NoCollateralToWithdraw","inputs":[]},{"type":"error","name":"NotAllValidatorsHaveLeft","inputs":[]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughCollateral","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughGenesisValidators","inputs":[]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"NotOwnerOfPublicKey","inputs":[]},{"type":"error","name":"NotValidator","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SubnetAlreadyBootstrapped","inputs":[]},{"type":"error","name":"SubnetAlreadyKilled","inputs":[]},{"type":"error","name":"WithdrawExceedingCollateral","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657614fde908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611a705750806310fd4261146118ff57806326811936146116ec5780632e17de78146116bf578063350a14bf1461168c5780633a4b66f1146115b05780633f4ba83a1461153857806341c0e1b5146114a75780634c860af6146114535780634e71d92d146112bf5780635c975abb1461128f5780636170b16214610edf57806366783c9b14610dfe5780638456cb5914610d96578063b9ee2bb914610997578063c7ebdaef14610951578063cc2dc2b9146108d1578063d66d9e1914610886578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b857600080516020614f8983398151915260018154146101a657806001839255610133612049565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033","sourceMap":"479:455:102:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":337,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611a705750806310fd4261146118ff57806326811936146116ec5780632e17de78146116bf578063350a14bf1461168c5780633a4b66f1146115b05780633f4ba83a1461153857806341c0e1b5146114a75780634c860af6146114535780634e71d92d146112bf5780635c975abb1461128f5780636170b16214610edf57806366783c9b14610dfe5780638456cb5914610d96578063b9ee2bb914610997578063c7ebdaef14610951578063cc2dc2b9146108d1578063d66d9e1914610886578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b857600080516020614f8983398151915260018154146101a657806001839255610133612049565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033","sourceMap":"479:455:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;479:455:102;;582:20:68;578:50;;479:455:102;477:1:68;479:455:102;;;987:72:66;;:::i;:::-;960:10:88;:44;;;;;479:455:102;;;;;;;;;;;;960:44:88;;993:10;479:455:102;960:44:88;;479:455:102;960:44:88;;;;;;;;;;;479:455:102;;;;;;960:44:88;;;;:::i;:::-;479:455:102;;960:44:88;;;;479:455:102;;;960:44:88;479:455:102;;;;;;;;;960:44:88;479:455:102;;;578:50:68;479:455:102;;-1:-1:-1;;;611:17:68;;479:455:102;;611:17:68;479:455:102;;;;;;;;;;-1:-1:-1;;479:455:102;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;:::i;:::-;4273:61:72;;;;:::i;:::-;3394:10:86;;:::i;:::-;479:455:102;1693:14:71;479:455:102;;;;;;;;1726:24:71;1693:57;1689:146;;3498:34:86;;;3494:98;;3606:38;;;3602:102;;3718:14;479:455:102;;;;;;;;6249:9:71;6260:10;;;;;;3714:421:86;;;;;;;479:455:102;;6249:9:71;6346:33;6365:13;;;;;:::i;:::-;6346:33;;:::i;:::-;-1:-1:-1;;;;;6417:13:71;;;;;;:::i;:::-;;:::i;:::-;479:455:102;-1:-1:-1;;;;;479:455:102;;;6397:33:71;6393:100;;1243:27:70;6684:13:71;;;;;;:::i;:::-;6709;;;;;:::i;:::-;6732:9;;;;;;;;:::i;:::-;479:455:102;;;;1243:27:70;;;479:455:102;;1243:27:70;;479:455:102;;;;;;:::i;:::-;;;;;;1243:27:70;479:455:102;;1243:27:70;;;;;;:::i;:::-;-1:-1:-1;;;;;21913:11:69;479:455:102;;;;;;;:::i;:::-;;;;;3528:63:70;;479:455:102;;;;;;;;;;;3528:63:70;;479:455:102;;;;3489:15:70;479:455:102;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;1726:24:71;479:455:102;;;;:::i;:::-;1726:24:71;479:455:102;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:102;;;;;1726:24:71;479:455:102;;;;;;;;;-1:-1:-1;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;479:455:102;;-1:-1:-1;;;;;479:455:102;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;479:455:102;-1:-1:-1;;;;;479:455:102;21913:11:69;479:455:102;;;21913:11:69;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1496:205:70;;;479:455:102;6249:9:71;;479:455:102;;;;-1:-1:-1;479:455:102;;;;;;1726:24:71;479:455:102;;;;;;;;;;-1:-1:-1;;479:455:102;;;;;;;;;;1726:24:71;479:455:102;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;6393:100:71;479:455:102;;-1:-1:-1;;;6457:21:71;;479:455:102;;6457:21:71;3714:421:86;4447:9:71;;;;;;4458:10;;;;;;479:455:102;;;;;;-1:-1:-1;;;;;5341:15:71;479:455:102;;-1:-1:-1;5331:25:71;5327:91;;479:455:102;;;3718:14:86;479:455:102;;;3718:14:86;479:455:102;5464:39:71;479:455:102;;5464:39:71;;;;:::i;:::-;;;;5596:16;479:455:102;;;;;-1:-1:-1;;;;;479:455:102;5587:84:71;;;;;479:455:102;;;;;;;;;;;;5587:84:71;;;479:455:102;5587:84:71;;479:455:102;5587:84:71;;;;;;;;3714:421:86;;479:455:102;;5587:84:71;;;;:::i;:::-;479:455:102;;;;5587:84:71;479:455:102;;;;;;;;;5327:91:71;479:455:102;;-1:-1:-1;;;5379:28:71;;479:455:102;;5379:28:71;4447:9;4544:33;4563:13;;;;;:::i;4544:33::-;-1:-1:-1;;;;;479:455:102;;;;4615:13:71;;479:455:102;4615:13:71;;;:::i;:::-;479:455:102;;;4595:33:71;4591:100;;16026:34:69;4832:13:71;;;;;;:::i;:::-;16026:34:69;:::i;:::-;4808:112:71;;479:455:102;4968:13:71;4983;4968;;;;;;:::i;:::-;4983;;;;;:::i;:::-;;;:::i;:::-;19151:5:69;5051:13:71;;;;;;:::i;:::-;5066:9;;;;;:::i;:::-;479:455:102;19151:5:69;;:::i;:::-;5133:13:71;;;;;;:::i;:::-;5156:9;;;;;;:::i;:::-;479:455:102;5177:13:71;;;;;;:::i;:::-;479:455:102;;;;;;;;:::i;:::-;;;;5116:76:71;;;;;479:455:102;;;;;;;:::i;:::-;5116:76:71;479:455:102;5116:76:71;;479:455:102;;;1726:24:71;479:455:102;-1:-1:-1;;;479:455:102;;;;;;1726:24:71;479:455:102;;;1726:24:71;479:455:102;;:::i;:::-;;;;;;;;;;;1726:24:71;479:455:102;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;1726:24:71;479:455:102;;;;;;-1:-1:-1;;;;479:455:102;;;;;;;;;;;;;;;4447:9:71;;479:455:102;;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4808:112:71;479:455:102;;-1:-1:-1;;;4877:28:71;;479:455:102;;4877:28:71;3602:102:86;479:455:102;;-1:-1:-1;;;3667:26:86;;479:455:102;;3667:26:86;1689:146:71;2502:71:45;479:455:102;;:::i;:::-;;;-1:-1:-1;;;1773:51:71;;479:455:102;;1773:51:71;;2502:71:45;479:455:102;;;;2502:71:45;;;;:::i;:::-;1773:51:71;;;479:455:102;-1:-1:-1;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;479:455:102;;582:20:68;578:50;;479:455:102;477:1:68;479:455:102;;;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;;:::i;:::-;479:455:102;;;;;;;;;;-1:-1:-1;;479:455:102;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;23968:11:69;479:455:102;;;;;;;;907:17;;;:::i;479:455::-;-1:-1:-1;;;479:455:102;;;;;;;;;;;;;-1:-1:-1;;479:455:102;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;:::i;:::-;987:72:66;;;:::i;:::-;1911:30:84;479:455:102;;1944:21:84;479:455:102;1911:54:84;;;;;:::i;:::-;479:455:102;;;1885:22:84;479:455:102;1885:80:84;;:152;;;479:455:102;1868:236:84;;479:455:102;;2148:22:84;2212:54;479:455:102;2148:22:84;;;;;;;:::i;:::-;;479:455:102;2148:22:84;479:455:102;;2148:22:84;;;;;;;;:::i;:::-;479:455:102;2138:33:84;;2212:54;;;:::i;:::-;479:455:102;;;1885:22:84;479:455:102;2186:80:84;479:455:102;;;;;;;;2366:104:84;479:455:102;;;;;;:::i;:::-;;;;;:::i;:::-;2366:104:84;;:::i;:::-;479:455:102;;;1885:22:84;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;:::i;:::-;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;479:455:102;;;;-1:-1:-1;;;479:455:102;;;;;;;;;;;;;;2182:2184:84;479:455:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;1885:22:84;;479:455:102;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;:::i;:::-;;;;;;;;;;;;1885:22:84;479:455:102;;;2854:35:84;479:455:102;;8399:50:36;479:455:102;;;2918:10:84;8399:50:36;;:::i;:::-;-1:-1:-1;479:455:102;;;1885:22:84;479:455:102;1911:30:84;479:455:102;3078:16:84;479:455:102;-1:-1:-1;;;;;479:455:102;3069:55:84;;;;;479:455:102;;-1:-1:-1;;;3069:55:84;;479:455:102;;;;;;;;;;;3069:55:84;;479:455:102;3069:55:84;;;:::i;:::-;;;;;;;;;;;479:455:102;3229:34:84;;;;;;:::i;:::-;;:::i;3069:55::-;;;;:::i;:::-;479:455:102;;3069:55:84;;;;479:455:102;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;479:455:102;;;;;;;;2182:2184:84;479:455:102;;;;;;;;;;1885:22:84;479:455:102;3285:56:84;3281:1085;;2182:2184;;479:455:102;;3281:1085:84;479:455:102;;;1885:22:84;479:455:102;;;;;;;;;;;4074:58:84;479:455:102;4074:58:84;;479:455:102;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;479:455:102;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;4074:58:84;;;;;;;;-1:-1:-1;4074:58:84;;:::i;:::-;479:455:102;4064:69:84;;4151:36;4147:209;;479:455:102;;4147:209:84;479:455:102;;;1885:22:84;479:455:102;;;4266:35:84;479:455:102;;8399:50:36;479:455:102;;;4330:10:84;8399:50:36;;:::i;:::-;;479:455:102;;;;;-1:-1:-1;;;;;479:455:102;;;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;1868:236:84;479:455:102;;-1:-1:-1;;;2069:24:84;;479:455:102;;2069:24:84;1885:152;479:455:102;;;;;1885:22:84;479:455:102;1981:56:84;;1885:152;;479:455:102;;;;;;;;;;;;;;;;;337:10:87;;:::i;:::-;2013:176:66;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2145:4:66;479:455:102;;;;;;;;2164:18:66;479:455:102;;;2171:10:66;479:455:102;;2164:18:66;479:455:102;;;;;;;;;-1:-1:-1;;479:455:102;;;;;;-1:-1:-1;;;;;;;;;;;479:455:102;;;582:20:68;578:50;;479:455:102;;;2364:11:86;;2360:65;;479:455:102;2439:14:86;479:455:102;;;;2435:79:86;;2545:10;479:455:102;;;;;;;;;;2528:37:86;2524:93;;2869:6;2545:10;;;479:455:102;;;;;;;;2627:38:86;479:455:102;;;2627:38:86;:::i;:::-;479:455:102;;2675:29:86;479:455:102;2675:19:86;479:455:102;2675:29:86;:::i;:::-;:19;479:455:102;2545:10:86;479:455:102;;;;;;;;;2719:33:86;2715:114;;479:455:102;2545:10:86;2869:6;:::i;2715:114::-;2807:10;2545;2807;:::i;:::-;2715:114;;2524:93;479:455:102;;-1:-1:-1;;;2588:18:86;;479:455:102;;2588:18:86;2435:79;479:455:102;;-1:-1:-1;;;2476:27:86;;479:455:102;;2476:27:86;2360:65;479:455:102;;-1:-1:-1;;;2398:16:86;;479:455:102;;2398:16:86;479:455:102;-1:-1:-1;479:455:102;;-1:-1:-1;;479:455:102;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;;;;477:1:68;-1:-1:-1;;;;;;;;;;;479:455:102;582:20:68;578:50;;477:1;-1:-1:-1;;;;;;;;;;;479:455:102;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;479:455:102;4852:14:86;479:455:102;;;;4848:89:86;;;479:455:102;4950:9:86;:14;4946:70;;5053:10;479:455:102;;;;25176:25:69;479:455:102;;;;;17433:25:69;:52;479:455:102;5026:110:86;;372:2:40;479:455:102;;;;5150:57:86;5146:232;;5053:10;-1:-1:-1;;;;;5415:44:86;479:455:102;;;;;;;5415:44:86;:::i;:::-;479:455:102;5473:30:86;5469:89;;479:455:102;;;;5870:9:86;479:455:102;;;;;;5053:10:86;5870:9;:::i;:::-;5936;4950;5053:10;5936:9;:::i;:::-;5961:14;;:::i;:::-;479:455:102;-1:-1:-1;;;;;;;;;;;479:455:102;;;5568:670:86;479:455:102;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22229:11:69;479:455:102;;;;;;;;;:::i;:::-;17433:25:69;479:455:102;;;3528:63:70;;479:455:102;;;5053:10:86;479:455:102;3528:63:70;;479:455:102;;;;3489:15:70;479:455:102;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;477:1:68;479:455:102;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:102;;;17433:25:69;479:455:102;;;;;;;;;;;;477:1:68;479:455:102;;;;;;;;;;;477:1:68;479:455:102;;;;;;;;;;;;3528:63:70;;479:455:102;;-1:-1:-1;;;;;479:455:102;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;479:455:102;-1:-1:-1;;;;;479:455:102;22229:11:69;479:455:102;;;22229:11:69;479:455:102;;;;;;17433:25:69;479:455:102;;5053:10:86;479:455:102;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;747:200:70;;;6217:9:86;4950;5053:10;6217:9;:::i;:::-;5568:670;;479:455:102;;;;-1:-1:-1;479:455:102;;;;;;477:1:68;479:455:102;;;;;;;;;;-1:-1:-1;;479:455:102;;;;;;;;17433:25:69;479:455:102;;;;;477:1:68;479:455:102;-1:-1:-1;;;;;;;;;;;479:455:102;;;;;;;;;;;;;;;;;477:1:68;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;479:455:102;;;;;;;;;;;;;;;5146:232:86;479:455:102;;-1:-1:-1;;;5343:24:86;;479:455:102;;5343:24:86;5026:110;2502:71:45;479:455:102;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;479:455:102;;;;;;6935:42:86;;;;;;5087:38;;479:455:102;;5087:38:86;;2502:71:45;479:455:102;2502:71:45;;;;:::i;4946:70:86:-;479:455:102;;-1:-1:-1;;;4987:18:86;;479:455:102;;4987:18:86;4848:89;4882:14;;:::i;:::-;4848:89;;479:455:102;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;477:1:68;247:48;-1:-1:-1;;;;;;;;;;;479:455:102;;;582:20:68;578:50;;479:455:102;;;987:72:66;;:::i;:::-;814:10:88;479:455:102;;;;3658:13:69;479:455:102;;;;;;;;;;;;;;1777:16:69;;;1773:78;;479:455:102;;;;;1895:25:69;;1930:14;;;2019:13;;;;1954:477;477:1:68;;;1954:477:69;479:455:102;;;;23200:36:69;479:455:102;23200:36:69;479:455:102;;;;;;;;;;;;;;;;;;;;;;;3707:14:69;3703:76;;1954:477;3818:6;814:10:88;;3818:6:69;:::i;:::-;479:455:102;;;814:10:88;479:455:102;;;;;;;;;;;;;;;;;23200:36:69;;;;479:455:102;;;3703:76:69;814:10:88;479:455:102;;;;3658:13:69;479:455:102;;;;;814:10:88;;479:455:102;3703:76:69;;1954:477;479:455:102;;;;;;;1961:10:69;;;;;;;479:455:102;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2204:12:69;-1:-1:-1;2180:76:69;;2270:24;;;;;;;;;;;;;:::i;:::-;479:455:102;;;;;;;;;;;;;;;;;;;;;1954:477:69;;;2180:76;2236:5;;;;;;;;1961:10;;;;;;;1773:78;479:455:102;;-1:-1:-1;;;1816:24:69;;479:455:102;;1816:24:69;479:455:102;-1:-1:-1;479:455:102;;-1:-1:-1;;479:455:102;;;;;;;;;;;;987:72:66;;:::i;:::-;4004:16:72;479:455:102;-1:-1:-1;;;;;479:455:102;3990:10:72;:30;3986:80;;4259:1;479:455:102;;;;;4259:1:72;:::i;3986:80::-;479:455:102;;-1:-1:-1;;;4043:12:72;;479:455:102;;4043:12:72;479:455:102;;;;;;;;;;;;;4273:61:72;;:::i;:::-;479:455:102;17942:86:69;479:455:102;17942:32:69;479:455:102;;;17987:31:69;479:455:102;;17942:86:69;;:::i;:::-;479:455:102;10025:97:86;;10132:8;479:455:102;;-1:-1:-1;;479:455:102;;;;;10166:16:86;479:455:102;;;-1:-1:-1;;;;;479:455:102;10157:33:86;;;;;479:455:102;;;;;;;;;;;;;10157:33:86;;;;;;;;;;479:455:102;;10025:97:86;479:455:102;;-1:-1:-1;;;10085:26:86;;479:455:102;;10085:26:86;479:455:102;;;;;;;;;;;;;524:10:87;;:::i;:::-;-1:-1:-1;;;;;;;;;;;479:455:102;;;;;1618:10:66;1614:63;;479:455:102;;;;;2473:20:66;479:455:102;;;2482:10:66;479:455:102;;2473:20:66;479:455:102;;1614:63:66;479:455:102;;-1:-1:-1;;;1651:15:66;;479:455:102;;1651:15:66;479:455:102;;;;;;;;;;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;6739:14:86;;:::i;:::-;6797:9;:14;6793:70;;6901:10;479:455:102;;;;25176:25:69;479:455:102;;;;;17433:25:69;:52;479:455:102;17433:57:69;6873:115:86;;7003:14;479:455:102;;;;;;;7075:9:86;6797;6901:10;7075:9;:::i;:::-;7100:14;;:::i;6998:225::-;7202:9;6797;6901:10;7202:9;:::i;6873:115::-;2502:71:45;479:455:102;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;479:455:102;;;;;;6935:42:86;;;;;;;;479:455:102;;6935:42:86;;2502:71:45;;;;;;:::i;479:455:102:-;;;;;;;-1:-1:-1;;479:455:102;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;727:20;;;:::i;479:455::-;;;;;;;;;;;-1:-1:-1;;479:455:102;;;;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;479:455:102;;4326:1:72;:::i;479:455:102:-;;;;;-1:-1:-1;;479:455:102;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;4950:17:84;479:455:102;4950:17:84;;479:455:102;;4970:19:84;479:455:102;4950:51:84;;;;4946:108;;479:455:102;5067:10:84;;;;;;:::i;:::-;479:455:102;;;5087:25:84;479:455:102;;5067:45:84;;;5063:108;;5277:10;;;;:::i;:::-;:46;;;;:99;;;479:455:102;5273:156:84;;5442:10;;;;:::i;:::-;:22;;;5438:81;;479:455:102;;;;;5559:17:84;;;;;;;;;:::i;:::-;;479:455:102;;5559:17:84;;;;;;:::i;:::-;479:455:102;5549:28:84;;;5592:52;;;;479:455:102;;;;;;5923:24:84;479:455:102;5910:37:84;5906:200;;5588:1250;479:455:102;;5906:200:84;479:455:102;;6026:30:84;479:455:102;;8399:50:36;479:455:102;;;6080:10:84;8399:50:36;;:::i;5588:1250:84:-;6220:99;479:455:102;;;;;;;;;;;;;;;:::i;6220:99:84:-;479:455:102;;;;;;;:::i;:::-;;;;6519:71:84;479:455:102;;4970:19:84;479:455:102;;;;;6660:30:84;479:455:102;;8399:50:36;479:455:102;;;6714:10:84;8399:50:36;;:::i;:::-;-1:-1:-1;6782:16:84;479:455:102;-1:-1:-1;;;;;479:455:102;;6773:54:84;;;;;479:455:102;;6773:54:84;479:455:102;;;;;;;;;;;;6773:54:84;;479:455:102;6773:54:84;;;:::i;:::-;;;;;;;;;;;5588:1250;479:455:102;;6773:54:84;;;;:::i;5438:81::-;479:455:102;;-1:-1:-1;;;5487:21:84;;479:455:102;;5487:21:84;5273:156;479:455:102;;-1:-1:-1;;;5399:19:84;;479:455:102;;5399:19:84;5277:99;479:455:102;5347:24:84;479:455:102;;;;;;;5327:49:84;;5277:99;;479:455:102;-1:-1:-1;;;479:455:102;;;;;;;;5063:108:84;479:455:102;;-1:-1:-1;;;5135:25:84;;479:455:102;;5135:25:84;479:455:102;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;987:72:66;;;:::i;:::-;10437:10:86;479:455:102;;1317:17:79;479:455:102;;;;;;;;1317:33:79;10399:107:86;;479:455:102;;10519:29:86;10515:81;;10437:10;479:455:102;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:50:36;10437:10:86;8399:50:36;:::i;479:455:102:-;;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;479:455:102;;;;;;;;10515:81:86;479:455:102;;-1:-1:-1;;;10571:14:86;;479:455:102;;10571:14:86;10399:107;479:455:102;;-1:-1:-1;;;10471:24:86;;10437:10;479:455:102;10471:24:86;;479:455:102;;;10471:24:86;479:455:102;;;;;;;;;;;1668:9:86;:14;1664:68;;479:455:102;;1746:14:86;479:455:102;;;;1742:79:86;;1852:10;479:455:102;;;;;;;;;1835:33:86;1831:101;;479:455:102;1852:10:86;479:455:102;;;;;;;;1942:41:86;1668:9;479:455:102;;1942:41:86;:::i;:::-;479:455:102;;1993:32:86;1668:9;1993:19;479:455:102;1993:32:86;:::i;:::-;:19;479:455:102;;;1831:101:86;479:455:102;;-1:-1:-1;;;479:455:102;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;1852:10:86;479:455:102;;;;;;;;1831:101:86;;479:455:102;-1:-1:-1;;;479:455:102;;;;;;;;1664:68:86;-1:-1:-1;;;1705:16:86;;479:455:102;;1705:16:86;479:455:102;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;:::o;:::-;-1:-1:-1;;;;;479:455:102;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;:::o;:::-;-1:-1:-1;;;;;479:455:102;;;;;;-1:-1:-1;;479:455:102;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:102;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;479:455:102;;;;;;:::o;:::-;-1:-1:-1;;;;;479:455:102;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;479:455:102;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;479:455:102;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;;;;;479:455:102;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;479:455:102;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;479:455:102;;;;-1:-1:-1;479:455:102;:::o;:::-;;;;;;;;;;;;;10707:17:86;479:455:102;;;;;;10707:17:86;-1:-1:-1;479:455:102;;;;-1:-1:-1;479:455:102;:::o;2215:404:36:-;-1:-1:-1;479:455:102;;;4352:12:36;479:455:102;;;;;;;;10707:17:86;479:455:102;-1:-1:-1;;;479:455:102;;;;;;;;;;4352:12:36;479:455:102;;;10707:17:86;479:455:102;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;10707:17:86;479:455:102;;;;4352:12:36;479:455:102;;;;4352:12:36;2548:11;:::o;2294:319::-;2590:12;;;:::o;2215:404::-;;;4352:12;;;-1:-1:-1;479:455:102;;;;;;;;;;;4352:24:36;2294:319;479:455:102;;;;;;-1:-1:-1;;;479:455:102;;;;;4352:12:36;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:36;2548:11;:::o;479:455:102:-;-1:-1:-1;;;479:455:102;;;;;;;;;-1:-1:-1;;;479:455:102;;;;;;;;2294:319:36;-1:-1:-1;2590:12:36;-1:-1:-1;;2590:12:36:o;1371:121:66:-;479:455:102;-1:-1:-1;;;;;;;;;;;479:455:102;;1424:62:66;;1371:121::o;1424:62::-;479:455:102;;-1:-1:-1;;;1460:15:66;;;;;479:455:102;;-1:-1:-1;479:455:102;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;479:455:102;;;;-1:-1:-1;479:455:102;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;479:455:102;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;479:455:102;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:102;-1:-1:-1;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;:::o;24177:1944:69:-;24359:11;479:455:102;-1:-1:-1;;;;;479:455:102;;;;;;;;24385:56:69;;479:455:102;;;;-1:-1:-1;;;24464:28:69;;;;;24381:221;479:455:102;;;;;24513:56:69;;24509:93;;479:455:102;;;;;;24694:24:69;479:455:102;;;;24694:24:69;;;;26026:23;;;479:455:102;26026:23:69;;26065:49;26026:23;;:::i;:::-;-1:-1:-1;;;24359:11:69;479:455:102;;;;;;-1:-1:-1;;;479:455:102;;;24359:11:69;479:455:102;;;;;26065:49:69;24177:1944::o;24676:16::-;3893:36:70;;;-1:-1:-1;;;;;479:455:102;;;3893:15:70;479:455:102;;;;;;;3893:36:70;24823:16:69;;;;479:455:102;;;;;24823:16:69;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;:::i;:::-;24858:41:69;;;24823:16;;24967:14;;24919:45;:36;479:455:102;;24967:14:69;;;;;24919:36;479:455:102;;;;;;;;25176:25:69;479:455:102;;;;;;;24919:36:69;:45;479:455:102;:::i;:::-;4051:36:70;;-1:-1:-1;;;;;479:455:102;;;3893:15:70;479:455:102;;;;;;;4051:36:70;3793:45:72;;479:455:102;;;;;;;;;;;:::i;:::-;;;;;24676:16:69;;24854:1017;479:455:102;;;;;;;:::i;:::-;25019:34:69;;25006:47;;;25019:34;;479:455:102;;;;;;;;;;25125:14:69;;;479:455:102;:::i;:::-;;;;:::i;:::-;;;25114:44:69;;;;;;;;;;479:455:102;;;;;25114:44:69;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;25176:36:69;;;;479:455:102;;;;;;;;25176:25:69;479:455:102;;;;;;;25176:36:69;:45;479:455:102;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;25298:5:69;479:455:102;;;;;;;;;3793:45:72;479:455:102;;;;;;;;;;;;;;;;;;25298:5:69;:::i;:::-;24854:1017;;479:455:102;;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;;;3793:45:72;479:455:102;;;3793:45:72;479:455:102;;3793:45:72;479:455:102;;;;;;;;;25298:5:69;479:455:102;;;;;;;;;;;;;;;;;25298:5:69;:::i;479:455:102:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;;;3793:45:72;479:455:102;;;;;;;;;25002:869:69;479:455:102;;;;;;;;;;;;;;;25371:14:69;;;479:455:102;:::i;:::-;25360:37:69;479:455:102;;;;25360:37:69;;479:455:102;;;;25360:37:69;;;;;479:455:102;;;;;:::i;:::-;25420:38:69;3893:15:70;;25524:6:69;;;;;;:::i;:::-;25553:14;479:455:102;3147:35:69;;:12;:35;:::i;:::-;479:455:102;;;;;;;:::i;:::-;;;;3224:54:69;;;479:455:102;;;-1:-1:-1;;;;;479:455:102;;;;;;3658:13:69;479:455:102;;;;;3224:54:69;;479:455:102;;;;;;;;;;;;;;;;;;;1273:22:69;;;;:::i;:::-;479:455:102;3793:45:72;;479:455:102;;;1306:13:69;;;479:455:102;;;;;;;;;;;;1362:10:69;;;:::i;:::-;479:455:102;;;;;;;;;;;;;;;;;;;;;;3343:85:69;;;25631:16;479:455:102;;25622:47:69;;;;;;479:455:102;;;;;;;;;;;;;;;25622:47:69;;;;;479:455:102;25622:47:69;;;;;;;;;;;;;;;25416:441;;24854:1017;;25622:47;;;;:::i;:::-;;;;;479:455:102;;;;;;;;;;25416:441:69;25757:6;;;;;;;;;;:::i;:::-;25795:16;479:455:102;;25786:52:69;;;;;;479:455:102;;;;;;25786:52:69;;3793:45:72;25786:52:69;3793:45:72;;25786:52:69;;;;;;;;;;;;;;;;;;25416:441;24854:1017;;479:455:102;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;9330:540:69:-;;479:455:102;;;;;;;-1:-1:-1;479:455:102;9465:15:69;479:455:102;;;-1:-1:-1;479:455:102;;;;;;9580:22:69;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:69;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;9876:404::-;;10258:13;9876:404;10143:39;479:455:102;;;;;;;;;-1:-1:-1;479:455:102;10005:15:69;479:455:102;;10005:55:69;479:455:102;;;-1:-1:-1;479:455:102;10005:46:69;479:455:102;10005:55:69;:::i;:::-;479:455:102;-1:-1:-1;479:455:102;10005:15:69;479:455:102;;;;;-1:-1:-1;479:455:102;10070:46:69;479:455:102;10143:29:69;479:455:102;10143:39:69;:::i;:::-;:29;479:455:102;10258:13:69;:::i;479:455:102:-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;10286:616:69:-;;10830:13;10856:39;10286:616;479:455:102;;;;;;;-1:-1:-1;;479:455:102;;;10416:15:69;479:455:102;;10416:55:69;479:455:102;;;;;10416:46:69;479:455:102;10416:55:69;:::i;:::-;479:455:102;;;10416:15:69;479:455:102;;;;;10416:15:69;10507:42;;479:455:102;;;10564:18:69;;:42;;;;10286:616;-1:-1:-1;10560:199:69;;;479:455:102;;;;;;;;;;;;;;;;;:::i;:::-;10830:13:69;:::i;:::-;10856:29;479:455:102;10856:39:69;:::i;:::-;:29;479:455:102;10286:616:69:o;10560:199::-;10686:46;;;479:455:102;10686:46:69;479:455:102;10830:13:69;:::i;10564:42::-;10586:20;;;10564:42;;;11008:2209;;;479:455:102;;;;;;;;;-1:-1:-1;479:455:102;;;;;;1317:17:79;479:455:102;;;;;;;;;;;;11120:226:69;;479:455:102;1693:14:71;479:455:102;;;;;11124:21:69;479:455:102;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;479:455:102;;;;;4077:23:77;479:455:102;;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;479:455:102;;;1317:17:79;479:455:102;;;;;;;;12866:229:69;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;479:455:102;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;13168:42:69;;;;11008:2209::o;12866:229::-;3147:36:77;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;479:455:102;;;;4619:7:77;;;4612:423;-1:-1:-1;;479:455:102;;-1:-1:-1;;;;;479:455:102;;;;;-1:-1:-1;;;;479:455:102;;;;;;;;;-1:-1:-1;13008:56:69;;479:455:102;;;;13008:56:69;479:455:102;4612:423:77;479:455:102;;1991:25:79;479:455:102;;;;;;;;;;;1952:17:79;479:455:102;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:69;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:79;12475:4:69;;;:::i;:::-;479:455:102;;;;;;12495:140:69;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;479:455:102;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;12495:140:69;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:78;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;479:455:102;11124:21:69;479:455:102;;4932:763:78;;479:455:102;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;479:455:102;;-1:-1:-1;;;;;479:455:102;;;;;-1:-1:-1;;;;479:455:102;;;;;;;5556:5:78;;-1:-1:-1;11260:55:69;;-1:-1:-1;479:455:102;;;;11260:55:69;479:455:102;4971:413:78;479:455:102;;;;;1952:17:79;479:455:102;;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;11260:55:69;4939:16:78;;;;;11260:55:69;4939:16:78;;;;13320:2014:69;;;479:455:102;;;;;;;;;-1:-1:-1;;479:455:102;;;;;1317:17:79;479:455:102;;;;;;;;;;;;13428:421:69;;479:455:102;;;1317:17:79;479:455:102;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;479:455:102;;;;;4277:7:78;;;;479:455:102;;;;;;;;;1952:17:79;479:455:102;;;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;13432:22:69;479:455:102;;14638:37:69;14634:74;;4023:26:77;;:::i;:::-;479:455:102;;;1952:17:79;479:455:102;;;;;;;;;4129:25:77;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;479:455:102;;;;;;;4129:25:77;;;;:::i;:::-;-1:-1:-1;14901:358:69;;-1:-1:-1;;479:455:102;;-1:-1:-1;;;;;479:455:102;;;;;;;;;15274:53:69;;479:455:102;;;;15274:53:69;479:455:102;14901:358:69;14979:4;;;;15176:52;;14979:4;;;:::i;:::-;15025;;:::i;14634:74::-;14691:7;;;;;;:::o;4277::78:-;;;;;;;;;;;;;14049:508:69;14126:9;;;;14155:30;14126:9;;;;;;;;;:::i;:::-;479:455:102;;;;;14155:30:69;13432:22;479:455:102;;14200:326:69;;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:77;4077:23;4023:26;;;;:::i;:::-;479:455:102;;;;;;;14472:39:69;4129:25:77;;;:::i;:::-;14378:4:69;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;479:455:102;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:77;479:455:102;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;479:455:102;;;;;;;;;13432:22:69;479:455:102;;5287:763:77;479:455:102;;;5287:763:77;-1:-1:-1;;479:455:102;;-1:-1:-1;;;;;479:455:102;;;;;-1:-1:-1;;;;479:455:102;;;;;;;-1:-1:-1;479:455:102;;-1:-1:-1;13764:54:69;;479:455:102;-1:-1:-1;479:455:102;;;;13764:54:69;479:455:102;5287:763:77;479:455:102;;;5294:16:77;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;479:455:102;;1952:17:79;479:455:102;;;;;;;;1991:25:79;;479:455:102;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13490:185:69;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;479:455:102;;;;13605:31:69;13654:7::o;998:417:77:-;1401:5;998:417;1301:30;479:455:102;;1119:19:77;479:455:102;12499:22:69;479:455:102;;1119:19:77;:::i;:::-;479:455:102;;;;;;;;;;-1:-1:-1;479:455:102;1149:23:77;479:455:102;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:102;1200:23:77;479:455:102;;;-1:-1:-1;479:455:102;;-1:-1:-1;;;;;479:455:102;;;;;;;;12499:22:69;479:455:102;;;12499:22:69;479:455:102;1301:30:77;:::i;:::-;1401:5;;:::i;4525:375:69:-;479:455:102;1693:14:71;479:455:102;;;;;;;;4697:24:69;4668:53;4697:24;;-1:-1:-1;;;;;479:455:102;-1:-1:-1;479:455:102;;;4745:21:69;479:455:102;;;;;;;4525:375:69:o;4664:230::-;-1:-1:-1;;;;;479:455:102;-1:-1:-1;479:455:102;;;4831:21:69;479:455:102;;;;;;4831:52:69;479:455:102;;4525:375:69:o;479:455:102:-;;;;;-1:-1:-1;;479:455:102;;;;;;;:::o;1545:401:77:-;479:455:102;;13432:22:69;479:455:102;;1044:14:79;;;1040:61;;479:455:102;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;479:455:102;;;;2468:17:79;479:455:102;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;2551:17:79;479:455:102;;;;;;;-1:-1:-1;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1799:4:77;;479:455:102;1766:8:77;;479:455:102;1766:8:77;:::i;:::-;479:455:102;;13432:22:69;479:455:102;;;13432:22:69;479:455:102;1799:4:77;:::i;:::-;479:455:102;;;;;;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;5160:26;1952:17:79;479:455:102;13432:22:69;479:455:102;;5287:763:77;479:455:102;;;5287:763:77;1545:401;;;;;;;;;;;:::o;5287:763::-;479:455:102;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;479:455:102;;;;;;;;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;1040:61:79;479:455:102;;-1:-1:-1;;;1081:9:79;;;;;2081:787:77;2210:36;2081:787;2210:36;:::i;:::-;479:455:102;;;12499:22:69;479:455:102;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;479:455:102;;;12499:22:69;479:455:102;;;12499:22:69;479:455:102;2415:4:77;;;:::i;:::-;479:455:102;;;2435:11:77;;;2431:48;;-1:-1:-1;479:455:102;-1:-1:-1;;479:455:102;;;;1952:17:79;479:455:102;;;;;;;;;;;;;;2668:5:77;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;479:455:102;;;;;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;2854:5:77;;479:455:102;;;;;;;;;12499:22:69;479:455:102;;5287:763:77;479:455:102;;;2081:787:77;;;;;;;;;;;:::o;5287:763::-;479:455:102;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;479:455:102;;;;;;;;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;5326:412:77;;2431:48;2462:7;;;:::o;4443:598::-;;;;4612:423;4625:1;479:455:102;;;;4619:7:77;;;;479:455:102;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;479:455:102;;;1952:17:79;479:455:102;;;;;;;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;479:455:102:-;;;;;;;;;;;;;;:::o;6117:442:77:-;;;;479:455:102;;;;;-1:-1:-1;479:455:102;1952:17:79;479:455:102;;1991:25:79;479:455:102;;;;;1991:25:79;479:455:102;;-1:-1:-1;479:455:102;;;1991:25:79;:::i;:::-;479:455:102;;;-1:-1:-1;479:455:102;1952:17:79;479:455:102;;;-1:-1:-1;479:455:102;;;1991:25:79;:::i;:::-;6662:7:77;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:77;;-1:-1:-1;6490:21:77:o;924:417:78:-;1327:5;924:417;1227:30;479:455:102;;1045:19:78;479:455:102;11124:21:69;479:455:102;;1045:19:78;:::i;:::-;479:455:102;;;;;;;;;;-1:-1:-1;479:455:102;1075:23:78;479:455:102;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:102;1126:23:78;479:455:102;;;-1:-1:-1;479:455:102;;-1:-1:-1;;;;;479:455:102;;;;;;;;11124:21:69;479:455:102;;;11124:21:69;479:455:102;1227:30:78;:::i;:::-;1327:5;;:::i;1408:401::-;479:455:102;;11124:21:69;479:455:102;;1044:14:79;;;1040:61;;479:455:102;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;479:455:102;;;;2468:17:79;479:455:102;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;2551:17:79;479:455:102;;;;;;;-1:-1:-1;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1662:4:78;;479:455:102;1629:8:78;;479:455:102;1629:8:78;:::i;:::-;479:455:102;;11124:21:69;479:455:102;;;11124:21:69;479:455:102;1662:4:78;:::i;:::-;479:455:102;;;;;;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;4715:986:78;;4828:25;1952:17:79;479:455:102;11124:21:69;479:455:102;;4932:763:78;479:455:102;;;1408:401:78;;;;;;;;;;;:::o;4932:763::-;479:455:102;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;479:455:102;;;;;;;;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;4971:413:78;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;479:455:102;;;;13888:21:69;479:455:102;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;479:455:102;;;13888:21:69;479:455:102;;;13888:21:69;479:455:102;2215:4:78;;;:::i;:::-;479:455:102;;;2235:11:78;;;2231:48;;-1:-1:-1;;;;479:455:102;;;;1952:17:79;479:455:102;;;;;;;;;;;;;;2466:3:78;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;479:455:102;;;;;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;2648:3:78;4846:7;2648:3;4846:7;:::i;:::-;4863:18;479:455:102;13888:21:69;479:455:102;;4932:763:78;;479:455:102;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;479:455:102;;;;;;;;1991:25:79;479:455:102;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;479:455:102;;;;4277:7:78;;;;479:455:102;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;479:455:102;;;1952:17:79;479:455:102;;;;;;;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;5763:443;;;479:455:102;;;;-1:-1:-1;479:455:102;1952:17:79;479:455:102;;1991:25:79;479:455:102;;;;;1991:25:79;479:455:102;;-1:-1:-1;479:455:102;;;1991:25:79;:::i;:::-;479:455:102;;;-1:-1:-1;479:455:102;1952:17:79;479:455:102;;;-1:-1:-1;479:455:102;;;1991:25:79;:::i;:::-;6308:7:78;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:79:-;479:455:102;11124:21:69;479:455:102;;1044:14:79;1040:61;;974:133::o;:::-;479:455:102;13432:22:69;479:455:102;;1044:14:79;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;479:455:102;-1:-1:-1;479:455:102;;;1474:17:79;479:455:102;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1512:71::-;479:455:102;;-1:-1:-1;;;1547:25:79;;;;;1363:226;-1:-1:-1;;;;;479:455:102;-1:-1:-1;479:455:102;;;1474:17:79;479:455:102;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1595:184::-;479:455:102;;-1:-1:-1;479:455:102;;;1671:17:79;479:455:102;;;;;;;;;;-1:-1:-1;;;;;;479:455:102;;;;;-1:-1:-1;;;;;479:455:102;;;1749:17:79;479:455:102;;;;;;;-1:-1:-1;;479:455:102;;;1595:184:79:o;:::-;479:455:102;;-1:-1:-1;479:455:102;;;1671:17:79;479:455:102;;;;;;;;;;-1:-1:-1;;;;;;479:455:102;;;;;-1:-1:-1;;;;;479:455:102;;;1749:17:79;479:455:102;;;;;;;-1:-1:-1;;479:455:102;;;1595:184:79:o;479:455:102:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:79;2416:25;479:455:102;;;11124:21:69;479:455:102;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;479:455:102;2423:17:79;;;;2416:25;:::i;:::-;-1:-1:-1;479:455:102;;;2468:17:79;479:455:102;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;2551:17:79;479:455:102;;;;;;;-1:-1:-1;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;479:455:102;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;479:455:102;;;12870:22:69;479:455:102;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;479:455:102;;;2468:17:79;479:455:102;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;2551:17:79;479:455:102;;;;;;;-1:-1:-1;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;479:455:102;;;;;;;;;;;;;;;;;;;2301:412:79:o;479:455:102:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;479:455:102;;;;;;;;-1:-1:-1;;479:455:102;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7405:890:84;;479:455:102;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;479:455:102;;;:::i;:::-;;;;;;;;;;-1:-1:-1;7631:8:69;;;;;;7801:36:84;;-1:-1:-1;479:455:102;;;6312:27:69;479:455:102;;;6364:12:69;;;;6359:236;479:455:102;;;6359:236:69;479:455:102;;;;;;7888:20:84;479:455:102;;;;;;;;;;;;;;;;;;;7912:3:84;7974:229;479:455:102;;7974:229:84;;:::i;:::-;8218:6;;8214:75;;7405:890;;:::o;8214:75::-;479:455:102;;;;;;;;;;8247:31:84;;;;;;479:455:102;8247:31:84;;;479:455:102;8247:31:84;6364:12:69;479:455:102;;;;;;;;;6378:9:69;;;;;-1:-1:-1;479:455:102;;;598:23:78;479:455:102;;;;;;;;;;;;6480:45:69;;6494:31;;-1:-1:-1;;;;;479:455:102;6494:31:69;:::i;:::-;6480:45;;:::i;:::-;479:455:102;;;6364:12:69;;;;6378:9;;;;;;7620;-1:-1:-1;;;;;479:455:102;7692:12:69;;;;:::i;:::-;479:455:102;;-1:-1:-1;479:455:102;1317:17:79;479:455:102;;;;-1:-1:-1;479:455:102;;;1317:33:79;7657:116:69;;7829:12;7808:34;479:455:102;7829:12:69;;;;;:::i;:::-;479:455:102;;7808:34:69;:::i;:::-;7786:56;;;;:::i;:::-;479:455:102;;7620:9:69;;7657:116;7745:12;;;479:455:102;7745:12:69;;;:::i;:::-;479:455:102;;;-1:-1:-1;;;7732:26:69;;479:455:102;;7732:26:69;;;479:455:102;7732:26:69;479:455:102;;;;;;;;;;;;;;;:::o;1239:1329:65:-;479:455:102;;1239:1329:65;;479:455:102;;;1596:21:65;;1592:90;;479:455:102;;1696:38:65;;;;:76;;;1239:1329;1692:148;;1855:9;;;;;1850:568;1866:20;;;;;;2431:19;;;;;;;;2427:75;;479:455:102;2511:50:65;2527:33;1239:1329;:::o;2427:75::-;479:455:102;2466:25:65;479:455:102;2466:25:65;:::o;1855:9::-;2031:13;;;;;;1957:102;2031:13;;;;:::i;:::-;;1957:102;;:::i;:::-;479:455:102;;;;:::i;:::-;2073:116:65;;-1:-1:-1;;;;;479:455:102;2219:14:65;;;;:::i;:::-;479:455:102;;;;2206:27:65;2202:105;;2329:19;479:455:102;2338:10:65;;;;;:::i;:::-;479:455:102;2329:19:65;;:::i;:::-;479:455:102;;1855:9:65;;;;;;;2202:105;2253:39;;;;;;;;479:455:102;2253:39:65;2269:22;2253:39;:::o;2073:116::-;2135:39;;;;;;;;;479:455:102;2135:39:65;2151:22;2135:39;:::o;1692:148::-;1788:41;;;;;;;;479:455:102;1788:41:65;:::o;1696:76::-;479:455:102;;;1738:34:65;;;1696:76;;1592:90;1633:38;;;;;;;;1649:21;1633:38;:::o;2483:766:32:-;479:455:102;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;479:455:102;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;1530:331:29:-;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;479:455:102;1749:33:29;;479:455:102;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1749:33:29;479:455:102;;;;;;1796:8:29;1792:63;;1530:331::o;1792:63::-;479:455:102;;-1:-1:-1;;;1827:17:29;;;;;479:455:102;;;1611:109:29;479:455:102;;-1:-1:-1;;;1668:41:29;;1623:4;1668:41;;;479:455:102;;;1668:41:29;6969:557:71;7128:20;479:455:102;;;7170:9:71;3793:45:72;7181:10:71;;;;;;6969:557;;;;:::o;7170:9::-;7213:23;;;:::i;:::-;479:455:102;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;7213:31:71;7209:242;;479:455:102;;;;7170:9:71;;7209:242;479:455:102;;;;;;;;;;;;;;;;7290:32:71;7264:23;7290:32;;7264:58;7290:32;;:::i;:::-;479:455:102;;;;;;;7264:23:71;;:::i;:::-;:58;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;7264:58:71;479:455:102;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7431:5:71;;;;;;479:455:102;;;;;;3793:45:72;479:455:102;;;3793:45:72;479:455:102;;;;;;;3793:45:72;479:455:102;;;3793:45:72;479:455:102;2587:156:62;2663:30;479:455:102;-1:-1:-1;;;;;479:455:102;2649:10:62;:44;2645:92;;2587:156::o;2645:92::-;479:455:102;;-1:-1:-1;;;2716:10:62;;;;;479:455:102;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;-1:-1:-1;;;479:455:102;;;;;;;;;;;;;;:::o;2502:71:45:-;;479:455:102;2502:71:45;;479:455:102;;;;;;;;;;;2502:71:45;;;:::i;:::-;479:455:102;;-1:-1:-1;;479:455:102;2502:71:45;;;:::o;479:455:102:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;1726:24:71;479:455:102;;;;;;;;1726:24:71;-1:-1:-1;479:455:102;;;;;-1:-1:-1;479:455:102;:::o;:::-;;;;;;;;5091:19:71;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;19251:224:69;-1:-1:-1;;;;;479:455:102;;;;;25176:25:69;479:455:102;;;;;19251:224:69;;;;8282:41;;479:455:102;-1:-1:-1;;;;;479:455:102;;;;;;;;;;:::i;:::-;;;:::i;:::-;3793:45:72;479:455:102;;;;;;;;;;;3793:45:72;479:455:102;;;;;;;;;;;;8282:41:69;479:455:102;;;;;;;19251:224:69:o;479:455:102:-;;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19251:224:69:o;479:455:102:-;;;-1:-1:-1;;8282:41:69;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3527:269:71;;3623:65;372:2:40;3630:57:71;;3623:65;:::i;:::-;372:2:40;3735:1:71;372:2:40;;;479:455:102;;;;-1:-1:-1;;372:2:40;;3735:1:71;372:2:40;479:455:102;:::i;:::-;;;;;;;3715:24:71;-1:-1:-1;;;;;479:455:102;;3527:269:71:o;4078:118:72:-;479:455:102;4127:8:72;479:455:102;;;;4123:67:72;;4078:118::o;4123:67::-;479:455:102;;-1:-1:-1;;;4158:21:72;;;;;19573:1335:69;;19954:6;19573:1335;19831:6;;;;:::i;:::-;19954;;:::i;:::-;479:455:102;19977:14:69;479:455:102;;;;19976:15:69;19972:930;;19573:1335;:::o;19972:930::-;20165:19;479:455:102;;3793:45:72;20165:19:69;3793:45:72;20221:10:69;;;;;;20205:270;20492:17;;;20488:404;;19972:930;;19573:1335;:::o;20488:404::-;-1:-1:-1;;;;;479:455:102;;;;;;25176:25:69;479:455:102;;;;;20550:56:69;;;479:455:102;;;;;;20766:45:69;479:455:102;;;;;;:::i;:::-;;;20647:183:69;;479:455:102;20647:183:69;;;479:455:102;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;20647:183:69;;479:455:102;;;-1:-1:-1;;;479:455:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3793:45:72;479:455:102;;;;;;;;;;;;;;;;;;;2462:7:77:o;479:455:102:-;;;;-1:-1:-1;479:455:102;;;;;;;;;;;;;3793:45:72;479:455:102;;3793:45:72;479:455:102;;3793:45:72;479:455:102;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:102;;;;;;20210:9:69;3793:45:72;479:455:102;;;;;;20257:27:69;;479:455:102;-1:-1:-1;;;;;479:455:102;;;;;20257:40:69;20253:137;;479:455:102;20210:9:69;;;;20253:137;20321:23;;;20366:5;;;;8648:175;479:455:102;;;;;;-1:-1:-1;479:455:102;8758:21:69;479:455:102;;8758:58:69;:21;479:455:102;-1:-1:-1;479:455:102;8758:48:69;479:455:102;;;8758:58:69;:::i;:::-;479:455:102;;8648:175:69:o;22329:256::-;;;479:455:102;;2707:18:70;;;;;479:455:102;2707:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22476:11:69;479:455:102;;;;;;;;;:::i;:::-;-1:-1:-1;479:455:102;;2707:18:70;3528:63;;479:455:102;;;;;;;;;;;;3528:63:70;;479:455:102;;-1:-1:-1;479:455:102;3489:15:70;2707:18;479:455:102;;-1:-1:-1;479:455:102;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;2707:18:70;479:455:102;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:102;;;;;22571:6:69;479:455:102;;-1:-1:-1;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;479:455:102;;-1:-1:-1;;;;;479:455:102;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;479:455:102;-1:-1:-1;;;;;479:455:102;22476:11:69;479:455:102;;;22476:11:69;479:455:102;;;;;;-1:-1:-1;479:455:102;;;;;;;;;2707:18:70;479:455:102;;;;;;;;;;;;;:::i;:::-;;;;;;2941:195:70;;;22571:6:69;:::i;479:455:102:-;;;;-1:-1:-1;479:455:102;;;;;;;;-1:-1:-1;479:455:102;2707:18:70;-1:-1:-1;479:455:102;;-1:-1:-1;479:455:102;-1:-1:-1;;479:455:102;;;;;;;;;;22571:6:69;479:455:102;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:70;479:455:102;;;;;;;1090:308:71;479:455:102;1233:14:71;479:455:102;;;;;;;;1229:147:71;;1090:308::o;2006:664::-;5112:35:69;479:455:102;2236:25:71;479:455:102;2217:44:71;;;2213:451;;2006:664;;:::o;2213:451::-;479:455:102;5328:27:69;479:455:102;;-1:-1:-1;;;;;2319:15:71;479:455:102;;-1:-1:-1;2281:53:71;2277:377;;2006:664;:::o;2277:377::-;479:455:102;;;2354:14:71;479:455:102;;;2354:14:71;479:455:102;2398:39:71;479:455:102;;2398:39:71;;;;:::i;:::-;;;;479:455:102;;;;;2546:16:71;479:455:102;;;2580:37:71;2598:19;479:455:102;2580:37:71;;;:::i;:::-;2537:102;;;;;;479:455:102;3793:45:72;479:455:102;;;;;;;;;;;2537:102:71;;;;;479:455:102;2537:102:71;;;;;;;2213:451;2537:102;;;;:::i;:::-;479:455:102;;;3793:45:72;479:455:102;;;;;7441:782:86;7665:14;;:::i;:::-;7724:11;;7720:68;;7855:10;479:455:102;;;;25176:25:69;479:455:102;;;;;18718:25:69;:52;479:455:102;7881:15:86;;7877:77;;7967:20;-1:-1:-1;7967:20:86;7963:79;;479:455:102;8056:14:86;479:455:102;;;;8055:15:86;8051:116;;8209:6;7855:10;;8209:6;:::i;8051:116::-;7855:10;21358:6:69;21588;7855:10:86;;21358:6:69;:::i;:::-;21482;7855:10:86;;21482:6:69;:::i;7963:79:86:-;479:455:102;;-1:-1:-1;;;8010:21:86;;;;;7720:68;479:455:102;;-1:-1:-1;;;7758:19:86;;;;;8895:364:69;-1:-1:-1;;;;;479:455:102;-1:-1:-1;479:455:102;;;9022:21:69;479:455:102;;;;;9022:21:69;:48;479:455:102;;;9084:14:69;;;9080:81;;9171:15;;;:::i;:::-;479:455:102;-1:-1:-1;479:455:102;9022:21:69;479:455:102;;9022:21:69;479:455:102;-1:-1:-1;479:455:102;9196:48:69;479:455:102;8895:364:69:o;9080:81::-;479:455:102;;-1:-1:-1;;;9121:29:69;;;;;22631:259;;;479:455:102;;2064:18:70;;;;;479:455:102;2064:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22779:11:69;479:455:102;;;;;;;;;:::i;:::-;2217:25:70;479:455:102;;2064:18:70;3528:63;;479:455:102;;;;;;;;;;;;3528:63:70;;479:455:102;;-1:-1:-1;479:455:102;3489:15:70;2064:18;479:455:102;;-1:-1:-1;479:455:102;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;2217:25:70;479:455:102;;;;:::i;:::-;2064:18:70;479:455:102;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:102;;;;;22876:6:69;479:455:102;;-1:-1:-1;479:455:102;;;;;;;2217:25:70;479:455:102;;;;;;;;;;;2217:25:70;479:455:102;;;;;;;;;;;;3528:63:70;;479:455:102;;-1:-1:-1;;;;;479:455:102;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;479:455:102;-1:-1:-1;;;;;479:455:102;22779:11:69;479:455:102;;;22779:11:69;479:455:102;;;;;;2217:25:70;479:455:102;;;;;;;;;2064:18:70;479:455:102;;;;;;;;;;;;;:::i;:::-;;;;;;2299:196:70;;;22876:6:69;:::i;479:455:102:-;;;;-1:-1:-1;479:455:102;;;;;2217:25:70;479:455:102;;-1:-1:-1;479:455:102;2064:18:70;-1:-1:-1;479:455:102;;-1:-1:-1;479:455:102;-1:-1:-1;;479:455:102;;;;;;;;2217:25:70;479:455:102;22876:6:69;479:455:102;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:102;;;;;;;;;;;;;;;;;2217:25:70;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2217:25:70;479:455:102;;;;2064:18:70;479:455:102;;;;;;;8297:1550:86;479:455:102;8698:14:86;479:455:102;;;;8694:89:86;;8297:1550;8904:10;479:455:102;;;;25176:25:69;479:455:102;;;;;18718:25:69;:52;479:455:102;8929:11:86;;8925:73;;8720:53:36;8904:10:86;8720:53:36;:::i;:::-;;-1:-1:-1;8904:10:86;;479:455:102;;9112:16:86;479:455:102;;;;;;;;;;:::i;:::-;;;;8297:1550:86;479:455:102;;;;8698:14:86;479:455:102;;;;9155:15:86;9151:641;;9833:6;8904:10;;;9833:6;:::i;9151:641::-;479:455:102;21588:6:69;8904:10:86;;479:455:102;;9308:16:86;479:455:102;;;;9354:19:86;9350:277;;9151:641;8904:10;21358:6:69;8904:10:86;;21358:6:69;:::i;9350:277:86:-;479:455:102;9444:37:86;9597:14;479:455:102;18718:25:69;479:455:102;9444:37:86;:::i;:::-;18718:25:69;479:455:102;9538:10:86;8904;9538;:::i;9597:14::-;9350:277;;;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8694:89:86;8728:14;;:::i;:::-;8694:89;;2787:1388:36;-1:-1:-1;479:455:102;;;2990:12:36;479:455:102;;;;;;-1:-1:-1;;479:455:102;3024:15:36;;;;-1:-1:-1;;479:455:102;;;;;;;;;9059:17:86;479:455:102;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;479:455:102;;;9059:17:86;479:455:102;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9059:17:86;479:455:102;;;2990:12:36;479:455:102;;;;;;2990:12:36;4104:11;:::o;479:455:102:-;-1:-1:-1;;;479:455:102;;;;;;;;3502:398:36;479:455:102;3572:22:36;3694:26;3572:22;;:::i;:::-;479:455:102;;;;;;3694:26:36;;;;:::i;479:455:102:-;;;;;2990:12:36;479:455:102;;;;;;3502:398:36;;;;;479:455:102;-1:-1:-1;;;479:455:102;;;;;;;;;-1:-1:-1;;;479:455:102;;;;;;;;3020:1149:36;4146:12;;;:::o;1332:1492:88:-;;;;1507:11;;1503:48;;479:455:102;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:102;;;;;;;1517:1:88;479:455:102;;;;;;;;;;1653:32:88;;;-1:-1:-1;3208:21:71;479:455:102;3199:30:71;;;:::i;:::-;479:455:102;;3250:35:71;479:455:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1649:568:88;479:455:102;;2425:19:88;;;2421:56;;2490:23;;;2486:60;;479:455:102;;;2647:9:88;;2658:18;;;;;;1332:1492;;;;;;;:::o;2647:9::-;479:455:102;;-1:-1:-1;;;;;2719:11:88;479:455:102;2719:11:88;;:::i;:::-;479:455:102;;;;2694:16:88;479:455:102;;;;;2694:54:88;479:455:102;;;2694:54:88;:::i;:::-;479:455:102;;;2647:9:88;;479:455:102;;;;;;;;;;;;-1:-1:-1;479:455:102;;;;;;1649:568:88;1779:38;479:455:102;1779:38:88;;;1775:442;479:455:102;;;;;;6935:42:86;;;;2062:51:88;;;;;479:455:102;;;;;;;;;;;2062:51:88;1775:442;479:455:102;;;6935:42:86;;;;2151:55:88;;;;;479:455:102;;;;;;;;;;;-1:-1:-1;;;479:455:102;;;;2151:55:88;479:455:102;-1:-1:-1;;;479:455:102;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":309,"length":20}]}}},"methodIdentifiers":{"addBootstrapNode(string)":"10fd4261","claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","confirmChange(uint64)":"350a14bf","confirmNextChange()":"c7ebdaef","distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","pause()":"8456cb59","paused()":"5c975abb","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","setFederatedPower(address[],bytes[],uint256[])":"da5d09ee","stake()":"3a4b66f1","submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":"26811936","submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":"b9ee2bb9","unpause()":"3f4ba83a","unstake(uint256)":"2e17de78","validateActiveQuorumSignatures(address[],bytes32,bytes[])":"cc2dc2b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicatedGenesisValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFederationPayload\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPublicKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"InvalidSignatureErr\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCollateralToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughGenesisValidators\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOfPublicKey\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyBootstrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawExceedingCollateral\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddress\",\"type\":\"string\"}],\"name\":\"addBootstrapNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_configurationNumber\",\"type\":\"uint64\"}],\"name\":\"confirmChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"confirmNextChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"publicKeys\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"powers\",\"type\":\"uint256[]\"}],\"name\":\"setFederatedPower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateActiveQuorumSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the unpause is triggered by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"addBootstrapNode(string)\":{\"params\":{\"netAddress\":\"The network address of the new bootstrap node.\"}},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"params\":{\"height\":\"The height of the checkpoint for which rewards are being distributed.\",\"kind\":\"The type of object for which rewards are being distributed.\",\"reward\":\"The total amount of reward to be distributed.\"}},\"join(bytes)\":{\"params\":{\"publicKey\":\"The off-chain 65 byte public key that should be associated with the validator\"}},\"kill()\":{\"details\":\"It is not a privileged operation.\"},\"preFund()\":{\"details\":\"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply.\"},\"preRelease(uint256)\":{\"details\":\"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.\",\"params\":{\"amount\":\"The amount to remove.\"}},\"setFederatedPower(address[],bytes[],uint256[])\":{\"details\":\"method that allows the contract owner to set the validators' federated power.\",\"params\":{\"powers\":\"The federated powers to be assigned to validators.\",\"publicKeys\":\"The public keys of validators.\",\"validators\":\"The addresses of validators.\"}},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"details\":\"It triggers the execution of a cross-net message batch.\",\"params\":{\"batch\":\"The batch of bottom-up messages.\",\"signatories\":\"The addresses of validators signing the batch.\",\"signatures\":\"The signatures of validators on the batch.\"}},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"details\":\"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\",\"params\":{\"checkpoint\":\"The executed bottom-up checkpoint.\",\"signatories\":\"The addresses of validators signing the checkpoint.\",\"signatures\":\"The signatures of validators on the checkpoint.\"}},\"unstake(uint256)\":{\"details\":\"`leave` must be used to unstake the entire stake.\",\"params\":{\"amount\":\"The amount to unstake.\"}},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"details\":\"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.\",\"params\":{\"hash\":\"The hash of the checkpoint.\",\"signatories\":\"The addresses of the signatories.\",\"signatures\":\"The packed signatures of the checkpoint.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBootstrapNode(string)\":{\"notice\":\"Add a bootstrap node.\"},\"claim()\":{\"notice\":\"Validator claims their released collateral.\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims its reward.\"},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"Distributes rewards to relayers for a specific checkpoint.\"},\"join(bytes)\":{\"notice\":\"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"kill()\":{\"notice\":\"method that allows to kill the subnet when all validators left.\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet.\"},\"pause()\":{\"notice\":\"Pauses all contract functions with the `whenNotPaused` modifier.\"},\"paused()\":{\"notice\":\"Returns true if the SubnetActor contract is paused.\"},\"preFund()\":{\"notice\":\"method to add some initial balance into a subnet that hasn't yet bootstrapped.\"},\"preRelease(uint256)\":{\"notice\":\"method to remove funds from the initial balance of a subnet.\"},\"setFederatedPower(address[],bytes[],uint256[])\":{\"notice\":\"Sets the federated power of validators.\"},\"stake()\":{\"notice\":\"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"notice\":\"Submits a batch of bottom-up messages for execution.\"},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"notice\":\"Submits a checkpoint commitment for execution.\"},\"unpause()\":{\"notice\":\"Unpauses all contract functions with the `whenNotPaused` modifier.\"},\"unstake(uint256)\":{\"notice\":\"method that allows a validator to unstake a part of its collateral from a subnet.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"notice\":\"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/SubnetActorMock.sol\":\"SubnetActorMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3\",\"dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorCheckpointingFacet.sol\":{\"keccak256\":\"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a\",\"dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8\",\"dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm\"]},\"src/subnet/SubnetActorPauseFacet.sol\":{\"keccak256\":\"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14\",\"dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb\"]},\"src/subnet/SubnetActorRewardFacet.sol\":{\"keccak256\":\"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088\",\"dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF\"]},\"test/mocks/SubnetActorMock.sol\":{\"keccak256\":\"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43\",\"dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"CollateralIsZero"},{"inputs":[],"type":"error","name":"DuplicatedGenesisValidator"},{"inputs":[],"type":"error","name":"EmptyAddress"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidFederationPayload"},{"inputs":[],"type":"error","name":"InvalidPublicKeyLength"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"type":"error","name":"InvalidSignatureErr"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NoCollateralToWithdraw"},{"inputs":[],"type":"error","name":"NotAllValidatorsHaveLeft"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughCollateral"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughGenesisValidators"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"NotOwnerOfPublicKey"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotValidator"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"SubnetAlreadyBootstrapped"},{"inputs":[],"type":"error","name":"SubnetAlreadyKilled"},{"inputs":[],"type":"error","name":"WithdrawExceedingCollateral"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"netAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addBootstrapNode"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint64","name":"_configurationNumber","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"confirmChange"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"confirmNextChange"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"publicKey","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"bytes[]","name":"publicKeys","type":"bytes[]"},{"internalType":"uint256[]","name":"powers","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setFederatedPower"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"validateActiveQuorumSignatures"}],"devdoc":{"kind":"dev","methods":{"addBootstrapNode(string)":{"params":{"netAddress":"The network address of the new bootstrap node."}},"distributeRewardToRelayers(uint256,uint256,uint8)":{"params":{"height":"The height of the checkpoint for which rewards are being distributed.","kind":"The type of object for which rewards are being distributed.","reward":"The total amount of reward to be distributed."}},"join(bytes)":{"params":{"publicKey":"The off-chain 65 byte public key that should be associated with the validator"}},"kill()":{"details":"It is not a privileged operation."},"preFund()":{"details":"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply."},"preRelease(uint256)":{"details":"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.","params":{"amount":"The amount to remove."}},"setFederatedPower(address[],bytes[],uint256[])":{"details":"method that allows the contract owner to set the validators' federated power.","params":{"powers":"The federated powers to be assigned to validators.","publicKeys":"The public keys of validators.","validators":"The addresses of validators."}},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"details":"It triggers the execution of a cross-net message batch.","params":{"batch":"The batch of bottom-up messages.","signatories":"The addresses of validators signing the batch.","signatures":"The signatures of validators on the batch."}},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"details":"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.","params":{"checkpoint":"The executed bottom-up checkpoint.","signatories":"The addresses of validators signing the checkpoint.","signatures":"The signatures of validators on the checkpoint."}},"unstake(uint256)":{"details":"`leave` must be used to unstake the entire stake.","params":{"amount":"The amount to unstake."}},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"details":"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.","params":{"hash":"The hash of the checkpoint.","signatories":"The addresses of the signatories.","signatures":"The packed signatures of the checkpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"addBootstrapNode(string)":{"notice":"Add a bootstrap node."},"claim()":{"notice":"Validator claims their released collateral."},"claimRewardForRelayer()":{"notice":"Relayer claims its reward."},"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"Distributes rewards to relayers for a specific checkpoint."},"join(bytes)":{"notice":"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"kill()":{"notice":"method that allows to kill the subnet when all validators left."},"leave()":{"notice":"method that allows a validator to leave the subnet."},"pause()":{"notice":"Pauses all contract functions with the `whenNotPaused` modifier."},"paused()":{"notice":"Returns true if the SubnetActor contract is paused."},"preFund()":{"notice":"method to add some initial balance into a subnet that hasn't yet bootstrapped."},"preRelease(uint256)":{"notice":"method to remove funds from the initial balance of a subnet."},"setFederatedPower(address[],bytes[],uint256[])":{"notice":"Sets the federated power of validators."},"stake()":{"notice":"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"notice":"Submits a batch of bottom-up messages for execution."},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"notice":"Submits a checkpoint commitment for execution."},"unpause()":{"notice":"Unpauses all contract functions with the `whenNotPaused` modifier."},"unstake(uint256)":{"notice":"method that allows a validator to unstake a part of its collateral from a subnet."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"notice":"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/SubnetActorMock.sol":"SubnetActorMock"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451","urls":["bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3","dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorCheckpointingFacet.sol":{"keccak256":"0x999e101f0612a082091ae2d2f8d47e9497d361a3b6acdae3e937be6fd2454b96","urls":["bzz-raw://cf2956aeed98a4216349241a0ed81d7b679d24a2ba8216bd0349cc29dbe8b58a","dweb:/ipfs/QmW9k3h6wxNCGbuNDPDjK5bkJozkaPjdNz5zKSvsXHo4Qf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x30876fe53fd96847daeea3cf292213faf0140640b78254fa1dfd94b13ba5406c","urls":["bzz-raw://f693727a98c258aeccca71b9173bde8ec40ce055876213304dd6dee70239e0e8","dweb:/ipfs/QmVrxK9sT4oart7nbPvcDhHPPjdf7FAoAbrUJVZ5ULHapm"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorPauseFacet.sol":{"keccak256":"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49","urls":["bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14","dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorRewardFacet.sol":{"keccak256":"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435","urls":["bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088","dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorMock.sol":{"keccak256":"0x8cc82d4b4e427b507c65ecce2cd193c8ffed0e28d11dc46e129cd3ea0687314a","urls":["bzz-raw://cc110daa6722b830e7eb589121f58f70767d9f4718905da0c160d7fce76b5e43","dweb:/ipfs/QmaMDwvoEHxAaPV7MVa7tzr75KiAL44E4oTsWSuU5pnJUY"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/mocks/SubnetActorMock.sol","id":58343,"exportedSymbols":{"LibStaking":[46129],"SubnetActorCheckpointingFacet":[50577],"SubnetActorManagerFacet":[51946],"SubnetActorMock":[58342],"SubnetActorPauseFacet":[51991],"SubnetActorRewardFacet":[52158]},"nodeType":"SourceUnit","src":"46:889:102","nodes":[{"id":58293,"nodeType":"PragmaDirective","src":"46:23:102","nodes":[],"literals":["solidity","0.8",".19"]},{"id":58295,"nodeType":"ImportDirective","src":"71:85:102","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":58343,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":58294,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"79:23:102","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58297,"nodeType":"ImportDirective","src":"157:56:102","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../../src/lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":58343,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":58296,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"165:10:102","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58299,"nodeType":"ImportDirective","src":"214:81:102","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":58343,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":58298,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"222:21:102","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58301,"nodeType":"ImportDirective","src":"296:83:102","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":58343,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":58300,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"304:22:102","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58303,"nodeType":"ImportDirective","src":"380:97:102","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":58343,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":58302,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"388:29:102","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58342,"nodeType":"ContractDefinition","src":"479:455:102","nodes":[{"id":58323,"nodeType":"FunctionDefinition","src":"631:124:102","nodes":[],"body":{"id":58322,"nodeType":"Block","src":"692:63:102","nodes":[],"statements":[{"expression":{"arguments":[{"id":58319,"name":"_configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58313,"src":"727:20:102","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":58316,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"702:10:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":58318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"713:13:102","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46128,"src":"702:24:102","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":58320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"702:46:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58321,"nodeType":"ExpressionStatement","src":"702:46:102"}]},"functionSelector":"350a14bf","implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"640:13:102","parameters":{"id":58314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58313,"mutability":"mutable","name":"_configurationNumber","nameLocation":"661:20:102","nodeType":"VariableDeclaration","scope":58323,"src":"654:27:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58312,"name":"uint64","nodeType":"ElementaryTypeName","src":"654:6:102","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"653:29:102"},"returnParameters":{"id":58315,"nodeType":"ParameterList","parameters":[],"src":"692:0:102"},"scope":58342,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58341,"nodeType":"FunctionDefinition","src":"761:171:102","nodes":[],"body":{"id":58340,"nodeType":"Block","src":"799:133:102","nodes":[],"statements":[{"assignments":[58327,null],"declarations":[{"constant":false,"id":58327,"mutability":"mutable","name":"nextConfigNum","nameLocation":"817:13:102","nodeType":"VariableDeclaration","scope":58340,"src":"810:20:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58326,"name":"uint64","nodeType":"ElementaryTypeName","src":"810:6:102","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":58331,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58328,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"836:10:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":58329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"847:23:102","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":45918,"src":"836:34:102","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view returns (uint64,uint64)"}},"id":58330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"836:36:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"809:63:102"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":58337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58335,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58327,"src":"907:13:102","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":58336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"923:1:102","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"907:17:102","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":58332,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"882:10:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":58334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"893:13:102","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46128,"src":"882:24:102","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":58338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"882:43:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58339,"nodeType":"ExpressionStatement","src":"882:43:102"}]},"functionSelector":"c7ebdaef","implemented":true,"kind":"function","modifiers":[],"name":"confirmNextChange","nameLocation":"770:17:102","parameters":{"id":58324,"nodeType":"ParameterList","parameters":[],"src":"787:2:102"},"returnParameters":{"id":58325,"nodeType":"ParameterList","parameters":[],"src":"799:0:102"},"scope":58342,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":58304,"name":"SubnetActorPauseFacet","nameLocations":["511:21:102"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"511:21:102"},"id":58305,"nodeType":"InheritanceSpecifier","src":"511:21:102"},{"baseName":{"id":58306,"name":"SubnetActorManagerFacet","nameLocations":["538:23:102"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"538:23:102"},"id":58307,"nodeType":"InheritanceSpecifier","src":"538:23:102"},{"baseName":{"id":58308,"name":"SubnetActorRewardFacet","nameLocations":["567:22:102"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"567:22:102"},"id":58309,"nodeType":"InheritanceSpecifier","src":"567:22:102"},{"baseName":{"id":58310,"name":"SubnetActorCheckpointingFacet","nameLocations":["595:29:102"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"595:29:102"},"id":58311,"nodeType":"InheritanceSpecifier","src":"595:29:102"}],"canonicalName":"SubnetActorMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58342,50577,52158,51946,51991,43385,43966,47288,40372],"name":"SubnetActorMock","nameLocation":"488:15:102","scope":58343,"usedErrors":[32461,32469,37368,37372,37374,37382,37390,37392,37404,37406,37408,37438,37442,37448,37454,37462,37466,37470,37478,37480,37490,37494,37496,37504,37510,37514,37526,37528,37530,37532,40919,43259,43262,43914]}],"license":"MIT OR Apache-2.0"},"id":102} \ No newline at end of file diff --git a/.out/SubnetActorPauseFacet.sol/SubnetActorPauseFacet.json b/.out/SubnetActorPauseFacet.sol/SubnetActorPauseFacet.json new file mode 100644 index 000000000..72ad3bd0f --- /dev/null +++ b/.out/SubnetActorPauseFacet.sol/SubnetActorPauseFacet.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657610214908161001c8239f35b600080fdfe604060808152600436101561001357600080fd5b600090813560e01c80633f4ba83a146101105780635c975abb146100ce57638456cb591461004057600080fd5b346100ca57816003193601126100ca57610058610199565b7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863805460ff81166100b95760ff19166001179055513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a180f35b825163d93c066560e01b8152600490fd5b5080fd5b50346100ca57816003193601126100ca5760209060ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863541690519015158152f35b50346100ca57816003193601126100ca57610129610199565b7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863805460ff8116156101885760ff19169055513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152600490fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036101cc57565b6040516330cd747160e01b8152600490fdfea264697066735822122048fd97b221e741f6cd5538c2b97886b6c9ef17ff171973ebfda3b7195e33a43364736f6c63430008130033","sourceMap":"171:571:87:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x604060808152600436101561001357600080fd5b600090813560e01c80633f4ba83a146101105780635c975abb146100ce57638456cb591461004057600080fd5b346100ca57816003193601126100ca57610058610199565b7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863805460ff81166100b95760ff19166001179055513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a180f35b825163d93c066560e01b8152600490fd5b5080fd5b50346100ca57816003193601126100ca5760209060ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863541690519015158152f35b50346100ca57816003193601126100ca57610129610199565b7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863805460ff8116156101885760ff19169055513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152600490fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036101cc57565b6040516330cd747160e01b8152600490fdfea264697066735822122048fd97b221e741f6cd5538c2b97886b6c9ef17ff171973ebfda3b7195e33a43364736f6c63430008130033","sourceMap":"171:571:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:10;;:::i;:::-;248:41:66;171:571:87;;;;;1424:62:66;;-1:-1:-1;;171:571:87;2145:4:66;171:571:87;;;;2171:10:66;171:571:87;;2164:18:66;;171:571:87;;2164:18:66;171:571:87;;1424:62:66;171:571:87;;-1:-1:-1;;;1460:15:66;;171:571:87;;1460:15:66;171:571:87;;;;;;;;;;;;;;;;;;;;248:41:66;171:571:87;;;;;;;;;;;;;;;;;;;;;;;524:10;;:::i;:::-;248:41:66;171:571:87;;;;;1618:10:66;1614:63;;-1:-1:-1;;171:571:87;;;;2482:10:66;171:571:87;;2473:20:66;;171:571:87;;2473:20:66;171:571:87;;1614:63:66;171:571:87;;-1:-1:-1;;;1651:15:66;;171:571:87;;1651:15:66;2587:156:62;2663:30;171:571:87;-1:-1:-1;;;;;171:571:87;2649:10:62;:44;2645:92;;2587:156::o;2645:92::-;171:571:87;;-1:-1:-1;;;2716:10:62;;;;","linkReferences":{}},"methodIdentifiers":{"pause()":"8456cb59","paused()":"5c975abb","unpause()":"3f4ba83a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the unpause is triggered by `account`.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"pause()\":{\"notice\":\"Pauses all contract functions with the `whenNotPaused` modifier.\"},\"paused()\":{\"notice\":\"Returns true if the SubnetActor contract is paused.\"},\"unpause()\":{\"notice\":\"Unpauses all contract functions with the `whenNotPaused` modifier.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorPauseFacet.sol\":\"SubnetActorPauseFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]},\"src/subnet/SubnetActorPauseFacet.sol\":{\"keccak256\":\"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14\",\"dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"pause()":{"notice":"Pauses all contract functions with the `whenNotPaused` modifier."},"paused()":{"notice":"Returns true if the SubnetActor contract is paused."},"unpause()":{"notice":"Unpauses all contract functions with the `whenNotPaused` modifier."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorPauseFacet.sol":"SubnetActorPauseFacet"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorPauseFacet.sol":{"keccak256":"0x94d4d320a2e9e706d7027311e679020c4b63dae0ad9dedb51796b845f7e9da49","urls":["bzz-raw://0b18116aff98b530eb08ee270ead8f80df56513401efa6e500072544ce930c14","dweb:/ipfs/QmQ98V1rz7o9S49NCBdwDMcfLU96nenPBjYy6q4AnHB3vb"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","id":51992,"exportedSymbols":{"LibDiamond":[41626],"Pausable":[43385],"SubnetActorPauseFacet":[51991]},"nodeType":"SourceUnit","src":"46:697:87","nodes":[{"id":51948,"nodeType":"PragmaDirective","src":"46:23:87","nodes":[],"literals":["solidity","0.8",".19"]},{"id":51950,"nodeType":"ImportDirective","src":"71:49:87","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":51992,"sourceUnit":41627,"symbolAliases":[{"foreign":{"id":51949,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"79:10:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51952,"nodeType":"ImportDirective","src":"121:48:87","nodes":[],"absolutePath":"src/lib/LibPausable.sol","file":"../lib/LibPausable.sol","nameLocation":"-1:-1:-1","scope":51992,"sourceUnit":43386,"symbolAliases":[{"foreign":{"id":51951,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43385,"src":"129:8:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51991,"nodeType":"ContractDefinition","src":"171:571:87","nodes":[{"id":51967,"nodeType":"FunctionDefinition","src":"301:96:87","nodes":[],"body":{"id":51966,"nodeType":"Block","src":"327:70:87","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51958,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"337:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":51960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"348:22:87","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41088,"src":"337:33:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"337:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51962,"nodeType":"ExpressionStatement","src":"337:35:87"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":51963,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43344,"src":"382:6:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":51964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"382:8:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51965,"nodeType":"ExpressionStatement","src":"382:8:87"}]},"documentation":{"id":51955,"nodeType":"StructuredDocumentation","src":"220:76:87","text":"@notice Pauses all contract functions with the `whenNotPaused` modifier."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[],"name":"pause","nameLocation":"310:5:87","parameters":{"id":51956,"nodeType":"ParameterList","parameters":[],"src":"315:2:87"},"returnParameters":{"id":51957,"nodeType":"ParameterList","parameters":[],"src":"327:0:87"},"scope":51991,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51980,"nodeType":"FunctionDefinition","src":"486:100:87","nodes":[],"body":{"id":51979,"nodeType":"Block","src":"514:72:87","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51971,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"524:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":51973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"535:22:87","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41088,"src":"524:33:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"524:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51975,"nodeType":"ExpressionStatement","src":"524:35:87"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":51976,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43369,"src":"569:8:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":51977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"569:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51978,"nodeType":"ExpressionStatement","src":"569:10:87"}]},"documentation":{"id":51968,"nodeType":"StructuredDocumentation","src":"403:78:87","text":"@notice Unpauses all contract functions with the `whenNotPaused` modifier."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"495:7:87","parameters":{"id":51969,"nodeType":"ParameterList","parameters":[],"src":"502:2:87"},"returnParameters":{"id":51970,"nodeType":"ParameterList","parameters":[],"src":"514:0:87"},"scope":51991,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51990,"nodeType":"FunctionDefinition","src":"660:80:87","nodes":[],"body":{"id":51989,"nodeType":"Block","src":"707:33:87","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":51986,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43319,"src":"724:7:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":51987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"724:9:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51985,"id":51988,"nodeType":"Return","src":"717:16:87"}]},"documentation":{"id":51981,"nodeType":"StructuredDocumentation","src":"592:63:87","text":"@notice Returns true if the SubnetActor contract is paused."},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"669:6:87","parameters":{"id":51982,"nodeType":"ParameterList","parameters":[],"src":"675:2:87"},"returnParameters":{"id":51985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51984,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51990,"src":"701:4:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51983,"name":"bool","nodeType":"ElementaryTypeName","src":"701:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"700:6:87"},"scope":51991,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51953,"name":"Pausable","nameLocations":["205:8:87"],"nodeType":"IdentifierPath","referencedDeclaration":43385,"src":"205:8:87"},"id":51954,"nodeType":"InheritanceSpecifier","src":"205:8:87"}],"canonicalName":"SubnetActorPauseFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51991,43385],"name":"SubnetActorPauseFacet","nameLocation":"180:21:87","scope":51992,"usedErrors":[40919,43259,43262]}],"license":"MIT OR Apache-2.0"},"id":87} \ No newline at end of file diff --git a/.out/SubnetActorRewardFacet.sol/SubnetActorRewardFacet.json b/.out/SubnetActorRewardFacet.sol/SubnetActorRewardFacet.json new file mode 100644 index 000000000..6930fd68f --- /dev/null +++ b/.out/SubnetActorRewardFacet.sol/SubnetActorRewardFacet.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"reward","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NoCollateralToWithdraw","inputs":[]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]}],"bytecode":{"object":"0x608080604052346100165761067f908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c80634c860af61461035f5780634e71d92d1461010e5763ed7c4da11461003e57600080fd5b3461010b578060031936011261010b5760008051602061062a8339815191529060018254146100f957600182556100736103b6565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156100f55781602491604051928380926382985e0b60e01b82523360048301525af480156100ea576100be575b5080915580f35b67ffffffffffffffff81116100d657604052386100b7565b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5080fd5b6040516329f745a760e01b8152600490fd5b80fd5b503461010b578060031936011261010b57600160008051602061062a83398151915254146100f957600160008051602061062a833981519152556101506103b6565b336000908152601f602052604090209081549061ffff82161561034d5761ffff8260101c169261ffff831693825b61ffff851661ffff8316101561033f5761ffff82168452600183016020526040842060405180604081011067ffffffffffffffff60408301111761032b5790816040602094930160405260018254928383520154938491015243106102165761ffff60016101ee8294839461042b565b948281168852818701602052878260408220828155015501169660001901169591905061017e565b94505063ffff000092945b61ffff8354911693849260101b169063ffffffff19161717905515610314575b8047106102fc578180808084335af13d156102f7573d67ffffffffffffffff81116102e3576040519061027e601f8201601f1916602001836103f3565b81528360203d92013e5b156102d15760407f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514918151903382526020820152a18060008051602061062a8339815191525580f35b604051630a12f52160e11b8152600490fd5b634e487b7160e01b84526041600452602484fd5b610288565b60405163cd78605960e01b8152306004820152602490fd5b336000908152601f60205260409020829055610241565b634e487b7160e01b86526041600452602486fd5b935063ffff00009294610221565b6040516364b0557f60e01b8152600490fd5b50606036600319011261010b5760443560028110156100f5576103806103b6565b600e546001600160a01b031633036103a4576103a19060243560043561044e565b80f35b60405163e7e601db60e01b8152600490fd5b60ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f86354166103e157565b60405163d93c066560e01b8152600490fd5b90601f8019910116810190811067ffffffffffffffff82111761041557604052565b634e487b7160e01b600052604160045260246000fd5b9190820180921161043857565b634e487b7160e01b600052601160045260246000fd5b91811561062457604080519360209283860186811067ffffffffffffffff821117610415578352600095869052600281101561061057806105715750600b54810390811161055d578452602282528084208151808285829454938481520190885285882092885b87828210610547575050506104cc925003826103f3565b91825193841561053f5784811061053f5784900492855b8581106104f35750505050505050565b815181101561052b57600190818060a01b03848260051b850101511688526021845284882061052387825461042b565b9055016104e3565b634e487b7160e01b87526032600452602487fd5b505050505050565b85548452600195860195879550930192016104b5565b634e487b7160e01b85526011600452602485fd5b8360018492146000146105c157606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b86526021600452602486fd5b50505056fe691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212202641eb343375887c3c4f0191635489e06bca83b7362f3d3483ca56ac3d98b35064736f6c63430008130033","sourceMap":"548:2278:88:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":145,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b6000803560e01c80634c860af61461035f5780634e71d92d1461010e5763ed7c4da11461003e57600080fd5b3461010b578060031936011261010b5760008051602061062a8339815191529060018254146100f957600182556100736103b6565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156100f55781602491604051928380926382985e0b60e01b82523360048301525af480156100ea576100be575b5080915580f35b67ffffffffffffffff81116100d657604052386100b7565b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5080fd5b6040516329f745a760e01b8152600490fd5b80fd5b503461010b578060031936011261010b57600160008051602061062a83398151915254146100f957600160008051602061062a833981519152556101506103b6565b336000908152601f602052604090209081549061ffff82161561034d5761ffff8260101c169261ffff831693825b61ffff851661ffff8316101561033f5761ffff82168452600183016020526040842060405180604081011067ffffffffffffffff60408301111761032b5790816040602094930160405260018254928383520154938491015243106102165761ffff60016101ee8294839461042b565b948281168852818701602052878260408220828155015501169660001901169591905061017e565b94505063ffff000092945b61ffff8354911693849260101b169063ffffffff19161717905515610314575b8047106102fc578180808084335af13d156102f7573d67ffffffffffffffff81116102e3576040519061027e601f8201601f1916602001836103f3565b81528360203d92013e5b156102d15760407f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514918151903382526020820152a18060008051602061062a8339815191525580f35b604051630a12f52160e11b8152600490fd5b634e487b7160e01b84526041600452602484fd5b610288565b60405163cd78605960e01b8152306004820152602490fd5b336000908152601f60205260409020829055610241565b634e487b7160e01b86526041600452602486fd5b935063ffff00009294610221565b6040516364b0557f60e01b8152600490fd5b50606036600319011261010b5760443560028110156100f5576103806103b6565b600e546001600160a01b031633036103a4576103a19060243560043561044e565b80f35b60405163e7e601db60e01b8152600490fd5b60ff7fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f86354166103e157565b60405163d93c066560e01b8152600490fd5b90601f8019910116810190811067ffffffffffffffff82111761041557604052565b634e487b7160e01b600052604160045260246000fd5b9190820180921161043857565b634e487b7160e01b600052601160045260246000fd5b91811561062457604080519360209283860186811067ffffffffffffffff821117610415578352600095869052600281101561061057806105715750600b54810390811161055d578452602282528084208151808285829454938481520190885285882092885b87828210610547575050506104cc925003826103f3565b91825193841561053f5784811061053f5784900492855b8581106104f35750505050505050565b815181101561052b57600190818060a01b03848260051b850101511688526021845284882061052387825461042b565b9055016104e3565b634e487b7160e01b87526032600452602487fd5b505050505050565b85548452600195860195879550930192016104b5565b634e487b7160e01b85526011600452602485fd5b8360018492146000146105c157606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b86526021600452602486fd5b50505056fe691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212202641eb343375887c3c4f0191635489e06bca83b7362f3d3483ca56ac3d98b35064736f6c63430008130033","sourceMap":"548:2278:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;548:2278:88;477:1:68;548:2278:88;;582:20:68;578:50;;477:1;;;987:72:66;;:::i;:::-;960:10:88;:44;;;;;548:2278;;;;;;;;;;;;960:44;;993:10;548:2278;960:44;;548:2278;960:44;;;;;;;;548:2278;477:1:68;;;;548:2278:88;;960:44;548:2278;;;;;;;960:44;;;548:2278;-1:-1:-1;;;548:2278:88;;;;;;;;960:44;548:2278;;;;;;;;;960:44;548:2278;;;578:50:68;548:2278:88;;-1:-1:-1;;;611:17:68;;548:2278:88;;611:17:68;548:2278:88;;;;;;;;;;;;;;;;477:1:68;-1:-1:-1;;;;;;;;;;;548:2278:88;582:20:68;578:50;;477:1;-1:-1:-1;;;;;;;;;;;477:1:68;987:72:66;;:::i;:::-;814:10:88;548:2278;;;;3658:13:69;548:2278:88;;;;;;;;;;;;1777:16:69;1773:78;;548:2278:88;;;;;;;;;1930:14:69;;1954:477;548:2278:88;;;;;;1961:10:69;;;;548:2278:88;;;;;477:1:68;2019:13:69;;548:2278:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;548:2278:88;;;;;;;;;;;;;2204:12:69;-1:-1:-1;2180:76:69;;548:2278:88;477:1:68;2270:24:69;;;;;;:::i;:::-;548:2278:88;;;;;;2019:13:69;;;548:2278:88;;;;;;;;;;;;;;;;;;;1954:477:69;;;;;;2180:76;2236:5;;;548:2278:88;2236:5:69;;1954:477;548:2278:88;;;;;;;;;;;;;;;;;;;3707:14:69;3703:76;;1954:477;1615:21:29;;:30;1611:109;;814:10:88;;;;;;1749:33:29;;548:2278:88;;;;;;;;;;;;;;;;;-1:-1:-1;;548:2278:88;;;;;:::i;:::-;;;;;;;;;;1796:8:29;1792:63;;548:2278:88;23200:36:69;548:2278:88;;;814:10;;548:2278;;;;;;23200:36:69;477:1:68;-1:-1:-1;;;;;;;;;;;477:1:68;548:2278:88;;1792:63:29;548:2278:88;;-1:-1:-1;;;1827:17:29;;548:2278:88;;1827:17:29;548:2278:88;-1:-1:-1;;;548:2278:88;;;;;;;;;;;1611:109:29;548:2278:88;;-1:-1:-1;;;1668:41:29;;1623:4;548:2278:88;1668:41:29;;548:2278:88;;;1668:41:29;3703:76:69;814:10:88;548:2278;;;;3658:13:69;548:2278:88;;;;;814:10;;548:2278;3703:76:69;;548:2278:88;-1:-1:-1;;;548:2278:88;;;;;;;;1961:10:69;;;548:2278:88;1961:10:69;;;;1773:78;548:2278:88;;-1:-1:-1;;;1816:24:69;;548:2278:88;;1816:24:69;548:2278:88;-1:-1:-1;548:2278:88;;-1:-1:-1;;548:2278:88;;;;;;;;;;;;987:72:66;;:::i;:::-;4004:16:72;548:2278:88;-1:-1:-1;;;;;548:2278:88;3990:10:72;:30;3986:80;;4259:1;548:2278:88;;;;;4259:1:72;:::i;:::-;548:2278:88;;3986:80:72;548:2278:88;;-1:-1:-1;;;4043:12:72;;548:2278:88;;4043:12:72;1371:121:66;548:2278:88;248:41:66;548:2278:88;;1424:62:66;;1371:121::o;1424:62::-;548:2278:88;;-1:-1:-1;;;1460:15:66;;;;;548:2278:88;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;1332:1492;;1507:11;;1503:48;;548:2278;;;;;;;;;;;;;;;;;;;;1517:1;548:2278;;;;;;;;;;1653:32;;;548:2278;3208:21:71;548:2278:88;;;;;;;;;;3250:35:71;548:2278:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1649:568;548:2278;;2425:19;;;2421:56;;2490:23;;;2486:60;;548:2278;;;2647:9;;2658:18;;;;;;1332:1492;;;;;;;:::o;2647:9::-;548:2278;;;;;;;;;;;;;;;;;;;;;;;;;2694:16;548:2278;;;;;2694:54;548:2278;;;2694:54;:::i;:::-;477:1:68;;548:2278:88;2647:9;;548:2278;-1:-1:-1;;;548:2278:88;;;;;;;;2486:60;2529:7;;;;;;:::o;548:2278::-;;;;;;;;;;;;-1:-1:-1;548:2278:88;;;;;;;-1:-1:-1;;;548:2278:88;;;;;;;;1649:568;1779:38;548:2278;1779:38;;;1775:442;548:2278;;;;;;2151:55;;;;2062:51;;;;;548:2278;;;;;;;;;;;2062:51;1775:442;548:2278;;;2151:55;;;;;;;;;548:2278;;;;;;;;;;;-1:-1:-1;;;548:2278:88;;;;2151:55;548:2278;-1:-1:-1;;;548:2278:88;;;;;;;;1503:48;1534:7;;;:::o","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":117,"length":20}]}}},"methodIdentifiers":{"claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCollateralToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the unpause is triggered by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"params\":{\"height\":\"The height of the checkpoint for which rewards are being distributed.\",\"kind\":\"The type of object for which rewards are being distributed.\",\"reward\":\"The total amount of reward to be distributed.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"claim()\":{\"notice\":\"Validator claims their released collateral.\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims its reward.\"},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"Distributes rewards to relayers for a specific checkpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorRewardFacet.sol\":\"SubnetActorRewardFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3\",\"dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618\",\"dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorRewardFacet.sol\":{\"keccak256\":\"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088\",\"dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NoCollateralToWithdraw"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"}],"devdoc":{"kind":"dev","methods":{"distributeRewardToRelayers(uint256,uint256,uint8)":{"params":{"height":"The height of the checkpoint for which rewards are being distributed.","kind":"The type of object for which rewards are being distributed.","reward":"The total amount of reward to be distributed."}}},"version":1},"userdoc":{"kind":"user","methods":{"claim()":{"notice":"Validator claims their released collateral."},"claimRewardForRelayer()":{"notice":"Relayer claims its reward."},"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"Distributes rewards to relayers for a specific checkpoint."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorRewardFacet.sol":"SubnetActorRewardFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0xa60a7c17d40baab34e25ede1d2d66df6aa4f73c6eb8dea2725c54d5c1ff1c451","urls":["bzz-raw://548708b9b35995df2d57586d698bd21f593a0d71425a2b8028345102d00c77d3","dweb:/ipfs/QmW5VyhVeQeGszXwVAhkYSR9Fx1Wm4mVqxBqw199vddgAA"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xb6c184b7ec78151129fcad921501832a65a94f77849cae4c57c39bd1ff484507","urls":["bzz-raw://1a5fb8f6eae964cfefa0bfe16952eeaf115db6c5b9489ab7924a40fbb855b618","dweb:/ipfs/QmbUExUmvowXXwxfrRyAJnC6GLV6r8MmagveyzQkiurUvr"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorRewardFacet.sol":{"keccak256":"0xae7323559eba57adcee87ad3e9932de0ce754dc80193d8d5c929b2bb8c25e435","urls":["bzz-raw://98c1c266bd3637c346d46de80bc830007c56d47de54ed3b3dbf8d42c4904f088","dweb:/ipfs/QmeQezHGQK1SDQ9cL9zYjek8ZG31rRQHiG72qBD2s8evLF"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","id":52159,"exportedSymbols":{"IRelayerRewardDistributor":[40372],"LibStaking":[46129],"LibSubnetActor":[47110],"MethodNotAllowed":[37526],"Pausable":[43385],"QuorumObjKind":[49965],"ReentrancyGuard":[43966],"SubnetActorModifiers":[47288],"SubnetActorRewardFacet":[52158]},"nodeType":"SourceUnit","src":"46:2781:88","nodes":[{"id":51993,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":51995,"nodeType":"ImportDirective","src":"71:57:88","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":52159,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":51994,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"79:16:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51997,"nodeType":"ImportDirective","src":"129:73:88","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":52159,"sourceUnit":40373,"symbolAliases":[{"foreign":{"id":51996,"name":"IRelayerRewardDistributor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40372,"src":"137:25:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51999,"nodeType":"ImportDirective","src":"203:52:88","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":52159,"sourceUnit":50013,"symbolAliases":[{"foreign":{"id":51998,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49965,"src":"211:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52001,"nodeType":"ImportDirective","src":"256:48:88","nodes":[],"absolutePath":"src/lib/LibPausable.sol","file":"../lib/LibPausable.sol","nameLocation":"-1:-1:-1","scope":52159,"sourceUnit":43386,"symbolAliases":[{"foreign":{"id":52000,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43385,"src":"264:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52003,"nodeType":"ImportDirective","src":"305:62:88","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":52159,"sourceUnit":43967,"symbolAliases":[{"foreign":{"id":52002,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43966,"src":"313:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52005,"nodeType":"ImportDirective","src":"368:70:88","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":52159,"sourceUnit":47289,"symbolAliases":[{"foreign":{"id":52004,"name":"SubnetActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47288,"src":"376:20:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52007,"nodeType":"ImportDirective","src":"439:49:88","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":52159,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":52006,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"447:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52009,"nodeType":"ImportDirective","src":"489:57:88","nodes":[],"absolutePath":"src/lib/LibSubnetActor.sol","file":"../lib/LibSubnetActor.sol","nameLocation":"-1:-1:-1","scope":52159,"sourceUnit":47111,"symbolAliases":[{"foreign":{"id":52008,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"497:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52158,"nodeType":"ContractDefinition","src":"548:2278:88","nodes":[{"id":52033,"nodeType":"FunctionDefinition","src":"724:108:88","nodes":[],"body":{"id":52032,"nodeType":"Block","src":"777:55:88","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":52028,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"814:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"818:6:88","memberName":"sender","nodeType":"MemberAccess","src":"814:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52025,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"787:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":52027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"798:15:88","memberName":"claimCollateral","nodeType":"MemberAccess","referencedDeclaration":45839,"src":"787:26:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":52030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"787:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52031,"nodeType":"ExpressionStatement","src":"787:38:88"}]},"documentation":{"id":52018,"nodeType":"StructuredDocumentation","src":"664:55:88","text":"@notice Validator claims their released collateral."},"functionSelector":"4e71d92d","implemented":true,"kind":"function","modifiers":[{"id":52021,"kind":"modifierInvocation","modifierName":{"id":52020,"name":"nonReentrant","nameLocations":["750:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":43950,"src":"750:12:88"},"nodeType":"ModifierInvocation","src":"750:12:88"},{"id":52023,"kind":"modifierInvocation","modifierName":{"id":52022,"name":"whenNotPaused","nameLocations":["763:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":43270,"src":"763:13:88"},"nodeType":"ModifierInvocation","src":"763:13:88"}],"name":"claim","nameLocation":"733:5:88","parameters":{"id":52019,"nodeType":"ParameterList","parameters":[],"src":"738:2:88"},"returnParameters":{"id":52024,"nodeType":"ParameterList","parameters":[],"src":"777:0:88"},"scope":52158,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":52049,"nodeType":"FunctionDefinition","src":"881:130:88","nodes":[],"body":{"id":52048,"nodeType":"Block","src":"950:61:88","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":52044,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"993:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"997:6:88","memberName":"sender","nodeType":"MemberAccess","src":"993:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52041,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"960:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":52043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"971:21:88","memberName":"claimRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":45895,"src":"960:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":52046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"960:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52047,"nodeType":"ExpressionStatement","src":"960:44:88"}]},"documentation":{"id":52034,"nodeType":"StructuredDocumentation","src":"838:38:88","text":"@notice Relayer claims its reward."},"functionSelector":"ed7c4da1","implemented":true,"kind":"function","modifiers":[{"id":52037,"kind":"modifierInvocation","modifierName":{"id":52036,"name":"nonReentrant","nameLocations":["923:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":43950,"src":"923:12:88"},"nodeType":"ModifierInvocation","src":"923:12:88"},{"id":52039,"kind":"modifierInvocation","modifierName":{"id":52038,"name":"whenNotPaused","nameLocations":["936:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":43270,"src":"936:13:88"},"nodeType":"ModifierInvocation","src":"936:13:88"}],"name":"claimRewardForRelayer","nameLocation":"890:21:88","parameters":{"id":52035,"nodeType":"ParameterList","parameters":[],"src":"911:2:88"},"returnParameters":{"id":52040,"nodeType":"ParameterList","parameters":[],"src":"950:0:88"},"scope":52158,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":52157,"nodeType":"FunctionDefinition","src":"1332:1492:88","nodes":[],"body":{"id":52156,"nodeType":"Block","src":"1493:1331:88","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52064,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52054,"src":"1507:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1517:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1507:11:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52069,"nodeType":"IfStatement","src":"1503:48:88","trueBody":{"id":52068,"nodeType":"Block","src":"1520:31:88","statements":[{"functionReturnParameters":52063,"id":52067,"nodeType":"Return","src":"1534:7:88"}]}},{"assignments":[52074],"declarations":[{"constant":false,"id":52074,"mutability":"mutable","name":"relayers","nameLocation":"1612:8:88","nodeType":"VariableDeclaration","scope":52156,"src":"1595:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":52072,"name":"address","nodeType":"ElementaryTypeName","src":"1595:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52073,"nodeType":"ArrayTypeName","src":"1595:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":52080,"initialValue":{"arguments":[{"hexValue":"30","id":52078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1637:1:88","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":52077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1623:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52075,"name":"address","nodeType":"ElementaryTypeName","src":"1627:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52076,"nodeType":"ArrayTypeName","src":"1627:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1623:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1595:44:88"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"},"id":52084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52081,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52057,"src":"1653:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":52082,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49965,"src":"1661:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$49965_$","typeString":"type(enum QuorumObjKind)"}},"id":52083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1675:10:88","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":49963,"src":"1661:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}},"src":"1653:32:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"},"id":52096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52093,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52057,"src":"1779:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":52094,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49965,"src":"1787:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$49965_$","typeString":"type(enum QuorumObjKind)"}},"id":52095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1801:16:88","memberName":"BottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":49964,"src":"1787:30:88","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}},"src":"1779:38:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":52106,"nodeType":"Block","src":"2130:87:88","statements":[{"errorCall":{"arguments":[{"hexValue":"72657761726473206e6f7420646566696e656420666f72206f626a656374206b696e64","id":52103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2168:37:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5d5a9667afc22826bedfac6abae6135d509547bfc0cd862f890b74ed636031a","typeString":"literal_string \"rewards not defined for object kind\""},"value":"rewards not defined for object kind"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5d5a9667afc22826bedfac6abae6135d509547bfc0cd862f890b74ed636031a","typeString":"literal_string \"rewards not defined for object kind\""}],"id":52102,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"2151:16:88","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":52104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2151:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52105,"nodeType":"RevertStatement","src":"2144:62:88"}]},"id":52107,"nodeType":"IfStatement","src":"1775:442:88","trueBody":{"id":52101,"nodeType":"Block","src":"1819:305:88","statements":[{"errorCall":{"arguments":[{"hexValue":"72657761726473206e6f7420646566696e656420666f722062617463686573","id":52098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2079:33:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_b9da9cb0c4374da0abe5efd456ab1dd51477d12760d042f65c0c4dce4c666fdb","typeString":"literal_string \"rewards not defined for batches\""},"value":"rewards not defined for batches"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b9da9cb0c4374da0abe5efd456ab1dd51477d12760d042f65c0c4dce4c666fdb","typeString":"literal_string \"rewards not defined for batches\""}],"id":52097,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"2062:16:88","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":52099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2062:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52100,"nodeType":"RevertStatement","src":"2055:58:88"}]}},"id":52108,"nodeType":"IfStatement","src":"1649:568:88","trueBody":{"id":52092,"nodeType":"Block","src":"1687:82:88","statements":[{"expression":{"id":52090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52085,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52074,"src":"1701:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52088,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52052,"src":"1751:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52086,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47110,"src":"1712:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47110_$","typeString":"type(library LibSubnetActor)"}},"id":52087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1727:23:88","memberName":"checkpointRewardedAddrs","nodeType":"MemberAccess","referencedDeclaration":46809,"src":"1712:38:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) view returns (address[] memory)"}},"id":52089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1712:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"1701:57:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52091,"nodeType":"ExpressionStatement","src":"1701:57:88"}]}},{"assignments":[52110],"declarations":[{"constant":false,"id":52110,"mutability":"mutable","name":"relayersLength","nameLocation":"2379:14:88","nodeType":"VariableDeclaration","scope":52156,"src":"2371:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52109,"name":"uint256","nodeType":"ElementaryTypeName","src":"2371:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52113,"initialValue":{"expression":{"id":52111,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52074,"src":"2396:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2405:6:88","memberName":"length","nodeType":"MemberAccess","src":"2396:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2371:40:88"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52114,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52110,"src":"2425:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2443:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2425:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52119,"nodeType":"IfStatement","src":"2421:56:88","trueBody":{"id":52118,"nodeType":"Block","src":"2446:31:88","statements":[{"functionReturnParameters":52063,"id":52117,"nodeType":"Return","src":"2460:7:88"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52120,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52054,"src":"2490:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":52121,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52110,"src":"2499:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2490:23:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52125,"nodeType":"IfStatement","src":"2486:60:88","trueBody":{"id":52124,"nodeType":"Block","src":"2515:31:88","statements":[{"functionReturnParameters":52063,"id":52123,"nodeType":"Return","src":"2529:7:88"}]}},{"assignments":[52127],"declarations":[{"constant":false,"id":52127,"mutability":"mutable","name":"relayerReward","nameLocation":"2563:13:88","nodeType":"VariableDeclaration","scope":52156,"src":"2555:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52126,"name":"uint256","nodeType":"ElementaryTypeName","src":"2555:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52131,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52128,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52054,"src":"2579:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":52129,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52110,"src":"2588:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2579:23:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2555:47:88"},{"body":{"id":52154,"nodeType":"Block","src":"2680:138:88","statements":[{"expression":{"id":52148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":52138,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47248,"src":"2694:1:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47234_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":52144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2696:14:88","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"2694:16:88","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49921_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":52145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2711:7:88","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49908,"src":"2694:24:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":52146,"indexExpression":{"baseExpression":{"id":52141,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52074,"src":"2719:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52143,"indexExpression":{"id":52142,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52133,"src":"2728:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2719:11:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2694:37:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":52147,"name":"relayerReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52127,"src":"2735:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2694:54:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52149,"nodeType":"ExpressionStatement","src":"2694:54:88"},{"id":52153,"nodeType":"UncheckedBlock","src":"2762:46:88","statements":[{"expression":{"id":52151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2790:3:88","subExpression":{"id":52150,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52133,"src":"2792:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52152,"nodeType":"ExpressionStatement","src":"2790:3:88"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52135,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52133,"src":"2658:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":52136,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52110,"src":"2662:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2658:18:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52155,"initializationExpression":{"assignments":[52133],"declarations":[{"constant":false,"id":52133,"mutability":"mutable","name":"i","nameLocation":"2655:1:88","nodeType":"VariableDeclaration","scope":52155,"src":"2647:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52132,"name":"uint256","nodeType":"ElementaryTypeName","src":"2647:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52134,"nodeType":"VariableDeclarationStatement","src":"2647:9:88"},"nodeType":"ForStatement","src":"2642:176:88"}]},"baseFunctions":[40371],"documentation":{"id":52050,"nodeType":"StructuredDocumentation","src":"1017:310:88","text":"@notice Distributes rewards to relayers for a specific checkpoint.\n @param height The height of the checkpoint for which rewards are being distributed.\n @param reward The total amount of reward to be distributed.\n @param kind The type of object for which rewards are being distributed."},"functionSelector":"4c860af6","implemented":true,"kind":"function","modifiers":[{"id":52060,"kind":"modifierInvocation","modifierName":{"id":52059,"name":"whenNotPaused","nameLocations":["1467:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":43270,"src":"1467:13:88"},"nodeType":"ModifierInvocation","src":"1467:13:88"},{"id":52062,"kind":"modifierInvocation","modifierName":{"id":52061,"name":"onlyGateway","nameLocations":["1481:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":47280,"src":"1481:11:88"},"nodeType":"ModifierInvocation","src":"1481:11:88"}],"name":"distributeRewardToRelayers","nameLocation":"1341:26:88","parameters":{"id":52058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52052,"mutability":"mutable","name":"height","nameLocation":"1385:6:88","nodeType":"VariableDeclaration","scope":52157,"src":"1377:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52051,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52054,"mutability":"mutable","name":"reward","nameLocation":"1409:6:88","nodeType":"VariableDeclaration","scope":52157,"src":"1401:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52053,"name":"uint256","nodeType":"ElementaryTypeName","src":"1401:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52057,"mutability":"mutable","name":"kind","nameLocation":"1439:4:88","nodeType":"VariableDeclaration","scope":52157,"src":"1425:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"},"typeName":{"id":52056,"nodeType":"UserDefinedTypeName","pathNode":{"id":52055,"name":"QuorumObjKind","nameLocations":["1425:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":49965,"src":"1425:13:88"},"referencedDeclaration":49965,"src":"1425:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$49965","typeString":"enum QuorumObjKind"}},"visibility":"internal"}],"src":"1367:82:88"},"returnParameters":{"id":52063,"nodeType":"ParameterList","parameters":[],"src":"1493:0:88"},"scope":52158,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":52010,"name":"IRelayerRewardDistributor","nameLocations":["583:25:88"],"nodeType":"IdentifierPath","referencedDeclaration":40372,"src":"583:25:88"},"id":52011,"nodeType":"InheritanceSpecifier","src":"583:25:88"},{"baseName":{"id":52012,"name":"SubnetActorModifiers","nameLocations":["610:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":47288,"src":"610:20:88"},"id":52013,"nodeType":"InheritanceSpecifier","src":"610:20:88"},{"baseName":{"id":52014,"name":"ReentrancyGuard","nameLocations":["632:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":43966,"src":"632:15:88"},"id":52015,"nodeType":"InheritanceSpecifier","src":"632:15:88"},{"baseName":{"id":52016,"name":"Pausable","nameLocations":["649:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":43385,"src":"649:8:88"},"id":52017,"nodeType":"InheritanceSpecifier","src":"649:8:88"}],"canonicalName":"SubnetActorRewardFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52158,43385,43966,47288,40372],"name":"SubnetActorRewardFacet","nameLocation":"557:22:88","scope":52159,"usedErrors":[32461,32469,37448,37478,37526,43259,43262,43914]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file diff --git a/.out/SubnetGetterFacet.sol/SubnetGetterFacet.json b/.out/SubnetGetterFacet.sol/SubnetGetterFacet.json index dda7005ed..d0019d257 100644 --- a/.out/SubnetGetterFacet.sol/SubnetGetterFacet.json +++ b/.out/SubnetGetterFacet.sol/SubnetGetterFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getGateway","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorGetterFacet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorGetterSelectors","inputs":[],"outputs":[{"name":"","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorManagerFacet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorManagerSelectors","inputs":[],"outputs":[{"name":"","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedByNonce","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getUserLastNonce","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"latestSubnetDeployed","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"updateReferenceSubnetContract","inputs":[{"name":"newGetterFacet","type":"address","internalType":"address"},{"name":"newManagerFacet","type":"address","internalType":"address"},{"name":"newSubnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"newSubnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"CannotFindSubnet","inputs":[]},{"type":"error","name":"FacetCannotBeZero","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c63430008130033","sourceMap":"278:3716:87:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c63430008130033","sourceMap":"278:3716:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:3716:87;;;;;;:::i;:::-;;-1:-1:-1;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2663:30:62;278:3716:87;;2649:10:62;:44;2645:92;;278:3716:87;3549:28;;;3545:85;;3643:29;;3639:86;;278:3716;;;;;;;;;;;;;;3823:22;278:3716;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:3716:87;;;;;;;;;-1:-1:-1;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:3716:87;;;;;;;;3639:86;278:3716;-1:-1:-1;;;3695:19:87;;278:3716;;3695:19;2645:92:62;278:3716:87;;-1:-1:-1;;;2716:10:62;;278:3716:87;;2716:10:62;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2299:22;278:3716;;;-1:-1:-1;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1294:10;;;;;1290:66;;-1:-1:-1;;;;;278:3716:87;;;;;1374:9;278:3716;;;;;;;;;;;;;;;1411:20;;1407:76;;278:3716;;;;;;;;1407:76;278:3716;-1:-1:-1;;;1454:18:87;;278:3716;-1:-1:-1;1454:18:87;1290:66;278:3716;;-1:-1:-1;;;1327:18:87;;278:3716;;1327:18;278:3716;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:87;;;;;-1:-1:-1;;278:3716:87;;;;;-1:-1:-1;278:3716:87;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;278:3716:87;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:3716:87;;;;-1:-1:-1;;;;;278:3716:87;;;;;;:::i;:::-;;;;;688:12;278:3716;;;;;;;;721:10;;;717:66;;278:3716;;802:9;278:3716;;;;;;;;;;;;;839:20;;;835:76;;278:3716;;;;;;;;717:66;278:3716;;-1:-1:-1;;;754:18:87;;278:3716;;754:18;278:3716;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:87;;;;;-1:-1:-1;;278:3716:87;;;;;-1:-1:-1;278:3716:87;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;278:3716:87;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:3716:87;;;;;;;;-1:-1:-1;;;;;278:3716:87;;:::i;:::-;;;;1727:12;278:3716;;;;;1759:10;;;1755:66;;278:3716;;;;;;;;1755:66;-1:-1:-1;;;1792:18:87;;;;;278:3716;;;;-1:-1:-1;;;;;278:3716:87;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;278:3716:87;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getGateway()":"42bf3cc1","getSubnetActorGetterFacet()":"0be06111","getSubnetActorGetterSelectors()":"1b0766c3","getSubnetActorManagerFacet()":"a372bf30","getSubnetActorManagerSelectors()":"0f5849d1","getSubnetDeployedByNonce(address,uint64)":"9836b75f","getUserLastNonce(address)":"030f6051","latestSubnetDeployed(address)":"1163dca5","updateReferenceSubnetContract(address,address,bytes4[],bytes4[])":"a46d044d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CannotFindSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FacetCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getGateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorGetterFacet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorGetterSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorManagerFacet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorManagerSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getSubnetDeployedByNonce\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserLastNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"latestSubnetDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGetterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newManagerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"newSubnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"newSubnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"name\":\"updateReferenceSubnetContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getSubnetDeployedByNonce(address,uint64)\":{\"params\":{\"nonce\":\"The specific nonce associated with the subnet deployment.\",\"owner\":\"The address of the user whose subnet deployment is queried.\"}},\"getUserLastNonce(address)\":{\"params\":{\"user\":\"The address of the user whose last nonce is being queried.\"}},\"latestSubnetDeployed(address)\":{\"params\":{\"owner\":\"The address of the user whose latest subnet deployment is queried.\"}},\"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])\":{\"params\":{\"newGetterFacet\":\"The address of the new subnet getter facet.\",\"newManagerFacet\":\"The address of the new subnet manager facet.\",\"newSubnetGetterSelectors\":\"An array of function selectors for the new subnet getter facet.\",\"newSubnetManagerSelectors\":\"An array of function selectors for the new subnet manager facet.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getGateway()\":{\"notice\":\"Returns the gateway.\"},\"getSubnetActorGetterFacet()\":{\"notice\":\"Returns the address of the SUBNET_GETTER_FACET.\"},\"getSubnetActorGetterSelectors()\":{\"notice\":\"Returns the subnet getter selectors.\"},\"getSubnetActorManagerFacet()\":{\"notice\":\"Returns the address of the SUBNET_MANAGER_FACET.\"},\"getSubnetActorManagerSelectors()\":{\"notice\":\"Returns the subnet manager selectors.\"},\"getSubnetDeployedByNonce(address,uint64)\":{\"notice\":\"Returns the address of a subnet actor deployed for a specific nonce by a user.\"},\"getUserLastNonce(address)\":{\"notice\":\"Returns the last nonce used by the owner.\"},\"latestSubnetDeployed(address)\":{\"notice\":\"Returns the address of the latest subnet actor deployed by a user.\"},\"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])\":{\"notice\":\"Updates references to the subnet contract components, including facets and selector sets. Only callable by the contract owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnetregistry/SubnetGetterFacet.sol\":\"SubnetGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CannotFindSubnet"},{"inputs":[],"type":"error","name":"FacetCannotBeZero"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"stateMutability":"view","type":"function","name":"getGateway","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorGetterFacet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorGetterSelectors","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorManagerFacet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorManagerSelectors","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedByNonce","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserLastNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"latestSubnetDeployed","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"newGetterFacet","type":"address"},{"internalType":"address","name":"newManagerFacet","type":"address"},{"internalType":"bytes4[]","name":"newSubnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"newSubnetManagerSelectors","type":"bytes4[]"}],"stateMutability":"nonpayable","type":"function","name":"updateReferenceSubnetContract"}],"devdoc":{"kind":"dev","methods":{"getSubnetDeployedByNonce(address,uint64)":{"params":{"nonce":"The specific nonce associated with the subnet deployment.","owner":"The address of the user whose subnet deployment is queried."}},"getUserLastNonce(address)":{"params":{"user":"The address of the user whose last nonce is being queried."}},"latestSubnetDeployed(address)":{"params":{"owner":"The address of the user whose latest subnet deployment is queried."}},"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])":{"params":{"newGetterFacet":"The address of the new subnet getter facet.","newManagerFacet":"The address of the new subnet manager facet.","newSubnetGetterSelectors":"An array of function selectors for the new subnet getter facet.","newSubnetManagerSelectors":"An array of function selectors for the new subnet manager facet."}}},"version":1},"userdoc":{"kind":"user","methods":{"getGateway()":{"notice":"Returns the gateway."},"getSubnetActorGetterFacet()":{"notice":"Returns the address of the SUBNET_GETTER_FACET."},"getSubnetActorGetterSelectors()":{"notice":"Returns the subnet getter selectors."},"getSubnetActorManagerFacet()":{"notice":"Returns the address of the SUBNET_MANAGER_FACET."},"getSubnetActorManagerSelectors()":{"notice":"Returns the subnet manager selectors."},"getSubnetDeployedByNonce(address,uint64)":{"notice":"Returns the address of a subnet actor deployed for a specific nonce by a user."},"getUserLastNonce(address)":{"notice":"Returns the last nonce used by the owner."},"latestSubnetDeployed(address)":{"notice":"Returns the address of the latest subnet actor deployed by a user."},"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])":{"notice":"Updates references to the subnet contract components, including facets and selector sets. Only callable by the contract owner."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnetregistry/SubnetGetterFacet.sol":"SubnetGetterFacet"},"libraries":{},"viaIR":true},"sources":{"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","id":52518,"exportedSymbols":{"CannotFindSubnet":[37520],"FacetCannotBeZero":[37516],"LibDiamond":[41682],"SubnetGetterFacet":[52517],"SubnetRegistryActorStorage":[47365]},"nodeType":"SourceUnit","src":"46:3949:87","nodes":[{"id":52281,"nodeType":"PragmaDirective","src":"46:23:87","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52283,"nodeType":"ImportDirective","src":"70:79:87","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"../lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":52518,"sourceUnit":47366,"symbolAliases":[{"foreign":{"id":52282,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47365,"src":"78:26:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52286,"nodeType":"ImportDirective","src":"150:76:87","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":52518,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":52284,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"158:16:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52285,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"176:17:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52288,"nodeType":"ImportDirective","src":"227:49:87","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":52518,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":52287,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"235:10:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52517,"nodeType":"ContractDefinition","src":"278:3716:87","nodes":[{"id":52291,"nodeType":"VariableDeclaration","src":"364:37:87","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"400:1:87","scope":52517,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":52290,"nodeType":"UserDefinedTypeName","pathNode":{"id":52289,"name":"SubnetRegistryActorStorage","nameLocations":["364:26:87"],"nodeType":"IdentifierPath","referencedDeclaration":47365,"src":"364:26:87"},"referencedDeclaration":47365,"src":"364:26:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":52335,"nodeType":"FunctionDefinition","src":"579:338:87","nodes":[],"body":{"id":52334,"nodeType":"Block","src":"663:254:87","nodes":[],"statements":[{"assignments":[52300],"declarations":[{"constant":false,"id":52300,"mutability":"mutable","name":"nonce","nameLocation":"680:5:87","nodeType":"VariableDeclaration","scope":52334,"src":"673:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52299,"name":"uint64","nodeType":"ElementaryTypeName","src":"673:6:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":52305,"initialValue":{"baseExpression":{"expression":{"id":52301,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"688:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"690:10:87","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47364,"src":"688:12:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52304,"indexExpression":{"id":52303,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52294,"src":"701:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"688:19:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"673:34:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52306,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52300,"src":"721:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"730:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"721:10:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52313,"nodeType":"IfStatement","src":"717:66:87","trueBody":{"id":52312,"nodeType":"Block","src":"733:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52309,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"754:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"754:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52311,"nodeType":"RevertStatement","src":"747:25:87"}]}},{"expression":{"id":52321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52314,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52297,"src":"793:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":52315,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"802:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"804:7:87","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":47359,"src":"802:9:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":52318,"indexExpression":{"id":52317,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52294,"src":"812:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"802:16:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":52320,"indexExpression":{"id":52319,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52300,"src":"819:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"802:23:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"793:32:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52322,"nodeType":"ExpressionStatement","src":"793:32:87"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52323,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52297,"src":"839:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"857:1:87","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":52325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"849:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52324,"name":"address","nodeType":"ElementaryTypeName","src":"849:7:87","typeDescriptions":{}}},"id":52327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"849:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"839:20:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52333,"nodeType":"IfStatement","src":"835:76:87","trueBody":{"id":52332,"nodeType":"Block","src":"861:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52329,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"882:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"882:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52331,"nodeType":"RevertStatement","src":"875:25:87"}]}}]},"documentation":{"id":52292,"nodeType":"StructuredDocumentation","src":"408:166:87","text":"@notice Returns the address of the latest subnet actor deployed by a user.\n @param owner The address of the user whose latest subnet deployment is queried."},"functionSelector":"1163dca5","implemented":true,"kind":"function","modifiers":[],"name":"latestSubnetDeployed","nameLocation":"588:20:87","parameters":{"id":52295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52294,"mutability":"mutable","name":"owner","nameLocation":"617:5:87","nodeType":"VariableDeclaration","scope":52335,"src":"609:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52293,"name":"address","nodeType":"ElementaryTypeName","src":"609:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"608:15:87"},"returnParameters":{"id":52298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52297,"mutability":"mutable","name":"subnet","nameLocation":"655:6:87","nodeType":"VariableDeclaration","scope":52335,"src":"647:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52296,"name":"address","nodeType":"ElementaryTypeName","src":"647:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"646:16:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52374,"nodeType":"FunctionDefinition","src":"1178:311:87","nodes":[],"body":{"id":52373,"nodeType":"Block","src":"1280:209:87","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52345,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52340,"src":"1294:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1303:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1294:10:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52352,"nodeType":"IfStatement","src":"1290:66:87","trueBody":{"id":52351,"nodeType":"Block","src":"1306:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52348,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"1327:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1327:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52350,"nodeType":"RevertStatement","src":"1320:25:87"}]}},{"expression":{"id":52360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52353,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52343,"src":"1365:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":52354,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"1374:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1376:7:87","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":47359,"src":"1374:9:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":52357,"indexExpression":{"id":52356,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52338,"src":"1384:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1374:16:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":52359,"indexExpression":{"id":52358,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52340,"src":"1391:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1374:23:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1365:32:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52361,"nodeType":"ExpressionStatement","src":"1365:32:87"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52362,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52343,"src":"1411:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1429:1:87","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":52364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1421:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52363,"name":"address","nodeType":"ElementaryTypeName","src":"1421:7:87","typeDescriptions":{}}},"id":52366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1421:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1411:20:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52372,"nodeType":"IfStatement","src":"1407:76:87","trueBody":{"id":52371,"nodeType":"Block","src":"1433:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52368,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"1454:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1454:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52370,"nodeType":"RevertStatement","src":"1447:25:87"}]}}]},"documentation":{"id":52336,"nodeType":"StructuredDocumentation","src":"923:250:87","text":"@notice Returns the address of a subnet actor deployed for a specific nonce by a user.\n @param owner The address of the user whose subnet deployment is queried.\n @param nonce The specific nonce associated with the subnet deployment."},"functionSelector":"9836b75f","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedByNonce","nameLocation":"1187:24:87","parameters":{"id":52341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52338,"mutability":"mutable","name":"owner","nameLocation":"1220:5:87","nodeType":"VariableDeclaration","scope":52374,"src":"1212:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52337,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52340,"mutability":"mutable","name":"nonce","nameLocation":"1234:5:87","nodeType":"VariableDeclaration","scope":52374,"src":"1227:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52339,"name":"uint64","nodeType":"ElementaryTypeName","src":"1227:6:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1211:29:87"},"returnParameters":{"id":52344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52343,"mutability":"mutable","name":"subnet","nameLocation":"1272:6:87","nodeType":"VariableDeclaration","scope":52374,"src":"1264:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52342,"name":"address","nodeType":"ElementaryTypeName","src":"1264:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1263:16:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52398,"nodeType":"FunctionDefinition","src":"1632:195:87","nodes":[],"body":{"id":52397,"nodeType":"Block","src":"1709:118:87","nodes":[],"statements":[{"expression":{"id":52387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52382,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52380,"src":"1719:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":52383,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"1727:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1729:10:87","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47364,"src":"1727:12:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52386,"indexExpression":{"id":52385,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52377,"src":"1740:4:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1727:18:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1719:26:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":52388,"nodeType":"ExpressionStatement","src":"1719:26:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52389,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52380,"src":"1759:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1768:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1759:10:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52396,"nodeType":"IfStatement","src":"1755:66:87","trueBody":{"id":52395,"nodeType":"Block","src":"1771:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52392,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"1792:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52394,"nodeType":"RevertStatement","src":"1785:25:87"}]}}]},"documentation":{"id":52375,"nodeType":"StructuredDocumentation","src":"1495:132:87","text":"@notice Returns the last nonce used by the owner.\n @param user The address of the user whose last nonce is being queried."},"functionSelector":"030f6051","implemented":true,"kind":"function","modifiers":[],"name":"getUserLastNonce","nameLocation":"1641:16:87","parameters":{"id":52378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52377,"mutability":"mutable","name":"user","nameLocation":"1666:4:87","nodeType":"VariableDeclaration","scope":52398,"src":"1658:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52376,"name":"address","nodeType":"ElementaryTypeName","src":"1658:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1657:14:87"},"returnParameters":{"id":52381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52380,"mutability":"mutable","name":"nonce","nameLocation":"1702:5:87","nodeType":"VariableDeclaration","scope":52398,"src":"1695:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52379,"name":"uint64","nodeType":"ElementaryTypeName","src":"1695:6:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1694:14:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52408,"nodeType":"FunctionDefinition","src":"1870:87:87","nodes":[],"body":{"id":52407,"nodeType":"Block","src":"1924:33:87","nodes":[],"statements":[{"expression":{"expression":{"id":52404,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"1941:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1943:7:87","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":47339,"src":"1941:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52403,"id":52406,"nodeType":"Return","src":"1934:16:87"}]},"documentation":{"id":52399,"nodeType":"StructuredDocumentation","src":"1833:32:87","text":"@notice Returns the gateway."},"functionSelector":"42bf3cc1","implemented":true,"kind":"function","modifiers":[],"name":"getGateway","nameLocation":"1879:10:87","parameters":{"id":52400,"nodeType":"ParameterList","parameters":[],"src":"1889:2:87"},"returnParameters":{"id":52403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52408,"src":"1915:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52401,"name":"address","nodeType":"ElementaryTypeName","src":"1915:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1914:9:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52418,"nodeType":"FunctionDefinition","src":"2027:114:87","nodes":[],"body":{"id":52417,"nodeType":"Block","src":"2096:45:87","nodes":[],"statements":[{"expression":{"expression":{"id":52414,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"2113:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2115:19:87","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47342,"src":"2113:21:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52413,"id":52416,"nodeType":"Return","src":"2106:28:87"}]},"documentation":{"id":52409,"nodeType":"StructuredDocumentation","src":"1963:59:87","text":"@notice Returns the address of the SUBNET_GETTER_FACET."},"functionSelector":"0be06111","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorGetterFacet","nameLocation":"2036:25:87","parameters":{"id":52410,"nodeType":"ParameterList","parameters":[],"src":"2061:2:87"},"returnParameters":{"id":52413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52418,"src":"2087:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52411,"name":"address","nodeType":"ElementaryTypeName","src":"2087:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2086:9:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52428,"nodeType":"FunctionDefinition","src":"2212:116:87","nodes":[],"body":{"id":52427,"nodeType":"Block","src":"2282:46:87","nodes":[],"statements":[{"expression":{"expression":{"id":52424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"2299:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2301:20:87","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47344,"src":"2299:22:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52423,"id":52426,"nodeType":"Return","src":"2292:29:87"}]},"documentation":{"id":52419,"nodeType":"StructuredDocumentation","src":"2147:60:87","text":"@notice Returns the address of the SUBNET_MANAGER_FACET."},"functionSelector":"a372bf30","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorManagerFacet","nameLocation":"2221:26:87","parameters":{"id":52420,"nodeType":"ParameterList","parameters":[],"src":"2247:2:87"},"returnParameters":{"id":52423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52428,"src":"2273:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52421,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2272:9:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52439,"nodeType":"FunctionDefinition","src":"2387:128:87","nodes":[],"body":{"id":52438,"nodeType":"Block","src":"2468:47:87","nodes":[],"statements":[{"expression":{"expression":{"id":52435,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"2485:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2487:21:87","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47348,"src":"2485:23:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"functionReturnParameters":52434,"id":52437,"nodeType":"Return","src":"2478:30:87"}]},"documentation":{"id":52429,"nodeType":"StructuredDocumentation","src":"2334:48:87","text":"@notice Returns the subnet getter selectors."},"functionSelector":"1b0766c3","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorGetterSelectors","nameLocation":"2396:29:87","parameters":{"id":52430,"nodeType":"ParameterList","parameters":[],"src":"2425:2:87"},"returnParameters":{"id":52434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52439,"src":"2451:15:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52431,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2451:6:87","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52432,"nodeType":"ArrayTypeName","src":"2451:8:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2450:17:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52450,"nodeType":"FunctionDefinition","src":"2575:130:87","nodes":[],"body":{"id":52449,"nodeType":"Block","src":"2657:48:87","nodes":[],"statements":[{"expression":{"expression":{"id":52446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"2674:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2676:22:87","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47352,"src":"2674:24:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"functionReturnParameters":52445,"id":52448,"nodeType":"Return","src":"2667:31:87"}]},"documentation":{"id":52440,"nodeType":"StructuredDocumentation","src":"2521:49:87","text":"@notice Returns the subnet manager selectors."},"functionSelector":"0f5849d1","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorManagerSelectors","nameLocation":"2584:30:87","parameters":{"id":52441,"nodeType":"ParameterList","parameters":[],"src":"2614:2:87"},"returnParameters":{"id":52445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52450,"src":"2640:15:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52442,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2640:6:87","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52443,"nodeType":"ArrayTypeName","src":"2640:8:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2639:17:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52516,"nodeType":"FunctionDefinition","src":"3222:770:87","nodes":[],"body":{"id":52515,"nodeType":"Block","src":"3446:546:87","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52464,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"3456:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":52466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3467:22:87","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41144,"src":"3456:33:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":52467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3456:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52468,"nodeType":"ExpressionStatement","src":"3456:35:87"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52469,"name":"newGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52453,"src":"3549:14:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3575:1:87","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":52471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3567:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52470,"name":"address","nodeType":"ElementaryTypeName","src":"3567:7:87","typeDescriptions":{}}},"id":52473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3567:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3549:28:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52479,"nodeType":"IfStatement","src":"3545:85:87","trueBody":{"id":52478,"nodeType":"Block","src":"3579:51:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52475,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"3600:17:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3600:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52477,"nodeType":"RevertStatement","src":"3593:26:87"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52480,"name":"newManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52455,"src":"3643:15:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3670:1:87","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":52482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3662:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52481,"name":"address","nodeType":"ElementaryTypeName","src":"3662:7:87","typeDescriptions":{}}},"id":52484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3662:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3643:29:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52490,"nodeType":"IfStatement","src":"3639:86:87","trueBody":{"id":52489,"nodeType":"Block","src":"3674:51:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52486,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"3695:17:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3695:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52488,"nodeType":"RevertStatement","src":"3688:26:87"}]}},{"expression":{"id":52495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52491,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"3775:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3777:19:87","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47342,"src":"3775:21:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52494,"name":"newGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52453,"src":"3799:14:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3775:38:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52496,"nodeType":"ExpressionStatement","src":"3775:38:87"},{"expression":{"id":52501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52497,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"3823:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3825:20:87","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47344,"src":"3823:22:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52500,"name":"newManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52455,"src":"3848:15:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3823:40:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52502,"nodeType":"ExpressionStatement","src":"3823:40:87"},{"expression":{"id":52507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52503,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"3873:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3875:21:87","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47348,"src":"3873:23:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52506,"name":"newSubnetGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52458,"src":"3899:24:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"src":"3873:50:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52508,"nodeType":"ExpressionStatement","src":"3873:50:87"},{"expression":{"id":52513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52509,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"3933:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3935:22:87","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47352,"src":"3933:24:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52512,"name":"newSubnetManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52461,"src":"3960:25:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"src":"3933:52:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52514,"nodeType":"ExpressionStatement","src":"3933:52:87"}]},"documentation":{"id":52451,"nodeType":"StructuredDocumentation","src":"2711:506:87","text":"@notice Updates references to the subnet contract components, including facets and selector sets.\n Only callable by the contract owner.\n @param newGetterFacet The address of the new subnet getter facet.\n @param newManagerFacet The address of the new subnet manager facet.\n @param newSubnetGetterSelectors An array of function selectors for the new subnet getter facet.\n @param newSubnetManagerSelectors An array of function selectors for the new subnet manager facet."},"functionSelector":"a46d044d","implemented":true,"kind":"function","modifiers":[],"name":"updateReferenceSubnetContract","nameLocation":"3231:29:87","parameters":{"id":52462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52453,"mutability":"mutable","name":"newGetterFacet","nameLocation":"3278:14:87","nodeType":"VariableDeclaration","scope":52516,"src":"3270:22:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52452,"name":"address","nodeType":"ElementaryTypeName","src":"3270:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52455,"mutability":"mutable","name":"newManagerFacet","nameLocation":"3310:15:87","nodeType":"VariableDeclaration","scope":52516,"src":"3302:23:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52454,"name":"address","nodeType":"ElementaryTypeName","src":"3302:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52458,"mutability":"mutable","name":"newSubnetGetterSelectors","nameLocation":"3353:24:87","nodeType":"VariableDeclaration","scope":52516,"src":"3335:42:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52456,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3335:6:87","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52457,"nodeType":"ArrayTypeName","src":"3335:8:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":52461,"mutability":"mutable","name":"newSubnetManagerSelectors","nameLocation":"3405:25:87","nodeType":"VariableDeclaration","scope":52516,"src":"3387:43:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52459,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3387:6:87","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52460,"nodeType":"ArrayTypeName","src":"3387:8:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"3260:176:87"},"returnParameters":{"id":52463,"nodeType":"ParameterList","parameters":[],"src":"3446:0:87"},"scope":52517,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52517],"name":"SubnetGetterFacet","nameLocation":"287:17:87","scope":52518,"usedErrors":[37516,37520,40975]}],"license":"MIT OR Apache-2.0"},"id":87} \ No newline at end of file +{"abi":[{"type":"function","name":"getGateway","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorGetterFacet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorGetterSelectors","inputs":[],"outputs":[{"name":"","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorManagerFacet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorManagerSelectors","inputs":[],"outputs":[{"name":"","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedByNonce","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getUserLastNonce","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"latestSubnetDeployed","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"updateReferenceSubnetContract","inputs":[{"name":"newGetterFacet","type":"address","internalType":"address"},{"name":"newManagerFacet","type":"address","internalType":"address"},{"name":"newSubnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"newSubnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"CannotFindSubnet","inputs":[]},{"type":"error","name":"FacetCannotBeZero","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c63430008130033","sourceMap":"278:3716:90:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c63430008130033","sourceMap":"278:3716:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:3716:90;;;;;;:::i;:::-;;-1:-1:-1;;;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2663:30:62;278:3716:90;;2649:10:62;:44;2645:92;;278:3716:90;3549:28;;;3545:85;;3643:29;;3639:86;;278:3716;;;;;;;;;;;;;;3823:22;278:3716;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:90;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:3716:90;;;;;;;;;-1:-1:-1;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:90;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:3716:90;;;;;;;;3639:86;278:3716;-1:-1:-1;;;3695:19:90;;278:3716;;3695:19;2645:92:62;278:3716:90;;-1:-1:-1;;;2716:10:62;;278:3716:90;;2716:10:62;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2299:22;278:3716;;;-1:-1:-1;;;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1294:10;;;;;1290:66;;-1:-1:-1;;;;;278:3716:90;;;;;1374:9;278:3716;;;;;;;;;;;;;;;1411:20;;1407:76;;278:3716;;;;;;;;1407:76;278:3716;-1:-1:-1;;;1454:18:90;;278:3716;-1:-1:-1;1454:18:90;1290:66;278:3716;;-1:-1:-1;;;1327:18:90;;278:3716;;1327:18;278:3716;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:90;;;;;-1:-1:-1;;278:3716:90;;;;;-1:-1:-1;278:3716:90;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;278:3716:90;;;;;;;;;-1:-1:-1;;;;;;278:3716:90;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:90;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:90;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:90;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:90;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:90;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:90;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:3716:90;;;;-1:-1:-1;;;;;278:3716:90;;;;;;:::i;:::-;;;;;688:12;278:3716;;;;;;;;721:10;;;717:66;;278:3716;;802:9;278:3716;;;;;;;;;;;;;839:20;;;835:76;;278:3716;;;;;;;;717:66;278:3716;;-1:-1:-1;;;754:18:90;;278:3716;;754:18;278:3716;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:90;;;;;-1:-1:-1;;278:3716:90;;;;;-1:-1:-1;278:3716:90;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;278:3716:90;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:3716:90;;;;;;;;-1:-1:-1;;;;;278:3716:90;;:::i;:::-;;;;1727:12;278:3716;;;;;1759:10;;;1755:66;;278:3716;;;;;;;;1755:66;-1:-1:-1;;;1792:18:90;;;;;278:3716;;;;-1:-1:-1;;;;;278:3716:90;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;278:3716:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;278:3716:90;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getGateway()":"42bf3cc1","getSubnetActorGetterFacet()":"0be06111","getSubnetActorGetterSelectors()":"1b0766c3","getSubnetActorManagerFacet()":"a372bf30","getSubnetActorManagerSelectors()":"0f5849d1","getSubnetDeployedByNonce(address,uint64)":"9836b75f","getUserLastNonce(address)":"030f6051","latestSubnetDeployed(address)":"1163dca5","updateReferenceSubnetContract(address,address,bytes4[],bytes4[])":"a46d044d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CannotFindSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FacetCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getGateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorGetterFacet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorGetterSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorManagerFacet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorManagerSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getSubnetDeployedByNonce\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserLastNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"latestSubnetDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGetterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newManagerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"newSubnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"newSubnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"name\":\"updateReferenceSubnetContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getSubnetDeployedByNonce(address,uint64)\":{\"params\":{\"nonce\":\"The specific nonce associated with the subnet deployment.\",\"owner\":\"The address of the user whose subnet deployment is queried.\"}},\"getUserLastNonce(address)\":{\"params\":{\"user\":\"The address of the user whose last nonce is being queried.\"}},\"latestSubnetDeployed(address)\":{\"params\":{\"owner\":\"The address of the user whose latest subnet deployment is queried.\"}},\"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])\":{\"params\":{\"newGetterFacet\":\"The address of the new subnet getter facet.\",\"newManagerFacet\":\"The address of the new subnet manager facet.\",\"newSubnetGetterSelectors\":\"An array of function selectors for the new subnet getter facet.\",\"newSubnetManagerSelectors\":\"An array of function selectors for the new subnet manager facet.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getGateway()\":{\"notice\":\"Returns the gateway.\"},\"getSubnetActorGetterFacet()\":{\"notice\":\"Returns the address of the SUBNET_GETTER_FACET.\"},\"getSubnetActorGetterSelectors()\":{\"notice\":\"Returns the subnet getter selectors.\"},\"getSubnetActorManagerFacet()\":{\"notice\":\"Returns the address of the SUBNET_MANAGER_FACET.\"},\"getSubnetActorManagerSelectors()\":{\"notice\":\"Returns the subnet manager selectors.\"},\"getSubnetDeployedByNonce(address,uint64)\":{\"notice\":\"Returns the address of a subnet actor deployed for a specific nonce by a user.\"},\"getUserLastNonce(address)\":{\"notice\":\"Returns the last nonce used by the owner.\"},\"latestSubnetDeployed(address)\":{\"notice\":\"Returns the address of the latest subnet actor deployed by a user.\"},\"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])\":{\"notice\":\"Updates references to the subnet contract components, including facets and selector sets. Only callable by the contract owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnetregistry/SubnetGetterFacet.sol\":\"SubnetGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CannotFindSubnet"},{"inputs":[],"type":"error","name":"FacetCannotBeZero"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"stateMutability":"view","type":"function","name":"getGateway","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorGetterFacet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorGetterSelectors","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorManagerFacet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorManagerSelectors","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedByNonce","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserLastNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"latestSubnetDeployed","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"newGetterFacet","type":"address"},{"internalType":"address","name":"newManagerFacet","type":"address"},{"internalType":"bytes4[]","name":"newSubnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"newSubnetManagerSelectors","type":"bytes4[]"}],"stateMutability":"nonpayable","type":"function","name":"updateReferenceSubnetContract"}],"devdoc":{"kind":"dev","methods":{"getSubnetDeployedByNonce(address,uint64)":{"params":{"nonce":"The specific nonce associated with the subnet deployment.","owner":"The address of the user whose subnet deployment is queried."}},"getUserLastNonce(address)":{"params":{"user":"The address of the user whose last nonce is being queried."}},"latestSubnetDeployed(address)":{"params":{"owner":"The address of the user whose latest subnet deployment is queried."}},"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])":{"params":{"newGetterFacet":"The address of the new subnet getter facet.","newManagerFacet":"The address of the new subnet manager facet.","newSubnetGetterSelectors":"An array of function selectors for the new subnet getter facet.","newSubnetManagerSelectors":"An array of function selectors for the new subnet manager facet."}}},"version":1},"userdoc":{"kind":"user","methods":{"getGateway()":{"notice":"Returns the gateway."},"getSubnetActorGetterFacet()":{"notice":"Returns the address of the SUBNET_GETTER_FACET."},"getSubnetActorGetterSelectors()":{"notice":"Returns the subnet getter selectors."},"getSubnetActorManagerFacet()":{"notice":"Returns the address of the SUBNET_MANAGER_FACET."},"getSubnetActorManagerSelectors()":{"notice":"Returns the subnet manager selectors."},"getSubnetDeployedByNonce(address,uint64)":{"notice":"Returns the address of a subnet actor deployed for a specific nonce by a user."},"getUserLastNonce(address)":{"notice":"Returns the last nonce used by the owner."},"latestSubnetDeployed(address)":{"notice":"Returns the address of the latest subnet actor deployed by a user."},"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])":{"notice":"Updates references to the subnet contract components, including facets and selector sets. Only callable by the contract owner."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnetregistry/SubnetGetterFacet.sol":"SubnetGetterFacet"},"libraries":{},"viaIR":true},"sources":{"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","id":52525,"exportedSymbols":{"CannotFindSubnet":[37520],"FacetCannotBeZero":[37516],"LibDiamond":[41626],"SubnetGetterFacet":[52524],"SubnetRegistryActorStorage":[47318]},"nodeType":"SourceUnit","src":"46:3949:90","nodes":[{"id":52288,"nodeType":"PragmaDirective","src":"46:23:90","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52290,"nodeType":"ImportDirective","src":"70:79:90","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"../lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":52525,"sourceUnit":47319,"symbolAliases":[{"foreign":{"id":52289,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47318,"src":"78:26:90","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52293,"nodeType":"ImportDirective","src":"150:76:90","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":52525,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":52291,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"158:16:90","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52292,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"176:17:90","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52295,"nodeType":"ImportDirective","src":"227:49:90","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":52525,"sourceUnit":41627,"symbolAliases":[{"foreign":{"id":52294,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"235:10:90","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52524,"nodeType":"ContractDefinition","src":"278:3716:90","nodes":[{"id":52298,"nodeType":"VariableDeclaration","src":"364:37:90","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"400:1:90","scope":52524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":52297,"nodeType":"UserDefinedTypeName","pathNode":{"id":52296,"name":"SubnetRegistryActorStorage","nameLocations":["364:26:90"],"nodeType":"IdentifierPath","referencedDeclaration":47318,"src":"364:26:90"},"referencedDeclaration":47318,"src":"364:26:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":52342,"nodeType":"FunctionDefinition","src":"579:338:90","nodes":[],"body":{"id":52341,"nodeType":"Block","src":"663:254:90","nodes":[],"statements":[{"assignments":[52307],"declarations":[{"constant":false,"id":52307,"mutability":"mutable","name":"nonce","nameLocation":"680:5:90","nodeType":"VariableDeclaration","scope":52341,"src":"673:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52306,"name":"uint64","nodeType":"ElementaryTypeName","src":"673:6:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":52312,"initialValue":{"baseExpression":{"expression":{"id":52308,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"688:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"690:10:90","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47317,"src":"688:12:90","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52311,"indexExpression":{"id":52310,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52301,"src":"701:5:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"688:19:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"673:34:90"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52313,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52307,"src":"721:5:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"730:1:90","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"721:10:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52320,"nodeType":"IfStatement","src":"717:66:90","trueBody":{"id":52319,"nodeType":"Block","src":"733:50:90","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52316,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"754:16:90","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"754:18:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52318,"nodeType":"RevertStatement","src":"747:25:90"}]}},{"expression":{"id":52328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52321,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52304,"src":"793:6:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":52322,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"802:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"804:7:90","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":47312,"src":"802:9:90","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":52325,"indexExpression":{"id":52324,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52301,"src":"812:5:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"802:16:90","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":52327,"indexExpression":{"id":52326,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52307,"src":"819:5:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"802:23:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"793:32:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52329,"nodeType":"ExpressionStatement","src":"793:32:90"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52330,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52304,"src":"839:6:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"857:1:90","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":52332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"849:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52331,"name":"address","nodeType":"ElementaryTypeName","src":"849:7:90","typeDescriptions":{}}},"id":52334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"849:10:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"839:20:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52340,"nodeType":"IfStatement","src":"835:76:90","trueBody":{"id":52339,"nodeType":"Block","src":"861:50:90","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52336,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"882:16:90","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"882:18:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52338,"nodeType":"RevertStatement","src":"875:25:90"}]}}]},"documentation":{"id":52299,"nodeType":"StructuredDocumentation","src":"408:166:90","text":"@notice Returns the address of the latest subnet actor deployed by a user.\n @param owner The address of the user whose latest subnet deployment is queried."},"functionSelector":"1163dca5","implemented":true,"kind":"function","modifiers":[],"name":"latestSubnetDeployed","nameLocation":"588:20:90","parameters":{"id":52302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52301,"mutability":"mutable","name":"owner","nameLocation":"617:5:90","nodeType":"VariableDeclaration","scope":52342,"src":"609:13:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52300,"name":"address","nodeType":"ElementaryTypeName","src":"609:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"608:15:90"},"returnParameters":{"id":52305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52304,"mutability":"mutable","name":"subnet","nameLocation":"655:6:90","nodeType":"VariableDeclaration","scope":52342,"src":"647:14:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52303,"name":"address","nodeType":"ElementaryTypeName","src":"647:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"646:16:90"},"scope":52524,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52381,"nodeType":"FunctionDefinition","src":"1178:311:90","nodes":[],"body":{"id":52380,"nodeType":"Block","src":"1280:209:90","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52352,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52347,"src":"1294:5:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1303:1:90","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1294:10:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52359,"nodeType":"IfStatement","src":"1290:66:90","trueBody":{"id":52358,"nodeType":"Block","src":"1306:50:90","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52355,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"1327:16:90","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1327:18:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52357,"nodeType":"RevertStatement","src":"1320:25:90"}]}},{"expression":{"id":52367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52360,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52350,"src":"1365:6:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":52361,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"1374:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1376:7:90","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":47312,"src":"1374:9:90","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":52364,"indexExpression":{"id":52363,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52345,"src":"1384:5:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1374:16:90","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":52366,"indexExpression":{"id":52365,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52347,"src":"1391:5:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1374:23:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1365:32:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52368,"nodeType":"ExpressionStatement","src":"1365:32:90"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52369,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52350,"src":"1411:6:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1429:1:90","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":52371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1421:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52370,"name":"address","nodeType":"ElementaryTypeName","src":"1421:7:90","typeDescriptions":{}}},"id":52373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1421:10:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1411:20:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52379,"nodeType":"IfStatement","src":"1407:76:90","trueBody":{"id":52378,"nodeType":"Block","src":"1433:50:90","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52375,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"1454:16:90","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1454:18:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52377,"nodeType":"RevertStatement","src":"1447:25:90"}]}}]},"documentation":{"id":52343,"nodeType":"StructuredDocumentation","src":"923:250:90","text":"@notice Returns the address of a subnet actor deployed for a specific nonce by a user.\n @param owner The address of the user whose subnet deployment is queried.\n @param nonce The specific nonce associated with the subnet deployment."},"functionSelector":"9836b75f","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedByNonce","nameLocation":"1187:24:90","parameters":{"id":52348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52345,"mutability":"mutable","name":"owner","nameLocation":"1220:5:90","nodeType":"VariableDeclaration","scope":52381,"src":"1212:13:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52344,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52347,"mutability":"mutable","name":"nonce","nameLocation":"1234:5:90","nodeType":"VariableDeclaration","scope":52381,"src":"1227:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52346,"name":"uint64","nodeType":"ElementaryTypeName","src":"1227:6:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1211:29:90"},"returnParameters":{"id":52351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52350,"mutability":"mutable","name":"subnet","nameLocation":"1272:6:90","nodeType":"VariableDeclaration","scope":52381,"src":"1264:14:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52349,"name":"address","nodeType":"ElementaryTypeName","src":"1264:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1263:16:90"},"scope":52524,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52405,"nodeType":"FunctionDefinition","src":"1632:195:90","nodes":[],"body":{"id":52404,"nodeType":"Block","src":"1709:118:90","nodes":[],"statements":[{"expression":{"id":52394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52389,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52387,"src":"1719:5:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":52390,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"1727:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1729:10:90","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47317,"src":"1727:12:90","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52393,"indexExpression":{"id":52392,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52384,"src":"1740:4:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1727:18:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1719:26:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":52395,"nodeType":"ExpressionStatement","src":"1719:26:90"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52396,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52387,"src":"1759:5:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1768:1:90","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1759:10:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52403,"nodeType":"IfStatement","src":"1755:66:90","trueBody":{"id":52402,"nodeType":"Block","src":"1771:50:90","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52399,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"1792:16:90","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:18:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52401,"nodeType":"RevertStatement","src":"1785:25:90"}]}}]},"documentation":{"id":52382,"nodeType":"StructuredDocumentation","src":"1495:132:90","text":"@notice Returns the last nonce used by the owner.\n @param user The address of the user whose last nonce is being queried."},"functionSelector":"030f6051","implemented":true,"kind":"function","modifiers":[],"name":"getUserLastNonce","nameLocation":"1641:16:90","parameters":{"id":52385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52384,"mutability":"mutable","name":"user","nameLocation":"1666:4:90","nodeType":"VariableDeclaration","scope":52405,"src":"1658:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52383,"name":"address","nodeType":"ElementaryTypeName","src":"1658:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1657:14:90"},"returnParameters":{"id":52388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52387,"mutability":"mutable","name":"nonce","nameLocation":"1702:5:90","nodeType":"VariableDeclaration","scope":52405,"src":"1695:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52386,"name":"uint64","nodeType":"ElementaryTypeName","src":"1695:6:90","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1694:14:90"},"scope":52524,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52415,"nodeType":"FunctionDefinition","src":"1870:87:90","nodes":[],"body":{"id":52414,"nodeType":"Block","src":"1924:33:90","nodes":[],"statements":[{"expression":{"expression":{"id":52411,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"1941:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1943:7:90","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":47292,"src":"1941:9:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52410,"id":52413,"nodeType":"Return","src":"1934:16:90"}]},"documentation":{"id":52406,"nodeType":"StructuredDocumentation","src":"1833:32:90","text":"@notice Returns the gateway."},"functionSelector":"42bf3cc1","implemented":true,"kind":"function","modifiers":[],"name":"getGateway","nameLocation":"1879:10:90","parameters":{"id":52407,"nodeType":"ParameterList","parameters":[],"src":"1889:2:90"},"returnParameters":{"id":52410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52415,"src":"1915:7:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52408,"name":"address","nodeType":"ElementaryTypeName","src":"1915:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1914:9:90"},"scope":52524,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52425,"nodeType":"FunctionDefinition","src":"2027:114:90","nodes":[],"body":{"id":52424,"nodeType":"Block","src":"2096:45:90","nodes":[],"statements":[{"expression":{"expression":{"id":52421,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"2113:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2115:19:90","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47295,"src":"2113:21:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52420,"id":52423,"nodeType":"Return","src":"2106:28:90"}]},"documentation":{"id":52416,"nodeType":"StructuredDocumentation","src":"1963:59:90","text":"@notice Returns the address of the SUBNET_GETTER_FACET."},"functionSelector":"0be06111","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorGetterFacet","nameLocation":"2036:25:90","parameters":{"id":52417,"nodeType":"ParameterList","parameters":[],"src":"2061:2:90"},"returnParameters":{"id":52420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52419,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52425,"src":"2087:7:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52418,"name":"address","nodeType":"ElementaryTypeName","src":"2087:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2086:9:90"},"scope":52524,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52435,"nodeType":"FunctionDefinition","src":"2212:116:90","nodes":[],"body":{"id":52434,"nodeType":"Block","src":"2282:46:90","nodes":[],"statements":[{"expression":{"expression":{"id":52431,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"2299:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2301:20:90","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47297,"src":"2299:22:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52430,"id":52433,"nodeType":"Return","src":"2292:29:90"}]},"documentation":{"id":52426,"nodeType":"StructuredDocumentation","src":"2147:60:90","text":"@notice Returns the address of the SUBNET_MANAGER_FACET."},"functionSelector":"a372bf30","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorManagerFacet","nameLocation":"2221:26:90","parameters":{"id":52427,"nodeType":"ParameterList","parameters":[],"src":"2247:2:90"},"returnParameters":{"id":52430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52435,"src":"2273:7:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52428,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2272:9:90"},"scope":52524,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52446,"nodeType":"FunctionDefinition","src":"2387:128:90","nodes":[],"body":{"id":52445,"nodeType":"Block","src":"2468:47:90","nodes":[],"statements":[{"expression":{"expression":{"id":52442,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"2485:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2487:21:90","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47301,"src":"2485:23:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"functionReturnParameters":52441,"id":52444,"nodeType":"Return","src":"2478:30:90"}]},"documentation":{"id":52436,"nodeType":"StructuredDocumentation","src":"2334:48:90","text":"@notice Returns the subnet getter selectors."},"functionSelector":"1b0766c3","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorGetterSelectors","nameLocation":"2396:29:90","parameters":{"id":52437,"nodeType":"ParameterList","parameters":[],"src":"2425:2:90"},"returnParameters":{"id":52441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52446,"src":"2451:15:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52438,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2451:6:90","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52439,"nodeType":"ArrayTypeName","src":"2451:8:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2450:17:90"},"scope":52524,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52457,"nodeType":"FunctionDefinition","src":"2575:130:90","nodes":[],"body":{"id":52456,"nodeType":"Block","src":"2657:48:90","nodes":[],"statements":[{"expression":{"expression":{"id":52453,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"2674:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2676:22:90","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47305,"src":"2674:24:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"functionReturnParameters":52452,"id":52455,"nodeType":"Return","src":"2667:31:90"}]},"documentation":{"id":52447,"nodeType":"StructuredDocumentation","src":"2521:49:90","text":"@notice Returns the subnet manager selectors."},"functionSelector":"0f5849d1","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorManagerSelectors","nameLocation":"2584:30:90","parameters":{"id":52448,"nodeType":"ParameterList","parameters":[],"src":"2614:2:90"},"returnParameters":{"id":52452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52451,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52457,"src":"2640:15:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52449,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2640:6:90","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52450,"nodeType":"ArrayTypeName","src":"2640:8:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2639:17:90"},"scope":52524,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52523,"nodeType":"FunctionDefinition","src":"3222:770:90","nodes":[],"body":{"id":52522,"nodeType":"Block","src":"3446:546:90","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52471,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"3456:10:90","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":52473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3467:22:90","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41088,"src":"3456:33:90","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":52474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3456:35:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52475,"nodeType":"ExpressionStatement","src":"3456:35:90"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52476,"name":"newGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52460,"src":"3549:14:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3575:1:90","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":52478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3567:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52477,"name":"address","nodeType":"ElementaryTypeName","src":"3567:7:90","typeDescriptions":{}}},"id":52480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3567:10:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3549:28:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52486,"nodeType":"IfStatement","src":"3545:85:90","trueBody":{"id":52485,"nodeType":"Block","src":"3579:51:90","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52482,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"3600:17:90","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3600:19:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52484,"nodeType":"RevertStatement","src":"3593:26:90"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52487,"name":"newManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52462,"src":"3643:15:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3670:1:90","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":52489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3662:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52488,"name":"address","nodeType":"ElementaryTypeName","src":"3662:7:90","typeDescriptions":{}}},"id":52491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3662:10:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3643:29:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52497,"nodeType":"IfStatement","src":"3639:86:90","trueBody":{"id":52496,"nodeType":"Block","src":"3674:51:90","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52493,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"3695:17:90","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3695:19:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52495,"nodeType":"RevertStatement","src":"3688:26:90"}]}},{"expression":{"id":52502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52498,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"3775:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3777:19:90","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47295,"src":"3775:21:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52501,"name":"newGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52460,"src":"3799:14:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3775:38:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52503,"nodeType":"ExpressionStatement","src":"3775:38:90"},{"expression":{"id":52508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52504,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"3823:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3825:20:90","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47297,"src":"3823:22:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52507,"name":"newManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52462,"src":"3848:15:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3823:40:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52509,"nodeType":"ExpressionStatement","src":"3823:40:90"},{"expression":{"id":52514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52510,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"3873:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3875:21:90","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47301,"src":"3873:23:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52513,"name":"newSubnetGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52465,"src":"3899:24:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"src":"3873:50:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52515,"nodeType":"ExpressionStatement","src":"3873:50:90"},{"expression":{"id":52520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52516,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52298,"src":"3933:1:90","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3935:22:90","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47305,"src":"3933:24:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52519,"name":"newSubnetManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52468,"src":"3960:25:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"src":"3933:52:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52521,"nodeType":"ExpressionStatement","src":"3933:52:90"}]},"documentation":{"id":52458,"nodeType":"StructuredDocumentation","src":"2711:506:90","text":"@notice Updates references to the subnet contract components, including facets and selector sets.\n Only callable by the contract owner.\n @param newGetterFacet The address of the new subnet getter facet.\n @param newManagerFacet The address of the new subnet manager facet.\n @param newSubnetGetterSelectors An array of function selectors for the new subnet getter facet.\n @param newSubnetManagerSelectors An array of function selectors for the new subnet manager facet."},"functionSelector":"a46d044d","implemented":true,"kind":"function","modifiers":[],"name":"updateReferenceSubnetContract","nameLocation":"3231:29:90","parameters":{"id":52469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52460,"mutability":"mutable","name":"newGetterFacet","nameLocation":"3278:14:90","nodeType":"VariableDeclaration","scope":52523,"src":"3270:22:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52459,"name":"address","nodeType":"ElementaryTypeName","src":"3270:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52462,"mutability":"mutable","name":"newManagerFacet","nameLocation":"3310:15:90","nodeType":"VariableDeclaration","scope":52523,"src":"3302:23:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52461,"name":"address","nodeType":"ElementaryTypeName","src":"3302:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52465,"mutability":"mutable","name":"newSubnetGetterSelectors","nameLocation":"3353:24:90","nodeType":"VariableDeclaration","scope":52523,"src":"3335:42:90","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52463,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3335:6:90","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52464,"nodeType":"ArrayTypeName","src":"3335:8:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":52468,"mutability":"mutable","name":"newSubnetManagerSelectors","nameLocation":"3405:25:90","nodeType":"VariableDeclaration","scope":52523,"src":"3387:43:90","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52466,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3387:6:90","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52467,"nodeType":"ArrayTypeName","src":"3387:8:90","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"3260:176:90"},"returnParameters":{"id":52470,"nodeType":"ParameterList","parameters":[],"src":"3446:0:90"},"scope":52524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52524],"name":"SubnetGetterFacet","nameLocation":"287:17:90","scope":52525,"usedErrors":[37516,37520,40919]}],"license":"MIT OR Apache-2.0"},"id":90} \ No newline at end of file diff --git a/.out/SubnetIDHelper.sol/SubnetIDHelper.json b/.out/SubnetIDHelper.sol/SubnetIDHelper.json index 03ee74ac9..e51467422 100644 --- a/.out/SubnetIDHelper.sol/SubnetIDHelper.json +++ b/.out/SubnetIDHelper.sol/SubnetIDHelper.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"commonParent","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"createSubnetId","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"actor","type":"address","internalType":"address"}],"outputs":[{"name":"newSubnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"down","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"equals","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"getActor","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getAddress","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getParentSubnet","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"isEmpty","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"isRoot","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"error","name":"DifferentRootNetwork","inputs":[]},{"type":"error","name":"EmptySubnet","inputs":[]},{"type":"error","name":"InvalidRoute","inputs":[]},{"type":"error","name":"NoAddressForRoot","inputs":[]},{"type":"error","name":"NoParentForSubnet","inputs":[]},{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080806040523461001a57610f269081610020823930815050f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063089032d514610751578063118e84ee146106a4578063138e13fc1461064f578063399912661461062e57806359feac42146106095780636099e898146105c3578063862a88f81461057b57806390ba52cf14610560578063aa5106cb14610456578063c836244d146104385763e4ebe92c1461009557600080fd5b61009e36610ac6565b6001600160401b036100af82610b7a565b166000817a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561042a575b506d04ee2d6d415b85acef81000000008082101561041d575b50662386f26fc1000080821015610410575b506305f5e10080821015610403575b50612710808210156103f6575b5060648110156103e8575b600a809110156103de575b600182019061015c61014683610be7565b9261015460405194856109a1565b808452610be7565b938160216020850195601f198098013688378501015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049081156101a0578290610172565b50505060226101da916101ca936040519485926117b960f11b602085015251809285850190610af7565b81010360028101845201826109a1565b916101e86020820182610b8e565b90506000915b81831061022657601f6040868682519384926020845261021d8151809281602088015260208888019101610af7565b01168101030190f35b909193610260602160405183610246829551809260208086019101610af7565b8101602f60f81b60208201520360018101845201826109a1565b846102886102836102746020860186610b8e565b6001600160a01b039491610bc3565b610bd3565b169081604051928360608101106001600160401b036060860111176103c85760608401604052602a845260403660208601378351156103b257603060208501538351600110156103b2576078602185015360295b60018111610353575061033457509061032b6020600193604051938161030b8693518092868087019101610af7565b820161031f82518093868085019101610af7565b010380845201826109a1565b940191906101ee565b6044906040519063e22e27eb60e01b8252600482015260146024820152fd5b906010600f821610156103b25784518210156103b2576f181899199a1a9b1b9c1cb0b131b232b360811b600f82161a8583016020015360041c90801561039c57600019016102dc565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9060010190610135565b60646002910491019061012a565b600491049101903861011f565b6008910491019038610112565b6010910491019038610103565b60209104910190386100f1565b9150508104604090386100d8565b602061044c610446366108bf565b90610d0d565b6040519015158152f35b60031960403682011261055b57600435906001600160401b039081831161055b5760408360040191843603011261055b576001600160a01b03602435818116949085900361055b576024906104a9610b2e565b946104b385610b7a565b16855201916104c28382610b8e565b92905060019283810180911161039c576104db90610b48565b93602086019485526104ed8184610b8e565b93905060005b84811061052c578888885191825192600019840193841161039c576105289361051b91610b1a565b526040519182918261090c565b0390f35b80610545610283889361053f8787610b8e565b90610bc3565b85610551838b51610b1a565b91169052016104f3565b600080fd5b602061057361056e36610ac6565b610c02565b604051908152f35b602061058636610ac6565b61059282820182610b8e565b90501590816105a7575b506040519015158152f35b6001600160401b0391506105ba90610b7a565b1615158261059c565b60206105ce36610ac6565b6105da82820182610b8e565b90501590816105ee57506040519015158152f35b6001600160401b03915061060190610b7a565b16158261059c565b602061061c61061736610ac6565b610cbe565b6040516001600160a01b039091168152f35b61052861064361063d366108bf565b90610d6a565b6040519182918261090c565b602061065a36610a01565b018051519081156106925751600019820191821161039c576020916001600160a01b03916106889190610b1a565b5116604051908152f35b60405163142b83b360e31b8152600490fd5b6106ad36610a01565b6106b5610b2e565b5060208101908151511561073f57815151600019810190811161039c576106db90610b48565b90815160005b81811061071857610528846001600160401b0385511690604051916107058361096b565b825260208201526040519182918261090c565b600190818060a01b0361072c828851610b1a565b51166107388287610b1a565b52016106e1565b604051632f10c6c160e01b8152600490fd5b61075a366108bf565b610762610b2e565b5061076c82610b7a565b6001600160401b0390818061078085610b7a565b169116036108ad57602083016107968185610b8e565b6020850191506107a68286610b8e565b919050111561089b576000936107bc8282610b8e565b9590505b8581108061085c575b156107d6576001016107c0565b84848892600019811461039c5760018091016107f181610b48565b9260005b82811061082c57610528868661080a8a610b7a565b91604051926108188461096b565b16825260208201526040519182918261090c565b8061083f610283869361053f868c610b8e565b6108498288610b1a565b6001600160a01b039091169052016107f5565b5061086e6102838261053f878b610b8e565b6108788484610b8e565b6001600160a01b0391829161089291610283918791610bc3565b169116146107c9565b60405163427282e960e11b8152600490fd5b604051637185935560e01b8152600490fd5b600319919060408382011261055b576001600160401b039060043582811161055b57604085828403011261055b576004019360243592831161055b578260409203011261055b5760040190565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061094e575050505090565b83516001600160a01b031685529381019392810192600101610940565b604081019081106001600160401b038211176103c857604052565b602081019081106001600160401b038211176103c857604052565b90601f801991011681019081106001600160401b038211176103c857604052565b35906001600160401b038216820361055b57565b6001600160401b0381116103c85760051b60200190565b35906001600160a01b038216820361055b57565b600319906020828201811361055b57600435926001600160401b039081851161055b57604090858503011261055b5760405193610a3d8561096b565b610a49816004016109c2565b8552602481013591821161055b5701918060238401121561055b576004830135610a72816109d6565b93610a8060405195866109a1565b81855260248486019260051b82010192831161055b576024849101915b838310610aae575050505082015290565b8190610ab9846109ed565b8152019101908390610a9d565b6003199060208183011261055b57600435916001600160401b03831161055b578260409203011261055b5760040190565b60005b838110610b0a5750506000910152565b8181015183820152602001610afa565b80518210156103b25760209160051b010190565b60405190610b3b8261096b565b6060602083600081520152565b90610b52826109d6565b610b5f60405191826109a1565b8281528092610b70601f19916109d6565b0190602036910137565b356001600160401b038116810361055b5790565b903590601e198136030182121561055b57018035906001600160401b03821161055b57602001918160051b3603831361055b57565b91908110156103b25760051b0190565b356001600160a01b038116810361055b5790565b6001600160401b0381116103c857601f01601f191660200190565b6040516020808201818152926001600160401b0391608084019183610c26826109c2565b16604086015281810135601e198236030181121561055b570191818335930193831161055b578260051b3603841361055b5760406060860152829052839160a083019160005b828110610c8f57505050610c89925003601f1981018352826109a1565b51902090565b91935091600190839081906001600160a01b03610cab896109ed565b1681520195019101918593919492610c6c565b6020810190610ccd8282610b8e565b905015610d0657610ce9610ce18383610b8e565b939092610b8e565b60001981019150811161039c57610d039261028392610bc3565b90565b5050600090565b610d1681610b7a565b6001600160401b0380610d2885610b7a565b16911603610d0657610d3d6020820182610b8e565b9050610d4c6020840184610b8e565b91905003610d0657610d60610d6691610c02565b91610c02565b1490565b90610d73610b2e565b50610d7d82610b7a565b906001600160401b03918280610d9284610b7a565b16911603610ec4579160208101906000610dac8383610b8e565b95905060208101610dbd8183610b8e565b9390505b87811080610ebb575b80610e7c575b15610ddd57600101610dc1565b93949596505050508015610e5257610df481610b48565b9260005b828110610e2457505050610e0b90610b7a565b9160405192610e198461096b565b168252602082015290565b80610e3861028360019361053f8689610b8e565b610e428288610b1a565b90838060a01b0316905201610df8565b50610e5d9150610b7a565b9060405190610e6b82610986565b6000825260405192610e198461096b565b50610e8e6102838261053f8989610b8e565b610e988385610b8e565b6001600160a01b03918291610eb291610283918791610bc3565b16911614610dd0565b50838110610dca565b505050604051610ed381610986565b6000815260405190610ee48261096b565b6000825260208201529056fea26469706673582212209b8462773fb1fc3133a5c6c3b343bb709dea91dbf0ebe92d84e41ccec8aceed964736f6c63430008130033","sourceMap":"272:5215:75:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063089032d514610751578063118e84ee146106a4578063138e13fc1461064f578063399912661461062e57806359feac42146106095780636099e898146105c3578063862a88f81461057b57806390ba52cf14610560578063aa5106cb14610456578063c836244d146104385763e4ebe92c1461009557600080fd5b61009e36610ac6565b6001600160401b036100af82610b7a565b166000817a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561042a575b506d04ee2d6d415b85acef81000000008082101561041d575b50662386f26fc1000080821015610410575b506305f5e10080821015610403575b50612710808210156103f6575b5060648110156103e8575b600a809110156103de575b600182019061015c61014683610be7565b9261015460405194856109a1565b808452610be7565b938160216020850195601f198098013688378501015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049081156101a0578290610172565b50505060226101da916101ca936040519485926117b960f11b602085015251809285850190610af7565b81010360028101845201826109a1565b916101e86020820182610b8e565b90506000915b81831061022657601f6040868682519384926020845261021d8151809281602088015260208888019101610af7565b01168101030190f35b909193610260602160405183610246829551809260208086019101610af7565b8101602f60f81b60208201520360018101845201826109a1565b846102886102836102746020860186610b8e565b6001600160a01b039491610bc3565b610bd3565b169081604051928360608101106001600160401b036060860111176103c85760608401604052602a845260403660208601378351156103b257603060208501538351600110156103b2576078602185015360295b60018111610353575061033457509061032b6020600193604051938161030b8693518092868087019101610af7565b820161031f82518093868085019101610af7565b010380845201826109a1565b940191906101ee565b6044906040519063e22e27eb60e01b8252600482015260146024820152fd5b906010600f821610156103b25784518210156103b2576f181899199a1a9b1b9c1cb0b131b232b360811b600f82161a8583016020015360041c90801561039c57600019016102dc565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9060010190610135565b60646002910491019061012a565b600491049101903861011f565b6008910491019038610112565b6010910491019038610103565b60209104910190386100f1565b9150508104604090386100d8565b602061044c610446366108bf565b90610d0d565b6040519015158152f35b60031960403682011261055b57600435906001600160401b039081831161055b5760408360040191843603011261055b576001600160a01b03602435818116949085900361055b576024906104a9610b2e565b946104b385610b7a565b16855201916104c28382610b8e565b92905060019283810180911161039c576104db90610b48565b93602086019485526104ed8184610b8e565b93905060005b84811061052c578888885191825192600019840193841161039c576105289361051b91610b1a565b526040519182918261090c565b0390f35b80610545610283889361053f8787610b8e565b90610bc3565b85610551838b51610b1a565b91169052016104f3565b600080fd5b602061057361056e36610ac6565b610c02565b604051908152f35b602061058636610ac6565b61059282820182610b8e565b90501590816105a7575b506040519015158152f35b6001600160401b0391506105ba90610b7a565b1615158261059c565b60206105ce36610ac6565b6105da82820182610b8e565b90501590816105ee57506040519015158152f35b6001600160401b03915061060190610b7a565b16158261059c565b602061061c61061736610ac6565b610cbe565b6040516001600160a01b039091168152f35b61052861064361063d366108bf565b90610d6a565b6040519182918261090c565b602061065a36610a01565b018051519081156106925751600019820191821161039c576020916001600160a01b03916106889190610b1a565b5116604051908152f35b60405163142b83b360e31b8152600490fd5b6106ad36610a01565b6106b5610b2e565b5060208101908151511561073f57815151600019810190811161039c576106db90610b48565b90815160005b81811061071857610528846001600160401b0385511690604051916107058361096b565b825260208201526040519182918261090c565b600190818060a01b0361072c828851610b1a565b51166107388287610b1a565b52016106e1565b604051632f10c6c160e01b8152600490fd5b61075a366108bf565b610762610b2e565b5061076c82610b7a565b6001600160401b0390818061078085610b7a565b169116036108ad57602083016107968185610b8e565b6020850191506107a68286610b8e565b919050111561089b576000936107bc8282610b8e565b9590505b8581108061085c575b156107d6576001016107c0565b84848892600019811461039c5760018091016107f181610b48565b9260005b82811061082c57610528868661080a8a610b7a565b91604051926108188461096b565b16825260208201526040519182918261090c565b8061083f610283869361053f868c610b8e565b6108498288610b1a565b6001600160a01b039091169052016107f5565b5061086e6102838261053f878b610b8e565b6108788484610b8e565b6001600160a01b0391829161089291610283918791610bc3565b169116146107c9565b60405163427282e960e11b8152600490fd5b604051637185935560e01b8152600490fd5b600319919060408382011261055b576001600160401b039060043582811161055b57604085828403011261055b576004019360243592831161055b578260409203011261055b5760040190565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061094e575050505090565b83516001600160a01b031685529381019392810192600101610940565b604081019081106001600160401b038211176103c857604052565b602081019081106001600160401b038211176103c857604052565b90601f801991011681019081106001600160401b038211176103c857604052565b35906001600160401b038216820361055b57565b6001600160401b0381116103c85760051b60200190565b35906001600160a01b038216820361055b57565b600319906020828201811361055b57600435926001600160401b039081851161055b57604090858503011261055b5760405193610a3d8561096b565b610a49816004016109c2565b8552602481013591821161055b5701918060238401121561055b576004830135610a72816109d6565b93610a8060405195866109a1565b81855260248486019260051b82010192831161055b576024849101915b838310610aae575050505082015290565b8190610ab9846109ed565b8152019101908390610a9d565b6003199060208183011261055b57600435916001600160401b03831161055b578260409203011261055b5760040190565b60005b838110610b0a5750506000910152565b8181015183820152602001610afa565b80518210156103b25760209160051b010190565b60405190610b3b8261096b565b6060602083600081520152565b90610b52826109d6565b610b5f60405191826109a1565b8281528092610b70601f19916109d6565b0190602036910137565b356001600160401b038116810361055b5790565b903590601e198136030182121561055b57018035906001600160401b03821161055b57602001918160051b3603831361055b57565b91908110156103b25760051b0190565b356001600160a01b038116810361055b5790565b6001600160401b0381116103c857601f01601f191660200190565b6040516020808201818152926001600160401b0391608084019183610c26826109c2565b16604086015281810135601e198236030181121561055b570191818335930193831161055b578260051b3603841361055b5760406060860152829052839160a083019160005b828110610c8f57505050610c89925003601f1981018352826109a1565b51902090565b91935091600190839081906001600160a01b03610cab896109ed565b1681520195019101918593919492610c6c565b6020810190610ccd8282610b8e565b905015610d0657610ce9610ce18383610b8e565b939092610b8e565b60001981019150811161039c57610d039261028392610bc3565b90565b5050600090565b610d1681610b7a565b6001600160401b0380610d2885610b7a565b16911603610d0657610d3d6020820182610b8e565b9050610d4c6020840184610b8e565b91905003610d0657610d60610d6691610c02565b91610c02565b1490565b90610d73610b2e565b50610d7d82610b7a565b906001600160401b03918280610d9284610b7a565b16911603610ec4579160208101906000610dac8383610b8e565b95905060208101610dbd8183610b8e565b9390505b87811080610ebb575b80610e7c575b15610ddd57600101610dc1565b93949596505050508015610e5257610df481610b48565b9260005b828110610e2457505050610e0b90610b7a565b9160405192610e198461096b565b168252602082015290565b80610e3861028360019361053f8689610b8e565b610e428288610b1a565b90838060a01b0316905201610df8565b50610e5d9150610b7a565b9060405190610e6b82610986565b6000825260405192610e198461096b565b50610e8e6102838261053f8989610b8e565b610e988385610b8e565b6001600160a01b03918291610eb291610283918791610bc3565b16911614610dd0565b50838110610dca565b505050604051610ed381610986565b6000815260405190610ee48261096b565b6000825260208201529056fea26469706673582212209b8462773fb1fc3133a5c6c3b343bb709dea91dbf0ebe92d84e41ccec8aceed964736f6c63430008130033","sourceMap":"272:5215:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;581:12;272:5215;581:12;;;272:5215;;;;;;;;;;5430:14;272:5215;5430:14;;;2749:12;272:5215;2749:12;;;272:5215;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1413:11:75;;;:::i;:::-;272:5215;;;12559:8:34;12550:17;;;;12546:103;;272:5215:75;12675:8:34;;12666:17;;;;12662:103;;272:5215:75;12791:8:34;;12782:17;;;;12778:103;;272:5215:75;12907:7:34;;12898:16;;;;12894:100;;272:5215:75;13020:7:34;;13011:16;;;;13007:100;;272:5215:75;13124:16:34;13133:7;13124:16;;;13120:100;;272:5215:75;13246:7:34;13237:16;;;;13233:66;;272:5215:75;748:1:31;272:5215:75;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;890:76:31;272:5215:75;;;;;;;;;;;;890:76:31;;;979:280;-1:-1:-1;;272:5215:75;;-1:-1:-1;;;1084:93:31;;;;272:5215:75;1084:93:31;272:5215:75;1227:10:31;;;1223:21;;979:280;;;;1223:21;1239:5;;;272:5215:75;1373:53;1239:5:31;272:5215:75;1239:5:31;272:5215:75;;1373:53;;;-1:-1:-1;;;272:5215:75;1373:53;;272:5215;;;;;;;;;:::i;:::-;;;1373:53;;;;;;;;;:::i;:::-;1460:12;;272:5215;1460:12;;;;:::i;:::-;1494:9;;272:5215;1489:226;1505:16;;;;;;272:5215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1494:9;272:5215;;;;890:76:31;272:5215:75;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;272:5215:75;;;;;748:1:31;272:5215:75;;;;;;;:::i;:::-;1460:12;1615:15;;:12;272:5215;1460:12;;1615;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;1615:15;:::i;:::-;;:::i;:::-;272:5215;2072:26:31;;272:5215:75;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;2165:15:31;272:5215:75;;;2165:15:31;272:5215:75;;748:1:31;272:5215:75;;;;2190:15:31;890:76;272:5215:75;;2190:15:31;272:5215:75;2248:5:31;748:1;2248:5;;;;2366:15;2362:96;;272:5215:75;;;;748:1:31;272:5215:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;1494:9;;;;2362:96:31;279:18;272:5215:75;;;2404:43:31;;;;;;272:5215:75;2404:43:31;;272:5215:75;344:2:31;279:18;;;272:5215:75;2404:43:31;2255:3;2295:16;2286:26;2308:3;2295:16;;2286:26;;;;272:5215:75;;;;;;;-1:-1:-1;;;2308:3:31;2295:16;;2286:26;272:5215:75;;;;;2274:38:31;272:5215:75;279:18:31;2255:3;272:5215:75;;;;-1:-1:-1;;272:5215:75;2220:26:31;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13233:66:34;272:5215:75;13283:1:34;272:5215:75;13233:66:34;;;13120:100;13133:7;13204:1;272:5215:75;;;;13120:100:34;;;13007;272:5215:75;;;;;13007:100:34;;;;12894;12978:1;272:5215:75;;;;12894:100:34;;;;12778:103;12864:2;272:5215:75;;;;12778:103:34;;;;12662;12748:2;272:5215:75;;;;12662:103:34;;;;12546;272:5215:75;;;;;;12546:103:34;;;;272:5215:75;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;272:5215:75;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;:::i;:::-;2021:11;;;;:::i;:::-;272:5215;;;2074:12;;;;;;:::i;:::-;272:5215;;;;;;;;;;;;;2060:38;;;:::i;:::-;2042:15;272:5215;2042:15;;:56;;;2130:12;;;;:::i;:::-;2164:9;;;272:5215;2175:15;;;;;;2324;;;;272:5215;;;;;;;;;;;;;;2324:51;;;;:::i;:::-;272:5215;;;;;;;;:::i;:::-;;;;2164:9;2229:12;:15;;:12;;;;;;:::i;:::-;:15;;:::i;:::-;2208;:36;:15;;;:36;:::i;:::-;272:5215;;;;;2164:9;;272:5215;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;2749:12;272:5215;;;:::i;:::-;2749:12;;;;;;:::i;:::-;:24;;;:44;;;;272:5215;;;;;;;;;;2749:44;-1:-1:-1;;;;;2777:11:75;;;;;:::i;:::-;272:5215;2777:16;;2749:44;;;272:5215;5430:14;272:5215;;;:::i;:::-;5430:14;;;;;;:::i;:::-;:26;;;:48;;;;272:5215;;;;;;;;;5430:48;-1:-1:-1;;;;;5460:13:75;;;;;:::i;:::-;272:5215;5460:18;5430:48;;;272:5215;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;581:12;272:5215;;;:::i;:::-;581:12;;;272:5215;615:11;;;611:67;;694:12;-1:-1:-1;;272:5215:75;;;;;;;581:12;;-1:-1:-1;;;;;272:5215:75;694:24;;272:5215;694:24;:::i;:::-;272:5215;;;;;;;;611:67;272:5215;;-1:-1:-1;;;649:18:75;;272:5215;;649:18;272:5215;;;;:::i;:::-;;;:::i;:::-;;832:12;;;;;;272:5215;832:24;828:81;;958:12;;272:5215;-1:-1:-1;;272:5215:75;;;;;;;944:38;;;:::i;:::-;272:5215;;;;1052:15;;;;;;272:5215;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;:::i;:::-;;;832:12;1198:43;;272:5215;;;;;;;;:::i;1041:9::-;272:5215;;;;;;;1096:15;:12;;;:15;:::i;:::-;272:5215;;1085:26;;;;:::i;:::-;272:5215;;1041:9;;828:81;272:5215;;-1:-1:-1;;;879:19:75;;272:5215;;879:19;272:5215;;;;:::i;:::-;;;:::i;:::-;;4637:12;;;:::i;:::-;-1:-1:-1;;;;;4653:12:75;;;;;;:::i;:::-;272:5215;;;4637:28;4633:88;;4734:13;;;;;;;:::i;:::-;;4758;;;-1:-1:-1;4758:13:75;;;;:::i;:::-;4734:44;;;;;4730:96;;272:5215;4884:13;;;;;:::i;:::-;4914:141;;;;4921:22;;;:62;;;4914:141;4921:62;;;272:5215;;4914:141;;4921:62;;;;;272:5215;;;;;;;;;;5104:16;;;:::i;:::-;5136:9;272:5215;5147:5;;;;;;272:5215;5300:12;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;;;;4734:13;5284:44;;272:5215;;;;;;;;:::i;5136:9::-;5181:13;:16;;:13;;;;;;:::i;:16::-;5170:27;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;;;;;5136:9;;4921:62;4947:13;:16;;:13;;;;;:::i;:16::-;4967:13;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;;4967:16;;;;272:5215;;4967:16;:::i;:::-;272:5215;;;4947:36;4921:62;;4730:96;272:5215;;-1:-1:-1;;;4801:14:75;;272:5215;;4801:14;4633:88;272:5215;;-1:-1:-1;;;4688:22:75;;272:5215;;4688:22;272:5215;-1:-1:-1;;272:5215:75;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;:::o;:::-;-1:-1:-1;;;;;272:5215:75;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;:::o;:::-;-1:-1:-1;;272:5215:75;;;;;;-1:-1:-1;272:5215:75;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;272:5215:75;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;272:5215:75;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;272:5215:75;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;-1:-1:-1;;;;;272:5215:75;;;;;;-1:-1:-1;;272:5215:75;;;;:::o;1750:125::-;272:5215;;1849:18;;;;272:5215;;;1849:18;-1:-1:-1;;;;;272:5215:75;;;;;;;1849:18;272:5215;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;272:5215:75;;;;;;1849:18;;;;;;;272:5215;;1849:18;;;;;;:::i;:::-;272:5215;1839:29;;1750:125;:::o;272:5215::-;;;-1:-1:-1;272:5215:75;;;;;;;-1:-1:-1;;;;;272:5215:75;;;:::i;:::-;;;;;;;;;;;;;;;;;2388:217;2476:12;;;;;;;;:::i;:::-;:24;;;2472:72;;2574:12;2561;;;;:::i;:::-;2574;;;;:::i;:::-;-1:-1:-1;;272:5215:75;;;-1:-1:-1;272:5215:75;;;;2561:37;;;;;:::i;:::-;2388:217;:::o;2472:72::-;2516:17;;2499:1;2516:17;:::o;2806:332::-;2917:12;;;:::i;:::-;-1:-1:-1;;;;;2933:12:75;;;;:::i;:::-;272:5215;;;2917:28;2913:71;;2997:13;;;;;;:::i;:::-;3021;;;2997;3021;;;;:::i;:::-;2997:44;;;;2993:87;;3097:15;3116;3097;;:::i;:::-;3116;;:::i;:::-;3097:34;2806:332;:::o;3239:921::-;;272:5215;;:::i;:::-;;3367:12;;;:::i;:::-;272:5215;-1:-1:-1;;;;;3383:12:75;;;;;;:::i;:::-;272:5215;;;3367:28;3363:110;;3483:9;3531:13;;;;-1:-1:-1;3531:13:75;;3483:9;3531:13;:::i;:::-;3590;;;3531;3590;;;;;;:::i;:::-;3620:167;;;;3627:22;;;:48;;;3620:167;3627:88;;;3620:167;3627:88;;;272:5215;;3620:167;;3627:88;;;;;;;;;3800:6;;3796:99;;3930:16;;;:::i;:::-;3961:9;-1:-1:-1;3972:5:75;;;;;;4125:12;;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;;;;3531:13;4109:44;;272:5215;3239:921;:::o;3961:9::-;4006:13;:16;;272:5215;4006:13;;;;;:::i;:16::-;3995:27;;;;:::i;:::-;272:5215;;;;;;;;;;3961:9;;3796:99;3845:12;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;-1:-1:-1;272:5215:75;;;;;;;;:::i;3627:88::-;3679:13;:16;;:13;;;;;:::i;:16::-;3699:13;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;;3699:16;;;;272:5215;;3699:16;:::i;:::-;272:5215;;;3679:36;3627:88;;:48;3653:22;;;;3627:48;;3363:110;272:5215;;;;;;;;:::i;:::-;-1:-1:-1;272:5215:75;;;;;;;;:::i;:::-;-1:-1:-1;272:5215:75;;;3418:44;;272:5215;3411:51;:::o","linkReferences":{}},"methodIdentifiers":{"commonParent(SubnetID,SubnetID)":"39991266","createSubnetId(SubnetID,address)":"aa5106cb","down(SubnetID,SubnetID)":"089032d5","equals(SubnetID,SubnetID)":"c836244d","getActor(SubnetID)":"59feac42","getAddress(SubnetID)":"138e13fc","getParentSubnet(SubnetID)":"118e84ee","isEmpty(SubnetID)":"6099e898","isRoot(SubnetID)":"862a88f8","toHash(SubnetID)":"90ba52cf","toString(SubnetID)":"e4ebe92c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DifferentRootNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptySubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoute\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoAddressForRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoParentForSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"commonParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"createSubnetId\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"newSubnet\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"down\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"equals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getParentSubnet\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"isEmpty\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"isRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{\"down(SubnetID,SubnetID)\":{\"details\":\"Revert will be triggered if subnet2 is an invalid input.\"}},\"title\":\"Helper library for manipulating SubnetID struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"commonParent(SubnetID,SubnetID)\":{\"notice\":\"Computes the common parent of the current subnet and the one given as argument\"},\"down(SubnetID,SubnetID)\":{\"notice\":\"In the path determined by the current subnet id, it moves down in the path from the subnet id given as argument. subnet2 needs to be a prefix of the subnet1. If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/SubnetIDHelper.sol\":\"SubnetIDHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"DifferentRootNetwork"},{"inputs":[],"type":"error","name":"EmptySubnet"},{"inputs":[],"type":"error","name":"InvalidRoute"},{"inputs":[],"type":"error","name":"NoAddressForRoot"},{"inputs":[],"type":"error","name":"NoParentForSubnet"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"commonParent","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"actor","type":"address"}],"stateMutability":"pure","type":"function","name":"createSubnetId","outputs":[{"internalType":"struct SubnetID","name":"newSubnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"down","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"equals","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getActor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getParentSubnet","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"isEmpty","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"isRoot","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"down(SubnetID,SubnetID)":{"details":"Revert will be triggered if subnet2 is an invalid input."}},"version":1},"userdoc":{"kind":"user","methods":{"commonParent(SubnetID,SubnetID)":{"notice":"Computes the common parent of the current subnet and the one given as argument"},"down(SubnetID,SubnetID)":{"notice":"In the path determined by the current subnet id, it moves down in the path from the subnet id given as argument. subnet2 needs to be a prefix of the subnet1. If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/SubnetIDHelper.sol":"SubnetIDHelper"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/SubnetIDHelper.sol","id":48073,"exportedSymbols":{"Strings":[33113],"SubnetID":[50077],"SubnetIDHelper":[48072]},"nodeType":"SourceUnit","src":"46:5442:75","nodes":[{"id":47463,"nodeType":"PragmaDirective","src":"46:23:75","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47465,"nodeType":"ImportDirective","src":"71:47:75","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":48073,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":47464,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"79:8:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47467,"nodeType":"ImportDirective","src":"119:65:75","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","file":"openzeppelin-contracts/utils/Strings.sol","nameLocation":"-1:-1:-1","scope":48073,"sourceUnit":33114,"symbolAliases":[{"foreign":{"id":47466,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33113,"src":"127:7:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48072,"nodeType":"ContractDefinition","src":"272:5215:75","nodes":[{"id":47471,"nodeType":"UsingForDirective","src":"301:26:75","nodes":[],"global":false,"libraryName":{"id":47469,"name":"Strings","nameLocations":["307:7:75"],"nodeType":"IdentifierPath","referencedDeclaration":33113,"src":"307:7:75"},"typeName":{"id":47470,"name":"address","nodeType":"ElementaryTypeName","src":"319:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":47473,"nodeType":"ErrorDefinition","src":"333:26:75","nodes":[],"errorSelector":"2f10c6c1","name":"NoParentForSubnet","nameLocation":"339:17:75","parameters":{"id":47472,"nodeType":"ParameterList","parameters":[],"src":"356:2:75"}},{"id":47475,"nodeType":"ErrorDefinition","src":"364:25:75","nodes":[],"errorSelector":"a15c1d98","name":"NoAddressForRoot","nameLocation":"370:16:75","parameters":{"id":47474,"nodeType":"ParameterList","parameters":[],"src":"386:2:75"}},{"id":47477,"nodeType":"ErrorDefinition","src":"394:20:75","nodes":[],"errorSelector":"79e7ca82","name":"EmptySubnet","nameLocation":"400:11:75","parameters":{"id":47476,"nodeType":"ParameterList","parameters":[],"src":"411:2:75"}},{"id":47479,"nodeType":"ErrorDefinition","src":"419:29:75","nodes":[],"errorSelector":"71859355","name":"DifferentRootNetwork","nameLocation":"425:20:75","parameters":{"id":47478,"nodeType":"ParameterList","parameters":[],"src":"445:2:75"}},{"id":47481,"nodeType":"ErrorDefinition","src":"453:21:75","nodes":[],"errorSelector":"84e505d2","name":"InvalidRoute","nameLocation":"459:12:75","parameters":{"id":47480,"nodeType":"ParameterList","parameters":[],"src":"471:2:75"}},{"id":47511,"nodeType":"FunctionDefinition","src":"480:245:75","nodes":[],"body":{"id":47510,"nodeType":"Block","src":"554:171:75","nodes":[],"statements":[{"assignments":[47490],"declarations":[{"constant":false,"id":47490,"mutability":"mutable","name":"length","nameLocation":"572:6:75","nodeType":"VariableDeclaration","scope":47510,"src":"564:14:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47489,"name":"uint256","nodeType":"ElementaryTypeName","src":"564:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47494,"initialValue":{"expression":{"expression":{"id":47491,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47484,"src":"581:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"588:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"581:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"594:6:75","memberName":"length","nodeType":"MemberAccess","src":"581:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"564:36:75"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47495,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47490,"src":"615:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"625:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"615:11:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47502,"nodeType":"IfStatement","src":"611:67:75","trueBody":{"id":47501,"nodeType":"Block","src":"628:50:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47498,"name":"NoAddressForRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47475,"src":"649:16:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"649:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47500,"nodeType":"RevertStatement","src":"642:25:75"}]}},{"expression":{"baseExpression":{"expression":{"id":47503,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47484,"src":"694:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"701:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"694:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47508,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47505,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47490,"src":"707:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"716:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"707:10:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"694:24:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47488,"id":47509,"nodeType":"Return","src":"687:31:75"}]},"functionSelector":"138e13fc","implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"489:10:75","parameters":{"id":47485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47484,"mutability":"mutable","name":"subnet","nameLocation":"516:6:75","nodeType":"VariableDeclaration","scope":47511,"src":"500:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47483,"nodeType":"UserDefinedTypeName","pathNode":{"id":47482,"name":"SubnetID","nameLocations":["500:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"500:8:75"},"referencedDeclaration":50077,"src":"500:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"499:24:75"},"returnParameters":{"id":47488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47511,"src":"545:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47486,"name":"address","nodeType":"ElementaryTypeName","src":"545:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"544:9:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47578,"nodeType":"FunctionDefinition","src":"731:517:75","nodes":[],"body":{"id":47577,"nodeType":"Block","src":"818:430:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47520,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47514,"src":"832:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"839:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"832:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:6:75","memberName":"length","nodeType":"MemberAccess","src":"832:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"855:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"832:24:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47529,"nodeType":"IfStatement","src":"828:81:75","trueBody":{"id":47528,"nodeType":"Block","src":"858:51:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47525,"name":"NoParentForSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47473,"src":"879:17:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47527,"nodeType":"RevertStatement","src":"872:26:75"}]}},{"assignments":[47534],"declarations":[{"constant":false,"id":47534,"mutability":"mutable","name":"route","nameLocation":"936:5:75","nodeType":"VariableDeclaration","scope":47577,"src":"919:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47532,"name":"address","nodeType":"ElementaryTypeName","src":"919:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47533,"nodeType":"ArrayTypeName","src":"919:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":47544,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47538,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47514,"src":"958:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"965:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"958:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"971:6:75","memberName":"length","nodeType":"MemberAccess","src":"958:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"980:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"958:23:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"944:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47535,"name":"address","nodeType":"ElementaryTypeName","src":"948:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47536,"nodeType":"ArrayTypeName","src":"948:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"944:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"919:63:75"},{"assignments":[47546],"declarations":[{"constant":false,"id":47546,"mutability":"mutable","name":"routeLength","nameLocation":"1000:11:75","nodeType":"VariableDeclaration","scope":47577,"src":"992:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47545,"name":"uint256","nodeType":"ElementaryTypeName","src":"992:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47549,"initialValue":{"expression":{"id":47547,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47534,"src":"1014:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1020:6:75","memberName":"length","nodeType":"MemberAccess","src":"1014:12:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"992:34:75"},{"body":{"id":47569,"nodeType":"Block","src":"1071:110:75","statements":[{"expression":{"id":47563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47556,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47534,"src":"1085:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47558,"indexExpression":{"id":47557,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47551,"src":"1091:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1085:8:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47559,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47514,"src":"1096:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1103:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"1096:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47562,"indexExpression":{"id":47561,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47551,"src":"1109:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1096:15:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1085:26:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47564,"nodeType":"ExpressionStatement","src":"1085:26:75"},{"id":47568,"nodeType":"UncheckedBlock","src":"1125:46:75","statements":[{"expression":{"id":47566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1153:3:75","subExpression":{"id":47565,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47551,"src":"1155:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47567,"nodeType":"ExpressionStatement","src":"1153:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47553,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47551,"src":"1052:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47554,"name":"routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47546,"src":"1056:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1052:15:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47570,"initializationExpression":{"assignments":[47551],"declarations":[{"constant":false,"id":47551,"mutability":"mutable","name":"i","nameLocation":"1049:1:75","nodeType":"VariableDeclaration","scope":47570,"src":"1041:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47550,"name":"uint256","nodeType":"ElementaryTypeName","src":"1041:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47552,"nodeType":"VariableDeclarationStatement","src":"1041:9:75"},"nodeType":"ForStatement","src":"1036:145:75"},{"expression":{"arguments":[{"expression":{"id":47572,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47514,"src":"1214:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1221:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"1214:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":47574,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47534,"src":"1234:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47571,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"1198:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1208:4:75","1227:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"1198:43:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47519,"id":47576,"nodeType":"Return","src":"1191:50:75"}]},"functionSelector":"118e84ee","implemented":true,"kind":"function","modifiers":[],"name":"getParentSubnet","nameLocation":"740:15:75","parameters":{"id":47515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47514,"mutability":"mutable","name":"subnet","nameLocation":"772:6:75","nodeType":"VariableDeclaration","scope":47578,"src":"756:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47513,"nodeType":"UserDefinedTypeName","pathNode":{"id":47512,"name":"SubnetID","nameLocations":["756:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"756:8:75"},"referencedDeclaration":50077,"src":"756:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"755:24:75"},"returnParameters":{"id":47519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47578,"src":"801:15:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47517,"nodeType":"UserDefinedTypeName","pathNode":{"id":47516,"name":"SubnetID","nameLocations":["801:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"801:8:75"},"referencedDeclaration":50077,"src":"801:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"800:17:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47645,"nodeType":"FunctionDefinition","src":"1254:490:75","nodes":[],"body":{"id":47644,"nodeType":"Block","src":"1334:410:75","nodes":[],"statements":[{"assignments":[47587],"declarations":[{"constant":false,"id":47587,"mutability":"mutable","name":"route","nameLocation":"1358:5:75","nodeType":"VariableDeclaration","scope":47644,"src":"1344:19:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47586,"name":"string","nodeType":"ElementaryTypeName","src":"1344:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":47600,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2f72","id":47592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1390:4:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_93f820eb308169058c3dd6520c1f67d663f45d78cc39394907eb37677a393d1d","typeString":"literal_string \"/r\""},"value":"/r"},{"arguments":[{"expression":{"id":47595,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47581,"src":"1413:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1420:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"1413:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":47593,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33113,"src":"1396:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$33113_$","typeString":"type(library Strings)"}},"id":47594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1404:8:75","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":32926,"src":"1396:16:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":47597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1396:29:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_93f820eb308169058c3dd6520c1f67d663f45d78cc39394907eb37677a393d1d","typeString":"literal_string \"/r\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47590,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1373:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1377:12:75","memberName":"encodePacked","nodeType":"MemberAccess","src":"1373:16:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:53:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1366:6:75","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":47588,"name":"string","nodeType":"ElementaryTypeName","src":"1366:6:75","typeDescriptions":{}}},"id":47599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:61:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1344:83:75"},{"assignments":[47602],"declarations":[{"constant":false,"id":47602,"mutability":"mutable","name":"subnetLength","nameLocation":"1445:12:75","nodeType":"VariableDeclaration","scope":47644,"src":"1437:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47601,"name":"uint256","nodeType":"ElementaryTypeName","src":"1437:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47606,"initialValue":{"expression":{"expression":{"id":47603,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47581,"src":"1460:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1467:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"1460:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1473:6:75","memberName":"length","nodeType":"MemberAccess","src":"1460:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1437:42:75"},{"body":{"id":47640,"nodeType":"Block","src":"1525:190:75","statements":[{"expression":{"id":47620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47613,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47587,"src":"1539:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47617,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47587,"src":"1561:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f","id":47618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1568:3:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""}],"expression":{"id":47615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1547:6:75","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":47614,"name":"string","nodeType":"ElementaryTypeName","src":"1547:6:75","typeDescriptions":{}}},"id":47616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1554:6:75","memberName":"concat","nodeType":"MemberAccess","src":"1547:13:75","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":47619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1547:25:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1539:33:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":47621,"nodeType":"ExpressionStatement","src":"1539:33:75"},{"expression":{"id":47634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47622,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47587,"src":"1586:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47626,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47587,"src":"1608:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":47627,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47581,"src":"1615:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1622:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"1615:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47630,"indexExpression":{"id":47629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47608,"src":"1628:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1615:15:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1631:11:75","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":33075,"src":"1615:27:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$attached_to$_t_address_$","typeString":"function (address) pure returns (string memory)"}},"id":47632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:29:75","tryCall":false,"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"}],"expression":{"id":47624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:6:75","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":47623,"name":"string","nodeType":"ElementaryTypeName","src":"1594:6:75","typeDescriptions":{}}},"id":47625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1601:6:75","memberName":"concat","nodeType":"MemberAccess","src":"1594:13:75","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":47633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:51:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1586:59:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":47635,"nodeType":"ExpressionStatement","src":"1586:59:75"},{"id":47639,"nodeType":"UncheckedBlock","src":"1659:46:75","statements":[{"expression":{"id":47637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1687:3:75","subExpression":{"id":47636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47608,"src":"1689:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47638,"nodeType":"ExpressionStatement","src":"1687:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47610,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47608,"src":"1505:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47611,"name":"subnetLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47602,"src":"1509:12:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1505:16:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47641,"initializationExpression":{"assignments":[47608],"declarations":[{"constant":false,"id":47608,"mutability":"mutable","name":"i","nameLocation":"1502:1:75","nodeType":"VariableDeclaration","scope":47641,"src":"1494:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47607,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47609,"nodeType":"VariableDeclarationStatement","src":"1494:9:75"},"nodeType":"ForStatement","src":"1489:226:75"},{"expression":{"id":47642,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47587,"src":"1732:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":47585,"id":47643,"nodeType":"Return","src":"1725:12:75"}]},"functionSelector":"e4ebe92c","implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1263:8:75","parameters":{"id":47582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47581,"mutability":"mutable","name":"subnet","nameLocation":"1290:6:75","nodeType":"VariableDeclaration","scope":47645,"src":"1272:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47580,"nodeType":"UserDefinedTypeName","pathNode":{"id":47579,"name":"SubnetID","nameLocations":["1272:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1272:8:75"},"referencedDeclaration":50077,"src":"1272:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1271:26:75"},"returnParameters":{"id":47585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47645,"src":"1319:13:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47583,"name":"string","nodeType":"ElementaryTypeName","src":"1319:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1318:15:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47661,"nodeType":"FunctionDefinition","src":"1750:125:75","nodes":[],"body":{"id":47660,"nodeType":"Block","src":"1822:53:75","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":47656,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47648,"src":"1860:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":47654,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1849:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1853:6:75","memberName":"encode","nodeType":"MemberAccess","src":"1849:10:75","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47653,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1839:9:75","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1839:29:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47652,"id":47659,"nodeType":"Return","src":"1832:36:75"}]},"functionSelector":"90ba52cf","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"1759:6:75","parameters":{"id":47649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47648,"mutability":"mutable","name":"subnet","nameLocation":"1784:6:75","nodeType":"VariableDeclaration","scope":47661,"src":"1766:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47647,"nodeType":"UserDefinedTypeName","pathNode":{"id":47646,"name":"SubnetID","nameLocations":["1766:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1766:8:75"},"referencedDeclaration":50077,"src":"1766:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1765:26:75"},"returnParameters":{"id":47652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47661,"src":"1813:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1813:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1812:9:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47735,"nodeType":"FunctionDefinition","src":"1881:501:75","nodes":[],"body":{"id":47734,"nodeType":"Block","src":"1994:388:75","nodes":[],"statements":[{"expression":{"id":47677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":47672,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47670,"src":"2004:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2014:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2004:14:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":47675,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47664,"src":"2021:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2028:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2021:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2004:28:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":47678,"nodeType":"ExpressionStatement","src":"2004:28:75"},{"expression":{"id":47691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":47679,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47670,"src":"2042:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2052:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2042:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47685,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47664,"src":"2074:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2081:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2074:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2087:6:75","memberName":"length","nodeType":"MemberAccess","src":"2074:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":47688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2096:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2074:23:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2060:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47682,"name":"address","nodeType":"ElementaryTypeName","src":"2064:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47683,"nodeType":"ArrayTypeName","src":"2064:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2042:56:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47692,"nodeType":"ExpressionStatement","src":"2042:56:75"},{"assignments":[47694],"declarations":[{"constant":false,"id":47694,"mutability":"mutable","name":"routeLength","nameLocation":"2116:11:75","nodeType":"VariableDeclaration","scope":47734,"src":"2108:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47693,"name":"uint256","nodeType":"ElementaryTypeName","src":"2108:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47698,"initialValue":{"expression":{"expression":{"id":47695,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47664,"src":"2130:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2137:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2130:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2143:6:75","memberName":"length","nodeType":"MemberAccess","src":"2130:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2108:41:75"},{"body":{"id":47720,"nodeType":"Block","src":"2194:120:75","statements":[{"expression":{"id":47714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":47705,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47670,"src":"2208:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2218:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2208:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47709,"indexExpression":{"id":47707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2224:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2208:18:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47710,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47664,"src":"2229:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2236:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2229:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47713,"indexExpression":{"id":47712,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2242:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2229:15:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2208:36:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47715,"nodeType":"ExpressionStatement","src":"2208:36:75"},{"id":47719,"nodeType":"UncheckedBlock","src":"2258:46:75","statements":[{"expression":{"id":47717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2286:3:75","subExpression":{"id":47716,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2288:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47718,"nodeType":"ExpressionStatement","src":"2286:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47702,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2175:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47703,"name":"routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47694,"src":"2179:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2175:15:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47721,"initializationExpression":{"assignments":[47700],"declarations":[{"constant":false,"id":47700,"mutability":"mutable","name":"i","nameLocation":"2172:1:75","nodeType":"VariableDeclaration","scope":47721,"src":"2164:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47699,"name":"uint256","nodeType":"ElementaryTypeName","src":"2164:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47701,"nodeType":"VariableDeclarationStatement","src":"2164:9:75"},"nodeType":"ForStatement","src":"2159:155:75"},{"expression":{"id":47732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":47722,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47670,"src":"2324:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2334:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2324:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47730,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47724,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47670,"src":"2340:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2350:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2340:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2356:6:75","memberName":"length","nodeType":"MemberAccess","src":"2340:22:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2365:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2340:26:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2324:43:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47731,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47666,"src":"2370:5:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2324:51:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47733,"nodeType":"ExpressionStatement","src":"2324:51:75"}]},"functionSelector":"aa5106cb","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetId","nameLocation":"1890:14:75","parameters":{"id":47667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47664,"mutability":"mutable","name":"subnet","nameLocation":"1923:6:75","nodeType":"VariableDeclaration","scope":47735,"src":"1905:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47663,"nodeType":"UserDefinedTypeName","pathNode":{"id":47662,"name":"SubnetID","nameLocations":["1905:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1905:8:75"},"referencedDeclaration":50077,"src":"1905:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47666,"mutability":"mutable","name":"actor","nameLocation":"1939:5:75","nodeType":"VariableDeclaration","scope":47735,"src":"1931:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47665,"name":"address","nodeType":"ElementaryTypeName","src":"1931:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1904:41:75"},"returnParameters":{"id":47671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47670,"mutability":"mutable","name":"newSubnet","nameLocation":"1983:9:75","nodeType":"VariableDeclaration","scope":47735,"src":"1967:25:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47669,"nodeType":"UserDefinedTypeName","pathNode":{"id":47668,"name":"SubnetID","nameLocations":["1967:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1967:8:75"},"referencedDeclaration":50077,"src":"1967:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1966:27:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47765,"nodeType":"FunctionDefinition","src":"2388:217:75","nodes":[],"body":{"id":47764,"nodeType":"Block","src":"2462:143:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47743,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47738,"src":"2476:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2483:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2476:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2489:6:75","memberName":"length","nodeType":"MemberAccess","src":"2476:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2499:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2476:24:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47754,"nodeType":"IfStatement","src":"2472:72:75","trueBody":{"id":47753,"nodeType":"Block","src":"2502:42:75","statements":[{"expression":{"arguments":[{"hexValue":"30","id":47750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2531:1:75","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":47749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2523:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47748,"name":"address","nodeType":"ElementaryTypeName","src":"2523:7:75","typeDescriptions":{}}},"id":47751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2523:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47742,"id":47752,"nodeType":"Return","src":"2516:17:75"}]}},{"expression":{"baseExpression":{"expression":{"id":47755,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47738,"src":"2561:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2568:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2561:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47762,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47757,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47738,"src":"2574:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2581:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2574:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2587:6:75","memberName":"length","nodeType":"MemberAccess","src":"2574:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2596:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2574:23:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2561:37:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47742,"id":47763,"nodeType":"Return","src":"2554:44:75"}]},"functionSelector":"59feac42","implemented":true,"kind":"function","modifiers":[],"name":"getActor","nameLocation":"2397:8:75","parameters":{"id":47739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47738,"mutability":"mutable","name":"subnet","nameLocation":"2424:6:75","nodeType":"VariableDeclaration","scope":47765,"src":"2406:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47737,"nodeType":"UserDefinedTypeName","pathNode":{"id":47736,"name":"SubnetID","nameLocations":["2406:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2406:8:75"},"referencedDeclaration":50077,"src":"2406:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2405:26:75"},"returnParameters":{"id":47742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47765,"src":"2453:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47740,"name":"address","nodeType":"ElementaryTypeName","src":"2453:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2452:9:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47785,"nodeType":"FunctionDefinition","src":"2611:189:75","nodes":[],"body":{"id":47784,"nodeType":"Block","src":"2680:120:75","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47773,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47768,"src":"2749:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2756:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2749:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2762:6:75","memberName":"length","nodeType":"MemberAccess","src":"2749:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2772:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2749:24:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47778,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47768,"src":"2777:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2784:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2777:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":47780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2792:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2777:16:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2749:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":47772,"id":47783,"nodeType":"Return","src":"2742:51:75"}]},"functionSelector":"862a88f8","implemented":true,"kind":"function","modifiers":[],"name":"isRoot","nameLocation":"2620:6:75","parameters":{"id":47769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47768,"mutability":"mutable","name":"subnet","nameLocation":"2645:6:75","nodeType":"VariableDeclaration","scope":47785,"src":"2627:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47767,"nodeType":"UserDefinedTypeName","pathNode":{"id":47766,"name":"SubnetID","nameLocations":["2627:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2627:8:75"},"referencedDeclaration":50077,"src":"2627:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2626:26:75"},"returnParameters":{"id":47772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47785,"src":"2674:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47770,"name":"bool","nodeType":"ElementaryTypeName","src":"2674:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2673:6:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47825,"nodeType":"FunctionDefinition","src":"2806:332:75","nodes":[],"body":{"id":47824,"nodeType":"Block","src":"2903:235:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47796,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47788,"src":"2917:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2925:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2917:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47798,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"2933:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2941:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2933:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2917:28:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47804,"nodeType":"IfStatement","src":"2913:71:75","trueBody":{"id":47803,"nodeType":"Block","src":"2947:37:75","statements":[{"expression":{"hexValue":"66616c7365","id":47801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2968:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":47795,"id":47802,"nodeType":"Return","src":"2961:12:75"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47805,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47788,"src":"2997:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3005:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2997:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3011:6:75","memberName":"length","nodeType":"MemberAccess","src":"2997:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":47808,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"3021:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3029:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"3021:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3035:6:75","memberName":"length","nodeType":"MemberAccess","src":"3021:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2997:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47815,"nodeType":"IfStatement","src":"2993:87:75","trueBody":{"id":47814,"nodeType":"Block","src":"3043:37:75","statements":[{"expression":{"hexValue":"66616c7365","id":47812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3064:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":47795,"id":47813,"nodeType":"Return","src":"3057:12:75"}]}},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":47822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":47817,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47788,"src":"3104:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"id":47816,"name":"toHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47661,"src":"3097:6:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SubnetID_$50077_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct SubnetID calldata) pure returns (bytes32)"}},"id":47818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3097:15:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":47820,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"3123:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"id":47819,"name":"toHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47661,"src":"3116:6:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SubnetID_$50077_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct SubnetID calldata) pure returns (bytes32)"}},"id":47821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3116:15:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3097:34:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":47795,"id":47823,"nodeType":"Return","src":"3090:41:75"}]},"functionSelector":"c836244d","implemented":true,"kind":"function","modifiers":[],"name":"equals","nameLocation":"2815:6:75","parameters":{"id":47792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47788,"mutability":"mutable","name":"subnet1","nameLocation":"2840:7:75","nodeType":"VariableDeclaration","scope":47825,"src":"2822:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47787,"nodeType":"UserDefinedTypeName","pathNode":{"id":47786,"name":"SubnetID","nameLocations":["2822:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2822:8:75"},"referencedDeclaration":50077,"src":"2822:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47791,"mutability":"mutable","name":"subnet2","nameLocation":"2867:7:75","nodeType":"VariableDeclaration","scope":47825,"src":"2849:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47790,"nodeType":"UserDefinedTypeName","pathNode":{"id":47789,"name":"SubnetID","nameLocations":["2849:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2849:8:75"},"referencedDeclaration":50077,"src":"2849:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2821:54:75"},"returnParameters":{"id":47795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47794,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47825,"src":"2897:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47793,"name":"bool","nodeType":"ElementaryTypeName","src":"2897:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2896:6:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47946,"nodeType":"FunctionDefinition","src":"3239:921:75","nodes":[],"body":{"id":47945,"nodeType":"Block","src":"3353:807:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47838,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"3367:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3375:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"3367:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47840,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47832,"src":"3383:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3391:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"3383:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3367:28:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47853,"nodeType":"IfStatement","src":"3363:110:75","trueBody":{"id":47852,"nodeType":"Block","src":"3397:76:75","statements":[{"expression":{"arguments":[{"hexValue":"30","id":47844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3434:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":47848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3458:1:75","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":47847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3444:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47845,"name":"address","nodeType":"ElementaryTypeName","src":"3448:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47846,"nodeType":"ArrayTypeName","src":"3448:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3444:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47843,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"3418:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3428:4:75","3437:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"3418:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47837,"id":47851,"nodeType":"Return","src":"3411:51:75"}]}},{"assignments":[47855],"declarations":[{"constant":false,"id":47855,"mutability":"mutable","name":"i","nameLocation":"3491:1:75","nodeType":"VariableDeclaration","scope":47945,"src":"3483:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47854,"name":"uint256","nodeType":"ElementaryTypeName","src":"3483:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47856,"nodeType":"VariableDeclarationStatement","src":"3483:9:75"},{"assignments":[47858],"declarations":[{"constant":false,"id":47858,"mutability":"mutable","name":"subnet1routeLength","nameLocation":"3510:18:75","nodeType":"VariableDeclaration","scope":47945,"src":"3502:26:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47857,"name":"uint256","nodeType":"ElementaryTypeName","src":"3502:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47862,"initialValue":{"expression":{"expression":{"id":47859,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"3531:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3539:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"3531:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3545:6:75","memberName":"length","nodeType":"MemberAccess","src":"3531:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3502:49:75"},{"assignments":[47864],"declarations":[{"constant":false,"id":47864,"mutability":"mutable","name":"subnet2routeLength","nameLocation":"3569:18:75","nodeType":"VariableDeclaration","scope":47945,"src":"3561:26:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47863,"name":"uint256","nodeType":"ElementaryTypeName","src":"3561:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47868,"initialValue":{"expression":{"expression":{"id":47865,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47832,"src":"3590:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3598:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"3590:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3604:6:75","memberName":"length","nodeType":"MemberAccess","src":"3590:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3561:49:75"},{"body":{"id":47890,"nodeType":"Block","src":"3717:70:75","statements":[{"id":47889,"nodeType":"UncheckedBlock","src":"3731:46:75","statements":[{"expression":{"id":47887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3759:3:75","subExpression":{"id":47886,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3761:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47888,"nodeType":"ExpressionStatement","src":"3759:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47869,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3627:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47870,"name":"subnet1routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47858,"src":"3631:18:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3627:22:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47872,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3653:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47873,"name":"subnet2routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47864,"src":"3657:18:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3653:22:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3627:48:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":47876,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"3679:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3687:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"3679:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47879,"indexExpression":{"id":47878,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3693:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3679:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"expression":{"id":47880,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47832,"src":"3699:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3707:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"3699:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47883,"indexExpression":{"id":47882,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3713:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3699:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3679:36:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3627:88:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47891,"nodeType":"WhileStatement","src":"3620:167:75"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47892,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3800:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3800:6:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47906,"nodeType":"IfStatement","src":"3796:99:75","trueBody":{"id":47905,"nodeType":"Block","src":"3808:87:75","statements":[{"expression":{"arguments":[{"expression":{"id":47896,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"3845:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3853:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"3845:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":47901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3880:1:75","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":47900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3866:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47898,"name":"address","nodeType":"ElementaryTypeName","src":"3870:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47899,"nodeType":"ArrayTypeName","src":"3870:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3866:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47895,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"3829:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3839:4:75","3859:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"3829:55:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47837,"id":47904,"nodeType":"Return","src":"3822:62:75"}]}},{"assignments":[47911],"declarations":[{"constant":false,"id":47911,"mutability":"mutable","name":"route","nameLocation":"3922:5:75","nodeType":"VariableDeclaration","scope":47945,"src":"3905:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47909,"name":"address","nodeType":"ElementaryTypeName","src":"3905:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47910,"nodeType":"ArrayTypeName","src":"3905:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":47917,"initialValue":{"arguments":[{"id":47915,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3944:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3930:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47912,"name":"address","nodeType":"ElementaryTypeName","src":"3934:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47913,"nodeType":"ArrayTypeName","src":"3934:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3930:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3905:41:75"},{"body":{"id":47937,"nodeType":"Block","src":"3981:111:75","statements":[{"expression":{"id":47931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47924,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47911,"src":"3995:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47926,"indexExpression":{"id":47925,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47919,"src":"4001:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3995:8:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47927,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"4006:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4014:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4006:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47930,"indexExpression":{"id":47929,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47919,"src":"4020:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4006:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3995:27:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47932,"nodeType":"ExpressionStatement","src":"3995:27:75"},{"id":47936,"nodeType":"UncheckedBlock","src":"4036:46:75","statements":[{"expression":{"id":47934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4064:3:75","subExpression":{"id":47933,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47919,"src":"4066:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47935,"nodeType":"ExpressionStatement","src":"4064:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47921,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47919,"src":"3972:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47922,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3976:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3972:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47938,"initializationExpression":{"assignments":[47919],"declarations":[{"constant":false,"id":47919,"mutability":"mutable","name":"j","nameLocation":"3969:1:75","nodeType":"VariableDeclaration","scope":47938,"src":"3961:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47918,"name":"uint256","nodeType":"ElementaryTypeName","src":"3961:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47920,"nodeType":"VariableDeclarationStatement","src":"3961:9:75"},"nodeType":"ForStatement","src":"3956:136:75"},{"expression":{"arguments":[{"expression":{"id":47940,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"4125:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4133:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"4125:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":47942,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47911,"src":"4146:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47939,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"4109:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4119:4:75","4139:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"4109:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47837,"id":47944,"nodeType":"Return","src":"4102:51:75"}]},"documentation":{"id":47826,"nodeType":"StructuredDocumentation","src":"3144:90:75","text":"@notice Computes the common parent of the current subnet and the one given as argument"},"functionSelector":"39991266","implemented":true,"kind":"function","modifiers":[],"name":"commonParent","nameLocation":"3248:12:75","parameters":{"id":47833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47829,"mutability":"mutable","name":"subnet1","nameLocation":"3279:7:75","nodeType":"VariableDeclaration","scope":47946,"src":"3261:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47828,"nodeType":"UserDefinedTypeName","pathNode":{"id":47827,"name":"SubnetID","nameLocations":["3261:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"3261:8:75"},"referencedDeclaration":50077,"src":"3261:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47832,"mutability":"mutable","name":"subnet2","nameLocation":"3306:7:75","nodeType":"VariableDeclaration","scope":47946,"src":"3288:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47831,"nodeType":"UserDefinedTypeName","pathNode":{"id":47830,"name":"SubnetID","nameLocations":["3288:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"3288:8:75"},"referencedDeclaration":50077,"src":"3288:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3260:54:75"},"returnParameters":{"id":47837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47946,"src":"3336:15:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47835,"nodeType":"UserDefinedTypeName","pathNode":{"id":47834,"name":"SubnetID","nameLocations":["3336:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"3336:8:75"},"referencedDeclaration":50077,"src":"3336:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3335:17:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":48051,"nodeType":"FunctionDefinition","src":"4517:818:75","nodes":[],"body":{"id":48050,"nodeType":"Block","src":"4623:712:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47959,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47950,"src":"4637:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4645:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"4637:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47961,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47953,"src":"4653:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4661:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"4653:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4637:28:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47968,"nodeType":"IfStatement","src":"4633:88:75","trueBody":{"id":47967,"nodeType":"Block","src":"4667:54:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47964,"name":"DifferentRootNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47479,"src":"4688:20:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4688:22:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47966,"nodeType":"RevertStatement","src":"4681:29:75"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47969,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47950,"src":"4734:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4742:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4734:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4748:6:75","memberName":"length","nodeType":"MemberAccess","src":"4734:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"expression":{"id":47972,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47953,"src":"4758:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4766:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4758:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4772:6:75","memberName":"length","nodeType":"MemberAccess","src":"4758:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4734:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47980,"nodeType":"IfStatement","src":"4730:96:75","trueBody":{"id":47979,"nodeType":"Block","src":"4780:46:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47976,"name":"InvalidRoute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47481,"src":"4801:12:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4801:14:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47978,"nodeType":"RevertStatement","src":"4794:21:75"}]}},{"assignments":[47982],"declarations":[{"constant":false,"id":47982,"mutability":"mutable","name":"i","nameLocation":"4844:1:75","nodeType":"VariableDeclaration","scope":48050,"src":"4836:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47981,"name":"uint256","nodeType":"ElementaryTypeName","src":"4836:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47983,"nodeType":"VariableDeclarationStatement","src":"4836:9:75"},{"assignments":[47985],"declarations":[{"constant":false,"id":47985,"mutability":"mutable","name":"subnet2routeLength","nameLocation":"4863:18:75","nodeType":"VariableDeclaration","scope":48050,"src":"4855:26:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47984,"name":"uint256","nodeType":"ElementaryTypeName","src":"4855:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47989,"initialValue":{"expression":{"expression":{"id":47986,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47953,"src":"4884:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4892:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4884:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4898:6:75","memberName":"length","nodeType":"MemberAccess","src":"4884:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4855:49:75"},{"body":{"id":48007,"nodeType":"Block","src":"4985:70:75","statements":[{"id":48006,"nodeType":"UncheckedBlock","src":"4999:46:75","statements":[{"expression":{"id":48004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5027:3:75","subExpression":{"id":48003,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"5029:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48005,"nodeType":"ExpressionStatement","src":"5027:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47990,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"4921:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47991,"name":"subnet2routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47985,"src":"4925:18:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4921:22:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":47993,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47950,"src":"4947:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4955:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4947:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47996,"indexExpression":{"id":47995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"4961:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4947:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"expression":{"id":47997,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47953,"src":"4967:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4975:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4967:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":48000,"indexExpression":{"id":47999,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"4981:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4967:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4947:36:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4921:62:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48008,"nodeType":"WhileStatement","src":"4914:141:75"},{"expression":{"id":48010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5065:3:75","subExpression":{"id":48009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"5067:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48011,"nodeType":"ExpressionStatement","src":"5065:3:75"},{"assignments":[48016],"declarations":[{"constant":false,"id":48016,"mutability":"mutable","name":"route","nameLocation":"5096:5:75","nodeType":"VariableDeclaration","scope":48050,"src":"5079:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":48014,"name":"address","nodeType":"ElementaryTypeName","src":"5079:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48015,"nodeType":"ArrayTypeName","src":"5079:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":48022,"initialValue":{"arguments":[{"id":48020,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"5118:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5104:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":48017,"name":"address","nodeType":"ElementaryTypeName","src":"5108:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48018,"nodeType":"ArrayTypeName","src":"5108:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":48021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5104:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5079:41:75"},{"body":{"id":48042,"nodeType":"Block","src":"5156:111:75","statements":[{"expression":{"id":48036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48029,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48016,"src":"5170:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":48031,"indexExpression":{"id":48030,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48024,"src":"5176:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5170:8:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":48032,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47950,"src":"5181:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":48033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5189:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"5181:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":48035,"indexExpression":{"id":48034,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48024,"src":"5195:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5181:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5170:27:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48037,"nodeType":"ExpressionStatement","src":"5170:27:75"},{"id":48041,"nodeType":"UncheckedBlock","src":"5211:46:75","statements":[{"expression":{"id":48039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5239:3:75","subExpression":{"id":48038,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48024,"src":"5241:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48040,"nodeType":"ExpressionStatement","src":"5239:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48026,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48024,"src":"5147:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":48027,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"5151:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5147:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48043,"initializationExpression":{"assignments":[48024],"declarations":[{"constant":false,"id":48024,"mutability":"mutable","name":"j","nameLocation":"5144:1:75","nodeType":"VariableDeclaration","scope":48043,"src":"5136:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48023,"name":"uint256","nodeType":"ElementaryTypeName","src":"5136:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48025,"nodeType":"VariableDeclarationStatement","src":"5136:9:75"},"nodeType":"ForStatement","src":"5131:136:75"},{"expression":{"arguments":[{"expression":{"id":48045,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47950,"src":"5300:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":48046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5308:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"5300:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":48047,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48016,"src":"5321:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":48044,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"5284:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":48048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5294:4:75","5314:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"5284:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47958,"id":48049,"nodeType":"Return","src":"5277:51:75"}]},"documentation":{"id":47947,"nodeType":"StructuredDocumentation","src":"4166:346:75","text":"@notice In the path determined by the current subnet id, it moves\n down in the path from the subnet id given as argument.\n subnet2 needs to be a prefix of the subnet1.\n If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c.\n @dev Revert will be triggered if subnet2 is an invalid input."},"functionSelector":"089032d5","implemented":true,"kind":"function","modifiers":[],"name":"down","nameLocation":"4526:4:75","parameters":{"id":47954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47950,"mutability":"mutable","name":"subnet1","nameLocation":"4549:7:75","nodeType":"VariableDeclaration","scope":48051,"src":"4531:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47949,"nodeType":"UserDefinedTypeName","pathNode":{"id":47948,"name":"SubnetID","nameLocations":["4531:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4531:8:75"},"referencedDeclaration":50077,"src":"4531:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47953,"mutability":"mutable","name":"subnet2","nameLocation":"4576:7:75","nodeType":"VariableDeclaration","scope":48051,"src":"4558:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47952,"nodeType":"UserDefinedTypeName","pathNode":{"id":47951,"name":"SubnetID","nameLocations":["4558:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4558:8:75"},"referencedDeclaration":50077,"src":"4558:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4530:54:75"},"returnParameters":{"id":47958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48051,"src":"4606:15:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47956,"nodeType":"UserDefinedTypeName","pathNode":{"id":47955,"name":"SubnetID","nameLocations":["4606:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4606:8:75"},"referencedDeclaration":50077,"src":"4606:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4605:17:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":48071,"nodeType":"FunctionDefinition","src":"5341:144:75","nodes":[],"body":{"id":48070,"nodeType":"Block","src":"5413:72:75","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":48059,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48054,"src":"5430:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":48060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5439:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"5430:14:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":48061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5445:6:75","memberName":"length","nodeType":"MemberAccess","src":"5430:21:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5455:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5430:26:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":48067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48064,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48054,"src":"5460:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":48065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5469:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"5460:13:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5477:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5460:18:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5430:48:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48058,"id":48069,"nodeType":"Return","src":"5423:55:75"}]},"functionSelector":"6099e898","implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"5350:7:75","parameters":{"id":48055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48054,"mutability":"mutable","name":"subnetId","nameLocation":"5376:8:75","nodeType":"VariableDeclaration","scope":48071,"src":"5358:26:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":48053,"nodeType":"UserDefinedTypeName","pathNode":{"id":48052,"name":"SubnetID","nameLocations":["5358:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"5358:8:75"},"referencedDeclaration":50077,"src":"5358:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"5357:28:75"},"returnParameters":{"id":48058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48071,"src":"5407:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48056,"name":"bool","nodeType":"ElementaryTypeName","src":"5407:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5406:6:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetIDHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":47468,"nodeType":"StructuredDocumentation","src":"186:86:75","text":"@title Helper library for manipulating SubnetID struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[48072],"name":"SubnetIDHelper","nameLocation":"280:14:75","scope":48073,"usedErrors":[32878,47473,47475,47477,47479,47481]}],"license":"MIT OR Apache-2.0"},"id":75} \ No newline at end of file +{"abi":[{"type":"function","name":"commonParent","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"createSubnetId","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"actor","type":"address","internalType":"address"}],"outputs":[{"name":"newSubnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"down","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"equals","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"getActor","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getAddress","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getParentSubnet","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"isEmpty","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"isRoot","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"error","name":"DifferentRootNetwork","inputs":[]},{"type":"error","name":"EmptySubnet","inputs":[]},{"type":"error","name":"InvalidRoute","inputs":[]},{"type":"error","name":"NoAddressForRoot","inputs":[]},{"type":"error","name":"NoParentForSubnet","inputs":[]},{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080806040523461001a57610f269081610020823930815050f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063089032d514610751578063118e84ee146106a4578063138e13fc1461064f578063399912661461062e57806359feac42146106095780636099e898146105c3578063862a88f81461057b57806390ba52cf14610560578063aa5106cb14610456578063c836244d146104385763e4ebe92c1461009557600080fd5b61009e36610ac6565b6001600160401b036100af82610b7a565b166000817a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561042a575b506d04ee2d6d415b85acef81000000008082101561041d575b50662386f26fc1000080821015610410575b506305f5e10080821015610403575b50612710808210156103f6575b5060648110156103e8575b600a809110156103de575b600182019061015c61014683610be7565b9261015460405194856109a1565b808452610be7565b938160216020850195601f198098013688378501015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049081156101a0578290610172565b50505060226101da916101ca936040519485926117b960f11b602085015251809285850190610af7565b81010360028101845201826109a1565b916101e86020820182610b8e565b90506000915b81831061022657601f6040868682519384926020845261021d8151809281602088015260208888019101610af7565b01168101030190f35b909193610260602160405183610246829551809260208086019101610af7565b8101602f60f81b60208201520360018101845201826109a1565b846102886102836102746020860186610b8e565b6001600160a01b039491610bc3565b610bd3565b169081604051928360608101106001600160401b036060860111176103c85760608401604052602a845260403660208601378351156103b257603060208501538351600110156103b2576078602185015360295b60018111610353575061033457509061032b6020600193604051938161030b8693518092868087019101610af7565b820161031f82518093868085019101610af7565b010380845201826109a1565b940191906101ee565b6044906040519063e22e27eb60e01b8252600482015260146024820152fd5b906010600f821610156103b25784518210156103b2576f181899199a1a9b1b9c1cb0b131b232b360811b600f82161a8583016020015360041c90801561039c57600019016102dc565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9060010190610135565b60646002910491019061012a565b600491049101903861011f565b6008910491019038610112565b6010910491019038610103565b60209104910190386100f1565b9150508104604090386100d8565b602061044c610446366108bf565b90610d0d565b6040519015158152f35b60031960403682011261055b57600435906001600160401b039081831161055b5760408360040191843603011261055b576001600160a01b03602435818116949085900361055b576024906104a9610b2e565b946104b385610b7a565b16855201916104c28382610b8e565b92905060019283810180911161039c576104db90610b48565b93602086019485526104ed8184610b8e565b93905060005b84811061052c578888885191825192600019840193841161039c576105289361051b91610b1a565b526040519182918261090c565b0390f35b80610545610283889361053f8787610b8e565b90610bc3565b85610551838b51610b1a565b91169052016104f3565b600080fd5b602061057361056e36610ac6565b610c02565b604051908152f35b602061058636610ac6565b61059282820182610b8e565b90501590816105a7575b506040519015158152f35b6001600160401b0391506105ba90610b7a565b1615158261059c565b60206105ce36610ac6565b6105da82820182610b8e565b90501590816105ee57506040519015158152f35b6001600160401b03915061060190610b7a565b16158261059c565b602061061c61061736610ac6565b610cbe565b6040516001600160a01b039091168152f35b61052861064361063d366108bf565b90610d6a565b6040519182918261090c565b602061065a36610a01565b018051519081156106925751600019820191821161039c576020916001600160a01b03916106889190610b1a565b5116604051908152f35b60405163142b83b360e31b8152600490fd5b6106ad36610a01565b6106b5610b2e565b5060208101908151511561073f57815151600019810190811161039c576106db90610b48565b90815160005b81811061071857610528846001600160401b0385511690604051916107058361096b565b825260208201526040519182918261090c565b600190818060a01b0361072c828851610b1a565b51166107388287610b1a565b52016106e1565b604051632f10c6c160e01b8152600490fd5b61075a366108bf565b610762610b2e565b5061076c82610b7a565b6001600160401b0390818061078085610b7a565b169116036108ad57602083016107968185610b8e565b6020850191506107a68286610b8e565b919050111561089b576000936107bc8282610b8e565b9590505b8581108061085c575b156107d6576001016107c0565b84848892600019811461039c5760018091016107f181610b48565b9260005b82811061082c57610528868661080a8a610b7a565b91604051926108188461096b565b16825260208201526040519182918261090c565b8061083f610283869361053f868c610b8e565b6108498288610b1a565b6001600160a01b039091169052016107f5565b5061086e6102838261053f878b610b8e565b6108788484610b8e565b6001600160a01b0391829161089291610283918791610bc3565b169116146107c9565b60405163427282e960e11b8152600490fd5b604051637185935560e01b8152600490fd5b600319919060408382011261055b576001600160401b039060043582811161055b57604085828403011261055b576004019360243592831161055b578260409203011261055b5760040190565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061094e575050505090565b83516001600160a01b031685529381019392810192600101610940565b604081019081106001600160401b038211176103c857604052565b602081019081106001600160401b038211176103c857604052565b90601f801991011681019081106001600160401b038211176103c857604052565b35906001600160401b038216820361055b57565b6001600160401b0381116103c85760051b60200190565b35906001600160a01b038216820361055b57565b600319906020828201811361055b57600435926001600160401b039081851161055b57604090858503011261055b5760405193610a3d8561096b565b610a49816004016109c2565b8552602481013591821161055b5701918060238401121561055b576004830135610a72816109d6565b93610a8060405195866109a1565b81855260248486019260051b82010192831161055b576024849101915b838310610aae575050505082015290565b8190610ab9846109ed565b8152019101908390610a9d565b6003199060208183011261055b57600435916001600160401b03831161055b578260409203011261055b5760040190565b60005b838110610b0a5750506000910152565b8181015183820152602001610afa565b80518210156103b25760209160051b010190565b60405190610b3b8261096b565b6060602083600081520152565b90610b52826109d6565b610b5f60405191826109a1565b8281528092610b70601f19916109d6565b0190602036910137565b356001600160401b038116810361055b5790565b903590601e198136030182121561055b57018035906001600160401b03821161055b57602001918160051b3603831361055b57565b91908110156103b25760051b0190565b356001600160a01b038116810361055b5790565b6001600160401b0381116103c857601f01601f191660200190565b6040516020808201818152926001600160401b0391608084019183610c26826109c2565b16604086015281810135601e198236030181121561055b570191818335930193831161055b578260051b3603841361055b5760406060860152829052839160a083019160005b828110610c8f57505050610c89925003601f1981018352826109a1565b51902090565b91935091600190839081906001600160a01b03610cab896109ed565b1681520195019101918593919492610c6c565b6020810190610ccd8282610b8e565b905015610d0657610ce9610ce18383610b8e565b939092610b8e565b60001981019150811161039c57610d039261028392610bc3565b90565b5050600090565b610d1681610b7a565b6001600160401b0380610d2885610b7a565b16911603610d0657610d3d6020820182610b8e565b9050610d4c6020840184610b8e565b91905003610d0657610d60610d6691610c02565b91610c02565b1490565b90610d73610b2e565b50610d7d82610b7a565b906001600160401b03918280610d9284610b7a565b16911603610ec4579160208101906000610dac8383610b8e565b95905060208101610dbd8183610b8e565b9390505b87811080610ebb575b80610e7c575b15610ddd57600101610dc1565b93949596505050508015610e5257610df481610b48565b9260005b828110610e2457505050610e0b90610b7a565b9160405192610e198461096b565b168252602082015290565b80610e3861028360019361053f8689610b8e565b610e428288610b1a565b90838060a01b0316905201610df8565b50610e5d9150610b7a565b9060405190610e6b82610986565b6000825260405192610e198461096b565b50610e8e6102838261053f8989610b8e565b610e988385610b8e565b6001600160a01b03918291610eb291610283918791610bc3565b16911614610dd0565b50838110610dca565b505050604051610ed381610986565b6000815260405190610ee48261096b565b6000825260208201529056fea26469706673582212209b8462773fb1fc3133a5c6c3b343bb709dea91dbf0ebe92d84e41ccec8aceed964736f6c63430008130033","sourceMap":"272:5215:75:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063089032d514610751578063118e84ee146106a4578063138e13fc1461064f578063399912661461062e57806359feac42146106095780636099e898146105c3578063862a88f81461057b57806390ba52cf14610560578063aa5106cb14610456578063c836244d146104385763e4ebe92c1461009557600080fd5b61009e36610ac6565b6001600160401b036100af82610b7a565b166000817a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561042a575b506d04ee2d6d415b85acef81000000008082101561041d575b50662386f26fc1000080821015610410575b506305f5e10080821015610403575b50612710808210156103f6575b5060648110156103e8575b600a809110156103de575b600182019061015c61014683610be7565b9261015460405194856109a1565b808452610be7565b938160216020850195601f198098013688378501015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049081156101a0578290610172565b50505060226101da916101ca936040519485926117b960f11b602085015251809285850190610af7565b81010360028101845201826109a1565b916101e86020820182610b8e565b90506000915b81831061022657601f6040868682519384926020845261021d8151809281602088015260208888019101610af7565b01168101030190f35b909193610260602160405183610246829551809260208086019101610af7565b8101602f60f81b60208201520360018101845201826109a1565b846102886102836102746020860186610b8e565b6001600160a01b039491610bc3565b610bd3565b169081604051928360608101106001600160401b036060860111176103c85760608401604052602a845260403660208601378351156103b257603060208501538351600110156103b2576078602185015360295b60018111610353575061033457509061032b6020600193604051938161030b8693518092868087019101610af7565b820161031f82518093868085019101610af7565b010380845201826109a1565b940191906101ee565b6044906040519063e22e27eb60e01b8252600482015260146024820152fd5b906010600f821610156103b25784518210156103b2576f181899199a1a9b1b9c1cb0b131b232b360811b600f82161a8583016020015360041c90801561039c57600019016102dc565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9060010190610135565b60646002910491019061012a565b600491049101903861011f565b6008910491019038610112565b6010910491019038610103565b60209104910190386100f1565b9150508104604090386100d8565b602061044c610446366108bf565b90610d0d565b6040519015158152f35b60031960403682011261055b57600435906001600160401b039081831161055b5760408360040191843603011261055b576001600160a01b03602435818116949085900361055b576024906104a9610b2e565b946104b385610b7a565b16855201916104c28382610b8e565b92905060019283810180911161039c576104db90610b48565b93602086019485526104ed8184610b8e565b93905060005b84811061052c578888885191825192600019840193841161039c576105289361051b91610b1a565b526040519182918261090c565b0390f35b80610545610283889361053f8787610b8e565b90610bc3565b85610551838b51610b1a565b91169052016104f3565b600080fd5b602061057361056e36610ac6565b610c02565b604051908152f35b602061058636610ac6565b61059282820182610b8e565b90501590816105a7575b506040519015158152f35b6001600160401b0391506105ba90610b7a565b1615158261059c565b60206105ce36610ac6565b6105da82820182610b8e565b90501590816105ee57506040519015158152f35b6001600160401b03915061060190610b7a565b16158261059c565b602061061c61061736610ac6565b610cbe565b6040516001600160a01b039091168152f35b61052861064361063d366108bf565b90610d6a565b6040519182918261090c565b602061065a36610a01565b018051519081156106925751600019820191821161039c576020916001600160a01b03916106889190610b1a565b5116604051908152f35b60405163142b83b360e31b8152600490fd5b6106ad36610a01565b6106b5610b2e565b5060208101908151511561073f57815151600019810190811161039c576106db90610b48565b90815160005b81811061071857610528846001600160401b0385511690604051916107058361096b565b825260208201526040519182918261090c565b600190818060a01b0361072c828851610b1a565b51166107388287610b1a565b52016106e1565b604051632f10c6c160e01b8152600490fd5b61075a366108bf565b610762610b2e565b5061076c82610b7a565b6001600160401b0390818061078085610b7a565b169116036108ad57602083016107968185610b8e565b6020850191506107a68286610b8e565b919050111561089b576000936107bc8282610b8e565b9590505b8581108061085c575b156107d6576001016107c0565b84848892600019811461039c5760018091016107f181610b48565b9260005b82811061082c57610528868661080a8a610b7a565b91604051926108188461096b565b16825260208201526040519182918261090c565b8061083f610283869361053f868c610b8e565b6108498288610b1a565b6001600160a01b039091169052016107f5565b5061086e6102838261053f878b610b8e565b6108788484610b8e565b6001600160a01b0391829161089291610283918791610bc3565b169116146107c9565b60405163427282e960e11b8152600490fd5b604051637185935560e01b8152600490fd5b600319919060408382011261055b576001600160401b039060043582811161055b57604085828403011261055b576004019360243592831161055b578260409203011261055b5760040190565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061094e575050505090565b83516001600160a01b031685529381019392810192600101610940565b604081019081106001600160401b038211176103c857604052565b602081019081106001600160401b038211176103c857604052565b90601f801991011681019081106001600160401b038211176103c857604052565b35906001600160401b038216820361055b57565b6001600160401b0381116103c85760051b60200190565b35906001600160a01b038216820361055b57565b600319906020828201811361055b57600435926001600160401b039081851161055b57604090858503011261055b5760405193610a3d8561096b565b610a49816004016109c2565b8552602481013591821161055b5701918060238401121561055b576004830135610a72816109d6565b93610a8060405195866109a1565b81855260248486019260051b82010192831161055b576024849101915b838310610aae575050505082015290565b8190610ab9846109ed565b8152019101908390610a9d565b6003199060208183011261055b57600435916001600160401b03831161055b578260409203011261055b5760040190565b60005b838110610b0a5750506000910152565b8181015183820152602001610afa565b80518210156103b25760209160051b010190565b60405190610b3b8261096b565b6060602083600081520152565b90610b52826109d6565b610b5f60405191826109a1565b8281528092610b70601f19916109d6565b0190602036910137565b356001600160401b038116810361055b5790565b903590601e198136030182121561055b57018035906001600160401b03821161055b57602001918160051b3603831361055b57565b91908110156103b25760051b0190565b356001600160a01b038116810361055b5790565b6001600160401b0381116103c857601f01601f191660200190565b6040516020808201818152926001600160401b0391608084019183610c26826109c2565b16604086015281810135601e198236030181121561055b570191818335930193831161055b578260051b3603841361055b5760406060860152829052839160a083019160005b828110610c8f57505050610c89925003601f1981018352826109a1565b51902090565b91935091600190839081906001600160a01b03610cab896109ed565b1681520195019101918593919492610c6c565b6020810190610ccd8282610b8e565b905015610d0657610ce9610ce18383610b8e565b939092610b8e565b60001981019150811161039c57610d039261028392610bc3565b90565b5050600090565b610d1681610b7a565b6001600160401b0380610d2885610b7a565b16911603610d0657610d3d6020820182610b8e565b9050610d4c6020840184610b8e565b91905003610d0657610d60610d6691610c02565b91610c02565b1490565b90610d73610b2e565b50610d7d82610b7a565b906001600160401b03918280610d9284610b7a565b16911603610ec4579160208101906000610dac8383610b8e565b95905060208101610dbd8183610b8e565b9390505b87811080610ebb575b80610e7c575b15610ddd57600101610dc1565b93949596505050508015610e5257610df481610b48565b9260005b828110610e2457505050610e0b90610b7a565b9160405192610e198461096b565b168252602082015290565b80610e3861028360019361053f8689610b8e565b610e428288610b1a565b90838060a01b0316905201610df8565b50610e5d9150610b7a565b9060405190610e6b82610986565b6000825260405192610e198461096b565b50610e8e6102838261053f8989610b8e565b610e988385610b8e565b6001600160a01b03918291610eb291610283918791610bc3565b16911614610dd0565b50838110610dca565b505050604051610ed381610986565b6000815260405190610ee48261096b565b6000825260208201529056fea26469706673582212209b8462773fb1fc3133a5c6c3b343bb709dea91dbf0ebe92d84e41ccec8aceed964736f6c63430008130033","sourceMap":"272:5215:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;581:12;272:5215;581:12;;;272:5215;;;;;;;;;;5430:14;272:5215;5430:14;;;2749:12;272:5215;2749:12;;;272:5215;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1413:11:75;;;:::i;:::-;272:5215;;;12559:8:34;12550:17;;;;12546:103;;272:5215:75;12675:8:34;;12666:17;;;;12662:103;;272:5215:75;12791:8:34;;12782:17;;;;12778:103;;272:5215:75;12907:7:34;;12898:16;;;;12894:100;;272:5215:75;13020:7:34;;13011:16;;;;13007:100;;272:5215:75;13124:16:34;13133:7;13124:16;;;13120:100;;272:5215:75;13246:7:34;13237:16;;;;13233:66;;272:5215:75;748:1:31;272:5215:75;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;890:76:31;272:5215:75;;;;;;;;;;;;890:76:31;;;979:280;-1:-1:-1;;272:5215:75;;-1:-1:-1;;;1084:93:31;;;;272:5215:75;1084:93:31;272:5215:75;1227:10:31;;;1223:21;;979:280;;;;1223:21;1239:5;;;272:5215:75;1373:53;1239:5:31;272:5215:75;1239:5:31;272:5215:75;;1373:53;;;-1:-1:-1;;;272:5215:75;1373:53;;272:5215;;;;;;;;;:::i;:::-;;;1373:53;;;;;;;;;:::i;:::-;1460:12;;272:5215;1460:12;;;;:::i;:::-;1494:9;;272:5215;1489:226;1505:16;;;;;;272:5215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1494:9;272:5215;;;;890:76:31;272:5215:75;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;272:5215:75;;;;;748:1:31;272:5215:75;;;;;;;:::i;:::-;1460:12;1615:15;;:12;272:5215;1460:12;;1615;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;1615:15;:::i;:::-;;:::i;:::-;272:5215;2072:26:31;;272:5215:75;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;2165:15:31;272:5215:75;;;2165:15:31;272:5215:75;;748:1:31;272:5215:75;;;;2190:15:31;890:76;272:5215:75;;2190:15:31;272:5215:75;2248:5:31;748:1;2248:5;;;;2366:15;2362:96;;272:5215:75;;;;748:1:31;272:5215:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;1494:9;;;;2362:96:31;279:18;272:5215:75;;;2404:43:31;;;;;;272:5215:75;2404:43:31;;272:5215:75;344:2:31;279:18;;;272:5215:75;2404:43:31;2255:3;2295:16;2286:26;2308:3;2295:16;;2286:26;;;;272:5215:75;;;;;;;-1:-1:-1;;;2308:3:31;2295:16;;2286:26;272:5215:75;;;;;2274:38:31;272:5215:75;279:18:31;2255:3;272:5215:75;;;;-1:-1:-1;;272:5215:75;2220:26:31;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13233:66:34;272:5215:75;13283:1:34;272:5215:75;13233:66:34;;;13120:100;13133:7;13204:1;272:5215:75;;;;13120:100:34;;;13007;272:5215:75;;;;;13007:100:34;;;;12894;12978:1;272:5215:75;;;;12894:100:34;;;;12778:103;12864:2;272:5215:75;;;;12778:103:34;;;;12662;12748:2;272:5215:75;;;;12662:103:34;;;;12546;272:5215:75;;;;;;12546:103:34;;;;272:5215:75;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;272:5215:75;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;:::i;:::-;2021:11;;;;:::i;:::-;272:5215;;;2074:12;;;;;;:::i;:::-;272:5215;;;;;;;;;;;;;2060:38;;;:::i;:::-;2042:15;272:5215;2042:15;;:56;;;2130:12;;;;:::i;:::-;2164:9;;;272:5215;2175:15;;;;;;2324;;;;272:5215;;;;;;;;;;;;;;2324:51;;;;:::i;:::-;272:5215;;;;;;;;:::i;:::-;;;;2164:9;2229:12;:15;;:12;;;;;;:::i;:::-;:15;;:::i;:::-;2208;:36;:15;;;:36;:::i;:::-;272:5215;;;;;2164:9;;272:5215;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;2749:12;272:5215;;;:::i;:::-;2749:12;;;;;;:::i;:::-;:24;;;:44;;;;272:5215;;;;;;;;;;2749:44;-1:-1:-1;;;;;2777:11:75;;;;;:::i;:::-;272:5215;2777:16;;2749:44;;;272:5215;5430:14;272:5215;;;:::i;:::-;5430:14;;;;;;:::i;:::-;:26;;;:48;;;;272:5215;;;;;;;;;5430:48;-1:-1:-1;;;;;5460:13:75;;;;;:::i;:::-;272:5215;5460:18;5430:48;;;272:5215;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;581:12;272:5215;;;:::i;:::-;581:12;;;272:5215;615:11;;;611:67;;694:12;-1:-1:-1;;272:5215:75;;;;;;;581:12;;-1:-1:-1;;;;;272:5215:75;694:24;;272:5215;694:24;:::i;:::-;272:5215;;;;;;;;611:67;272:5215;;-1:-1:-1;;;649:18:75;;272:5215;;649:18;272:5215;;;;:::i;:::-;;;:::i;:::-;;832:12;;;;;;272:5215;832:24;828:81;;958:12;;272:5215;-1:-1:-1;;272:5215:75;;;;;;;944:38;;;:::i;:::-;272:5215;;;;1052:15;;;;;;272:5215;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;:::i;:::-;;;832:12;1198:43;;272:5215;;;;;;;;:::i;1041:9::-;272:5215;;;;;;;1096:15;:12;;;:15;:::i;:::-;272:5215;;1085:26;;;;:::i;:::-;272:5215;;1041:9;;828:81;272:5215;;-1:-1:-1;;;879:19:75;;272:5215;;879:19;272:5215;;;;:::i;:::-;;;:::i;:::-;;4637:12;;;:::i;:::-;-1:-1:-1;;;;;4653:12:75;;;;;;:::i;:::-;272:5215;;;4637:28;4633:88;;4734:13;;;;;;;:::i;:::-;;4758;;;-1:-1:-1;4758:13:75;;;;:::i;:::-;4734:44;;;;;4730:96;;272:5215;4884:13;;;;;:::i;:::-;4914:141;;;;4921:22;;;:62;;;4914:141;4921:62;;;272:5215;;4914:141;;4921:62;;;;;272:5215;;;;;;;;;;5104:16;;;:::i;:::-;5136:9;272:5215;5147:5;;;;;;272:5215;5300:12;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;;;;4734:13;5284:44;;272:5215;;;;;;;;:::i;5136:9::-;5181:13;:16;;:13;;;;;;:::i;:16::-;5170:27;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;;;;;5136:9;;4921:62;4947:13;:16;;:13;;;;;:::i;:16::-;4967:13;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;;4967:16;;;;272:5215;;4967:16;:::i;:::-;272:5215;;;4947:36;4921:62;;4730:96;272:5215;;-1:-1:-1;;;4801:14:75;;272:5215;;4801:14;4633:88;272:5215;;-1:-1:-1;;;4688:22:75;;272:5215;;4688:22;272:5215;-1:-1:-1;;272:5215:75;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;:::o;:::-;-1:-1:-1;;;;;272:5215:75;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;:::o;:::-;-1:-1:-1;;272:5215:75;;;;;;-1:-1:-1;272:5215:75;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;272:5215:75;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;272:5215:75;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;272:5215:75;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;-1:-1:-1;;;;;272:5215:75;;;;;;-1:-1:-1;;272:5215:75;;;;:::o;1750:125::-;272:5215;;1849:18;;;;272:5215;;;1849:18;-1:-1:-1;;;;;272:5215:75;;;;;;;1849:18;272:5215;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;272:5215:75;;;;;;1849:18;;;;;;;272:5215;;1849:18;;;;;;:::i;:::-;272:5215;1839:29;;1750:125;:::o;272:5215::-;;;-1:-1:-1;272:5215:75;;;;;;;-1:-1:-1;;;;;272:5215:75;;;:::i;:::-;;;;;;;;;;;;;;;;;2388:217;2476:12;;;;;;;;:::i;:::-;:24;;;2472:72;;2574:12;2561;;;;:::i;:::-;2574;;;;:::i;:::-;-1:-1:-1;;272:5215:75;;;-1:-1:-1;272:5215:75;;;;2561:37;;;;;:::i;:::-;2388:217;:::o;2472:72::-;2516:17;;2499:1;2516:17;:::o;2806:332::-;2917:12;;;:::i;:::-;-1:-1:-1;;;;;2933:12:75;;;;:::i;:::-;272:5215;;;2917:28;2913:71;;2997:13;;;;;;:::i;:::-;3021;;;2997;3021;;;;:::i;:::-;2997:44;;;;2993:87;;3097:15;3116;3097;;:::i;:::-;3116;;:::i;:::-;3097:34;2806:332;:::o;3239:921::-;;272:5215;;:::i;:::-;;3367:12;;;:::i;:::-;272:5215;-1:-1:-1;;;;;3383:12:75;;;;;;:::i;:::-;272:5215;;;3367:28;3363:110;;3483:9;3531:13;;;;-1:-1:-1;3531:13:75;;3483:9;3531:13;:::i;:::-;3590;;;3531;3590;;;;;;:::i;:::-;3620:167;;;;3627:22;;;:48;;;3620:167;3627:88;;;3620:167;3627:88;;;272:5215;;3620:167;;3627:88;;;;;;;;;3800:6;;3796:99;;3930:16;;;:::i;:::-;3961:9;-1:-1:-1;3972:5:75;;;;;;4125:12;;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;;;;3531:13;4109:44;;272:5215;3239:921;:::o;3961:9::-;4006:13;:16;;272:5215;4006:13;;;;;:::i;:16::-;3995:27;;;;:::i;:::-;272:5215;;;;;;;;;;3961:9;;3796:99;3845:12;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;-1:-1:-1;272:5215:75;;;;;;;;:::i;3627:88::-;3679:13;:16;;:13;;;;;:::i;:16::-;3699:13;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;;3699:16;;;;272:5215;;3699:16;:::i;:::-;272:5215;;;3679:36;3627:88;;:48;3653:22;;;;3627:48;;3363:110;272:5215;;;;;;;;:::i;:::-;-1:-1:-1;272:5215:75;;;;;;;;:::i;:::-;-1:-1:-1;272:5215:75;;;3418:44;;272:5215;3411:51;:::o","linkReferences":{}},"methodIdentifiers":{"commonParent(SubnetID,SubnetID)":"39991266","createSubnetId(SubnetID,address)":"aa5106cb","down(SubnetID,SubnetID)":"089032d5","equals(SubnetID,SubnetID)":"c836244d","getActor(SubnetID)":"59feac42","getAddress(SubnetID)":"138e13fc","getParentSubnet(SubnetID)":"118e84ee","isEmpty(SubnetID)":"6099e898","isRoot(SubnetID)":"862a88f8","toHash(SubnetID)":"90ba52cf","toString(SubnetID)":"e4ebe92c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DifferentRootNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptySubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoute\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoAddressForRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoParentForSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"commonParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"createSubnetId\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"newSubnet\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"down\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"equals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getParentSubnet\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"isEmpty\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"isRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{\"down(SubnetID,SubnetID)\":{\"details\":\"Revert will be triggered if subnet2 is an invalid input.\"}},\"title\":\"Helper library for manipulating SubnetID struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"commonParent(SubnetID,SubnetID)\":{\"notice\":\"Computes the common parent of the current subnet and the one given as argument\"},\"down(SubnetID,SubnetID)\":{\"notice\":\"In the path determined by the current subnet id, it moves down in the path from the subnet id given as argument. subnet2 needs to be a prefix of the subnet1. If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/SubnetIDHelper.sol\":\"SubnetIDHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"DifferentRootNetwork"},{"inputs":[],"type":"error","name":"EmptySubnet"},{"inputs":[],"type":"error","name":"InvalidRoute"},{"inputs":[],"type":"error","name":"NoAddressForRoot"},{"inputs":[],"type":"error","name":"NoParentForSubnet"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"commonParent","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"actor","type":"address"}],"stateMutability":"pure","type":"function","name":"createSubnetId","outputs":[{"internalType":"struct SubnetID","name":"newSubnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"down","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"equals","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getActor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getParentSubnet","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"isEmpty","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"isRoot","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"down(SubnetID,SubnetID)":{"details":"Revert will be triggered if subnet2 is an invalid input."}},"version":1},"userdoc":{"kind":"user","methods":{"commonParent(SubnetID,SubnetID)":{"notice":"Computes the common parent of the current subnet and the one given as argument"},"down(SubnetID,SubnetID)":{"notice":"In the path determined by the current subnet id, it moves down in the path from the subnet id given as argument. subnet2 needs to be a prefix of the subnet1. If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/SubnetIDHelper.sol":"SubnetIDHelper"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/SubnetIDHelper.sol","id":48026,"exportedSymbols":{"Strings":[33113],"SubnetID":[50030],"SubnetIDHelper":[48025]},"nodeType":"SourceUnit","src":"46:5442:75","nodes":[{"id":47416,"nodeType":"PragmaDirective","src":"46:23:75","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47418,"nodeType":"ImportDirective","src":"71:47:75","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":48026,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":47417,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"79:8:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47420,"nodeType":"ImportDirective","src":"119:65:75","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","file":"openzeppelin-contracts/utils/Strings.sol","nameLocation":"-1:-1:-1","scope":48026,"sourceUnit":33114,"symbolAliases":[{"foreign":{"id":47419,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33113,"src":"127:7:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48025,"nodeType":"ContractDefinition","src":"272:5215:75","nodes":[{"id":47424,"nodeType":"UsingForDirective","src":"301:26:75","nodes":[],"global":false,"libraryName":{"id":47422,"name":"Strings","nameLocations":["307:7:75"],"nodeType":"IdentifierPath","referencedDeclaration":33113,"src":"307:7:75"},"typeName":{"id":47423,"name":"address","nodeType":"ElementaryTypeName","src":"319:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":47426,"nodeType":"ErrorDefinition","src":"333:26:75","nodes":[],"errorSelector":"2f10c6c1","name":"NoParentForSubnet","nameLocation":"339:17:75","parameters":{"id":47425,"nodeType":"ParameterList","parameters":[],"src":"356:2:75"}},{"id":47428,"nodeType":"ErrorDefinition","src":"364:25:75","nodes":[],"errorSelector":"a15c1d98","name":"NoAddressForRoot","nameLocation":"370:16:75","parameters":{"id":47427,"nodeType":"ParameterList","parameters":[],"src":"386:2:75"}},{"id":47430,"nodeType":"ErrorDefinition","src":"394:20:75","nodes":[],"errorSelector":"79e7ca82","name":"EmptySubnet","nameLocation":"400:11:75","parameters":{"id":47429,"nodeType":"ParameterList","parameters":[],"src":"411:2:75"}},{"id":47432,"nodeType":"ErrorDefinition","src":"419:29:75","nodes":[],"errorSelector":"71859355","name":"DifferentRootNetwork","nameLocation":"425:20:75","parameters":{"id":47431,"nodeType":"ParameterList","parameters":[],"src":"445:2:75"}},{"id":47434,"nodeType":"ErrorDefinition","src":"453:21:75","nodes":[],"errorSelector":"84e505d2","name":"InvalidRoute","nameLocation":"459:12:75","parameters":{"id":47433,"nodeType":"ParameterList","parameters":[],"src":"471:2:75"}},{"id":47464,"nodeType":"FunctionDefinition","src":"480:245:75","nodes":[],"body":{"id":47463,"nodeType":"Block","src":"554:171:75","nodes":[],"statements":[{"assignments":[47443],"declarations":[{"constant":false,"id":47443,"mutability":"mutable","name":"length","nameLocation":"572:6:75","nodeType":"VariableDeclaration","scope":47463,"src":"564:14:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47442,"name":"uint256","nodeType":"ElementaryTypeName","src":"564:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47447,"initialValue":{"expression":{"expression":{"id":47444,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47437,"src":"581:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"588:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"581:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"594:6:75","memberName":"length","nodeType":"MemberAccess","src":"581:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"564:36:75"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47448,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47443,"src":"615:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"625:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"615:11:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47455,"nodeType":"IfStatement","src":"611:67:75","trueBody":{"id":47454,"nodeType":"Block","src":"628:50:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47451,"name":"NoAddressForRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47428,"src":"649:16:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"649:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47453,"nodeType":"RevertStatement","src":"642:25:75"}]}},{"expression":{"baseExpression":{"expression":{"id":47456,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47437,"src":"694:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"701:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"694:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47461,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47458,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47443,"src":"707:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"716:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"707:10:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"694:24:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47441,"id":47462,"nodeType":"Return","src":"687:31:75"}]},"functionSelector":"138e13fc","implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"489:10:75","parameters":{"id":47438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47437,"mutability":"mutable","name":"subnet","nameLocation":"516:6:75","nodeType":"VariableDeclaration","scope":47464,"src":"500:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47436,"nodeType":"UserDefinedTypeName","pathNode":{"id":47435,"name":"SubnetID","nameLocations":["500:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"500:8:75"},"referencedDeclaration":50030,"src":"500:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"499:24:75"},"returnParameters":{"id":47441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47464,"src":"545:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47439,"name":"address","nodeType":"ElementaryTypeName","src":"545:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"544:9:75"},"scope":48025,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47531,"nodeType":"FunctionDefinition","src":"731:517:75","nodes":[],"body":{"id":47530,"nodeType":"Block","src":"818:430:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47473,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47467,"src":"832:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"839:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"832:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:6:75","memberName":"length","nodeType":"MemberAccess","src":"832:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"855:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"832:24:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47482,"nodeType":"IfStatement","src":"828:81:75","trueBody":{"id":47481,"nodeType":"Block","src":"858:51:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47478,"name":"NoParentForSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47426,"src":"879:17:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47480,"nodeType":"RevertStatement","src":"872:26:75"}]}},{"assignments":[47487],"declarations":[{"constant":false,"id":47487,"mutability":"mutable","name":"route","nameLocation":"936:5:75","nodeType":"VariableDeclaration","scope":47530,"src":"919:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47485,"name":"address","nodeType":"ElementaryTypeName","src":"919:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47486,"nodeType":"ArrayTypeName","src":"919:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":47497,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47491,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47467,"src":"958:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"965:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"958:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"971:6:75","memberName":"length","nodeType":"MemberAccess","src":"958:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"980:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"958:23:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"944:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47488,"name":"address","nodeType":"ElementaryTypeName","src":"948:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47489,"nodeType":"ArrayTypeName","src":"948:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"944:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"919:63:75"},{"assignments":[47499],"declarations":[{"constant":false,"id":47499,"mutability":"mutable","name":"routeLength","nameLocation":"1000:11:75","nodeType":"VariableDeclaration","scope":47530,"src":"992:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47498,"name":"uint256","nodeType":"ElementaryTypeName","src":"992:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47502,"initialValue":{"expression":{"id":47500,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47487,"src":"1014:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1020:6:75","memberName":"length","nodeType":"MemberAccess","src":"1014:12:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"992:34:75"},{"body":{"id":47522,"nodeType":"Block","src":"1071:110:75","statements":[{"expression":{"id":47516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47509,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47487,"src":"1085:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47511,"indexExpression":{"id":47510,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47504,"src":"1091:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1085:8:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47512,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47467,"src":"1096:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1103:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"1096:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47515,"indexExpression":{"id":47514,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47504,"src":"1109:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1096:15:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1085:26:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47517,"nodeType":"ExpressionStatement","src":"1085:26:75"},{"id":47521,"nodeType":"UncheckedBlock","src":"1125:46:75","statements":[{"expression":{"id":47519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1153:3:75","subExpression":{"id":47518,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47504,"src":"1155:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47520,"nodeType":"ExpressionStatement","src":"1153:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47506,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47504,"src":"1052:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47507,"name":"routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47499,"src":"1056:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1052:15:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47523,"initializationExpression":{"assignments":[47504],"declarations":[{"constant":false,"id":47504,"mutability":"mutable","name":"i","nameLocation":"1049:1:75","nodeType":"VariableDeclaration","scope":47523,"src":"1041:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1041:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47505,"nodeType":"VariableDeclarationStatement","src":"1041:9:75"},"nodeType":"ForStatement","src":"1036:145:75"},{"expression":{"arguments":[{"expression":{"id":47525,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47467,"src":"1214:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1221:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"1214:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":47527,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47487,"src":"1234:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47524,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"1198:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1208:4:75","1227:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"1198:43:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47472,"id":47529,"nodeType":"Return","src":"1191:50:75"}]},"functionSelector":"118e84ee","implemented":true,"kind":"function","modifiers":[],"name":"getParentSubnet","nameLocation":"740:15:75","parameters":{"id":47468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47467,"mutability":"mutable","name":"subnet","nameLocation":"772:6:75","nodeType":"VariableDeclaration","scope":47531,"src":"756:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47466,"nodeType":"UserDefinedTypeName","pathNode":{"id":47465,"name":"SubnetID","nameLocations":["756:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"756:8:75"},"referencedDeclaration":50030,"src":"756:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"755:24:75"},"returnParameters":{"id":47472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47531,"src":"801:15:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47470,"nodeType":"UserDefinedTypeName","pathNode":{"id":47469,"name":"SubnetID","nameLocations":["801:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"801:8:75"},"referencedDeclaration":50030,"src":"801:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"800:17:75"},"scope":48025,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47598,"nodeType":"FunctionDefinition","src":"1254:490:75","nodes":[],"body":{"id":47597,"nodeType":"Block","src":"1334:410:75","nodes":[],"statements":[{"assignments":[47540],"declarations":[{"constant":false,"id":47540,"mutability":"mutable","name":"route","nameLocation":"1358:5:75","nodeType":"VariableDeclaration","scope":47597,"src":"1344:19:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47539,"name":"string","nodeType":"ElementaryTypeName","src":"1344:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":47553,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2f72","id":47545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1390:4:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_93f820eb308169058c3dd6520c1f67d663f45d78cc39394907eb37677a393d1d","typeString":"literal_string \"/r\""},"value":"/r"},{"arguments":[{"expression":{"id":47548,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47534,"src":"1413:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1420:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"1413:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":47546,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33113,"src":"1396:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$33113_$","typeString":"type(library Strings)"}},"id":47547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1404:8:75","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":32926,"src":"1396:16:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":47550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1396:29:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_93f820eb308169058c3dd6520c1f67d663f45d78cc39394907eb37677a393d1d","typeString":"literal_string \"/r\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47543,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1373:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1377:12:75","memberName":"encodePacked","nodeType":"MemberAccess","src":"1373:16:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:53:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1366:6:75","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":47541,"name":"string","nodeType":"ElementaryTypeName","src":"1366:6:75","typeDescriptions":{}}},"id":47552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:61:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1344:83:75"},{"assignments":[47555],"declarations":[{"constant":false,"id":47555,"mutability":"mutable","name":"subnetLength","nameLocation":"1445:12:75","nodeType":"VariableDeclaration","scope":47597,"src":"1437:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47554,"name":"uint256","nodeType":"ElementaryTypeName","src":"1437:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47559,"initialValue":{"expression":{"expression":{"id":47556,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47534,"src":"1460:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1467:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"1460:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1473:6:75","memberName":"length","nodeType":"MemberAccess","src":"1460:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1437:42:75"},{"body":{"id":47593,"nodeType":"Block","src":"1525:190:75","statements":[{"expression":{"id":47573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47566,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47540,"src":"1539:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47570,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47540,"src":"1561:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f","id":47571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1568:3:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""}],"expression":{"id":47568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1547:6:75","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":47567,"name":"string","nodeType":"ElementaryTypeName","src":"1547:6:75","typeDescriptions":{}}},"id":47569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1554:6:75","memberName":"concat","nodeType":"MemberAccess","src":"1547:13:75","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":47572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1547:25:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1539:33:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":47574,"nodeType":"ExpressionStatement","src":"1539:33:75"},{"expression":{"id":47587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47575,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47540,"src":"1586:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47579,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47540,"src":"1608:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":47580,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47534,"src":"1615:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1622:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"1615:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47583,"indexExpression":{"id":47582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47561,"src":"1628:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1615:15:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1631:11:75","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":33075,"src":"1615:27:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$attached_to$_t_address_$","typeString":"function (address) pure returns (string memory)"}},"id":47585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:29:75","tryCall":false,"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"}],"expression":{"id":47577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:6:75","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":47576,"name":"string","nodeType":"ElementaryTypeName","src":"1594:6:75","typeDescriptions":{}}},"id":47578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1601:6:75","memberName":"concat","nodeType":"MemberAccess","src":"1594:13:75","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":47586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:51:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1586:59:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":47588,"nodeType":"ExpressionStatement","src":"1586:59:75"},{"id":47592,"nodeType":"UncheckedBlock","src":"1659:46:75","statements":[{"expression":{"id":47590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1687:3:75","subExpression":{"id":47589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47561,"src":"1689:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47591,"nodeType":"ExpressionStatement","src":"1687:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47563,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47561,"src":"1505:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47564,"name":"subnetLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47555,"src":"1509:12:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1505:16:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47594,"initializationExpression":{"assignments":[47561],"declarations":[{"constant":false,"id":47561,"mutability":"mutable","name":"i","nameLocation":"1502:1:75","nodeType":"VariableDeclaration","scope":47594,"src":"1494:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47560,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47562,"nodeType":"VariableDeclarationStatement","src":"1494:9:75"},"nodeType":"ForStatement","src":"1489:226:75"},{"expression":{"id":47595,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47540,"src":"1732:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":47538,"id":47596,"nodeType":"Return","src":"1725:12:75"}]},"functionSelector":"e4ebe92c","implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1263:8:75","parameters":{"id":47535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47534,"mutability":"mutable","name":"subnet","nameLocation":"1290:6:75","nodeType":"VariableDeclaration","scope":47598,"src":"1272:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47533,"nodeType":"UserDefinedTypeName","pathNode":{"id":47532,"name":"SubnetID","nameLocations":["1272:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1272:8:75"},"referencedDeclaration":50030,"src":"1272:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1271:26:75"},"returnParameters":{"id":47538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47598,"src":"1319:13:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47536,"name":"string","nodeType":"ElementaryTypeName","src":"1319:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1318:15:75"},"scope":48025,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47614,"nodeType":"FunctionDefinition","src":"1750:125:75","nodes":[],"body":{"id":47613,"nodeType":"Block","src":"1822:53:75","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":47609,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47601,"src":"1860:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":47607,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1849:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1853:6:75","memberName":"encode","nodeType":"MemberAccess","src":"1849:10:75","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47606,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1839:9:75","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1839:29:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47605,"id":47612,"nodeType":"Return","src":"1832:36:75"}]},"functionSelector":"90ba52cf","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"1759:6:75","parameters":{"id":47602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47601,"mutability":"mutable","name":"subnet","nameLocation":"1784:6:75","nodeType":"VariableDeclaration","scope":47614,"src":"1766:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47600,"nodeType":"UserDefinedTypeName","pathNode":{"id":47599,"name":"SubnetID","nameLocations":["1766:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1766:8:75"},"referencedDeclaration":50030,"src":"1766:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1765:26:75"},"returnParameters":{"id":47605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47614,"src":"1813:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1813:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1812:9:75"},"scope":48025,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47688,"nodeType":"FunctionDefinition","src":"1881:501:75","nodes":[],"body":{"id":47687,"nodeType":"Block","src":"1994:388:75","nodes":[],"statements":[{"expression":{"id":47630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":47625,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47623,"src":"2004:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2014:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"2004:14:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":47628,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47617,"src":"2021:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2028:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"2021:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2004:28:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":47631,"nodeType":"ExpressionStatement","src":"2004:28:75"},{"expression":{"id":47644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":47632,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47623,"src":"2042:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2052:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2042:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47638,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47617,"src":"2074:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2081:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2074:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2087:6:75","memberName":"length","nodeType":"MemberAccess","src":"2074:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":47641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2096:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2074:23:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2060:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47635,"name":"address","nodeType":"ElementaryTypeName","src":"2064:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47636,"nodeType":"ArrayTypeName","src":"2064:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2042:56:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47645,"nodeType":"ExpressionStatement","src":"2042:56:75"},{"assignments":[47647],"declarations":[{"constant":false,"id":47647,"mutability":"mutable","name":"routeLength","nameLocation":"2116:11:75","nodeType":"VariableDeclaration","scope":47687,"src":"2108:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47646,"name":"uint256","nodeType":"ElementaryTypeName","src":"2108:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47651,"initialValue":{"expression":{"expression":{"id":47648,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47617,"src":"2130:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2137:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2130:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2143:6:75","memberName":"length","nodeType":"MemberAccess","src":"2130:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2108:41:75"},{"body":{"id":47673,"nodeType":"Block","src":"2194:120:75","statements":[{"expression":{"id":47667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":47658,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47623,"src":"2208:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2218:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2208:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47662,"indexExpression":{"id":47660,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47653,"src":"2224:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2208:18:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47663,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47617,"src":"2229:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2236:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2229:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47666,"indexExpression":{"id":47665,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47653,"src":"2242:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2229:15:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2208:36:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47668,"nodeType":"ExpressionStatement","src":"2208:36:75"},{"id":47672,"nodeType":"UncheckedBlock","src":"2258:46:75","statements":[{"expression":{"id":47670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2286:3:75","subExpression":{"id":47669,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47653,"src":"2288:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47671,"nodeType":"ExpressionStatement","src":"2286:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47655,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47653,"src":"2175:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47656,"name":"routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47647,"src":"2179:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2175:15:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47674,"initializationExpression":{"assignments":[47653],"declarations":[{"constant":false,"id":47653,"mutability":"mutable","name":"i","nameLocation":"2172:1:75","nodeType":"VariableDeclaration","scope":47674,"src":"2164:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47652,"name":"uint256","nodeType":"ElementaryTypeName","src":"2164:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47654,"nodeType":"VariableDeclarationStatement","src":"2164:9:75"},"nodeType":"ForStatement","src":"2159:155:75"},{"expression":{"id":47685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":47675,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47623,"src":"2324:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2334:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2324:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47683,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47677,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47623,"src":"2340:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":47678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2350:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2340:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2356:6:75","memberName":"length","nodeType":"MemberAccess","src":"2340:22:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2365:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2340:26:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2324:43:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47684,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47619,"src":"2370:5:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2324:51:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47686,"nodeType":"ExpressionStatement","src":"2324:51:75"}]},"functionSelector":"aa5106cb","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetId","nameLocation":"1890:14:75","parameters":{"id":47620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47617,"mutability":"mutable","name":"subnet","nameLocation":"1923:6:75","nodeType":"VariableDeclaration","scope":47688,"src":"1905:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47616,"nodeType":"UserDefinedTypeName","pathNode":{"id":47615,"name":"SubnetID","nameLocations":["1905:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1905:8:75"},"referencedDeclaration":50030,"src":"1905:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47619,"mutability":"mutable","name":"actor","nameLocation":"1939:5:75","nodeType":"VariableDeclaration","scope":47688,"src":"1931:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47618,"name":"address","nodeType":"ElementaryTypeName","src":"1931:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1904:41:75"},"returnParameters":{"id":47624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47623,"mutability":"mutable","name":"newSubnet","nameLocation":"1983:9:75","nodeType":"VariableDeclaration","scope":47688,"src":"1967:25:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47622,"nodeType":"UserDefinedTypeName","pathNode":{"id":47621,"name":"SubnetID","nameLocations":["1967:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1967:8:75"},"referencedDeclaration":50030,"src":"1967:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1966:27:75"},"scope":48025,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47718,"nodeType":"FunctionDefinition","src":"2388:217:75","nodes":[],"body":{"id":47717,"nodeType":"Block","src":"2462:143:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47696,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47691,"src":"2476:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2483:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2476:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2489:6:75","memberName":"length","nodeType":"MemberAccess","src":"2476:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2499:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2476:24:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47707,"nodeType":"IfStatement","src":"2472:72:75","trueBody":{"id":47706,"nodeType":"Block","src":"2502:42:75","statements":[{"expression":{"arguments":[{"hexValue":"30","id":47703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2531:1:75","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":47702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2523:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47701,"name":"address","nodeType":"ElementaryTypeName","src":"2523:7:75","typeDescriptions":{}}},"id":47704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2523:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47695,"id":47705,"nodeType":"Return","src":"2516:17:75"}]}},{"expression":{"baseExpression":{"expression":{"id":47708,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47691,"src":"2561:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2568:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2561:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47715,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47710,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47691,"src":"2574:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2581:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2574:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2587:6:75","memberName":"length","nodeType":"MemberAccess","src":"2574:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2596:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2574:23:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2561:37:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47695,"id":47716,"nodeType":"Return","src":"2554:44:75"}]},"functionSelector":"59feac42","implemented":true,"kind":"function","modifiers":[],"name":"getActor","nameLocation":"2397:8:75","parameters":{"id":47692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47691,"mutability":"mutable","name":"subnet","nameLocation":"2424:6:75","nodeType":"VariableDeclaration","scope":47718,"src":"2406:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47690,"nodeType":"UserDefinedTypeName","pathNode":{"id":47689,"name":"SubnetID","nameLocations":["2406:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"2406:8:75"},"referencedDeclaration":50030,"src":"2406:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2405:26:75"},"returnParameters":{"id":47695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47718,"src":"2453:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47693,"name":"address","nodeType":"ElementaryTypeName","src":"2453:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2452:9:75"},"scope":48025,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47738,"nodeType":"FunctionDefinition","src":"2611:189:75","nodes":[],"body":{"id":47737,"nodeType":"Block","src":"2680:120:75","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47726,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47721,"src":"2749:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2756:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2749:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2762:6:75","memberName":"length","nodeType":"MemberAccess","src":"2749:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2772:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2749:24:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47731,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47721,"src":"2777:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2784:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"2777:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":47733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2792:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2777:16:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2749:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":47725,"id":47736,"nodeType":"Return","src":"2742:51:75"}]},"functionSelector":"862a88f8","implemented":true,"kind":"function","modifiers":[],"name":"isRoot","nameLocation":"2620:6:75","parameters":{"id":47722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47721,"mutability":"mutable","name":"subnet","nameLocation":"2645:6:75","nodeType":"VariableDeclaration","scope":47738,"src":"2627:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47720,"nodeType":"UserDefinedTypeName","pathNode":{"id":47719,"name":"SubnetID","nameLocations":["2627:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"2627:8:75"},"referencedDeclaration":50030,"src":"2627:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2626:26:75"},"returnParameters":{"id":47725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47738,"src":"2674:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47723,"name":"bool","nodeType":"ElementaryTypeName","src":"2674:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2673:6:75"},"scope":48025,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47778,"nodeType":"FunctionDefinition","src":"2806:332:75","nodes":[],"body":{"id":47777,"nodeType":"Block","src":"2903:235:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47749,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47741,"src":"2917:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2925:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"2917:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47751,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47744,"src":"2933:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2941:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"2933:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2917:28:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47757,"nodeType":"IfStatement","src":"2913:71:75","trueBody":{"id":47756,"nodeType":"Block","src":"2947:37:75","statements":[{"expression":{"hexValue":"66616c7365","id":47754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2968:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":47748,"id":47755,"nodeType":"Return","src":"2961:12:75"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47758,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47741,"src":"2997:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3005:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"2997:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3011:6:75","memberName":"length","nodeType":"MemberAccess","src":"2997:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":47761,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47744,"src":"3021:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3029:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"3021:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3035:6:75","memberName":"length","nodeType":"MemberAccess","src":"3021:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2997:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47768,"nodeType":"IfStatement","src":"2993:87:75","trueBody":{"id":47767,"nodeType":"Block","src":"3043:37:75","statements":[{"expression":{"hexValue":"66616c7365","id":47765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3064:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":47748,"id":47766,"nodeType":"Return","src":"3057:12:75"}]}},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":47775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":47770,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47741,"src":"3104:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}],"id":47769,"name":"toHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47614,"src":"3097:6:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SubnetID_$50030_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct SubnetID calldata) pure returns (bytes32)"}},"id":47771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3097:15:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":47773,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47744,"src":"3123:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}],"id":47772,"name":"toHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47614,"src":"3116:6:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SubnetID_$50030_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct SubnetID calldata) pure returns (bytes32)"}},"id":47774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3116:15:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3097:34:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":47748,"id":47776,"nodeType":"Return","src":"3090:41:75"}]},"functionSelector":"c836244d","implemented":true,"kind":"function","modifiers":[],"name":"equals","nameLocation":"2815:6:75","parameters":{"id":47745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47741,"mutability":"mutable","name":"subnet1","nameLocation":"2840:7:75","nodeType":"VariableDeclaration","scope":47778,"src":"2822:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47740,"nodeType":"UserDefinedTypeName","pathNode":{"id":47739,"name":"SubnetID","nameLocations":["2822:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"2822:8:75"},"referencedDeclaration":50030,"src":"2822:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47744,"mutability":"mutable","name":"subnet2","nameLocation":"2867:7:75","nodeType":"VariableDeclaration","scope":47778,"src":"2849:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47743,"nodeType":"UserDefinedTypeName","pathNode":{"id":47742,"name":"SubnetID","nameLocations":["2849:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"2849:8:75"},"referencedDeclaration":50030,"src":"2849:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2821:54:75"},"returnParameters":{"id":47748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47747,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47778,"src":"2897:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47746,"name":"bool","nodeType":"ElementaryTypeName","src":"2897:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2896:6:75"},"scope":48025,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47899,"nodeType":"FunctionDefinition","src":"3239:921:75","nodes":[],"body":{"id":47898,"nodeType":"Block","src":"3353:807:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47791,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47782,"src":"3367:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3375:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"3367:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47793,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47785,"src":"3383:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3391:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"3383:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3367:28:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47806,"nodeType":"IfStatement","src":"3363:110:75","trueBody":{"id":47805,"nodeType":"Block","src":"3397:76:75","statements":[{"expression":{"arguments":[{"hexValue":"30","id":47797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3434:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":47801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3458:1:75","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":47800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3444:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47798,"name":"address","nodeType":"ElementaryTypeName","src":"3448:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47799,"nodeType":"ArrayTypeName","src":"3448:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3444:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47796,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"3418:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3428:4:75","3437:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"3418:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47790,"id":47804,"nodeType":"Return","src":"3411:51:75"}]}},{"assignments":[47808],"declarations":[{"constant":false,"id":47808,"mutability":"mutable","name":"i","nameLocation":"3491:1:75","nodeType":"VariableDeclaration","scope":47898,"src":"3483:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47807,"name":"uint256","nodeType":"ElementaryTypeName","src":"3483:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47809,"nodeType":"VariableDeclarationStatement","src":"3483:9:75"},{"assignments":[47811],"declarations":[{"constant":false,"id":47811,"mutability":"mutable","name":"subnet1routeLength","nameLocation":"3510:18:75","nodeType":"VariableDeclaration","scope":47898,"src":"3502:26:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47810,"name":"uint256","nodeType":"ElementaryTypeName","src":"3502:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47815,"initialValue":{"expression":{"expression":{"id":47812,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47782,"src":"3531:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3539:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"3531:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3545:6:75","memberName":"length","nodeType":"MemberAccess","src":"3531:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3502:49:75"},{"assignments":[47817],"declarations":[{"constant":false,"id":47817,"mutability":"mutable","name":"subnet2routeLength","nameLocation":"3569:18:75","nodeType":"VariableDeclaration","scope":47898,"src":"3561:26:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47816,"name":"uint256","nodeType":"ElementaryTypeName","src":"3561:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47821,"initialValue":{"expression":{"expression":{"id":47818,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47785,"src":"3590:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3598:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"3590:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3604:6:75","memberName":"length","nodeType":"MemberAccess","src":"3590:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3561:49:75"},{"body":{"id":47843,"nodeType":"Block","src":"3717:70:75","statements":[{"id":47842,"nodeType":"UncheckedBlock","src":"3731:46:75","statements":[{"expression":{"id":47840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3759:3:75","subExpression":{"id":47839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"3761:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47841,"nodeType":"ExpressionStatement","src":"3759:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47822,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"3627:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47823,"name":"subnet1routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47811,"src":"3631:18:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3627:22:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47825,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"3653:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47826,"name":"subnet2routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47817,"src":"3657:18:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3653:22:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3627:48:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":47829,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47782,"src":"3679:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3687:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"3679:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47832,"indexExpression":{"id":47831,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"3693:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3679:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"expression":{"id":47833,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47785,"src":"3699:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3707:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"3699:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47836,"indexExpression":{"id":47835,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"3713:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3699:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3679:36:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3627:88:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47844,"nodeType":"WhileStatement","src":"3620:167:75"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47845,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"3800:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3800:6:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47859,"nodeType":"IfStatement","src":"3796:99:75","trueBody":{"id":47858,"nodeType":"Block","src":"3808:87:75","statements":[{"expression":{"arguments":[{"expression":{"id":47849,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47782,"src":"3845:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3853:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"3845:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":47854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3880:1:75","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":47853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3866:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47851,"name":"address","nodeType":"ElementaryTypeName","src":"3870:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47852,"nodeType":"ArrayTypeName","src":"3870:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3866:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47848,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"3829:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3839:4:75","3859:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"3829:55:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47790,"id":47857,"nodeType":"Return","src":"3822:62:75"}]}},{"assignments":[47864],"declarations":[{"constant":false,"id":47864,"mutability":"mutable","name":"route","nameLocation":"3922:5:75","nodeType":"VariableDeclaration","scope":47898,"src":"3905:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47862,"name":"address","nodeType":"ElementaryTypeName","src":"3905:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47863,"nodeType":"ArrayTypeName","src":"3905:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":47870,"initialValue":{"arguments":[{"id":47868,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"3944:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3930:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47865,"name":"address","nodeType":"ElementaryTypeName","src":"3934:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47866,"nodeType":"ArrayTypeName","src":"3934:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3930:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3905:41:75"},{"body":{"id":47890,"nodeType":"Block","src":"3981:111:75","statements":[{"expression":{"id":47884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47877,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47864,"src":"3995:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47879,"indexExpression":{"id":47878,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47872,"src":"4001:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3995:8:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47880,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47782,"src":"4006:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4014:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"4006:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47883,"indexExpression":{"id":47882,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47872,"src":"4020:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4006:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3995:27:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47885,"nodeType":"ExpressionStatement","src":"3995:27:75"},{"id":47889,"nodeType":"UncheckedBlock","src":"4036:46:75","statements":[{"expression":{"id":47887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4064:3:75","subExpression":{"id":47886,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47872,"src":"4066:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47888,"nodeType":"ExpressionStatement","src":"4064:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47874,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47872,"src":"3972:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47875,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"3976:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3972:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47891,"initializationExpression":{"assignments":[47872],"declarations":[{"constant":false,"id":47872,"mutability":"mutable","name":"j","nameLocation":"3969:1:75","nodeType":"VariableDeclaration","scope":47891,"src":"3961:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47871,"name":"uint256","nodeType":"ElementaryTypeName","src":"3961:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47873,"nodeType":"VariableDeclarationStatement","src":"3961:9:75"},"nodeType":"ForStatement","src":"3956:136:75"},{"expression":{"arguments":[{"expression":{"id":47893,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47782,"src":"4125:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4133:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"4125:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":47895,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47864,"src":"4146:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47892,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"4109:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4119:4:75","4139:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"4109:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47790,"id":47897,"nodeType":"Return","src":"4102:51:75"}]},"documentation":{"id":47779,"nodeType":"StructuredDocumentation","src":"3144:90:75","text":"@notice Computes the common parent of the current subnet and the one given as argument"},"functionSelector":"39991266","implemented":true,"kind":"function","modifiers":[],"name":"commonParent","nameLocation":"3248:12:75","parameters":{"id":47786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47782,"mutability":"mutable","name":"subnet1","nameLocation":"3279:7:75","nodeType":"VariableDeclaration","scope":47899,"src":"3261:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47781,"nodeType":"UserDefinedTypeName","pathNode":{"id":47780,"name":"SubnetID","nameLocations":["3261:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"3261:8:75"},"referencedDeclaration":50030,"src":"3261:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47785,"mutability":"mutable","name":"subnet2","nameLocation":"3306:7:75","nodeType":"VariableDeclaration","scope":47899,"src":"3288:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47784,"nodeType":"UserDefinedTypeName","pathNode":{"id":47783,"name":"SubnetID","nameLocations":["3288:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"3288:8:75"},"referencedDeclaration":50030,"src":"3288:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3260:54:75"},"returnParameters":{"id":47790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47899,"src":"3336:15:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47788,"nodeType":"UserDefinedTypeName","pathNode":{"id":47787,"name":"SubnetID","nameLocations":["3336:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"3336:8:75"},"referencedDeclaration":50030,"src":"3336:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3335:17:75"},"scope":48025,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":48004,"nodeType":"FunctionDefinition","src":"4517:818:75","nodes":[],"body":{"id":48003,"nodeType":"Block","src":"4623:712:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47912,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47903,"src":"4637:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4645:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"4637:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47914,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47906,"src":"4653:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4661:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"4653:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4637:28:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47921,"nodeType":"IfStatement","src":"4633:88:75","trueBody":{"id":47920,"nodeType":"Block","src":"4667:54:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47917,"name":"DifferentRootNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47432,"src":"4688:20:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4688:22:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47919,"nodeType":"RevertStatement","src":"4681:29:75"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47922,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47903,"src":"4734:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4742:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"4734:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4748:6:75","memberName":"length","nodeType":"MemberAccess","src":"4734:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"expression":{"id":47925,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47906,"src":"4758:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4766:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"4758:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4772:6:75","memberName":"length","nodeType":"MemberAccess","src":"4758:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4734:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47933,"nodeType":"IfStatement","src":"4730:96:75","trueBody":{"id":47932,"nodeType":"Block","src":"4780:46:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47929,"name":"InvalidRoute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47434,"src":"4801:12:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4801:14:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47931,"nodeType":"RevertStatement","src":"4794:21:75"}]}},{"assignments":[47935],"declarations":[{"constant":false,"id":47935,"mutability":"mutable","name":"i","nameLocation":"4844:1:75","nodeType":"VariableDeclaration","scope":48003,"src":"4836:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47934,"name":"uint256","nodeType":"ElementaryTypeName","src":"4836:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47936,"nodeType":"VariableDeclarationStatement","src":"4836:9:75"},{"assignments":[47938],"declarations":[{"constant":false,"id":47938,"mutability":"mutable","name":"subnet2routeLength","nameLocation":"4863:18:75","nodeType":"VariableDeclaration","scope":48003,"src":"4855:26:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47937,"name":"uint256","nodeType":"ElementaryTypeName","src":"4855:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47942,"initialValue":{"expression":{"expression":{"id":47939,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47906,"src":"4884:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4892:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"4884:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4898:6:75","memberName":"length","nodeType":"MemberAccess","src":"4884:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4855:49:75"},{"body":{"id":47960,"nodeType":"Block","src":"4985:70:75","statements":[{"id":47959,"nodeType":"UncheckedBlock","src":"4999:46:75","statements":[{"expression":{"id":47957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5027:3:75","subExpression":{"id":47956,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47935,"src":"5029:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47958,"nodeType":"ExpressionStatement","src":"5027:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47943,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47935,"src":"4921:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47944,"name":"subnet2routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47938,"src":"4925:18:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4921:22:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":47946,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47903,"src":"4947:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4955:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"4947:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47949,"indexExpression":{"id":47948,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47935,"src":"4961:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4947:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"expression":{"id":47950,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47906,"src":"4967:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4975:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"4967:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47953,"indexExpression":{"id":47952,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47935,"src":"4981:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4967:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4947:36:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4921:62:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47961,"nodeType":"WhileStatement","src":"4914:141:75"},{"expression":{"id":47963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5065:3:75","subExpression":{"id":47962,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47935,"src":"5067:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47964,"nodeType":"ExpressionStatement","src":"5065:3:75"},{"assignments":[47969],"declarations":[{"constant":false,"id":47969,"mutability":"mutable","name":"route","nameLocation":"5096:5:75","nodeType":"VariableDeclaration","scope":48003,"src":"5079:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47967,"name":"address","nodeType":"ElementaryTypeName","src":"5079:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47968,"nodeType":"ArrayTypeName","src":"5079:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":47975,"initialValue":{"arguments":[{"id":47973,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47935,"src":"5118:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5104:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47970,"name":"address","nodeType":"ElementaryTypeName","src":"5108:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47971,"nodeType":"ArrayTypeName","src":"5108:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5104:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5079:41:75"},{"body":{"id":47995,"nodeType":"Block","src":"5156:111:75","statements":[{"expression":{"id":47989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47982,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47969,"src":"5170:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47984,"indexExpression":{"id":47983,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47977,"src":"5176:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5170:8:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47985,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47903,"src":"5181:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5189:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"5181:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47988,"indexExpression":{"id":47987,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47977,"src":"5195:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5181:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5170:27:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47990,"nodeType":"ExpressionStatement","src":"5170:27:75"},{"id":47994,"nodeType":"UncheckedBlock","src":"5211:46:75","statements":[{"expression":{"id":47992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5239:3:75","subExpression":{"id":47991,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47977,"src":"5241:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47993,"nodeType":"ExpressionStatement","src":"5239:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47979,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47977,"src":"5147:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47980,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47935,"src":"5151:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5147:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47996,"initializationExpression":{"assignments":[47977],"declarations":[{"constant":false,"id":47977,"mutability":"mutable","name":"j","nameLocation":"5144:1:75","nodeType":"VariableDeclaration","scope":47996,"src":"5136:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47976,"name":"uint256","nodeType":"ElementaryTypeName","src":"5136:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47978,"nodeType":"VariableDeclarationStatement","src":"5136:9:75"},"nodeType":"ForStatement","src":"5131:136:75"},{"expression":{"arguments":[{"expression":{"id":47998,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47903,"src":"5300:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5308:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"5300:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":48000,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47969,"src":"5321:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47997,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"5284:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":48001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5294:4:75","5314:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"5284:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47911,"id":48002,"nodeType":"Return","src":"5277:51:75"}]},"documentation":{"id":47900,"nodeType":"StructuredDocumentation","src":"4166:346:75","text":"@notice In the path determined by the current subnet id, it moves\n down in the path from the subnet id given as argument.\n subnet2 needs to be a prefix of the subnet1.\n If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c.\n @dev Revert will be triggered if subnet2 is an invalid input."},"functionSelector":"089032d5","implemented":true,"kind":"function","modifiers":[],"name":"down","nameLocation":"4526:4:75","parameters":{"id":47907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47903,"mutability":"mutable","name":"subnet1","nameLocation":"4549:7:75","nodeType":"VariableDeclaration","scope":48004,"src":"4531:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47902,"nodeType":"UserDefinedTypeName","pathNode":{"id":47901,"name":"SubnetID","nameLocations":["4531:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"4531:8:75"},"referencedDeclaration":50030,"src":"4531:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47906,"mutability":"mutable","name":"subnet2","nameLocation":"4576:7:75","nodeType":"VariableDeclaration","scope":48004,"src":"4558:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47905,"nodeType":"UserDefinedTypeName","pathNode":{"id":47904,"name":"SubnetID","nameLocations":["4558:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"4558:8:75"},"referencedDeclaration":50030,"src":"4558:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4530:54:75"},"returnParameters":{"id":47911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48004,"src":"4606:15:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47909,"nodeType":"UserDefinedTypeName","pathNode":{"id":47908,"name":"SubnetID","nameLocations":["4606:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"4606:8:75"},"referencedDeclaration":50030,"src":"4606:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4605:17:75"},"scope":48025,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":48024,"nodeType":"FunctionDefinition","src":"5341:144:75","nodes":[],"body":{"id":48023,"nodeType":"Block","src":"5413:72:75","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":48012,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48007,"src":"5430:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":48013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5439:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50029,"src":"5430:14:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":48014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5445:6:75","memberName":"length","nodeType":"MemberAccess","src":"5430:21:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5455:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5430:26:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":48020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48017,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48007,"src":"5460:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":48018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5469:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50025,"src":"5460:13:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5477:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5460:18:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5430:48:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48011,"id":48022,"nodeType":"Return","src":"5423:55:75"}]},"functionSelector":"6099e898","implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"5350:7:75","parameters":{"id":48008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48007,"mutability":"mutable","name":"subnetId","nameLocation":"5376:8:75","nodeType":"VariableDeclaration","scope":48024,"src":"5358:26:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":48006,"nodeType":"UserDefinedTypeName","pathNode":{"id":48005,"name":"SubnetID","nameLocations":["5358:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"5358:8:75"},"referencedDeclaration":50030,"src":"5358:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"5357:28:75"},"returnParameters":{"id":48011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48010,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48024,"src":"5407:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48009,"name":"bool","nodeType":"ElementaryTypeName","src":"5407:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5406:6:75"},"scope":48025,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetIDHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":47421,"nodeType":"StructuredDocumentation","src":"186:86:75","text":"@title Helper library for manipulating SubnetID struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[48025],"name":"SubnetIDHelper","nameLocation":"280:14:75","scope":48026,"usedErrors":[32878,47426,47428,47430,47432,47434]}],"license":"MIT OR Apache-2.0"},"id":75} \ No newline at end of file diff --git a/.out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json b/.out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json index 8d41a3536..14ad46a0d 100644 --- a/.out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json +++ b/.out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct SubnetRegistryDiamond.ConstructorParams","components":[{"name":"gateway","type":"address","internalType":"address"},{"name":"getterFacet","type":"address","internalType":"address"},{"name":"managerFacet","type":"address","internalType":"address"},{"name":"subnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"subnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FacetCannotBeZero","inputs":[]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"GatewayCannotBeZero","inputs":[]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"556:2909:39:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;556:2909:39;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;556:2909:39;939:28;935:87;;556:2909;;;;-1:-1:-1;;;;;556:2909:39;1035:32;1031:89;;556:2909;;;;-1:-1:-1;;;;;556:2909:39;1133:33;1129:90;;2258:16:62;556:2909:39;;-1:-1:-1;;;;;;556:2909:39;1257:10;556:2909;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;-1:-1:-1;556:2909:39;;;;-1:-1:-1;2937:19:62;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;3911:74:62;556:2909:39;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;:::i;:::-;3911:74:62;;;1488:22:39;556:2909;;;;;;;;-1:-1:-1;;556:2909:39;;;;;;;;;;;;;;;;;-1:-1:-1;;;;556:2909:39;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;1488:22;556:2909;;;;;;;;;;;;;;1866:28;556:2909;;1488:22;;1866:28;;556:2909;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;;;;;;-1:-1:-1;;;556:2909:39;;;;;;;;;;-1:-1:-1;;;;556:2909:39;;1931:29;556:2909;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;1904:24;556:2909;;1904:24;556:2909;;;;;;;;;;1904:24;-1:-1:-1;556:2909:39;;;-1:-1:-1;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1904:24;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;1904:24;556:2909;;-1:-1:-1;556:2909:39;;;-1:-1:-1;556:2909:39;-1:-1:-1;556:2909:39;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:62;556:2909:39;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;556:2909:39;;;;;3142:29:62;3138:122;;556:2909:39;3309:23:62;;;;:::i;:::-;;:30;556:2909:39;;;;;;;3357:37:62;;;4150:27;;;4146:116;;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;;4385:74:62;556:2909:39;;:::i;:::-;;;;;;;;;-1:-1:-1;;;556:2909:39;;;;4385:74:62;;:::i;:::-;556:2909:39;;4526:21:62;-1:-1:-1;4521:677:62;4549:22;;;;;;3353:466;;;;;556:2909:39;3353:466:62;;556:2909:39;2917:18:62;;4526:21;4607:33;;;;:::i;:::-;556:2909:39;-1:-1:-1;;;;;;556:2909:39;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;;-1:-1:-1;;;;;556:2909:39;4751:128:62;;556:2909:39;;;:::i;:::-;;;;;;;;;;4939:107:62;;;556:2909:39;;;-1:-1:-1;;;;;;556:2909:39;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;;;;;;-1:-1:-1;;;;;;556:2909:39;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;-1:-1:-1;;;556:2909:39;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:62;;;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;4751:128:62;556:2909:39;;-1:-1:-1;;;4811:53:62;;-1:-1:-1;;;;;;556:2909:39;;4811:53:62;;;556:2909:39;;;4811:53:62;4146:116;556:2909:39;;-1:-1:-1;;;4200:51:62;;556:2909:39;4200:51:62;;;556:2909:39;;;;;;;;;;;:::i;:::-;4200:51:62;;;3353:466;556:2909:39;3484:41:62;;556:2909:39;;5372:27:62;;;5368:131;;5508:81;556:2909:39;;:::i;:::-;;;;;;;;;-1:-1:-1;;;556:2909:39;;;;5508:81:62;;:::i;:::-;556:2909:39;;5652:21:62;-1:-1:-1;5675:18:62;;;;;;3480:339;;;;556:2909:39;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;556:2909:39;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;-1:-1:-1;;;;;556:2909:39;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;5652:21:62;;6268:123;556:2909:39;;;;6328:48:62;;;;;;;;;556:2909:39;6328:48:62;6111:144;556:2909:39;;-1:-1:-1;;;6174:66:62;;;;;556:2909:39;;;;;6174:66:62;5980:118;556:2909:39;;-1:-1:-1;;;6043:40:62;;;;;556:2909:39;;;;;6043:40:62;5368:131;556:2909:39;;-1:-1:-1;;;5422:66:62;;556:2909:39;5422:66:62;;;556:2909:39;;;;;;;;;;;:::i;3480:339:62:-;3629:30;3619:40;;3629:30;;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;6826:27:62;;6822:115;;556:2909:39;;;6999:21:62;-1:-1:-1;7022:18:62;;;;;;3615:204;;;;556:2909:39;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;556:2909:39;;;;-1:-1:-1;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;;;-1:-1:-1;556:2909:39;;;;:::i;:::-;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;7278:61:62;7274:153;;556:2909:39;;-1:-1:-1;;;;;556:2909:39;7597:4:62;7538:64;7534:149;;556:2909:39;;;;;;;7747:15:62;556:2909:39;;;;;;;;7780:68:62;7776:412;;6999:21;556:2909:39;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;-1:-1:-1;;556:2909:39;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;-1:-1:-1;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;;-1:-1:-1;556:2909:39;;;;;6999:21:62;;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;7776:412:62;556:2909:39;;7890:27:62;8033:140;7890:27;;:::i;:::-;556:2909:39;;;;;;;;7935:65:62;556:2909:39;;;;;;7935:65:62;:::i;:::-;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;556:2909:39;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;-1:-1:-1;;;;556:2909:39;;;;;;;-1:-1:-1;;;556:2909:39;;;;;8033:140:62;7776:412;;;;7534:149;556:2909:39;;-1:-1:-1;;;7629:39:62;;;;;556:2909:39;;;;;7629:39:62;7274:153;556:2909:39;;-1:-1:-1;;;7366:46:62;;;;;556:2909:39;;;;;7366:46:62;6822:115;556:2909:39;;;;6876:50:62;;;;;;;;;556:2909:39;6876:50:62;3615:204;556:2909:39;;-1:-1:-1;;;3773:31:62;;556:2909:39;;;;3773:31:62;;;;556:2909:39;:::i;:::-;3773:31:62;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;3138:122:62;556:2909:39;;-1:-1:-1;;;3198:47:62;;;;;556:2909:39;;;;;3198:47:62;1129:90:39;556:2909;;-1:-1:-1;;;1189:19:39;;;;;935:87;556:2909;;-1:-1:-1;;;990:21:39;;;;;556:2909;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;556:2909:39;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;556:2909:39;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;556:2909:39;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;-1:-1:-1;556:2909:39;;;-1:-1:-1;556:2909:39;;;;;;;;;;:::o;9308:320:62:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;556:2909:39;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;556:2909:39;;;9566:45:62;;;556:2909:39;;;;;;;;;;;;;;;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033","sourceMap":"556:2909:39:-:0;;;;;;;-1:-1:-1;2356:7:39;;-1:-1:-1;;;;;;2356:7:39;260:43:62;;;;;;556:2909:39;260:43:62;;;-1:-1:-1;;;;;260:43:62;;2391:19:39;;2387:82;;556:2909;;;;;2613:593;;;556:2909;;2613:593;;;;;;;;;;;;;;;;;2387:82;260:43:62;;556:2909:39;260:43:62;2433:25:39;;;;;;;;;260:43:62;2433:25:39;556:2909;-1:-1:-1;2356:7:39;;-1:-1:-1;;;;;;2356:7:39;260:43:62;;;;;;556:2909:39;260:43:62;;;-1:-1:-1;;;;;260:43:62;;2391:19:39;;2387:82;;556:2909;;;;;2613:593;;;556:2909;;2613:593;;;;;;;;;;;;;2387:82;2433:25;;;556:2909;2433:25;;260:43:62;2433:25:39;556:2909;2433:25","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"getterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct SubnetRegistryDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FacetCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GatewayCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetRegistryDiamond.sol\":\"SubnetRegistryDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct SubnetRegistryDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"gateway","type":"address"},{"internalType":"address","name":"getterFacet","type":"address"},{"internalType":"address","name":"managerFacet","type":"address"},{"internalType":"bytes4[]","name":"subnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"subnetManagerSelectors","type":"bytes4[]"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[],"type":"error","name":"FacetCannotBeZero"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[],"type":"error","name":"GatewayCannotBeZero"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SubnetRegistryDiamond.sol":"SubnetRegistryDiamond"},"libraries":{},"viaIR":true},"sources":{"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/SubnetRegistryDiamond.sol","id":36854,"exportedSymbols":{"FacetCannotBeZero":[37516],"FunctionNotFound":[36636],"GatewayCannotBeZero":[37400],"IDiamond":[40170],"IDiamondCut":[40189],"IDiamondLoupe":[40230],"IERC165":[40241],"LibDiamond":[41682],"SubnetRegistryActorStorage":[47365],"SubnetRegistryDiamond":[36853]},"nodeType":"SourceUnit","src":"46:3420:39","nodes":[{"id":36617,"nodeType":"PragmaDirective","src":"46:23:39","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36619,"nodeType":"ImportDirective","src":"71:51:39","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":36618,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"79:8:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36621,"nodeType":"ImportDirective","src":"123:62:39","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../src/interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":36620,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"131:11:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36623,"nodeType":"ImportDirective","src":"186:61:39","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":36622,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"194:13:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36625,"nodeType":"ImportDirective","src":"248:49:39","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":36624,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"256:7:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36627,"nodeType":"ImportDirective","src":"298:78:39","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"./lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":47366,"symbolAliases":[{"foreign":{"id":36626,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47365,"src":"306:26:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36630,"nodeType":"ImportDirective","src":"377:78:39","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":36628,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"385:19:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36629,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"406:17:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36632,"nodeType":"ImportDirective","src":"456:48:39","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":36631,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"464:10:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36636,"nodeType":"ErrorDefinition","src":"505:49:39","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"511:16:39","parameters":{"id":36635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36634,"mutability":"mutable","name":"_functionSelector","nameLocation":"535:17:39","nodeType":"VariableDeclaration","scope":36636,"src":"528:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36633,"name":"bytes4","nodeType":"ElementaryTypeName","src":"528:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"527:26:39"}},{"id":36853,"nodeType":"ContractDefinition","src":"556:2909:39","nodes":[{"id":36639,"nodeType":"VariableDeclaration","src":"593:37:39","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"629:1:39","scope":36853,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":36638,"nodeType":"UserDefinedTypeName","pathNode":{"id":36637,"name":"SubnetRegistryActorStorage","nameLocations":["593:26:39"],"nodeType":"IdentifierPath","referencedDeclaration":47365,"src":"593:26:39"},"referencedDeclaration":47365,"src":"593:26:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":36652,"nodeType":"StructDefinition","src":"637:197:39","nodes":[],"canonicalName":"SubnetRegistryDiamond.ConstructorParams","members":[{"constant":false,"id":36641,"mutability":"mutable","name":"gateway","nameLocation":"680:7:39","nodeType":"VariableDeclaration","scope":36652,"src":"672:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36640,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36643,"mutability":"mutable","name":"getterFacet","nameLocation":"705:11:39","nodeType":"VariableDeclaration","scope":36652,"src":"697:19:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36642,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36645,"mutability":"mutable","name":"managerFacet","nameLocation":"734:12:39","nodeType":"VariableDeclaration","scope":36652,"src":"726:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36644,"name":"address","nodeType":"ElementaryTypeName","src":"726:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36648,"mutability":"mutable","name":"subnetGetterSelectors","nameLocation":"765:21:39","nodeType":"VariableDeclaration","scope":36652,"src":"756:30:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":36646,"name":"bytes4","nodeType":"ElementaryTypeName","src":"756:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36647,"nodeType":"ArrayTypeName","src":"756:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":36651,"mutability":"mutable","name":"subnetManagerSelectors","nameLocation":"805:22:39","nodeType":"VariableDeclaration","scope":36652,"src":"796:31:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":36649,"name":"bytes4","nodeType":"ElementaryTypeName","src":"796:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36650,"nodeType":"ArrayTypeName","src":"796:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"644:17:39","scope":36853,"visibility":"public"},{"id":36797,"nodeType":"FunctionDefinition","src":"840:1127:39","nodes":[],"body":{"id":36796,"nodeType":"Block","src":"925:1042:39","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36662,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"939:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"946:7:39","memberName":"gateway","nodeType":"MemberAccess","referencedDeclaration":36641,"src":"939:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"965:1:39","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":36665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"957:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36664,"name":"address","nodeType":"ElementaryTypeName","src":"957:7:39","typeDescriptions":{}}},"id":36667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"957:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"939:28:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36673,"nodeType":"IfStatement","src":"935:87:39","trueBody":{"id":36672,"nodeType":"Block","src":"969:53:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36669,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"990:19:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"990:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36671,"nodeType":"RevertStatement","src":"983:28:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36674,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1035:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1042:11:39","memberName":"getterFacet","nodeType":"MemberAccess","referencedDeclaration":36643,"src":"1035:18:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1065:1:39","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":36677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1057:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36676,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:39","typeDescriptions":{}}},"id":36679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1057:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1035:32:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36685,"nodeType":"IfStatement","src":"1031:89:39","trueBody":{"id":36684,"nodeType":"Block","src":"1069:51:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36681,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"1090:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1090:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36683,"nodeType":"RevertStatement","src":"1083:26:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36686,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1133:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1140:12:39","memberName":"managerFacet","nodeType":"MemberAccess","referencedDeclaration":36645,"src":"1133:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1164:1:39","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":36689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1156:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36688,"name":"address","nodeType":"ElementaryTypeName","src":"1156:7:39","typeDescriptions":{}}},"id":36691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1156:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1133:33:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36697,"nodeType":"IfStatement","src":"1129:90:39","trueBody":{"id":36696,"nodeType":"Block","src":"1168:51:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36693,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"1189:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36695,"nodeType":"RevertStatement","src":"1182:26:39"}]}},{"expression":{"arguments":[{"expression":{"id":36701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1257:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1261:6:39","memberName":"sender","nodeType":"MemberAccess","src":"1257:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":36698,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1229:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1240:16:39","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":41102,"src":"1229:27:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":36703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1229:39:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36704,"nodeType":"ExpressionStatement","src":"1229:39:39"},{"expression":{"arguments":[{"id":36708,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36656,"src":"1314:11:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":36711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:1:39","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":36710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1334:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36709,"name":"address","nodeType":"ElementaryTypeName","src":"1334:7:39","typeDescriptions":{}}},"id":36712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1334:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":36715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1367:1:39","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":36714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1357:9:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":36713,"name":"bytes","nodeType":"ElementaryTypeName","src":"1361:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":36716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1357:12:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":36705,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1278:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1289:10:39","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41262,"src":"1278:21:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":36717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1301:11:39","1327:5:39","1346:9:39"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1278:93:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36718,"nodeType":"ExpressionStatement","src":"1278:93:39"},{"assignments":[36723],"declarations":[{"constant":false,"id":36723,"mutability":"mutable","name":"ds","nameLocation":"1416:2:39","nodeType":"VariableDeclaration","scope":36796,"src":"1382:36:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36722,"nodeType":"UserDefinedTypeName","pathNode":{"id":36721,"name":"LibDiamond.DiamondStorage","nameLocations":["1382:10:39","1393:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"1382:25:39"},"referencedDeclaration":41072,"src":"1382:25:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36724,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1421:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1432:14:39","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"1421:25:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1421:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1382:66:39"},{"expression":{"id":36737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36728,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36723,"src":"1488:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1491:19:39","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"1488:22:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36735,"indexExpression":{"expression":{"arguments":[{"id":36731,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"1516:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}],"id":36730,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1511:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1511:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$40241","typeString":"type(contract IERC165)"}},"id":36733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1525:11:39","memberName":"interfaceId","nodeType":"MemberAccess","src":"1511:25:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1488:49:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1540:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1488:56:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36738,"nodeType":"ExpressionStatement","src":"1488:56:39"},{"expression":{"id":36748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36739,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36723,"src":"1554:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1557:19:39","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"1554:22:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36746,"indexExpression":{"expression":{"arguments":[{"id":36742,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"1582:11:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}],"id":36741,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1577:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1577:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$40189","typeString":"type(contract IDiamondCut)"}},"id":36744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1595:11:39","memberName":"interfaceId","nodeType":"MemberAccess","src":"1577:29:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1554:53:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1610:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1554:60:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36749,"nodeType":"ExpressionStatement","src":"1554:60:39"},{"expression":{"id":36759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36750,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36723,"src":"1624:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1627:19:39","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"1624:22:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36757,"indexExpression":{"expression":{"arguments":[{"id":36753,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"1652:13:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}],"id":36752,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1647:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$40230","typeString":"type(contract IDiamondLoupe)"}},"id":36755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1667:11:39","memberName":"interfaceId","nodeType":"MemberAccess","src":"1647:31:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1624:55:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1682:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1624:62:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36760,"nodeType":"ExpressionStatement","src":"1624:62:39"},{"expression":{"id":36766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36761,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1697:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1699:7:39","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":47339,"src":"1697:9:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36764,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1709:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1716:7:39","memberName":"gateway","nodeType":"MemberAccess","referencedDeclaration":36641,"src":"1709:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1697:26:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36767,"nodeType":"ExpressionStatement","src":"1697:26:39"},{"expression":{"id":36773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36768,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1733:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1735:19:39","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47342,"src":"1733:21:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36771,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1757:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1764:11:39","memberName":"getterFacet","nodeType":"MemberAccess","referencedDeclaration":36643,"src":"1757:18:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1733:42:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36774,"nodeType":"ExpressionStatement","src":"1733:42:39"},{"expression":{"id":36780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36775,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1785:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1787:20:39","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47344,"src":"1785:22:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36778,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1810:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1817:12:39","memberName":"managerFacet","nodeType":"MemberAccess","referencedDeclaration":36645,"src":"1810:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1785:44:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36781,"nodeType":"ExpressionStatement","src":"1785:44:39"},{"expression":{"id":36787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36782,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1840:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1842:21:39","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47348,"src":"1840:23:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36785,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1866:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1873:21:39","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":36648,"src":"1866:28:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"1840:54:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36788,"nodeType":"ExpressionStatement","src":"1840:54:39"},{"expression":{"id":36794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36789,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1904:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1906:22:39","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47352,"src":"1904:24:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36792,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1931:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1938:22:39","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":36651,"src":"1931:29:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"1904:56:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36795,"nodeType":"ExpressionStatement","src":"1904:56:39"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36656,"mutability":"mutable","name":"_diamondCut","nameLocation":"879:11:39","nodeType":"VariableDeclaration","scope":36797,"src":"852:38:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":36654,"nodeType":"UserDefinedTypeName","pathNode":{"id":36653,"name":"IDiamond.FacetCut","nameLocations":["852:8:39","861:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"852:17:39"},"referencedDeclaration":40159,"src":"852:17:39","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":36655,"nodeType":"ArrayTypeName","src":"852:19:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":36659,"mutability":"mutable","name":"params","nameLocation":"917:6:39","nodeType":"VariableDeclaration","scope":36797,"src":"892:31:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":36658,"nodeType":"UserDefinedTypeName","pathNode":{"id":36657,"name":"ConstructorParams","nameLocations":["892:17:39"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"892:17:39"},"referencedDeclaration":36652,"src":"892:17:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"851:73:39"},"returnParameters":{"id":36661,"nodeType":"ParameterList","parameters":[],"src":"925:0:39"},"scope":36853,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36836,"nodeType":"FunctionDefinition","src":"1973:1239:39","nodes":[],"body":{"id":36835,"nodeType":"Block","src":"2003:1209:39","nodes":[],"statements":[{"assignments":[36804],"declarations":[{"constant":false,"id":36804,"mutability":"mutable","name":"ds","nameLocation":"2047:2:39","nodeType":"VariableDeclaration","scope":36835,"src":"2013:36:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36803,"nodeType":"UserDefinedTypeName","pathNode":{"id":36802,"name":"LibDiamond.DiamondStorage","nameLocations":["2013:10:39","2024:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"2013:25:39"},"referencedDeclaration":41072,"src":"2013:25:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36805,"nodeType":"VariableDeclarationStatement","src":"2013:36:39"},{"assignments":[36807],"declarations":[{"constant":false,"id":36807,"mutability":"mutable","name":"position","nameLocation":"2067:8:39","nodeType":"VariableDeclaration","scope":36835,"src":"2059:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36806,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2059:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36810,"initialValue":{"expression":{"id":36808,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2078:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2089:24:39","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40973,"src":"2078:35:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2059:54:39"},{"AST":{"nodeType":"YulBlock","src":"2209:43:39","statements":[{"nodeType":"YulAssignment","src":"2223:19:39","value":{"name":"position","nodeType":"YulIdentifier","src":"2234:8:39"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2223:7:39"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":36804,"isOffset":false,"isSlot":true,"src":"2223:7:39","suffix":"slot","valueSize":1},{"declaration":36807,"isOffset":false,"isSlot":false,"src":"2234:8:39","valueSize":1}],"id":36811,"nodeType":"InlineAssembly","src":"2200:52:39"},{"assignments":[36813],"declarations":[{"constant":false,"id":36813,"mutability":"mutable","name":"facet","nameLocation":"2313:5:39","nodeType":"VariableDeclaration","scope":36835,"src":"2305:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36812,"name":"address","nodeType":"ElementaryTypeName","src":"2305:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36820,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36814,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36804,"src":"2321:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2324:31:39","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"2321:34:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36818,"indexExpression":{"expression":{"id":36816,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2356:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2360:3:39","memberName":"sig","nodeType":"MemberAccess","src":"2356:7:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2321:43:39","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2365:12:39","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"2321:56:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2305:72:39"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36821,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36813,"src":"2391:5:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2408:1:39","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":36823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2400:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36822,"name":"address","nodeType":"ElementaryTypeName","src":"2400:7:39","typeDescriptions":{}}},"id":36825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2400:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2391:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36833,"nodeType":"IfStatement","src":"2387:82:39","trueBody":{"id":36832,"nodeType":"Block","src":"2412:57:39","statements":[{"errorCall":{"arguments":[{"expression":{"id":36828,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2450:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2454:3:39","memberName":"sig","nodeType":"MemberAccess","src":"2450:7:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":36827,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36636,"src":"2433:16:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":36830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2433:25:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36831,"nodeType":"RevertStatement","src":"2426:32:39"}]}},{"AST":{"nodeType":"YulBlock","src":"2622:584:39","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2705:1:39","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2708:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"2711:12:39"},"nodeType":"YulFunctionCall","src":"2711:14:39"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2692:12:39"},"nodeType":"YulFunctionCall","src":"2692:34:39"},"nodeType":"YulExpressionStatement","src":"2692:34:39"},{"nodeType":"YulVariableDeclaration","src":"2792:65:39","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2819:3:39"},"nodeType":"YulFunctionCall","src":"2819:5:39"},{"name":"facet","nodeType":"YulIdentifier","src":"2826:5:39"},{"kind":"number","nodeType":"YulLiteral","src":"2833:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"2836:12:39"},"nodeType":"YulFunctionCall","src":"2836:14:39"},{"kind":"number","nodeType":"YulLiteral","src":"2852:1:39","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2855:1:39","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"2806:12:39"},"nodeType":"YulFunctionCall","src":"2806:51:39"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"2796:6:39","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2921:1:39","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2924:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2927:14:39"},"nodeType":"YulFunctionCall","src":"2927:16:39"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"2906:14:39"},"nodeType":"YulFunctionCall","src":"2906:38:39"},"nodeType":"YulExpressionStatement","src":"2906:38:39"},{"cases":[{"body":{"nodeType":"YulBlock","src":"3057:59:39","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3082:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3085:14:39"},"nodeType":"YulFunctionCall","src":"3085:16:39"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3075:6:39"},"nodeType":"YulFunctionCall","src":"3075:27:39"},"nodeType":"YulExpressionStatement","src":"3075:27:39"}]},"nodeType":"YulCase","src":"3050:66:39","value":{"kind":"number","nodeType":"YulLiteral","src":"3055:1:39","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"3137:59:39","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3162:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3165:14:39"},"nodeType":"YulFunctionCall","src":"3165:16:39"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"3155:6:39"},"nodeType":"YulFunctionCall","src":"3155:27:39"},"nodeType":"YulExpressionStatement","src":"3155:27:39"}]},"nodeType":"YulCase","src":"3129:67:39","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"3031:6:39"},"nodeType":"YulSwitch","src":"3024:172:39"}]},"evmVersion":"paris","externalReferences":[{"declaration":36813,"isOffset":false,"isSlot":false,"src":"2826:5:39","valueSize":1}],"id":36834,"nodeType":"InlineAssembly","src":"2613:593:39"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"1982:9:39","parameters":{"id":36798,"nodeType":"ParameterList","parameters":[],"src":"1991:2:39"},"returnParameters":{"id":36799,"nodeType":"ParameterList","parameters":[],"src":"2003:0:39"},"scope":36853,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36844,"nodeType":"FunctionDefinition","src":"3279:56:39","nodes":[],"body":{"id":36843,"nodeType":"Block","src":"3307:28:39","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36840,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36836,"src":"3317:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:11:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36842,"nodeType":"ExpressionStatement","src":"3317:11:39"}]},"documentation":{"id":36837,"nodeType":"StructuredDocumentation","src":"3218:56:39","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36838,"nodeType":"ParameterList","parameters":[],"src":"3287:2:39"},"returnParameters":{"id":36839,"nodeType":"ParameterList","parameters":[],"src":"3307:0:39"},"scope":36853,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36852,"nodeType":"FunctionDefinition","src":"3408:55:39","nodes":[],"body":{"id":36851,"nodeType":"Block","src":"3435:28:39","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36848,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36836,"src":"3445:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3445:11:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36850,"nodeType":"ExpressionStatement","src":"3445:11:39"}]},"documentation":{"id":36845,"nodeType":"StructuredDocumentation","src":"3341:62:39","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36846,"nodeType":"ParameterList","parameters":[],"src":"3415:2:39"},"returnParameters":{"id":36847,"nodeType":"ParameterList","parameters":[],"src":"3435:0:39"},"scope":36853,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetRegistryDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36853],"name":"SubnetRegistryDiamond","nameLocation":"565:21:39","scope":36854,"usedErrors":[36636,37400,37516,40981,40986,40990,40994,40999,41005,41018,41022,41026,41030,41034,41038,41042]}],"license":"MIT OR Apache-2.0"},"id":39} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct SubnetRegistryDiamond.ConstructorParams","components":[{"name":"gateway","type":"address","internalType":"address"},{"name":"getterFacet","type":"address","internalType":"address"},{"name":"managerFacet","type":"address","internalType":"address"},{"name":"subnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"subnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FacetCannotBeZero","inputs":[]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"GatewayCannotBeZero","inputs":[]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"556:2909:39:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;556:2909:39;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;556:2909:39;939:28;935:87;;556:2909;;;;-1:-1:-1;;;;;556:2909:39;1035:32;1031:89;;556:2909;;;;-1:-1:-1;;;;;556:2909:39;1133:33;1129:90;;2258:16:62;556:2909:39;;-1:-1:-1;;;;;;556:2909:39;1257:10;556:2909;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;-1:-1:-1;556:2909:39;;;;-1:-1:-1;2937:19:62;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;3911:74:62;556:2909:39;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;:::i;:::-;3911:74:62;;;1488:22:39;556:2909;;;;;;;;-1:-1:-1;;556:2909:39;;;;;;;;;;;;;;;;;-1:-1:-1;;;;556:2909:39;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;1488:22;556:2909;;;;;;;;;;;;;;1866:28;556:2909;;1488:22;;1866:28;;556:2909;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;;;;;;-1:-1:-1;;;556:2909:39;;;;;;;;;;-1:-1:-1;;;;556:2909:39;;1931:29;556:2909;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;1904:24;556:2909;;1904:24;556:2909;;;;;;;;;;1904:24;-1:-1:-1;556:2909:39;;;-1:-1:-1;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1904:24;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;1904:24;556:2909;;-1:-1:-1;556:2909:39;;;-1:-1:-1;556:2909:39;-1:-1:-1;556:2909:39;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:62;556:2909:39;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;556:2909:39;;;;;3142:29:62;3138:122;;556:2909:39;3309:23:62;;;;:::i;:::-;;:30;556:2909:39;;;;;;;3357:37:62;;;4150:27;;;4146:116;;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;;4385:74:62;556:2909:39;;:::i;:::-;;;;;;;;;-1:-1:-1;;;556:2909:39;;;;4385:74:62;;:::i;:::-;556:2909:39;;4526:21:62;-1:-1:-1;4521:677:62;4549:22;;;;;;3353:466;;;;;556:2909:39;3353:466:62;;556:2909:39;2917:18:62;;4526:21;4607:33;;;;:::i;:::-;556:2909:39;-1:-1:-1;;;;;;556:2909:39;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;;-1:-1:-1;;;;;556:2909:39;4751:128:62;;556:2909:39;;;:::i;:::-;;;;;;;;;;4939:107:62;;;556:2909:39;;;-1:-1:-1;;;;;;556:2909:39;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;;;;;;-1:-1:-1;;;;;;556:2909:39;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;-1:-1:-1;;;556:2909:39;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:62;;;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;4751:128:62;556:2909:39;;-1:-1:-1;;;4811:53:62;;-1:-1:-1;;;;;;556:2909:39;;4811:53:62;;;556:2909:39;;;4811:53:62;4146:116;556:2909:39;;-1:-1:-1;;;4200:51:62;;556:2909:39;4200:51:62;;;556:2909:39;;;;;;;;;;;:::i;:::-;4200:51:62;;;3353:466;556:2909:39;3484:41:62;;556:2909:39;;5372:27:62;;;5368:131;;5508:81;556:2909:39;;:::i;:::-;;;;;;;;;-1:-1:-1;;;556:2909:39;;;;5508:81:62;;:::i;:::-;556:2909:39;;5652:21:62;-1:-1:-1;5675:18:62;;;;;;3480:339;;;;556:2909:39;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;556:2909:39;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;-1:-1:-1;;;;;556:2909:39;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;5652:21:62;;6268:123;556:2909:39;;;;6328:48:62;;;;;;;;;556:2909:39;6328:48:62;6111:144;556:2909:39;;-1:-1:-1;;;6174:66:62;;;;;556:2909:39;;;;;6174:66:62;5980:118;556:2909:39;;-1:-1:-1;;;6043:40:62;;;;;556:2909:39;;;;;6043:40:62;5368:131;556:2909:39;;-1:-1:-1;;;5422:66:62;;556:2909:39;5422:66:62;;;556:2909:39;;;;;;;;;;;:::i;3480:339:62:-;3629:30;3619:40;;3629:30;;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;6826:27:62;;6822:115;;556:2909:39;;;6999:21:62;-1:-1:-1;7022:18:62;;;;;;3615:204;;;;556:2909:39;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;556:2909:39;;;;-1:-1:-1;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;;;-1:-1:-1;556:2909:39;;;;:::i;:::-;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;7278:61:62;7274:153;;556:2909:39;;-1:-1:-1;;;;;556:2909:39;7597:4:62;7538:64;7534:149;;556:2909:39;;;;;;;7747:15:62;556:2909:39;;;;;;;;7780:68:62;7776:412;;6999:21;556:2909:39;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;-1:-1:-1;;556:2909:39;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;-1:-1:-1;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;;-1:-1:-1;556:2909:39;;;;;6999:21:62;;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;7776:412:62;556:2909:39;;7890:27:62;8033:140;7890:27;;:::i;:::-;556:2909:39;;;;;;;;7935:65:62;556:2909:39;;;;;;7935:65:62;:::i;:::-;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;556:2909:39;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;-1:-1:-1;;;;556:2909:39;;;;;;;-1:-1:-1;;;556:2909:39;;;;;8033:140:62;7776:412;;;;7534:149;556:2909:39;;-1:-1:-1;;;7629:39:62;;;;;556:2909:39;;;;;7629:39:62;7274:153;556:2909:39;;-1:-1:-1;;;7366:46:62;;;;;556:2909:39;;;;;7366:46:62;6822:115;556:2909:39;;;;6876:50:62;;;;;;;;;556:2909:39;6876:50:62;3615:204;556:2909:39;;-1:-1:-1;;;3773:31:62;;556:2909:39;;;;3773:31:62;;;;556:2909:39;:::i;:::-;3773:31:62;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;3138:122:62;556:2909:39;;-1:-1:-1;;;3198:47:62;;;;;556:2909:39;;;;;3198:47:62;1129:90:39;556:2909;;-1:-1:-1;;;1189:19:39;;;;;935:87;556:2909;;-1:-1:-1;;;990:21:39;;;;;556:2909;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;556:2909:39;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;556:2909:39;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;556:2909:39;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;-1:-1:-1;556:2909:39;;;-1:-1:-1;556:2909:39;;;;;;;;;;:::o;9308:320:62:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;556:2909:39;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;556:2909:39;;;9566:45:62;;;556:2909:39;;;;;;;;;;;;;;;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033","sourceMap":"556:2909:39:-:0;;;;;;;-1:-1:-1;2356:7:39;;-1:-1:-1;;;;;;2356:7:39;260:43:62;;;;;;556:2909:39;260:43:62;;;-1:-1:-1;;;;;260:43:62;;2391:19:39;;2387:82;;556:2909;;;;;2613:593;;;556:2909;;2613:593;;;;;;;;;;;;;;;;;2387:82;260:43:62;;556:2909:39;260:43:62;2433:25:39;;;;;;;;;260:43:62;2433:25:39;556:2909;-1:-1:-1;2356:7:39;;-1:-1:-1;;;;;;2356:7:39;260:43:62;;;;;;556:2909:39;260:43:62;;;-1:-1:-1;;;;;260:43:62;;2391:19:39;;2387:82;;556:2909;;;;;2613:593;;;556:2909;;2613:593;;;;;;;;;;;;;2387:82;2433:25;;;556:2909;2433:25;;260:43:62;2433:25:39;556:2909;2433:25","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"getterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct SubnetRegistryDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FacetCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GatewayCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetRegistryDiamond.sol\":\"SubnetRegistryDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct SubnetRegistryDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"gateway","type":"address"},{"internalType":"address","name":"getterFacet","type":"address"},{"internalType":"address","name":"managerFacet","type":"address"},{"internalType":"bytes4[]","name":"subnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"subnetManagerSelectors","type":"bytes4[]"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[],"type":"error","name":"FacetCannotBeZero"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[],"type":"error","name":"GatewayCannotBeZero"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SubnetRegistryDiamond.sol":"SubnetRegistryDiamond"},"libraries":{},"viaIR":true},"sources":{"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/SubnetRegistryDiamond.sol","id":36854,"exportedSymbols":{"FacetCannotBeZero":[37516],"FunctionNotFound":[36636],"GatewayCannotBeZero":[37400],"IDiamond":[40170],"IDiamondCut":[40189],"IDiamondLoupe":[40230],"IERC165":[40241],"LibDiamond":[41626],"SubnetRegistryActorStorage":[47318],"SubnetRegistryDiamond":[36853]},"nodeType":"SourceUnit","src":"46:3420:39","nodes":[{"id":36617,"nodeType":"PragmaDirective","src":"46:23:39","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36619,"nodeType":"ImportDirective","src":"71:51:39","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":36618,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"79:8:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36621,"nodeType":"ImportDirective","src":"123:62:39","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../src/interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":36620,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"131:11:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36623,"nodeType":"ImportDirective","src":"186:61:39","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":36622,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"194:13:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36625,"nodeType":"ImportDirective","src":"248:49:39","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":36624,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"256:7:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36627,"nodeType":"ImportDirective","src":"298:78:39","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"./lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":47319,"symbolAliases":[{"foreign":{"id":36626,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47318,"src":"306:26:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36630,"nodeType":"ImportDirective","src":"377:78:39","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":36628,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"385:19:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36629,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"406:17:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36632,"nodeType":"ImportDirective","src":"456:48:39","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":41627,"symbolAliases":[{"foreign":{"id":36631,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"464:10:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36636,"nodeType":"ErrorDefinition","src":"505:49:39","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"511:16:39","parameters":{"id":36635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36634,"mutability":"mutable","name":"_functionSelector","nameLocation":"535:17:39","nodeType":"VariableDeclaration","scope":36636,"src":"528:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36633,"name":"bytes4","nodeType":"ElementaryTypeName","src":"528:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"527:26:39"}},{"id":36853,"nodeType":"ContractDefinition","src":"556:2909:39","nodes":[{"id":36639,"nodeType":"VariableDeclaration","src":"593:37:39","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"629:1:39","scope":36853,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":36638,"nodeType":"UserDefinedTypeName","pathNode":{"id":36637,"name":"SubnetRegistryActorStorage","nameLocations":["593:26:39"],"nodeType":"IdentifierPath","referencedDeclaration":47318,"src":"593:26:39"},"referencedDeclaration":47318,"src":"593:26:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":36652,"nodeType":"StructDefinition","src":"637:197:39","nodes":[],"canonicalName":"SubnetRegistryDiamond.ConstructorParams","members":[{"constant":false,"id":36641,"mutability":"mutable","name":"gateway","nameLocation":"680:7:39","nodeType":"VariableDeclaration","scope":36652,"src":"672:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36640,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36643,"mutability":"mutable","name":"getterFacet","nameLocation":"705:11:39","nodeType":"VariableDeclaration","scope":36652,"src":"697:19:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36642,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36645,"mutability":"mutable","name":"managerFacet","nameLocation":"734:12:39","nodeType":"VariableDeclaration","scope":36652,"src":"726:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36644,"name":"address","nodeType":"ElementaryTypeName","src":"726:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36648,"mutability":"mutable","name":"subnetGetterSelectors","nameLocation":"765:21:39","nodeType":"VariableDeclaration","scope":36652,"src":"756:30:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":36646,"name":"bytes4","nodeType":"ElementaryTypeName","src":"756:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36647,"nodeType":"ArrayTypeName","src":"756:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":36651,"mutability":"mutable","name":"subnetManagerSelectors","nameLocation":"805:22:39","nodeType":"VariableDeclaration","scope":36652,"src":"796:31:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":36649,"name":"bytes4","nodeType":"ElementaryTypeName","src":"796:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36650,"nodeType":"ArrayTypeName","src":"796:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"644:17:39","scope":36853,"visibility":"public"},{"id":36797,"nodeType":"FunctionDefinition","src":"840:1127:39","nodes":[],"body":{"id":36796,"nodeType":"Block","src":"925:1042:39","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36662,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"939:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"946:7:39","memberName":"gateway","nodeType":"MemberAccess","referencedDeclaration":36641,"src":"939:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"965:1:39","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":36665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"957:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36664,"name":"address","nodeType":"ElementaryTypeName","src":"957:7:39","typeDescriptions":{}}},"id":36667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"957:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"939:28:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36673,"nodeType":"IfStatement","src":"935:87:39","trueBody":{"id":36672,"nodeType":"Block","src":"969:53:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36669,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"990:19:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"990:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36671,"nodeType":"RevertStatement","src":"983:28:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36674,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1035:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1042:11:39","memberName":"getterFacet","nodeType":"MemberAccess","referencedDeclaration":36643,"src":"1035:18:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1065:1:39","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":36677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1057:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36676,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:39","typeDescriptions":{}}},"id":36679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1057:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1035:32:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36685,"nodeType":"IfStatement","src":"1031:89:39","trueBody":{"id":36684,"nodeType":"Block","src":"1069:51:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36681,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"1090:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1090:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36683,"nodeType":"RevertStatement","src":"1083:26:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36686,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1133:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1140:12:39","memberName":"managerFacet","nodeType":"MemberAccess","referencedDeclaration":36645,"src":"1133:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1164:1:39","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":36689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1156:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36688,"name":"address","nodeType":"ElementaryTypeName","src":"1156:7:39","typeDescriptions":{}}},"id":36691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1156:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1133:33:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36697,"nodeType":"IfStatement","src":"1129:90:39","trueBody":{"id":36696,"nodeType":"Block","src":"1168:51:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36693,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"1189:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36695,"nodeType":"RevertStatement","src":"1182:26:39"}]}},{"expression":{"arguments":[{"expression":{"id":36701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1257:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1261:6:39","memberName":"sender","nodeType":"MemberAccess","src":"1257:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":36698,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"1229:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1240:16:39","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":41046,"src":"1229:27:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":36703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1229:39:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36704,"nodeType":"ExpressionStatement","src":"1229:39:39"},{"expression":{"arguments":[{"id":36708,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36656,"src":"1314:11:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":36711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:1:39","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":36710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1334:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36709,"name":"address","nodeType":"ElementaryTypeName","src":"1334:7:39","typeDescriptions":{}}},"id":36712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1334:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":36715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1367:1:39","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":36714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1357:9:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":36713,"name":"bytes","nodeType":"ElementaryTypeName","src":"1361:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":36716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1357:12:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":36705,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"1278:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1289:10:39","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41206,"src":"1278:21:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":36717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1301:11:39","1327:5:39","1346:9:39"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1278:93:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36718,"nodeType":"ExpressionStatement","src":"1278:93:39"},{"assignments":[36723],"declarations":[{"constant":false,"id":36723,"mutability":"mutable","name":"ds","nameLocation":"1416:2:39","nodeType":"VariableDeclaration","scope":36796,"src":"1382:36:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36722,"nodeType":"UserDefinedTypeName","pathNode":{"id":36721,"name":"LibDiamond.DiamondStorage","nameLocations":["1382:10:39","1393:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"1382:25:39"},"referencedDeclaration":41016,"src":"1382:25:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36724,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"1421:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1432:14:39","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41028,"src":"1421:25:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41016_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1421:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1382:66:39"},{"expression":{"id":36737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36728,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36723,"src":"1488:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1491:19:39","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41013,"src":"1488:22:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36735,"indexExpression":{"expression":{"arguments":[{"id":36731,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"1516:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}],"id":36730,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1511:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1511:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$40241","typeString":"type(contract IERC165)"}},"id":36733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1525:11:39","memberName":"interfaceId","nodeType":"MemberAccess","src":"1511:25:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1488:49:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1540:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1488:56:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36738,"nodeType":"ExpressionStatement","src":"1488:56:39"},{"expression":{"id":36748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36739,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36723,"src":"1554:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1557:19:39","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41013,"src":"1554:22:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36746,"indexExpression":{"expression":{"arguments":[{"id":36742,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"1582:11:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}],"id":36741,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1577:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1577:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$40189","typeString":"type(contract IDiamondCut)"}},"id":36744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1595:11:39","memberName":"interfaceId","nodeType":"MemberAccess","src":"1577:29:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1554:53:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1610:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1554:60:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36749,"nodeType":"ExpressionStatement","src":"1554:60:39"},{"expression":{"id":36759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36750,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36723,"src":"1624:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1627:19:39","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41013,"src":"1624:22:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36757,"indexExpression":{"expression":{"arguments":[{"id":36753,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"1652:13:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}],"id":36752,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1647:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$40230","typeString":"type(contract IDiamondLoupe)"}},"id":36755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1667:11:39","memberName":"interfaceId","nodeType":"MemberAccess","src":"1647:31:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1624:55:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1682:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1624:62:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36760,"nodeType":"ExpressionStatement","src":"1624:62:39"},{"expression":{"id":36766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36761,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1697:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1699:7:39","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":47292,"src":"1697:9:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36764,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1709:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1716:7:39","memberName":"gateway","nodeType":"MemberAccess","referencedDeclaration":36641,"src":"1709:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1697:26:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36767,"nodeType":"ExpressionStatement","src":"1697:26:39"},{"expression":{"id":36773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36768,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1733:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1735:19:39","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47295,"src":"1733:21:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36771,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1757:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1764:11:39","memberName":"getterFacet","nodeType":"MemberAccess","referencedDeclaration":36643,"src":"1757:18:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1733:42:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36774,"nodeType":"ExpressionStatement","src":"1733:42:39"},{"expression":{"id":36780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36775,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1785:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1787:20:39","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47297,"src":"1785:22:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36778,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1810:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1817:12:39","memberName":"managerFacet","nodeType":"MemberAccess","referencedDeclaration":36645,"src":"1810:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1785:44:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36781,"nodeType":"ExpressionStatement","src":"1785:44:39"},{"expression":{"id":36787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36782,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1840:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1842:21:39","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47301,"src":"1840:23:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36785,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1866:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1873:21:39","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":36648,"src":"1866:28:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"1840:54:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36788,"nodeType":"ExpressionStatement","src":"1840:54:39"},{"expression":{"id":36794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36789,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1904:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47318_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1906:22:39","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47305,"src":"1904:24:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36792,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1931:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1938:22:39","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":36651,"src":"1931:29:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"1904:56:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36795,"nodeType":"ExpressionStatement","src":"1904:56:39"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36656,"mutability":"mutable","name":"_diamondCut","nameLocation":"879:11:39","nodeType":"VariableDeclaration","scope":36797,"src":"852:38:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":36654,"nodeType":"UserDefinedTypeName","pathNode":{"id":36653,"name":"IDiamond.FacetCut","nameLocations":["852:8:39","861:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"852:17:39"},"referencedDeclaration":40159,"src":"852:17:39","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":36655,"nodeType":"ArrayTypeName","src":"852:19:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":36659,"mutability":"mutable","name":"params","nameLocation":"917:6:39","nodeType":"VariableDeclaration","scope":36797,"src":"892:31:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":36658,"nodeType":"UserDefinedTypeName","pathNode":{"id":36657,"name":"ConstructorParams","nameLocations":["892:17:39"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"892:17:39"},"referencedDeclaration":36652,"src":"892:17:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"851:73:39"},"returnParameters":{"id":36661,"nodeType":"ParameterList","parameters":[],"src":"925:0:39"},"scope":36853,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36836,"nodeType":"FunctionDefinition","src":"1973:1239:39","nodes":[],"body":{"id":36835,"nodeType":"Block","src":"2003:1209:39","nodes":[],"statements":[{"assignments":[36804],"declarations":[{"constant":false,"id":36804,"mutability":"mutable","name":"ds","nameLocation":"2047:2:39","nodeType":"VariableDeclaration","scope":36835,"src":"2013:36:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36803,"nodeType":"UserDefinedTypeName","pathNode":{"id":36802,"name":"LibDiamond.DiamondStorage","nameLocations":["2013:10:39","2024:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":41016,"src":"2013:25:39"},"referencedDeclaration":41016,"src":"2013:25:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36805,"nodeType":"VariableDeclarationStatement","src":"2013:36:39"},{"assignments":[36807],"declarations":[{"constant":false,"id":36807,"mutability":"mutable","name":"position","nameLocation":"2067:8:39","nodeType":"VariableDeclaration","scope":36835,"src":"2059:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36806,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2059:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36810,"initialValue":{"expression":{"id":36808,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41626,"src":"2078:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41626_$","typeString":"type(library LibDiamond)"}},"id":36809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2089:24:39","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40917,"src":"2078:35:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2059:54:39"},{"AST":{"nodeType":"YulBlock","src":"2209:43:39","statements":[{"nodeType":"YulAssignment","src":"2223:19:39","value":{"name":"position","nodeType":"YulIdentifier","src":"2234:8:39"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2223:7:39"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":36804,"isOffset":false,"isSlot":true,"src":"2223:7:39","suffix":"slot","valueSize":1},{"declaration":36807,"isOffset":false,"isSlot":false,"src":"2234:8:39","valueSize":1}],"id":36811,"nodeType":"InlineAssembly","src":"2200:52:39"},{"assignments":[36813],"declarations":[{"constant":false,"id":36813,"mutability":"mutable","name":"facet","nameLocation":"2313:5:39","nodeType":"VariableDeclaration","scope":36835,"src":"2305:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36812,"name":"address","nodeType":"ElementaryTypeName","src":"2305:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36820,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36814,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36804,"src":"2321:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41016_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2324:31:39","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41006,"src":"2321:34:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41001_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36818,"indexExpression":{"expression":{"id":36816,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2356:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2360:3:39","memberName":"sig","nodeType":"MemberAccess","src":"2356:7:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2321:43:39","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41001_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2365:12:39","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40998,"src":"2321:56:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2305:72:39"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36821,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36813,"src":"2391:5:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2408:1:39","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":36823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2400:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36822,"name":"address","nodeType":"ElementaryTypeName","src":"2400:7:39","typeDescriptions":{}}},"id":36825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2400:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2391:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36833,"nodeType":"IfStatement","src":"2387:82:39","trueBody":{"id":36832,"nodeType":"Block","src":"2412:57:39","statements":[{"errorCall":{"arguments":[{"expression":{"id":36828,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2450:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2454:3:39","memberName":"sig","nodeType":"MemberAccess","src":"2450:7:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":36827,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36636,"src":"2433:16:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":36830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2433:25:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36831,"nodeType":"RevertStatement","src":"2426:32:39"}]}},{"AST":{"nodeType":"YulBlock","src":"2622:584:39","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2705:1:39","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2708:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"2711:12:39"},"nodeType":"YulFunctionCall","src":"2711:14:39"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2692:12:39"},"nodeType":"YulFunctionCall","src":"2692:34:39"},"nodeType":"YulExpressionStatement","src":"2692:34:39"},{"nodeType":"YulVariableDeclaration","src":"2792:65:39","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2819:3:39"},"nodeType":"YulFunctionCall","src":"2819:5:39"},{"name":"facet","nodeType":"YulIdentifier","src":"2826:5:39"},{"kind":"number","nodeType":"YulLiteral","src":"2833:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"2836:12:39"},"nodeType":"YulFunctionCall","src":"2836:14:39"},{"kind":"number","nodeType":"YulLiteral","src":"2852:1:39","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2855:1:39","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"2806:12:39"},"nodeType":"YulFunctionCall","src":"2806:51:39"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"2796:6:39","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2921:1:39","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2924:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2927:14:39"},"nodeType":"YulFunctionCall","src":"2927:16:39"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"2906:14:39"},"nodeType":"YulFunctionCall","src":"2906:38:39"},"nodeType":"YulExpressionStatement","src":"2906:38:39"},{"cases":[{"body":{"nodeType":"YulBlock","src":"3057:59:39","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3082:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3085:14:39"},"nodeType":"YulFunctionCall","src":"3085:16:39"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3075:6:39"},"nodeType":"YulFunctionCall","src":"3075:27:39"},"nodeType":"YulExpressionStatement","src":"3075:27:39"}]},"nodeType":"YulCase","src":"3050:66:39","value":{"kind":"number","nodeType":"YulLiteral","src":"3055:1:39","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"3137:59:39","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3162:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3165:14:39"},"nodeType":"YulFunctionCall","src":"3165:16:39"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"3155:6:39"},"nodeType":"YulFunctionCall","src":"3155:27:39"},"nodeType":"YulExpressionStatement","src":"3155:27:39"}]},"nodeType":"YulCase","src":"3129:67:39","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"3031:6:39"},"nodeType":"YulSwitch","src":"3024:172:39"}]},"evmVersion":"paris","externalReferences":[{"declaration":36813,"isOffset":false,"isSlot":false,"src":"2826:5:39","valueSize":1}],"id":36834,"nodeType":"InlineAssembly","src":"2613:593:39"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"1982:9:39","parameters":{"id":36798,"nodeType":"ParameterList","parameters":[],"src":"1991:2:39"},"returnParameters":{"id":36799,"nodeType":"ParameterList","parameters":[],"src":"2003:0:39"},"scope":36853,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36844,"nodeType":"FunctionDefinition","src":"3279:56:39","nodes":[],"body":{"id":36843,"nodeType":"Block","src":"3307:28:39","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36840,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36836,"src":"3317:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:11:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36842,"nodeType":"ExpressionStatement","src":"3317:11:39"}]},"documentation":{"id":36837,"nodeType":"StructuredDocumentation","src":"3218:56:39","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36838,"nodeType":"ParameterList","parameters":[],"src":"3287:2:39"},"returnParameters":{"id":36839,"nodeType":"ParameterList","parameters":[],"src":"3307:0:39"},"scope":36853,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36852,"nodeType":"FunctionDefinition","src":"3408:55:39","nodes":[],"body":{"id":36851,"nodeType":"Block","src":"3435:28:39","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36848,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36836,"src":"3445:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3445:11:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36850,"nodeType":"ExpressionStatement","src":"3445:11:39"}]},"documentation":{"id":36845,"nodeType":"StructuredDocumentation","src":"3341:62:39","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36846,"nodeType":"ParameterList","parameters":[],"src":"3415:2:39"},"returnParameters":{"id":36847,"nodeType":"ParameterList","parameters":[],"src":"3435:0:39"},"scope":36853,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetRegistryDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36853],"name":"SubnetRegistryDiamond","nameLocation":"565:21:39","scope":36854,"usedErrors":[36636,37400,37516,40925,40930,40934,40938,40943,40949,40962,40966,40970,40974,40978,40982,40986]}],"license":"MIT OR Apache-2.0"},"id":39} \ No newline at end of file diff --git a/.out/SubnetRegistryHandler.sol/SubnetRegistryHandler.json b/.out/SubnetRegistryHandler.sol/SubnetRegistryHandler.json index 792977266..02c347284 100644 --- a/.out/SubnetRegistryHandler.sol/SubnetRegistryHandler.json +++ b/.out/SubnetRegistryHandler.sol/SubnetRegistryHandler.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_registry","type":"address","internalType":"contract SubnetRegistryDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"deploySubnetActorFromRegistry","inputs":[{"name":"_minCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"_activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"_minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"_pathSize","type":"uint8","internalType":"uint8"},{"name":"_powerScale","type":"int8","internalType":"int8"},{"name":"seed","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getGateway","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwners","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedBy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedWithNonce","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getUserLastNonce","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x60803461007a57601f610c0a38819003918201601f19168301916001600160401b0383118484101761007f5780849260209460405283398101031261007a57516001600160a01b0381169081900361007a5760018060a01b0319818160115416176011556012541617601255604051610b7490816100968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c908163030f6051146108615750806342bf3cc11461080f57806358b1bc921461079557806364675ce8146101c0578063a0e67e2b146101035763ce75761f1461006357600080fd5b346101005760203660031901126101005761007c610916565b601254604051631163dca560e01b81526001600160a01b03928316600482015291906020908390602490829085165afa9182156100f557602093926100c6575b5060405191168152f35b6100e7919250833d81116100ee575b6100df8183610978565b810190610999565b90386100bc565b503d6100d5565b6040513d85823e3d90fd5b80fd5b50346101005780600319360112610100576040518091600f549081835260208093018092600f83527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80290835b8181106101ac5750505084610165910385610978565b60405193838594850191818652518092526040850193925b82811061018c57505050500390f35b83516001600160a01b03168552869550938101939281019260010161017d565b82548452928601926001928301920161014f565b503461010057610120366003190112610100576101db610931565b906001600160401b0360443516604435036101005761ffff60643516606435036101005760ff60843516608435036101005760ff60c4351660c435036101005760e435810b60e43503610100576004358260443560643560843560a4359260c4359760e43595670de0b6b3a764000090818911801561078d575b610784575b600a6001600160401b0360443516118015610771575b610768575b603360ff60843516108015610759575b610750575b601260e4358b0b13610747575b6001600160401b03166001811190811561073e575b50610735575b600560ff60c435161161072c575b85118015610724575b610717575b603261ffff60643516118015610709575b610700575b6102f060ff8a166109b8565b966102fe6040519889610978565b60ff8a16808952601f1990610312906109b8565b013660208a0137885b60ff8b1681106106c657506040519899506004976103388a610947565b607b8a526020808b01919091526012546040516342bf3cc160e01b8152998a9182906001600160a01b03165afa9788156106bb578a9861069a575b5089602060405161038381610947565b82815201526040519761039589610947565b8a89528a60208a0152604051998a6101808101106001600160401b036101808d011117610686576101808b016040908152908b526001600160a01b0390911660208b015289018a905260608901526001600160401b0390811660808901521660a087015260ff1660c086015261ffff1660e0850152610100840152830b610120830152610140820183905261016082015261043261010435610a82565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156106825760405163ca669fa760e01b81526001600160a01b0382166004820152838160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561067757610648575b5060018060a01b036011541660405192637be005d560e01b845260206004850152602081516101a060248701526001600160401b038151166101c487015201519060406101e48601526102048501825180915260206102248701930190875b8181106106295750505060208101516001600160a01b0316604486015260408101516001811015610615576064860152606081015160848601526001600160401b0360808201511660a48601526001600160401b0360a08201511660c486015260ff60c08201511660e486015261ffff60e082015116610104860152610100810151610124860152610120810151860b610144860152610140810151600381101561061557610164860152610160015180516002811015610615576101848601526020908101516001600160a01b03166101a486015291849182900390829087905af19182156100f5576105f2926105f6575b506001600160a01b03166109f9565b5080f35b61060e9060203d6020116100ee576100df8183610978565b50386105e3565b634e487b7160e01b87526021600452602487fd5b82516001600160a01b03168552602094850194909201916001016104f0565b6001600160401b038194929411610663576040529138610491565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b8280fd5b634e487b7160e01b8c52604160045260248cfd5b6106b491985060203d6020116100ee576100df8183610978565b9638610373565b6040513d8c823e3d90fd5b6001600160a01b0381166106da828b6109cf565b5260001981146106ec5760010161031b565b634e487b7160e01b8a52601160045260248afd5b603293506102e4565b5061ffff60643516156102df565b6402540be40094506102ce565b5084156102c9565b600199506102c0565b600191506102b2565b905015386102ac565b60129750610297565b6046945061028a565b50606460ff6084351611610285565b600a9350610275565b506001600160401b036044351615610270565b9750809761025a565b508815610255565b5034610100576040366003190112610100576107af610916565b604460206107bb610931565b601254604051639836b75f60e01b81526001600160a01b0395861660048201526001600160401b0390921660248301529093928491829085165afa9182156100f557602093926100c6575060405191168152f35b50346101005780600319360112610100576012546040516342bf3cc160e01b8152906001600160a01b03906020908390600490829085165afa9182156100f557602093926100c6575060405191168152f35b9050346108fe5760209182600319360112610100578282602481610883610916565b60125463030f605160e01b83526001600160a01b039182166004840152165afa9182156109095781926108c4575b50506001600160401b0360405191168152f35b9091508281813d8311610902575b6108dc8183610978565b810103126108fe5751906001600160401b0382168203610100575038806108b1565b5080fd5b503d6108d2565b50604051903d90823e3d90fd5b600435906001600160a01b038216820361092c57565b600080fd5b602435906001600160401b038216820361092c57565b604081019081106001600160401b0382111761096257604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761096257604052565b9081602091031261092c57516001600160a01b038116810361092c5790565b6001600160401b0381116109625760051b60200190565b80518210156109e35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600081815260106020526040812054610a7d57600f5468010000000000000000811015610663576001810180600f55811015610a695790826040927f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020155600f5492815260106020522055600190565b634e487b7160e01b82526032600452602482fd5b905090565b600f548015808015610b33575b15610a9b575050503390565b6040519081838152826020809201600f6000527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8029260005b878110610b1c575050610ae892500383610978565b610b06576001600160a01b0392610b01929006906109cf565b511690565b634e487b7160e01b600052601260045260246000fd5b845483526001948501948794509282019201610ad3565b506003831615610a8f56fea2646970667358221220e68569e636295e15b480657ffe238ce8d2b879bce7934a616c8d09bf1b3c3a1164736f6c63430008130033","sourceMap":"814:4673:98:-:0;;;;;;;;;;;;;-1:-1:-1;;814:4673:98;;;;-1:-1:-1;;;;;814:4673:98;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;;;;;;;;;;;1767:61;814:4673;;;1767:61;814:4673;1838:59;814:4673;;;1838:59;814:4673;;;;;;;;;;;-1:-1:-1;814:4673:98;;;;;;-1:-1:-1;814:4673:98;;;;;-1:-1:-1;814:4673:98","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c908163030f6051146108615750806342bf3cc11461080f57806358b1bc921461079557806364675ce8146101c0578063a0e67e2b146101035763ce75761f1461006357600080fd5b346101005760203660031901126101005761007c610916565b601254604051631163dca560e01b81526001600160a01b03928316600482015291906020908390602490829085165afa9182156100f557602093926100c6575b5060405191168152f35b6100e7919250833d81116100ee575b6100df8183610978565b810190610999565b90386100bc565b503d6100d5565b6040513d85823e3d90fd5b80fd5b50346101005780600319360112610100576040518091600f549081835260208093018092600f83527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80290835b8181106101ac5750505084610165910385610978565b60405193838594850191818652518092526040850193925b82811061018c57505050500390f35b83516001600160a01b03168552869550938101939281019260010161017d565b82548452928601926001928301920161014f565b503461010057610120366003190112610100576101db610931565b906001600160401b0360443516604435036101005761ffff60643516606435036101005760ff60843516608435036101005760ff60c4351660c435036101005760e435810b60e43503610100576004358260443560643560843560a4359260c4359760e43595670de0b6b3a764000090818911801561078d575b610784575b600a6001600160401b0360443516118015610771575b610768575b603360ff60843516108015610759575b610750575b601260e4358b0b13610747575b6001600160401b03166001811190811561073e575b50610735575b600560ff60c435161161072c575b85118015610724575b610717575b603261ffff60643516118015610709575b610700575b6102f060ff8a166109b8565b966102fe6040519889610978565b60ff8a16808952601f1990610312906109b8565b013660208a0137885b60ff8b1681106106c657506040519899506004976103388a610947565b607b8a526020808b01919091526012546040516342bf3cc160e01b8152998a9182906001600160a01b03165afa9788156106bb578a9861069a575b5089602060405161038381610947565b82815201526040519761039589610947565b8a89528a60208a0152604051998a6101808101106001600160401b036101808d011117610686576101808b016040908152908b526001600160a01b0390911660208b015289018a905260608901526001600160401b0390811660808901521660a087015260ff1660c086015261ffff1660e0850152610100840152830b610120830152610140820183905261016082015261043261010435610a82565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156106825760405163ca669fa760e01b81526001600160a01b0382166004820152838160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561067757610648575b5060018060a01b036011541660405192637be005d560e01b845260206004850152602081516101a060248701526001600160401b038151166101c487015201519060406101e48601526102048501825180915260206102248701930190875b8181106106295750505060208101516001600160a01b0316604486015260408101516001811015610615576064860152606081015160848601526001600160401b0360808201511660a48601526001600160401b0360a08201511660c486015260ff60c08201511660e486015261ffff60e082015116610104860152610100810151610124860152610120810151860b610144860152610140810151600381101561061557610164860152610160015180516002811015610615576101848601526020908101516001600160a01b03166101a486015291849182900390829087905af19182156100f5576105f2926105f6575b506001600160a01b03166109f9565b5080f35b61060e9060203d6020116100ee576100df8183610978565b50386105e3565b634e487b7160e01b87526021600452602487fd5b82516001600160a01b03168552602094850194909201916001016104f0565b6001600160401b038194929411610663576040529138610491565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b8280fd5b634e487b7160e01b8c52604160045260248cfd5b6106b491985060203d6020116100ee576100df8183610978565b9638610373565b6040513d8c823e3d90fd5b6001600160a01b0381166106da828b6109cf565b5260001981146106ec5760010161031b565b634e487b7160e01b8a52601160045260248afd5b603293506102e4565b5061ffff60643516156102df565b6402540be40094506102ce565b5084156102c9565b600199506102c0565b600191506102b2565b905015386102ac565b60129750610297565b6046945061028a565b50606460ff6084351611610285565b600a9350610275565b506001600160401b036044351615610270565b9750809761025a565b508815610255565b5034610100576040366003190112610100576107af610916565b604460206107bb610931565b601254604051639836b75f60e01b81526001600160a01b0395861660048201526001600160401b0390921660248301529093928491829085165afa9182156100f557602093926100c6575060405191168152f35b50346101005780600319360112610100576012546040516342bf3cc160e01b8152906001600160a01b03906020908390600490829085165afa9182156100f557602093926100c6575060405191168152f35b9050346108fe5760209182600319360112610100578282602481610883610916565b60125463030f605160e01b83526001600160a01b039182166004840152165afa9182156109095781926108c4575b50506001600160401b0360405191168152f35b9091508281813d8311610902575b6108dc8183610978565b810103126108fe5751906001600160401b0382168203610100575038806108b1565b5080fd5b503d6108d2565b50604051903d90823e3d90fd5b600435906001600160a01b038216820361092c57565b600080fd5b602435906001600160401b038216820361092c57565b604081019081106001600160401b0382111761096257604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761096257604052565b9081602091031261092c57516001600160a01b038116810361092c5790565b6001600160401b0381116109625760051b60200190565b80518210156109e35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600081815260106020526040812054610a7d57600f5468010000000000000000811015610663576001810180600f55811015610a695790826040927f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020155600f5492815260106020522055600190565b634e487b7160e01b82526032600452602482fd5b905090565b600f548015808015610b33575b15610a9b575050503390565b6040519081838152826020809201600f6000527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8029260005b878110610b1c575050610ae892500383610978565b610b06576001600160a01b0392610b01929006906109cf565b511690565b634e487b7160e01b600052601260045260246000fd5b845483526001948501948794509282019201610ad3565b506003831615610a8f56fea2646970667358221220e68569e636295e15b480657ffe238ce8d2b879bce7934a616c8d09bf1b3c3a1164736f6c63430008130033","sourceMap":"814:4673:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:32;814:4673;2963:32;;;814:4673;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;814:4673:98;;;;;;:::i;:::-;2010:19;814:4673;;;-1:-1:-1;;;2010:47:98;;-1:-1:-1;;;;;814:4673:98;;;;2010:47;;814:4673;;;;;;;;;;;;;2010:47;;;;;;;814:4673;2010:47;;;;814:4673;;;;;;;;;2010:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;814:4673;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2858:12;814:4673;;;;;;;;;;;2858:12;814:4673;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;-1:-1:-1;814:4673:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;814:4673:98;;;;;;:::i;:::-;;-1:-1:-1;;;;;814:4673:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1119:7;;3354:44;;;;:67;;;;814:4673;3350:142;;814:4673;1056:2;-1:-1:-1;;;;;814:4673:98;;;3505:48;:77;;;;814:4673;3501:156;;814:4673;3692:2;814:4673;;;;3670:24;:53;;;;814:4673;3666:133;;814:4673;1237:2;814:4673;;;;3812:33;3808:97;;814:4673;-1:-1:-1;;;;;814:4673:98;;3918:39;;:62;;;;;814:4673;3914:132;;;814:4673;4071:1;814:4673;;;;4059:13;4055:57;;814:4673;4125:25;;:49;;;;814:4673;4121:111;;814:4673;1404:2;814:4673;;;;4245:50;:81;;;;814:4673;4241:162;;814:4673;1404:2;814:4673;;;1404:2;:::i;:::-;814:4673;1404:2;814:4673;;1404:2;;;:::i;:::-;814:4673;;;1404:2;;;-1:-1:-1;;1404:2:98;;;;:::i;:::-;;814:4673;;1404:2;;;4476:9;4487:13;814:4673;;;4487:13;;;;-1:-1:-1;814:4673:98;;;;-1:-1:-1;814:4673:98;;1404:2;814:4673;1404:2;:::i;:::-;1287:3;;;814:4673;4685:46;;;1287:3;;;;1237:2;814:4673;;;-1:-1:-1;;;4761:32:98;;814:4673;;;;;-1:-1:-1;;;;;814:4673:98;4761:32;;;;;;;;;;;4471:90;814:4673;;;;;1404:2;;;:::i;:::-;814:4673;;;;;;;1404:2;;;;:::i;:::-;814:4673;;;4618:99:76;814:4673:98;4618:99:76;;1404:2:98;814:4673;;;;1287:3;814:4673;;;-1:-1:-1;;;;;1287:3:98;814:4673;;;;;;1287:3;814:4673;;;;;;1287:3;;;-1:-1:-1;;;;;814:4673:98;;;;4624:684;;1404:2;4624:684;;1287:3;;;814:4673;4624:684;;1287:3;-1:-1:-1;;;;;814:4673:98;;;;4624:684;;1287:3;814:4673;;4624:684;;1287:3;814:4673;;;4624:684;;1287:3;814:4673;;;4624:684;;1287:3;814:4673;4624:684;;1287:3;814:4673;;;4624:684;;1287:3;4624:684;;;1287:3;;;4624:684;;;1287:3;5335:33;814:4673;;5335:33;:::i;:::-;814:4673;5378:15;;;;814:4673;;-1:-1:-1;;;5378:15:98;;-1:-1:-1;;;;;814:4673:98;;;5378:15;;814:4673;5378:15;814:4673;;;5378:15;814:4673;5378:15;;;;;;;;4471:90;814:4673;;;;;;5403:19;1220:14:3;814:4673:98;;;;;;;5403:42;;814:4673;;5403:42;;1220:14:3;814:4673:98;1220:14:3;;;814:4673:98;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;814:4673:98;1220:14:3;;;814:4673:98;1220:14:3;;;814:4673:98;1220:14:3;;;;;;;814:4673:98;;;;;;;;;;;1220:14:3;;;;;;;;-1:-1:-1;;;814:4673:98;4624:684;;1220:14:3;-1:-1:-1;;;;;814:4673:98;;1220:14:3;;814:4673:98;;4624:684;;1220:14:3;814:4673:98;1287:3;;;;;814:4673;1220:14:3;;;814:4673:98;4624:684;;1220:14:3;814:4673:98;1220:14:3;;814:4673:98;-1:-1:-1;;;;;814:4673:98;4624:684;;1220:14:3;814:4673:98;;1220:14:3;;814:4673:98;-1:-1:-1;;;;;814:4673:98;4624:684;;1220:14:3;814:4673:98;;1220:14:3;;814:4673:98;;;4624:684;;1220:14:3;814:4673:98;;1220:14:3;;;814:4673:98;;4624:684;;1220:14:3;814:4673:98;;1220:14:3;;;814:4673:98;4624:684;;1220:14:3;;;;814:4673:98;;4624:684;;1220:14:3;814:4673:98;;1220:14:3;;;;4624:684:98;;;1220:14:3;814:4673:98;1287:3;;;;;1220:14:3;;;;4624:684:98;;1220:14:3;;;;;;;;;;;;;814:4673:98;1220:14:3;;;;-1:-1:-1;;;;;814:4673:98;1220:14:3;;;814:4673:98;;1220:14:3;;5403:42:98;;;;1220:14:3;;;;5403:42:98;;;;;;;8399:50:36;5403:42:98;;;1220:14:3;-1:-1:-1;;;;;;814:4673:98;8399:50:36;:::i;:::-;;814:4673:98;;5403:42;;;814:4673;5403:42;814:4673;5403:42;;;;;;;:::i;:::-;;;;;1220:14:3;-1:-1:-1;;;1287:3:98;;;814:4673;1287:3;814:4673;1404:2;1287:3;1220:14:3;;;-1:-1:-1;;;;;814:4673:98;;;;;;;;;;;;;1220:14:3;;;5378:15:98;-1:-1:-1;;;;;814:4673:98;;;;;;;;;5378:15;;;;814:4673;-1:-1:-1;;;814:4673:98;;;;;;1404:2;814:4673;5378:15;814:4673;;;;;;;;;5378:15;814:4673;;;;-1:-1:-1;;;814:4673:98;;;;;;1404:2;814:4673;4761:32;;;;;814:4673;4761:32;814:4673;4761:32;;;;;;;:::i;:::-;;;;;;814:4673;;;;;;;;;4502:3;-1:-1:-1;;;;;814:4673:98;;4521:29;814:4673;4521:29;;:::i;:::-;1404:2;-1:-1:-1;;1404:2:98;;;;814:4673;1404:2;4476:9;;1404:2;-1:-1:-1;;;1404:2:98;;;814:4673;1404:2;814:4673;1404:2;;4241:162;1404:2;;-1:-1:-1;4241:162:98;;4245:81;814:4673;;;;;4299:27;4245:81;;4121:111;1453:7;;-1:-1:-1;4121:111:98;;4125:49;4154:20;;;4125:49;;4055:57;814:4673;;-1:-1:-1;4055:57:98;;3914:132;814:4673;;-1:-1:-1;3914:132:98;;3918:62;3961:19;;;3918:62;;;3808:97;1237:2;;-1:-1:-1;3808:97:98;;3666:133;1185:2;;-1:-1:-1;3666:133:98;;3670:53;814:4673;;;;;;3698:25;3670:53;;3501:156;1056:2;;-1:-1:-1;3501:156:98;;3505:77;814:4673;-1:-1:-1;;;;;814:4673:98;;;3557:25;3505:77;;3350:142;3437:44;;;3350:142;;;3354:67;3402:19;;;3354:67;;814:4673;;;;;;;-1:-1:-1;;814:4673:98;;;;;;:::i;:::-;;;;;:::i;:::-;2191:19;814:4673;;;-1:-1:-1;;;2191:58:98;;-1:-1:-1;;;;;814:4673:98;;;;2191:58;;814:4673;-1:-1:-1;;;;;814:4673:98;;;;;;;;;;;;;;;;2191:58;;;;;;;814:4673;2191:58;;;;814:4673;;;;;;;;;;;;;;;;;;;;;2963:19;814:4673;;;-1:-1:-1;;;2963:32:98;;814:4673;-1:-1:-1;;;;;814:4673:98;2963:32;;814:4673;;;;;;;;2963:32;;;;;;;;;;;;814:4673;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2356:19;814:4673;-1:-1:-1;;;2356:42:98;;-1:-1:-1;;;;;814:4673:98;;;;2356:42;;814:4673;;2356:42;;;;;;;;;;;814:4673;;;-1:-1:-1;;;;;814:4673:98;;;;;;;2356:42;;;;;;;;;;;;;;;;;:::i;:::-;;;814:4673;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;2356:42;;;;;814:4673;;;;2356:42;;;;;;814:4673;;;;;;;;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;;:::o;:::-;1404:2;;;814:4673;;;;;;;;;;1404:2;;;814:4673;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;;:::o;1404:2::-;-1:-1:-1;;;;;1404:2:98;;;;;;;;;:::o;:::-;814:4673;;1404:2;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2215:404:36;-1:-1:-1;814:4673:98;;;4352:12:36;814:4673:98;;;;;;;;5455:12;814:4673;;;;;;;4352:12:36;814:4673:98;;;5455:12;814:4673;;;;;;;;;;;;;5455:12;814:4673;;;;4352:12:36;814:4673:98;;;;4352:12:36;2548:11;:::o;814:4673:98:-;-1:-1:-1;;;1404:2:98;;;;;;;;2294:319:36;2590:12;;;:::o;2476:297:98:-;2586:12;814:4673;2621:11;;:28;;;;;2476:297;2617:150;;;2672:10;;;;2665:17;:::o;2617:150::-;814:4673;;;;;;;;;;;;2586:12;-1:-1:-1;814:4673:98;;;-1:-1:-1;814:4673:98;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;814:4673:98;2720:36;;814:4673;;;2720:36;:::i;:::-;814:4673;;2713:43;:::o;814:4673::-;1404:2;;;-1:-1:-1;814:4673:98;;;;;-1:-1:-1;814:4673:98;;;;;;;;;;;;;-1:-1:-1;814:4673:98;;;;;;;2621:28;814:4673;;;;2636:13;2621:28;","linkReferences":{}},"methodIdentifiers":{"deploySubnetActorFromRegistry(uint256,uint64,uint64,uint16,uint8,uint256,uint8,int8,uint256)":"64675ce8","getGateway()":"42bf3cc1","getOwners()":"a0e67e2b","getSubnetDeployedBy(address)":"ce75761f","getSubnetDeployedWithNonce(address,uint64)":"58b1bc92","getUserLastNonce(address)":"030f6051"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract SubnetRegistryDiamond\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_pathSize\",\"type\":\"uint8\"},{\"internalType\":\"int8\",\"name\":\"_powerScale\",\"type\":\"int8\"},{\"internalType\":\"uint256\",\"name\":\"seed\",\"type\":\"uint256\"}],\"name\":\"deploySubnetActorFromRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getSubnetDeployedBy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getSubnetDeployedWithNonce\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserLastNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/invariants/handlers/SubnetRegistryHandler.sol\":\"SubnetRegistryHandler\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/invariants/handlers/SubnetRegistryHandler.sol\":{\"keccak256\":\"0x6f3e5a177e75795aa1d468726ae79b318b55921133130b349e6f89e79f8a3f54\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c26682d020158ee3ae549716ddfdbec3d4012e736a52596b36758cddc81e27cf\",\"dweb:/ipfs/QmRH1dhNCiyjxGMaHTEiu7obgbrHav54psdSwgufRTeCcP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract SubnetRegistryDiamond","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"_minCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint16","name":"_activeValidatorsLimit","type":"uint16"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"},{"internalType":"uint256","name":"_minCrossMsgFee","type":"uint256"},{"internalType":"uint8","name":"_pathSize","type":"uint8"},{"internalType":"int8","name":"_powerScale","type":"int8"},{"internalType":"uint256","name":"seed","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deploySubnetActorFromRegistry"},{"inputs":[],"stateMutability":"view","type":"function","name":"getGateway","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedBy","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedWithNonce","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserLastNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/invariants/handlers/SubnetRegistryHandler.sol":"SubnetRegistryHandler"},"libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/invariants/handlers/SubnetRegistryHandler.sol":{"keccak256":"0x6f3e5a177e75795aa1d468726ae79b318b55921133130b349e6f89e79f8a3f54","urls":["bzz-raw://c26682d020158ee3ae549716ddfdbec3d4012e736a52596b36758cddc81e27cf","dweb:/ipfs/QmRH1dhNCiyjxGMaHTEiu7obgbrHav54psdSwgufRTeCcP"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/invariants/handlers/SubnetRegistryHandler.sol","id":57919,"exportedSymbols":{"CommonBase":[3777],"ConsensusType":[37359],"EnumerableSet":[35815],"IMulticall3":[30545],"PermissionMode":[50165],"RegisterSubnetFacet":[52279],"StdCheats":[8180],"StdCheatsSafe":[7501],"StdStorage":[9220],"StdUtils":[12691],"SubnetActorDiamond":[36615],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetRegistryDiamond":[36853],"SubnetRegistryHandler":[57918],"SupplySourceHelper":[48398],"Vm":[14222],"VmSafe":[13782],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:5442:98","nodes":[{"id":57511,"nodeType":"PragmaDirective","src":"46:23:98","nodes":[],"literals":["solidity","0.8",".19"]},{"id":57512,"nodeType":"ImportDirective","src":"71:32:98","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"forge-std/StdUtils.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":12692,"symbolAliases":[],"unitAlias":""},{"id":57513,"nodeType":"ImportDirective","src":"104:33:98","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"forge-std/StdCheats.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":8181,"symbolAliases":[],"unitAlias":""},{"id":57515,"nodeType":"ImportDirective","src":"138:46:98","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"forge-std/Base.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":3793,"symbolAliases":[{"foreign":{"id":57514,"name":"CommonBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"146:10:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57517,"nodeType":"ImportDirective","src":"185:88:98","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../../../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":57516,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"193:19:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57519,"nodeType":"ImportDirective","src":"274:84:98","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../../../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":57518,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"282:17:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57521,"nodeType":"ImportDirective","src":"359:71:98","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../../../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":57520,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"367:18:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57523,"nodeType":"ImportDirective","src":"431:77:98","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../../../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":57522,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"439:21:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57525,"nodeType":"ImportDirective","src":"509:67:98","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../../../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":57524,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"517:13:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57528,"nodeType":"ImportDirective","src":"577:73:98","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":57526,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"585:8:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":57527,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"595:14:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57530,"nodeType":"ImportDirective","src":"651:75:98","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../../../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":57529,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"659:18:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57532,"nodeType":"ImportDirective","src":"727:85:98","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":57531,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"735:13:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57918,"nodeType":"ContractDefinition","src":"814:4673:98","nodes":[{"id":57542,"nodeType":"UsingForDirective","src":"886:49:98","nodes":[],"global":false,"libraryName":{"id":57539,"name":"EnumerableSet","nameLocations":["892:13:98"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"892:13:98"},"typeName":{"id":57541,"nodeType":"UserDefinedTypeName","pathNode":{"id":57540,"name":"EnumerableSet.AddressSet","nameLocations":["910:13:98","924:10:98"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"910:24:98"},"referencedDeclaration":35528,"src":"910:24:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":57548,"nodeType":"VariableDeclaration","src":"941:65:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"966:24:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57543,"name":"address","nodeType":"ElementaryTypeName","src":"941:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":57546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1001:4:98","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":57545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"993:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57544,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:98","typeDescriptions":{}}},"id":57547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"993:13:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":57551,"nodeType":"VariableDeclaration","src":"1012:46:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"1028:25:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57549,"name":"uint64","nodeType":"ElementaryTypeName","src":"1012:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":57550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1056:2:98","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":57554,"nodeType":"VariableDeclaration","src":"1064:62:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"1089:27:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57552,"name":"uint256","nodeType":"ElementaryTypeName","src":"1064:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":57553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1119:7:98","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"private"},{"id":57557,"nodeType":"VariableDeclaration","src":"1132:55:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"1155:27:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57555,"name":"uint8","nodeType":"ElementaryTypeName","src":"1132:5:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":57556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1185:2:98","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"private"},{"id":57560,"nodeType":"VariableDeclaration","src":"1193:46:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"1215:19:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":57558,"name":"int8","nodeType":"ElementaryTypeName","src":"1193:4:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3138","id":57559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1237:2:98","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"private"},{"id":57563,"nodeType":"VariableDeclaration","src":"1245:45:98","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"1269:15:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57561,"name":"uint64","nodeType":"ElementaryTypeName","src":"1245:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":57562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1287:3:98","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"private"},{"id":57566,"nodeType":"VariableDeclaration","src":"1296:50:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"1320:22:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57564,"name":"uint64","nodeType":"ElementaryTypeName","src":"1296:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":57565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1345:1:98","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":57569,"nodeType":"VariableDeclaration","src":"1352:54:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS","nameLocation":"1376:25:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":57567,"name":"uint16","nodeType":"ElementaryTypeName","src":"1352:6:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3530","id":57568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1404:2:98","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"visibility":"private"},{"id":57572,"nodeType":"VariableDeclaration","src":"1412:48:98","nodes":[],"constant":true,"mutability":"constant","name":"CROSS_MSG_FEE","nameLocation":"1437:13:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57570,"name":"uint256","nodeType":"ElementaryTypeName","src":"1412:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":57571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1453:7:98","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"private"},{"id":57575,"nodeType":"VariableDeclaration","src":"1467:45:98","nodes":[],"constant":false,"mutability":"mutable","name":"ghost_owners","nameLocation":"1500:12:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":57574,"nodeType":"UserDefinedTypeName","pathNode":{"id":57573,"name":"EnumerableSet.AddressSet","nameLocations":["1467:13:98","1481:10:98"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1467:24:98"},"referencedDeclaration":35528,"src":"1467:24:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"id":57578,"nodeType":"VariableDeclaration","src":"1518:47:98","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacet","nameLocation":"1546:19:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":57577,"nodeType":"UserDefinedTypeName","pathNode":{"id":57576,"name":"RegisterSubnetFacet","nameLocations":["1518:19:98"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"1518:19:98"},"referencedDeclaration":52279,"src":"1518:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"private"},{"id":57581,"nodeType":"VariableDeclaration","src":"1571:45:98","nodes":[],"constant":false,"mutability":"mutable","name":"registerGetterFacet","nameLocation":"1597:19:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":57580,"nodeType":"UserDefinedTypeName","pathNode":{"id":57579,"name":"SubnetGetterFacet","nameLocations":["1571:17:98"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"1571:17:98"},"referencedDeclaration":52517,"src":"1571:17:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"private"},{"id":57583,"nodeType":"VariableDeclaration","src":"1623:39:98","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetAddr","nameLocation":"1639:23:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57582,"name":"address","nodeType":"ElementaryTypeName","src":"1623:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":57585,"nodeType":"VariableDeclaration","src":"1668:37:98","nodes":[],"constant":false,"mutability":"mutable","name":"subnetGetterFacetAddr","nameLocation":"1684:21:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57584,"name":"address","nodeType":"ElementaryTypeName","src":"1668:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":57610,"nodeType":"FunctionDefinition","src":"1712:192:98","nodes":[],"body":{"id":57609,"nodeType":"Block","src":"1757:147:98","nodes":[],"statements":[{"expression":{"id":57598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57591,"name":"registerSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57578,"src":"1767:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57595,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57588,"src":"1817:9:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":57594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1809:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57593,"name":"address","nodeType":"ElementaryTypeName","src":"1809:7:98","typeDescriptions":{}}},"id":57596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:18:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57592,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"1789:19:98","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"type(contract RegisterSubnetFacet)"}},"id":57597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1789:39:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"src":"1767:61:98","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"id":57599,"nodeType":"ExpressionStatement","src":"1767:61:98"},{"expression":{"id":57607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57600,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"1838:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57604,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57588,"src":"1886:9:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":57603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1878:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57602,"name":"address","nodeType":"ElementaryTypeName","src":"1878:7:98","typeDescriptions":{}}},"id":57605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1878:18:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57601,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"1860:17:98","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"type(contract SubnetGetterFacet)"}},"id":57606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1860:37:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"src":"1838:59:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57608,"nodeType":"ExpressionStatement","src":"1838:59:98"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":57589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57588,"mutability":"mutable","name":"_registry","nameLocation":"1746:9:98","nodeType":"VariableDeclaration","scope":57610,"src":"1724:31:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":57587,"nodeType":"UserDefinedTypeName","pathNode":{"id":57586,"name":"SubnetRegistryDiamond","nameLocations":["1724:21:98"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"1724:21:98"},"referencedDeclaration":36853,"src":"1724:21:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"1723:33:98"},"returnParameters":{"id":57590,"nodeType":"ParameterList","parameters":[],"src":"1757:0:98"},"scope":57918,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57623,"nodeType":"FunctionDefinition","src":"1910:154:98","nodes":[],"body":{"id":57622,"nodeType":"Block","src":"1993:71:98","nodes":[],"statements":[{"expression":{"arguments":[{"id":57619,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57612,"src":"2051:5:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57617,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"2010:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2030:20:98","memberName":"latestSubnetDeployed","nodeType":"MemberAccess","referencedDeclaration":52335,"src":"2010:40:98","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_address_$","typeString":"function (address) view external returns (address)"}},"id":57620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:47:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57616,"id":57621,"nodeType":"Return","src":"2003:54:98"}]},"functionSelector":"ce75761f","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedBy","nameLocation":"1919:19:98","parameters":{"id":57613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57612,"mutability":"mutable","name":"owner","nameLocation":"1947:5:98","nodeType":"VariableDeclaration","scope":57623,"src":"1939:13:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57611,"name":"address","nodeType":"ElementaryTypeName","src":"1939:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1938:15:98"},"returnParameters":{"id":57616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57615,"mutability":"mutable","name":"subnet","nameLocation":"1985:6:98","nodeType":"VariableDeclaration","scope":57623,"src":"1977:14:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57614,"name":"address","nodeType":"ElementaryTypeName","src":"1977:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1976:16:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57639,"nodeType":"FunctionDefinition","src":"2070:186:98","nodes":[],"body":{"id":57638,"nodeType":"Block","src":"2174:82:98","nodes":[],"statements":[{"expression":{"arguments":[{"id":57634,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57625,"src":"2236:5:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57635,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57627,"src":"2243:5:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":57632,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"2191:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2211:24:98","memberName":"getSubnetDeployedByNonce","nodeType":"MemberAccess","referencedDeclaration":52374,"src":"2191:44:98","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint64_$returns$_t_address_$","typeString":"function (address,uint64) view external returns (address)"}},"id":57636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2191:58:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57631,"id":57637,"nodeType":"Return","src":"2184:65:98"}]},"functionSelector":"58b1bc92","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedWithNonce","nameLocation":"2079:26:98","parameters":{"id":57628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57625,"mutability":"mutable","name":"owner","nameLocation":"2114:5:98","nodeType":"VariableDeclaration","scope":57639,"src":"2106:13:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57624,"name":"address","nodeType":"ElementaryTypeName","src":"2106:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57627,"mutability":"mutable","name":"nonce","nameLocation":"2128:5:98","nodeType":"VariableDeclaration","scope":57639,"src":"2121:12:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57626,"name":"uint64","nodeType":"ElementaryTypeName","src":"2121:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2105:29:98"},"returnParameters":{"id":57631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57630,"mutability":"mutable","name":"subnet","nameLocation":"2166:6:98","nodeType":"VariableDeclaration","scope":57639,"src":"2158:14:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57629,"name":"address","nodeType":"ElementaryTypeName","src":"2158:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2157:16:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57652,"nodeType":"FunctionDefinition","src":"2262:143:98","nodes":[],"body":{"id":57651,"nodeType":"Block","src":"2339:66:98","nodes":[],"statements":[{"expression":{"arguments":[{"id":57648,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57641,"src":"2393:4:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57646,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"2356:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2376:16:98","memberName":"getUserLastNonce","nodeType":"MemberAccess","referencedDeclaration":52398,"src":"2356:36:98","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint64_$","typeString":"function (address) view external returns (uint64)"}},"id":57649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2356:42:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":57645,"id":57650,"nodeType":"Return","src":"2349:49:98"}]},"functionSelector":"030f6051","implemented":true,"kind":"function","modifiers":[],"name":"getUserLastNonce","nameLocation":"2271:16:98","parameters":{"id":57642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57641,"mutability":"mutable","name":"user","nameLocation":"2296:4:98","nodeType":"VariableDeclaration","scope":57652,"src":"2288:12:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57640,"name":"address","nodeType":"ElementaryTypeName","src":"2288:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2287:14:98"},"returnParameters":{"id":57645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57644,"mutability":"mutable","name":"nonce","nameLocation":"2332:5:98","nodeType":"VariableDeclaration","scope":57652,"src":"2325:12:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57643,"name":"uint64","nodeType":"ElementaryTypeName","src":"2325:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2324:14:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57690,"nodeType":"FunctionDefinition","src":"2476:297:98","nodes":[],"body":{"id":57689,"nodeType":"Block","src":"2559:214:98","nodes":[],"statements":[{"assignments":[57661],"declarations":[{"constant":false,"id":57661,"mutability":"mutable","name":"lenght","nameLocation":"2577:6:98","nodeType":"VariableDeclaration","scope":57689,"src":"2569:14:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57660,"name":"uint256","nodeType":"ElementaryTypeName","src":"2569:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57665,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57662,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57575,"src":"2586:12:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2599:6:98","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35624,"src":"2586:19:98","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":57664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2586:21:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2569:38:98"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57666,"name":"lenght","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57661,"src":"2621:6:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2631:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2621:11:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57669,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57655,"src":"2636:4:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"34","id":57670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2643:1:98","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2636:8:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2648:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2636:13:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2621:28:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":57687,"nodeType":"Block","src":"2699:68:98","statements":[{"expression":{"baseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57679,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57575,"src":"2720:12:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2733:6:98","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2720:19:98","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2720:21:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57685,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57682,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57655,"src":"2742:4:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":57683,"name":"lenght","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57661,"src":"2749:6:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2742:13:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2720:36:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57659,"id":57686,"nodeType":"Return","src":"2713:43:98"}]},"id":57688,"nodeType":"IfStatement","src":"2617:150:98","trueBody":{"id":57678,"nodeType":"Block","src":"2651:42:98","statements":[{"expression":{"expression":{"id":57675,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2672:3:98","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":57676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2676:6:98","memberName":"sender","nodeType":"MemberAccess","src":"2672:10:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57659,"id":57677,"nodeType":"Return","src":"2665:17:98"}]}}]},"documentation":{"id":57653,"nodeType":"StructuredDocumentation","src":"2411:60:98","text":"getRandomOldAddressOrNewOne returns a new random address"},"implemented":true,"kind":"function","modifiers":[],"name":"getRandomOldAddressOrNewOne","nameLocation":"2485:27:98","parameters":{"id":57656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57655,"mutability":"mutable","name":"seed","nameLocation":"2521:4:98","nodeType":"VariableDeclaration","scope":57690,"src":"2513:12:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57654,"name":"uint256","nodeType":"ElementaryTypeName","src":"2513:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2512:14:98"},"returnParameters":{"id":57659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57690,"src":"2550:7:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57657,"name":"address","nodeType":"ElementaryTypeName","src":"2550:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2549:9:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":57701,"nodeType":"FunctionDefinition","src":"2779:107:98","nodes":[],"body":{"id":57700,"nodeType":"Block","src":"2841:45:98","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57696,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57575,"src":"2858:12:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2871:6:98","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2858:19:98","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:21:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":57695,"id":57699,"nodeType":"Return","src":"2851:28:98"}]},"functionSelector":"a0e67e2b","implemented":true,"kind":"function","modifiers":[],"name":"getOwners","nameLocation":"2788:9:98","parameters":{"id":57691,"nodeType":"ParameterList","parameters":[],"src":"2797:2:98"},"returnParameters":{"id":57695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57701,"src":"2823:16:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":57692,"name":"address","nodeType":"ElementaryTypeName","src":"2823:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57693,"nodeType":"ArrayTypeName","src":"2823:9:98","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2822:18:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57711,"nodeType":"FunctionDefinition","src":"2892:110:98","nodes":[],"body":{"id":57710,"nodeType":"Block","src":"2946:56:98","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57706,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"2963:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2983:10:98","memberName":"getGateway","nodeType":"MemberAccess","referencedDeclaration":52408,"src":"2963:30:98","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":57708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:32:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57705,"id":57709,"nodeType":"Return","src":"2956:39:98"}]},"functionSelector":"42bf3cc1","implemented":true,"kind":"function","modifiers":[],"name":"getGateway","nameLocation":"2901:10:98","parameters":{"id":57702,"nodeType":"ParameterList","parameters":[],"src":"2911:2:98"},"returnParameters":{"id":57705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57711,"src":"2937:7:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57703,"name":"address","nodeType":"ElementaryTypeName","src":"2937:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2936:9:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57917,"nodeType":"FunctionDefinition","src":"3008:2477:98","nodes":[],"body":{"id":57916,"nodeType":"Block","src":"3340:2145:98","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57732,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57713,"src":"3354:14:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":57733,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57554,"src":"3371:27:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3354:44:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57735,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57713,"src":"3402:14:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3420:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3402:19:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3354:67:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57744,"nodeType":"IfStatement","src":"3350:142:98","trueBody":{"id":57743,"nodeType":"Block","src":"3423:69:98","statements":[{"expression":{"id":57741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57739,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57713,"src":"3437:14:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57740,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57554,"src":"3454:27:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3437:44:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57742,"nodeType":"ExpressionStatement","src":"3437:44:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":57747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57745,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57717,"src":"3505:20:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":57746,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57551,"src":"3528:25:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3505:48:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":57750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57748,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57717,"src":"3557:20:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3581:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3557:25:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3505:77:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57757,"nodeType":"IfStatement","src":"3501:156:98","trueBody":{"id":57756,"nodeType":"Block","src":"3584:73:98","statements":[{"expression":{"id":57754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57752,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57717,"src":"3598:20:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57753,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57551,"src":"3621:25:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3598:48:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":57755,"nodeType":"ExpressionStatement","src":"3598:48:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57758,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57721,"src":"3670:19:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":57759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3692:2:98","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"3670:24:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57761,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57721,"src":"3698:19:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":57762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:3:98","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"3698:25:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3670:53:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57770,"nodeType":"IfStatement","src":"3666:133:98","trueBody":{"id":57769,"nodeType":"Block","src":"3725:74:98","statements":[{"expression":{"id":57767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57765,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57721,"src":"3739:19:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57766,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57557,"src":"3761:27:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3739:49:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":57768,"nodeType":"ExpressionStatement","src":"3739:49:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":57773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57771,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57727,"src":"3812:11:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":57772,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57560,"src":"3826:19:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3812:33:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57779,"nodeType":"IfStatement","src":"3808:97:98","trueBody":{"id":57778,"nodeType":"Block","src":"3847:58:98","statements":[{"expression":{"id":57776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57774,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57727,"src":"3861:11:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57775,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57560,"src":"3875:19:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3861:33:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":57777,"nodeType":"ExpressionStatement","src":"3861:33:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":57782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57780,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57715,"src":"3918:14:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":57781,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57566,"src":"3935:22:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3918:39:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":57785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57783,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57715,"src":"3961:14:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3979:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3961:19:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3918:62:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57792,"nodeType":"IfStatement","src":"3914:132:98","trueBody":{"id":57791,"nodeType":"Block","src":"3982:64:98","statements":[{"expression":{"id":57789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57787,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57715,"src":"3996:14:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57788,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57566,"src":"4013:22:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3996:39:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":57790,"nodeType":"ExpressionStatement","src":"3996:39:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57793,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57725,"src":"4059:9:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"35","id":57794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4071:1:98","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"4059:13:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57801,"nodeType":"IfStatement","src":"4055:57:98","trueBody":{"id":57800,"nodeType":"Block","src":"4074:38:98","statements":[{"expression":{"id":57798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57796,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57725,"src":"4088:9:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":57797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4100:1:98","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4088:13:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":57799,"nodeType":"ExpressionStatement","src":"4088:13:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57802,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57723,"src":"4125:15:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":57803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4143:7:98","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"4125:25:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57805,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57723,"src":"4154:15:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4173:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4154:20:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4125:49:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57814,"nodeType":"IfStatement","src":"4121:111:98","trueBody":{"id":57813,"nodeType":"Block","src":"4176:56:98","statements":[{"expression":{"id":57811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57809,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57723,"src":"4190:15:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57810,"name":"CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57572,"src":"4208:13:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4190:31:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57812,"nodeType":"ExpressionStatement","src":"4190:31:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":57817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57815,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57719,"src":"4245:22:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":57816,"name":"DEFAULT_ACTIVE_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57569,"src":"4270:25:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4245:50:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":57820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57818,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57719,"src":"4299:22:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4325:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4299:27:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4245:81:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57827,"nodeType":"IfStatement","src":"4241:162:98","trueBody":{"id":57826,"nodeType":"Block","src":"4328:75:98","statements":[{"expression":{"id":57824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57822,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57719,"src":"4342:22:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57823,"name":"DEFAULT_ACTIVE_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57569,"src":"4367:25:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4342:50:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":57825,"nodeType":"ExpressionStatement","src":"4342:50:98"}]}},{"assignments":[57832],"declarations":[{"constant":false,"id":57832,"mutability":"mutable","name":"path","nameLocation":"4430:4:98","nodeType":"VariableDeclaration","scope":57916,"src":"4413:21:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":57830,"name":"address","nodeType":"ElementaryTypeName","src":"4413:7:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57831,"nodeType":"ArrayTypeName","src":"4413:9:98","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":57838,"initialValue":{"arguments":[{"id":57836,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57725,"src":"4451:9:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4437:13:98","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":57833,"name":"address","nodeType":"ElementaryTypeName","src":"4441:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57834,"nodeType":"ArrayTypeName","src":"4441:9:98","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":57837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:24:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4413:48:98"},{"body":{"id":57860,"nodeType":"Block","src":"4507:54:98","statements":[{"expression":{"id":57858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57848,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57832,"src":"4521:4:98","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57850,"indexExpression":{"id":57849,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57840,"src":"4526:1:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4521:7:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57840,"src":"4547:1:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4539:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":57853,"name":"uint160","nodeType":"ElementaryTypeName","src":"4539:7:98","typeDescriptions":{}}},"id":57856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4539:10:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":57852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4531:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57851,"name":"address","nodeType":"ElementaryTypeName","src":"4531:7:98","typeDescriptions":{}}},"id":57857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:19:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4521:29:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57859,"nodeType":"ExpressionStatement","src":"4521:29:98"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57842,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57840,"src":"4487:1:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":57843,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57725,"src":"4491:9:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4487:13:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57861,"initializationExpression":{"assignments":[57840],"declarations":[{"constant":false,"id":57840,"mutability":"mutable","name":"i","nameLocation":"4484:1:98","nodeType":"VariableDeclaration","scope":57861,"src":"4476:9:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57839,"name":"uint256","nodeType":"ElementaryTypeName","src":"4476:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57841,"nodeType":"VariableDeclarationStatement","src":"4476:9:98"},"loopExpression":{"expression":{"id":57846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4502:3:98","subExpression":{"id":57845,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57840,"src":"4504:1:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57847,"nodeType":"ExpressionStatement","src":"4502:3:98"},"nodeType":"ForStatement","src":"4471:90:98"},{"assignments":[57866],"declarations":[{"constant":false,"id":57866,"mutability":"mutable","name":"params","nameLocation":"4615:6:98","nodeType":"VariableDeclaration","scope":57916,"src":"4571:50:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":57865,"nodeType":"UserDefinedTypeName","pathNode":{"id":57864,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["4571:18:98","4590:17:98"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"4571:36:98"},"referencedDeclaration":36253,"src":"4571:36:98","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":57891,"initialValue":{"arguments":[{"arguments":[{"id":57870,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57563,"src":"4701:15:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":57871,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57832,"src":"4725:4:98","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":57869,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"4685:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":57872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4695:4:98","4718:5:98"],"names":["root","route"],"nodeType":"FunctionCall","src":"4685:46:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57873,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"4761:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4781:10:98","memberName":"getGateway","nodeType":"MemberAccess","referencedDeclaration":52408,"src":"4761:30:98","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":57875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4761:32:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":57876,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"4818:13:98","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":57877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4832:10:98","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"4818:24:98","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":57878,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57713,"src":"4881:14:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57879,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57715,"src":"4924:14:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":57880,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57717,"src":"4973:20:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":57881,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57721,"src":"5027:19:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":57882,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57719,"src":"5083:22:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":57883,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57727,"src":"5131:11:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"expression":{"id":57884,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"5172:14:98","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":57885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5187:10:98","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"5172:25:98","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":57886,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57723,"src":"5227:15:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57887,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"5270:18:98","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":57888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5289:6:98","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"5270:25:98","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":57889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5270:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":57867,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"4624:18:98","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":57868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4643:17:98","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"4624:36:98","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":57890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4675:8:98","4745:14:98","4807:9:98","4856:23:98","4909:13:98","4952:19:98","5007:18:98","5060:21:98","5119:10:98","5156:14:98","5211:14:98","5256:12:98"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"4624:684:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"4571:737:98"},{"assignments":[57893],"declarations":[{"constant":false,"id":57893,"mutability":"mutable","name":"owner","nameLocation":"5327:5:98","nodeType":"VariableDeclaration","scope":57916,"src":"5319:13:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57892,"name":"address","nodeType":"ElementaryTypeName","src":"5319:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57897,"initialValue":{"arguments":[{"id":57895,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57729,"src":"5363:4:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57894,"name":"getRandomOldAddressOrNewOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57690,"src":"5335:27:98","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":57896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5335:33:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5319:49:98"},{"expression":{"arguments":[{"id":57901,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57893,"src":"5387:5:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57898,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5378:2:98","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5381:5:98","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"5378:8:98","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5378:15:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57903,"nodeType":"ExpressionStatement","src":"5378:15:98"},{"expression":{"arguments":[{"id":57907,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57866,"src":"5438:6:98","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"expression":{"id":57904,"name":"registerSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57578,"src":"5403:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"id":57906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5423:14:98","memberName":"newSubnetActor","nodeType":"MemberAccess","referencedDeclaration":52278,"src":"5403:34:98","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_address_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) external returns (address)"}},"id":57908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5403:42:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57909,"nodeType":"ExpressionStatement","src":"5403:42:98"},{"expression":{"arguments":[{"id":57913,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57893,"src":"5472:5:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57910,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57575,"src":"5455:12:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5468:3:98","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"5455:16:98","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":57914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5455:23:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57915,"nodeType":"ExpressionStatement","src":"5455:23:98"}]},"functionSelector":"64675ce8","implemented":true,"kind":"function","modifiers":[],"name":"deploySubnetActorFromRegistry","nameLocation":"3017:29:98","parameters":{"id":57730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57713,"mutability":"mutable","name":"_minCollateral","nameLocation":"3064:14:98","nodeType":"VariableDeclaration","scope":57917,"src":"3056:22:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57712,"name":"uint256","nodeType":"ElementaryTypeName","src":"3056:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57715,"mutability":"mutable","name":"_minValidators","nameLocation":"3095:14:98","nodeType":"VariableDeclaration","scope":57917,"src":"3088:21:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57714,"name":"uint64","nodeType":"ElementaryTypeName","src":"3088:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":57717,"mutability":"mutable","name":"_bottomUpCheckPeriod","nameLocation":"3126:20:98","nodeType":"VariableDeclaration","scope":57917,"src":"3119:27:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57716,"name":"uint64","nodeType":"ElementaryTypeName","src":"3119:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":57719,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"3163:22:98","nodeType":"VariableDeclaration","scope":57917,"src":"3156:29:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":57718,"name":"uint16","nodeType":"ElementaryTypeName","src":"3156:6:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":57721,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"3201:19:98","nodeType":"VariableDeclaration","scope":57917,"src":"3195:25:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57720,"name":"uint8","nodeType":"ElementaryTypeName","src":"3195:5:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57723,"mutability":"mutable","name":"_minCrossMsgFee","nameLocation":"3238:15:98","nodeType":"VariableDeclaration","scope":57917,"src":"3230:23:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57722,"name":"uint256","nodeType":"ElementaryTypeName","src":"3230:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57725,"mutability":"mutable","name":"_pathSize","nameLocation":"3269:9:98","nodeType":"VariableDeclaration","scope":57917,"src":"3263:15:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57724,"name":"uint8","nodeType":"ElementaryTypeName","src":"3263:5:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57727,"mutability":"mutable","name":"_powerScale","nameLocation":"3293:11:98","nodeType":"VariableDeclaration","scope":57917,"src":"3288:16:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":57726,"name":"int8","nodeType":"ElementaryTypeName","src":"3288:4:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":57729,"mutability":"mutable","name":"seed","nameLocation":"3322:4:98","nodeType":"VariableDeclaration","scope":57917,"src":"3314:12:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57728,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3046:286:98"},"returnParameters":{"id":57731,"nodeType":"ParameterList","parameters":[],"src":"3340:0:98"},"scope":57918,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":57533,"name":"CommonBase","nameLocations":["848:10:98"],"nodeType":"IdentifierPath","referencedDeclaration":3777,"src":"848:10:98"},"id":57534,"nodeType":"InheritanceSpecifier","src":"848:10:98"},{"baseName":{"id":57535,"name":"StdCheats","nameLocations":["860:9:98"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"860:9:98"},"id":57536,"nodeType":"InheritanceSpecifier","src":"860:9:98"},{"baseName":{"id":57537,"name":"StdUtils","nameLocations":["871:8:98"],"nodeType":"IdentifierPath","referencedDeclaration":12691,"src":"871:8:98"},"id":57538,"nodeType":"InheritanceSpecifier","src":"871:8:98"}],"canonicalName":"SubnetRegistryHandler","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[57918,12691,8180,7501,3777],"name":"SubnetRegistryHandler","nameLocation":"823:21:98","scope":57919,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":98} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_registry","type":"address","internalType":"contract SubnetRegistryDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"deploySubnetActorFromRegistry","inputs":[{"name":"_minCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"_activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"_minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"_pathSize","type":"uint8","internalType":"uint8"},{"name":"_powerScale","type":"int8","internalType":"int8"},{"name":"seed","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getGateway","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwners","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedBy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedWithNonce","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getUserLastNonce","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x60803461007a57601f610c0a38819003918201601f19168301916001600160401b0383118484101761007f5780849260209460405283398101031261007a57516001600160a01b0381169081900361007a5760018060a01b0319818160115416176011556012541617601255604051610b7490816100968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c908163030f6051146108615750806342bf3cc11461080f57806358b1bc921461079557806364675ce8146101c0578063a0e67e2b146101035763ce75761f1461006357600080fd5b346101005760203660031901126101005761007c610916565b601254604051631163dca560e01b81526001600160a01b03928316600482015291906020908390602490829085165afa9182156100f557602093926100c6575b5060405191168152f35b6100e7919250833d81116100ee575b6100df8183610978565b810190610999565b90386100bc565b503d6100d5565b6040513d85823e3d90fd5b80fd5b50346101005780600319360112610100576040518091600f549081835260208093018092600f83527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80290835b8181106101ac5750505084610165910385610978565b60405193838594850191818652518092526040850193925b82811061018c57505050500390f35b83516001600160a01b03168552869550938101939281019260010161017d565b82548452928601926001928301920161014f565b503461010057610120366003190112610100576101db610931565b906001600160401b0360443516604435036101005761ffff60643516606435036101005760ff60843516608435036101005760ff60c4351660c435036101005760e435810b60e43503610100576004358260443560643560843560a4359260c4359760e43595670de0b6b3a764000090818911801561078d575b610784575b600a6001600160401b0360443516118015610771575b610768575b603360ff60843516108015610759575b610750575b601260e4358b0b13610747575b6001600160401b03166001811190811561073e575b50610735575b600560ff60c435161161072c575b85118015610724575b610717575b603261ffff60643516118015610709575b610700575b6102f060ff8a166109b8565b966102fe6040519889610978565b60ff8a16808952601f1990610312906109b8565b013660208a0137885b60ff8b1681106106c657506040519899506004976103388a610947565b607b8a526020808b01919091526012546040516342bf3cc160e01b8152998a9182906001600160a01b03165afa9788156106bb578a9861069a575b5089602060405161038381610947565b82815201526040519761039589610947565b8a89528a60208a0152604051998a6101808101106001600160401b036101808d011117610686576101808b016040908152908b526001600160a01b0390911660208b015289018a905260608901526001600160401b0390811660808901521660a087015260ff1660c086015261ffff1660e0850152610100840152830b610120830152610140820183905261016082015261043261010435610a82565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156106825760405163ca669fa760e01b81526001600160a01b0382166004820152838160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561067757610648575b5060018060a01b036011541660405192637be005d560e01b845260206004850152602081516101a060248701526001600160401b038151166101c487015201519060406101e48601526102048501825180915260206102248701930190875b8181106106295750505060208101516001600160a01b0316604486015260408101516001811015610615576064860152606081015160848601526001600160401b0360808201511660a48601526001600160401b0360a08201511660c486015260ff60c08201511660e486015261ffff60e082015116610104860152610100810151610124860152610120810151860b610144860152610140810151600381101561061557610164860152610160015180516002811015610615576101848601526020908101516001600160a01b03166101a486015291849182900390829087905af19182156100f5576105f2926105f6575b506001600160a01b03166109f9565b5080f35b61060e9060203d6020116100ee576100df8183610978565b50386105e3565b634e487b7160e01b87526021600452602487fd5b82516001600160a01b03168552602094850194909201916001016104f0565b6001600160401b038194929411610663576040529138610491565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b8280fd5b634e487b7160e01b8c52604160045260248cfd5b6106b491985060203d6020116100ee576100df8183610978565b9638610373565b6040513d8c823e3d90fd5b6001600160a01b0381166106da828b6109cf565b5260001981146106ec5760010161031b565b634e487b7160e01b8a52601160045260248afd5b603293506102e4565b5061ffff60643516156102df565b6402540be40094506102ce565b5084156102c9565b600199506102c0565b600191506102b2565b905015386102ac565b60129750610297565b6046945061028a565b50606460ff6084351611610285565b600a9350610275565b506001600160401b036044351615610270565b9750809761025a565b508815610255565b5034610100576040366003190112610100576107af610916565b604460206107bb610931565b601254604051639836b75f60e01b81526001600160a01b0395861660048201526001600160401b0390921660248301529093928491829085165afa9182156100f557602093926100c6575060405191168152f35b50346101005780600319360112610100576012546040516342bf3cc160e01b8152906001600160a01b03906020908390600490829085165afa9182156100f557602093926100c6575060405191168152f35b9050346108fe5760209182600319360112610100578282602481610883610916565b60125463030f605160e01b83526001600160a01b039182166004840152165afa9182156109095781926108c4575b50506001600160401b0360405191168152f35b9091508281813d8311610902575b6108dc8183610978565b810103126108fe5751906001600160401b0382168203610100575038806108b1565b5080fd5b503d6108d2565b50604051903d90823e3d90fd5b600435906001600160a01b038216820361092c57565b600080fd5b602435906001600160401b038216820361092c57565b604081019081106001600160401b0382111761096257604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761096257604052565b9081602091031261092c57516001600160a01b038116810361092c5790565b6001600160401b0381116109625760051b60200190565b80518210156109e35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600081815260106020526040812054610a7d57600f5468010000000000000000811015610663576001810180600f55811015610a695790826040927f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020155600f5492815260106020522055600190565b634e487b7160e01b82526032600452602482fd5b905090565b600f548015808015610b33575b15610a9b575050503390565b6040519081838152826020809201600f6000527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8029260005b878110610b1c575050610ae892500383610978565b610b06576001600160a01b0392610b01929006906109cf565b511690565b634e487b7160e01b600052601260045260246000fd5b845483526001948501948794509282019201610ad3565b506003831615610a8f56fea2646970667358221220e68569e636295e15b480657ffe238ce8d2b879bce7934a616c8d09bf1b3c3a1164736f6c63430008130033","sourceMap":"814:4673:101:-:0;;;;;;;;;;;;;-1:-1:-1;;814:4673:101;;;;-1:-1:-1;;;;;814:4673:101;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;814:4673:101;;;;;;;;;;;;;;;;1767:61;814:4673;;;1767:61;814:4673;1838:59;814:4673;;;1838:59;814:4673;;;;;;;;;;;-1:-1:-1;814:4673:101;;;;;;-1:-1:-1;814:4673:101;;;;;-1:-1:-1;814:4673:101","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c908163030f6051146108615750806342bf3cc11461080f57806358b1bc921461079557806364675ce8146101c0578063a0e67e2b146101035763ce75761f1461006357600080fd5b346101005760203660031901126101005761007c610916565b601254604051631163dca560e01b81526001600160a01b03928316600482015291906020908390602490829085165afa9182156100f557602093926100c6575b5060405191168152f35b6100e7919250833d81116100ee575b6100df8183610978565b810190610999565b90386100bc565b503d6100d5565b6040513d85823e3d90fd5b80fd5b50346101005780600319360112610100576040518091600f549081835260208093018092600f83527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80290835b8181106101ac5750505084610165910385610978565b60405193838594850191818652518092526040850193925b82811061018c57505050500390f35b83516001600160a01b03168552869550938101939281019260010161017d565b82548452928601926001928301920161014f565b503461010057610120366003190112610100576101db610931565b906001600160401b0360443516604435036101005761ffff60643516606435036101005760ff60843516608435036101005760ff60c4351660c435036101005760e435810b60e43503610100576004358260443560643560843560a4359260c4359760e43595670de0b6b3a764000090818911801561078d575b610784575b600a6001600160401b0360443516118015610771575b610768575b603360ff60843516108015610759575b610750575b601260e4358b0b13610747575b6001600160401b03166001811190811561073e575b50610735575b600560ff60c435161161072c575b85118015610724575b610717575b603261ffff60643516118015610709575b610700575b6102f060ff8a166109b8565b966102fe6040519889610978565b60ff8a16808952601f1990610312906109b8565b013660208a0137885b60ff8b1681106106c657506040519899506004976103388a610947565b607b8a526020808b01919091526012546040516342bf3cc160e01b8152998a9182906001600160a01b03165afa9788156106bb578a9861069a575b5089602060405161038381610947565b82815201526040519761039589610947565b8a89528a60208a0152604051998a6101808101106001600160401b036101808d011117610686576101808b016040908152908b526001600160a01b0390911660208b015289018a905260608901526001600160401b0390811660808901521660a087015260ff1660c086015261ffff1660e0850152610100840152830b610120830152610140820183905261016082015261043261010435610a82565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156106825760405163ca669fa760e01b81526001600160a01b0382166004820152838160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561067757610648575b5060018060a01b036011541660405192637be005d560e01b845260206004850152602081516101a060248701526001600160401b038151166101c487015201519060406101e48601526102048501825180915260206102248701930190875b8181106106295750505060208101516001600160a01b0316604486015260408101516001811015610615576064860152606081015160848601526001600160401b0360808201511660a48601526001600160401b0360a08201511660c486015260ff60c08201511660e486015261ffff60e082015116610104860152610100810151610124860152610120810151860b610144860152610140810151600381101561061557610164860152610160015180516002811015610615576101848601526020908101516001600160a01b03166101a486015291849182900390829087905af19182156100f5576105f2926105f6575b506001600160a01b03166109f9565b5080f35b61060e9060203d6020116100ee576100df8183610978565b50386105e3565b634e487b7160e01b87526021600452602487fd5b82516001600160a01b03168552602094850194909201916001016104f0565b6001600160401b038194929411610663576040529138610491565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b8280fd5b634e487b7160e01b8c52604160045260248cfd5b6106b491985060203d6020116100ee576100df8183610978565b9638610373565b6040513d8c823e3d90fd5b6001600160a01b0381166106da828b6109cf565b5260001981146106ec5760010161031b565b634e487b7160e01b8a52601160045260248afd5b603293506102e4565b5061ffff60643516156102df565b6402540be40094506102ce565b5084156102c9565b600199506102c0565b600191506102b2565b905015386102ac565b60129750610297565b6046945061028a565b50606460ff6084351611610285565b600a9350610275565b506001600160401b036044351615610270565b9750809761025a565b508815610255565b5034610100576040366003190112610100576107af610916565b604460206107bb610931565b601254604051639836b75f60e01b81526001600160a01b0395861660048201526001600160401b0390921660248301529093928491829085165afa9182156100f557602093926100c6575060405191168152f35b50346101005780600319360112610100576012546040516342bf3cc160e01b8152906001600160a01b03906020908390600490829085165afa9182156100f557602093926100c6575060405191168152f35b9050346108fe5760209182600319360112610100578282602481610883610916565b60125463030f605160e01b83526001600160a01b039182166004840152165afa9182156109095781926108c4575b50506001600160401b0360405191168152f35b9091508281813d8311610902575b6108dc8183610978565b810103126108fe5751906001600160401b0382168203610100575038806108b1565b5080fd5b503d6108d2565b50604051903d90823e3d90fd5b600435906001600160a01b038216820361092c57565b600080fd5b602435906001600160401b038216820361092c57565b604081019081106001600160401b0382111761096257604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761096257604052565b9081602091031261092c57516001600160a01b038116810361092c5790565b6001600160401b0381116109625760051b60200190565b80518210156109e35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600081815260106020526040812054610a7d57600f5468010000000000000000811015610663576001810180600f55811015610a695790826040927f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020155600f5492815260106020522055600190565b634e487b7160e01b82526032600452602482fd5b905090565b600f548015808015610b33575b15610a9b575050503390565b6040519081838152826020809201600f6000527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8029260005b878110610b1c575050610ae892500383610978565b610b06576001600160a01b0392610b01929006906109cf565b511690565b634e487b7160e01b600052601260045260246000fd5b845483526001948501948794509282019201610ad3565b506003831615610a8f56fea2646970667358221220e68569e636295e15b480657ffe238ce8d2b879bce7934a616c8d09bf1b3c3a1164736f6c63430008130033","sourceMap":"814:4673:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:32;814:4673;2963:32;;;814:4673;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;814:4673:101;;;;;;:::i;:::-;2010:19;814:4673;;;-1:-1:-1;;;2010:47:101;;-1:-1:-1;;;;;814:4673:101;;;;2010:47;;814:4673;;;;;;;;;;;;;2010:47;;;;;;;814:4673;2010:47;;;;814:4673;;;;;;;;;2010:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;814:4673;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2858:12;814:4673;;;;;;;;;;;2858:12;814:4673;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;814:4673:101;;;;;-1:-1:-1;814:4673:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;814:4673:101;;;;;;:::i;:::-;;-1:-1:-1;;;;;814:4673:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1119:7;;3354:44;;;;:67;;;;814:4673;3350:142;;814:4673;1056:2;-1:-1:-1;;;;;814:4673:101;;;3505:48;:77;;;;814:4673;3501:156;;814:4673;3692:2;814:4673;;;;3670:24;:53;;;;814:4673;3666:133;;814:4673;1237:2;814:4673;;;;3812:33;3808:97;;814:4673;-1:-1:-1;;;;;814:4673:101;;3918:39;;:62;;;;;814:4673;3914:132;;;814:4673;4071:1;814:4673;;;;4059:13;4055:57;;814:4673;4125:25;;:49;;;;814:4673;4121:111;;814:4673;1404:2;814:4673;;;;4245:50;:81;;;;814:4673;4241:162;;814:4673;1404:2;814:4673;;;1404:2;:::i;:::-;814:4673;1404:2;814:4673;;1404:2;;;:::i;:::-;814:4673;;;1404:2;;;-1:-1:-1;;1404:2:101;;;;:::i;:::-;;814:4673;;1404:2;;;4476:9;4487:13;814:4673;;;4487:13;;;;-1:-1:-1;814:4673:101;;;;-1:-1:-1;814:4673:101;;1404:2;814:4673;1404:2;:::i;:::-;1287:3;;;814:4673;4685:46;;;1287:3;;;;1237:2;814:4673;;;-1:-1:-1;;;4761:32:101;;814:4673;;;;;-1:-1:-1;;;;;814:4673:101;4761:32;;;;;;;;;;;4471:90;814:4673;;;;;1404:2;;;:::i;:::-;814:4673;;;;;;;1404:2;;;;:::i;:::-;814:4673;;;4618:99:76;814:4673:101;4618:99:76;;1404:2:101;814:4673;;;;1287:3;814:4673;;;-1:-1:-1;;;;;1287:3:101;814:4673;;;;;;1287:3;814:4673;;;;;;1287:3;;;-1:-1:-1;;;;;814:4673:101;;;;4624:684;;1404:2;4624:684;;1287:3;;;814:4673;4624:684;;1287:3;-1:-1:-1;;;;;814:4673:101;;;;4624:684;;1287:3;814:4673;;4624:684;;1287:3;814:4673;;;4624:684;;1287:3;814:4673;;;4624:684;;1287:3;814:4673;4624:684;;1287:3;814:4673;;;4624:684;;1287:3;4624:684;;;1287:3;;;4624:684;;;1287:3;5335:33;814:4673;;5335:33;:::i;:::-;814:4673;5378:15;;;;814:4673;;-1:-1:-1;;;5378:15:101;;-1:-1:-1;;;;;814:4673:101;;;5378:15;;814:4673;5378:15;814:4673;;;5378:15;814:4673;5378:15;;;;;;;;4471:90;814:4673;;;;;;5403:19;1220:14:3;814:4673:101;;;;;;;5403:42;;814:4673;;5403:42;;1220:14:3;814:4673:101;1220:14:3;;;814:4673:101;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;814:4673:101;1220:14:3;;;814:4673:101;1220:14:3;;;814:4673:101;1220:14:3;;;;;;;814:4673:101;;;;;;;;;;;1220:14:3;;;;;;;;-1:-1:-1;;;814:4673:101;4624:684;;1220:14:3;-1:-1:-1;;;;;814:4673:101;;1220:14:3;;814:4673:101;;4624:684;;1220:14:3;814:4673:101;1287:3;;;;;814:4673;1220:14:3;;;814:4673:101;4624:684;;1220:14:3;814:4673:101;1220:14:3;;814:4673:101;-1:-1:-1;;;;;814:4673:101;4624:684;;1220:14:3;814:4673:101;;1220:14:3;;814:4673:101;-1:-1:-1;;;;;814:4673:101;4624:684;;1220:14:3;814:4673:101;;1220:14:3;;814:4673:101;;;4624:684;;1220:14:3;814:4673:101;;1220:14:3;;;814:4673:101;;4624:684;;1220:14:3;814:4673:101;;1220:14:3;;;814:4673:101;4624:684;;1220:14:3;;;;814:4673:101;;4624:684;;1220:14:3;814:4673:101;;1220:14:3;;;;4624:684:101;;;1220:14:3;814:4673:101;1287:3;;;;;1220:14:3;;;;4624:684:101;;1220:14:3;;;;;;;;;;;;;814:4673:101;1220:14:3;;;;-1:-1:-1;;;;;814:4673:101;1220:14:3;;;814:4673:101;;1220:14:3;;5403:42:101;;;;1220:14:3;;;;5403:42:101;;;;;;;8399:50:36;5403:42:101;;;1220:14:3;-1:-1:-1;;;;;;814:4673:101;8399:50:36;:::i;:::-;;814:4673:101;;5403:42;;;814:4673;5403:42;814:4673;5403:42;;;;;;;:::i;:::-;;;;;1220:14:3;-1:-1:-1;;;1287:3:101;;;814:4673;1287:3;814:4673;1404:2;1287:3;1220:14:3;;;-1:-1:-1;;;;;814:4673:101;;;;;;;;;;;;;1220:14:3;;;5378:15:101;-1:-1:-1;;;;;814:4673:101;;;;;;;;;5378:15;;;;814:4673;-1:-1:-1;;;814:4673:101;;;;;;1404:2;814:4673;5378:15;814:4673;;;;;;;;;5378:15;814:4673;;;;-1:-1:-1;;;814:4673:101;;;;;;1404:2;814:4673;4761:32;;;;;814:4673;4761:32;814:4673;4761:32;;;;;;;:::i;:::-;;;;;;814:4673;;;;;;;;;4502:3;-1:-1:-1;;;;;814:4673:101;;4521:29;814:4673;4521:29;;:::i;:::-;1404:2;-1:-1:-1;;1404:2:101;;;;814:4673;1404:2;4476:9;;1404:2;-1:-1:-1;;;1404:2:101;;;814:4673;1404:2;814:4673;1404:2;;4241:162;1404:2;;-1:-1:-1;4241:162:101;;4245:81;814:4673;;;;;4299:27;4245:81;;4121:111;1453:7;;-1:-1:-1;4121:111:101;;4125:49;4154:20;;;4125:49;;4055:57;814:4673;;-1:-1:-1;4055:57:101;;3914:132;814:4673;;-1:-1:-1;3914:132:101;;3918:62;3961:19;;;3918:62;;;3808:97;1237:2;;-1:-1:-1;3808:97:101;;3666:133;1185:2;;-1:-1:-1;3666:133:101;;3670:53;814:4673;;;;;;3698:25;3670:53;;3501:156;1056:2;;-1:-1:-1;3501:156:101;;3505:77;814:4673;-1:-1:-1;;;;;814:4673:101;;;3557:25;3505:77;;3350:142;3437:44;;;3350:142;;;3354:67;3402:19;;;3354:67;;814:4673;;;;;;;-1:-1:-1;;814:4673:101;;;;;;:::i;:::-;;;;;:::i;:::-;2191:19;814:4673;;;-1:-1:-1;;;2191:58:101;;-1:-1:-1;;;;;814:4673:101;;;;2191:58;;814:4673;-1:-1:-1;;;;;814:4673:101;;;;;;;;;;;;;;;;2191:58;;;;;;;814:4673;2191:58;;;;814:4673;;;;;;;;;;;;;;;;;;;;;2963:19;814:4673;;;-1:-1:-1;;;2963:32:101;;814:4673;-1:-1:-1;;;;;814:4673:101;2963:32;;814:4673;;;;;;;;2963:32;;;;;;;;;;;;814:4673;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2356:19;814:4673;-1:-1:-1;;;2356:42:101;;-1:-1:-1;;;;;814:4673:101;;;;2356:42;;814:4673;;2356:42;;;;;;;;;;;814:4673;;;-1:-1:-1;;;;;814:4673:101;;;;;;;2356:42;;;;;;;;;;;;;;;;;:::i;:::-;;;814:4673;;;;;;-1:-1:-1;;;;;814:4673:101;;;;;;2356:42;;;;;814:4673;;;;2356:42;;;;;;814:4673;;;;;;;;;;;;;;;-1:-1:-1;;;;;814:4673:101;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;814:4673:101;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;814:4673:101;;;;;;;:::o;:::-;1404:2;;;814:4673;;;;;;;;;;1404:2;;;814:4673;;;;;;;;-1:-1:-1;;;;;814:4673:101;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;814:4673:101;;;;;;;:::o;1404:2::-;-1:-1:-1;;;;;1404:2:101;;;;;;;;;:::o;:::-;814:4673;;1404:2;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2215:404:36;-1:-1:-1;814:4673:101;;;4352:12:36;814:4673:101;;;;;;;;5455:12;814:4673;;;;;;;4352:12:36;814:4673:101;;;5455:12;814:4673;;;;;;;;;;;;;5455:12;814:4673;;;;4352:12:36;814:4673:101;;;;4352:12:36;2548:11;:::o;814:4673:101:-;-1:-1:-1;;;1404:2:101;;;;;;;;2294:319:36;2590:12;;;:::o;2476:297:101:-;2586:12;814:4673;2621:11;;:28;;;;;2476:297;2617:150;;;2672:10;;;;2665:17;:::o;2617:150::-;814:4673;;;;;;;;;;;;2586:12;-1:-1:-1;814:4673:101;;;-1:-1:-1;814:4673:101;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;814:4673:101;2720:36;;814:4673;;;2720:36;:::i;:::-;814:4673;;2713:43;:::o;814:4673::-;1404:2;;;-1:-1:-1;814:4673:101;;;;;-1:-1:-1;814:4673:101;;;;;;;;;;;;;-1:-1:-1;814:4673:101;;;;;;;2621:28;814:4673;;;;2636:13;2621:28;","linkReferences":{}},"methodIdentifiers":{"deploySubnetActorFromRegistry(uint256,uint64,uint64,uint16,uint8,uint256,uint8,int8,uint256)":"64675ce8","getGateway()":"42bf3cc1","getOwners()":"a0e67e2b","getSubnetDeployedBy(address)":"ce75761f","getSubnetDeployedWithNonce(address,uint64)":"58b1bc92","getUserLastNonce(address)":"030f6051"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract SubnetRegistryDiamond\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_pathSize\",\"type\":\"uint8\"},{\"internalType\":\"int8\",\"name\":\"_powerScale\",\"type\":\"int8\"},{\"internalType\":\"uint256\",\"name\":\"seed\",\"type\":\"uint256\"}],\"name\":\"deploySubnetActorFromRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getSubnetDeployedBy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getSubnetDeployedWithNonce\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserLastNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/invariants/handlers/SubnetRegistryHandler.sol\":\"SubnetRegistryHandler\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/invariants/handlers/SubnetRegistryHandler.sol\":{\"keccak256\":\"0x6f3e5a177e75795aa1d468726ae79b318b55921133130b349e6f89e79f8a3f54\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c26682d020158ee3ae549716ddfdbec3d4012e736a52596b36758cddc81e27cf\",\"dweb:/ipfs/QmRH1dhNCiyjxGMaHTEiu7obgbrHav54psdSwgufRTeCcP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract SubnetRegistryDiamond","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"_minCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint16","name":"_activeValidatorsLimit","type":"uint16"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"},{"internalType":"uint256","name":"_minCrossMsgFee","type":"uint256"},{"internalType":"uint8","name":"_pathSize","type":"uint8"},{"internalType":"int8","name":"_powerScale","type":"int8"},{"internalType":"uint256","name":"seed","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deploySubnetActorFromRegistry"},{"inputs":[],"stateMutability":"view","type":"function","name":"getGateway","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedBy","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedWithNonce","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserLastNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/invariants/handlers/SubnetRegistryHandler.sol":"SubnetRegistryHandler"},"libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/invariants/handlers/SubnetRegistryHandler.sol":{"keccak256":"0x6f3e5a177e75795aa1d468726ae79b318b55921133130b349e6f89e79f8a3f54","urls":["bzz-raw://c26682d020158ee3ae549716ddfdbec3d4012e736a52596b36758cddc81e27cf","dweb:/ipfs/QmRH1dhNCiyjxGMaHTEiu7obgbrHav54psdSwgufRTeCcP"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/invariants/handlers/SubnetRegistryHandler.sol","id":58292,"exportedSymbols":{"CommonBase":[3777],"ConsensusType":[37359],"EnumerableSet":[35815],"IMulticall3":[30545],"PermissionMode":[50118],"RegisterSubnetFacet":[52286],"StdCheats":[8180],"StdCheatsSafe":[7501],"StdStorage":[9220],"StdUtils":[12691],"SubnetActorDiamond":[36615],"SubnetGetterFacet":[52524],"SubnetID":[50030],"SubnetRegistryDiamond":[36853],"SubnetRegistryHandler":[58291],"SupplySourceHelper":[48351],"Vm":[14222],"VmSafe":[13782],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:5442:101","nodes":[{"id":57884,"nodeType":"PragmaDirective","src":"46:23:101","nodes":[],"literals":["solidity","0.8",".19"]},{"id":57885,"nodeType":"ImportDirective","src":"71:32:101","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"forge-std/StdUtils.sol","nameLocation":"-1:-1:-1","scope":58292,"sourceUnit":12692,"symbolAliases":[],"unitAlias":""},{"id":57886,"nodeType":"ImportDirective","src":"104:33:101","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"forge-std/StdCheats.sol","nameLocation":"-1:-1:-1","scope":58292,"sourceUnit":8181,"symbolAliases":[],"unitAlias":""},{"id":57888,"nodeType":"ImportDirective","src":"138:46:101","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"forge-std/Base.sol","nameLocation":"-1:-1:-1","scope":58292,"sourceUnit":3793,"symbolAliases":[{"foreign":{"id":57887,"name":"CommonBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"146:10:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57890,"nodeType":"ImportDirective","src":"185:88:101","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../../../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":58292,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":57889,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"193:19:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57892,"nodeType":"ImportDirective","src":"274:84:101","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../../../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":58292,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":57891,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"282:17:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57894,"nodeType":"ImportDirective","src":"359:71:101","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../../../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":58292,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":57893,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"367:18:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57896,"nodeType":"ImportDirective","src":"431:77:101","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../../../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":58292,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":57895,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"439:21:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57898,"nodeType":"ImportDirective","src":"509:67:101","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../../../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":58292,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":57897,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"517:13:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57901,"nodeType":"ImportDirective","src":"577:73:101","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":58292,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":57899,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"585:8:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":57900,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"595:14:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57903,"nodeType":"ImportDirective","src":"651:75:101","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../../../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":58292,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":57902,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"659:18:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57905,"nodeType":"ImportDirective","src":"727:85:101","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":58292,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":57904,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"735:13:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58291,"nodeType":"ContractDefinition","src":"814:4673:101","nodes":[{"id":57915,"nodeType":"UsingForDirective","src":"886:49:101","nodes":[],"global":false,"libraryName":{"id":57912,"name":"EnumerableSet","nameLocations":["892:13:101"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"892:13:101"},"typeName":{"id":57914,"nodeType":"UserDefinedTypeName","pathNode":{"id":57913,"name":"EnumerableSet.AddressSet","nameLocations":["910:13:101","924:10:101"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"910:24:101"},"referencedDeclaration":35528,"src":"910:24:101","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":57921,"nodeType":"VariableDeclaration","src":"941:65:101","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"966:24:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57916,"name":"address","nodeType":"ElementaryTypeName","src":"941:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":57919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1001:4:101","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":57918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"993:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57917,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:101","typeDescriptions":{}}},"id":57920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"993:13:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":57924,"nodeType":"VariableDeclaration","src":"1012:46:101","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"1028:25:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57922,"name":"uint64","nodeType":"ElementaryTypeName","src":"1012:6:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":57923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1056:2:101","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":57927,"nodeType":"VariableDeclaration","src":"1064:62:101","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"1089:27:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57925,"name":"uint256","nodeType":"ElementaryTypeName","src":"1064:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":57926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1119:7:101","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"private"},{"id":57930,"nodeType":"VariableDeclaration","src":"1132:55:101","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"1155:27:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57928,"name":"uint8","nodeType":"ElementaryTypeName","src":"1132:5:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":57929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1185:2:101","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"private"},{"id":57933,"nodeType":"VariableDeclaration","src":"1193:46:101","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"1215:19:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":57931,"name":"int8","nodeType":"ElementaryTypeName","src":"1193:4:101","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3138","id":57932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1237:2:101","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"private"},{"id":57936,"nodeType":"VariableDeclaration","src":"1245:45:101","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"1269:15:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57934,"name":"uint64","nodeType":"ElementaryTypeName","src":"1245:6:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":57935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1287:3:101","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"private"},{"id":57939,"nodeType":"VariableDeclaration","src":"1296:50:101","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"1320:22:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57937,"name":"uint64","nodeType":"ElementaryTypeName","src":"1296:6:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":57938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1345:1:101","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":57942,"nodeType":"VariableDeclaration","src":"1352:54:101","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS","nameLocation":"1376:25:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":57940,"name":"uint16","nodeType":"ElementaryTypeName","src":"1352:6:101","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3530","id":57941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1404:2:101","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"visibility":"private"},{"id":57945,"nodeType":"VariableDeclaration","src":"1412:48:101","nodes":[],"constant":true,"mutability":"constant","name":"CROSS_MSG_FEE","nameLocation":"1437:13:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57943,"name":"uint256","nodeType":"ElementaryTypeName","src":"1412:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":57944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1453:7:101","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"private"},{"id":57948,"nodeType":"VariableDeclaration","src":"1467:45:101","nodes":[],"constant":false,"mutability":"mutable","name":"ghost_owners","nameLocation":"1500:12:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":57947,"nodeType":"UserDefinedTypeName","pathNode":{"id":57946,"name":"EnumerableSet.AddressSet","nameLocations":["1467:13:101","1481:10:101"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1467:24:101"},"referencedDeclaration":35528,"src":"1467:24:101","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"id":57951,"nodeType":"VariableDeclaration","src":"1518:47:101","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacet","nameLocation":"1546:19:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":57950,"nodeType":"UserDefinedTypeName","pathNode":{"id":57949,"name":"RegisterSubnetFacet","nameLocations":["1518:19:101"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"1518:19:101"},"referencedDeclaration":52286,"src":"1518:19:101","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"private"},{"id":57954,"nodeType":"VariableDeclaration","src":"1571:45:101","nodes":[],"constant":false,"mutability":"mutable","name":"registerGetterFacet","nameLocation":"1597:19:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":57953,"nodeType":"UserDefinedTypeName","pathNode":{"id":57952,"name":"SubnetGetterFacet","nameLocations":["1571:17:101"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"1571:17:101"},"referencedDeclaration":52524,"src":"1571:17:101","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"private"},{"id":57956,"nodeType":"VariableDeclaration","src":"1623:39:101","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetAddr","nameLocation":"1639:23:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57955,"name":"address","nodeType":"ElementaryTypeName","src":"1623:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":57958,"nodeType":"VariableDeclaration","src":"1668:37:101","nodes":[],"constant":false,"mutability":"mutable","name":"subnetGetterFacetAddr","nameLocation":"1684:21:101","scope":58291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57957,"name":"address","nodeType":"ElementaryTypeName","src":"1668:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":57983,"nodeType":"FunctionDefinition","src":"1712:192:101","nodes":[],"body":{"id":57982,"nodeType":"Block","src":"1757:147:101","nodes":[],"statements":[{"expression":{"id":57971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57964,"name":"registerSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57951,"src":"1767:19:101","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57968,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57961,"src":"1817:9:101","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":57967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1809:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57966,"name":"address","nodeType":"ElementaryTypeName","src":"1809:7:101","typeDescriptions":{}}},"id":57969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:18:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57965,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"1789:19:101","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"type(contract RegisterSubnetFacet)"}},"id":57970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1789:39:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"src":"1767:61:101","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"id":57972,"nodeType":"ExpressionStatement","src":"1767:61:101"},{"expression":{"id":57980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57973,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57954,"src":"1838:19:101","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57977,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57961,"src":"1886:9:101","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":57976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1878:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57975,"name":"address","nodeType":"ElementaryTypeName","src":"1878:7:101","typeDescriptions":{}}},"id":57978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1878:18:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57974,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"1860:17:101","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"type(contract SubnetGetterFacet)"}},"id":57979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1860:37:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"src":"1838:59:101","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":57981,"nodeType":"ExpressionStatement","src":"1838:59:101"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":57962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57961,"mutability":"mutable","name":"_registry","nameLocation":"1746:9:101","nodeType":"VariableDeclaration","scope":57983,"src":"1724:31:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":57960,"nodeType":"UserDefinedTypeName","pathNode":{"id":57959,"name":"SubnetRegistryDiamond","nameLocations":["1724:21:101"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"1724:21:101"},"referencedDeclaration":36853,"src":"1724:21:101","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"1723:33:101"},"returnParameters":{"id":57963,"nodeType":"ParameterList","parameters":[],"src":"1757:0:101"},"scope":58291,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57996,"nodeType":"FunctionDefinition","src":"1910:154:101","nodes":[],"body":{"id":57995,"nodeType":"Block","src":"1993:71:101","nodes":[],"statements":[{"expression":{"arguments":[{"id":57992,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57985,"src":"2051:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57990,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57954,"src":"2010:19:101","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":57991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2030:20:101","memberName":"latestSubnetDeployed","nodeType":"MemberAccess","referencedDeclaration":52342,"src":"2010:40:101","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_address_$","typeString":"function (address) view external returns (address)"}},"id":57993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:47:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57989,"id":57994,"nodeType":"Return","src":"2003:54:101"}]},"functionSelector":"ce75761f","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedBy","nameLocation":"1919:19:101","parameters":{"id":57986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57985,"mutability":"mutable","name":"owner","nameLocation":"1947:5:101","nodeType":"VariableDeclaration","scope":57996,"src":"1939:13:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57984,"name":"address","nodeType":"ElementaryTypeName","src":"1939:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1938:15:101"},"returnParameters":{"id":57989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57988,"mutability":"mutable","name":"subnet","nameLocation":"1985:6:101","nodeType":"VariableDeclaration","scope":57996,"src":"1977:14:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57987,"name":"address","nodeType":"ElementaryTypeName","src":"1977:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1976:16:101"},"scope":58291,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":58012,"nodeType":"FunctionDefinition","src":"2070:186:101","nodes":[],"body":{"id":58011,"nodeType":"Block","src":"2174:82:101","nodes":[],"statements":[{"expression":{"arguments":[{"id":58007,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57998,"src":"2236:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58008,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58000,"src":"2243:5:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":58005,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57954,"src":"2191:19:101","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":58006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2211:24:101","memberName":"getSubnetDeployedByNonce","nodeType":"MemberAccess","referencedDeclaration":52381,"src":"2191:44:101","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint64_$returns$_t_address_$","typeString":"function (address,uint64) view external returns (address)"}},"id":58009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2191:58:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58004,"id":58010,"nodeType":"Return","src":"2184:65:101"}]},"functionSelector":"58b1bc92","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedWithNonce","nameLocation":"2079:26:101","parameters":{"id":58001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57998,"mutability":"mutable","name":"owner","nameLocation":"2114:5:101","nodeType":"VariableDeclaration","scope":58012,"src":"2106:13:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57997,"name":"address","nodeType":"ElementaryTypeName","src":"2106:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58000,"mutability":"mutable","name":"nonce","nameLocation":"2128:5:101","nodeType":"VariableDeclaration","scope":58012,"src":"2121:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57999,"name":"uint64","nodeType":"ElementaryTypeName","src":"2121:6:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2105:29:101"},"returnParameters":{"id":58004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58003,"mutability":"mutable","name":"subnet","nameLocation":"2166:6:101","nodeType":"VariableDeclaration","scope":58012,"src":"2158:14:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58002,"name":"address","nodeType":"ElementaryTypeName","src":"2158:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2157:16:101"},"scope":58291,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":58025,"nodeType":"FunctionDefinition","src":"2262:143:101","nodes":[],"body":{"id":58024,"nodeType":"Block","src":"2339:66:101","nodes":[],"statements":[{"expression":{"arguments":[{"id":58021,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58014,"src":"2393:4:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58019,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57954,"src":"2356:19:101","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":58020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2376:16:101","memberName":"getUserLastNonce","nodeType":"MemberAccess","referencedDeclaration":52405,"src":"2356:36:101","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint64_$","typeString":"function (address) view external returns (uint64)"}},"id":58022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2356:42:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":58018,"id":58023,"nodeType":"Return","src":"2349:49:101"}]},"functionSelector":"030f6051","implemented":true,"kind":"function","modifiers":[],"name":"getUserLastNonce","nameLocation":"2271:16:101","parameters":{"id":58015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58014,"mutability":"mutable","name":"user","nameLocation":"2296:4:101","nodeType":"VariableDeclaration","scope":58025,"src":"2288:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58013,"name":"address","nodeType":"ElementaryTypeName","src":"2288:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2287:14:101"},"returnParameters":{"id":58018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58017,"mutability":"mutable","name":"nonce","nameLocation":"2332:5:101","nodeType":"VariableDeclaration","scope":58025,"src":"2325:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58016,"name":"uint64","nodeType":"ElementaryTypeName","src":"2325:6:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2324:14:101"},"scope":58291,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":58063,"nodeType":"FunctionDefinition","src":"2476:297:101","nodes":[],"body":{"id":58062,"nodeType":"Block","src":"2559:214:101","nodes":[],"statements":[{"assignments":[58034],"declarations":[{"constant":false,"id":58034,"mutability":"mutable","name":"lenght","nameLocation":"2577:6:101","nodeType":"VariableDeclaration","scope":58062,"src":"2569:14:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58033,"name":"uint256","nodeType":"ElementaryTypeName","src":"2569:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58038,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58035,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57948,"src":"2586:12:101","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2599:6:101","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35624,"src":"2586:19:101","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":58037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2586:21:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2569:38:101"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58039,"name":"lenght","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58034,"src":"2621:6:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2631:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2621:11:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58042,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58028,"src":"2636:4:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"34","id":58043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2643:1:101","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2636:8:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2648:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2636:13:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2621:28:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":58060,"nodeType":"Block","src":"2699:68:101","statements":[{"expression":{"baseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58052,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57948,"src":"2720:12:101","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2733:6:101","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2720:19:101","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":58054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2720:21:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":58058,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58055,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58028,"src":"2742:4:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":58056,"name":"lenght","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58034,"src":"2749:6:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2742:13:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2720:36:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58032,"id":58059,"nodeType":"Return","src":"2713:43:101"}]},"id":58061,"nodeType":"IfStatement","src":"2617:150:101","trueBody":{"id":58051,"nodeType":"Block","src":"2651:42:101","statements":[{"expression":{"expression":{"id":58048,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2672:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2676:6:101","memberName":"sender","nodeType":"MemberAccess","src":"2672:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58032,"id":58050,"nodeType":"Return","src":"2665:17:101"}]}}]},"documentation":{"id":58026,"nodeType":"StructuredDocumentation","src":"2411:60:101","text":"getRandomOldAddressOrNewOne returns a new random address"},"implemented":true,"kind":"function","modifiers":[],"name":"getRandomOldAddressOrNewOne","nameLocation":"2485:27:101","parameters":{"id":58029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58028,"mutability":"mutable","name":"seed","nameLocation":"2521:4:101","nodeType":"VariableDeclaration","scope":58063,"src":"2513:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58027,"name":"uint256","nodeType":"ElementaryTypeName","src":"2513:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2512:14:101"},"returnParameters":{"id":58032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58063,"src":"2550:7:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58030,"name":"address","nodeType":"ElementaryTypeName","src":"2550:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2549:9:101"},"scope":58291,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":58074,"nodeType":"FunctionDefinition","src":"2779:107:101","nodes":[],"body":{"id":58073,"nodeType":"Block","src":"2841:45:101","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58069,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57948,"src":"2858:12:101","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2871:6:101","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2858:19:101","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":58071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:21:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":58068,"id":58072,"nodeType":"Return","src":"2851:28:101"}]},"functionSelector":"a0e67e2b","implemented":true,"kind":"function","modifiers":[],"name":"getOwners","nameLocation":"2788:9:101","parameters":{"id":58064,"nodeType":"ParameterList","parameters":[],"src":"2797:2:101"},"returnParameters":{"id":58068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58067,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58074,"src":"2823:16:101","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":58065,"name":"address","nodeType":"ElementaryTypeName","src":"2823:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58066,"nodeType":"ArrayTypeName","src":"2823:9:101","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2822:18:101"},"scope":58291,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":58084,"nodeType":"FunctionDefinition","src":"2892:110:101","nodes":[],"body":{"id":58083,"nodeType":"Block","src":"2946:56:101","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58079,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57954,"src":"2963:19:101","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":58080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2983:10:101","memberName":"getGateway","nodeType":"MemberAccess","referencedDeclaration":52415,"src":"2963:30:101","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":58081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:32:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58078,"id":58082,"nodeType":"Return","src":"2956:39:101"}]},"functionSelector":"42bf3cc1","implemented":true,"kind":"function","modifiers":[],"name":"getGateway","nameLocation":"2901:10:101","parameters":{"id":58075,"nodeType":"ParameterList","parameters":[],"src":"2911:2:101"},"returnParameters":{"id":58078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58077,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58084,"src":"2937:7:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58076,"name":"address","nodeType":"ElementaryTypeName","src":"2937:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2936:9:101"},"scope":58291,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":58290,"nodeType":"FunctionDefinition","src":"3008:2477:101","nodes":[],"body":{"id":58289,"nodeType":"Block","src":"3340:2145:101","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58105,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58086,"src":"3354:14:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":58106,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57927,"src":"3371:27:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3354:44:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58108,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58086,"src":"3402:14:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3420:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3402:19:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3354:67:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58117,"nodeType":"IfStatement","src":"3350:142:101","trueBody":{"id":58116,"nodeType":"Block","src":"3423:69:101","statements":[{"expression":{"id":58114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58112,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58086,"src":"3437:14:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58113,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57927,"src":"3454:27:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3437:44:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58115,"nodeType":"ExpressionStatement","src":"3437:44:101"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":58120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58118,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58090,"src":"3505:20:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":58119,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57924,"src":"3528:25:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3505:48:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":58123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58121,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58090,"src":"3557:20:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3581:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3557:25:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3505:77:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58130,"nodeType":"IfStatement","src":"3501:156:101","trueBody":{"id":58129,"nodeType":"Block","src":"3584:73:101","statements":[{"expression":{"id":58127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58125,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58090,"src":"3598:20:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58126,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57924,"src":"3621:25:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3598:48:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":58128,"nodeType":"ExpressionStatement","src":"3598:48:101"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58131,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58094,"src":"3670:19:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":58132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3692:2:101","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"3670:24:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58134,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58094,"src":"3698:19:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":58135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:3:101","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"3698:25:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3670:53:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58143,"nodeType":"IfStatement","src":"3666:133:101","trueBody":{"id":58142,"nodeType":"Block","src":"3725:74:101","statements":[{"expression":{"id":58140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58138,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58094,"src":"3739:19:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58139,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57930,"src":"3761:27:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3739:49:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":58141,"nodeType":"ExpressionStatement","src":"3739:49:101"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":58146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58144,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58100,"src":"3812:11:101","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":58145,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57933,"src":"3826:19:101","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3812:33:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58152,"nodeType":"IfStatement","src":"3808:97:101","trueBody":{"id":58151,"nodeType":"Block","src":"3847:58:101","statements":[{"expression":{"id":58149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58147,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58100,"src":"3861:11:101","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58148,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57933,"src":"3875:19:101","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3861:33:101","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":58150,"nodeType":"ExpressionStatement","src":"3861:33:101"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":58155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58153,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58088,"src":"3918:14:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":58154,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57939,"src":"3935:22:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3918:39:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":58158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58156,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58088,"src":"3961:14:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3979:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3961:19:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3918:62:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58165,"nodeType":"IfStatement","src":"3914:132:101","trueBody":{"id":58164,"nodeType":"Block","src":"3982:64:101","statements":[{"expression":{"id":58162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58160,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58088,"src":"3996:14:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58161,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57939,"src":"4013:22:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3996:39:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":58163,"nodeType":"ExpressionStatement","src":"3996:39:101"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58166,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58098,"src":"4059:9:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"35","id":58167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4071:1:101","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"4059:13:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58174,"nodeType":"IfStatement","src":"4055:57:101","trueBody":{"id":58173,"nodeType":"Block","src":"4074:38:101","statements":[{"expression":{"id":58171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58169,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58098,"src":"4088:9:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":58170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4100:1:101","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4088:13:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":58172,"nodeType":"ExpressionStatement","src":"4088:13:101"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58175,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58096,"src":"4125:15:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":58176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4143:7:101","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"4125:25:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58178,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58096,"src":"4154:15:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4173:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4154:20:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4125:49:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58187,"nodeType":"IfStatement","src":"4121:111:101","trueBody":{"id":58186,"nodeType":"Block","src":"4176:56:101","statements":[{"expression":{"id":58184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58182,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58096,"src":"4190:15:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58183,"name":"CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57945,"src":"4208:13:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4190:31:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58185,"nodeType":"ExpressionStatement","src":"4190:31:101"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":58190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58188,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58092,"src":"4245:22:101","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":58189,"name":"DEFAULT_ACTIVE_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57942,"src":"4270:25:101","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4245:50:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":58193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58191,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58092,"src":"4299:22:101","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4325:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4299:27:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4245:81:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58200,"nodeType":"IfStatement","src":"4241:162:101","trueBody":{"id":58199,"nodeType":"Block","src":"4328:75:101","statements":[{"expression":{"id":58197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58195,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58092,"src":"4342:22:101","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58196,"name":"DEFAULT_ACTIVE_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57942,"src":"4367:25:101","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4342:50:101","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":58198,"nodeType":"ExpressionStatement","src":"4342:50:101"}]}},{"assignments":[58205],"declarations":[{"constant":false,"id":58205,"mutability":"mutable","name":"path","nameLocation":"4430:4:101","nodeType":"VariableDeclaration","scope":58289,"src":"4413:21:101","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":58203,"name":"address","nodeType":"ElementaryTypeName","src":"4413:7:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58204,"nodeType":"ArrayTypeName","src":"4413:9:101","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":58211,"initialValue":{"arguments":[{"id":58209,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58098,"src":"4451:9:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":58208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4437:13:101","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":58206,"name":"address","nodeType":"ElementaryTypeName","src":"4441:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58207,"nodeType":"ArrayTypeName","src":"4441:9:101","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":58210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:24:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4413:48:101"},{"body":{"id":58233,"nodeType":"Block","src":"4507:54:101","statements":[{"expression":{"id":58231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":58221,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58205,"src":"4521:4:101","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":58223,"indexExpression":{"id":58222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58213,"src":"4526:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4521:7:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":58228,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58213,"src":"4547:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4539:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":58226,"name":"uint160","nodeType":"ElementaryTypeName","src":"4539:7:101","typeDescriptions":{}}},"id":58229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4539:10:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":58225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4531:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58224,"name":"address","nodeType":"ElementaryTypeName","src":"4531:7:101","typeDescriptions":{}}},"id":58230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:19:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4521:29:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58232,"nodeType":"ExpressionStatement","src":"4521:29:101"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58215,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58213,"src":"4487:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":58216,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58098,"src":"4491:9:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4487:13:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58234,"initializationExpression":{"assignments":[58213],"declarations":[{"constant":false,"id":58213,"mutability":"mutable","name":"i","nameLocation":"4484:1:101","nodeType":"VariableDeclaration","scope":58234,"src":"4476:9:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58212,"name":"uint256","nodeType":"ElementaryTypeName","src":"4476:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58214,"nodeType":"VariableDeclarationStatement","src":"4476:9:101"},"loopExpression":{"expression":{"id":58219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4502:3:101","subExpression":{"id":58218,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58213,"src":"4504:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58220,"nodeType":"ExpressionStatement","src":"4502:3:101"},"nodeType":"ForStatement","src":"4471:90:101"},{"assignments":[58239],"declarations":[{"constant":false,"id":58239,"mutability":"mutable","name":"params","nameLocation":"4615:6:101","nodeType":"VariableDeclaration","scope":58289,"src":"4571:50:101","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":58238,"nodeType":"UserDefinedTypeName","pathNode":{"id":58237,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["4571:18:101","4590:17:101"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"4571:36:101"},"referencedDeclaration":36253,"src":"4571:36:101","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":58264,"initialValue":{"arguments":[{"arguments":[{"id":58243,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57936,"src":"4701:15:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":58244,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58205,"src":"4725:4:101","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":58242,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"4685:8:101","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":58245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4695:4:101","4718:5:101"],"names":["root","route"],"nodeType":"FunctionCall","src":"4685:46:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58246,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57954,"src":"4761:19:101","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":58247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4781:10:101","memberName":"getGateway","nodeType":"MemberAccess","referencedDeclaration":52415,"src":"4761:30:101","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":58248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4761:32:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":58249,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"4818:13:101","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":58250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4832:10:101","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"4818:24:101","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":58251,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58086,"src":"4881:14:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58252,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58088,"src":"4924:14:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":58253,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58090,"src":"4973:20:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":58254,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58094,"src":"5027:19:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":58255,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58092,"src":"5083:22:101","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":58256,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58100,"src":"5131:11:101","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"expression":{"id":58257,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"5172:14:101","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":58258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5187:10:101","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"5172:25:101","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":58259,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58096,"src":"5227:15:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58260,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"5270:18:101","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":58261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5289:6:101","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"5270:25:101","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":58262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5270:27:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":58240,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"4624:18:101","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":58241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4643:17:101","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"4624:36:101","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":58263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4675:8:101","4745:14:101","4807:9:101","4856:23:101","4909:13:101","4952:19:101","5007:18:101","5060:21:101","5119:10:101","5156:14:101","5211:14:101","5256:12:101"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"4624:684:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"4571:737:101"},{"assignments":[58266],"declarations":[{"constant":false,"id":58266,"mutability":"mutable","name":"owner","nameLocation":"5327:5:101","nodeType":"VariableDeclaration","scope":58289,"src":"5319:13:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58265,"name":"address","nodeType":"ElementaryTypeName","src":"5319:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58270,"initialValue":{"arguments":[{"id":58268,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58102,"src":"5363:4:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58267,"name":"getRandomOldAddressOrNewOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58063,"src":"5335:27:101","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":58269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5335:33:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5319:49:101"},{"expression":{"arguments":[{"id":58274,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58266,"src":"5387:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58271,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5378:2:101","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":58273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5381:5:101","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"5378:8:101","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5378:15:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58276,"nodeType":"ExpressionStatement","src":"5378:15:101"},{"expression":{"arguments":[{"id":58280,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58239,"src":"5438:6:101","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"expression":{"id":58277,"name":"registerSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57951,"src":"5403:19:101","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"id":58279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5423:14:101","memberName":"newSubnetActor","nodeType":"MemberAccess","referencedDeclaration":52285,"src":"5403:34:101","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_address_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) external returns (address)"}},"id":58281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5403:42:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58282,"nodeType":"ExpressionStatement","src":"5403:42:101"},{"expression":{"arguments":[{"id":58286,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58266,"src":"5472:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58283,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57948,"src":"5455:12:101","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5468:3:101","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"5455:16:101","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":58287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5455:23:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58288,"nodeType":"ExpressionStatement","src":"5455:23:101"}]},"functionSelector":"64675ce8","implemented":true,"kind":"function","modifiers":[],"name":"deploySubnetActorFromRegistry","nameLocation":"3017:29:101","parameters":{"id":58103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58086,"mutability":"mutable","name":"_minCollateral","nameLocation":"3064:14:101","nodeType":"VariableDeclaration","scope":58290,"src":"3056:22:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58085,"name":"uint256","nodeType":"ElementaryTypeName","src":"3056:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58088,"mutability":"mutable","name":"_minValidators","nameLocation":"3095:14:101","nodeType":"VariableDeclaration","scope":58290,"src":"3088:21:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58087,"name":"uint64","nodeType":"ElementaryTypeName","src":"3088:6:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":58090,"mutability":"mutable","name":"_bottomUpCheckPeriod","nameLocation":"3126:20:101","nodeType":"VariableDeclaration","scope":58290,"src":"3119:27:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58089,"name":"uint64","nodeType":"ElementaryTypeName","src":"3119:6:101","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":58092,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"3163:22:101","nodeType":"VariableDeclaration","scope":58290,"src":"3156:29:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":58091,"name":"uint16","nodeType":"ElementaryTypeName","src":"3156:6:101","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":58094,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"3201:19:101","nodeType":"VariableDeclaration","scope":58290,"src":"3195:25:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58093,"name":"uint8","nodeType":"ElementaryTypeName","src":"3195:5:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":58096,"mutability":"mutable","name":"_minCrossMsgFee","nameLocation":"3238:15:101","nodeType":"VariableDeclaration","scope":58290,"src":"3230:23:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58095,"name":"uint256","nodeType":"ElementaryTypeName","src":"3230:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58098,"mutability":"mutable","name":"_pathSize","nameLocation":"3269:9:101","nodeType":"VariableDeclaration","scope":58290,"src":"3263:15:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58097,"name":"uint8","nodeType":"ElementaryTypeName","src":"3263:5:101","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":58100,"mutability":"mutable","name":"_powerScale","nameLocation":"3293:11:101","nodeType":"VariableDeclaration","scope":58290,"src":"3288:16:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":58099,"name":"int8","nodeType":"ElementaryTypeName","src":"3288:4:101","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":58102,"mutability":"mutable","name":"seed","nameLocation":"3322:4:101","nodeType":"VariableDeclaration","scope":58290,"src":"3314:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58101,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3046:286:101"},"returnParameters":{"id":58104,"nodeType":"ParameterList","parameters":[],"src":"3340:0:101"},"scope":58291,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":57906,"name":"CommonBase","nameLocations":["848:10:101"],"nodeType":"IdentifierPath","referencedDeclaration":3777,"src":"848:10:101"},"id":57907,"nodeType":"InheritanceSpecifier","src":"848:10:101"},{"baseName":{"id":57908,"name":"StdCheats","nameLocations":["860:9:101"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"860:9:101"},"id":57909,"nodeType":"InheritanceSpecifier","src":"860:9:101"},{"baseName":{"id":57910,"name":"StdUtils","nameLocations":["871:8:101"],"nodeType":"IdentifierPath","referencedDeclaration":12691,"src":"871:8:101"},"id":57911,"nodeType":"InheritanceSpecifier","src":"871:8:101"}],"canonicalName":"SubnetRegistryHandler","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58291,12691,8180,7501,3777],"name":"SubnetRegistryHandler","nameLocation":"823:21:101","scope":58292,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":101} \ No newline at end of file diff --git a/.out/SupplySourceHelper.sol/SupplySourceHelper.json b/.out/SupplySourceHelper.sol/SupplySourceHelper.json index 6522a7db9..ccc678562 100644 --- a/.out/SupplySourceHelper.sol/SupplySourceHelper.json +++ b/.out/SupplySourceHelper.sol/SupplySourceHelper.json @@ -1 +1 @@ -{"abi":[{"type":"error","name":"InvalidERC20Address","inputs":[]},{"type":"error","name":"UnexpectedSupplySource","inputs":[]},{"type":"error","name":"UnknownSupplySource","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ca99423494fc747923eb237d45d5950c3434fd567121e968ca8106ab07da893b64736f6c63430008130033","sourceMap":"474:4253:76:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220ca99423494fc747923eb237d45d5950c3434fd567121e968ca8106ab07da893b64736f6c63430008130033","sourceMap":"474:4253:76:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidERC20Address\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedSupplySource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownSupplySource\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Helpers to deal with a supply source.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/SupplySourceHelper.sol\":\"SupplySourceHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidERC20Address"},{"inputs":[],"type":"error","name":"UnexpectedSupplySource"},{"inputs":[],"type":"error","name":"UnknownSupplySource"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/SupplySourceHelper.sol":"SupplySourceHelper"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/SupplySourceHelper.sol","id":48399,"exportedSymbols":{"Address":[32838],"IERC20":[31999],"SafeERC20":[32453],"SubnetActorGetterFacet":[50887],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"39:4689:76","nodes":[{"id":48074,"nodeType":"PragmaDirective","src":"39:23:76","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48077,"nodeType":"ImportDirective","src":"64:63:76","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":48399,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":48075,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"72:12:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48076,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"86:10:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48079,"nodeType":"ImportDirective","src":"128:69:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":48399,"sourceUnit":32000,"symbolAliases":[{"foreign":{"id":48078,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"136:6:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48081,"nodeType":"ImportDirective","src":"198:65:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":48399,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":48080,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"206:7:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48083,"nodeType":"ImportDirective","src":"264:81:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":48399,"sourceUnit":32454,"symbolAliases":[{"foreign":{"id":48082,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32453,"src":"272:9:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48085,"nodeType":"ImportDirective","src":"346:76:76","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":48399,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":48084,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"354:22:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48398,"nodeType":"ContractDefinition","src":"474:4253:76","nodes":[{"id":48090,"nodeType":"UsingForDirective","src":"507:27:76","nodes":[],"global":false,"libraryName":{"id":48087,"name":"SafeERC20","nameLocations":["513:9:76"],"nodeType":"IdentifierPath","referencedDeclaration":32453,"src":"513:9:76"},"typeName":{"id":48089,"nodeType":"UserDefinedTypeName","pathNode":{"id":48088,"name":"IERC20","nameLocations":["527:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"527:6:76"},"referencedDeclaration":31999,"src":"527:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}}},{"id":48092,"nodeType":"ErrorDefinition","src":"540:28:76","nodes":[],"errorSelector":"edfc5056","name":"InvalidERC20Address","nameLocation":"546:19:76","parameters":{"id":48091,"nodeType":"ParameterList","parameters":[],"src":"565:2:76"}},{"id":48094,"nodeType":"ErrorDefinition","src":"573:31:76","nodes":[],"errorSelector":"80ee5966","name":"UnexpectedSupplySource","nameLocation":"579:22:76","parameters":{"id":48093,"nodeType":"ParameterList","parameters":[],"src":"601:2:76"}},{"id":48096,"nodeType":"ErrorDefinition","src":"609:28:76","nodes":[],"errorSelector":"59e10e01","name":"UnknownSupplySource","nameLocation":"615:19:76","parameters":{"id":48095,"nodeType":"ParameterList","parameters":[],"src":"634:2:76"}},{"id":48117,"nodeType":"FunctionDefinition","src":"890:185:76","nodes":[],"body":{"id":48116,"nodeType":"Block","src":"985:90:76","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":48108,"name":"subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48099,"src":"1025:11:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48107,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1002:22:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":48109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1002:35:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":48110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1038:12:76","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":50886,"src":"1002:48:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":48111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1002:50:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1053:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"1002:55:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":48113,"name":"compare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48102,"src":"1061:7:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"1002:66:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48106,"id":48115,"nodeType":"Return","src":"995:73:76"}]},"documentation":{"id":48097,"nodeType":"StructuredDocumentation","src":"643:242:76","text":"@notice Assumes that the address provided belongs to a subnet rooted on this network,\n and checks if its supply kind matches the provided one.\n It reverts if the address does not correspond to a subnet actor."},"implemented":true,"kind":"function","modifiers":[],"name":"hasSupplyOfKind","nameLocation":"899:15:76","parameters":{"id":48103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48099,"mutability":"mutable","name":"subnetActor","nameLocation":"923:11:76","nodeType":"VariableDeclaration","scope":48117,"src":"915:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48098,"name":"address","nodeType":"ElementaryTypeName","src":"915:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48102,"mutability":"mutable","name":"compare","nameLocation":"947:7:76","nodeType":"VariableDeclaration","scope":48117,"src":"936:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":48101,"nodeType":"UserDefinedTypeName","pathNode":{"id":48100,"name":"SupplyKind","nameLocations":["936:10:76"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"936:10:76"},"referencedDeclaration":50229,"src":"936:10:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"914:41:76"},"returnParameters":{"id":48106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48117,"src":"979:4:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48104,"name":"bool","nodeType":"ElementaryTypeName","src":"979:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"978:6:76"},"scope":48398,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48161,"nodeType":"FunctionDefinition","src":"1238:704:76","nodes":[],"body":{"id":48160,"nodeType":"Block","src":"1304:638:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48124,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48121,"src":"1318:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1331:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"1318:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48126,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"1339:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1350:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"1339:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"1318:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48159,"nodeType":"IfStatement","src":"1314:622:76","trueBody":{"id":48158,"nodeType":"Block","src":"1357:579:76","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48129,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48121,"src":"1375:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1388:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"1375:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":48133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1412:1:76","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":48132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1404:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48131,"name":"address","nodeType":"ElementaryTypeName","src":"1404:7:76","typeDescriptions":{}}},"id":48134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1404:10:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1375:39:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48140,"nodeType":"IfStatement","src":"1371:106:76","trueBody":{"id":48139,"nodeType":"Block","src":"1416:61:76","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":48136,"name":"InvalidERC20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48092,"src":"1441:19:76","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":48137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1441:21:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48138,"nodeType":"RevertStatement","src":"1434:28:76"}]}},{"assignments":[48143],"declarations":[{"constant":false,"id":48143,"mutability":"mutable","name":"token","nameLocation":"1843:5:76","nodeType":"VariableDeclaration","scope":48158,"src":"1836:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":48142,"nodeType":"UserDefinedTypeName","pathNode":{"id":48141,"name":"IERC20","nameLocations":["1836:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"1836:6:76"},"referencedDeclaration":31999,"src":"1836:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"}],"id":48148,"initialValue":{"arguments":[{"expression":{"id":48145,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48121,"src":"1858:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1871:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"1858:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48144,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"1851:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"1836:48:76"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":48154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:76","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":48153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48152,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:76","typeDescriptions":{}}},"id":48155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1914:10:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48149,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48143,"src":"1898:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1904:9:76","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":31956,"src":"1898:15:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1898:27:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48157,"nodeType":"ExpressionStatement","src":"1898:27:76"}]}}]},"documentation":{"id":48118,"nodeType":"StructuredDocumentation","src":"1081:152:76","text":"@notice Checks that a given supply strategy is correctly formed and its preconditions are met.\n It reverts if conditions are not met."},"implemented":true,"kind":"function","modifiers":[],"name":"validate","nameLocation":"1247:8:76","parameters":{"id":48122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48121,"mutability":"mutable","name":"supplySource","nameLocation":"1276:12:76","nodeType":"VariableDeclaration","scope":48161,"src":"1256:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48120,"nodeType":"UserDefinedTypeName","pathNode":{"id":48119,"name":"SupplySource","nameLocations":["1256:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1256:12:76"},"referencedDeclaration":50226,"src":"1256:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"1255:34:76"},"returnParameters":{"id":48123,"nodeType":"ParameterList","parameters":[],"src":"1304:0:76"},"scope":48398,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48181,"nodeType":"FunctionDefinition","src":"2039:184:76","nodes":[],"body":{"id":48180,"nodeType":"Block","src":"2120:103:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48171,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48165,"src":"2134:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2147:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"2134:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":48173,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48168,"src":"2155:4:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"2134:25:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48179,"nodeType":"IfStatement","src":"2130:87:76","trueBody":{"id":48178,"nodeType":"Block","src":"2161:56:76","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":48175,"name":"UnexpectedSupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48094,"src":"2182:22:76","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":48176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2182:24:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48177,"nodeType":"RevertStatement","src":"2175:31:76"}]}}]},"documentation":{"id":48162,"nodeType":"StructuredDocumentation","src":"1948:86:76","text":"@notice Asserts that the supply strategy is of the given kind. If not, it reverts."},"implemented":true,"kind":"function","modifiers":[],"name":"expect","nameLocation":"2048:6:76","parameters":{"id":48169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48165,"mutability":"mutable","name":"supplySource","nameLocation":"2075:12:76","nodeType":"VariableDeclaration","scope":48181,"src":"2055:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48164,"nodeType":"UserDefinedTypeName","pathNode":{"id":48163,"name":"SupplySource","nameLocations":["2055:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"2055:12:76"},"referencedDeclaration":50226,"src":"2055:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48168,"mutability":"mutable","name":"kind","nameLocation":"2100:4:76","nodeType":"VariableDeclaration","scope":48181,"src":"2089:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":48167,"nodeType":"UserDefinedTypeName","pathNode":{"id":48166,"name":"SupplyKind","nameLocations":["2089:10:76"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"2089:10:76"},"referencedDeclaration":50229,"src":"2089:10:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"2054:51:76"},"returnParameters":{"id":48170,"nodeType":"ParameterList","parameters":[],"src":"2120:0:76"},"scope":48398,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48218,"nodeType":"FunctionDefinition","src":"2309:327:76","nodes":[],"body":{"id":48217,"nodeType":"Block","src":"2381:255:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48190,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48185,"src":"2395:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2408:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"2395:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48192,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"2416:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2427:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"2416:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"2395:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48216,"nodeType":"IfStatement","src":"2391:205:76","trueBody":{"id":48215,"nodeType":"Block","src":"2434:162:76","statements":[{"assignments":[48197],"declarations":[{"constant":false,"id":48197,"mutability":"mutable","name":"token","nameLocation":"2455:5:76","nodeType":"VariableDeclaration","scope":48215,"src":"2448:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":48196,"nodeType":"UserDefinedTypeName","pathNode":{"id":48195,"name":"IERC20","nameLocations":["2448:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"2448:6:76"},"referencedDeclaration":31999,"src":"2448:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"}],"id":48202,"initialValue":{"arguments":[{"expression":{"id":48199,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48185,"src":"2470:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2483:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"2470:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48198,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"2463:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2463:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"2448:48:76"},{"expression":{"arguments":[{"expression":{"id":48206,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2540:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2544:6:76","memberName":"sender","nodeType":"MemberAccess","src":"2540:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48210,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2564:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}],"id":48209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2556:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48208,"name":"address","nodeType":"ElementaryTypeName","src":"2556:7:76","typeDescriptions":{}}},"id":48211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2556:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48212,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48187,"src":"2578:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48203,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48197,"src":"2510:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2516:16:76","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":32178,"src":"2510:22:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$31999_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":48213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2534:4:76","2552:2:76","2571:5:76"],"names":["from","to","value"],"nodeType":"FunctionCall","src":"2510:75:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48214,"nodeType":"ExpressionStatement","src":"2510:75:76"}]}}]},"documentation":{"id":48182,"nodeType":"StructuredDocumentation","src":"2229:75:76","text":"@notice Locks the specified amount sent by the msg.sender into custody."},"implemented":true,"kind":"function","modifiers":[],"name":"lock","nameLocation":"2318:4:76","parameters":{"id":48188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48185,"mutability":"mutable","name":"supplySource","nameLocation":"2343:12:76","nodeType":"VariableDeclaration","scope":48218,"src":"2323:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48184,"nodeType":"UserDefinedTypeName","pathNode":{"id":48183,"name":"SupplySource","nameLocations":["2323:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"2323:12:76"},"referencedDeclaration":50226,"src":"2323:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48187,"mutability":"mutable","name":"value","nameLocation":"2365:5:76","nodeType":"VariableDeclaration","scope":48218,"src":"2357:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48186,"name":"uint256","nodeType":"ElementaryTypeName","src":"2357:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2322:49:76"},"returnParameters":{"id":48189,"nodeType":"ParameterList","parameters":[],"src":"2381:0:76"},"scope":48398,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48263,"nodeType":"FunctionDefinition","src":"2735:383:76","nodes":[],"body":{"id":48262,"nodeType":"Block","src":"2838:280:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48229,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48222,"src":"2852:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2865:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"2852:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48231,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"2873:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2884:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"2873:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"2852:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48245,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48222,"src":"2971:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2984:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"2971:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48247,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"2992:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3003:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"2992:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"2971:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48260,"nodeType":"IfStatement","src":"2967:145:76","trueBody":{"id":48259,"nodeType":"Block","src":"3010:102:76","statements":[{"expression":{"arguments":[{"id":48255,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48224,"src":"3076:9:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48256,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48226,"src":"3094:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":48251,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48222,"src":"3031:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3044:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"3031:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48250,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"3024:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3024:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3058:12:76","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":32151,"src":"3024:46:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$31999_$","typeString":"function (contract IERC20,address,uint256)"}},"id":48257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3072:2:76","3087:5:76"],"names":["to","value"],"nodeType":"FunctionCall","src":"3024:77:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48258,"nodeType":"ExpressionStatement","src":"3024:77:76"}]}},"id":48261,"nodeType":"IfStatement","src":"2848:264:76","trueBody":{"id":48244,"nodeType":"Block","src":"2892:69:76","statements":[{"expression":{"arguments":[{"arguments":[{"id":48239,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48224,"src":"2932:9:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":48238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2924:8:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":48237,"name":"address","nodeType":"ElementaryTypeName","src":"2924:8:76","stateMutability":"payable","typeDescriptions":{}}},"id":48240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2924:18:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48241,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48226,"src":"2944:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48234,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"2906:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2914:9:76","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"2906:17:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$","typeString":"function (address payable,uint256)"}},"id":48242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2906:44:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48243,"nodeType":"ExpressionStatement","src":"2906:44:76"}]}}]},"documentation":{"id":48219,"nodeType":"StructuredDocumentation","src":"2642:88:76","text":"@notice Transfers the specified amount out of our treasury to the recipient address."},"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2744:8:76","parameters":{"id":48227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48222,"mutability":"mutable","name":"supplySource","nameLocation":"2773:12:76","nodeType":"VariableDeclaration","scope":48263,"src":"2753:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48221,"nodeType":"UserDefinedTypeName","pathNode":{"id":48220,"name":"SupplySource","nameLocations":["2753:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"2753:12:76"},"referencedDeclaration":50226,"src":"2753:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48224,"mutability":"mutable","name":"recipient","nameLocation":"2803:9:76","nodeType":"VariableDeclaration","scope":48263,"src":"2787:25:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":48223,"name":"address","nodeType":"ElementaryTypeName","src":"2787:15:76","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":48226,"mutability":"mutable","name":"value","nameLocation":"2822:5:76","nodeType":"VariableDeclaration","scope":48263,"src":"2814:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48225,"name":"uint256","nodeType":"ElementaryTypeName","src":"2814:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2752:76:76"},"returnParameters":{"id":48228,"nodeType":"ParameterList","parameters":[],"src":"2838:0:76"},"scope":48398,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48334,"nodeType":"FunctionDefinition","src":"3224:896:76","nodes":[],"body":{"id":48333,"nodeType":"Block","src":"3373:747:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48278,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48273,"src":"3460:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3469:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3460:10:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48290,"nodeType":"IfStatement","src":"3456:81:76","trueBody":{"id":48289,"nodeType":"Block","src":"3472:65:76","statements":[{"expression":{"id":48287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48281,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48276,"src":"3486:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48284,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48269,"src":"3513:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48285,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"3521:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48282,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"3492:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3500:12:76","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":32528,"src":"3492:20:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":48286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3492:34:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3486:40:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48288,"nodeType":"ExpressionStatement","src":"3486:40:76"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48291,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48267,"src":"3608:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3621:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"3608:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48293,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"3629:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3640:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"3629:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"3608:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48306,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48267,"src":"3835:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3848:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"3835:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48308,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"3856:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3867:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"3856:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"3835:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48329,"nodeType":"IfStatement","src":"3831:263:76","trueBody":{"id":48328,"nodeType":"Block","src":"3874:220:76","statements":[{"expression":{"arguments":[{"id":48316,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48269,"src":"4007:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48317,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48273,"src":"4022:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":48312,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48267,"src":"3962:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3975:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"3962:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48311,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"3955:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3955:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3989:12:76","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":32151,"src":"3955:46:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$31999_$","typeString":"function (contract IERC20,address,uint256)"}},"id":48318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4003:2:76","4015:5:76"],"names":["to","value"],"nodeType":"FunctionCall","src":"3955:74:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48319,"nodeType":"ExpressionStatement","src":"3955:74:76"},{"expression":{"id":48326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48320,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48276,"src":"4043:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48323,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48269,"src":"4070:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48324,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"4078:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48321,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"4049:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4057:12:76","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":32528,"src":"4049:20:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":48325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:34:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4043:40:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48327,"nodeType":"ExpressionStatement","src":"4043:40:76"}]}},"id":48330,"nodeType":"IfStatement","src":"3604:490:76","trueBody":{"id":48305,"nodeType":"Block","src":"3648:177:76","statements":[{"expression":{"id":48303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48296,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48276,"src":"3735:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48299,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48269,"src":"3780:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48300,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"3794:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48301,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48273,"src":"3807:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48297,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"3741:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3749:21:76","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32570,"src":"3741:29:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":48302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3772:6:76","3788:4:76","3800:5:76"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3741:73:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3735:79:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48304,"nodeType":"ExpressionStatement","src":"3735:79:76"}]}},{"expression":{"id":48331,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48276,"src":"4110:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48277,"id":48332,"nodeType":"Return","src":"4103:10:76"}]},"documentation":{"id":48264,"nodeType":"StructuredDocumentation","src":"3124:95:76","text":"@notice Calls the target with the specified data, ensuring it receives the specified value."},"implemented":true,"kind":"function","modifiers":[],"name":"performCall","nameLocation":"3233:11:76","parameters":{"id":48274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48267,"mutability":"mutable","name":"supplySource","nameLocation":"3265:12:76","nodeType":"VariableDeclaration","scope":48334,"src":"3245:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48266,"nodeType":"UserDefinedTypeName","pathNode":{"id":48265,"name":"SupplySource","nameLocations":["3245:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"3245:12:76"},"referencedDeclaration":50226,"src":"3245:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48269,"mutability":"mutable","name":"target","nameLocation":"3295:6:76","nodeType":"VariableDeclaration","scope":48334,"src":"3279:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":48268,"name":"address","nodeType":"ElementaryTypeName","src":"3279:15:76","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":48271,"mutability":"mutable","name":"data","nameLocation":"3316:4:76","nodeType":"VariableDeclaration","scope":48334,"src":"3303:17:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48270,"name":"bytes","nodeType":"ElementaryTypeName","src":"3303:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48273,"mutability":"mutable","name":"value","nameLocation":"3330:5:76","nodeType":"VariableDeclaration","scope":48334,"src":"3322:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48272,"name":"uint256","nodeType":"ElementaryTypeName","src":"3322:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3244:92:76"},"returnParameters":{"id":48277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48276,"mutability":"mutable","name":"ret","nameLocation":"3368:3:76","nodeType":"VariableDeclaration","scope":48334,"src":"3355:16:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48275,"name":"bytes","nodeType":"ElementaryTypeName","src":"3355:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3354:18:76"},"scope":48398,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48381,"nodeType":"FunctionDefinition","src":"4176:357:76","nodes":[],"body":{"id":48380,"nodeType":"Block","src":"4263:270:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48343,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48338,"src":"4277:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4290:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"4277:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48345,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"4298:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4309:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"4298:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"4277:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48357,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48338,"src":"4379:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4392:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"4379:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48359,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"4400:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4411:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"4400:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"4379:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48376,"nodeType":"IfStatement","src":"4375:132:76","trueBody":{"id":48375,"nodeType":"Block","src":"4418:89:76","statements":[{"expression":{"id":48373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48362,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"4432:3:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":48370,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4490:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}],"id":48369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4482:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48368,"name":"address","nodeType":"ElementaryTypeName","src":"4482:7:76","typeDescriptions":{}}},"id":48371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4482:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":48364,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48338,"src":"4445:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4458:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"4445:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48363,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"4438:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4472:9:76","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":31956,"src":"4438:43:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:58:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4432:64:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48374,"nodeType":"ExpressionStatement","src":"4432:64:76"}]}},"id":48377,"nodeType":"IfStatement","src":"4273:234:76","trueBody":{"id":48356,"nodeType":"Block","src":"4317:52:76","statements":[{"expression":{"id":48354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48348,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"4331:3:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":48351,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4345:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}],"id":48350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4337:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48349,"name":"address","nodeType":"ElementaryTypeName","src":"4337:7:76","typeDescriptions":{}}},"id":48352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4337:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4351:7:76","memberName":"balance","nodeType":"MemberAccess","src":"4337:21:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4331:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48355,"nodeType":"ExpressionStatement","src":"4331:27:76"}]}},{"expression":{"id":48378,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"4523:3:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48342,"id":48379,"nodeType":"Return","src":"4516:10:76"}]},"documentation":{"id":48335,"nodeType":"StructuredDocumentation","src":"4126:45:76","text":"@notice Gets the balance in our treasury."},"implemented":true,"kind":"function","modifiers":[],"name":"balance","nameLocation":"4185:7:76","parameters":{"id":48339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48338,"mutability":"mutable","name":"supplySource","nameLocation":"4213:12:76","nodeType":"VariableDeclaration","scope":48381,"src":"4193:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48337,"nodeType":"UserDefinedTypeName","pathNode":{"id":48336,"name":"SupplySource","nameLocations":["4193:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"4193:12:76"},"referencedDeclaration":50226,"src":"4193:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"4192:34:76"},"returnParameters":{"id":48342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48341,"mutability":"mutable","name":"ret","nameLocation":"4258:3:76","nodeType":"VariableDeclaration","scope":48381,"src":"4250:11:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48340,"name":"uint256","nodeType":"ElementaryTypeName","src":"4250:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4249:13:76"},"scope":48398,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48397,"nodeType":"FunctionDefinition","src":"4539:185:76","nodes":[],"body":{"id":48396,"nodeType":"Block","src":"4601:123:76","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":48388,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"4651:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4662:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"4651:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},{"arguments":[{"hexValue":"30","id":48392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4704:1:76","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":48391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4696:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48390,"name":"address","nodeType":"ElementaryTypeName","src":"4696:7:76","typeDescriptions":{}}},"id":48393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4696:10:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},{"typeIdentifier":"t_address","typeString":"address"}],"id":48387,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"4618:12:76","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SupplySource_$50226_storage_ptr_$","typeString":"type(struct SupplySource storage pointer)"}},"id":48394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4645:4:76","4682:12:76"],"names":["kind","tokenAddress"],"nodeType":"FunctionCall","src":"4618:99:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"functionReturnParameters":48386,"id":48395,"nodeType":"Return","src":"4611:106:76"}]},"implemented":true,"kind":"function","modifiers":[],"name":"native","nameLocation":"4548:6:76","parameters":{"id":48382,"nodeType":"ParameterList","parameters":[],"src":"4554:2:76"},"returnParameters":{"id":48386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48397,"src":"4580:19:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48384,"nodeType":"UserDefinedTypeName","pathNode":{"id":48383,"name":"SupplySource","nameLocations":["4580:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"4580:12:76"},"referencedDeclaration":50226,"src":"4580:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"4579:21:76"},"scope":48398,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SupplySourceHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":48086,"nodeType":"StructuredDocumentation","src":"424:50:76","text":"@notice Helpers to deal with a supply source."},"fullyImplemented":true,"linearizedBaseContracts":[48398],"name":"SupplySourceHelper","nameLocation":"482:18:76","scope":48399,"usedErrors":[48092,48094,48096]}],"license":"UNLICENSED"},"id":76} \ No newline at end of file +{"abi":[{"type":"error","name":"InvalidERC20Address","inputs":[]},{"type":"error","name":"UnexpectedSupplySource","inputs":[]},{"type":"error","name":"UnknownSupplySource","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ca99423494fc747923eb237d45d5950c3434fd567121e968ca8106ab07da893b64736f6c63430008130033","sourceMap":"474:4253:76:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220ca99423494fc747923eb237d45d5950c3434fd567121e968ca8106ab07da893b64736f6c63430008130033","sourceMap":"474:4253:76:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidERC20Address\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedSupplySource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownSupplySource\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Helpers to deal with a supply source.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/SupplySourceHelper.sol\":\"SupplySourceHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidERC20Address"},{"inputs":[],"type":"error","name":"UnexpectedSupplySource"},{"inputs":[],"type":"error","name":"UnknownSupplySource"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/SupplySourceHelper.sol":"SupplySourceHelper"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/SupplySourceHelper.sol","id":48352,"exportedSymbols":{"Address":[32838],"IERC20":[31999],"SafeERC20":[32453],"SubnetActorGetterFacet":[51235],"SupplyKind":[50182],"SupplySource":[50179],"SupplySourceHelper":[48351]},"nodeType":"SourceUnit","src":"39:4689:76","nodes":[{"id":48027,"nodeType":"PragmaDirective","src":"39:23:76","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48030,"nodeType":"ImportDirective","src":"64:63:76","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":48352,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":48028,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"72:12:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48029,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"86:10:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48032,"nodeType":"ImportDirective","src":"128:69:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":48352,"sourceUnit":32000,"symbolAliases":[{"foreign":{"id":48031,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"136:6:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48034,"nodeType":"ImportDirective","src":"198:65:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":48352,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":48033,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"206:7:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48036,"nodeType":"ImportDirective","src":"264:81:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":48352,"sourceUnit":32454,"symbolAliases":[{"foreign":{"id":48035,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32453,"src":"272:9:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48038,"nodeType":"ImportDirective","src":"346:76:76","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":48352,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":48037,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"354:22:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48351,"nodeType":"ContractDefinition","src":"474:4253:76","nodes":[{"id":48043,"nodeType":"UsingForDirective","src":"507:27:76","nodes":[],"global":false,"libraryName":{"id":48040,"name":"SafeERC20","nameLocations":["513:9:76"],"nodeType":"IdentifierPath","referencedDeclaration":32453,"src":"513:9:76"},"typeName":{"id":48042,"nodeType":"UserDefinedTypeName","pathNode":{"id":48041,"name":"IERC20","nameLocations":["527:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"527:6:76"},"referencedDeclaration":31999,"src":"527:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}}},{"id":48045,"nodeType":"ErrorDefinition","src":"540:28:76","nodes":[],"errorSelector":"edfc5056","name":"InvalidERC20Address","nameLocation":"546:19:76","parameters":{"id":48044,"nodeType":"ParameterList","parameters":[],"src":"565:2:76"}},{"id":48047,"nodeType":"ErrorDefinition","src":"573:31:76","nodes":[],"errorSelector":"80ee5966","name":"UnexpectedSupplySource","nameLocation":"579:22:76","parameters":{"id":48046,"nodeType":"ParameterList","parameters":[],"src":"601:2:76"}},{"id":48049,"nodeType":"ErrorDefinition","src":"609:28:76","nodes":[],"errorSelector":"59e10e01","name":"UnknownSupplySource","nameLocation":"615:19:76","parameters":{"id":48048,"nodeType":"ParameterList","parameters":[],"src":"634:2:76"}},{"id":48070,"nodeType":"FunctionDefinition","src":"890:185:76","nodes":[],"body":{"id":48069,"nodeType":"Block","src":"985:90:76","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":48067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":48061,"name":"subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48052,"src":"1025:11:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48060,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"1002:22:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":48062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1002:35:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":48063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1038:12:76","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":51234,"src":"1002:48:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":48064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1002:50:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1053:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"1002:55:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":48066,"name":"compare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48055,"src":"1061:7:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"1002:66:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48059,"id":48068,"nodeType":"Return","src":"995:73:76"}]},"documentation":{"id":48050,"nodeType":"StructuredDocumentation","src":"643:242:76","text":"@notice Assumes that the address provided belongs to a subnet rooted on this network,\n and checks if its supply kind matches the provided one.\n It reverts if the address does not correspond to a subnet actor."},"implemented":true,"kind":"function","modifiers":[],"name":"hasSupplyOfKind","nameLocation":"899:15:76","parameters":{"id":48056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48052,"mutability":"mutable","name":"subnetActor","nameLocation":"923:11:76","nodeType":"VariableDeclaration","scope":48070,"src":"915:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48051,"name":"address","nodeType":"ElementaryTypeName","src":"915:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48055,"mutability":"mutable","name":"compare","nameLocation":"947:7:76","nodeType":"VariableDeclaration","scope":48070,"src":"936:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":48054,"nodeType":"UserDefinedTypeName","pathNode":{"id":48053,"name":"SupplyKind","nameLocations":["936:10:76"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"936:10:76"},"referencedDeclaration":50182,"src":"936:10:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"914:41:76"},"returnParameters":{"id":48059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48070,"src":"979:4:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48057,"name":"bool","nodeType":"ElementaryTypeName","src":"979:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"978:6:76"},"scope":48351,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48114,"nodeType":"FunctionDefinition","src":"1238:704:76","nodes":[],"body":{"id":48113,"nodeType":"Block","src":"1304:638:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":48081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48077,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48074,"src":"1318:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1331:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"1318:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48079,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"1339:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":48080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1350:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"1339:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"1318:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48112,"nodeType":"IfStatement","src":"1314:622:76","trueBody":{"id":48111,"nodeType":"Block","src":"1357:579:76","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48082,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48074,"src":"1375:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1388:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50178,"src":"1375:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":48086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1412:1:76","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":48085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1404:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48084,"name":"address","nodeType":"ElementaryTypeName","src":"1404:7:76","typeDescriptions":{}}},"id":48087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1404:10:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1375:39:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48093,"nodeType":"IfStatement","src":"1371:106:76","trueBody":{"id":48092,"nodeType":"Block","src":"1416:61:76","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":48089,"name":"InvalidERC20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48045,"src":"1441:19:76","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":48090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1441:21:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48091,"nodeType":"RevertStatement","src":"1434:28:76"}]}},{"assignments":[48096],"declarations":[{"constant":false,"id":48096,"mutability":"mutable","name":"token","nameLocation":"1843:5:76","nodeType":"VariableDeclaration","scope":48111,"src":"1836:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":48095,"nodeType":"UserDefinedTypeName","pathNode":{"id":48094,"name":"IERC20","nameLocations":["1836:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"1836:6:76"},"referencedDeclaration":31999,"src":"1836:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"}],"id":48101,"initialValue":{"arguments":[{"expression":{"id":48098,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48074,"src":"1858:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1871:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50178,"src":"1858:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48097,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"1851:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"1836:48:76"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":48107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:76","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":48106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48105,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:76","typeDescriptions":{}}},"id":48108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1914:10:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48102,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48096,"src":"1898:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1904:9:76","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":31956,"src":"1898:15:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1898:27:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48110,"nodeType":"ExpressionStatement","src":"1898:27:76"}]}}]},"documentation":{"id":48071,"nodeType":"StructuredDocumentation","src":"1081:152:76","text":"@notice Checks that a given supply strategy is correctly formed and its preconditions are met.\n It reverts if conditions are not met."},"implemented":true,"kind":"function","modifiers":[],"name":"validate","nameLocation":"1247:8:76","parameters":{"id":48075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48074,"mutability":"mutable","name":"supplySource","nameLocation":"1276:12:76","nodeType":"VariableDeclaration","scope":48114,"src":"1256:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48073,"nodeType":"UserDefinedTypeName","pathNode":{"id":48072,"name":"SupplySource","nameLocations":["1256:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"1256:12:76"},"referencedDeclaration":50179,"src":"1256:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"1255:34:76"},"returnParameters":{"id":48076,"nodeType":"ParameterList","parameters":[],"src":"1304:0:76"},"scope":48351,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48134,"nodeType":"FunctionDefinition","src":"2039:184:76","nodes":[],"body":{"id":48133,"nodeType":"Block","src":"2120:103:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":48127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48124,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48118,"src":"2134:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2147:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"2134:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":48126,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48121,"src":"2155:4:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"2134:25:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48132,"nodeType":"IfStatement","src":"2130:87:76","trueBody":{"id":48131,"nodeType":"Block","src":"2161:56:76","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":48128,"name":"UnexpectedSupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48047,"src":"2182:22:76","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":48129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2182:24:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48130,"nodeType":"RevertStatement","src":"2175:31:76"}]}}]},"documentation":{"id":48115,"nodeType":"StructuredDocumentation","src":"1948:86:76","text":"@notice Asserts that the supply strategy is of the given kind. If not, it reverts."},"implemented":true,"kind":"function","modifiers":[],"name":"expect","nameLocation":"2048:6:76","parameters":{"id":48122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48118,"mutability":"mutable","name":"supplySource","nameLocation":"2075:12:76","nodeType":"VariableDeclaration","scope":48134,"src":"2055:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48117,"nodeType":"UserDefinedTypeName","pathNode":{"id":48116,"name":"SupplySource","nameLocations":["2055:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"2055:12:76"},"referencedDeclaration":50179,"src":"2055:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48121,"mutability":"mutable","name":"kind","nameLocation":"2100:4:76","nodeType":"VariableDeclaration","scope":48134,"src":"2089:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":48120,"nodeType":"UserDefinedTypeName","pathNode":{"id":48119,"name":"SupplyKind","nameLocations":["2089:10:76"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"2089:10:76"},"referencedDeclaration":50182,"src":"2089:10:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"2054:51:76"},"returnParameters":{"id":48123,"nodeType":"ParameterList","parameters":[],"src":"2120:0:76"},"scope":48351,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48171,"nodeType":"FunctionDefinition","src":"2309:327:76","nodes":[],"body":{"id":48170,"nodeType":"Block","src":"2381:255:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":48147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48143,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48138,"src":"2395:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2408:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"2395:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48145,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"2416:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":48146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2427:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"2416:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"2395:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48169,"nodeType":"IfStatement","src":"2391:205:76","trueBody":{"id":48168,"nodeType":"Block","src":"2434:162:76","statements":[{"assignments":[48150],"declarations":[{"constant":false,"id":48150,"mutability":"mutable","name":"token","nameLocation":"2455:5:76","nodeType":"VariableDeclaration","scope":48168,"src":"2448:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":48149,"nodeType":"UserDefinedTypeName","pathNode":{"id":48148,"name":"IERC20","nameLocations":["2448:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"2448:6:76"},"referencedDeclaration":31999,"src":"2448:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"}],"id":48155,"initialValue":{"arguments":[{"expression":{"id":48152,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48138,"src":"2470:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2483:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50178,"src":"2470:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48151,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"2463:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2463:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"2448:48:76"},{"expression":{"arguments":[{"expression":{"id":48159,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2540:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2544:6:76","memberName":"sender","nodeType":"MemberAccess","src":"2540:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48163,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2564:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SupplySourceHelper_$48351","typeString":"library SupplySourceHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SupplySourceHelper_$48351","typeString":"library SupplySourceHelper"}],"id":48162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2556:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48161,"name":"address","nodeType":"ElementaryTypeName","src":"2556:7:76","typeDescriptions":{}}},"id":48164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2556:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48140,"src":"2578:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48156,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48150,"src":"2510:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2516:16:76","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":32178,"src":"2510:22:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$31999_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":48166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2534:4:76","2552:2:76","2571:5:76"],"names":["from","to","value"],"nodeType":"FunctionCall","src":"2510:75:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48167,"nodeType":"ExpressionStatement","src":"2510:75:76"}]}}]},"documentation":{"id":48135,"nodeType":"StructuredDocumentation","src":"2229:75:76","text":"@notice Locks the specified amount sent by the msg.sender into custody."},"implemented":true,"kind":"function","modifiers":[],"name":"lock","nameLocation":"2318:4:76","parameters":{"id":48141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48138,"mutability":"mutable","name":"supplySource","nameLocation":"2343:12:76","nodeType":"VariableDeclaration","scope":48171,"src":"2323:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48137,"nodeType":"UserDefinedTypeName","pathNode":{"id":48136,"name":"SupplySource","nameLocations":["2323:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"2323:12:76"},"referencedDeclaration":50179,"src":"2323:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48140,"mutability":"mutable","name":"value","nameLocation":"2365:5:76","nodeType":"VariableDeclaration","scope":48171,"src":"2357:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48139,"name":"uint256","nodeType":"ElementaryTypeName","src":"2357:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2322:49:76"},"returnParameters":{"id":48142,"nodeType":"ParameterList","parameters":[],"src":"2381:0:76"},"scope":48351,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48216,"nodeType":"FunctionDefinition","src":"2735:383:76","nodes":[],"body":{"id":48215,"nodeType":"Block","src":"2838:280:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":48186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48182,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48175,"src":"2852:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2865:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"2852:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48184,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"2873:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":48185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2884:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"2873:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"2852:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":48202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48198,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48175,"src":"2971:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2984:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"2971:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48200,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"2992:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":48201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3003:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"2992:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"2971:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48213,"nodeType":"IfStatement","src":"2967:145:76","trueBody":{"id":48212,"nodeType":"Block","src":"3010:102:76","statements":[{"expression":{"arguments":[{"id":48208,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48177,"src":"3076:9:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48209,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48179,"src":"3094:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":48204,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48175,"src":"3031:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3044:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50178,"src":"3031:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48203,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"3024:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3024:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3058:12:76","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":32151,"src":"3024:46:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$31999_$","typeString":"function (contract IERC20,address,uint256)"}},"id":48210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3072:2:76","3087:5:76"],"names":["to","value"],"nodeType":"FunctionCall","src":"3024:77:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48211,"nodeType":"ExpressionStatement","src":"3024:77:76"}]}},"id":48214,"nodeType":"IfStatement","src":"2848:264:76","trueBody":{"id":48197,"nodeType":"Block","src":"2892:69:76","statements":[{"expression":{"arguments":[{"arguments":[{"id":48192,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48177,"src":"2932:9:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":48191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2924:8:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":48190,"name":"address","nodeType":"ElementaryTypeName","src":"2924:8:76","stateMutability":"payable","typeDescriptions":{}}},"id":48193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2924:18:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48194,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48179,"src":"2944:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48187,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"2906:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2914:9:76","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"2906:17:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$","typeString":"function (address payable,uint256)"}},"id":48195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2906:44:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48196,"nodeType":"ExpressionStatement","src":"2906:44:76"}]}}]},"documentation":{"id":48172,"nodeType":"StructuredDocumentation","src":"2642:88:76","text":"@notice Transfers the specified amount out of our treasury to the recipient address."},"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2744:8:76","parameters":{"id":48180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48175,"mutability":"mutable","name":"supplySource","nameLocation":"2773:12:76","nodeType":"VariableDeclaration","scope":48216,"src":"2753:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48174,"nodeType":"UserDefinedTypeName","pathNode":{"id":48173,"name":"SupplySource","nameLocations":["2753:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"2753:12:76"},"referencedDeclaration":50179,"src":"2753:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48177,"mutability":"mutable","name":"recipient","nameLocation":"2803:9:76","nodeType":"VariableDeclaration","scope":48216,"src":"2787:25:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":48176,"name":"address","nodeType":"ElementaryTypeName","src":"2787:15:76","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":48179,"mutability":"mutable","name":"value","nameLocation":"2822:5:76","nodeType":"VariableDeclaration","scope":48216,"src":"2814:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48178,"name":"uint256","nodeType":"ElementaryTypeName","src":"2814:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2752:76:76"},"returnParameters":{"id":48181,"nodeType":"ParameterList","parameters":[],"src":"2838:0:76"},"scope":48351,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48287,"nodeType":"FunctionDefinition","src":"3224:896:76","nodes":[],"body":{"id":48286,"nodeType":"Block","src":"3373:747:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48231,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48226,"src":"3460:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3469:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3460:10:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48243,"nodeType":"IfStatement","src":"3456:81:76","trueBody":{"id":48242,"nodeType":"Block","src":"3472:65:76","statements":[{"expression":{"id":48240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48234,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48229,"src":"3486:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48237,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48222,"src":"3513:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48238,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48224,"src":"3521:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48235,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"3492:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3500:12:76","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":32528,"src":"3492:20:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":48239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3492:34:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3486:40:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48241,"nodeType":"ExpressionStatement","src":"3486:40:76"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":48248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48244,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48220,"src":"3608:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3621:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"3608:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48246,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"3629:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":48247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3640:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"3629:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"3608:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":48263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48259,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48220,"src":"3835:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48260,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3848:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"3835:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48261,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"3856:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":48262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3867:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"3856:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"3835:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48282,"nodeType":"IfStatement","src":"3831:263:76","trueBody":{"id":48281,"nodeType":"Block","src":"3874:220:76","statements":[{"expression":{"arguments":[{"id":48269,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48222,"src":"4007:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48270,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48226,"src":"4022:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":48265,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48220,"src":"3962:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3975:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50178,"src":"3962:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48264,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"3955:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3955:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3989:12:76","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":32151,"src":"3955:46:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$31999_$","typeString":"function (contract IERC20,address,uint256)"}},"id":48271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4003:2:76","4015:5:76"],"names":["to","value"],"nodeType":"FunctionCall","src":"3955:74:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48272,"nodeType":"ExpressionStatement","src":"3955:74:76"},{"expression":{"id":48279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48273,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48229,"src":"4043:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48276,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48222,"src":"4070:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48277,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48224,"src":"4078:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48274,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"4049:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4057:12:76","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":32528,"src":"4049:20:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":48278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:34:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4043:40:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48280,"nodeType":"ExpressionStatement","src":"4043:40:76"}]}},"id":48283,"nodeType":"IfStatement","src":"3604:490:76","trueBody":{"id":48258,"nodeType":"Block","src":"3648:177:76","statements":[{"expression":{"id":48256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48249,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48229,"src":"3735:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48252,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48222,"src":"3780:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48253,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48224,"src":"3794:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48254,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48226,"src":"3807:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48250,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"3741:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3749:21:76","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32570,"src":"3741:29:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":48255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3772:6:76","3788:4:76","3800:5:76"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3741:73:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3735:79:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48257,"nodeType":"ExpressionStatement","src":"3735:79:76"}]}},{"expression":{"id":48284,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48229,"src":"4110:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48230,"id":48285,"nodeType":"Return","src":"4103:10:76"}]},"documentation":{"id":48217,"nodeType":"StructuredDocumentation","src":"3124:95:76","text":"@notice Calls the target with the specified data, ensuring it receives the specified value."},"implemented":true,"kind":"function","modifiers":[],"name":"performCall","nameLocation":"3233:11:76","parameters":{"id":48227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48220,"mutability":"mutable","name":"supplySource","nameLocation":"3265:12:76","nodeType":"VariableDeclaration","scope":48287,"src":"3245:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48219,"nodeType":"UserDefinedTypeName","pathNode":{"id":48218,"name":"SupplySource","nameLocations":["3245:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"3245:12:76"},"referencedDeclaration":50179,"src":"3245:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48222,"mutability":"mutable","name":"target","nameLocation":"3295:6:76","nodeType":"VariableDeclaration","scope":48287,"src":"3279:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":48221,"name":"address","nodeType":"ElementaryTypeName","src":"3279:15:76","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":48224,"mutability":"mutable","name":"data","nameLocation":"3316:4:76","nodeType":"VariableDeclaration","scope":48287,"src":"3303:17:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48223,"name":"bytes","nodeType":"ElementaryTypeName","src":"3303:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48226,"mutability":"mutable","name":"value","nameLocation":"3330:5:76","nodeType":"VariableDeclaration","scope":48287,"src":"3322:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3322:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3244:92:76"},"returnParameters":{"id":48230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48229,"mutability":"mutable","name":"ret","nameLocation":"3368:3:76","nodeType":"VariableDeclaration","scope":48287,"src":"3355:16:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48228,"name":"bytes","nodeType":"ElementaryTypeName","src":"3355:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3354:18:76"},"scope":48351,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48334,"nodeType":"FunctionDefinition","src":"4176:357:76","nodes":[],"body":{"id":48333,"nodeType":"Block","src":"4263:270:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":48300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48296,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48291,"src":"4277:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4290:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"4277:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48298,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"4298:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":48299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4309:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"4298:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"4277:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":48314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48310,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48291,"src":"4379:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4392:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"4379:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48312,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"4400:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":48313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4411:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4400:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"4379:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48329,"nodeType":"IfStatement","src":"4375:132:76","trueBody":{"id":48328,"nodeType":"Block","src":"4418:89:76","statements":[{"expression":{"id":48326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48315,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48294,"src":"4432:3:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":48323,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4490:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SupplySourceHelper_$48351","typeString":"library SupplySourceHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SupplySourceHelper_$48351","typeString":"library SupplySourceHelper"}],"id":48322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4482:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48321,"name":"address","nodeType":"ElementaryTypeName","src":"4482:7:76","typeDescriptions":{}}},"id":48324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4482:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":48317,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48291,"src":"4445:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"id":48318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4458:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50178,"src":"4445:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48316,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"4438:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4472:9:76","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":31956,"src":"4438:43:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:58:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4432:64:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48327,"nodeType":"ExpressionStatement","src":"4432:64:76"}]}},"id":48330,"nodeType":"IfStatement","src":"4273:234:76","trueBody":{"id":48309,"nodeType":"Block","src":"4317:52:76","statements":[{"expression":{"id":48307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48301,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48294,"src":"4331:3:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":48304,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4345:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SupplySourceHelper_$48351","typeString":"library SupplySourceHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SupplySourceHelper_$48351","typeString":"library SupplySourceHelper"}],"id":48303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4337:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48302,"name":"address","nodeType":"ElementaryTypeName","src":"4337:7:76","typeDescriptions":{}}},"id":48305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4337:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4351:7:76","memberName":"balance","nodeType":"MemberAccess","src":"4337:21:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4331:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48308,"nodeType":"ExpressionStatement","src":"4331:27:76"}]}},{"expression":{"id":48331,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48294,"src":"4523:3:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48295,"id":48332,"nodeType":"Return","src":"4516:10:76"}]},"documentation":{"id":48288,"nodeType":"StructuredDocumentation","src":"4126:45:76","text":"@notice Gets the balance in our treasury."},"implemented":true,"kind":"function","modifiers":[],"name":"balance","nameLocation":"4185:7:76","parameters":{"id":48292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48291,"mutability":"mutable","name":"supplySource","nameLocation":"4213:12:76","nodeType":"VariableDeclaration","scope":48334,"src":"4193:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48290,"nodeType":"UserDefinedTypeName","pathNode":{"id":48289,"name":"SupplySource","nameLocations":["4193:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"4193:12:76"},"referencedDeclaration":50179,"src":"4193:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"4192:34:76"},"returnParameters":{"id":48295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48294,"mutability":"mutable","name":"ret","nameLocation":"4258:3:76","nodeType":"VariableDeclaration","scope":48334,"src":"4250:11:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48293,"name":"uint256","nodeType":"ElementaryTypeName","src":"4250:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4249:13:76"},"scope":48351,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48350,"nodeType":"FunctionDefinition","src":"4539:185:76","nodes":[],"body":{"id":48349,"nodeType":"Block","src":"4601:123:76","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":48341,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"4651:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":48342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4662:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"4651:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},{"arguments":[{"hexValue":"30","id":48345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4704:1:76","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":48344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4696:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48343,"name":"address","nodeType":"ElementaryTypeName","src":"4696:7:76","typeDescriptions":{}}},"id":48346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4696:10:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},{"typeIdentifier":"t_address","typeString":"address"}],"id":48340,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"4618:12:76","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SupplySource_$50179_storage_ptr_$","typeString":"type(struct SupplySource storage pointer)"}},"id":48347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4645:4:76","4682:12:76"],"names":["kind","tokenAddress"],"nodeType":"FunctionCall","src":"4618:99:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"functionReturnParameters":48339,"id":48348,"nodeType":"Return","src":"4611:106:76"}]},"implemented":true,"kind":"function","modifiers":[],"name":"native","nameLocation":"4548:6:76","parameters":{"id":48335,"nodeType":"ParameterList","parameters":[],"src":"4554:2:76"},"returnParameters":{"id":48339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48350,"src":"4580:19:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48337,"nodeType":"UserDefinedTypeName","pathNode":{"id":48336,"name":"SupplySource","nameLocations":["4580:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"4580:12:76"},"referencedDeclaration":50179,"src":"4580:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"4579:21:76"},"scope":48351,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SupplySourceHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":48039,"nodeType":"StructuredDocumentation","src":"424:50:76","text":"@notice Helpers to deal with a supply source."},"fullyImplemented":true,"linearizedBaseContracts":[48351],"name":"SupplySourceHelper","nameLocation":"482:18:76","scope":48352,"usedErrors":[48045,48047,48049]}],"license":"UNLICENSED"},"id":76} \ No newline at end of file diff --git a/.out/TestUtils.sol/TestUtils.json b/.out/TestUtils.sol/TestUtils.json index 38ec50f5f..2f0831acd 100644 --- a/.out/TestUtils.sol/TestUtils.json +++ b/.out/TestUtils.sol/TestUtils.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"AA","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BB","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"GX","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"GY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"PP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"derivePubKey","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"derivePubKeyBytes","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"deriveValidatorPubKeyBytes","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a5761072e9081610020823930815050f35b600080fdfe60806040818152600436101561001457600080fd5b600091823560e01c90816303a507be146101dd575080635727dc5c146101c7578063573081a2146101775780637a308a4c14610142578063997da8d41461012d578063bc9e2bcf14610104578063eeeac01e146100e95763f6caf0ac1461007a57600080fd5b60203660031901126100e55761009160043561025b565b8291925192602084015281830152808252606082019282841067ffffffffffffffff8511176100d15750829052605f19906100cc8184610212565b030190f35b634e487b7160e01b81526041600452602490fd5b5080fd5b50816003193601126100e557516401000003d0198152602090f35b5090602036600319011261012a575061011e60043561025b565b82519182526020820152f35b80fd5b50816003193601126100e55751908152602090f35b50816003193601126100e557602090517f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b88152f35b5060203660031901126100e5576101c39061019360043561025b565b8291925192600160fa1b602085015260218401526041830152604182526101b98261041c565b5191829182610212565b0390f35b50816003193601126100e5576020905160078152f35b8390816003193601126100e557807f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860209252f35b6020808252825181830181905290939260005b82811061024757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610225565b61026490610372565b9291908315158481610361575b5080610359575b156103235760009360016401000003d019825b6102b8575050506401000003d01984800991826401000003d0199109936401000003d01992839109900990565b91959091868104916401000003d0198484096401000003d019036401000003d019811161030d576401000003d01991089296809281810291818304149015171561030d57810390811161030d5791908261028b565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b6044820152606490fd5b506001610278565b6401000003d0191415905038610271565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798917f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b86001928015610417576000948592918590805b6103d55750505050929190565b600181166103f9575b906103ee9160011c938493610639565b9093919290916103c8565b9390838382986103ee9a61040c9561044e565b9097509590936103de565b509190565b6080810190811067ffffffffffffffff82111761043857604052565b634e487b7160e01b600052604160045260246000fd5b909295939194811580610631575b6106275786158061061f575b6106155760409283519461047b8661041c565b60803687376401000003d0199586898009928382528760208301948b09845287858009928783019684885289606085019588098552885197608089019289841067ffffffffffffffff85111761043857928a52518a928392839283910996878b525190099c8d9460208a019e8f525190099188880195838752519009906060870193828552149182159261060a575b5050156105c65784519161051d8361041c565b6080368437518451870387811161030d578791088252518851860386811161030d57869108936020820194808652868351818180099385019380855209916060840192808452880388811161030d578880885184519009600209890389811161030d5789809492818481950908089651955190519009988587039187831161030d578791519051900986039086821161030d57869485809492819351989c089009089509900990565b845162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e737465616400006044820152606490fd5b14159050388061050a565b5091945050929190565b508215610468565b9194509092915050565b50831561045c565b92909180156106f5576401000003d01990818480098282800990838080838a0960040997818080806000978009870992800960030908908488800885038581116106e15785908184800908808603918683116106cd5786818192096008098603938685116106b95750859493919285809481939b08900908940960020990565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b84526011600452602484fd5b9056fea26469706673582212209cf69af28d79ee32cab80ff0f42b68090f51611093df0f7bebecdee26743452b64736f6c63430008130033","sourceMap":"163:5276:96:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600436101561001457600080fd5b600091823560e01c90816303a507be146101dd575080635727dc5c146101c7578063573081a2146101775780637a308a4c14610142578063997da8d41461012d578063bc9e2bcf14610104578063eeeac01e146100e95763f6caf0ac1461007a57600080fd5b60203660031901126100e55761009160043561025b565b8291925192602084015281830152808252606082019282841067ffffffffffffffff8511176100d15750829052605f19906100cc8184610212565b030190f35b634e487b7160e01b81526041600452602490fd5b5080fd5b50816003193601126100e557516401000003d0198152602090f35b5090602036600319011261012a575061011e60043561025b565b82519182526020820152f35b80fd5b50816003193601126100e55751908152602090f35b50816003193601126100e557602090517f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b88152f35b5060203660031901126100e5576101c39061019360043561025b565b8291925192600160fa1b602085015260218401526041830152604182526101b98261041c565b5191829182610212565b0390f35b50816003193601126100e5576020905160078152f35b8390816003193601126100e557807f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860209252f35b6020808252825181830181905290939260005b82811061024757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610225565b61026490610372565b9291908315158481610361575b5080610359575b156103235760009360016401000003d019825b6102b8575050506401000003d01984800991826401000003d0199109936401000003d01992839109900990565b91959091868104916401000003d0198484096401000003d019036401000003d019811161030d576401000003d01991089296809281810291818304149015171561030d57810390811161030d5791908261028b565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b6044820152606490fd5b506001610278565b6401000003d0191415905038610271565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798917f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b86001928015610417576000948592918590805b6103d55750505050929190565b600181166103f9575b906103ee9160011c938493610639565b9093919290916103c8565b9390838382986103ee9a61040c9561044e565b9097509590936103de565b509190565b6080810190811067ffffffffffffffff82111761043857604052565b634e487b7160e01b600052604160045260246000fd5b909295939194811580610631575b6106275786158061061f575b6106155760409283519461047b8661041c565b60803687376401000003d0199586898009928382528760208301948b09845287858009928783019684885289606085019588098552885197608089019289841067ffffffffffffffff85111761043857928a52518a928392839283910996878b525190099c8d9460208a019e8f525190099188880195838752519009906060870193828552149182159261060a575b5050156105c65784519161051d8361041c565b6080368437518451870387811161030d578791088252518851860386811161030d57869108936020820194808652868351818180099385019380855209916060840192808452880388811161030d578880885184519009600209890389811161030d5789809492818481950908089651955190519009988587039187831161030d578791519051900986039086821161030d57869485809492819351989c089009089509900990565b845162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e737465616400006044820152606490fd5b14159050388061050a565b5091945050929190565b508215610468565b9194509092915050565b50831561045c565b92909180156106f5576401000003d01990818480098282800990838080838a0960040997818080806000978009870992800960030908908488800885038581116106e15785908184800908808603918683116106cd5786818192096008098603938685116106b95750859493919285809481939b08900908940960020990565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b84526011600452602484fd5b9056fea26469706673582212209cf69af28d79ee32cab80ff0f42b68090f51611093df0f7bebecdee26743452b64736f6c63430008130033","sourceMap":"163:5276:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;163:5276:96;;;;843:44;163:5276;;843:44;:::i;:::-;163:5276;;;;904:28;163:5276;904:28;;163:5276;;;;;904:28;;;163:5276;;;;;;;;;;;;;-1:-1:-1;163:5276:96;;;-1:-1:-1;;163:5276:96;;;;;:::i;:::-;;;;;;-1:-1:-1;;;163:5276:96;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;163:5276:96;;;;;;-1:-1:-1;163:5276:96;;;-1:-1:-1;;163:5276:96;;;;;660:44;163:5276;;660:44;:::i;:::-;163:5276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:66;163:5276;;;;-1:-1:-1;163:5276:96;;-1:-1:-1;;163:5276:96;;;;;;1080:44;163:5276;;1080:44;:::i;:::-;163:5276;;;;;;;;;1245:46;;163:5276;;;;;;;;;;1245:46;;;;;:::i;:::-;163:5276;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;454:1;163:5276;;;;;;;;;;;;;;;216:66;163:5276;;;;;;;;;;;;;;;;;;;;-1:-1:-1;163:5276:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;8046:405:0;8341:31;8046:405;8341:31;:::i;:::-;3213:15;;;842:7;;;3213:15;842:7;:20;;8046:405;842:32;;;;8046:405;163:5276:96;;;;;8360:1:0;-1:-1:-1;;926:16:0;1003:7;;;490:66:96;;;;;3254:23:0;;;490:66:96;;;;3300:22:0;;490:66:96;-1:-1:-1;;490:66:96;;;3356:24:0;3345:41;;8046:405;:::o;996:169::-;163:5276:96;;;;;;;;-1:-1:-1;;163:5276:96;;1086:20:0;490:66:96;;163:5276;490:66;;163:5276;;;;-1:-1:-1;;490:66:96;1069:44:0;1050:64;1138:16;;163:5276:96;;;;;;;;;;;;;;;;;;;;;;1128:26:0;;;996:169;;163:5276:96;;;;;;;;;;;;;;;-1:-1:-1;;;163:5276:96;;;;;;;;;;;;-1:-1:-1;;;163:5276:96;;;;;;;842:32:0;;8360:1;842:32;;:20;-1:-1:-1;;853:9:0;;;-1:-1:-1;842:20:0;;;12886:800;216:66:96;12886:800:0;317:66:96;8360:1:0;13192:7;;;13188:57;;163:5276:96;;;;13255:22:0;;;;13403:14;;;13660:19;;;;;;12886:800;:::o;13396:255::-;8360:1;13438:13;;13433:109;;13396:255;163:5276:96;13609:31:0;163:5276:96;8360:1:0;163:5276:96;13609:31:0;;;;:::i;:::-;13594:46;;;;;;13396:255;;13433:109;13492:35;;;;;;13609:31;13492:35;;;;:::i;:::-;13477:50;;-1:-1:-1;13477:50:0;;;13433:109;;13188:57;13215:19;;;:::o;163:5276:96:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;8838:1966:0;;;;;;;9126:8;;:20;;;8838:1966;9122:48;;9184:8;;:20;;;8838:1966;9180:48;;163:5276:96;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;490:66:96;;9437:21:0;;;163:5276:96;;;;;;;;9476:23:0;;;163:5276:96;;9517:21:0;;;;163:5276:96;;;;;;;;;;;;9556:23:0;;;163:5276:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9635:23:0;163:5276:96;;;;;9672:23:0;;9621:158;;;163:5276:96;9621:158:0;;163:5276:96;;;;9709:23:0;;9621:158;;;;163:5276:96;;;;;9746:23:0;;9621:158;163:5276:96;9621:158:0;;163:5276:96;;;;9898:14:0;;;;:32;;;8838:1966;163:5276:96;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;10044:31:0;;;163:5276:96;;;;;;;;;;;;10105:31:0;;;163:5276:96;;;;;;;;;;;10168:25:0;;;;163:5276:96;;;;;;;10226:25:0;163:5276:96;;;;;;;;;;;;;;;;;;;;;10401:25:0;;9512:1;10391:41;163:5276:96;;;;;;;10315:25:0;;;;;;;;;10308:51;10374:64;163:5276:96;;;;;;10549:25:0;;163:5276:96;;;;;;;;;;;;;;;10649:25:0;;163:5276:96;;;;;;;;;;;;;;;;;10778:19:0;10542:48;;10503:114;;10632:48;10741:21;;10727:41;;8838:1966;:::o;163:5276:96:-;;;-1:-1:-1;;;163:5276:96;;;;;;;;;;;;;;;;;;;;9898:32:0;9916:14;;;-1:-1:-1;9898:32:0;;;;9180:48;9206:22;;;;;;;;:::o;9184:20::-;9196:8;;;9184:20;;9122:48;9148:22;;-1:-1:-1;9148:22:0;;;-1:-1:-1;;9148:22:0:o;9126:20::-;9138:8;;;9126:20;;11091:1480;;;;11329:7;;11325:32;;-1:-1:-1;;490:66:96;;11726:19:0;;;11774;;;;11843:18;;;;;;;11840:1;11833:34;-1:-1:-1;;;;;;11962:17:0;;;11950:35;;11678:19;;;11926:1;11919:17;11899:113;12255:17;;;;;163:5276:96;;;;;;;12230:17:0;;;;;;12223:55;163:5276:96;;;;;;;;;12414:17:0;;;;;12411:1;12404:33;163:5276:96;;;;;;;;12548:16:0;;;;;;;;;;;12355:23;;12345:39;;12325:139;12512:19;;12509:1;12502:35;11091:1480;:::o;163:5276:96:-;-1:-1:-1;;;163:5276:96;;;11840:1:0;163:5276:96;;;;;-1:-1:-1;;;163:5276:96;;;11840:1:0;163:5276:96;;;;;-1:-1:-1;;;163:5276:96;;;11840:1:0;163:5276:96;;;;11325:32:0;11338:19;:::o","linkReferences":{}},"methodIdentifiers":{"AA()":"997da8d4","BB()":"5727dc5c","GX()":"03a507be","GY()":"7a308a4c","PP()":"eeeac01e","derivePubKey(uint256)":"bc9e2bcf","derivePubKeyBytes(uint256)":"f6caf0ac","deriveValidatorPubKeyBytes(uint256)":"573081a2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AA\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"derivePubKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"derivePubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"deriveValidatorPubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/TestUtils.sol\":\"TestUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"AA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"GX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"GY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"derivePubKey","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"derivePubKeyBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"deriveValidatorPubKeyBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/TestUtils.sol":"TestUtils"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/TestUtils.sol","id":57052,"exportedSymbols":{"DSTest":[3720],"EllipticCurve":[1129],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"Test":[12740],"TestBase":[3780],"TestUtils":[57051],"Vm":[14222],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:5394:96","nodes":[{"id":56265,"nodeType":"PragmaDirective","src":"46:23:96","nodes":[],"literals":["solidity","0.8",".19"]},{"id":56266,"nodeType":"ImportDirective","src":"71:28:96","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":57052,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":56267,"nodeType":"ImportDirective","src":"100:61:96","nodes":[],"absolutePath":"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol","file":"elliptic-curve-solidity/contracts/EllipticCurve.sol","nameLocation":"-1:-1:-1","scope":57052,"sourceUnit":1130,"symbolAliases":[],"unitAlias":""},{"id":57051,"nodeType":"ContractDefinition","src":"163:5276:96","nodes":[{"id":56270,"nodeType":"VariableDeclaration","src":"187:95:96","nodes":[],"constant":true,"functionSelector":"03a507be","mutability":"constant","name":"GX","nameLocation":"211:2:96","scope":57051,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56268,"name":"uint256","nodeType":"ElementaryTypeName","src":"187:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307837394245363637454639444342424143353541303632393543453837304230373032394246434442324443453238443935394632383135423136463831373938","id":56269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216:66:96","typeDescriptions":{"typeIdentifier":"t_rational_55066263022277343669578718895168534326250603453777594175500187360389116729240_by_1","typeString":"int_const 5506...(69 digits omitted)...9240"},"value":"0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798"},"visibility":"public"},{"id":56273,"nodeType":"VariableDeclaration","src":"288:95:96","nodes":[],"constant":true,"functionSelector":"7a308a4c","mutability":"constant","name":"GY","nameLocation":"312:2:96","scope":57051,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56271,"name":"uint256","nodeType":"ElementaryTypeName","src":"288:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307834383341444137373236413343343635354441344642464330453131303841384644313742343438413638353534313939433437443038464642313044344238","id":56272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"317:66:96","typeDescriptions":{"typeIdentifier":"t_rational_32670510020758816978083085130507043184471273380659243275938904335757337482424_by_1","typeString":"int_const 3267...(69 digits omitted)...2424"},"value":"0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8"},"visibility":"public"},{"id":56276,"nodeType":"VariableDeclaration","src":"389:30:96","nodes":[],"constant":true,"functionSelector":"997da8d4","mutability":"constant","name":"AA","nameLocation":"413:2:96","scope":57051,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56274,"name":"uint256","nodeType":"ElementaryTypeName","src":"389:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":56275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"418:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":56279,"nodeType":"VariableDeclaration","src":"425:30:96","nodes":[],"constant":true,"functionSelector":"5727dc5c","mutability":"constant","name":"BB","nameLocation":"449:2:96","scope":57051,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56277,"name":"uint256","nodeType":"ElementaryTypeName","src":"425:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":56278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"454:1:96","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"public"},{"id":56282,"nodeType":"VariableDeclaration","src":"461:95:96","nodes":[],"constant":true,"functionSelector":"eeeac01e","mutability":"constant","name":"PP","nameLocation":"485:2:96","scope":57051,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56280,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646454646464646433246","id":56281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"490:66:96","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007908834671663_by_1","typeString":"int_const 1157...(70 digits omitted)...1663"},"value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F"},"visibility":"public"},{"id":56301,"nodeType":"FunctionDefinition","src":"563:148:96","nodes":[],"body":{"id":56300,"nodeType":"Block","src":"643:68:96","nodes":[],"statements":[{"expression":{"arguments":[{"id":56293,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56284,"src":"680:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56294,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56270,"src":"689:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56295,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56273,"src":"693:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56296,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56276,"src":"697:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56297,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56282,"src":"701:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56291,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"660:13:96","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":56292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"674:5:96","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"660:19:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":56298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"660:44:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":56290,"id":56299,"nodeType":"Return","src":"653:51:96"}]},"functionSelector":"bc9e2bcf","implemented":true,"kind":"function","modifiers":[],"name":"derivePubKey","nameLocation":"572:12:96","parameters":{"id":56285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56284,"mutability":"mutable","name":"privKey","nameLocation":"593:7:96","nodeType":"VariableDeclaration","scope":56301,"src":"585:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56283,"name":"uint256","nodeType":"ElementaryTypeName","src":"585:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"584:17:96"},"returnParameters":{"id":56290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56301,"src":"625:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56286,"name":"uint256","nodeType":"ElementaryTypeName","src":"625:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56301,"src":"634:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56288,"name":"uint256","nodeType":"ElementaryTypeName","src":"634:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"624:18:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":56328,"nodeType":"FunctionDefinition","src":"717:222:96","nodes":[],"body":{"id":56327,"nodeType":"Block","src":"796:143:96","nodes":[],"statements":[{"assignments":[56309,56311],"declarations":[{"constant":false,"id":56309,"mutability":"mutable","name":"pubKeyX","nameLocation":"815:7:96","nodeType":"VariableDeclaration","scope":56327,"src":"807:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56308,"name":"uint256","nodeType":"ElementaryTypeName","src":"807:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56311,"mutability":"mutable","name":"pubKeyY","nameLocation":"832:7:96","nodeType":"VariableDeclaration","scope":56327,"src":"824:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56310,"name":"uint256","nodeType":"ElementaryTypeName","src":"824:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56320,"initialValue":{"arguments":[{"id":56314,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56303,"src":"863:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56315,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56270,"src":"872:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56316,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56273,"src":"876:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56317,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56276,"src":"880:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56318,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56282,"src":"884:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56312,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"843:13:96","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":56313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"857:5:96","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"843:19:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":56319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"843:44:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"806:81:96"},{"expression":{"arguments":[{"id":56323,"name":"pubKeyX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56309,"src":"915:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56324,"name":"pubKeyY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56311,"src":"924:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"904:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"908:6:96","memberName":"encode","nodeType":"MemberAccess","src":"904:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"904:28:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":56307,"id":56326,"nodeType":"Return","src":"897:35:96"}]},"functionSelector":"f6caf0ac","implemented":true,"kind":"function","modifiers":[],"name":"derivePubKeyBytes","nameLocation":"726:17:96","parameters":{"id":56304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56303,"mutability":"mutable","name":"privKey","nameLocation":"752:7:96","nodeType":"VariableDeclaration","scope":56328,"src":"744:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56302,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"743:17:96"},"returnParameters":{"id":56307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56328,"src":"782:12:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56305,"name":"bytes","nodeType":"ElementaryTypeName","src":"782:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"781:14:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":56359,"nodeType":"FunctionDefinition","src":"945:353:96","nodes":[],"body":{"id":56358,"nodeType":"Block","src":"1033:265:96","nodes":[],"statements":[{"assignments":[56336,56338],"declarations":[{"constant":false,"id":56336,"mutability":"mutable","name":"pubKeyX","nameLocation":"1052:7:96","nodeType":"VariableDeclaration","scope":56358,"src":"1044:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56335,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56338,"mutability":"mutable","name":"pubKeyY","nameLocation":"1069:7:96","nodeType":"VariableDeclaration","scope":56358,"src":"1061:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56337,"name":"uint256","nodeType":"ElementaryTypeName","src":"1061:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56347,"initialValue":{"arguments":[{"id":56341,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56330,"src":"1100:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56342,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56270,"src":"1109:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56343,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56273,"src":"1113:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56344,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56276,"src":"1117:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56345,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56282,"src":"1121:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56339,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"1080:13:96","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":56340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1094:5:96","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"1080:19:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":56346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1080:44:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1043:81:96"},{"expression":{"arguments":[{"arguments":[{"hexValue":"307834","id":56352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1268:3:96","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:5:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":56350,"name":"uint8","nodeType":"ElementaryTypeName","src":"1262:5:96","typeDescriptions":{}}},"id":56353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:10:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":56354,"name":"pubKeyX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56336,"src":"1274:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56355,"name":"pubKeyY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56338,"src":"1283:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56348,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1245:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1249:12:96","memberName":"encodePacked","nodeType":"MemberAccess","src":"1245:16:96","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1245:46:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":56334,"id":56357,"nodeType":"Return","src":"1238:53:96"}]},"functionSelector":"573081a2","implemented":true,"kind":"function","modifiers":[],"name":"deriveValidatorPubKeyBytes","nameLocation":"954:26:96","parameters":{"id":56331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56330,"mutability":"mutable","name":"privKey","nameLocation":"989:7:96","nodeType":"VariableDeclaration","scope":56359,"src":"981:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56329,"name":"uint256","nodeType":"ElementaryTypeName","src":"981:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"980:17:96"},"returnParameters":{"id":56334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56359,"src":"1019:12:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56332,"name":"bytes","nodeType":"ElementaryTypeName","src":"1019:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1018:14:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":56547,"nodeType":"FunctionDefinition","src":"1304:934:96","nodes":[],"body":{"id":56546,"nodeType":"Block","src":"1456:782:96","nodes":[],"statements":[{"expression":{"id":56380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56374,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1466:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1496:1:96","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1482:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56375,"name":"uint256","nodeType":"ElementaryTypeName","src":"1486:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56376,"nodeType":"ArrayTypeName","src":"1486:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"1466:32:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56381,"nodeType":"ExpressionStatement","src":"1466:32:96"},{"expression":{"id":56386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56382,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1508:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56384,"indexExpression":{"hexValue":"30","id":56383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1522:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1508:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1527:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1508:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56387,"nodeType":"ExpressionStatement","src":"1508:22:96"},{"expression":{"id":56392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56388,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1540:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56390,"indexExpression":{"hexValue":"31","id":56389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1554:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1540:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323030","id":56391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1559:3:96","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"1540:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56393,"nodeType":"ExpressionStatement","src":"1540:22:96"},{"expression":{"id":56398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56394,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1572:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56396,"indexExpression":{"hexValue":"32","id":56395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1586:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1572:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333030","id":56397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1591:3:96","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"1572:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56399,"nodeType":"ExpressionStatement","src":"1572:22:96"},{"expression":{"id":56404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56400,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1604:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56402,"indexExpression":{"hexValue":"33","id":56401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1618:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1604:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"343030","id":56403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1623:3:96","typeDescriptions":{"typeIdentifier":"t_rational_400_by_1","typeString":"int_const 400"},"value":"400"},"src":"1604:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56405,"nodeType":"ExpressionStatement","src":"1604:22:96"},{"expression":{"id":56412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56406,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"1637:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1663:1:96","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1649:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":56407,"name":"address","nodeType":"ElementaryTypeName","src":"1653:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56408,"nodeType":"ArrayTypeName","src":"1653:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":56411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1649:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"1637:28:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56413,"nodeType":"ExpressionStatement","src":"1637:28:96"},{"expression":{"id":56423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56414,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"1675:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56416,"indexExpression":{"hexValue":"30","id":56415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1685:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1675:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56419,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1698:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56421,"indexExpression":{"hexValue":"30","id":56420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1712:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1698:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56417,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1690:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1693:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1690:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1690:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1675:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56424,"nodeType":"ExpressionStatement","src":"1675:40:96"},{"expression":{"id":56434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56425,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"1725:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56427,"indexExpression":{"hexValue":"31","id":56426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1725:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56430,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1748:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56432,"indexExpression":{"hexValue":"31","id":56431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1762:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1748:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56428,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1740:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1743:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1740:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1740:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1725:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56435,"nodeType":"ExpressionStatement","src":"1725:40:96"},{"expression":{"id":56445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56436,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"1775:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56438,"indexExpression":{"hexValue":"32","id":56437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1785:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1775:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56441,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1798:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56443,"indexExpression":{"hexValue":"32","id":56442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1812:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1798:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56439,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1790:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1793:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1790:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1775:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56446,"nodeType":"ExpressionStatement","src":"1775:40:96"},{"expression":{"id":56456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56447,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"1825:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56449,"indexExpression":{"hexValue":"33","id":56448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1835:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1825:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56452,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1848:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56454,"indexExpression":{"hexValue":"33","id":56453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1862:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1848:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56450,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1840:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1843:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1840:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1840:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1825:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56457,"nodeType":"ExpressionStatement","src":"1825:40:96"},{"expression":{"id":56464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56458,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"1876:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1900:1:96","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1886:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56459,"name":"uint256","nodeType":"ElementaryTypeName","src":"1890:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56460,"nodeType":"ArrayTypeName","src":"1890:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1886:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"1876:26:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56465,"nodeType":"ExpressionStatement","src":"1876:26:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56471,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1928:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56473,"indexExpression":{"hexValue":"30","id":56472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1942:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1928:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56469,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1920:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1923:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1920:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1947:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56466,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1912:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1915:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"1912:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56477,"nodeType":"ExpressionStatement","src":"1912:37:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56483,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1975:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56485,"indexExpression":{"hexValue":"31","id":56484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1989:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1975:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56481,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1967:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1970:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1967:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1967:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1994:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56478,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1959:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1962:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"1959:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1959:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56489,"nodeType":"ExpressionStatement","src":"1959:37:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56495,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"2022:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56497,"indexExpression":{"hexValue":"32","id":56496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2036:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2022:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56493,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"2014:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2017:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2014:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2014:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2041:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56490,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"2006:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2009:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2006:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2006:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56501,"nodeType":"ExpressionStatement","src":"2006:37:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56507,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"2069:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56509,"indexExpression":{"hexValue":"33","id":56508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2083:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2069:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56505,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"2061:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2064:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2061:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2061:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2088:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56502,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"2053:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2056:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2053:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2053:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56513,"nodeType":"ExpressionStatement","src":"2053:37:96"},{"expression":{"id":56520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56514,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"2101:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2125:1:96","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2111:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56515,"name":"uint256","nodeType":"ElementaryTypeName","src":"2115:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56516,"nodeType":"ArrayTypeName","src":"2115:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2101:26:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56521,"nodeType":"ExpressionStatement","src":"2101:26:96"},{"expression":{"id":56526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56522,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"2137:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56524,"indexExpression":{"hexValue":"30","id":56523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2145:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2137:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2150:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2137:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56527,"nodeType":"ExpressionStatement","src":"2137:16:96"},{"expression":{"id":56532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56528,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"2163:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56530,"indexExpression":{"hexValue":"31","id":56529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2171:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2163:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2176:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2163:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56533,"nodeType":"ExpressionStatement","src":"2163:16:96"},{"expression":{"id":56538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56534,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"2189:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56536,"indexExpression":{"hexValue":"32","id":56535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2197:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2189:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2189:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56539,"nodeType":"ExpressionStatement","src":"2189:16:96"},{"expression":{"id":56544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56540,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"2215:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56542,"indexExpression":{"hexValue":"33","id":56541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2223:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2215:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2228:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2215:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56545,"nodeType":"ExpressionStatement","src":"2215:16:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getFourValidators","nameLocation":"1313:17:96","parameters":{"id":56363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56362,"mutability":"mutable","name":"vm","nameLocation":"1343:2:96","nodeType":"VariableDeclaration","scope":56547,"src":"1340:5:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},"typeName":{"id":56361,"nodeType":"UserDefinedTypeName","pathNode":{"id":56360,"name":"Vm","nameLocations":["1340:2:96"],"nodeType":"IdentifierPath","referencedDeclaration":14222,"src":"1340:2:96"},"referencedDeclaration":14222,"src":"1340:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"visibility":"internal"}],"src":"1330:21:96"},"returnParameters":{"id":56373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56366,"mutability":"mutable","name":"validatorKeys","nameLocation":"1387:13:96","nodeType":"VariableDeclaration","scope":56547,"src":"1370:30:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56364,"name":"uint256","nodeType":"ElementaryTypeName","src":"1370:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56365,"nodeType":"ArrayTypeName","src":"1370:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":56369,"mutability":"mutable","name":"addresses","nameLocation":"1419:9:96","nodeType":"VariableDeclaration","scope":56547,"src":"1402:26:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56367,"name":"address","nodeType":"ElementaryTypeName","src":"1402:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56368,"nodeType":"ArrayTypeName","src":"1402:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":56372,"mutability":"mutable","name":"weights","nameLocation":"1447:7:96","nodeType":"VariableDeclaration","scope":56547,"src":"1430:24:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56370,"name":"uint256","nodeType":"ElementaryTypeName","src":"1430:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56371,"nodeType":"ArrayTypeName","src":"1430:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1369:86:96"},"scope":57051,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":56700,"nodeType":"FunctionDefinition","src":"2244:780:96","nodes":[],"body":{"id":56699,"nodeType":"Block","src":"2397:627:96","nodes":[],"statements":[{"expression":{"id":56568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56562,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2407:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":56566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2437:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":56565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2423:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56563,"name":"uint256","nodeType":"ElementaryTypeName","src":"2427:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56564,"nodeType":"ArrayTypeName","src":"2427:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2423:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2407:32:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56569,"nodeType":"ExpressionStatement","src":"2407:32:96"},{"expression":{"id":56574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56570,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2449:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56572,"indexExpression":{"hexValue":"30","id":56571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2463:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2449:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2468:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2449:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56575,"nodeType":"ExpressionStatement","src":"2449:22:96"},{"expression":{"id":56580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56576,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2481:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56578,"indexExpression":{"hexValue":"31","id":56577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2481:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323030","id":56579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2500:3:96","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"2481:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56581,"nodeType":"ExpressionStatement","src":"2481:22:96"},{"expression":{"id":56586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56582,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2513:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56584,"indexExpression":{"hexValue":"32","id":56583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2527:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2513:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333030","id":56585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2532:3:96","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"2513:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56587,"nodeType":"ExpressionStatement","src":"2513:22:96"},{"expression":{"id":56594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56588,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56557,"src":"2546:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":56592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2572:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":56591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2558:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":56589,"name":"address","nodeType":"ElementaryTypeName","src":"2562:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56590,"nodeType":"ArrayTypeName","src":"2562:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":56593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2558:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2546:28:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56595,"nodeType":"ExpressionStatement","src":"2546:28:96"},{"expression":{"id":56605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56596,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56557,"src":"2584:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56598,"indexExpression":{"hexValue":"30","id":56597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2594:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2584:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56601,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2607:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56603,"indexExpression":{"hexValue":"30","id":56602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2621:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2607:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56599,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2599:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2602:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2599:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2599:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2584:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56606,"nodeType":"ExpressionStatement","src":"2584:40:96"},{"expression":{"id":56616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56607,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56557,"src":"2634:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56609,"indexExpression":{"hexValue":"31","id":56608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2644:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2634:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56612,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2657:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56614,"indexExpression":{"hexValue":"31","id":56613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2671:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2657:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56610,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2649:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2652:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2649:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2649:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2634:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56617,"nodeType":"ExpressionStatement","src":"2634:40:96"},{"expression":{"id":56627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56618,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56557,"src":"2684:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56620,"indexExpression":{"hexValue":"32","id":56619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2694:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2684:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56623,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2707:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56625,"indexExpression":{"hexValue":"32","id":56624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2721:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2707:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56621,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2699:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2702:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2699:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2699:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2684:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56628,"nodeType":"ExpressionStatement","src":"2684:40:96"},{"expression":{"id":56635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56629,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"2735:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":56633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2759:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":56632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2745:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56630,"name":"uint256","nodeType":"ElementaryTypeName","src":"2749:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56631,"nodeType":"ArrayTypeName","src":"2749:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2745:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2735:26:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56636,"nodeType":"ExpressionStatement","src":"2735:26:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56642,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2787:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56644,"indexExpression":{"hexValue":"30","id":56643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2801:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2787:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56640,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2779:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2782:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2779:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56637,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2771:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2774:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2771:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2771:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56648,"nodeType":"ExpressionStatement","src":"2771:37:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56654,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2834:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56656,"indexExpression":{"hexValue":"31","id":56655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2848:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2834:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56652,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2826:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2829:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2826:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2826:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2853:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56649,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2818:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2821:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2818:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56660,"nodeType":"ExpressionStatement","src":"2818:37:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56666,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2881:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56668,"indexExpression":{"hexValue":"32","id":56667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2895:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2881:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56664,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2873:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2876:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2873:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2873:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2900:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56661,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2865:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2868:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2865:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2865:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56672,"nodeType":"ExpressionStatement","src":"2865:37:96"},{"expression":{"id":56679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56673,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"2913:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":56677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2937:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":56676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2923:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56674,"name":"uint256","nodeType":"ElementaryTypeName","src":"2927:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56675,"nodeType":"ArrayTypeName","src":"2927:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2913:26:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56680,"nodeType":"ExpressionStatement","src":"2913:26:96"},{"expression":{"id":56685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56681,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"2949:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56683,"indexExpression":{"hexValue":"30","id":56682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2957:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2949:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2962:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2949:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56686,"nodeType":"ExpressionStatement","src":"2949:16:96"},{"expression":{"id":56691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56687,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"2975:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56689,"indexExpression":{"hexValue":"31","id":56688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2983:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2975:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313031","id":56690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2988:3:96","typeDescriptions":{"typeIdentifier":"t_rational_101_by_1","typeString":"int_const 101"},"value":"101"},"src":"2975:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56692,"nodeType":"ExpressionStatement","src":"2975:16:96"},{"expression":{"id":56697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56693,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"3001:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56695,"indexExpression":{"hexValue":"32","id":56694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3009:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3001:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313032","id":56696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3014:3:96","typeDescriptions":{"typeIdentifier":"t_rational_102_by_1","typeString":"int_const 102"},"value":"102"},"src":"3001:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56698,"nodeType":"ExpressionStatement","src":"3001:16:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getThreeValidators","nameLocation":"2253:18:96","parameters":{"id":56551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56550,"mutability":"mutable","name":"vm","nameLocation":"2284:2:96","nodeType":"VariableDeclaration","scope":56700,"src":"2281:5:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},"typeName":{"id":56549,"nodeType":"UserDefinedTypeName","pathNode":{"id":56548,"name":"Vm","nameLocations":["2281:2:96"],"nodeType":"IdentifierPath","referencedDeclaration":14222,"src":"2281:2:96"},"referencedDeclaration":14222,"src":"2281:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"visibility":"internal"}],"src":"2271:21:96"},"returnParameters":{"id":56561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56554,"mutability":"mutable","name":"validatorKeys","nameLocation":"2328:13:96","nodeType":"VariableDeclaration","scope":56700,"src":"2311:30:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56552,"name":"uint256","nodeType":"ElementaryTypeName","src":"2311:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56553,"nodeType":"ArrayTypeName","src":"2311:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":56557,"mutability":"mutable","name":"addresses","nameLocation":"2360:9:96","nodeType":"VariableDeclaration","scope":56700,"src":"2343:26:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56555,"name":"address","nodeType":"ElementaryTypeName","src":"2343:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56556,"nodeType":"ArrayTypeName","src":"2343:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":56560,"mutability":"mutable","name":"weights","nameLocation":"2388:7:96","nodeType":"VariableDeclaration","scope":56700,"src":"2371:24:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2371:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56559,"nodeType":"ArrayTypeName","src":"2371:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2310:86:96"},"scope":57051,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":56774,"nodeType":"FunctionDefinition","src":"3030:433:96","nodes":[],"body":{"id":56773,"nodeType":"Block","src":"3129:334:96","nodes":[],"statements":[{"expression":{"id":56714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56709,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56707,"src":"3139:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3635","id":56712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3156:2:96","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"id":56711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3146:9:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":56710,"name":"bytes","nodeType":"ElementaryTypeName","src":"3150:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":56713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3146:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3139:20:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56715,"nodeType":"ExpressionStatement","src":"3139:20:96"},{"expression":{"id":56723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56716,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56707,"src":"3169:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56718,"indexExpression":{"hexValue":"31","id":56717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3174:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3169:7:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56721,"name":"seq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56702,"src":"3186:3:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":56720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3179:6:96","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":56719,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3179:6:96","typeDescriptions":{}}},"id":56722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3179:11:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3169:21:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":56724,"nodeType":"ExpressionStatement","src":"3169:21:96"},{"assignments":[56726],"declarations":[{"constant":false,"id":56726,"mutability":"mutable","name":"dataSubset","nameLocation":"3251:10:96","nodeType":"VariableDeclaration","scope":56773,"src":"3238:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56725,"name":"bytes","nodeType":"ElementaryTypeName","src":"3238:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":56734,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":56729,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56707,"src":"3274:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3279:6:96","memberName":"length","nodeType":"MemberAccess","src":"3274:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":56731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3274:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3264:9:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":56727,"name":"bytes","nodeType":"ElementaryTypeName","src":"3268:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":56733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3264:26:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3238:52:96"},{"body":{"id":56756,"nodeType":"Block","src":"3339:52:96","statements":[{"expression":{"id":56754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56746,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56726,"src":"3353:10:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56750,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56747,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56736,"src":"3364:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":56748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3368:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3364:5:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3353:17:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":56751,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56707,"src":"3373:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56753,"indexExpression":{"id":56752,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56736,"src":"3378:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3373:7:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3353:27:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":56755,"nodeType":"ExpressionStatement","src":"3353:27:96"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56739,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56736,"src":"3317:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":56740,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56707,"src":"3321:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3326:6:96","memberName":"length","nodeType":"MemberAccess","src":"3321:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3317:15:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56757,"initializationExpression":{"assignments":[56736],"declarations":[{"constant":false,"id":56736,"mutability":"mutable","name":"i","nameLocation":"3310:1:96","nodeType":"VariableDeclaration","scope":56757,"src":"3305:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56735,"name":"uint","nodeType":"ElementaryTypeName","src":"3305:4:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56738,"initialValue":{"hexValue":"31","id":56737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3314:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"3305:10:96"},"loopExpression":{"expression":{"id":56744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3334:3:96","subExpression":{"id":56743,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56736,"src":"3334:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56745,"nodeType":"ExpressionStatement","src":"3334:3:96"},"nodeType":"ForStatement","src":"3300:91:96"},{"expression":{"id":56771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56758,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56705,"src":"3401:4:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":56766,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56726,"src":"3442:10:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56765,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3432:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3432:21:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":56764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3424:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":56763,"name":"uint256","nodeType":"ElementaryTypeName","src":"3424:7:96","typeDescriptions":{}}},"id":56768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3424:30:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3416:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":56761,"name":"uint160","nodeType":"ElementaryTypeName","src":"3416:7:96","typeDescriptions":{}}},"id":56769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3416:39:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":56760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3408:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56759,"name":"address","nodeType":"ElementaryTypeName","src":"3408:7:96","typeDescriptions":{}}},"id":56770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3408:48:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3401:55:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56772,"nodeType":"ExpressionStatement","src":"3401:55:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deriveValidatorAddress","nameLocation":"3039:22:96","parameters":{"id":56703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56702,"mutability":"mutable","name":"seq","nameLocation":"3068:3:96","nodeType":"VariableDeclaration","scope":56774,"src":"3062:9:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56701,"name":"uint8","nodeType":"ElementaryTypeName","src":"3062:5:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3061:11:96"},"returnParameters":{"id":56708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56705,"mutability":"mutable","name":"addr","nameLocation":"3104:4:96","nodeType":"VariableDeclaration","scope":56774,"src":"3096:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56704,"name":"address","nodeType":"ElementaryTypeName","src":"3096:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56707,"mutability":"mutable","name":"data","nameLocation":"3123:4:96","nodeType":"VariableDeclaration","scope":56774,"src":"3110:17:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56706,"name":"bytes","nodeType":"ElementaryTypeName","src":"3110:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3095:33:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":56817,"nodeType":"FunctionDefinition","src":"3469:331:96","nodes":[],"body":{"id":56816,"nodeType":"Block","src":"3599:201:96","nodes":[],"statements":[{"expression":{"id":56787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56785,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56781,"src":"3609:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56786,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56776,"src":"3619:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3609:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56788,"nodeType":"ExpressionStatement","src":"3609:13:96"},{"assignments":[56790],"declarations":[{"constant":false,"id":56790,"mutability":"mutable","name":"pubkey","nameLocation":"3645:6:96","nodeType":"VariableDeclaration","scope":56816,"src":"3632:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56789,"name":"bytes","nodeType":"ElementaryTypeName","src":"3632:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":56794,"initialValue":{"arguments":[{"id":56792,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56776,"src":"3672:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56791,"name":"derivePubKeyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56328,"src":"3654:17:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":56793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3654:22:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3632:44:96"},{"expression":{"id":56799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56795,"name":"validatorKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56783,"src":"3686:12:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56797,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56776,"src":"3728:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56796,"name":"deriveValidatorPubKeyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56359,"src":"3701:26:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":56798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3701:31:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3686:46:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56800,"nodeType":"ExpressionStatement","src":"3686:46:96"},{"expression":{"id":56814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56801,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56779,"src":"3742:4:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":56809,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56790,"src":"3783:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56808,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3773:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:17:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":56807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3765:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":56806,"name":"uint256","nodeType":"ElementaryTypeName","src":"3765:7:96","typeDescriptions":{}}},"id":56811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3765:26:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3757:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":56804,"name":"uint160","nodeType":"ElementaryTypeName","src":"3757:7:96","typeDescriptions":{}}},"id":56812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3757:35:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":56803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3749:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56802,"name":"address","nodeType":"ElementaryTypeName","src":"3749:7:96","typeDescriptions":{}}},"id":56813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3749:44:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3742:51:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56815,"nodeType":"ExpressionStatement","src":"3742:51:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"newValidator","nameLocation":"3478:12:96","parameters":{"id":56777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56776,"mutability":"mutable","name":"key","nameLocation":"3508:3:96","nodeType":"VariableDeclaration","scope":56817,"src":"3500:11:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56775,"name":"uint256","nodeType":"ElementaryTypeName","src":"3500:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3490:27:96"},"returnParameters":{"id":56784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56779,"mutability":"mutable","name":"addr","nameLocation":"3549:4:96","nodeType":"VariableDeclaration","scope":56817,"src":"3541:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56778,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56781,"mutability":"mutable","name":"privKey","nameLocation":"3563:7:96","nodeType":"VariableDeclaration","scope":56817,"src":"3555:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56780,"name":"uint256","nodeType":"ElementaryTypeName","src":"3555:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56783,"mutability":"mutable","name":"validatorKey","nameLocation":"3585:12:96","nodeType":"VariableDeclaration","scope":56817,"src":"3572:25:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56782,"name":"bytes","nodeType":"ElementaryTypeName","src":"3572:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:58:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":56903,"nodeType":"FunctionDefinition","src":"3806:587:96","nodes":[],"body":{"id":56902,"nodeType":"Block","src":"3963:430:96","nodes":[],"statements":[{"expression":{"id":56837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56831,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56829,"src":"3973:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56835,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56819,"src":"4001:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3989:11:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":56832,"name":"bytes","nodeType":"ElementaryTypeName","src":"3993:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":56833,"nodeType":"ArrayTypeName","src":"3993:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":56836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3989:14:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"3973:30:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":56838,"nodeType":"ExpressionStatement","src":"3973:30:96"},{"expression":{"id":56845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56839,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56823,"src":"4013:10:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56843,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56819,"src":"4040:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4026:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":56840,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56841,"nodeType":"ArrayTypeName","src":"4030:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":56844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4026:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"4013:29:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56846,"nodeType":"ExpressionStatement","src":"4013:29:96"},{"expression":{"id":56853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56847,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56826,"src":"4052:8:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56851,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56819,"src":"4077:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4063:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56848,"name":"uint256","nodeType":"ElementaryTypeName","src":"4067:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56849,"nodeType":"ArrayTypeName","src":"4067:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4063:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"4052:27:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56854,"nodeType":"ExpressionStatement","src":"4052:27:96"},{"body":{"id":56895,"nodeType":"Block","src":"4119:213:96","statements":[{"assignments":[56866,56868,56870],"declarations":[{"constant":false,"id":56866,"mutability":"mutable","name":"addr","nameLocation":"4142:4:96","nodeType":"VariableDeclaration","scope":56895,"src":"4134:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56865,"name":"address","nodeType":"ElementaryTypeName","src":"4134:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56868,"mutability":"mutable","name":"key","nameLocation":"4156:3:96","nodeType":"VariableDeclaration","scope":56895,"src":"4148:11:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56867,"name":"uint256","nodeType":"ElementaryTypeName","src":"4148:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56870,"mutability":"mutable","name":"validatorKey","nameLocation":"4174:12:96","nodeType":"VariableDeclaration","scope":56895,"src":"4161:25:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56869,"name":"bytes","nodeType":"ElementaryTypeName","src":"4161:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":56876,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":56872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4203:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":56873,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4209:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4203:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56871,"name":"newValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56817,"src":"4190:12:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (address,uint256,bytes memory)"}},"id":56875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4190:21:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(address,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4133:78:96"},{"expression":{"id":56881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56877,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56823,"src":"4225:10:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56879,"indexExpression":{"id":56878,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4236:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4225:13:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56880,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56866,"src":"4241:4:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4225:20:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56882,"nodeType":"ExpressionStatement","src":"4225:20:96"},{"expression":{"id":56887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56883,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56829,"src":"4259:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":56885,"indexExpression":{"id":56884,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4273:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4259:16:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56886,"name":"validatorKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56870,"src":"4278:12:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4259:31:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56888,"nodeType":"ExpressionStatement","src":"4259:31:96"},{"expression":{"id":56893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56889,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56826,"src":"4304:8:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56891,"indexExpression":{"id":56890,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4313:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4304:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56892,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56868,"src":"4318:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4304:17:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56894,"nodeType":"ExpressionStatement","src":"4304:17:96"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56859,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4107:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":56860,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56819,"src":"4111:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4107:5:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56896,"initializationExpression":{"assignments":[56856],"declarations":[{"constant":false,"id":56856,"mutability":"mutable","name":"i","nameLocation":"4100:1:96","nodeType":"VariableDeclaration","scope":56896,"src":"4095:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56855,"name":"uint","nodeType":"ElementaryTypeName","src":"4095:4:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56858,"initialValue":{"hexValue":"30","id":56857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4104:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4095:10:96"},"loopExpression":{"expression":{"id":56863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4114:3:96","subExpression":{"id":56862,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4114:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56864,"nodeType":"ExpressionStatement","src":"4114:3:96"},"nodeType":"ForStatement","src":"4090:242:96"},{"expression":{"components":[{"id":56897,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56823,"src":"4350:10:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":56898,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56826,"src":"4362:8:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":56899,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56829,"src":"4372:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":56900,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4349:37:96","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory,bytes memory[] memory)"}},"functionReturnParameters":56830,"id":56901,"nodeType":"Return","src":"4342:44:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"newValidators","nameLocation":"3815:13:96","parameters":{"id":56820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56819,"mutability":"mutable","name":"n","nameLocation":"3846:1:96","nodeType":"VariableDeclaration","scope":56903,"src":"3838:9:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56818,"name":"uint256","nodeType":"ElementaryTypeName","src":"3838:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3828:25:96"},"returnParameters":{"id":56830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56823,"mutability":"mutable","name":"validators","nameLocation":"3894:10:96","nodeType":"VariableDeclaration","scope":56903,"src":"3877:27:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56821,"name":"address","nodeType":"ElementaryTypeName","src":"3877:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56822,"nodeType":"ArrayTypeName","src":"3877:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":56826,"mutability":"mutable","name":"privKeys","nameLocation":"3923:8:96","nodeType":"VariableDeclaration","scope":56903,"src":"3906:25:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56824,"name":"uint256","nodeType":"ElementaryTypeName","src":"3906:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56825,"nodeType":"ArrayTypeName","src":"3906:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":56829,"mutability":"mutable","name":"validatorKeys","nameLocation":"3948:13:96","nodeType":"VariableDeclaration","scope":56903,"src":"3933:28:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":56827,"name":"bytes","nodeType":"ElementaryTypeName","src":"3933:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":56828,"nodeType":"ArrayTypeName","src":"3933:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3876:86:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":56977,"nodeType":"FunctionDefinition","src":"4399:423:96","nodes":[],"body":{"id":56976,"nodeType":"Block","src":"4488:334:96","nodes":[],"statements":[{"expression":{"id":56917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56912,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56910,"src":"4498:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3635","id":56915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4515:2:96","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"id":56914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4505:9:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":56913,"name":"bytes","nodeType":"ElementaryTypeName","src":"4509:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":56916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4498:20:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56918,"nodeType":"ExpressionStatement","src":"4498:20:96"},{"expression":{"id":56926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56919,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56910,"src":"4528:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56921,"indexExpression":{"hexValue":"31","id":56920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4533:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4528:7:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56924,"name":"seq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56905,"src":"4545:3:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":56923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4538:6:96","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":56922,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4538:6:96","typeDescriptions":{}}},"id":56925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4538:11:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"4528:21:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":56927,"nodeType":"ExpressionStatement","src":"4528:21:96"},{"assignments":[56929],"declarations":[{"constant":false,"id":56929,"mutability":"mutable","name":"dataSubset","nameLocation":"4610:10:96","nodeType":"VariableDeclaration","scope":56976,"src":"4597:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56928,"name":"bytes","nodeType":"ElementaryTypeName","src":"4597:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":56937,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":56932,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56910,"src":"4633:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4638:6:96","memberName":"length","nodeType":"MemberAccess","src":"4633:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":56934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4647:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4633:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4623:9:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":56930,"name":"bytes","nodeType":"ElementaryTypeName","src":"4627:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":56936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4623:26:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4597:52:96"},{"body":{"id":56959,"nodeType":"Block","src":"4698:52:96","statements":[{"expression":{"id":56957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56949,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56929,"src":"4712:10:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56953,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56950,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56939,"src":"4723:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":56951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4727:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4723:5:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4712:17:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":56954,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56910,"src":"4732:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56956,"indexExpression":{"id":56955,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56939,"src":"4737:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4732:7:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"4712:27:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":56958,"nodeType":"ExpressionStatement","src":"4712:27:96"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56939,"src":"4676:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":56943,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56910,"src":"4680:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4685:6:96","memberName":"length","nodeType":"MemberAccess","src":"4680:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4676:15:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56960,"initializationExpression":{"assignments":[56939],"declarations":[{"constant":false,"id":56939,"mutability":"mutable","name":"i","nameLocation":"4669:1:96","nodeType":"VariableDeclaration","scope":56960,"src":"4664:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56938,"name":"uint","nodeType":"ElementaryTypeName","src":"4664:4:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56941,"initialValue":{"hexValue":"31","id":56940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4673:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"4664:10:96"},"loopExpression":{"expression":{"id":56947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4693:3:96","subExpression":{"id":56946,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56939,"src":"4693:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56948,"nodeType":"ExpressionStatement","src":"4693:3:96"},"nodeType":"ForStatement","src":"4659:91:96"},{"expression":{"id":56974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56961,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56908,"src":"4760:4:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":56969,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56929,"src":"4801:10:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56968,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4791:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4791:21:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":56967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4783:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":56966,"name":"uint256","nodeType":"ElementaryTypeName","src":"4783:7:96","typeDescriptions":{}}},"id":56971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4783:30:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4775:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":56964,"name":"uint160","nodeType":"ElementaryTypeName","src":"4775:7:96","typeDescriptions":{}}},"id":56972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4775:39:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":56963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4767:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56962,"name":"address","nodeType":"ElementaryTypeName","src":"4767:7:96","typeDescriptions":{}}},"id":56973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4767:48:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4760:55:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56975,"nodeType":"ExpressionStatement","src":"4760:55:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"derivePubKey","nameLocation":"4408:12:96","parameters":{"id":56906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56905,"mutability":"mutable","name":"seq","nameLocation":"4427:3:96","nodeType":"VariableDeclaration","scope":56977,"src":"4421:9:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56904,"name":"uint8","nodeType":"ElementaryTypeName","src":"4421:5:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4420:11:96"},"returnParameters":{"id":56911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56908,"mutability":"mutable","name":"addr","nameLocation":"4463:4:96","nodeType":"VariableDeclaration","scope":56977,"src":"4455:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56907,"name":"address","nodeType":"ElementaryTypeName","src":"4455:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56910,"mutability":"mutable","name":"data","nameLocation":"4482:4:96","nodeType":"VariableDeclaration","scope":56977,"src":"4469:17:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56909,"name":"bytes","nodeType":"ElementaryTypeName","src":"4469:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4454:33:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57005,"nodeType":"FunctionDefinition","src":"4828:213:96","nodes":[],"body":{"id":57004,"nodeType":"Block","src":"4902:139:96","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":56985,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56979,"src":"4920:2:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4923:6:96","memberName":"length","nodeType":"MemberAccess","src":"4920:9:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":56987,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56981,"src":"4933:2:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4936:6:96","memberName":"length","nodeType":"MemberAccess","src":"4933:9:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4920:22:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6279746573206c656e206e6f7420657175616c","id":56990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4944:21:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_2de6bd869d85e0de7044fd7872e60b4dfafaf91b20036b02d3aaa70266de00f8","typeString":"literal_string \"bytes len not equal\""},"value":"bytes len not equal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2de6bd869d85e0de7044fd7872e60b4dfafaf91b20036b02d3aaa70266de00f8","typeString":"literal_string \"bytes len not equal\""}],"id":56984,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4912:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4912:54:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56992,"nodeType":"ExpressionStatement","src":"4912:54:96"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":57000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":56995,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56979,"src":"4994:2:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56994,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4984:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4984:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":56998,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56981,"src":"5011:2:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5001:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5001:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4984:30:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6279746573206e6f7420657175616c","id":57001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5016:17:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11837872e6282a7a5c3e38defc117597d04d25c721765e78ecdd143346d41ed","typeString":"literal_string \"bytes not equal\""},"value":"bytes not equal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11837872e6282a7a5c3e38defc117597d04d25c721765e78ecdd143346d41ed","typeString":"literal_string \"bytes not equal\""}],"id":56993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4976:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4976:58:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57003,"nodeType":"ExpressionStatement","src":"4976:58:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"ensureBytesEqual","nameLocation":"4837:16:96","parameters":{"id":56982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56979,"mutability":"mutable","name":"_a","nameLocation":"4867:2:96","nodeType":"VariableDeclaration","scope":57005,"src":"4854:15:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56978,"name":"bytes","nodeType":"ElementaryTypeName","src":"4854:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":56981,"mutability":"mutable","name":"_b","nameLocation":"4884:2:96","nodeType":"VariableDeclaration","scope":57005,"src":"4871:15:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56980,"name":"bytes","nodeType":"ElementaryTypeName","src":"4871:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4853:34:96"},"returnParameters":{"id":56983,"nodeType":"ParameterList","parameters":[],"src":"4902:0:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57050,"nodeType":"FunctionDefinition","src":"5098:339:96","nodes":[],"body":{"id":57049,"nodeType":"Block","src":"5247:190:96","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57017,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57008,"src":"5265:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5272:6:96","memberName":"length","nodeType":"MemberAccess","src":"5265:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57019,"name":"array2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57011,"src":"5282:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5289:6:96","memberName":"length","nodeType":"MemberAccess","src":"5282:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5265:30:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":57022,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57013,"src":"5297:12:96","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":57016,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5257:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5257:53:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57024,"nodeType":"ExpressionStatement","src":"5257:53:96"},{"body":{"id":57047,"nodeType":"Block","src":"5361:70:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":57043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":57037,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57008,"src":"5383:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57039,"indexExpression":{"id":57038,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57026,"src":"5390:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5383:9:96","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":57040,"name":"array2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57011,"src":"5396:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57042,"indexExpression":{"id":57041,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57026,"src":"5403:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5396:9:96","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5383:22:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":57044,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57013,"src":"5407:12:96","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":57036,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5375:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:45:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57046,"nodeType":"ExpressionStatement","src":"5375:45:96"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57029,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57026,"src":"5337:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":57030,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57008,"src":"5341:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:6:96","memberName":"length","nodeType":"MemberAccess","src":"5341:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5337:17:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57048,"initializationExpression":{"assignments":[57026],"declarations":[{"constant":false,"id":57026,"mutability":"mutable","name":"i","nameLocation":"5330:1:96","nodeType":"VariableDeclaration","scope":57048,"src":"5325:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57025,"name":"uint","nodeType":"ElementaryTypeName","src":"5325:4:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57028,"initialValue":{"hexValue":"30","id":57027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5334:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5325:10:96"},"loopExpression":{"expression":{"id":57034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5356:3:96","subExpression":{"id":57033,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57026,"src":"5356:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57035,"nodeType":"ExpressionStatement","src":"5356:3:96"},"nodeType":"ForStatement","src":"5320:111:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateBytes4Array","nameLocation":"5107:19:96","parameters":{"id":57014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57008,"mutability":"mutable","name":"array1","nameLocation":"5152:6:96","nodeType":"VariableDeclaration","scope":57050,"src":"5136:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":57006,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5136:6:96","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":57007,"nodeType":"ArrayTypeName","src":"5136:8:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":57011,"mutability":"mutable","name":"array2","nameLocation":"5184:6:96","nodeType":"VariableDeclaration","scope":57050,"src":"5168:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":57009,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5168:6:96","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":57010,"nodeType":"ArrayTypeName","src":"5168:8:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":57013,"mutability":"mutable","name":"errorMessage","nameLocation":"5214:12:96","nodeType":"VariableDeclaration","scope":57050,"src":"5200:26:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":57012,"name":"string","nodeType":"ElementaryTypeName","src":"5200:6:96","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5126:106:96"},"returnParameters":{"id":57015,"nodeType":"ParameterList","parameters":[],"src":"5247:0:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[57051],"name":"TestUtils","nameLocation":"171:9:96","scope":57052,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":96} \ No newline at end of file +{"abi":[{"type":"function","name":"AA","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BB","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"GX","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"GY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"PP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"derivePubKey","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"derivePubKeyBytes","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"deriveValidatorPubKeyBytes","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a5761072e9081610020823930815050f35b600080fdfe60806040818152600436101561001457600080fd5b600091823560e01c90816303a507be146101dd575080635727dc5c146101c7578063573081a2146101775780637a308a4c14610142578063997da8d41461012d578063bc9e2bcf14610104578063eeeac01e146100e95763f6caf0ac1461007a57600080fd5b60203660031901126100e55761009160043561025b565b8291925192602084015281830152808252606082019282841067ffffffffffffffff8511176100d15750829052605f19906100cc8184610212565b030190f35b634e487b7160e01b81526041600452602490fd5b5080fd5b50816003193601126100e557516401000003d0198152602090f35b5090602036600319011261012a575061011e60043561025b565b82519182526020820152f35b80fd5b50816003193601126100e55751908152602090f35b50816003193601126100e557602090517f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b88152f35b5060203660031901126100e5576101c39061019360043561025b565b8291925192600160fa1b602085015260218401526041830152604182526101b98261041c565b5191829182610212565b0390f35b50816003193601126100e5576020905160078152f35b8390816003193601126100e557807f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860209252f35b6020808252825181830181905290939260005b82811061024757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610225565b61026490610372565b9291908315158481610361575b5080610359575b156103235760009360016401000003d019825b6102b8575050506401000003d01984800991826401000003d0199109936401000003d01992839109900990565b91959091868104916401000003d0198484096401000003d019036401000003d019811161030d576401000003d01991089296809281810291818304149015171561030d57810390811161030d5791908261028b565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b6044820152606490fd5b506001610278565b6401000003d0191415905038610271565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798917f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b86001928015610417576000948592918590805b6103d55750505050929190565b600181166103f9575b906103ee9160011c938493610639565b9093919290916103c8565b9390838382986103ee9a61040c9561044e565b9097509590936103de565b509190565b6080810190811067ffffffffffffffff82111761043857604052565b634e487b7160e01b600052604160045260246000fd5b909295939194811580610631575b6106275786158061061f575b6106155760409283519461047b8661041c565b60803687376401000003d0199586898009928382528760208301948b09845287858009928783019684885289606085019588098552885197608089019289841067ffffffffffffffff85111761043857928a52518a928392839283910996878b525190099c8d9460208a019e8f525190099188880195838752519009906060870193828552149182159261060a575b5050156105c65784519161051d8361041c565b6080368437518451870387811161030d578791088252518851860386811161030d57869108936020820194808652868351818180099385019380855209916060840192808452880388811161030d578880885184519009600209890389811161030d5789809492818481950908089651955190519009988587039187831161030d578791519051900986039086821161030d57869485809492819351989c089009089509900990565b845162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e737465616400006044820152606490fd5b14159050388061050a565b5091945050929190565b508215610468565b9194509092915050565b50831561045c565b92909180156106f5576401000003d01990818480098282800990838080838a0960040997818080806000978009870992800960030908908488800885038581116106e15785908184800908808603918683116106cd5786818192096008098603938685116106b95750859493919285809481939b08900908940960020990565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b84526011600452602484fd5b9056fea26469706673582212209cf69af28d79ee32cab80ff0f42b68090f51611093df0f7bebecdee26743452b64736f6c63430008130033","sourceMap":"163:5276:99:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600436101561001457600080fd5b600091823560e01c90816303a507be146101dd575080635727dc5c146101c7578063573081a2146101775780637a308a4c14610142578063997da8d41461012d578063bc9e2bcf14610104578063eeeac01e146100e95763f6caf0ac1461007a57600080fd5b60203660031901126100e55761009160043561025b565b8291925192602084015281830152808252606082019282841067ffffffffffffffff8511176100d15750829052605f19906100cc8184610212565b030190f35b634e487b7160e01b81526041600452602490fd5b5080fd5b50816003193601126100e557516401000003d0198152602090f35b5090602036600319011261012a575061011e60043561025b565b82519182526020820152f35b80fd5b50816003193601126100e55751908152602090f35b50816003193601126100e557602090517f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b88152f35b5060203660031901126100e5576101c39061019360043561025b565b8291925192600160fa1b602085015260218401526041830152604182526101b98261041c565b5191829182610212565b0390f35b50816003193601126100e5576020905160078152f35b8390816003193601126100e557807f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860209252f35b6020808252825181830181905290939260005b82811061024757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610225565b61026490610372565b9291908315158481610361575b5080610359575b156103235760009360016401000003d019825b6102b8575050506401000003d01984800991826401000003d0199109936401000003d01992839109900990565b91959091868104916401000003d0198484096401000003d019036401000003d019811161030d576401000003d01991089296809281810291818304149015171561030d57810390811161030d5791908261028b565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b6044820152606490fd5b506001610278565b6401000003d0191415905038610271565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798917f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b86001928015610417576000948592918590805b6103d55750505050929190565b600181166103f9575b906103ee9160011c938493610639565b9093919290916103c8565b9390838382986103ee9a61040c9561044e565b9097509590936103de565b509190565b6080810190811067ffffffffffffffff82111761043857604052565b634e487b7160e01b600052604160045260246000fd5b909295939194811580610631575b6106275786158061061f575b6106155760409283519461047b8661041c565b60803687376401000003d0199586898009928382528760208301948b09845287858009928783019684885289606085019588098552885197608089019289841067ffffffffffffffff85111761043857928a52518a928392839283910996878b525190099c8d9460208a019e8f525190099188880195838752519009906060870193828552149182159261060a575b5050156105c65784519161051d8361041c565b6080368437518451870387811161030d578791088252518851860386811161030d57869108936020820194808652868351818180099385019380855209916060840192808452880388811161030d578880885184519009600209890389811161030d5789809492818481950908089651955190519009988587039187831161030d578791519051900986039086821161030d57869485809492819351989c089009089509900990565b845162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e737465616400006044820152606490fd5b14159050388061050a565b5091945050929190565b508215610468565b9194509092915050565b50831561045c565b92909180156106f5576401000003d01990818480098282800990838080838a0960040997818080806000978009870992800960030908908488800885038581116106e15785908184800908808603918683116106cd5786818192096008098603938685116106b95750859493919285809481939b08900908940960020990565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b84526011600452602484fd5b9056fea26469706673582212209cf69af28d79ee32cab80ff0f42b68090f51611093df0f7bebecdee26743452b64736f6c63430008130033","sourceMap":"163:5276:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;163:5276:99;;;;843:44;163:5276;;843:44;:::i;:::-;163:5276;;;;904:28;163:5276;904:28;;163:5276;;;;;904:28;;;163:5276;;;;;;;;;;;;;-1:-1:-1;163:5276:99;;;-1:-1:-1;;163:5276:99;;;;;:::i;:::-;;;;;;-1:-1:-1;;;163:5276:99;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;163:5276:99;;;;;;-1:-1:-1;163:5276:99;;;-1:-1:-1;;163:5276:99;;;;;660:44;163:5276;;660:44;:::i;:::-;163:5276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:66;163:5276;;;;-1:-1:-1;163:5276:99;;-1:-1:-1;;163:5276:99;;;;;;1080:44;163:5276;;1080:44;:::i;:::-;163:5276;;;;;;;;;1245:46;;163:5276;;;;;;;;;;1245:46;;;;;:::i;:::-;163:5276;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;454:1;163:5276;;;;;;;;;;;;;;;216:66;163:5276;;;;;;;;;;;;;;;;;;;;-1:-1:-1;163:5276:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;8046:405:0;8341:31;8046:405;8341:31;:::i;:::-;3213:15;;;842:7;;;3213:15;842:7;:20;;8046:405;842:32;;;;8046:405;163:5276:99;;;;;8360:1:0;-1:-1:-1;;926:16:0;1003:7;;;490:66:99;;;;;3254:23:0;;;490:66:99;;;;3300:22:0;;490:66:99;-1:-1:-1;;490:66:99;;;3356:24:0;3345:41;;8046:405;:::o;996:169::-;163:5276:99;;;;;;;;-1:-1:-1;;163:5276:99;;1086:20:0;490:66:99;;163:5276;490:66;;163:5276;;;;-1:-1:-1;;490:66:99;1069:44:0;1050:64;1138:16;;163:5276:99;;;;;;;;;;;;;;;;;;;;;;1128:26:0;;;996:169;;163:5276:99;;;;;;;;;;;;;;;-1:-1:-1;;;163:5276:99;;;;;;;;;;;;-1:-1:-1;;;163:5276:99;;;;;;;842:32:0;;8360:1;842:32;;:20;-1:-1:-1;;853:9:0;;;-1:-1:-1;842:20:0;;;12886:800;216:66:99;12886:800:0;317:66:99;8360:1:0;13192:7;;;13188:57;;163:5276:99;;;;13255:22:0;;;;13403:14;;;13660:19;;;;;;12886:800;:::o;13396:255::-;8360:1;13438:13;;13433:109;;13396:255;163:5276:99;13609:31:0;163:5276:99;8360:1:0;163:5276:99;13609:31:0;;;;:::i;:::-;13594:46;;;;;;13396:255;;13433:109;13492:35;;;;;;13609:31;13492:35;;;;:::i;:::-;13477:50;;-1:-1:-1;13477:50:0;;;13433:109;;13188:57;13215:19;;;:::o;163:5276:99:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;8838:1966:0;;;;;;;9126:8;;:20;;;8838:1966;9122:48;;9184:8;;:20;;;8838:1966;9180:48;;163:5276:99;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;490:66:99;;9437:21:0;;;163:5276:99;;;;;;;;9476:23:0;;;163:5276:99;;9517:21:0;;;;163:5276:99;;;;;;;;;;;;9556:23:0;;;163:5276:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9635:23:0;163:5276:99;;;;;9672:23:0;;9621:158;;;163:5276:99;9621:158:0;;163:5276:99;;;;9709:23:0;;9621:158;;;;163:5276:99;;;;;9746:23:0;;9621:158;163:5276:99;9621:158:0;;163:5276:99;;;;9898:14:0;;;;:32;;;8838:1966;163:5276:99;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;10044:31:0;;;163:5276:99;;;;;;;;;;;;10105:31:0;;;163:5276:99;;;;;;;;;;;10168:25:0;;;;163:5276:99;;;;;;;10226:25:0;163:5276:99;;;;;;;;;;;;;;;;;;;;;10401:25:0;;9512:1;10391:41;163:5276:99;;;;;;;10315:25:0;;;;;;;;;10308:51;10374:64;163:5276:99;;;;;;10549:25:0;;163:5276:99;;;;;;;;;;;;;;;10649:25:0;;163:5276:99;;;;;;;;;;;;;;;;;10778:19:0;10542:48;;10503:114;;10632:48;10741:21;;10727:41;;8838:1966;:::o;163:5276:99:-;;;-1:-1:-1;;;163:5276:99;;;;;;;;;;;;;;;;;;;;9898:32:0;9916:14;;;-1:-1:-1;9898:32:0;;;;9180:48;9206:22;;;;;;;;:::o;9184:20::-;9196:8;;;9184:20;;9122:48;9148:22;;-1:-1:-1;9148:22:0;;;-1:-1:-1;;9148:22:0:o;9126:20::-;9138:8;;;9126:20;;11091:1480;;;;11329:7;;11325:32;;-1:-1:-1;;490:66:99;;11726:19:0;;;11774;;;;11843:18;;;;;;;11840:1;11833:34;-1:-1:-1;;;;;;11962:17:0;;;11950:35;;11678:19;;;11926:1;11919:17;11899:113;12255:17;;;;;163:5276:99;;;;;;;12230:17:0;;;;;;12223:55;163:5276:99;;;;;;;;;12414:17:0;;;;;12411:1;12404:33;163:5276:99;;;;;;;;12548:16:0;;;;;;;;;;;12355:23;;12345:39;;12325:139;12512:19;;12509:1;12502:35;11091:1480;:::o;163:5276:99:-;-1:-1:-1;;;163:5276:99;;;11840:1:0;163:5276:99;;;;;-1:-1:-1;;;163:5276:99;;;11840:1:0;163:5276:99;;;;;-1:-1:-1;;;163:5276:99;;;11840:1:0;163:5276:99;;;;11325:32:0;11338:19;:::o","linkReferences":{}},"methodIdentifiers":{"AA()":"997da8d4","BB()":"5727dc5c","GX()":"03a507be","GY()":"7a308a4c","PP()":"eeeac01e","derivePubKey(uint256)":"bc9e2bcf","derivePubKeyBytes(uint256)":"f6caf0ac","deriveValidatorPubKeyBytes(uint256)":"573081a2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AA\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"derivePubKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"derivePubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"deriveValidatorPubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/TestUtils.sol\":\"TestUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"AA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"GX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"GY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"derivePubKey","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"derivePubKeyBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"deriveValidatorPubKeyBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/TestUtils.sol":"TestUtils"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/TestUtils.sol","id":57425,"exportedSymbols":{"DSTest":[3720],"EllipticCurve":[1129],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"Test":[12740],"TestBase":[3780],"TestUtils":[57424],"Vm":[14222],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:5394:99","nodes":[{"id":56638,"nodeType":"PragmaDirective","src":"46:23:99","nodes":[],"literals":["solidity","0.8",".19"]},{"id":56639,"nodeType":"ImportDirective","src":"71:28:99","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":57425,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":56640,"nodeType":"ImportDirective","src":"100:61:99","nodes":[],"absolutePath":"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol","file":"elliptic-curve-solidity/contracts/EllipticCurve.sol","nameLocation":"-1:-1:-1","scope":57425,"sourceUnit":1130,"symbolAliases":[],"unitAlias":""},{"id":57424,"nodeType":"ContractDefinition","src":"163:5276:99","nodes":[{"id":56643,"nodeType":"VariableDeclaration","src":"187:95:99","nodes":[],"constant":true,"functionSelector":"03a507be","mutability":"constant","name":"GX","nameLocation":"211:2:99","scope":57424,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56641,"name":"uint256","nodeType":"ElementaryTypeName","src":"187:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307837394245363637454639444342424143353541303632393543453837304230373032394246434442324443453238443935394632383135423136463831373938","id":56642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216:66:99","typeDescriptions":{"typeIdentifier":"t_rational_55066263022277343669578718895168534326250603453777594175500187360389116729240_by_1","typeString":"int_const 5506...(69 digits omitted)...9240"},"value":"0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798"},"visibility":"public"},{"id":56646,"nodeType":"VariableDeclaration","src":"288:95:99","nodes":[],"constant":true,"functionSelector":"7a308a4c","mutability":"constant","name":"GY","nameLocation":"312:2:99","scope":57424,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56644,"name":"uint256","nodeType":"ElementaryTypeName","src":"288:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307834383341444137373236413343343635354441344642464330453131303841384644313742343438413638353534313939433437443038464642313044344238","id":56645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"317:66:99","typeDescriptions":{"typeIdentifier":"t_rational_32670510020758816978083085130507043184471273380659243275938904335757337482424_by_1","typeString":"int_const 3267...(69 digits omitted)...2424"},"value":"0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8"},"visibility":"public"},{"id":56649,"nodeType":"VariableDeclaration","src":"389:30:99","nodes":[],"constant":true,"functionSelector":"997da8d4","mutability":"constant","name":"AA","nameLocation":"413:2:99","scope":57424,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56647,"name":"uint256","nodeType":"ElementaryTypeName","src":"389:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":56648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"418:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":56652,"nodeType":"VariableDeclaration","src":"425:30:99","nodes":[],"constant":true,"functionSelector":"5727dc5c","mutability":"constant","name":"BB","nameLocation":"449:2:99","scope":57424,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56650,"name":"uint256","nodeType":"ElementaryTypeName","src":"425:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":56651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"454:1:99","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"public"},{"id":56655,"nodeType":"VariableDeclaration","src":"461:95:99","nodes":[],"constant":true,"functionSelector":"eeeac01e","mutability":"constant","name":"PP","nameLocation":"485:2:99","scope":57424,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56653,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646454646464646433246","id":56654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"490:66:99","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007908834671663_by_1","typeString":"int_const 1157...(70 digits omitted)...1663"},"value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F"},"visibility":"public"},{"id":56674,"nodeType":"FunctionDefinition","src":"563:148:99","nodes":[],"body":{"id":56673,"nodeType":"Block","src":"643:68:99","nodes":[],"statements":[{"expression":{"arguments":[{"id":56666,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56657,"src":"680:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56667,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56643,"src":"689:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56668,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56646,"src":"693:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56669,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56649,"src":"697:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56670,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56655,"src":"701:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56664,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"660:13:99","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":56665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"674:5:99","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"660:19:99","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":56671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"660:44:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":56663,"id":56672,"nodeType":"Return","src":"653:51:99"}]},"functionSelector":"bc9e2bcf","implemented":true,"kind":"function","modifiers":[],"name":"derivePubKey","nameLocation":"572:12:99","parameters":{"id":56658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56657,"mutability":"mutable","name":"privKey","nameLocation":"593:7:99","nodeType":"VariableDeclaration","scope":56674,"src":"585:15:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56656,"name":"uint256","nodeType":"ElementaryTypeName","src":"585:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"584:17:99"},"returnParameters":{"id":56663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56674,"src":"625:7:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56659,"name":"uint256","nodeType":"ElementaryTypeName","src":"625:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56674,"src":"634:7:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56661,"name":"uint256","nodeType":"ElementaryTypeName","src":"634:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"624:18:99"},"scope":57424,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":56701,"nodeType":"FunctionDefinition","src":"717:222:99","nodes":[],"body":{"id":56700,"nodeType":"Block","src":"796:143:99","nodes":[],"statements":[{"assignments":[56682,56684],"declarations":[{"constant":false,"id":56682,"mutability":"mutable","name":"pubKeyX","nameLocation":"815:7:99","nodeType":"VariableDeclaration","scope":56700,"src":"807:15:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56681,"name":"uint256","nodeType":"ElementaryTypeName","src":"807:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56684,"mutability":"mutable","name":"pubKeyY","nameLocation":"832:7:99","nodeType":"VariableDeclaration","scope":56700,"src":"824:15:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56683,"name":"uint256","nodeType":"ElementaryTypeName","src":"824:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56693,"initialValue":{"arguments":[{"id":56687,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56676,"src":"863:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56688,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56643,"src":"872:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56689,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56646,"src":"876:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56690,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56649,"src":"880:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56691,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56655,"src":"884:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56685,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"843:13:99","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":56686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"857:5:99","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"843:19:99","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":56692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"843:44:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"806:81:99"},{"expression":{"arguments":[{"id":56696,"name":"pubKeyX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56682,"src":"915:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56697,"name":"pubKeyY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56684,"src":"924:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56694,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"904:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"908:6:99","memberName":"encode","nodeType":"MemberAccess","src":"904:10:99","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"904:28:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":56680,"id":56699,"nodeType":"Return","src":"897:35:99"}]},"functionSelector":"f6caf0ac","implemented":true,"kind":"function","modifiers":[],"name":"derivePubKeyBytes","nameLocation":"726:17:99","parameters":{"id":56677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56676,"mutability":"mutable","name":"privKey","nameLocation":"752:7:99","nodeType":"VariableDeclaration","scope":56701,"src":"744:15:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56675,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"743:17:99"},"returnParameters":{"id":56680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56701,"src":"782:12:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56678,"name":"bytes","nodeType":"ElementaryTypeName","src":"782:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"781:14:99"},"scope":57424,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":56732,"nodeType":"FunctionDefinition","src":"945:353:99","nodes":[],"body":{"id":56731,"nodeType":"Block","src":"1033:265:99","nodes":[],"statements":[{"assignments":[56709,56711],"declarations":[{"constant":false,"id":56709,"mutability":"mutable","name":"pubKeyX","nameLocation":"1052:7:99","nodeType":"VariableDeclaration","scope":56731,"src":"1044:15:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56708,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56711,"mutability":"mutable","name":"pubKeyY","nameLocation":"1069:7:99","nodeType":"VariableDeclaration","scope":56731,"src":"1061:15:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56710,"name":"uint256","nodeType":"ElementaryTypeName","src":"1061:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56720,"initialValue":{"arguments":[{"id":56714,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56703,"src":"1100:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56715,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56643,"src":"1109:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56716,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56646,"src":"1113:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56717,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56649,"src":"1117:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56718,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56655,"src":"1121:2:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56712,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"1080:13:99","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":56713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1094:5:99","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"1080:19:99","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":56719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1080:44:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1043:81:99"},{"expression":{"arguments":[{"arguments":[{"hexValue":"307834","id":56725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1268:3:99","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:5:99","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":56723,"name":"uint8","nodeType":"ElementaryTypeName","src":"1262:5:99","typeDescriptions":{}}},"id":56726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:10:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":56727,"name":"pubKeyX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56709,"src":"1274:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56728,"name":"pubKeyY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56711,"src":"1283:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1245:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1249:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"1245:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1245:46:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":56707,"id":56730,"nodeType":"Return","src":"1238:53:99"}]},"functionSelector":"573081a2","implemented":true,"kind":"function","modifiers":[],"name":"deriveValidatorPubKeyBytes","nameLocation":"954:26:99","parameters":{"id":56704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56703,"mutability":"mutable","name":"privKey","nameLocation":"989:7:99","nodeType":"VariableDeclaration","scope":56732,"src":"981:15:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56702,"name":"uint256","nodeType":"ElementaryTypeName","src":"981:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"980:17:99"},"returnParameters":{"id":56707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56732,"src":"1019:12:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56705,"name":"bytes","nodeType":"ElementaryTypeName","src":"1019:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1018:14:99"},"scope":57424,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":56920,"nodeType":"FunctionDefinition","src":"1304:934:99","nodes":[],"body":{"id":56919,"nodeType":"Block","src":"1456:782:99","nodes":[],"statements":[{"expression":{"id":56753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56747,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"1466:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1496:1:99","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1482:13:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56748,"name":"uint256","nodeType":"ElementaryTypeName","src":"1486:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56749,"nodeType":"ArrayTypeName","src":"1486:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:16:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"1466:32:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56754,"nodeType":"ExpressionStatement","src":"1466:32:99"},{"expression":{"id":56759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56755,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"1508:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56757,"indexExpression":{"hexValue":"30","id":56756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1522:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1508:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1527:3:99","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1508:22:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56760,"nodeType":"ExpressionStatement","src":"1508:22:99"},{"expression":{"id":56765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56761,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"1540:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56763,"indexExpression":{"hexValue":"31","id":56762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1554:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1540:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323030","id":56764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1559:3:99","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"1540:22:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56766,"nodeType":"ExpressionStatement","src":"1540:22:99"},{"expression":{"id":56771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56767,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"1572:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56769,"indexExpression":{"hexValue":"32","id":56768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1586:1:99","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1572:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333030","id":56770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1591:3:99","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"1572:22:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56772,"nodeType":"ExpressionStatement","src":"1572:22:99"},{"expression":{"id":56777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56773,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"1604:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56775,"indexExpression":{"hexValue":"33","id":56774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1618:1:99","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1604:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"343030","id":56776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1623:3:99","typeDescriptions":{"typeIdentifier":"t_rational_400_by_1","typeString":"int_const 400"},"value":"400"},"src":"1604:22:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56778,"nodeType":"ExpressionStatement","src":"1604:22:99"},{"expression":{"id":56785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56779,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56742,"src":"1637:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1663:1:99","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1649:13:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":56780,"name":"address","nodeType":"ElementaryTypeName","src":"1653:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56781,"nodeType":"ArrayTypeName","src":"1653:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":56784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1649:16:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"1637:28:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56786,"nodeType":"ExpressionStatement","src":"1637:28:99"},{"expression":{"id":56796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56787,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56742,"src":"1675:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56789,"indexExpression":{"hexValue":"30","id":56788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1685:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1675:12:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56792,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"1698:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56794,"indexExpression":{"hexValue":"30","id":56793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1712:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1698:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56790,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"1690:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1693:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1690:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1690:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1675:40:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56797,"nodeType":"ExpressionStatement","src":"1675:40:99"},{"expression":{"id":56807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56798,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56742,"src":"1725:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56800,"indexExpression":{"hexValue":"31","id":56799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1725:12:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56803,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"1748:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56805,"indexExpression":{"hexValue":"31","id":56804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1762:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1748:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56801,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"1740:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1743:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1740:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1740:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1725:40:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56808,"nodeType":"ExpressionStatement","src":"1725:40:99"},{"expression":{"id":56818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56809,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56742,"src":"1775:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56811,"indexExpression":{"hexValue":"32","id":56810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1785:1:99","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1775:12:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56814,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"1798:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56816,"indexExpression":{"hexValue":"32","id":56815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1812:1:99","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1798:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56812,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"1790:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1793:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1790:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1775:40:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56819,"nodeType":"ExpressionStatement","src":"1775:40:99"},{"expression":{"id":56829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56820,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56742,"src":"1825:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56822,"indexExpression":{"hexValue":"33","id":56821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1835:1:99","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1825:12:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56825,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"1848:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56827,"indexExpression":{"hexValue":"33","id":56826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1862:1:99","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1848:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56823,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"1840:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1843:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1840:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1840:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1825:40:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56830,"nodeType":"ExpressionStatement","src":"1825:40:99"},{"expression":{"id":56837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56831,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56745,"src":"1876:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1900:1:99","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1886:13:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56832,"name":"uint256","nodeType":"ElementaryTypeName","src":"1890:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56833,"nodeType":"ArrayTypeName","src":"1890:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1886:16:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"1876:26:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56838,"nodeType":"ExpressionStatement","src":"1876:26:99"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56844,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"1928:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56846,"indexExpression":{"hexValue":"30","id":56845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1942:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1928:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56842,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"1920:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1923:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1920:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1947:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56839,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"1912:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1915:4:99","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"1912:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:37:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56850,"nodeType":"ExpressionStatement","src":"1912:37:99"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56856,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"1975:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56858,"indexExpression":{"hexValue":"31","id":56857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1989:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1975:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56854,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"1967:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1970:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1967:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1967:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1994:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56851,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"1959:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1962:4:99","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"1959:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1959:37:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56862,"nodeType":"ExpressionStatement","src":"1959:37:99"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56868,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"2022:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56870,"indexExpression":{"hexValue":"32","id":56869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2036:1:99","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2022:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56866,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"2014:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2017:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2014:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2014:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2041:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56863,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"2006:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2009:4:99","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2006:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2006:37:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56874,"nodeType":"ExpressionStatement","src":"2006:37:99"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56880,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56739,"src":"2069:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56882,"indexExpression":{"hexValue":"33","id":56881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2083:1:99","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2069:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56878,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"2061:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2064:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2061:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2061:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2088:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56875,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56735,"src":"2053:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2056:4:99","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2053:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2053:37:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56886,"nodeType":"ExpressionStatement","src":"2053:37:99"},{"expression":{"id":56893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56887,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56745,"src":"2101:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2125:1:99","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2111:13:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56888,"name":"uint256","nodeType":"ElementaryTypeName","src":"2115:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56889,"nodeType":"ArrayTypeName","src":"2115:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:16:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2101:26:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56894,"nodeType":"ExpressionStatement","src":"2101:26:99"},{"expression":{"id":56899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56895,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56745,"src":"2137:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56897,"indexExpression":{"hexValue":"30","id":56896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2145:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2137:10:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2150:3:99","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2137:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56900,"nodeType":"ExpressionStatement","src":"2137:16:99"},{"expression":{"id":56905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56901,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56745,"src":"2163:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56903,"indexExpression":{"hexValue":"31","id":56902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2171:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2163:10:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2176:3:99","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2163:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56906,"nodeType":"ExpressionStatement","src":"2163:16:99"},{"expression":{"id":56911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56907,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56745,"src":"2189:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56909,"indexExpression":{"hexValue":"32","id":56908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2197:1:99","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2189:10:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:3:99","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2189:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56912,"nodeType":"ExpressionStatement","src":"2189:16:99"},{"expression":{"id":56917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56913,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56745,"src":"2215:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56915,"indexExpression":{"hexValue":"33","id":56914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2223:1:99","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2215:10:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2228:3:99","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2215:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56918,"nodeType":"ExpressionStatement","src":"2215:16:99"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getFourValidators","nameLocation":"1313:17:99","parameters":{"id":56736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56735,"mutability":"mutable","name":"vm","nameLocation":"1343:2:99","nodeType":"VariableDeclaration","scope":56920,"src":"1340:5:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},"typeName":{"id":56734,"nodeType":"UserDefinedTypeName","pathNode":{"id":56733,"name":"Vm","nameLocations":["1340:2:99"],"nodeType":"IdentifierPath","referencedDeclaration":14222,"src":"1340:2:99"},"referencedDeclaration":14222,"src":"1340:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"visibility":"internal"}],"src":"1330:21:99"},"returnParameters":{"id":56746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56739,"mutability":"mutable","name":"validatorKeys","nameLocation":"1387:13:99","nodeType":"VariableDeclaration","scope":56920,"src":"1370:30:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56737,"name":"uint256","nodeType":"ElementaryTypeName","src":"1370:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56738,"nodeType":"ArrayTypeName","src":"1370:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":56742,"mutability":"mutable","name":"addresses","nameLocation":"1419:9:99","nodeType":"VariableDeclaration","scope":56920,"src":"1402:26:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56740,"name":"address","nodeType":"ElementaryTypeName","src":"1402:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56741,"nodeType":"ArrayTypeName","src":"1402:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":56745,"mutability":"mutable","name":"weights","nameLocation":"1447:7:99","nodeType":"VariableDeclaration","scope":56920,"src":"1430:24:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56743,"name":"uint256","nodeType":"ElementaryTypeName","src":"1430:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56744,"nodeType":"ArrayTypeName","src":"1430:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1369:86:99"},"scope":57424,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57073,"nodeType":"FunctionDefinition","src":"2244:780:99","nodes":[],"body":{"id":57072,"nodeType":"Block","src":"2397:627:99","nodes":[],"statements":[{"expression":{"id":56941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56935,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56927,"src":"2407:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":56939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2437:1:99","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":56938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2423:13:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56936,"name":"uint256","nodeType":"ElementaryTypeName","src":"2427:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56937,"nodeType":"ArrayTypeName","src":"2427:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2423:16:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2407:32:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56942,"nodeType":"ExpressionStatement","src":"2407:32:99"},{"expression":{"id":56947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56943,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56927,"src":"2449:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56945,"indexExpression":{"hexValue":"30","id":56944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2463:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2449:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2468:3:99","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2449:22:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56948,"nodeType":"ExpressionStatement","src":"2449:22:99"},{"expression":{"id":56953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56949,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56927,"src":"2481:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56951,"indexExpression":{"hexValue":"31","id":56950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2481:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323030","id":56952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2500:3:99","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"2481:22:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56954,"nodeType":"ExpressionStatement","src":"2481:22:99"},{"expression":{"id":56959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56955,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56927,"src":"2513:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56957,"indexExpression":{"hexValue":"32","id":56956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2527:1:99","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2513:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333030","id":56958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2532:3:99","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"2513:22:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56960,"nodeType":"ExpressionStatement","src":"2513:22:99"},{"expression":{"id":56967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56961,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56930,"src":"2546:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":56965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2572:1:99","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":56964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2558:13:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":56962,"name":"address","nodeType":"ElementaryTypeName","src":"2562:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56963,"nodeType":"ArrayTypeName","src":"2562:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":56966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2558:16:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2546:28:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56968,"nodeType":"ExpressionStatement","src":"2546:28:99"},{"expression":{"id":56978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56969,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56930,"src":"2584:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56971,"indexExpression":{"hexValue":"30","id":56970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2594:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2584:12:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56974,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56927,"src":"2607:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56976,"indexExpression":{"hexValue":"30","id":56975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2621:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2607:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56972,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56923,"src":"2599:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2602:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2599:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2599:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2584:40:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56979,"nodeType":"ExpressionStatement","src":"2584:40:99"},{"expression":{"id":56989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56980,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56930,"src":"2634:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56982,"indexExpression":{"hexValue":"31","id":56981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2644:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2634:12:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56985,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56927,"src":"2657:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56987,"indexExpression":{"hexValue":"31","id":56986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2671:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2657:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56983,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56923,"src":"2649:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2652:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2649:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2649:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2634:40:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56990,"nodeType":"ExpressionStatement","src":"2634:40:99"},{"expression":{"id":57000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56991,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56930,"src":"2684:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56993,"indexExpression":{"hexValue":"32","id":56992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2694:1:99","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2684:12:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56996,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56927,"src":"2707:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56998,"indexExpression":{"hexValue":"32","id":56997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2721:1:99","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2707:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56994,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56923,"src":"2699:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2702:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2699:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2699:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2684:40:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57001,"nodeType":"ExpressionStatement","src":"2684:40:99"},{"expression":{"id":57008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57002,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56933,"src":"2735:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":57006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2759:1:99","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":57005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2745:13:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":57003,"name":"uint256","nodeType":"ElementaryTypeName","src":"2749:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57004,"nodeType":"ArrayTypeName","src":"2749:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":57007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2745:16:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2735:26:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57009,"nodeType":"ExpressionStatement","src":"2735:26:99"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":57015,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56927,"src":"2787:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57017,"indexExpression":{"hexValue":"30","id":57016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2801:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2787:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57013,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56923,"src":"2779:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2782:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2779:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":57019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":57010,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56923,"src":"2771:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2774:4:99","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2771:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":57020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2771:37:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57021,"nodeType":"ExpressionStatement","src":"2771:37:99"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":57027,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56927,"src":"2834:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57029,"indexExpression":{"hexValue":"31","id":57028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2848:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2834:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57025,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56923,"src":"2826:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2829:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2826:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2826:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":57031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2853:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":57022,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56923,"src":"2818:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2821:4:99","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2818:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":57032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:37:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57033,"nodeType":"ExpressionStatement","src":"2818:37:99"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":57039,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56927,"src":"2881:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57041,"indexExpression":{"hexValue":"32","id":57040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2895:1:99","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2881:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57037,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56923,"src":"2873:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2876:4:99","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2873:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2873:25:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":57043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2900:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":57034,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56923,"src":"2865:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2868:4:99","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2865:7:99","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":57044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2865:37:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57045,"nodeType":"ExpressionStatement","src":"2865:37:99"},{"expression":{"id":57052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57046,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56933,"src":"2913:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":57050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2937:1:99","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":57049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2923:13:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":57047,"name":"uint256","nodeType":"ElementaryTypeName","src":"2927:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57048,"nodeType":"ArrayTypeName","src":"2927:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":57051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:16:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2913:26:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57053,"nodeType":"ExpressionStatement","src":"2913:26:99"},{"expression":{"id":57058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57054,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56933,"src":"2949:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57056,"indexExpression":{"hexValue":"30","id":57055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2957:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2949:10:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":57057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2962:3:99","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2949:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57059,"nodeType":"ExpressionStatement","src":"2949:16:99"},{"expression":{"id":57064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57060,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56933,"src":"2975:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57062,"indexExpression":{"hexValue":"31","id":57061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2983:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2975:10:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313031","id":57063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2988:3:99","typeDescriptions":{"typeIdentifier":"t_rational_101_by_1","typeString":"int_const 101"},"value":"101"},"src":"2975:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57065,"nodeType":"ExpressionStatement","src":"2975:16:99"},{"expression":{"id":57070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57066,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56933,"src":"3001:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57068,"indexExpression":{"hexValue":"32","id":57067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3009:1:99","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3001:10:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313032","id":57069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3014:3:99","typeDescriptions":{"typeIdentifier":"t_rational_102_by_1","typeString":"int_const 102"},"value":"102"},"src":"3001:16:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57071,"nodeType":"ExpressionStatement","src":"3001:16:99"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getThreeValidators","nameLocation":"2253:18:99","parameters":{"id":56924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56923,"mutability":"mutable","name":"vm","nameLocation":"2284:2:99","nodeType":"VariableDeclaration","scope":57073,"src":"2281:5:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},"typeName":{"id":56922,"nodeType":"UserDefinedTypeName","pathNode":{"id":56921,"name":"Vm","nameLocations":["2281:2:99"],"nodeType":"IdentifierPath","referencedDeclaration":14222,"src":"2281:2:99"},"referencedDeclaration":14222,"src":"2281:2:99","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"visibility":"internal"}],"src":"2271:21:99"},"returnParameters":{"id":56934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56927,"mutability":"mutable","name":"validatorKeys","nameLocation":"2328:13:99","nodeType":"VariableDeclaration","scope":57073,"src":"2311:30:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56925,"name":"uint256","nodeType":"ElementaryTypeName","src":"2311:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56926,"nodeType":"ArrayTypeName","src":"2311:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":56930,"mutability":"mutable","name":"addresses","nameLocation":"2360:9:99","nodeType":"VariableDeclaration","scope":57073,"src":"2343:26:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56928,"name":"address","nodeType":"ElementaryTypeName","src":"2343:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56929,"nodeType":"ArrayTypeName","src":"2343:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":56933,"mutability":"mutable","name":"weights","nameLocation":"2388:7:99","nodeType":"VariableDeclaration","scope":57073,"src":"2371:24:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56931,"name":"uint256","nodeType":"ElementaryTypeName","src":"2371:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56932,"nodeType":"ArrayTypeName","src":"2371:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2310:86:99"},"scope":57424,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57147,"nodeType":"FunctionDefinition","src":"3030:433:99","nodes":[],"body":{"id":57146,"nodeType":"Block","src":"3129:334:99","nodes":[],"statements":[{"expression":{"id":57087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57082,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57080,"src":"3139:4:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3635","id":57085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3156:2:99","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"id":57084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3146:9:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":57083,"name":"bytes","nodeType":"ElementaryTypeName","src":"3150:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":57086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3146:13:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3139:20:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57088,"nodeType":"ExpressionStatement","src":"3139:20:99"},{"expression":{"id":57096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57089,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57080,"src":"3169:4:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57091,"indexExpression":{"hexValue":"31","id":57090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3174:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3169:7:99","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57094,"name":"seq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57075,"src":"3186:3:99","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3179:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":57092,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3179:6:99","typeDescriptions":{}}},"id":57095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3179:11:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3169:21:99","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":57097,"nodeType":"ExpressionStatement","src":"3169:21:99"},{"assignments":[57099],"declarations":[{"constant":false,"id":57099,"mutability":"mutable","name":"dataSubset","nameLocation":"3251:10:99","nodeType":"VariableDeclaration","scope":57146,"src":"3238:23:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57098,"name":"bytes","nodeType":"ElementaryTypeName","src":"3238:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57107,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57102,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57080,"src":"3274:4:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3279:6:99","memberName":"length","nodeType":"MemberAccess","src":"3274:11:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3274:15:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3264:9:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":57100,"name":"bytes","nodeType":"ElementaryTypeName","src":"3268:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":57106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3264:26:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3238:52:99"},{"body":{"id":57129,"nodeType":"Block","src":"3339:52:99","statements":[{"expression":{"id":57127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57119,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57099,"src":"3353:10:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57123,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57120,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57109,"src":"3364:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3368:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3364:5:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3353:17:99","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":57124,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57080,"src":"3373:4:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57126,"indexExpression":{"id":57125,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57109,"src":"3378:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3373:7:99","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3353:27:99","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":57128,"nodeType":"ExpressionStatement","src":"3353:27:99"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57112,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57109,"src":"3317:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":57113,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57080,"src":"3321:4:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3326:6:99","memberName":"length","nodeType":"MemberAccess","src":"3321:11:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3317:15:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57130,"initializationExpression":{"assignments":[57109],"declarations":[{"constant":false,"id":57109,"mutability":"mutable","name":"i","nameLocation":"3310:1:99","nodeType":"VariableDeclaration","scope":57130,"src":"3305:6:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57108,"name":"uint","nodeType":"ElementaryTypeName","src":"3305:4:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57111,"initialValue":{"hexValue":"31","id":57110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3314:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"3305:10:99"},"loopExpression":{"expression":{"id":57117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3334:3:99","subExpression":{"id":57116,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57109,"src":"3334:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57118,"nodeType":"ExpressionStatement","src":"3334:3:99"},"nodeType":"ForStatement","src":"3300:91:99"},{"expression":{"id":57144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57131,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57078,"src":"3401:4:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":57139,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57099,"src":"3442:10:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57138,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3432:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3432:21:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":57137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3424:7:99","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":57136,"name":"uint256","nodeType":"ElementaryTypeName","src":"3424:7:99","typeDescriptions":{}}},"id":57141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3424:30:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3416:7:99","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":57134,"name":"uint160","nodeType":"ElementaryTypeName","src":"3416:7:99","typeDescriptions":{}}},"id":57142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3416:39:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":57133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3408:7:99","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57132,"name":"address","nodeType":"ElementaryTypeName","src":"3408:7:99","typeDescriptions":{}}},"id":57143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3408:48:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3401:55:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57145,"nodeType":"ExpressionStatement","src":"3401:55:99"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deriveValidatorAddress","nameLocation":"3039:22:99","parameters":{"id":57076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57075,"mutability":"mutable","name":"seq","nameLocation":"3068:3:99","nodeType":"VariableDeclaration","scope":57147,"src":"3062:9:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57074,"name":"uint8","nodeType":"ElementaryTypeName","src":"3062:5:99","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3061:11:99"},"returnParameters":{"id":57081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57078,"mutability":"mutable","name":"addr","nameLocation":"3104:4:99","nodeType":"VariableDeclaration","scope":57147,"src":"3096:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57077,"name":"address","nodeType":"ElementaryTypeName","src":"3096:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57080,"mutability":"mutable","name":"data","nameLocation":"3123:4:99","nodeType":"VariableDeclaration","scope":57147,"src":"3110:17:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57079,"name":"bytes","nodeType":"ElementaryTypeName","src":"3110:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3095:33:99"},"scope":57424,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57190,"nodeType":"FunctionDefinition","src":"3469:331:99","nodes":[],"body":{"id":57189,"nodeType":"Block","src":"3599:201:99","nodes":[],"statements":[{"expression":{"id":57160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57158,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57154,"src":"3609:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57159,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57149,"src":"3619:3:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3609:13:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57161,"nodeType":"ExpressionStatement","src":"3609:13:99"},{"assignments":[57163],"declarations":[{"constant":false,"id":57163,"mutability":"mutable","name":"pubkey","nameLocation":"3645:6:99","nodeType":"VariableDeclaration","scope":57189,"src":"3632:19:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57162,"name":"bytes","nodeType":"ElementaryTypeName","src":"3632:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57167,"initialValue":{"arguments":[{"id":57165,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57149,"src":"3672:3:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57164,"name":"derivePubKeyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56701,"src":"3654:17:99","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":57166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3654:22:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3632:44:99"},{"expression":{"id":57172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57168,"name":"validatorKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57156,"src":"3686:12:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57170,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57149,"src":"3728:3:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57169,"name":"deriveValidatorPubKeyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56732,"src":"3701:26:99","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":57171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3701:31:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3686:46:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57173,"nodeType":"ExpressionStatement","src":"3686:46:99"},{"expression":{"id":57187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57174,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57152,"src":"3742:4:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":57182,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"3783:6:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57181,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3773:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:17:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":57180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3765:7:99","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":57179,"name":"uint256","nodeType":"ElementaryTypeName","src":"3765:7:99","typeDescriptions":{}}},"id":57184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3765:26:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3757:7:99","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":57177,"name":"uint160","nodeType":"ElementaryTypeName","src":"3757:7:99","typeDescriptions":{}}},"id":57185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3757:35:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":57176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3749:7:99","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57175,"name":"address","nodeType":"ElementaryTypeName","src":"3749:7:99","typeDescriptions":{}}},"id":57186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3749:44:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3742:51:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57188,"nodeType":"ExpressionStatement","src":"3742:51:99"}]},"implemented":true,"kind":"function","modifiers":[],"name":"newValidator","nameLocation":"3478:12:99","parameters":{"id":57150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57149,"mutability":"mutable","name":"key","nameLocation":"3508:3:99","nodeType":"VariableDeclaration","scope":57190,"src":"3500:11:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57148,"name":"uint256","nodeType":"ElementaryTypeName","src":"3500:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3490:27:99"},"returnParameters":{"id":57157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57152,"mutability":"mutable","name":"addr","nameLocation":"3549:4:99","nodeType":"VariableDeclaration","scope":57190,"src":"3541:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57151,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57154,"mutability":"mutable","name":"privKey","nameLocation":"3563:7:99","nodeType":"VariableDeclaration","scope":57190,"src":"3555:15:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57153,"name":"uint256","nodeType":"ElementaryTypeName","src":"3555:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57156,"mutability":"mutable","name":"validatorKey","nameLocation":"3585:12:99","nodeType":"VariableDeclaration","scope":57190,"src":"3572:25:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57155,"name":"bytes","nodeType":"ElementaryTypeName","src":"3572:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:58:99"},"scope":57424,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57276,"nodeType":"FunctionDefinition","src":"3806:587:99","nodes":[],"body":{"id":57275,"nodeType":"Block","src":"3963:430:99","nodes":[],"statements":[{"expression":{"id":57210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57204,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57202,"src":"3973:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57208,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57192,"src":"4001:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3989:11:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":57205,"name":"bytes","nodeType":"ElementaryTypeName","src":"3993:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":57206,"nodeType":"ArrayTypeName","src":"3993:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":57209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3989:14:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"3973:30:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":57211,"nodeType":"ExpressionStatement","src":"3973:30:99"},{"expression":{"id":57218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57212,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57196,"src":"4013:10:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57216,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57192,"src":"4040:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4026:13:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":57213,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57214,"nodeType":"ArrayTypeName","src":"4030:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":57217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4026:16:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"4013:29:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57219,"nodeType":"ExpressionStatement","src":"4013:29:99"},{"expression":{"id":57226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57220,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57199,"src":"4052:8:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57224,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57192,"src":"4077:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4063:13:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":57221,"name":"uint256","nodeType":"ElementaryTypeName","src":"4067:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57222,"nodeType":"ArrayTypeName","src":"4067:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":57225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4063:16:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"4052:27:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57227,"nodeType":"ExpressionStatement","src":"4052:27:99"},{"body":{"id":57268,"nodeType":"Block","src":"4119:213:99","statements":[{"assignments":[57239,57241,57243],"declarations":[{"constant":false,"id":57239,"mutability":"mutable","name":"addr","nameLocation":"4142:4:99","nodeType":"VariableDeclaration","scope":57268,"src":"4134:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57238,"name":"address","nodeType":"ElementaryTypeName","src":"4134:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57241,"mutability":"mutable","name":"key","nameLocation":"4156:3:99","nodeType":"VariableDeclaration","scope":57268,"src":"4148:11:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57240,"name":"uint256","nodeType":"ElementaryTypeName","src":"4148:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57243,"mutability":"mutable","name":"validatorKey","nameLocation":"4174:12:99","nodeType":"VariableDeclaration","scope":57268,"src":"4161:25:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57242,"name":"bytes","nodeType":"ElementaryTypeName","src":"4161:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57249,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":57245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4203:3:99","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":57246,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57229,"src":"4209:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4203:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57244,"name":"newValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57190,"src":"4190:12:99","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (address,uint256,bytes memory)"}},"id":57248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4190:21:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(address,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4133:78:99"},{"expression":{"id":57254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57250,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57196,"src":"4225:10:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57252,"indexExpression":{"id":57251,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57229,"src":"4236:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4225:13:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57253,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57239,"src":"4241:4:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4225:20:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57255,"nodeType":"ExpressionStatement","src":"4225:20:99"},{"expression":{"id":57260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57256,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57202,"src":"4259:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":57258,"indexExpression":{"id":57257,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57229,"src":"4273:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4259:16:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57259,"name":"validatorKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57243,"src":"4278:12:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4259:31:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57261,"nodeType":"ExpressionStatement","src":"4259:31:99"},{"expression":{"id":57266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57262,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57199,"src":"4304:8:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57264,"indexExpression":{"id":57263,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57229,"src":"4313:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4304:11:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57265,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57241,"src":"4318:3:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4304:17:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57267,"nodeType":"ExpressionStatement","src":"4304:17:99"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57232,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57229,"src":"4107:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":57233,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57192,"src":"4111:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4107:5:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57269,"initializationExpression":{"assignments":[57229],"declarations":[{"constant":false,"id":57229,"mutability":"mutable","name":"i","nameLocation":"4100:1:99","nodeType":"VariableDeclaration","scope":57269,"src":"4095:6:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57228,"name":"uint","nodeType":"ElementaryTypeName","src":"4095:4:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57231,"initialValue":{"hexValue":"30","id":57230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4104:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4095:10:99"},"loopExpression":{"expression":{"id":57236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4114:3:99","subExpression":{"id":57235,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57229,"src":"4114:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57237,"nodeType":"ExpressionStatement","src":"4114:3:99"},"nodeType":"ForStatement","src":"4090:242:99"},{"expression":{"components":[{"id":57270,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57196,"src":"4350:10:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":57271,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57199,"src":"4362:8:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":57272,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57202,"src":"4372:13:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":57273,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4349:37:99","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory,bytes memory[] memory)"}},"functionReturnParameters":57203,"id":57274,"nodeType":"Return","src":"4342:44:99"}]},"implemented":true,"kind":"function","modifiers":[],"name":"newValidators","nameLocation":"3815:13:99","parameters":{"id":57193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57192,"mutability":"mutable","name":"n","nameLocation":"3846:1:99","nodeType":"VariableDeclaration","scope":57276,"src":"3838:9:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57191,"name":"uint256","nodeType":"ElementaryTypeName","src":"3838:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3828:25:99"},"returnParameters":{"id":57203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57196,"mutability":"mutable","name":"validators","nameLocation":"3894:10:99","nodeType":"VariableDeclaration","scope":57276,"src":"3877:27:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":57194,"name":"address","nodeType":"ElementaryTypeName","src":"3877:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57195,"nodeType":"ArrayTypeName","src":"3877:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":57199,"mutability":"mutable","name":"privKeys","nameLocation":"3923:8:99","nodeType":"VariableDeclaration","scope":57276,"src":"3906:25:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":57197,"name":"uint256","nodeType":"ElementaryTypeName","src":"3906:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57198,"nodeType":"ArrayTypeName","src":"3906:9:99","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":57202,"mutability":"mutable","name":"validatorKeys","nameLocation":"3948:13:99","nodeType":"VariableDeclaration","scope":57276,"src":"3933:28:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":57200,"name":"bytes","nodeType":"ElementaryTypeName","src":"3933:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":57201,"nodeType":"ArrayTypeName","src":"3933:7:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3876:86:99"},"scope":57424,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57350,"nodeType":"FunctionDefinition","src":"4399:423:99","nodes":[],"body":{"id":57349,"nodeType":"Block","src":"4488:334:99","nodes":[],"statements":[{"expression":{"id":57290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57285,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57283,"src":"4498:4:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3635","id":57288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4515:2:99","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"id":57287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4505:9:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":57286,"name":"bytes","nodeType":"ElementaryTypeName","src":"4509:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":57289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:13:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4498:20:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57291,"nodeType":"ExpressionStatement","src":"4498:20:99"},{"expression":{"id":57299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57292,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57283,"src":"4528:4:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57294,"indexExpression":{"hexValue":"31","id":57293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4533:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4528:7:99","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57297,"name":"seq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57278,"src":"4545:3:99","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4538:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":57295,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4538:6:99","typeDescriptions":{}}},"id":57298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4538:11:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"4528:21:99","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":57300,"nodeType":"ExpressionStatement","src":"4528:21:99"},{"assignments":[57302],"declarations":[{"constant":false,"id":57302,"mutability":"mutable","name":"dataSubset","nameLocation":"4610:10:99","nodeType":"VariableDeclaration","scope":57349,"src":"4597:23:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57301,"name":"bytes","nodeType":"ElementaryTypeName","src":"4597:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57310,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57305,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57283,"src":"4633:4:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4638:6:99","memberName":"length","nodeType":"MemberAccess","src":"4633:11:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4647:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4633:15:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4623:9:99","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":57303,"name":"bytes","nodeType":"ElementaryTypeName","src":"4627:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":57309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4623:26:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4597:52:99"},{"body":{"id":57332,"nodeType":"Block","src":"4698:52:99","statements":[{"expression":{"id":57330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57322,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57302,"src":"4712:10:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57326,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57323,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57312,"src":"4723:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4727:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4723:5:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4712:17:99","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":57327,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57283,"src":"4732:4:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57329,"indexExpression":{"id":57328,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57312,"src":"4737:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4732:7:99","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"4712:27:99","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":57331,"nodeType":"ExpressionStatement","src":"4712:27:99"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57315,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57312,"src":"4676:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":57316,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57283,"src":"4680:4:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4685:6:99","memberName":"length","nodeType":"MemberAccess","src":"4680:11:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4676:15:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57333,"initializationExpression":{"assignments":[57312],"declarations":[{"constant":false,"id":57312,"mutability":"mutable","name":"i","nameLocation":"4669:1:99","nodeType":"VariableDeclaration","scope":57333,"src":"4664:6:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57311,"name":"uint","nodeType":"ElementaryTypeName","src":"4664:4:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57314,"initialValue":{"hexValue":"31","id":57313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4673:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"4664:10:99"},"loopExpression":{"expression":{"id":57320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4693:3:99","subExpression":{"id":57319,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57312,"src":"4693:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57321,"nodeType":"ExpressionStatement","src":"4693:3:99"},"nodeType":"ForStatement","src":"4659:91:99"},{"expression":{"id":57347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57334,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57281,"src":"4760:4:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":57342,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57302,"src":"4801:10:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57341,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4791:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4791:21:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":57340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4783:7:99","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":57339,"name":"uint256","nodeType":"ElementaryTypeName","src":"4783:7:99","typeDescriptions":{}}},"id":57344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4783:30:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4775:7:99","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":57337,"name":"uint160","nodeType":"ElementaryTypeName","src":"4775:7:99","typeDescriptions":{}}},"id":57345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4775:39:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":57336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4767:7:99","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57335,"name":"address","nodeType":"ElementaryTypeName","src":"4767:7:99","typeDescriptions":{}}},"id":57346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4767:48:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4760:55:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57348,"nodeType":"ExpressionStatement","src":"4760:55:99"}]},"implemented":true,"kind":"function","modifiers":[],"name":"derivePubKey","nameLocation":"4408:12:99","parameters":{"id":57279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57278,"mutability":"mutable","name":"seq","nameLocation":"4427:3:99","nodeType":"VariableDeclaration","scope":57350,"src":"4421:9:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57277,"name":"uint8","nodeType":"ElementaryTypeName","src":"4421:5:99","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4420:11:99"},"returnParameters":{"id":57284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57281,"mutability":"mutable","name":"addr","nameLocation":"4463:4:99","nodeType":"VariableDeclaration","scope":57350,"src":"4455:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57280,"name":"address","nodeType":"ElementaryTypeName","src":"4455:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57283,"mutability":"mutable","name":"data","nameLocation":"4482:4:99","nodeType":"VariableDeclaration","scope":57350,"src":"4469:17:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57282,"name":"bytes","nodeType":"ElementaryTypeName","src":"4469:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4454:33:99"},"scope":57424,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57378,"nodeType":"FunctionDefinition","src":"4828:213:99","nodes":[],"body":{"id":57377,"nodeType":"Block","src":"4902:139:99","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57358,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57352,"src":"4920:2:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4923:6:99","memberName":"length","nodeType":"MemberAccess","src":"4920:9:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57360,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57354,"src":"4933:2:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4936:6:99","memberName":"length","nodeType":"MemberAccess","src":"4933:9:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4920:22:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6279746573206c656e206e6f7420657175616c","id":57363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4944:21:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_2de6bd869d85e0de7044fd7872e60b4dfafaf91b20036b02d3aaa70266de00f8","typeString":"literal_string \"bytes len not equal\""},"value":"bytes len not equal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2de6bd869d85e0de7044fd7872e60b4dfafaf91b20036b02d3aaa70266de00f8","typeString":"literal_string \"bytes len not equal\""}],"id":57357,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4912:7:99","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4912:54:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57365,"nodeType":"ExpressionStatement","src":"4912:54:99"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":57373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":57368,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57352,"src":"4994:2:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57367,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4984:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4984:13:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":57371,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57354,"src":"5011:2:99","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57370,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5001:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5001:13:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4984:30:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6279746573206e6f7420657175616c","id":57374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5016:17:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11837872e6282a7a5c3e38defc117597d04d25c721765e78ecdd143346d41ed","typeString":"literal_string \"bytes not equal\""},"value":"bytes not equal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11837872e6282a7a5c3e38defc117597d04d25c721765e78ecdd143346d41ed","typeString":"literal_string \"bytes not equal\""}],"id":57366,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4976:7:99","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4976:58:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57376,"nodeType":"ExpressionStatement","src":"4976:58:99"}]},"implemented":true,"kind":"function","modifiers":[],"name":"ensureBytesEqual","nameLocation":"4837:16:99","parameters":{"id":57355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57352,"mutability":"mutable","name":"_a","nameLocation":"4867:2:99","nodeType":"VariableDeclaration","scope":57378,"src":"4854:15:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57351,"name":"bytes","nodeType":"ElementaryTypeName","src":"4854:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":57354,"mutability":"mutable","name":"_b","nameLocation":"4884:2:99","nodeType":"VariableDeclaration","scope":57378,"src":"4871:15:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57353,"name":"bytes","nodeType":"ElementaryTypeName","src":"4871:5:99","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4853:34:99"},"returnParameters":{"id":57356,"nodeType":"ParameterList","parameters":[],"src":"4902:0:99"},"scope":57424,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57423,"nodeType":"FunctionDefinition","src":"5098:339:99","nodes":[],"body":{"id":57422,"nodeType":"Block","src":"5247:190:99","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57390,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57381,"src":"5265:6:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5272:6:99","memberName":"length","nodeType":"MemberAccess","src":"5265:13:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57392,"name":"array2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57384,"src":"5282:6:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5289:6:99","memberName":"length","nodeType":"MemberAccess","src":"5282:13:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5265:30:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":57395,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57386,"src":"5297:12:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":57389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5257:7:99","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5257:53:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57397,"nodeType":"ExpressionStatement","src":"5257:53:99"},{"body":{"id":57420,"nodeType":"Block","src":"5361:70:99","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":57416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":57410,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57381,"src":"5383:6:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57412,"indexExpression":{"id":57411,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57399,"src":"5390:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5383:9:99","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":57413,"name":"array2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57384,"src":"5396:6:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57415,"indexExpression":{"id":57414,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57399,"src":"5403:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5396:9:99","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5383:22:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":57417,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57386,"src":"5407:12:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":57409,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5375:7:99","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:45:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57419,"nodeType":"ExpressionStatement","src":"5375:45:99"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57402,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57399,"src":"5337:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":57403,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57381,"src":"5341:6:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:6:99","memberName":"length","nodeType":"MemberAccess","src":"5341:13:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5337:17:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57421,"initializationExpression":{"assignments":[57399],"declarations":[{"constant":false,"id":57399,"mutability":"mutable","name":"i","nameLocation":"5330:1:99","nodeType":"VariableDeclaration","scope":57421,"src":"5325:6:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57398,"name":"uint","nodeType":"ElementaryTypeName","src":"5325:4:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57401,"initialValue":{"hexValue":"30","id":57400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5334:1:99","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5325:10:99"},"loopExpression":{"expression":{"id":57407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5356:3:99","subExpression":{"id":57406,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57399,"src":"5356:1:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57408,"nodeType":"ExpressionStatement","src":"5356:3:99"},"nodeType":"ForStatement","src":"5320:111:99"}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateBytes4Array","nameLocation":"5107:19:99","parameters":{"id":57387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57381,"mutability":"mutable","name":"array1","nameLocation":"5152:6:99","nodeType":"VariableDeclaration","scope":57423,"src":"5136:22:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":57379,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5136:6:99","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":57380,"nodeType":"ArrayTypeName","src":"5136:8:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":57384,"mutability":"mutable","name":"array2","nameLocation":"5184:6:99","nodeType":"VariableDeclaration","scope":57423,"src":"5168:22:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":57382,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5168:6:99","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":57383,"nodeType":"ArrayTypeName","src":"5168:8:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":57386,"mutability":"mutable","name":"errorMessage","nameLocation":"5214:12:99","nodeType":"VariableDeclaration","scope":57423,"src":"5200:26:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":57385,"name":"string","nodeType":"ElementaryTypeName","src":"5200:6:99","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5126:106:99"},"returnParameters":{"id":57388,"nodeType":"ParameterList","parameters":[],"src":"5247:0:99"},"scope":57424,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[57424],"name":"TestUtils","nameLocation":"171:9:99","scope":57425,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":99} \ No newline at end of file diff --git a/.out/TopDownFinalityFacet.sol/TopDownFinalityFacet.json b/.out/TopDownFinalityFacet.sol/TopDownFinalityFacet.json index 9882c918d..1746f28c5 100644 --- a/.out/TopDownFinalityFacet.sol/TopDownFinalityFacet.json +++ b/.out/TopDownFinalityFacet.sol/TopDownFinalityFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"applyFinalityChanges","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"commitParentFinality","inputs":[{"name":"finality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"hasCommittedBefore","type":"bool","internalType":"bool"},{"name":"previousFinality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"storeValidatorChanges","inputs":[{"name":"changeRequests","type":"tuple[]","internalType":"struct StakingChangeRequest[]","components":[{"name":"change","type":"tuple","internalType":"struct StakingChange","components":[{"name":"op","type":"uint8","internalType":"enum StakingOperation"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"validator","type":"address","internalType":"address"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"InvalidConfigurationNumber","inputs":[]},{"type":"error","name":"NotSystemActor","inputs":[]},{"type":"error","name":"OldConfigurationNumber","inputs":[]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ParentFinalityAlreadyCommitted","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657612a65908161001c8239f35b600080fdfe604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611989565b61140d60219182546114e7565b90556111a9565b92500155611989565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cdb565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386127ae565b60019283825260258652828a832054168861155282611e66565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611dfb565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612801565b926115d487611e66565b935b818682161161161a575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612a108339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611e66565b1015611652579061164b839282612960565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc95602791611693612388565b8352522054166116d0575b6116a784612319565b6116b083611dfb565b516001600160a01b03928316815292909116602083015281906040820190565b6116d98461201c565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c83612319565b9792915061172385949796956127ca565b9761172d85611e66565b976117378a61220e565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611de8565b9061275e565b9b909b5b8b111561178757611779908c6128c7565b6117828b61220e565b61173e565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206129f0833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611e66565b611768565b505050505050506115bc91929395506000805160206129f0833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff93918416611957578360205460081c16846023541610611925576118476127ae565b60018352602560205286832054168561185f82611e66565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611dfb565b6115bc600080516020612a108339815191529361159c6118c284612801565b6118cb85611e66565b906121b9565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc94611905612388565b8152602760205220541661191c576116a784612319565b6116d9846120a7565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c83612319565b505050506115bc6000805160206129f08339815191529361159c61197a846127ca565b61198385611e66565b906126cb565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611bb1578082526024835287868320541615611ba0578415611af857506119d6836127ca565b976119e084611e66565b985b6001808a83161115611ae95781617fff911c1690818452602585528a611a0c848a87205416611e66565b1115611a2157611a1c90826128c7565b6119e2565b505091939597509193955b6026541615611ae157611a3d6127ae565b600182526025835285818184205416926028611a5885611e66565b95611a616127bc565b600183525220541691611a7383611e66565b11611aa857505091516001600160a01b03909216825260208201526000805160206129f08339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad9612388565b61169e611eb5565b505050505050565b50509193959750919395611a2c565b829450611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996124d1565b8651908152a160265416611b405750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b6e6127bc565b6001835252205416611b94611b8282611e66565b92611b8b611eb5565b61159c83612319565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611ca0575061fffe9193611bce86612801565b93611bd887611e66565b9480966001958692831b168160265416925b611c2c575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612a1083398151915291905080604081016115bc565b818116838111611c9a578d9084811015611c7e57505080611c4f611c5592611de8565b906122c1565b9890985b881015611c7957611c6a9089612960565b611c738861220e565b86611bea565b611bef565b865260288552852054909890611c95908716611e66565b611c59565b50611bef565b94915050611cd49194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061201c565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d7e578084526024855281888520541615611d6d578615611d3c5750611a2c611d2d866127ca565b611d3687611e66565b9061267c565b849193979650611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b939661255c565b8751632a55ca5360e01b8152600490fd5b9693925050508315611dbb5750600080516020612a1083398151915293506115bc9061159c611dac84612801565b611db585611e66565b90612225565b9250611cd47f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b94926120a7565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e138360265416611de8565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611e97576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff806026541690811561200a5790600190611ed4818311156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611f6e91908a611f5f83610e27565b16906026541617602655612826565b848252808652611f82848484205416611e66565b95859860028160265416995b611fa0575b5050505050505050505050565b8181168a8111612004578a811015611fe9575080611c4f611fc092611de8565b9a909a5b891015611fe457611fd5908b612960565b611fde8a61220e565b87611f8e565b611f93565b859b919b52838352611fff878787205416611e66565b611fc4565b50611f93565b6040516340d9b01160e01b8152600490fd5b61202590612801565b61ffff908160265416916120398383612960565b8061204384610e27565b1661ffff19602654161760265561205983612826565b811680921461074957611db5826102ed93600052602860205260018060a01b039061209361208d8360406000205416611e66565b856121b9565b600052602860205260406000205416611e66565b6120b090612801565b61ffff908160265416916120c48383612960565b806120ce84610e27565b1661ffff1960265416176026556120e483612826565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b039260409261212461211e868686205416611e66565b876121b9565b8252808652612137848484205416611e66565b9585986001988997881b168160265416995b61215a575050505050505050505050565b8181168a8111612004578a81101561219e575080611c4f61217a92611de8565b9a909a5b891015611fe45761218f908b612960565b6121988a61220e565b87612149565b859b919b528383526121b4878787205416611e66565b61217e565b9190915b60018061ffff831611156122085781617fff911c1690836121f360008481526028602052604060018060a01b0391205416611e66565b1015612208576122039082612960565b6121bd565b50509050565b60011b906201fffe61fffe83169216820361021e57565b90600161fffe83821b168160009161ffff908160265416925b61224c575b50505050505050565b8181168381116122bb5783811015612295575080611c4f61226c92611de8565b9690965b861015612290576122819087612960565b61228a8661220e565b8461223e565b612243565b8452602860205260408420549096906122b6906001600160a01b0316611e66565b612270565b50612243565b91909161ffff92838216600052602860205261230460018060a01b036122ed8160406000205416611e66565b958316600052602860205260406000205416611e66565b908185106123125750509190565b9350919050565b6102ed90611d3661ffff916123318360235416611de8565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611e66565b61ffff806023541690811561200a57906001906123a7818311156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161244191908a61243283610e27565b16906023541617602355612868565b848252808652612455848484205416611e66565b95859860028160235416995b612472575050505050505050505050565b8181168a8111612004578a8110156124b657508061175e61249292611de8565b9a909a5b891115611fe4576124a7908b6128c7565b6124b08a61220e565b87612461565b859b919b528383526124cc878787205416611e66565b612496565b6124da906127ca565b61ffff908160235416916124ee83836128c7565b806124f884610e27565b1661ffff19602354161760235561250e83612868565b811680921461074957611983826102ed93600052602560205260018060a01b03906125486125428360406000205416611e66565b8561267c565b600052602560205260406000205416611e66565b612565906127ca565b9061ffff9081602354169061257a82856128c7565b8261258483610e27565b1661ffff19602354161760235561259a82612868565b8284168092146126765760009291929183835260259260209484865260018060a01b03916040916125d86125d2858585205416611e66565b8a61267c565b81528587526125eb838383205416611e66565b956125f58961220e565b978560235416985b8681168a8111612668578a81101561264d57508061175e61261d92611de8565b9a909a5b89111561264057612632908b6128c7565b61263b8a61220e565b6125fd565b5050505050505092505050565b849b919b52828252612663868686205416611e66565b612621565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156122085781617fff911c1690836126b660008481526025602052604060018060a01b0391205416611e66565b1115612208576126c690826128c7565b612680565b916126d58361220e565b600061ffff918260235416905b838116828111612754578281101561272e57508061175e61270292611de8565b9690965b8611156127255761271790876128c7565b6127208661220e565b6126e2565b50505050915050565b83526025602052604083205490969061274f906001600160a01b0316611e66565b612706565b5050505050915050565b919061ffff808416600052602560205261279f60018060a01b036127888160406000205416611e66565b928416600052602560205260406000205416611e66565b93848211156123125750509190565b61ffff602354161561200a57565b61ffff602654161561200a57565b6001600160a01b031660009081526024602052604090205461ffff169081156127ef57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff169081156127ef57565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156128b157565b634e487b7160e01b600052600160045260246000fd5b6128ec61ffff8080602354169316936128e2848611156128aa565b16918211156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61297b61ffff8080602654169316936128e2848611156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033","sourceMap":"580:3041:51:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":3519,"length":20}]}}},"deployedBytecode":{"object":"0x604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611989565b61140d60219182546114e7565b90556111a9565b92500155611989565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cdb565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386127ae565b60019283825260258652828a832054168861155282611e66565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611dfb565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612801565b926115d487611e66565b935b818682161161161a575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612a108339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611e66565b1015611652579061164b839282612960565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc95602791611693612388565b8352522054166116d0575b6116a784612319565b6116b083611dfb565b516001600160a01b03928316815292909116602083015281906040820190565b6116d98461201c565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c83612319565b9792915061172385949796956127ca565b9761172d85611e66565b976117378a61220e565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611de8565b9061275e565b9b909b5b8b111561178757611779908c6128c7565b6117828b61220e565b61173e565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206129f0833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611e66565b611768565b505050505050506115bc91929395506000805160206129f0833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff93918416611957578360205460081c16846023541610611925576118476127ae565b60018352602560205286832054168561185f82611e66565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611dfb565b6115bc600080516020612a108339815191529361159c6118c284612801565b6118cb85611e66565b906121b9565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc94611905612388565b8152602760205220541661191c576116a784612319565b6116d9846120a7565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c83612319565b505050506115bc6000805160206129f08339815191529361159c61197a846127ca565b61198385611e66565b906126cb565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611bb1578082526024835287868320541615611ba0578415611af857506119d6836127ca565b976119e084611e66565b985b6001808a83161115611ae95781617fff911c1690818452602585528a611a0c848a87205416611e66565b1115611a2157611a1c90826128c7565b6119e2565b505091939597509193955b6026541615611ae157611a3d6127ae565b600182526025835285818184205416926028611a5885611e66565b95611a616127bc565b600183525220541691611a7383611e66565b11611aa857505091516001600160a01b03909216825260208201526000805160206129f08339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad9612388565b61169e611eb5565b505050505050565b50509193959750919395611a2c565b829450611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996124d1565b8651908152a160265416611b405750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b6e6127bc565b6001835252205416611b94611b8282611e66565b92611b8b611eb5565b61159c83612319565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611ca0575061fffe9193611bce86612801565b93611bd887611e66565b9480966001958692831b168160265416925b611c2c575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612a1083398151915291905080604081016115bc565b818116838111611c9a578d9084811015611c7e57505080611c4f611c5592611de8565b906122c1565b9890985b881015611c7957611c6a9089612960565b611c738861220e565b86611bea565b611bef565b865260288552852054909890611c95908716611e66565b611c59565b50611bef565b94915050611cd49194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061201c565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d7e578084526024855281888520541615611d6d578615611d3c5750611a2c611d2d866127ca565b611d3687611e66565b9061267c565b849193979650611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b939661255c565b8751632a55ca5360e01b8152600490fd5b9693925050508315611dbb5750600080516020612a1083398151915293506115bc9061159c611dac84612801565b611db585611e66565b90612225565b9250611cd47f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b94926120a7565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e138360265416611de8565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611e97576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff806026541690811561200a5790600190611ed4818311156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611f6e91908a611f5f83610e27565b16906026541617602655612826565b848252808652611f82848484205416611e66565b95859860028160265416995b611fa0575b5050505050505050505050565b8181168a8111612004578a811015611fe9575080611c4f611fc092611de8565b9a909a5b891015611fe457611fd5908b612960565b611fde8a61220e565b87611f8e565b611f93565b859b919b52838352611fff878787205416611e66565b611fc4565b50611f93565b6040516340d9b01160e01b8152600490fd5b61202590612801565b61ffff908160265416916120398383612960565b8061204384610e27565b1661ffff19602654161760265561205983612826565b811680921461074957611db5826102ed93600052602860205260018060a01b039061209361208d8360406000205416611e66565b856121b9565b600052602860205260406000205416611e66565b6120b090612801565b61ffff908160265416916120c48383612960565b806120ce84610e27565b1661ffff1960265416176026556120e483612826565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b039260409261212461211e868686205416611e66565b876121b9565b8252808652612137848484205416611e66565b9585986001988997881b168160265416995b61215a575050505050505050505050565b8181168a8111612004578a81101561219e575080611c4f61217a92611de8565b9a909a5b891015611fe45761218f908b612960565b6121988a61220e565b87612149565b859b919b528383526121b4878787205416611e66565b61217e565b9190915b60018061ffff831611156122085781617fff911c1690836121f360008481526028602052604060018060a01b0391205416611e66565b1015612208576122039082612960565b6121bd565b50509050565b60011b906201fffe61fffe83169216820361021e57565b90600161fffe83821b168160009161ffff908160265416925b61224c575b50505050505050565b8181168381116122bb5783811015612295575080611c4f61226c92611de8565b9690965b861015612290576122819087612960565b61228a8661220e565b8461223e565b612243565b8452602860205260408420549096906122b6906001600160a01b0316611e66565b612270565b50612243565b91909161ffff92838216600052602860205261230460018060a01b036122ed8160406000205416611e66565b958316600052602860205260406000205416611e66565b908185106123125750509190565b9350919050565b6102ed90611d3661ffff916123318360235416611de8565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611e66565b61ffff806023541690811561200a57906001906123a7818311156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161244191908a61243283610e27565b16906023541617602355612868565b848252808652612455848484205416611e66565b95859860028160235416995b612472575050505050505050505050565b8181168a8111612004578a8110156124b657508061175e61249292611de8565b9a909a5b891115611fe4576124a7908b6128c7565b6124b08a61220e565b87612461565b859b919b528383526124cc878787205416611e66565b612496565b6124da906127ca565b61ffff908160235416916124ee83836128c7565b806124f884610e27565b1661ffff19602354161760235561250e83612868565b811680921461074957611983826102ed93600052602560205260018060a01b03906125486125428360406000205416611e66565b8561267c565b600052602560205260406000205416611e66565b612565906127ca565b9061ffff9081602354169061257a82856128c7565b8261258483610e27565b1661ffff19602354161760235561259a82612868565b8284168092146126765760009291929183835260259260209484865260018060a01b03916040916125d86125d2858585205416611e66565b8a61267c565b81528587526125eb838383205416611e66565b956125f58961220e565b978560235416985b8681168a8111612668578a81101561264d57508061175e61261d92611de8565b9a909a5b89111561264057612632908b6128c7565b61263b8a61220e565b6125fd565b5050505050505092505050565b849b919b52828252612663868686205416611e66565b612621565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156122085781617fff911c1690836126b660008481526025602052604060018060a01b0391205416611e66565b1115612208576126c690826128c7565b612680565b916126d58361220e565b600061ffff918260235416905b838116828111612754578281101561272e57508061175e61270292611de8565b9690965b8611156127255761271790876128c7565b6127208661220e565b6126e2565b50505050915050565b83526025602052604083205490969061274f906001600160a01b0316611e66565b612706565b5050505050915050565b919061ffff808416600052602560205261279f60018060a01b036127888160406000205416611e66565b928416600052602560205260406000205416611e66565b93848211156123125750509190565b61ffff602354161561200a57565b61ffff602654161561200a57565b6001600160a01b031660009081526024602052604090205461ffff169081156127ef57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff169081156127ef57565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156128b157565b634e487b7160e01b600052600160045260246000fd5b6128ec61ffff8080602354169316936128e2848611156128aa565b16918211156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61297b61ffff8080602654169316936128e2848611156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033","sourceMap":"580:3041:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;580:3041:51;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1914:14;4574:73:64;;;:::i;:::-;580:3041:51;1914:14;:::i;:::-;580:3041;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4574:73:64;;:::i;:::-;580:3041:51;;;;;;;:::i;:::-;;;;;;5710:20:63;580:3041:51;;;;5744:28:63;;;;5740:98;;580:3041:51;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5710:20:63;580:3041:51;;;1603:28;;580:3041;;;;;;;;;;;;;;;;;5740:98:63;580:3041:51;;-1:-1:-1;;;5795:32:63;;580:3041:51;;5795:32:63;580:3041:51;;;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;-1:-1:-1;;;;;4639:1:64;;:::i;:::-;580:3041:51;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;-1:-1:-1;580:3041:51;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2134:1485;2313:27;580:3041;-1:-1:-1;;;;;580:3041:51;;;-1:-1:-1;;580:3041:51;;;;;;2566:23;;;:::i;:::-;580:3041;;;;;;;;;2565:81;2475:264;;2812:19;;;:::i;:::-;580:3041;;;5816:27:69;580:3041:51;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;580:3041:51;;;;;:::i;:::-;;2313:19;;580:3041;;;;;;2367:1;5909:12:69;580:3041:51;;;5923:9:69;;;;;580:3041:51;;;;598:23:78;580:3041:51;;;;;;;;2367:1;;-1:-1:-1;;;;;580:3041:51;5950:60:69;5960:5;580:3041:51;5960:5:69;580:3041:51;5960:5:69;:::i;:::-;580:3041:51;5950:60:69;;:::i;:::-;580:3041:51;;;5909:12:69;;5923:9;;;;;;;;;;;580:3041:51;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;3081:9;;;580:3041;3092:11;;;;;;580:3041;;3505:70;580:3041;;;;;;;;;:::i;:::-;;;;;3505:70;;;580:3041;3505:70;:::i;:::-;2134:1485;:::o;3081:9::-;2367:1;;-1:-1:-1;;;;;3136:13:51;580:3041;3136:13;;:::i;:::-;580:3041;;;;;3192:41;580:3041;;;5816:27:69;580:3041:51;;;3280:24;;;580:3041;;;;;;;;:::i;:::-;;;3261:82;;;580:3041;3328:13;580:3041;:::i;:::-;3261:82;;;580:3041;3253:90;;;;:::i;:::-;;;;;;:::i;:::-;;580:3041;3081:9;;580:3041;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2475:264;2720:8;;;580:3041;2720:8;:::o;580:3041::-;;;;;;;;-1:-1:-1;;580:3041:51;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;6344:19:63;580:3041:51;;;;;;;;6344:19:63;-1:-1:-1;580:3041:51;;;;;-1:-1:-1;580:3041:51;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;6087:1976:63;580:3041:51;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6167:29:63;580:3041:51;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;6167:29:63;;;580:3041:51;6344:39:63;580:3041:51;;6344:44:63;;6340:621;;6087:1976;6344:19;;;;580:3041:51;;;;;;;;;;;6971:16:63;580:3041:51;;6971:16:63;580:3041:51;;;;;;6087:1976:63;-1:-1:-1;6971:16:63;580:3041:51;;;;;;;;;;;;;;;;;;;6344:39:63;580:3041:51;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;7042:21:63;;580:3041:51;;;;7306:9:63;;7317:15;;;;;;580:3041:51;;;;;;6344:39:63;580:3041:51;;;6344:39:63;580:3041:51;7817:25:63;;;7813:244;;7301:332;6087:1976;;;;:::o;7813:244::-;7888:15;;;;7813:244;7888:15;580:3041:51;;;;;;-1:-1:-1;;580:3041:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7863:23:63;;580:3041:51;-1:-1:-1;;;580:3041:51;;;;;;;;;-1:-1:-1;;;580:3041:51;;;;;;;;7306:9:63;7354:15;;;;;;7425:21;7389:60;7425:24;580:3041:51;7425:21:63;;;:24;:::i;:::-;;7389:33;;;:::i;:::-;:60;;:::i;:::-;580:3041:51;7306:9:63;;7350:214;7524:24;:21;;;:24;:::i;:::-;;580:3041:51;;;;;;;;;;;;;;;;;;;;:::i;:::-;7350:214:63;;580:3041:51;-1:-1:-1;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6971:16:63;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6340:621:63;580:3041:51;;;;;6442:36:63;580:3041:51;;6408:70:63;;;;6404:115;;6632:69;6628:139;;580:3041:51;;;;;;:::i;:::-;6344:19:63;580:3041:51;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6344:19:63;-1:-1:-1;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;-1:-1:-1;;;580:3041:51;;;-1:-1:-1;;580:3041:51;;;6862:48:63;;;;:::i;:::-;6858:93;;6340:621;;;;;6858:93;6930:7;;;:::o;580:3041:51:-;;;6344:39:63;580:3041:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6628:139:63;580:3041:51;;-1:-1:-1;;;6728:24:63;;6344:19;;6728:24;6404:115;6498:7;;;;;;;;:::o;8598:561::-;-1:-1:-1;;;;;8712:23:63;;;;;;;580:3041:51;;8739:23:63;;;;580:3041:51;;8712:50:63;8708:93;;8814:26;;;:::i;:::-;8844;;;:::i;:::-;8814:56;8810:99;;8922:14;580:3041:51;;8947:14:63;;580:3041:51;8922:46:63;8918:89;;9099:26;580:3041:51;;;;9039:26:63;;580:3041:51;9039:26:63;;;580:3041:51;;;;;;;;;:::i;:::-;9039:26:63;580:3041:51;9039:26:63;580:3041:51;;9039:26:63;;;;;;;;:::i;:::-;580:3041:51;9029:37:63;;9110:14;;580:3041:51;;9099:26:63;;;;;;580:3041:51;;;;;;;;:::i;:::-;9099:26:63;;;;;;;;:::i;:::-;580:3041:51;9089:37:63;;9144:8;8598:561;:::o;580:3041:51:-;;;;;;;;;;:::o;8132:387:63:-;8243:15;;580:3041:51;8275:29:63;580:3041:51;8319:9:63;;8314:161;8330:7;;;;;;8484:28;;;8132:387;:::o;8319:9::-;8380:15;;;8355:50;580:3041:51;8380:15:63;:18;:15;;;:18;:::i;:::-;;580:3041:51;8355:50:63;;:::i;:::-;580:3041:51;;8319:9:63;;;;4430:138:64;580:3041:51;;-1:-1:-1;;;4486:26:64;;:10;:26;;;580:3041:51;4486:26:64;580:3041:51;;;4486:24:64;:26;;;;;;;-1:-1:-1;4486:26:64;;;4430:138;4485:27;;4481:81;;4430:138::o;4481:81::-;580:3041:51;;-1:-1:-1;;;4535:16:64;;4486:26;;4535:16;4486:26;;;;;;;;;;;;;;;:::i;:::-;;;580:3041:51;;;;;;;;;;;;;4486:26:64;;;;;;;-1:-1:-1;4486:26:64;;;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;:::o;26893:415:69:-;27098:11;;27094:48;;27108:1;27168:10;;;;;;26893:415;;;:::o;27157:9::-;580:3041:51;;;;;;;;;;;;;;;;;;;26615:30:69;;:20;;;;;:::i;:::-;:30;580:3041:51;;;;;;;;;;;;;;;;26663:20:69;;;;:::i;:::-;580:3041:51;;;;;;;26709:20:69;;;;:::i;:::-;580:3041:51;26709:28:69;;;;580:3041:51;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;27108:1:69;580:3041:51;;;;;;;;;;;;26564:12:69;580:3041:51;;;;;;;;;:::i;:::-;;;3528:63:70;;;580:3041:51;;;3528:63:70;;;580:3041:51;;;;27108:1:69;580:3041:51;3489:15:70;580:3041:51;;;27108:1:69;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;27108:1:69;;580:3041:51;;;;-1:-1:-1;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;3636:23:70;;;;:::i;:::-;580:3041:51;-1:-1:-1;;;;;580:3041:51;26564:12:69;580:3041:51;;;26564:12:69;580:3041:51;26786:33:69;580:3041:51;;;;;;;;;26763:56:69;26759:122;;580:3041:51;;27157:9:69;;26759:122;580:3041:51;-1:-1:-1;;;26842:28:69;;580:3041:51;;26842:28:69;580:3041:51;27108:1:69;580:3041:51;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;27108:1:69;580:3041:51;;27108:1:69;580:3041:51;;27108:1:69;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27108:1:69;580:3041:51;;;;;27108:1:69;580:3041:51;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;580:3041:51;;;;;;-1:-1:-1;;580:3041:51;;;;:::o;27379:1594:69:-;;27514:12;580:3041:51;-1:-1:-1;;;;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;27491:59:69;;27487:227;580:3041:51;;;;;-1:-1:-1;;;27573:28:69;;;;;27487:227;-1:-1:-1;;;;;580:3041:51;;;;-1:-1:-1;;;;;580:3041:51;;27622:59:69;27618:96;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;27792:16:69;-1:-1:-1;;;;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;27810:24:69;;;-1:-1:-1;;;;;580:3041:51;;-1:-1:-1;580:3041:51;3893:15:70;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;27942:16:69;;;580:3041:51;;;;;;;;;;;;;27942:16:69;27977:41;;27942:16;;580:3041:51;;;;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;28038:26:69;580:3041:51;;28087:14:69;28038:46;580:3041:51;-1:-1:-1;580:3041:51;28038:46:69;580:3041:51;:::i;:::-;;;;-1:-1:-1;580:3041:51;3893:15:70;580:3041:51;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;-1:-1:-1;27942:16:69;580:3041:51;;;;;;;:::i;:::-;;;;;27792:16:69;;27973:810;28126:47;;;28139:34;28126:47;;28139:34;;28245:14;580:3041:51;;28245:14:69;;580:3041:51;:::i;:::-;;;;28234:44:69;;;580:3041:51;28234:44:69;580:3041:51;28234:44:69;;580:3041:51;;;;;;28234:44:69;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;580:3041:51;28296:26:69;580:3041:51;;28139:34:69;580:3041:51;-1:-1:-1;580:3041:51;28296:46:69;580:3041:51;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;28420:5:69;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;28139:34:69;580:3041:51;;;;;;;28420:5:69;:::i;:::-;27973:810;;580:3041:51;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;28420:5:69;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;28420:5:69;:::i;580:3041:51:-;;;;;;;28139:34:69;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28122:661:69;580:3041:51;;;;;;28493:14:69;;;580:3041:51;:::i;:::-;;;;;;28482:37:69;;580:3041:51;;;;28482:37:69;580:3041:51;-1:-1:-1;;;;;28482:37:69;;580:3041:51;28542:38:69;;28538:231;3893:15:70;;;580:3041:51;;10830:13:69;580:3041:51;-1:-1:-1;580:3041:51;10416:15:69;580:3041:51;;;;10416:55:69;580:3041:51;;;-1:-1:-1;580:3041:51;10416:46:69;580:3041:51;10416:55:69;:::i;:::-;580:3041:51;;-1:-1:-1;580:3041:51;;;;-1:-1:-1;580:3041:51;27942:16:69;10507:42;;580:3041:51;;;;10564:18:69;;:42;;;;28538:231;-1:-1:-1;10560:199:69;;;580:3041:51;;-1:-1:-1;580:3041:51;;;28139:34:69;580:3041:51;;;;;;;;;;:::i;:::-;10830:13:69;:::i;:::-;10856:39;:29;580:3041:51;;;10856:39:69;:::i;:::-;580:3041:51;;27973:810:69;;10560:199;10686:46;;;580:3041:51;10830:13:69;:::i;10564:42::-;10586:20;;;10564:42;;;28538:231;10258:13;580:3041:51;;-1:-1:-1;580:3041:51;10005:15:69;580:3041:51;;;10005:55:69;580:3041:51;;;-1:-1:-1;580:3041:51;10005:46:69;580:3041:51;10005:55:69;:::i;:::-;580:3041:51;;;;-1:-1:-1;580:3041:51;;;;-1:-1:-1;580:3041:51;10070:46:69;580:3041:51;10143:39:69;:29;580:3041:51;;;10143:39:69;:::i;:::-;580:3041:51;;10258:13:69;:::i;27810:24::-;;;28943:23;27810:24;28943:23;:::i;:::-;-1:-1:-1;;;27514:12:69;580:3041:51;;;;;;-1:-1:-1;;;580:3041:51;;;27514:12:69;580:3041:51;27379:1594:69:o;27618:96::-;27697:7;;;:::o;9330:540::-;;580:3041:51;;;;;;;-1:-1:-1;580:3041:51;9465:15:69;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;9580:22:69;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:69;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;580:3041:51:-;;;;;;;;;;:::o;11008:2209:69:-;;;580:3041:51;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;1317:17:79;580:3041:51;;;;;;;;;;;;11120:226:69;;580:3041:51;;;;;;;11124:21:69;580:3041:51;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;580:3041:51;;;;;4077:23:77;580:3041:51;;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;12866:229:69;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;580:3041:51;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;13168:42:69;;;;11008:2209::o;12866:229::-;3147:36:77;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;580:3041:51;;;;4619:7:77;;;4612:423;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;-1:-1:-1;;;;580:3041:51;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13008:56:69;580:3041:51;;;;13008:56:69;580:3041:51;4612:423:77;580:3041:51;;1991:25:79;580:3041:51;;;;;;;;;;;1952:17:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:69;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:79;12475:4:69;;;:::i;:::-;580:3041:51;;;;;;12495:140:69;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;580:3041:51;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;12495:140:69;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:78;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;580:3041:51;11124:21:69;580:3041:51;;4932:763:78;;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;-1:-1:-1;;;;580:3041:51;;;;;;;5556:5:78;;-1:-1:-1;;;;;;;;;;;;11260:55:69;-1:-1:-1;580:3041:51;;;;11260:55:69;580:3041:51;4971:413:78;580:3041:51;;;;;1952:17:79;580:3041:51;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;11260:55:69;4939:16:78;;;;;-1:-1:-1;;;;;;;;;;;4939:16:78;;;;11008:2209:69;-1:-1:-1;;;;;580:3041:51;;;-1:-1:-1;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;;11008:2209:69;;580:3041:51;;;;;11120:226:69;;580:3041:51;;;;;;;11124:21:69;580:3041:51;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;580:3041:51;;;4077:23:77;580:3041:51;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;-1:-1:-1;580:3041:51;;1317:17:79;580:3041:51;;;;;;;12866:229:69;;13168:42;;13141:11;;;;:::i;12866:229::-;13008:56;-1:-1:-1;;;;;;;;;;;3147:36:77;3308:5;3147:36;;;:::i;:::-;3209:30;;;:::i;:::-;3308:5;;:::i;12404:452:69:-;12475:4;;;;;12777:48;12475:4;;12777:48;12475:4;;;:::i;:::-;580:3041:51;;1317:17:79;580:3041:51;;;;;12495:140:69;;12684:11;;;:::i;12495:140::-;12608:11;;;:::i;11516:262::-;11675:11;;;;11706:41;;11675:11;;;;:::i;11120:226::-;2876:36:78;;;;11260:55:69;-1:-1:-1;;;;;;;;;;;2876:36:78;3035:3;2876:36;;;:::i;:::-;2936:30;;;:::i;:::-;3035:3;;:::i;13320:2014:69:-;;;580:3041:51;;;;;;;;;-1:-1:-1;;580:3041:51;;;;;1317:17:79;580:3041:51;;;;;;;;;;;;13428:421:69;;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;580:3041:51;;;;;4277:7:78;;;;580:3041:51;;;;;;;;;1952:17:79;580:3041:51;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;13432:22:69;580:3041:51;;14638:37:69;14634:74;;4023:26:77;;:::i;:::-;580:3041:51;;;1952:17:79;580:3041:51;;;;;;;;;4129:25:77;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;580:3041:51;;;;;;;4129:25:77;;;;:::i;:::-;-1:-1:-1;14901:358:69;;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;-1:-1:-1;;;;;;;;;;;15274:53:69;580:3041:51;;;;15274:53:69;580:3041:51;14901:358:69;14979:4;;;;15176:52;;14979:4;;;:::i;:::-;15025;;:::i;14634:74::-;14691:7;;;;;;:::o;4277::78:-;;;;;;;;;;;;;14049:508:69;14126:9;;;;14155:30;14126:9;;;;;;;;;:::i;:::-;580:3041:51;;;;;14155:30:69;13432:22;580:3041:51;;14200:326:69;;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:77;4077:23;4023:26;;;;:::i;:::-;580:3041:51;;;;;;;14472:39:69;4129:25:77;;;:::i;:::-;14378:4:69;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;580:3041:51;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:77;580:3041:51;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;580:3041:51;;;;;;;;;13432:22:69;580:3041:51;;5287:763:77;580:3041:51;;;5287:763:77;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;-1:-1:-1;;;;580:3041:51;;;;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;;;;;;;;;;;;13764:54:69;580:3041:51;-1:-1:-1;580:3041:51;;;;13764:54:69;580:3041:51;5287:763:77;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;580:3041:51;;1952:17:79;580:3041:51;;;;;;;;1991:25:79;;580:3041:51;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13490:185:69;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;580:3041:51;;;;13605:31:69;13654:7::o;13320:2014::-;-1:-1:-1;;;;;580:3041:51;;;-1:-1:-1;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;;;;13320:2014:69;;580:3041:51;;;;;;13428:421:69;;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;3422:3;3263:36;;;:::i;:::-;3323:30;;;:::i;:::-;3422:3;;:::i;14049:508:69:-;14126:9;;;;;;;14155:30;14126:9;;;:::i;13883:106::-;580:3041:51;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;13490:185;;3601:36:77;-1:-1:-1;;;;;;;;;;;3601:36:77;;13764:54:69;3601:36:77;3762:5;3601:36;;;:::i;:::-;3663:30;;;:::i;:::-;3762:5;;:::i;13490:185:69:-;13572:9;;;13605:31;13572:9;;;:::i;580:3041:51:-;;;;;;;;;;;;;:::o;998:417:77:-;1401:5;998:417;1301:30;580:3041:51;;1119:19:77;580:3041:51;12499:22:69;580:3041:51;;1119:19:77;:::i;:::-;580:3041:51;;;;;;;;;;-1:-1:-1;580:3041:51;1149:23:77;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;1200:23:77;580:3041:51;;;-1:-1:-1;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;12499:22:69;580:3041:51;;;12499:22:69;580:3041:51;4525:375:69;580:3041:51;;;;;;;;;;4697:24:69;4668:53;4697:24;;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;4745:21:69;580:3041:51;;;;;;;4525:375:69:o;4664:230::-;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;4831:21:69;580:3041:51;;;;;;4831:52:69;580:3041:51;;4525:375:69:o;1545:401:77:-;580:3041:51;;13432:22:69;580:3041:51;;1044:14:79;;;1040:61;;580:3041:51;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;580:3041:51;;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1799:4:77;;580:3041:51;1766:8:77;;580:3041:51;1766:8:77;:::i;:::-;580:3041:51;;13432:22:69;580:3041:51;;;13432:22:69;580:3041:51;1799:4:77;:::i;:::-;580:3041:51;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;5160:26;1952:17:79;580:3041:51;13432:22:69;580:3041:51;;5287:763:77;580:3041:51;;;5287:763:77;1545:401;;;;;;;;;;;:::o;5287:763::-;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;1040:61:79;580:3041:51;;-1:-1:-1;;;1081:9:79;;;;;2081:787:77;2210:36;2081:787;2210:36;:::i;:::-;580:3041:51;;;12499:22:69;580:3041:51;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;580:3041:51;;;12499:22:69;580:3041:51;;;12499:22:69;580:3041:51;2415:4:77;;;:::i;:::-;580:3041:51;;2435:11:77;;;2431:48;;1991:25:79;580:3041:51;2854:5:77;580:3041:51;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;;;;;;2668:5:77;1991:25:79;580:3041:51;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;2081:787:77:-;2210:36;2081:787;2210:36;:::i;:::-;580:3041:51;;;12499:22:69;580:3041:51;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;580:3041:51;;;12499:22:69;580:3041:51;;;12499:22:69;580:3041:51;2415:4:77;;;:::i;:::-;580:3041:51;;;2435:11:77;;;2431:48;;-1:-1:-1;580:3041:51;-1:-1:-1;;580:3041:51;;;;1952:17:79;580:3041:51;;;;;;;;;;;;;;2668:5:77;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;580:3041:51;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2854:5:77;;580:3041:51;;;;;;;;;12499:22:69;580:3041:51;;5287:763:77;580:3041:51;;;2081:787:77;;;;;;;;;;;:::o;5287:763::-;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;5326:412:77;;4443:598;;;;4612:423;4625:1;580:3041:51;;;;4619:7:77;;;;580:3041:51;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;580:3041:51;;;1952:17:79;580:3041:51;;;;;;;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;580:3041:51:-;;;;;;;;;;;;;;:::o;5047:1009:77:-;;5185:1;580:3041:51;;;;;5218:18:77;-1:-1:-1;5218:18:77;580:3041:51;;;13432:22:69;580:3041:51;;5287:763:77;5185:1;;;5287:763;5047:1009;;;;;;;:::o;5287:763::-;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;580:3041:51;;1952:17:79;580:3041:51;;;;;;;;;1991:25:79;;-1:-1:-1;;;;;580:3041:51;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;6117:442;;;;580:3041:51;;;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;1991:25:79;580:3041:51;;;;;1991:25:79;580:3041:51;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;580:3041:51;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;6662:7:77;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:77;;-1:-1:-1;6490:21:77:o;924:417:78:-;1327:5;924:417;1227:30;580:3041:51;;1045:19:78;580:3041:51;11124:21:69;580:3041:51;;1045:19:78;:::i;:::-;580:3041:51;;;;;;;;;;-1:-1:-1;580:3041:51;1075:23:78;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;1126:23:78;580:3041:51;;;-1:-1:-1;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;11124:21:69;580:3041:51;;;11124:21:69;580:3041:51;1227:30:78;:::i;1408:401::-;580:3041:51;;11124:21:69;580:3041:51;;1044:14:79;;;1040:61;;580:3041:51;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;580:3041:51;;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1662:4:78;;580:3041:51;1629:8:78;;580:3041:51;1629:8:78;:::i;:::-;580:3041:51;;11124:21:69;580:3041:51;;;11124:21:69;580:3041:51;1662:4:78;:::i;:::-;580:3041:51;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4715:986:78;;4828:25;1952:17:79;580:3041:51;11124:21:69;580:3041:51;;4932:763:78;580:3041:51;;;1408:401:78;;;;;;;;;;;:::o;4932:763::-;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4971:413:78;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;580:3041:51;;;13888:21:69;580:3041:51;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;580:3041:51;;;13888:21:69;580:3041:51;;;13888:21:69;580:3041:51;2215:4:78;;;:::i;:::-;580:3041:51;;2235:11:78;;;2231:48;;1991:25:79;580:3041:51;2648:3:78;580:3041:51;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;;;;;;2466:3:78;1991:25:79;580:3041:51;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;1881:779:78:-;2010:36;1881:779;2010:36;:::i;:::-;580:3041:51;;;;13888:21:69;580:3041:51;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;580:3041:51;;;13888:21:69;580:3041:51;;;13888:21:69;580:3041:51;2215:4:78;;;:::i;:::-;580:3041:51;;;2235:11:78;;;2231:48;;-1:-1:-1;;;;580:3041:51;;;;1952:17:79;580:3041:51;;;;;;;;;;;;;;2466:3:78;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;580:3041:51;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2648:3:78;4846:7;2648:3;4846:7;:::i;:::-;4863:18;580:3041:51;13888:21:69;580:3041:51;;4932:763:78;;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;580:3041:51;;;;4277:7:78;;;;580:3041:51;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;580:3041:51;;;1952:17:79;580:3041:51;;;;;;;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4715:986;;4846:7;;;:::i;:::-;-1:-1:-1;580:3041:51;;;11124:21:69;580:3041:51;;4932:763:78;;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;4715:986::o;4971:413::-;580:3041:51;;1952:17:79;580:3041:51;;;;;;;;;1991:25:79;;-1:-1:-1;;;;;580:3041:51;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;4715:986::o;5763:443::-;;;580:3041:51;;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;1991:25:79;580:3041:51;;;;;1991:25:79;580:3041:51;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;580:3041:51;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;6308:7:78;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:79:-;580:3041:51;11124:21:69;580:3041:51;;1044:14:79;1040:61;;974:133::o;:::-;580:3041:51;13432:22:69;580:3041:51;;1044:14:79;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;1474:17:79;580:3041:51;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1512:71::-;580:3041:51;;-1:-1:-1;;;1547:25:79;;;;;1363:226;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;1474:17:79;580:3041:51;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1595:184::-;580:3041:51;;-1:-1:-1;580:3041:51;;;1671:17:79;580:3041:51;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;-1:-1:-1;;;;;580:3041:51;;;1749:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;1595:184:79:o;:::-;580:3041:51;;-1:-1:-1;580:3041:51;;;1671:17:79;580:3041:51;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;-1:-1:-1;;;;;580:3041:51;;;1749:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;1595:184:79:o;580:3041:51:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:79;2416:25;580:3041:51;;;11124:21:69;580:3041:51;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;580:3041:51;2423:17:79;;;;2416:25;:::i;:::-;-1:-1:-1;580:3041:51;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;580:3041:51;;;12870:22:69;580:3041:51;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;580:3041:51;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;2301:412:79:o","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":3491,"length":20}]}}},"methodIdentifiers":{"applyFinalityChanges()":"0df14461","commitParentFinality((uint256,bytes32))":"11196974","storeValidatorChanges(((uint8,bytes,address),uint64)[])":"e49a547d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ParentFinalityAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"applyFinalityChanges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"finality\",\"type\":\"tuple\"}],\"name\":\"commitParentFinality\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"hasCommittedBefore\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"previousFinality\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum StakingOperation\",\"name\":\"op\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"internalType\":\"struct StakingChange\",\"name\":\"change\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct StakingChangeRequest[]\",\"name\":\"changeRequests\",\"type\":\"tuple[]\"}],\"name\":\"storeValidatorChanges\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"applyFinalityChanges()\":{\"returns\":{\"_0\":\"configurationNumber The configuration number of the changes set that has been confirmed.\"}},\"commitParentFinality((uint256,bytes32))\":{\"params\":{\"finality\":\"- the parent finality\"},\"returns\":{\"hasCommittedBefore\":\"A flag that indicates if a finality record has been committed before.\",\"previousFinality\":\"The previous finality information.\"}},\"storeValidatorChanges(((uint8,bytes,address),uint64)[])\":{\"params\":{\"changeRequests\":\"- the validator changes\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"applyFinalityChanges()\":{\"notice\":\"Apply all changes committed through the commitment of parent finality.\"},\"commitParentFinality((uint256,bytes32))\":{\"notice\":\"commit the ipc parent finality into storage and returns the previous committed finality This is useful to understand if the finalities are consistent or if there have been reorgs. If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash.\"},\"storeValidatorChanges(((uint8,bytes,address),uint64)[])\":{\"notice\":\"Store the validator change requests from parent.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/TopDownFinalityFacet.sol\":\"TopDownFinalityFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"InvalidConfigurationNumber"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[],"type":"error","name":"OldConfigurationNumber"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ParentFinalityAlreadyCommitted"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"applyFinalityChanges","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct ParentFinality","name":"finality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"commitParentFinality","outputs":[{"internalType":"bool","name":"hasCommittedBefore","type":"bool"},{"internalType":"struct ParentFinality","name":"previousFinality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"struct StakingChangeRequest[]","name":"changeRequests","type":"tuple[]","components":[{"internalType":"struct StakingChange","name":"change","type":"tuple","components":[{"internalType":"enum StakingOperation","name":"op","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"address","name":"validator","type":"address"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"storeValidatorChanges"}],"devdoc":{"kind":"dev","methods":{"applyFinalityChanges()":{"returns":{"_0":"configurationNumber The configuration number of the changes set that has been confirmed."}},"commitParentFinality((uint256,bytes32))":{"params":{"finality":"- the parent finality"},"returns":{"hasCommittedBefore":"A flag that indicates if a finality record has been committed before.","previousFinality":"The previous finality information."}},"storeValidatorChanges(((uint8,bytes,address),uint64)[])":{"params":{"changeRequests":"- the validator changes"}}},"version":1},"userdoc":{"kind":"user","methods":{"applyFinalityChanges()":{"notice":"Apply all changes committed through the commitment of parent finality."},"commitParentFinality((uint256,bytes32))":{"notice":"commit the ipc parent finality into storage and returns the previous committed finality This is useful to understand if the finalities are consistent or if there have been reorgs. If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash."},"storeValidatorChanges(((uint8,bytes,address),uint64)[])":{"notice":"Store the validator change requests from parent."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/TopDownFinalityFacet.sol":"TopDownFinalityFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","id":40072,"exportedSymbols":{"FilAddress":[1428],"GatewayActorModifiers":[43137],"LibGateway":[42944],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"Membership":[50218],"ParentFinality":[49918],"ParentValidatorsTracker":[50197],"StakingChangeRequest":[50110],"TopDownFinalityFacet":[40071],"Validator":[50211],"ValidatorInfo":[50161],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:3576:51","nodes":[{"id":39872,"nodeType":"PragmaDirective","src":"46:23:51","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39874,"nodeType":"ImportDirective","src":"71:75:51","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":39873,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"79:21:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39876,"nodeType":"ImportDirective","src":"147:58:51","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39875,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"155:14:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39881,"nodeType":"ImportDirective","src":"206:100:51","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":39877,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"214:9:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39878,"name":"ValidatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50161,"src":"225:13:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39879,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"240:20:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39880,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"262:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39883,"nodeType":"ImportDirective","src":"307:52:51","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":39882,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"315:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39885,"nodeType":"ImportDirective","src":"361:56:51","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":39884,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"369:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39888,"nodeType":"ImportDirective","src":"419:79:51","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":39886,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"427:23:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39887,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"452:12:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39891,"nodeType":"ImportDirective","src":"499:79:51","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":39889,"name":"LibValidatorTracking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46440,"src":"507:20:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39890,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"529:15:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40071,"nodeType":"ContractDefinition","src":"580:3041:51","nodes":[{"id":39896,"nodeType":"UsingForDirective","src":"641:29:51","nodes":[],"global":false,"libraryName":{"id":39894,"name":"FilAddress","nameLocations":["647:10:51"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"647:10:51"},"typeName":{"id":39895,"name":"address","nodeType":"ElementaryTypeName","src":"662:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":39900,"nodeType":"UsingForDirective","src":"675:55:51","nodes":[],"global":false,"libraryName":{"id":39897,"name":"LibValidatorTracking","nameLocations":["681:20:51"],"nodeType":"IdentifierPath","referencedDeclaration":46440,"src":"681:20:51"},"typeName":{"id":39899,"nodeType":"UserDefinedTypeName","pathNode":{"id":39898,"name":"ParentValidatorsTracker","nameLocations":["706:23:51"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"706:23:51"},"referencedDeclaration":50197,"src":"706:23:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}}},{"id":39904,"nodeType":"UsingForDirective","src":"735:39:51","nodes":[],"global":false,"libraryName":{"id":39901,"name":"LibValidatorSet","nameLocations":["741:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"741:15:51"},"typeName":{"id":39903,"nodeType":"UserDefinedTypeName","pathNode":{"id":39902,"name":"ValidatorSet","nameLocations":["761:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"761:12:51"},"referencedDeclaration":50190,"src":"761:12:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":39933,"nodeType":"FunctionDefinition","src":"1325:313:51","nodes":[],"body":{"id":39932,"nodeType":"Block","src":"1502:136:51","nodes":[],"statements":[{"expression":{"id":39923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39918,"name":"previousFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39916,"src":"1512:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39921,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39908,"src":"1563:8:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}],"expression":{"id":39919,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"1531:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1542:20:51","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":42104,"src":"1531:31:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentFinality_$49918_calldata_ptr_$returns$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality calldata) returns (struct ParentFinality memory)"}},"id":39922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:41:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"src":"1512:60:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"id":39924,"nodeType":"ExpressionStatement","src":"1512:60:51"},{"expression":{"id":39930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39925,"name":"hasCommittedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39913,"src":"1582:18:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39926,"name":"previousFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39916,"src":"1603:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"id":39927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1620:6:51","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49915,"src":"1603:23:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1630:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1603:28:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1582:49:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39931,"nodeType":"ExpressionStatement","src":"1582:49:51"}]},"documentation":{"id":39905,"nodeType":"StructuredDocumentation","src":"780:540:51","text":"@notice commit the ipc parent finality into storage and returns the previous committed finality\n This is useful to understand if the finalities are consistent or if there have been reorgs.\n If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash.\n @param finality - the parent finality\n @return hasCommittedBefore A flag that indicates if a finality record has been committed before.\n @return previousFinality The previous finality information."},"functionSelector":"11196974","implemented":true,"kind":"function","modifiers":[{"id":39911,"kind":"modifierInvocation","modifierName":{"id":39910,"name":"systemActorOnly","nameLocations":["1412:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"1412:15:51"},"nodeType":"ModifierInvocation","src":"1412:15:51"}],"name":"commitParentFinality","nameLocation":"1334:20:51","parameters":{"id":39909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39908,"mutability":"mutable","name":"finality","nameLocation":"1388:8:51","nodeType":"VariableDeclaration","scope":39933,"src":"1364:32:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":39907,"nodeType":"UserDefinedTypeName","pathNode":{"id":39906,"name":"ParentFinality","nameLocations":["1364:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"1364:14:51"},"referencedDeclaration":49918,"src":"1364:14:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"1354:48:51"},"returnParameters":{"id":39917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39913,"mutability":"mutable","name":"hasCommittedBefore","nameLocation":"1442:18:51","nodeType":"VariableDeclaration","scope":39933,"src":"1437:23:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39912,"name":"bool","nodeType":"ElementaryTypeName","src":"1437:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39916,"mutability":"mutable","name":"previousFinality","nameLocation":"1484:16:51","nodeType":"VariableDeclaration","scope":39933,"src":"1462:38:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":39915,"nodeType":"UserDefinedTypeName","pathNode":{"id":39914,"name":"ParentFinality","nameLocations":["1462:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"1462:14:51"},"referencedDeclaration":49918,"src":"1462:14:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"1436:65:51"},"scope":40071,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39952,"nodeType":"FunctionDefinition","src":"1763:173:51","nodes":[],"body":{"id":39951,"nodeType":"Block","src":"1867:69:51","nodes":[],"statements":[{"expression":{"arguments":[{"id":39948,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39938,"src":"1914:14:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}],"expression":{"expression":{"id":39943,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"1877:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1879:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"1877:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1897:16:51","memberName":"batchStoreChange","nodeType":"MemberAccess","referencedDeclaration":46261,"src":"1877:36:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr_$returns$__$attached_to$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata[] calldata)"}},"id":39949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1877:52:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39950,"nodeType":"ExpressionStatement","src":"1877:52:51"}]},"documentation":{"id":39934,"nodeType":"StructuredDocumentation","src":"1644:114:51","text":"@notice Store the validator change requests from parent.\n @param changeRequests - the validator changes"},"functionSelector":"e49a547d","implemented":true,"kind":"function","modifiers":[{"id":39941,"kind":"modifierInvocation","modifierName":{"id":39940,"name":"systemActorOnly","nameLocations":["1851:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"1851:15:51"},"nodeType":"ModifierInvocation","src":"1851:15:51"}],"name":"storeValidatorChanges","nameLocation":"1772:21:51","parameters":{"id":39939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39938,"mutability":"mutable","name":"changeRequests","nameLocation":"1826:14:51","nodeType":"VariableDeclaration","scope":39952,"src":"1794:46:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":39936,"nodeType":"UserDefinedTypeName","pathNode":{"id":39935,"name":"StakingChangeRequest","nameLocations":["1794:20:51"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"1794:20:51"},"referencedDeclaration":50110,"src":"1794:20:51","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":39937,"nodeType":"ArrayTypeName","src":"1794:22:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"1793:48:51"},"returnParameters":{"id":39942,"nodeType":"ParameterList","parameters":[],"src":"1867:0:51"},"scope":40071,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40070,"nodeType":"FunctionDefinition","src":"2134:1485:51","nodes":[],"body":{"id":40069,"nodeType":"Block","src":"2208:1411:51","nodes":[],"statements":[{"assignments":[39961],"declarations":[{"constant":false,"id":39961,"mutability":"mutable","name":"configurationNumber","nameLocation":"2291:19:51","nodeType":"VariableDeclaration","scope":40069,"src":"2284:26:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":39960,"name":"uint64","nodeType":"ElementaryTypeName","src":"2284:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":39968,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"id":39962,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2313:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2315:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"2313:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2333:7:51","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"2313:27:51","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":39965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2341:23:51","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"2313:51:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":39966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2367:1:51","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2313:55:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2284:84:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39969,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"2566:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":39970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2588:1:51","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2566:23:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":39972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2565:25:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"expression":{"id":39973,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2594:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2596:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"2594:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2614:7:51","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"2594:27:51","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":39976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:24:51","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"2594:52:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2565:81:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39981,"nodeType":"IfStatement","src":"2475:264:51","trueBody":{"id":39980,"nodeType":"Block","src":"2657:82:51","statements":[{"expression":{"hexValue":"30","id":39978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2727:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":39959,"id":39979,"nodeType":"Return","src":"2720:8:51"}]}},{"expression":{"arguments":[{"id":39987,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"2812:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":39982,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2778:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2780:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"2778:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2798:13:51","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46439,"src":"2778:33:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$","typeString":"function (struct ParentValidatorsTracker storage pointer,uint64)"}},"id":39988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2778:54:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39989,"nodeType":"ExpressionStatement","src":"2778:54:51"},{"assignments":[39994],"declarations":[{"constant":false,"id":39994,"mutability":"mutable","name":"validators","nameLocation":"2897:10:51","nodeType":"VariableDeclaration","scope":40069,"src":"2880:27:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":39992,"name":"address","nodeType":"ElementaryTypeName","src":"2880:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39993,"nodeType":"ArrayTypeName","src":"2880:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":40000,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":39995,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2910:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2912:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"2910:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2930:10:51","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"2910:30:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":39998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2941:20:51","memberName":"listActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44489,"src":"2910:51:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (address[] memory)"}},"id":39999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2910:53:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2880:83:51"},{"assignments":[40002],"declarations":[{"constant":false,"id":40002,"mutability":"mutable","name":"vLength","nameLocation":"2981:7:51","nodeType":"VariableDeclaration","scope":40069,"src":"2973:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40001,"name":"uint256","nodeType":"ElementaryTypeName","src":"2973:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40005,"initialValue":{"expression":{"id":40003,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39994,"src":"2991:10:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":40004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3002:6:51","memberName":"length","nodeType":"MemberAccess","src":"2991:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2973:35:51"},{"assignments":[40010],"declarations":[{"constant":false,"id":40010,"mutability":"mutable","name":"vs","nameLocation":"3037:2:51","nodeType":"VariableDeclaration","scope":40069,"src":"3018:21:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":40008,"nodeType":"UserDefinedTypeName","pathNode":{"id":40007,"name":"Validator","nameLocations":["3018:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"3018:9:51"},"referencedDeclaration":50211,"src":"3018:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":40009,"nodeType":"ArrayTypeName","src":"3018:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"id":40017,"initialValue":{"arguments":[{"id":40015,"name":"vLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40002,"src":"3058:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3042:15:51","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":40012,"nodeType":"UserDefinedTypeName","pathNode":{"id":40011,"name":"Validator","nameLocations":["3046:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"3046:9:51"},"referencedDeclaration":50211,"src":"3046:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":40013,"nodeType":"ArrayTypeName","src":"3046:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":40016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3042:24:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3018:48:51"},{"body":{"id":40056,"nodeType":"Block","src":"3107:306:51","statements":[{"assignments":[40025],"declarations":[{"constant":false,"id":40025,"mutability":"mutable","name":"addr","nameLocation":"3129:4:51","nodeType":"VariableDeclaration","scope":40056,"src":"3121:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40024,"name":"address","nodeType":"ElementaryTypeName","src":"3121:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40029,"initialValue":{"baseExpression":{"id":40026,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39994,"src":"3136:10:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":40028,"indexExpression":{"id":40027,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3147:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3136:13:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3121:28:51"},{"assignments":[40032],"declarations":[{"constant":false,"id":40032,"mutability":"mutable","name":"info","nameLocation":"3185:4:51","nodeType":"VariableDeclaration","scope":40056,"src":"3163:26:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo"},"typeName":{"id":40031,"nodeType":"UserDefinedTypeName","pathNode":{"id":40030,"name":"ValidatorInfo","nameLocations":["3163:13:51"],"nodeType":"IdentifierPath","referencedDeclaration":50161,"src":"3163:13:51"},"referencedDeclaration":50161,"src":"3163:13:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo"}},"visibility":"internal"}],"id":40039,"initialValue":{"baseExpression":{"expression":{"expression":{"expression":{"id":40033,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3192:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":40034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3194:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"3192:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":40035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3212:10:51","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"3192:30:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":40036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3223:10:51","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"3192:41:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":40038,"indexExpression":{"id":40037,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40025,"src":"3234:4:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3192:47:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3163:76:51"},{"expression":{"id":40050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":40040,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40010,"src":"3253:2:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":40042,"indexExpression":{"id":40041,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3256:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3253:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":40044,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40032,"src":"3280:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo storage pointer"}},"id":40045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3285:19:51","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"3280:24:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40046,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40025,"src":"3312:4:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":40047,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40032,"src":"3328:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo storage pointer"}},"id":40048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3333:8:51","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"3328:13:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":40043,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"3261:9:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":40049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3272:6:51","3306:4:51","3318:8:51"],"names":["weight","addr","metadata"],"nodeType":"FunctionCall","src":"3261:82:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"src":"3253:90:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"id":40051,"nodeType":"ExpressionStatement","src":"3253:90:51"},{"id":40055,"nodeType":"UncheckedBlock","src":"3357:46:51","statements":[{"expression":{"id":40053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3385:3:51","subExpression":{"id":40052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3387:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40054,"nodeType":"ExpressionStatement","src":"3385:3:51"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3092:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40022,"name":"vLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40002,"src":"3096:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3092:11:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40057,"initializationExpression":{"assignments":[40019],"declarations":[{"constant":false,"id":40019,"mutability":"mutable","name":"i","nameLocation":"3089:1:51","nodeType":"VariableDeclaration","scope":40057,"src":"3081:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40018,"name":"uint256","nodeType":"ElementaryTypeName","src":"3081:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40020,"nodeType":"VariableDeclarationStatement","src":"3081:9:51"},"nodeType":"ForStatement","src":"3076:337:51"},{"expression":{"arguments":[{"arguments":[{"id":40062,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"3538:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":40063,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40010,"src":"3571:2:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"id":40061,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"3505:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Membership_$50218_storage_ptr_$","typeString":"type(struct Membership storage pointer)"}},"id":40064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3517:19:51","3559:10:51"],"names":["configurationNumber","validators"],"nodeType":"FunctionCall","src":"3505:70:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}],"expression":{"id":40058,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3477:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":40060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3488:16:51","memberName":"updateMembership","nodeType":"MemberAccess","referencedDeclaration":42258,"src":"3477:27:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Membership_$50218_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":40065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3477:99:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40066,"nodeType":"ExpressionStatement","src":"3477:99:51"},{"expression":{"id":40067,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"3593:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":39959,"id":40068,"nodeType":"Return","src":"3586:26:51"}]},"documentation":{"id":39953,"nodeType":"StructuredDocumentation","src":"1942:187:51","text":"@notice Apply all changes committed through the commitment of parent finality.\n @return configurationNumber The configuration number of the changes set that has been confirmed."},"functionSelector":"0df14461","implemented":true,"kind":"function","modifiers":[{"id":39956,"kind":"modifierInvocation","modifierName":{"id":39955,"name":"systemActorOnly","nameLocations":["2175:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"2175:15:51"},"nodeType":"ModifierInvocation","src":"2175:15:51"}],"name":"applyFinalityChanges","nameLocation":"2143:20:51","parameters":{"id":39954,"nodeType":"ParameterList","parameters":[],"src":"2163:2:51"},"returnParameters":{"id":39959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40070,"src":"2200:6:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":39957,"name":"uint64","nodeType":"ElementaryTypeName","src":"2200:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2199:8:51"},"scope":40071,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":39892,"name":"GatewayActorModifiers","nameLocations":["613:21:51"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"613:21:51"},"id":39893,"nodeType":"InheritanceSpecifier","src":"613:21:51"}],"canonicalName":"TopDownFinalityFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[40071,43137],"name":"TopDownFinalityFacet","nameLocation":"589:20:51","scope":40072,"usedErrors":[37368,37372,37418,37486,37492,37494,37496,37498]}],"license":"MIT OR Apache-2.0"},"id":51} \ No newline at end of file +{"abi":[{"type":"function","name":"applyFinalityChanges","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"commitParentFinality","inputs":[{"name":"finality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"hasCommittedBefore","type":"bool","internalType":"bool"},{"name":"previousFinality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"storeValidatorChanges","inputs":[{"name":"changeRequests","type":"tuple[]","internalType":"struct StakingChangeRequest[]","components":[{"name":"change","type":"tuple","internalType":"struct StakingChange","components":[{"name":"op","type":"uint8","internalType":"enum StakingOperation"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"validator","type":"address","internalType":"address"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"InvalidConfigurationNumber","inputs":[]},{"type":"error","name":"NotSystemActor","inputs":[]},{"type":"error","name":"OldConfigurationNumber","inputs":[]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ParentFinalityAlreadyCommitted","inputs":[]}],"bytecode":{"object":"0x60808060405234610016576129a9908161001c8239f35b600080fdfe604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611980565b61140d60219182546114e7565b90556111a9565b92500155611980565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cd2565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386126f2565b60019283825260258652828a832054168861155282611ed1565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611e66565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612745565b926115d487611ed1565b935b818682161161161a575b505097516001600160a01b0390951685525050505060208101919091529091506000805160206129548339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611ed1565b1015611652579061164b8392826128a4565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc956027916116936122cc565b8352522054166116d0575b6116a78461225d565b6116b083611e66565b516001600160a01b03928316815292909116602083015281906040820190565b6116d984612087565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c8361225d565b97929150611723859497969561270e565b9761172d85611ed1565b976117378a6121ee565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611e53565b906126a2565b9b909b5b8b111561178757611779908c61280b565b6117828b6121ee565b61173e565b505093516001600160a01b039095168552505050506020810191909152909250600080516020612934833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611ed1565b611768565b505050505050506115bc9192939550600080516020612934833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff9391841661194e578360205460081c1684602354161061191c576118476126f2565b60018352602560205286832054168561185f82611ed1565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611e66565b6115bc6000805160206129548339815191529361159c6118c284612745565b6118cb85611ed1565b90612199565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc946119056122cc565b815260276020522054166116d0576116a78461225d565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c8361225d565b505050506115bc6000805160206129348339815191529361159c6119718461270e565b61197a85611ed1565b9061260f565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611ba8578082526024835287868320541615611b97578415611aef57506119cd8361270e565b976119d784611ed1565b985b6001808a83161115611ae05781617fff911c1690818452602585528a611a03848a87205416611ed1565b1115611a1857611a13908261280b565b6119d9565b505091939597509193955b6026541615611ad857611a346126f2565b600182526025835285818184205416926028611a4f85611ed1565b95611a58612700565b600183525220541691611a6a83611ed1565b11611a9f57505091516001600160a01b03909216825260208201526000805160206129348339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad06122cc565b61169e611f20565b505050505050565b50509193959750919395611a23565b829450611b237f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799612415565b8651908152a160265416611b375750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b65612700565b6001835252205416611b8b611b7982611ed1565b92611b82611f20565b61159c8361225d565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611c97575061fffe9193611bc586612745565b93611bcf87611ed1565b9480966001958692831b168160265416925b611c23575b505099516001600160a01b0390971687525050505060208301939093525091925060008051602061295483398151915291905080604081016115bc565b818116838111611c91578d9084811015611c7557505080611c46611c4c92611e53565b90612205565b9890985b881015611c7057611c6190896128a4565b611c6a886121ee565b86611be1565b611be6565b865260288552852054909890611c8c908716611ed1565b611c50565b50611be6565b94915050611ccb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250612087565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d75578084526024855281888520541615611d64578615611d335750611a23611d248661270e565b611d2d87611ed1565b906125c0565b849193979650611b237f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93966124a0565b8751632a55ca5360e01b8152600490fd5b8698979894939492919215611c97575061fffe9193611d9386612745565b93611d9d87611ed1565b9480966001958692831b168160265416925b611df057505099516001600160a01b0390971687525050505060208301939093525091925060008051602061295483398151915291905080604081016115bc565b818116838111611c91578d9084811015611e3757505080611c46611e1392611e53565b9890985b881015611c7057611e2890896128a4565b611e31886121ee565b86611daf565b865260288552852054909890611e4e908716611ed1565b611e17565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e7e8360265416611e53565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611f02576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff80602654169081156120755790600190611f3f818311156127ee565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611fd991908a611fca83610e27565b1690602654161760265561276a565b848252808652611fed848484205416611ed1565b95859860028160265416995b61200b575b5050505050505050505050565b8181168a811161206f578a811015612054575080611c4661202b92611e53565b9a909a5b89101561204f57612040908b6128a4565b6120498a6121ee565b87611ff9565b611ffe565b859b919b5283835261206a878787205416611ed1565b61202f565b50611ffe565b6040516340d9b01160e01b8152600490fd5b61209090612745565b61ffff908160265416916120a483836128a4565b806120ae84610e27565b1661ffff1960265416176026556120c48361276a565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b03926040926121046120fe868686205416611ed1565b87612199565b8252808652612117848484205416611ed1565b9585986001988997881b168160265416995b61213a575050505050505050505050565b8181168a811161206f578a81101561217e575080611c4661215a92611e53565b9a909a5b89101561204f5761216f908b6128a4565b6121788a6121ee565b87612129565b859b919b52838352612194878787205416611ed1565b61215e565b9190915b60018061ffff831611156121e85781617fff911c1690836121d360008481526028602052604060018060a01b0391205416611ed1565b10156121e8576121e390826128a4565b61219d565b50509050565b60011b906201fffe61fffe83169216820361021e57565b91909161ffff92838216600052602860205261224860018060a01b036122318160406000205416611ed1565b958316600052602860205260406000205416611ed1565b908185106122565750509190565b9350919050565b6102ed90611d2d61ffff916122758360235416611e53565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611ed1565b61ffff806023541690811561207557906001906122eb818311156127ee565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161238591908a61237683610e27565b169060235416176023556127ac565b848252808652612399848484205416611ed1565b95859860028160235416995b6123b6575050505050505050505050565b8181168a811161206f578a8110156123fa57508061175e6123d692611e53565b9a909a5b89111561204f576123eb908b61280b565b6123f48a6121ee565b876123a5565b859b919b52838352612410878787205416611ed1565b6123da565b61241e9061270e565b61ffff90816023541691612432838361280b565b8061243c84610e27565b1661ffff196023541617602355612452836127ac565b81168092146107495761197a826102ed93600052602560205260018060a01b039061248c6124868360406000205416611ed1565b856125c0565b600052602560205260406000205416611ed1565b6124a99061270e565b9061ffff908160235416906124be828561280b565b826124c883610e27565b1661ffff1960235416176023556124de826127ac565b8284168092146125ba5760009291929183835260259260209484865260018060a01b039160409161251c612516858585205416611ed1565b8a6125c0565b815285875261252f838383205416611ed1565b95612539896121ee565b978560235416985b8681168a81116125ac578a81101561259157508061175e61256192611e53565b9a909a5b89111561258457612576908b61280b565b61257f8a6121ee565b612541565b5050505050505092505050565b849b919b528282526125a7868686205416611ed1565b612565565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156121e85781617fff911c1690836125fa60008481526025602052604060018060a01b0391205416611ed1565b11156121e85761260a908261280b565b6125c4565b91612619836121ee565b600061ffff918260235416905b838116828111612698578281101561267257508061175e61264692611e53565b9690965b8611156126695761265b908761280b565b612664866121ee565b612626565b50505050915050565b835260256020526040832054909690612693906001600160a01b0316611ed1565b61264a565b5050505050915050565b919061ffff80841660005260256020526126e360018060a01b036126cc8160406000205416611ed1565b928416600052602560205260406000205416611ed1565b93848211156122565750509190565b61ffff602354161561207557565b61ffff602654161561207557565b6001600160a01b031660009081526024602052604090205461ffff1690811561273357565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff1690811561273357565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156127f557565b634e487b7160e01b600052600160045260246000fd5b61283061ffff808060235416931693612826848611156127ee565b16918211156127ee565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b6128bf61ffff808060265416931693612826848611156127ee565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033","sourceMap":"580:3041:51:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":3519,"length":20}]}}},"deployedBytecode":{"object":"0x604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611980565b61140d60219182546114e7565b90556111a9565b92500155611980565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cd2565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386126f2565b60019283825260258652828a832054168861155282611ed1565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611e66565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612745565b926115d487611ed1565b935b818682161161161a575b505097516001600160a01b0390951685525050505060208101919091529091506000805160206129548339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611ed1565b1015611652579061164b8392826128a4565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc956027916116936122cc565b8352522054166116d0575b6116a78461225d565b6116b083611e66565b516001600160a01b03928316815292909116602083015281906040820190565b6116d984612087565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c8361225d565b97929150611723859497969561270e565b9761172d85611ed1565b976117378a6121ee565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611e53565b906126a2565b9b909b5b8b111561178757611779908c61280b565b6117828b6121ee565b61173e565b505093516001600160a01b039095168552505050506020810191909152909250600080516020612934833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611ed1565b611768565b505050505050506115bc9192939550600080516020612934833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff9391841661194e578360205460081c1684602354161061191c576118476126f2565b60018352602560205286832054168561185f82611ed1565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611e66565b6115bc6000805160206129548339815191529361159c6118c284612745565b6118cb85611ed1565b90612199565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc946119056122cc565b815260276020522054166116d0576116a78461225d565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c8361225d565b505050506115bc6000805160206129348339815191529361159c6119718461270e565b61197a85611ed1565b9061260f565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611ba8578082526024835287868320541615611b97578415611aef57506119cd8361270e565b976119d784611ed1565b985b6001808a83161115611ae05781617fff911c1690818452602585528a611a03848a87205416611ed1565b1115611a1857611a13908261280b565b6119d9565b505091939597509193955b6026541615611ad857611a346126f2565b600182526025835285818184205416926028611a4f85611ed1565b95611a58612700565b600183525220541691611a6a83611ed1565b11611a9f57505091516001600160a01b03909216825260208201526000805160206129348339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad06122cc565b61169e611f20565b505050505050565b50509193959750919395611a23565b829450611b237f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799612415565b8651908152a160265416611b375750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b65612700565b6001835252205416611b8b611b7982611ed1565b92611b82611f20565b61159c8361225d565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611c97575061fffe9193611bc586612745565b93611bcf87611ed1565b9480966001958692831b168160265416925b611c23575b505099516001600160a01b0390971687525050505060208301939093525091925060008051602061295483398151915291905080604081016115bc565b818116838111611c91578d9084811015611c7557505080611c46611c4c92611e53565b90612205565b9890985b881015611c7057611c6190896128a4565b611c6a886121ee565b86611be1565b611be6565b865260288552852054909890611c8c908716611ed1565b611c50565b50611be6565b94915050611ccb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250612087565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d75578084526024855281888520541615611d64578615611d335750611a23611d248661270e565b611d2d87611ed1565b906125c0565b849193979650611b237f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93966124a0565b8751632a55ca5360e01b8152600490fd5b8698979894939492919215611c97575061fffe9193611d9386612745565b93611d9d87611ed1565b9480966001958692831b168160265416925b611df057505099516001600160a01b0390971687525050505060208301939093525091925060008051602061295483398151915291905080604081016115bc565b818116838111611c91578d9084811015611e3757505080611c46611e1392611e53565b9890985b881015611c7057611e2890896128a4565b611e31886121ee565b86611daf565b865260288552852054909890611e4e908716611ed1565b611e17565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e7e8360265416611e53565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611f02576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff80602654169081156120755790600190611f3f818311156127ee565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611fd991908a611fca83610e27565b1690602654161760265561276a565b848252808652611fed848484205416611ed1565b95859860028160265416995b61200b575b5050505050505050505050565b8181168a811161206f578a811015612054575080611c4661202b92611e53565b9a909a5b89101561204f57612040908b6128a4565b6120498a6121ee565b87611ff9565b611ffe565b859b919b5283835261206a878787205416611ed1565b61202f565b50611ffe565b6040516340d9b01160e01b8152600490fd5b61209090612745565b61ffff908160265416916120a483836128a4565b806120ae84610e27565b1661ffff1960265416176026556120c48361276a565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b03926040926121046120fe868686205416611ed1565b87612199565b8252808652612117848484205416611ed1565b9585986001988997881b168160265416995b61213a575050505050505050505050565b8181168a811161206f578a81101561217e575080611c4661215a92611e53565b9a909a5b89101561204f5761216f908b6128a4565b6121788a6121ee565b87612129565b859b919b52838352612194878787205416611ed1565b61215e565b9190915b60018061ffff831611156121e85781617fff911c1690836121d360008481526028602052604060018060a01b0391205416611ed1565b10156121e8576121e390826128a4565b61219d565b50509050565b60011b906201fffe61fffe83169216820361021e57565b91909161ffff92838216600052602860205261224860018060a01b036122318160406000205416611ed1565b958316600052602860205260406000205416611ed1565b908185106122565750509190565b9350919050565b6102ed90611d2d61ffff916122758360235416611e53565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611ed1565b61ffff806023541690811561207557906001906122eb818311156127ee565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161238591908a61237683610e27565b169060235416176023556127ac565b848252808652612399848484205416611ed1565b95859860028160235416995b6123b6575050505050505050505050565b8181168a811161206f578a8110156123fa57508061175e6123d692611e53565b9a909a5b89111561204f576123eb908b61280b565b6123f48a6121ee565b876123a5565b859b919b52838352612410878787205416611ed1565b6123da565b61241e9061270e565b61ffff90816023541691612432838361280b565b8061243c84610e27565b1661ffff196023541617602355612452836127ac565b81168092146107495761197a826102ed93600052602560205260018060a01b039061248c6124868360406000205416611ed1565b856125c0565b600052602560205260406000205416611ed1565b6124a99061270e565b9061ffff908160235416906124be828561280b565b826124c883610e27565b1661ffff1960235416176023556124de826127ac565b8284168092146125ba5760009291929183835260259260209484865260018060a01b039160409161251c612516858585205416611ed1565b8a6125c0565b815285875261252f838383205416611ed1565b95612539896121ee565b978560235416985b8681168a81116125ac578a81101561259157508061175e61256192611e53565b9a909a5b89111561258457612576908b61280b565b61257f8a6121ee565b612541565b5050505050505092505050565b849b919b528282526125a7868686205416611ed1565b612565565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156121e85781617fff911c1690836125fa60008481526025602052604060018060a01b0391205416611ed1565b11156121e85761260a908261280b565b6125c4565b91612619836121ee565b600061ffff918260235416905b838116828111612698578281101561267257508061175e61264692611e53565b9690965b8611156126695761265b908761280b565b612664866121ee565b612626565b50505050915050565b835260256020526040832054909690612693906001600160a01b0316611ed1565b61264a565b5050505050915050565b919061ffff80841660005260256020526126e360018060a01b036126cc8160406000205416611ed1565b928416600052602560205260406000205416611ed1565b93848211156122565750509190565b61ffff602354161561207557565b61ffff602654161561207557565b6001600160a01b031660009081526024602052604090205461ffff1690811561273357565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff1690811561273357565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156127f557565b634e487b7160e01b600052600160045260246000fd5b61283061ffff808060235416931693612826848611156127ee565b16918211156127ee565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b6128bf61ffff808060265416931693612826848611156127ee565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033","sourceMap":"580:3041:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;580:3041:51;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1914:14;4574:73:64;;;:::i;:::-;580:3041:51;1914:14;:::i;:::-;580:3041;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4574:73:64;;:::i;:::-;580:3041:51;;;;;;;:::i;:::-;;;;;;5710:20:63;580:3041:51;;;;5744:28:63;;;;5740:98;;580:3041:51;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5710:20:63;580:3041:51;;;1603:28;;580:3041;;;;;;;;;;;;;;;;;5740:98:63;580:3041:51;;-1:-1:-1;;;5795:32:63;;580:3041:51;;5795:32:63;580:3041:51;;;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;-1:-1:-1;;;;;4639:1:64;;:::i;:::-;580:3041:51;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;-1:-1:-1;580:3041:51;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2134:1485;2313:27;580:3041;-1:-1:-1;;;;;580:3041:51;;;-1:-1:-1;;580:3041:51;;;;;;2566:23;;;:::i;:::-;580:3041;;;;;;;;;2565:81;2475:264;;2812:19;;;:::i;:::-;580:3041;;;5816:27:69;580:3041:51;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;580:3041:51;;;;;:::i;:::-;;2313:19;;580:3041;;;;;;2367:1;5909:12:69;580:3041:51;;;5923:9:69;;;;;580:3041:51;;;;598:23:78;580:3041:51;;;;;;;;2367:1;;-1:-1:-1;;;;;580:3041:51;5950:60:69;5960:5;580:3041:51;5960:5:69;580:3041:51;5960:5:69;:::i;:::-;580:3041:51;5950:60:69;;:::i;:::-;580:3041:51;;;5909:12:69;;5923:9;;;;;;;;;;;580:3041:51;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;3081:9;;;580:3041;3092:11;;;;;;580:3041;;3505:70;580:3041;;;;;;;;;:::i;:::-;;;;;3505:70;;;580:3041;3505:70;:::i;:::-;2134:1485;:::o;3081:9::-;2367:1;;-1:-1:-1;;;;;3136:13:51;580:3041;3136:13;;:::i;:::-;580:3041;;;;;3192:41;580:3041;;;5816:27:69;580:3041:51;;;3280:24;;;580:3041;;;;;;;;:::i;:::-;;;3261:82;;;580:3041;3328:13;580:3041;:::i;:::-;3261:82;;;580:3041;3253:90;;;;:::i;:::-;;;;;;:::i;:::-;;580:3041;3081:9;;580:3041;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2475:264;2720:8;;;580:3041;2720:8;:::o;580:3041::-;;;;;;;;-1:-1:-1;;580:3041:51;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;6344:19:63;580:3041:51;;;;;;;;6344:19:63;-1:-1:-1;580:3041:51;;;;;-1:-1:-1;580:3041:51;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;6087:1976:63;580:3041:51;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6167:29:63;580:3041:51;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;6167:29:63;;;580:3041:51;6344:39:63;580:3041:51;;6344:44:63;;6340:621;;6087:1976;6344:19;;;;580:3041:51;;;;;;;;;;;6971:16:63;580:3041:51;;6971:16:63;580:3041:51;;;;;;6087:1976:63;-1:-1:-1;6971:16:63;580:3041:51;;;;;;;;;;;;;;;;;;;6344:39:63;580:3041:51;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;7042:21:63;;580:3041:51;;;;7306:9:63;;7317:15;;;;;;580:3041:51;;;;;;6344:39:63;580:3041:51;;;6344:39:63;580:3041:51;7817:25:63;;;7813:244;;7301:332;6087:1976;;;;:::o;7813:244::-;7888:15;;;;7813:244;7888:15;580:3041:51;;;;;;-1:-1:-1;;580:3041:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7863:23:63;;580:3041:51;-1:-1:-1;;;580:3041:51;;;;;;;;;-1:-1:-1;;;580:3041:51;;;;;;;;7306:9:63;7354:15;;;;;;7425:21;7389:60;7425:24;580:3041:51;7425:21:63;;;:24;:::i;:::-;;7389:33;;;:::i;:::-;:60;;:::i;:::-;580:3041:51;7306:9:63;;7350:214;7524:24;:21;;;:24;:::i;:::-;;580:3041:51;;;;;;;;;;;;;;;;;;;;:::i;:::-;7350:214:63;;580:3041:51;-1:-1:-1;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6971:16:63;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6340:621:63;580:3041:51;;;;;6442:36:63;580:3041:51;;6408:70:63;;;;6404:115;;6632:69;6628:139;;580:3041:51;;;;;;:::i;:::-;6344:19:63;580:3041:51;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6344:19:63;-1:-1:-1;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;-1:-1:-1;;;580:3041:51;;;-1:-1:-1;;580:3041:51;;;6862:48:63;;;;:::i;:::-;6858:93;;6340:621;;;;;6858:93;6930:7;;;:::o;580:3041:51:-;;;6344:39:63;580:3041:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6628:139:63;580:3041:51;;-1:-1:-1;;;6728:24:63;;6344:19;;6728:24;6404:115;6498:7;;;;;;;;:::o;8598:561::-;-1:-1:-1;;;;;8712:23:63;;;;;;;580:3041:51;;8739:23:63;;;;580:3041:51;;8712:50:63;8708:93;;8814:26;;;:::i;:::-;8844;;;:::i;:::-;8814:56;8810:99;;8922:14;580:3041:51;;8947:14:63;;580:3041:51;8922:46:63;8918:89;;9099:26;580:3041:51;;;;9039:26:63;;580:3041:51;9039:26:63;;;580:3041:51;;;;;;;;;:::i;:::-;9039:26:63;580:3041:51;9039:26:63;580:3041:51;;9039:26:63;;;;;;;;:::i;:::-;580:3041:51;9029:37:63;;9110:14;;580:3041:51;;9099:26:63;;;;;;580:3041:51;;;;;;;;:::i;:::-;9099:26:63;;;;;;;;:::i;:::-;580:3041:51;9089:37:63;;9144:8;8598:561;:::o;580:3041:51:-;;;;;;;;;;:::o;8132:387:63:-;8243:15;;580:3041:51;8275:29:63;580:3041:51;8319:9:63;;8314:161;8330:7;;;;;;8484:28;;;8132:387;:::o;8319:9::-;8380:15;;;8355:50;580:3041:51;8380:15:63;:18;:15;;;:18;:::i;:::-;;580:3041:51;8355:50:63;;:::i;:::-;580:3041:51;;8319:9:63;;;;4430:138:64;580:3041:51;;-1:-1:-1;;;4486:26:64;;:10;:26;;;580:3041:51;4486:26:64;580:3041:51;;;4486:24:64;:26;;;;;;;-1:-1:-1;4486:26:64;;;4430:138;4485:27;;4481:81;;4430:138::o;4481:81::-;580:3041:51;;-1:-1:-1;;;4535:16:64;;4486:26;;4535:16;4486:26;;;;;;;;;;;;;;;:::i;:::-;;;580:3041:51;;;;;;;;;;;;;4486:26:64;;;;;;;-1:-1:-1;4486:26:64;;;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;:::o;26893:415:69:-;27098:11;;27094:48;;27108:1;27168:10;;;;;;26893:415;;;:::o;27157:9::-;580:3041:51;;;;;;;;;;;;;;;;;;;26615:30:69;;:20;;;;;:::i;:::-;:30;580:3041:51;;;;;;;;;;;;;;;;26663:20:69;;;;:::i;:::-;580:3041:51;;;;;;;26709:20:69;;;;:::i;:::-;580:3041:51;26709:28:69;;;;580:3041:51;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;27108:1:69;580:3041:51;;;;;;;;;;;;26564:12:69;580:3041:51;;;;;;;;;:::i;:::-;;;3528:63:70;;;580:3041:51;;;3528:63:70;;;580:3041:51;;;;27108:1:69;580:3041:51;3489:15:70;580:3041:51;;;27108:1:69;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;27108:1:69;;580:3041:51;;;;-1:-1:-1;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;3636:23:70;;;;:::i;:::-;580:3041:51;-1:-1:-1;;;;;580:3041:51;26564:12:69;580:3041:51;;;26564:12:69;580:3041:51;26786:33:69;580:3041:51;;;;;;;;;26763:56:69;26759:122;;580:3041:51;;27157:9:69;;26759:122;580:3041:51;-1:-1:-1;;;26842:28:69;;580:3041:51;;26842:28:69;580:3041:51;27108:1:69;580:3041:51;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;27108:1:69;580:3041:51;;27108:1:69;580:3041:51;;27108:1:69;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27108:1:69;580:3041:51;;;;;27108:1:69;580:3041:51;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;580:3041:51;;;;;;-1:-1:-1;;580:3041:51;;;;:::o;27379:1594:69:-;;27514:12;580:3041:51;-1:-1:-1;;;;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;27491:59:69;;27487:227;580:3041:51;;;;;-1:-1:-1;;;27573:28:69;;;;;27487:227;-1:-1:-1;;;;;580:3041:51;;;;-1:-1:-1;;;;;580:3041:51;;27622:59:69;27618:96;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;27792:16:69;-1:-1:-1;;;;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;27810:24:69;;;-1:-1:-1;;;;;580:3041:51;;-1:-1:-1;580:3041:51;3893:15:70;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;27942:16:69;;;580:3041:51;;;;;;;;;;;;;27942:16:69;27977:41;;27942:16;;580:3041:51;;;;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;28038:26:69;580:3041:51;;28087:14:69;28038:46;580:3041:51;-1:-1:-1;580:3041:51;28038:46:69;580:3041:51;:::i;:::-;;;;-1:-1:-1;580:3041:51;3893:15:70;580:3041:51;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;-1:-1:-1;27942:16:69;580:3041:51;;;;;;;:::i;:::-;;;;;27792:16:69;;27973:810;28126:47;;;28139:34;28126:47;;28139:34;;28245:14;580:3041:51;;28245:14:69;;580:3041:51;:::i;:::-;;;;28234:44:69;;;580:3041:51;28234:44:69;580:3041:51;28234:44:69;;580:3041:51;;;;;;28234:44:69;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;580:3041:51;28296:26:69;580:3041:51;;28139:34:69;580:3041:51;-1:-1:-1;580:3041:51;28296:46:69;580:3041:51;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;28420:5:69;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;28139:34:69;580:3041:51;;;;;;;28420:5:69;:::i;:::-;27973:810;;580:3041:51;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;28420:5:69;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;28420:5:69;:::i;580:3041:51:-;;;;;;;28139:34:69;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28122:661:69;580:3041:51;;;;;;28493:14:69;;;580:3041:51;:::i;:::-;;;;;;28482:37:69;;580:3041:51;;;;28482:37:69;580:3041:51;-1:-1:-1;;;;;28482:37:69;;580:3041:51;28542:38:69;;28538:231;3893:15:70;;;580:3041:51;;10830:13:69;580:3041:51;-1:-1:-1;580:3041:51;10416:15:69;580:3041:51;;;;10416:55:69;580:3041:51;;;-1:-1:-1;580:3041:51;10416:46:69;580:3041:51;10416:55:69;:::i;:::-;580:3041:51;;-1:-1:-1;580:3041:51;;;;-1:-1:-1;580:3041:51;27942:16:69;10507:42;;580:3041:51;;;;10564:18:69;;:42;;;;28538:231;-1:-1:-1;10560:199:69;;;580:3041:51;;-1:-1:-1;580:3041:51;;;28139:34:69;580:3041:51;;;;;;;;;;:::i;:::-;10830:13:69;:::i;:::-;10856:39;:29;580:3041:51;;;10856:39:69;:::i;:::-;580:3041:51;;27973:810:69;;10560:199;10686:46;;;580:3041:51;10830:13:69;:::i;10564:42::-;10586:20;;;10564:42;;;28538:231;10258:13;580:3041:51;;-1:-1:-1;580:3041:51;10005:15:69;580:3041:51;;;10005:55:69;580:3041:51;;;-1:-1:-1;580:3041:51;10005:46:69;580:3041:51;10005:55:69;:::i;:::-;580:3041:51;;;;-1:-1:-1;580:3041:51;;;;-1:-1:-1;580:3041:51;10070:46:69;580:3041:51;10143:39:69;:29;580:3041:51;;;10143:39:69;:::i;:::-;580:3041:51;;10258:13:69;:::i;27810:24::-;;;28943:23;27810:24;28943:23;:::i;:::-;-1:-1:-1;;;27514:12:69;580:3041:51;;;;;;-1:-1:-1;;;580:3041:51;;;27514:12:69;580:3041:51;27379:1594:69:o;27618:96::-;27697:7;;;:::o;9330:540::-;;580:3041:51;;;;;;;-1:-1:-1;580:3041:51;9465:15:69;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;9580:22:69;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:69;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;580:3041:51:-;;;;;;;;;;:::o;11008:2209:69:-;;;580:3041:51;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;1317:17:79;580:3041:51;;;;;;;;;;;;11120:226:69;;580:3041:51;;;;;;;11124:21:69;580:3041:51;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;580:3041:51;;;;;4077:23:77;580:3041:51;;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;12866:229:69;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;580:3041:51;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;13168:42:69;;;;11008:2209::o;12866:229::-;3147:36:77;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;580:3041:51;;;;4619:7:77;;;4612:423;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;-1:-1:-1;;;;580:3041:51;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13008:56:69;580:3041:51;;;;13008:56:69;580:3041:51;4612:423:77;580:3041:51;;1991:25:79;580:3041:51;;;;;;;;;;;1952:17:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:69;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:79;12475:4:69;;;:::i;:::-;580:3041:51;;;;;;12495:140:69;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;580:3041:51;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;12495:140:69;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:78;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;580:3041:51;11124:21:69;580:3041:51;;4932:763:78;;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;-1:-1:-1;;;;580:3041:51;;;;;;;5556:5:78;;-1:-1:-1;;;;;;;;;;;;11260:55:69;-1:-1:-1;580:3041:51;;;;11260:55:69;580:3041:51;4971:413:78;580:3041:51;;;;;1952:17:79;580:3041:51;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;11260:55:69;4939:16:78;;;;;-1:-1:-1;;;;;;;;;;;4939:16:78;;;;11008:2209:69;-1:-1:-1;;;;;580:3041:51;;;-1:-1:-1;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;;11008:2209:69;;580:3041:51;;;;;11120:226:69;;580:3041:51;;;;;;;11124:21:69;580:3041:51;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;580:3041:51;;;4077:23:77;580:3041:51;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;-1:-1:-1;580:3041:51;;1317:17:79;580:3041:51;;;;;;;12866:229:69;;13168:42;;13141:11;;;;:::i;12866:229::-;13008:56;-1:-1:-1;;;;;;;;;;;3147:36:77;3308:5;3147:36;;;:::i;:::-;3209:30;;;:::i;:::-;3308:5;;:::i;12404:452:69:-;12475:4;;;;;12777:48;12475:4;;12777:48;12475:4;;;:::i;:::-;580:3041:51;;1317:17:79;580:3041:51;;;;;12495:140:69;;12684:11;;;:::i;11516:262::-;11675:11;;;;11706:41;;11675:11;;;;:::i;11120:226::-;2876:36:78;;;;11260:55:69;-1:-1:-1;;;;;;;;;;;2876:36:78;3035:3;2876:36;;;:::i;:::-;2936:30;;;:::i;:::-;3035:3;;:::i;13320:2014:69:-;;;580:3041:51;;;;;;;;;-1:-1:-1;;580:3041:51;;;;;1317:17:79;580:3041:51;;;;;;;;;;;;13428:421:69;;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;580:3041:51;;;;;4277:7:78;;;;580:3041:51;;;;;;;;;1952:17:79;580:3041:51;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;13432:22:69;580:3041:51;;14638:37:69;14634:74;;4023:26:77;;:::i;:::-;580:3041:51;;;1952:17:79;580:3041:51;;;;;;;;;4129:25:77;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;580:3041:51;;;;;;;4129:25:77;;;;:::i;:::-;-1:-1:-1;14901:358:69;;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;-1:-1:-1;;;;;;;;;;;15274:53:69;580:3041:51;;;;15274:53:69;580:3041:51;14901:358:69;14979:4;;;;15176:52;;14979:4;;;:::i;:::-;15025;;:::i;14634:74::-;14691:7;;;;;;:::o;4277::78:-;;;;;;;;;;;;;14049:508:69;14126:9;;;;14155:30;14126:9;;;;;;;;;:::i;:::-;580:3041:51;;;;;14155:30:69;13432:22;580:3041:51;;14200:326:69;;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:77;4077:23;4023:26;;;;:::i;:::-;580:3041:51;;;;;;;14472:39:69;4129:25:77;;;:::i;:::-;14378:4:69;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;580:3041:51;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:77;580:3041:51;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;580:3041:51;;;;;;;;;13432:22:69;580:3041:51;;5287:763:77;580:3041:51;;;5287:763:77;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;-1:-1:-1;;;;580:3041:51;;;;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;;;;;;;;;;;;13764:54:69;580:3041:51;-1:-1:-1;580:3041:51;;;;13764:54:69;580:3041:51;5287:763:77;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;580:3041:51;;1952:17:79;580:3041:51;;;;;;;;1991:25:79;;580:3041:51;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13490:185:69;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;580:3041:51;;;;13605:31:69;13654:7::o;13320:2014::-;-1:-1:-1;;;;;580:3041:51;;;-1:-1:-1;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;;;;13320:2014:69;;580:3041:51;;;;;;13428:421:69;;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;3422:3;3263:36;;;:::i;:::-;3323:30;;;:::i;:::-;3422:3;;:::i;14049:508:69:-;14126:9;;;;;;;14155:30;14126:9;;;:::i;13883:106::-;580:3041:51;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;;;;13490:185;;3601:36:77;580:3041:51;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;580:3041:51;;;;;;;;;13432:22:69;580:3041:51;;5287:763:77;580:3041:51;;;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;-1:-1:-1;;;;580:3041:51;;;;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;;;;;;;;;;;;13764:54:69;580:3041:51;-1:-1:-1;580:3041:51;;;;13764:54:69;580:3041:51;5287:763:77;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;580:3041:51;;1952:17:79;580:3041:51;;;;;;;;1991:25:79;;580:3041:51;;1991:25:79;:::i;:::-;5326:412:77;;580:3041:51;;;;;;;;;;;;;:::o;998:417:77:-;1401:5;998:417;1301:30;580:3041:51;;1119:19:77;580:3041:51;12499:22:69;580:3041:51;;1119:19:77;:::i;:::-;580:3041:51;;;;;;;;;;-1:-1:-1;580:3041:51;1149:23:77;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;1200:23:77;580:3041:51;;;-1:-1:-1;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;12499:22:69;580:3041:51;;;12499:22:69;580:3041:51;4525:375:69;580:3041:51;;;;;;;;;;4697:24:69;4668:53;4697:24;;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;4745:21:69;580:3041:51;;;;;;;4525:375:69:o;4664:230::-;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;4831:21:69;580:3041:51;;;;;;4831:52:69;580:3041:51;;4525:375:69:o;1545:401:77:-;580:3041:51;;13432:22:69;580:3041:51;;1044:14:79;;;1040:61;;580:3041:51;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;580:3041:51;;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1799:4:77;;580:3041:51;1766:8:77;;580:3041:51;1766:8:77;:::i;:::-;580:3041:51;;13432:22:69;580:3041:51;;;13432:22:69;580:3041:51;1799:4:77;:::i;:::-;580:3041:51;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;5160:26;1952:17:79;580:3041:51;13432:22:69;580:3041:51;;5287:763:77;580:3041:51;;;5287:763:77;1545:401;;;;;;;;;;;:::o;5287:763::-;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;1040:61:79;580:3041:51;;-1:-1:-1;;;1081:9:79;;;;;2081:787:77;2210:36;2081:787;2210:36;:::i;:::-;580:3041:51;;;12499:22:69;580:3041:51;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;580:3041:51;;;12499:22:69;580:3041:51;;;12499:22:69;580:3041:51;2415:4:77;;;:::i;:::-;580:3041:51;;;2435:11:77;;;2431:48;;-1:-1:-1;580:3041:51;-1:-1:-1;;580:3041:51;;;;1952:17:79;580:3041:51;;;;;;;;;;;;;;2668:5:77;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;580:3041:51;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2854:5:77;;580:3041:51;;;;;;;;;12499:22:69;580:3041:51;;5287:763:77;580:3041:51;;;2081:787:77;;;;;;;;;;;:::o;5287:763::-;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;5326:412:77;;4443:598;;;;4612:423;4625:1;580:3041:51;;;;4619:7:77;;;;580:3041:51;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;580:3041:51;;;1952:17:79;580:3041:51;;;;;;;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;580:3041:51:-;;;;;;;;;;;;;;:::o;6117:442:77:-;;;;580:3041:51;;;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;1991:25:79;580:3041:51;;;;;1991:25:79;580:3041:51;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;580:3041:51;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;6662:7:77;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:77;;-1:-1:-1;6490:21:77:o;924:417:78:-;1327:5;924:417;1227:30;580:3041:51;;1045:19:78;580:3041:51;11124:21:69;580:3041:51;;1045:19:78;:::i;:::-;580:3041:51;;;;;;;;;;-1:-1:-1;580:3041:51;1075:23:78;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;1126:23:78;580:3041:51;;;-1:-1:-1;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;11124:21:69;580:3041:51;;;11124:21:69;580:3041:51;1227:30:78;:::i;1408:401::-;580:3041:51;;11124:21:69;580:3041:51;;1044:14:79;;;1040:61;;580:3041:51;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;580:3041:51;;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1662:4:78;;580:3041:51;1629:8:78;;580:3041:51;1629:8:78;:::i;:::-;580:3041:51;;11124:21:69;580:3041:51;;;11124:21:69;580:3041:51;1662:4:78;:::i;:::-;580:3041:51;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4715:986:78;;4828:25;1952:17:79;580:3041:51;11124:21:69;580:3041:51;;4932:763:78;580:3041:51;;;1408:401:78;;;;;;;;;;;:::o;4932:763::-;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4971:413:78;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;580:3041:51;;;13888:21:69;580:3041:51;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;580:3041:51;;;13888:21:69;580:3041:51;;;13888:21:69;580:3041:51;2215:4:78;;;:::i;:::-;580:3041:51;;2235:11:78;;;2231:48;;1991:25:79;580:3041:51;2648:3:78;580:3041:51;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;;;;;;2466:3:78;1991:25:79;580:3041:51;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;1881:779:78:-;2010:36;1881:779;2010:36;:::i;:::-;580:3041:51;;;;13888:21:69;580:3041:51;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;580:3041:51;;;13888:21:69;580:3041:51;;;13888:21:69;580:3041:51;2215:4:78;;;:::i;:::-;580:3041:51;;;2235:11:78;;;2231:48;;-1:-1:-1;;;;580:3041:51;;;;1952:17:79;580:3041:51;;;;;;;;;;;;;;2466:3:78;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;580:3041:51;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2648:3:78;4846:7;2648:3;4846:7;:::i;:::-;4863:18;580:3041:51;13888:21:69;580:3041:51;;4932:763:78;;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;580:3041:51;;;;4277:7:78;;;;580:3041:51;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;580:3041:51;;;1952:17:79;580:3041:51;;;;;;;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4715:986;;4846:7;;;:::i;:::-;-1:-1:-1;580:3041:51;;;11124:21:69;580:3041:51;;4932:763:78;;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;4715:986::o;4971:413::-;580:3041:51;;1952:17:79;580:3041:51;;;;;;;;;1991:25:79;;-1:-1:-1;;;;;580:3041:51;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;4715:986::o;5763:443::-;;;580:3041:51;;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;1991:25:79;580:3041:51;;;;;1991:25:79;580:3041:51;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;580:3041:51;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;6308:7:78;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:79:-;580:3041:51;11124:21:69;580:3041:51;;1044:14:79;1040:61;;974:133::o;:::-;580:3041:51;13432:22:69;580:3041:51;;1044:14:79;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;1474:17:79;580:3041:51;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1512:71::-;580:3041:51;;-1:-1:-1;;;1547:25:79;;;;;1363:226;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;1474:17:79;580:3041:51;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1595:184::-;580:3041:51;;-1:-1:-1;580:3041:51;;;1671:17:79;580:3041:51;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;-1:-1:-1;;;;;580:3041:51;;;1749:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;1595:184:79:o;:::-;580:3041:51;;-1:-1:-1;580:3041:51;;;1671:17:79;580:3041:51;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;-1:-1:-1;;;;;580:3041:51;;;1749:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;1595:184:79:o;580:3041:51:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:79;2416:25;580:3041:51;;;11124:21:69;580:3041:51;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;580:3041:51;2423:17:79;;;;2416:25;:::i;:::-;-1:-1:-1;580:3041:51;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;580:3041:51;;;12870:22:69;580:3041:51;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;580:3041:51;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;2301:412:79:o","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":3491,"length":20}]}}},"methodIdentifiers":{"applyFinalityChanges()":"0df14461","commitParentFinality((uint256,bytes32))":"11196974","storeValidatorChanges(((uint8,bytes,address),uint64)[])":"e49a547d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ParentFinalityAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"applyFinalityChanges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"finality\",\"type\":\"tuple\"}],\"name\":\"commitParentFinality\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"hasCommittedBefore\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"previousFinality\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum StakingOperation\",\"name\":\"op\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"internalType\":\"struct StakingChange\",\"name\":\"change\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct StakingChangeRequest[]\",\"name\":\"changeRequests\",\"type\":\"tuple[]\"}],\"name\":\"storeValidatorChanges\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"applyFinalityChanges()\":{\"returns\":{\"_0\":\"configurationNumber The configuration number of the changes set that has been confirmed.\"}},\"commitParentFinality((uint256,bytes32))\":{\"params\":{\"finality\":\"- the parent finality\"},\"returns\":{\"hasCommittedBefore\":\"A flag that indicates if a finality record has been committed before.\",\"previousFinality\":\"The previous finality information.\"}},\"storeValidatorChanges(((uint8,bytes,address),uint64)[])\":{\"params\":{\"changeRequests\":\"- the validator changes\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"applyFinalityChanges()\":{\"notice\":\"Apply all changes committed through the commitment of parent finality.\"},\"commitParentFinality((uint256,bytes32))\":{\"notice\":\"commit the ipc parent finality into storage and returns the previous committed finality This is useful to understand if the finalities are consistent or if there have been reorgs. If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash.\"},\"storeValidatorChanges(((uint8,bytes,address),uint64)[])\":{\"notice\":\"Store the validator change requests from parent.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/TopDownFinalityFacet.sol\":\"TopDownFinalityFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"InvalidConfigurationNumber"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[],"type":"error","name":"OldConfigurationNumber"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ParentFinalityAlreadyCommitted"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"applyFinalityChanges","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct ParentFinality","name":"finality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"commitParentFinality","outputs":[{"internalType":"bool","name":"hasCommittedBefore","type":"bool"},{"internalType":"struct ParentFinality","name":"previousFinality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"struct StakingChangeRequest[]","name":"changeRequests","type":"tuple[]","components":[{"internalType":"struct StakingChange","name":"change","type":"tuple","components":[{"internalType":"enum StakingOperation","name":"op","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"address","name":"validator","type":"address"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"storeValidatorChanges"}],"devdoc":{"kind":"dev","methods":{"applyFinalityChanges()":{"returns":{"_0":"configurationNumber The configuration number of the changes set that has been confirmed."}},"commitParentFinality((uint256,bytes32))":{"params":{"finality":"- the parent finality"},"returns":{"hasCommittedBefore":"A flag that indicates if a finality record has been committed before.","previousFinality":"The previous finality information."}},"storeValidatorChanges(((uint8,bytes,address),uint64)[])":{"params":{"changeRequests":"- the validator changes"}}},"version":1},"userdoc":{"kind":"user","methods":{"applyFinalityChanges()":{"notice":"Apply all changes committed through the commitment of parent finality."},"commitParentFinality((uint256,bytes32))":{"notice":"commit the ipc parent finality into storage and returns the previous committed finality This is useful to understand if the finalities are consistent or if there have been reorgs. If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash."},"storeValidatorChanges(((uint8,bytes,address),uint64)[])":{"notice":"Store the validator change requests from parent."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/TopDownFinalityFacet.sol":"TopDownFinalityFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","id":40072,"exportedSymbols":{"FilAddress":[1428],"GatewayActorModifiers":[43081],"LibGateway":[42888],"LibValidatorSet":[45246],"LibValidatorTracking":[46393],"Membership":[50171],"ParentFinality":[49871],"ParentValidatorsTracker":[50150],"StakingChangeRequest":[50063],"TopDownFinalityFacet":[40071],"Validator":[50164],"ValidatorInfo":[50114],"ValidatorSet":[50143]},"nodeType":"SourceUnit","src":"46:3576:51","nodes":[{"id":39872,"nodeType":"PragmaDirective","src":"46:23:51","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39874,"nodeType":"ImportDirective","src":"71:75:51","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":43082,"symbolAliases":[{"foreign":{"id":39873,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43081,"src":"79:21:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39876,"nodeType":"ImportDirective","src":"147:58:51","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":39875,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"155:14:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39881,"nodeType":"ImportDirective","src":"206:100:51","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":39877,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"214:9:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39878,"name":"ValidatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50114,"src":"225:13:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39879,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50063,"src":"240:20:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39880,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50171,"src":"262:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39883,"nodeType":"ImportDirective","src":"307:52:51","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":42889,"symbolAliases":[{"foreign":{"id":39882,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"315:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39885,"nodeType":"ImportDirective","src":"361:56:51","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":39884,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"369:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39888,"nodeType":"ImportDirective","src":"419:79:51","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":39886,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"427:23:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39887,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50143,"src":"452:12:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39891,"nodeType":"ImportDirective","src":"499:79:51","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":39889,"name":"LibValidatorTracking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46393,"src":"507:20:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39890,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45246,"src":"529:15:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40071,"nodeType":"ContractDefinition","src":"580:3041:51","nodes":[{"id":39896,"nodeType":"UsingForDirective","src":"641:29:51","nodes":[],"global":false,"libraryName":{"id":39894,"name":"FilAddress","nameLocations":["647:10:51"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"647:10:51"},"typeName":{"id":39895,"name":"address","nodeType":"ElementaryTypeName","src":"662:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":39900,"nodeType":"UsingForDirective","src":"675:55:51","nodes":[],"global":false,"libraryName":{"id":39897,"name":"LibValidatorTracking","nameLocations":["681:20:51"],"nodeType":"IdentifierPath","referencedDeclaration":46393,"src":"681:20:51"},"typeName":{"id":39899,"nodeType":"UserDefinedTypeName","pathNode":{"id":39898,"name":"ParentValidatorsTracker","nameLocations":["706:23:51"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"706:23:51"},"referencedDeclaration":50150,"src":"706:23:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage_ptr","typeString":"struct ParentValidatorsTracker"}}},{"id":39904,"nodeType":"UsingForDirective","src":"735:39:51","nodes":[],"global":false,"libraryName":{"id":39901,"name":"LibValidatorSet","nameLocations":["741:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":45246,"src":"741:15:51"},"typeName":{"id":39903,"nodeType":"UserDefinedTypeName","pathNode":{"id":39902,"name":"ValidatorSet","nameLocations":["761:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":50143,"src":"761:12:51"},"referencedDeclaration":50143,"src":"761:12:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":39933,"nodeType":"FunctionDefinition","src":"1325:313:51","nodes":[],"body":{"id":39932,"nodeType":"Block","src":"1502:136:51","nodes":[],"statements":[{"expression":{"id":39923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39918,"name":"previousFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39916,"src":"1512:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39921,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39908,"src":"1563:8:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_calldata_ptr","typeString":"struct ParentFinality calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49871_calldata_ptr","typeString":"struct ParentFinality calldata"}],"expression":{"id":39919,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"1531:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":39920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1542:20:51","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":42048,"src":"1531:31:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentFinality_$49871_calldata_ptr_$returns$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"function (struct ParentFinality calldata) returns (struct ParentFinality memory)"}},"id":39922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:41:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"src":"1512:60:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"id":39924,"nodeType":"ExpressionStatement","src":"1512:60:51"},{"expression":{"id":39930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39925,"name":"hasCommittedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39913,"src":"1582:18:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39926,"name":"previousFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39916,"src":"1603:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"id":39927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1620:6:51","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49868,"src":"1603:23:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1630:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1603:28:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1582:49:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39931,"nodeType":"ExpressionStatement","src":"1582:49:51"}]},"documentation":{"id":39905,"nodeType":"StructuredDocumentation","src":"780:540:51","text":"@notice commit the ipc parent finality into storage and returns the previous committed finality\n This is useful to understand if the finalities are consistent or if there have been reorgs.\n If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash.\n @param finality - the parent finality\n @return hasCommittedBefore A flag that indicates if a finality record has been committed before.\n @return previousFinality The previous finality information."},"functionSelector":"11196974","implemented":true,"kind":"function","modifiers":[{"id":39911,"kind":"modifierInvocation","modifierName":{"id":39910,"name":"systemActorOnly","nameLocations":["1412:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":43080,"src":"1412:15:51"},"nodeType":"ModifierInvocation","src":"1412:15:51"}],"name":"commitParentFinality","nameLocation":"1334:20:51","parameters":{"id":39909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39908,"mutability":"mutable","name":"finality","nameLocation":"1388:8:51","nodeType":"VariableDeclaration","scope":39933,"src":"1364:32:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":39907,"nodeType":"UserDefinedTypeName","pathNode":{"id":39906,"name":"ParentFinality","nameLocations":["1364:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"1364:14:51"},"referencedDeclaration":49871,"src":"1364:14:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"1354:48:51"},"returnParameters":{"id":39917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39913,"mutability":"mutable","name":"hasCommittedBefore","nameLocation":"1442:18:51","nodeType":"VariableDeclaration","scope":39933,"src":"1437:23:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39912,"name":"bool","nodeType":"ElementaryTypeName","src":"1437:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39916,"mutability":"mutable","name":"previousFinality","nameLocation":"1484:16:51","nodeType":"VariableDeclaration","scope":39933,"src":"1462:38:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":39915,"nodeType":"UserDefinedTypeName","pathNode":{"id":39914,"name":"ParentFinality","nameLocations":["1462:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"1462:14:51"},"referencedDeclaration":49871,"src":"1462:14:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"1436:65:51"},"scope":40071,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39952,"nodeType":"FunctionDefinition","src":"1763:173:51","nodes":[],"body":{"id":39951,"nodeType":"Block","src":"1867:69:51","nodes":[],"statements":[{"expression":{"arguments":[{"id":39948,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39938,"src":"1914:14:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}],"expression":{"expression":{"id":39943,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"1877:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1879:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"1877:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1897:16:51","memberName":"batchStoreChange","nodeType":"MemberAccess","referencedDeclaration":46214,"src":"1877:36:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50150_storage_ptr_$_t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr_$returns$__$attached_to$_t_struct$_ParentValidatorsTracker_$50150_storage_ptr_$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata[] calldata)"}},"id":39949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1877:52:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39950,"nodeType":"ExpressionStatement","src":"1877:52:51"}]},"documentation":{"id":39934,"nodeType":"StructuredDocumentation","src":"1644:114:51","text":"@notice Store the validator change requests from parent.\n @param changeRequests - the validator changes"},"functionSelector":"e49a547d","implemented":true,"kind":"function","modifiers":[{"id":39941,"kind":"modifierInvocation","modifierName":{"id":39940,"name":"systemActorOnly","nameLocations":["1851:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":43080,"src":"1851:15:51"},"nodeType":"ModifierInvocation","src":"1851:15:51"}],"name":"storeValidatorChanges","nameLocation":"1772:21:51","parameters":{"id":39939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39938,"mutability":"mutable","name":"changeRequests","nameLocation":"1826:14:51","nodeType":"VariableDeclaration","scope":39952,"src":"1794:46:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":39936,"nodeType":"UserDefinedTypeName","pathNode":{"id":39935,"name":"StakingChangeRequest","nameLocations":["1794:20:51"],"nodeType":"IdentifierPath","referencedDeclaration":50063,"src":"1794:20:51"},"referencedDeclaration":50063,"src":"1794:20:51","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50063_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":39937,"nodeType":"ArrayTypeName","src":"1794:22:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50063_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"1793:48:51"},"returnParameters":{"id":39942,"nodeType":"ParameterList","parameters":[],"src":"1867:0:51"},"scope":40071,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40070,"nodeType":"FunctionDefinition","src":"2134:1485:51","nodes":[],"body":{"id":40069,"nodeType":"Block","src":"2208:1411:51","nodes":[],"statements":[{"assignments":[39961],"declarations":[{"constant":false,"id":39961,"mutability":"mutable","name":"configurationNumber","nameLocation":"2291:19:51","nodeType":"VariableDeclaration","scope":40069,"src":"2284:26:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":39960,"name":"uint64","nodeType":"ElementaryTypeName","src":"2284:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":39968,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"id":39962,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2313:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2315:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"2313:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2333:7:51","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"2313:27:51","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":39965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2341:23:51","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50066,"src":"2313:51:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":39966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2367:1:51","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2313:55:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2284:84:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39969,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"2566:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":39970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2588:1:51","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2566:23:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":39972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2565:25:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"expression":{"id":39973,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2594:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2596:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"2594:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2614:7:51","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"2594:27:51","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50076_storage","typeString":"struct StakingChangeLog storage ref"}},"id":39976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:24:51","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50069,"src":"2594:52:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2565:81:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39981,"nodeType":"IfStatement","src":"2475:264:51","trueBody":{"id":39980,"nodeType":"Block","src":"2657:82:51","statements":[{"expression":{"hexValue":"30","id":39978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2727:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":39959,"id":39979,"nodeType":"Return","src":"2720:8:51"}]}},{"expression":{"arguments":[{"id":39987,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"2812:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":39982,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2778:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2780:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"2778:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2798:13:51","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46392,"src":"2778:33:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50150_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_ParentValidatorsTracker_$50150_storage_ptr_$","typeString":"function (struct ParentValidatorsTracker storage pointer,uint64)"}},"id":39988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2778:54:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39989,"nodeType":"ExpressionStatement","src":"2778:54:51"},{"assignments":[39994],"declarations":[{"constant":false,"id":39994,"mutability":"mutable","name":"validators","nameLocation":"2897:10:51","nodeType":"VariableDeclaration","scope":40069,"src":"2880:27:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":39992,"name":"address","nodeType":"ElementaryTypeName","src":"2880:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39993,"nodeType":"ArrayTypeName","src":"2880:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":40000,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":39995,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"2910:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2912:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"2910:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2930:10:51","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"2910:30:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":39998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2941:20:51","memberName":"listActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44442,"src":"2910:51:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50143_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_ValidatorSet_$50143_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (address[] memory)"}},"id":39999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2910:53:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2880:83:51"},{"assignments":[40002],"declarations":[{"constant":false,"id":40002,"mutability":"mutable","name":"vLength","nameLocation":"2981:7:51","nodeType":"VariableDeclaration","scope":40069,"src":"2973:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40001,"name":"uint256","nodeType":"ElementaryTypeName","src":"2973:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40005,"initialValue":{"expression":{"id":40003,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39994,"src":"2991:10:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":40004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3002:6:51","memberName":"length","nodeType":"MemberAccess","src":"2991:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2973:35:51"},{"assignments":[40010],"declarations":[{"constant":false,"id":40010,"mutability":"mutable","name":"vs","nameLocation":"3037:2:51","nodeType":"VariableDeclaration","scope":40069,"src":"3018:21:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":40008,"nodeType":"UserDefinedTypeName","pathNode":{"id":40007,"name":"Validator","nameLocations":["3018:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"3018:9:51"},"referencedDeclaration":50164,"src":"3018:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":40009,"nodeType":"ArrayTypeName","src":"3018:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"id":40017,"initialValue":{"arguments":[{"id":40015,"name":"vLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40002,"src":"3058:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3042:15:51","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":40012,"nodeType":"UserDefinedTypeName","pathNode":{"id":40011,"name":"Validator","nameLocations":["3046:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"3046:9:51"},"referencedDeclaration":50164,"src":"3046:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":40013,"nodeType":"ArrayTypeName","src":"3046:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":40016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3042:24:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3018:48:51"},{"body":{"id":40056,"nodeType":"Block","src":"3107:306:51","statements":[{"assignments":[40025],"declarations":[{"constant":false,"id":40025,"mutability":"mutable","name":"addr","nameLocation":"3129:4:51","nodeType":"VariableDeclaration","scope":40056,"src":"3121:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40024,"name":"address","nodeType":"ElementaryTypeName","src":"3121:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40029,"initialValue":{"baseExpression":{"id":40026,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39994,"src":"3136:10:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":40028,"indexExpression":{"id":40027,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3147:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3136:13:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3121:28:51"},{"assignments":[40032],"declarations":[{"constant":false,"id":40032,"mutability":"mutable","name":"info","nameLocation":"3185:4:51","nodeType":"VariableDeclaration","scope":40056,"src":"3163:26:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage_ptr","typeString":"struct ValidatorInfo"},"typeName":{"id":40031,"nodeType":"UserDefinedTypeName","pathNode":{"id":40030,"name":"ValidatorInfo","nameLocations":["3163:13:51"],"nodeType":"IdentifierPath","referencedDeclaration":50114,"src":"3163:13:51"},"referencedDeclaration":50114,"src":"3163:13:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage_ptr","typeString":"struct ValidatorInfo"}},"visibility":"internal"}],"id":40039,"initialValue":{"baseExpression":{"expression":{"expression":{"expression":{"id":40033,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"3192:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":40034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3194:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"3192:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50150_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":40035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3212:10:51","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50146,"src":"3192:30:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50143_storage","typeString":"struct ValidatorSet storage ref"}},"id":40036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3223:10:51","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"3192:41:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50114_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":40038,"indexExpression":{"id":40037,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40025,"src":"3234:4:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3192:47:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage","typeString":"struct ValidatorInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3163:76:51"},{"expression":{"id":40050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":40040,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40010,"src":"3253:2:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":40042,"indexExpression":{"id":40041,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3256:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3253:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":40044,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40032,"src":"3280:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage_ptr","typeString":"struct ValidatorInfo storage pointer"}},"id":40045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3285:19:51","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50108,"src":"3280:24:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40046,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40025,"src":"3312:4:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":40047,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40032,"src":"3328:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50114_storage_ptr","typeString":"struct ValidatorInfo storage pointer"}},"id":40048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3333:8:51","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"3328:13:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":40043,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"3261:9:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50164_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":40049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3272:6:51","3306:4:51","3318:8:51"],"names":["weight","addr","metadata"],"nodeType":"FunctionCall","src":"3261:82:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}},"src":"3253:90:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_memory_ptr","typeString":"struct Validator memory"}},"id":40051,"nodeType":"ExpressionStatement","src":"3253:90:51"},{"id":40055,"nodeType":"UncheckedBlock","src":"3357:46:51","statements":[{"expression":{"id":40053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3385:3:51","subExpression":{"id":40052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3387:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40054,"nodeType":"ExpressionStatement","src":"3385:3:51"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3092:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40022,"name":"vLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40002,"src":"3096:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3092:11:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40057,"initializationExpression":{"assignments":[40019],"declarations":[{"constant":false,"id":40019,"mutability":"mutable","name":"i","nameLocation":"3089:1:51","nodeType":"VariableDeclaration","scope":40057,"src":"3081:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40018,"name":"uint256","nodeType":"ElementaryTypeName","src":"3081:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40020,"nodeType":"VariableDeclarationStatement","src":"3081:9:51"},"nodeType":"ForStatement","src":"3076:337:51"},{"expression":{"arguments":[{"arguments":[{"id":40062,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"3538:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":40063,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40010,"src":"3571:2:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"id":40061,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50171,"src":"3505:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Membership_$50171_storage_ptr_$","typeString":"type(struct Membership storage pointer)"}},"id":40064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3517:19:51","3559:10:51"],"names":["configurationNumber","validators"],"nodeType":"FunctionCall","src":"3505:70:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50171_memory_ptr","typeString":"struct Membership memory"}],"expression":{"id":40058,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"3477:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":40060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3488:16:51","memberName":"updateMembership","nodeType":"MemberAccess","referencedDeclaration":42202,"src":"3477:27:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Membership_$50171_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":40065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3477:99:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40066,"nodeType":"ExpressionStatement","src":"3477:99:51"},{"expression":{"id":40067,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"3593:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":39959,"id":40068,"nodeType":"Return","src":"3586:26:51"}]},"documentation":{"id":39953,"nodeType":"StructuredDocumentation","src":"1942:187:51","text":"@notice Apply all changes committed through the commitment of parent finality.\n @return configurationNumber The configuration number of the changes set that has been confirmed."},"functionSelector":"0df14461","implemented":true,"kind":"function","modifiers":[{"id":39956,"kind":"modifierInvocation","modifierName":{"id":39955,"name":"systemActorOnly","nameLocations":["2175:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":43080,"src":"2175:15:51"},"nodeType":"ModifierInvocation","src":"2175:15:51"}],"name":"applyFinalityChanges","nameLocation":"2143:20:51","parameters":{"id":39954,"nodeType":"ParameterList","parameters":[],"src":"2163:2:51"},"returnParameters":{"id":39959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40070,"src":"2200:6:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":39957,"name":"uint64","nodeType":"ElementaryTypeName","src":"2200:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2199:8:51"},"scope":40071,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":39892,"name":"GatewayActorModifiers","nameLocations":["613:21:51"],"nodeType":"IdentifierPath","referencedDeclaration":43081,"src":"613:21:51"},"id":39893,"nodeType":"InheritanceSpecifier","src":"613:21:51"}],"canonicalName":"TopDownFinalityFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[40071,43081],"name":"TopDownFinalityFacet","nameLocation":"589:20:51","scope":40072,"usedErrors":[37368,37372,37418,37486,37492,37494,37496,37498]}],"license":"MIT OR Apache-2.0"},"id":51} \ No newline at end of file diff --git a/.out/XnetMessagingFacet.sol/XnetMessagingFacet.json b/.out/XnetMessagingFacet.sol/XnetMessagingFacet.json index 917d54c29..2db3676b1 100644 --- a/.out/XnetMessagingFacet.sol/XnetMessagingFacet.json +++ b/.out/XnetMessagingFacet.sol/XnetMessagingFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"applyCrossMessages","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgNonce","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"NotSystemActor","inputs":[]}],"bytecode":{"object":"0x608080604052346100165761163d908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c63430008130033","sourceMap":"968:864:52:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":177,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":3181,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":2683,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":359,"length":20},{"start":2419,"length":20}]}}},"deployedBytecode":{"object":"0x608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c63430008130033","sourceMap":"968:864:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4486:26:64;;:10;:26;;;968:864:52;4486:24:64;:26;:24;:26;:24;:26;;;;;;;;;;;968:864:52;4485:27:64;;4481:81;;968:864:52;;;;;;:::i;:::-;;1780:13;968:864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1780:31;;;;968:864;;;;;;:::i;:::-;1780:31;:29;;:31;;;;;;;;;;;968:864;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;14383:9:63;;14394:19;;;;;;968:864:52;;;14383:9:63;968:864:52;;;;;;;;14454:12:63;968:864:52;;;;;;;;14454:12:63;;;:::i;:::-;968:864:52;14383:9:63;;968:864:52;-1:-1:-1;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1780:31;;;;;;;;;;;;;:::i;:::-;;;968:864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1780:31;;;;968:864;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1780:31;968:864;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;-1:-1:-1;968:864:52;;;;;;;4481:81:64;968:864:52;-1:-1:-1;;;4535:16:64;;968:864:52;;4535:16:64;4486:26;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;968:864:52;;-1:-1:-1;968:864:52;;-1:-1:-1;968:864:52;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;-1:-1:-1;968:864:52;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;:::o;:::-;-1:-1:-1;;;;;968:864:52;;;;;;-1:-1:-1;;968:864:52;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;968:864:52;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;15328:13:63;968:864:52;;;;;;;;;;;;;;;;;;;;-1:-1:-1;968:864:52;;;-1:-1:-1;968:864:52;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;968:864:52;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;968:864:52;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;968:864:52;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;:::o;:::-;;;;;;;;;;;;14837:2300:63;15012:19;:16;;:19;;:28;:36;968:864:52;;;15012:19:63;968:864:52;;;;;;15012:38:63;;;;;;;;968:864:52;;;;;;:::i;:::-;15012:38:63;;;;;;;;;;3946:45:64;15012:38:63;;;14837:2300;15008:102;;;15012:19;15292:16;;:19;;:28;968:864:52;;;;;;;15292:50:63;;968:864:52;15012:38:63;15292:50;;968:864:52;;;;;;:::i;:::-;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;:::i;:::-;15292:50:63;;;;;;;;;;3946:45:64;15292:50:63;;;14837:2300;15291:51;;15287:172;;968:864:52;;3946:45:64;968:864:52;;;:::i;:::-;;;;15012:19:63;968:864:52;;;15678:16:63;15012:19;968:864:52;15678:16:63;;968:864:52;;;;;;;;;;;15678:41:63;;968:864:52;15012:38:63;15678:41;;968:864:52;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;15678:41:63;:26;;:41;;;;;;;3946:45:64;15678:41:63;;;14837:2300;968:864:52;;;;:::i;:::-;15746:19:63;15733:32;;15746:19;;968:864:52;;15012:19:63;968:864:52;;;;;;;;;;;13443:17:63;;;15012:38;13443:17;;968:864:52;;;;;;:::i;:::-;13443:17:63;;;;;;;;;;3946:45:64;13443:17:63;;;15729:1310;968:864:52;3946:45:64;968:864:52;3946:45:64;15012:19:63;968:864:52;;3946:45:64;968:864:52;;15012:19:63;:38;13480:9;;968:864:52;;;;:::i;:::-;;;;13480:19:63;;;;;;;;15012:38;13480:19;;968:864:52;;;;;;:::i;:::-;13480:19:63;;;;;;;;;;3946:45:64;13480:19:63;;;15729:1310;13479:20;15993:78;;968:864:52;16088:27:63;968:864:52;;;;-1:-1:-1;;;;;968:864:52;;;;;;16119:16:63;:22;:16;;:22;968:864:52;;16088:53:63;;16084:121;;968:864:52;16218:32:63;15012:19;16218:32;-1:-1:-1;;;16218:32:63;968:864:52;16218:32:63;;:::i;:::-;968:864:52;;;;-1:-1:-1;;;968:864:52;;;;;;:::i;:::-;;;;;;;;;;;;16453:20:63;;;15012:38;16453:20;;968:864:52;;;;;;:::i;:::-;16453:20:63;;;;;;;;;3946:45:64;16453:20:63;;;15729:1310;-1:-1:-1;968:864:52;;;-1:-1:-1;;;16430:59:63;;968:864:52;;;15012:38:63;;968:864:52;;-1:-1:-1;;;;;968:864:52;16430:59:63;;;;;;;3946:45:64;16430:59:63;;;15729:1310;16415:74;3946:45:64;16415:74:63;15729:1310;968:864:52;;;;;;;;;17100:30:63;;968:864:52;15012:38:63;17100:30;;968:864:52;15012:19:63;968:864:52;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;15012:19:63;968:864:52;;-1:-1:-1;;;;;968:864:52;;;;;17100:30:63;:16;;:30;;;;;;;;14837:2300;:::o;17100:30::-;;;3946:45:64;17100:30:63;;;;;;:::i;:::-;;;968:864:52;15012:19:63;968:864:52;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;15012:19:63;968:864:52;;;;;;;15012:19:63;968:864:52;;;;;;;:::i;:::-;14837:2300:63:o;17100:30::-;968:864:52;;;3946:45:64;968:864:52;;;;;16430:59:63;968:864:52;16430:59:63;;968:864:52;16430:59:63;;;;;;968:864:52;16430:59:63;;;:::i;:::-;;;968:864:52;;;;;;;;;;:::i;:::-;;;;;;;;;;;15012:19:63;968:864:52;;;;3946:45:64;968:864:52;;;;:::i;:::-;15012:19:63;968:864:52;;;16430:59:63;;;968:864:52;;;;;;;16430:59:63;;;-1:-1:-1;16430:59:63;;16453:20;;15012:19;16453:20;;15012:19;16453:20;;;;;;15012:19;16453:20;;;:::i;:::-;;;968:864:52;;;;;;;15012:38:63;968:864:52;;:::i;:::-;16453:20:63;;;;;;;-1:-1:-1;16453:20:63;;16084:121;968:864:52;;-1:-1:-1;;;16168:22:63;;15012:38;;16168:22;15993:78;968:864:52;;-1:-1:-1;;;16035:21:63;;15012:38;;16035:21;13480:19;;;;15012;13480;15012;13480;;;;;;;:::i;:::-;;;;13443:17;;15012:19;13443:17;;15012:19;13443:17;;;;;;15012:19;13443:17;;;:::i;:::-;;;968:864:52;;;;;;13443:17:63;;;;;;-1:-1:-1;13443:17:63;;15729:1310;968:864:52;;;;;;;;:::i;:::-;16510:31:63;16506:533;;15729:1310;3946:45:64;15729:1310:63;;;16506:533;968:864:52;16677:21:63;968:864:52;-1:-1:-1;;;;;968:864:52;;;;;16702:16:63;:22;:16;;:22;968:864:52;;16677:47:63;;16673:115;;16801:26;-1:-1:-1;;;16801:26:63;;:::i;:::-;968:864:52;;;;-1:-1:-1;;;968:864:52;;;16677:21:63;968:864:52;3946:45:64;15012:19:63;968:864:52;;;;;:::i;:::-;;;;;;3946:45:64;968:864:52;;;;;:::i;:::-;;;;4618:99:76;15012:19:63;4618:99:76;;968:864:52;16506:533:63;;;;15678:41;15012:19;15678:41;;15012:19;15678:41;;;;;;15012:19;15678:41;;;:::i;:::-;;;968:864:52;;;;;;;;;;;;15678:41:63;;;;;;;-1:-1:-1;15678:41:63;;15287:172;968:864:52;;;;;;2508:20:60;15012:19:63;2508:20:60;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;-1:-1:-1;;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2508:20:60;968:864:52;15012:19:63;968:864:52;;;;;;;;;;;2508:20:60;968:864:52;;2508:20:60;;;;;;:::i;:::-;968:864:52;2498:31:60;;3946:45:64;968:864:52;;15012:19:63;968:864:52;;3946:45:64;968:864:52;;;;;;;-1:-1:-1;;;;;968:864:52;;;-1:-1:-1;;;;;968:864:52;;;;;;;15012:19:63;968:864:52;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;-1:-1:-1;;;968:864:52;;;;15012:19:63;968:864:52;;;;;;;;;;;15287:172:63;968:864:52;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;3946:45:64;968:864:52;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;15012:38:63;968:864:52;;15012:19:63;968:864:52;;;;;;;-1:-1:-1;;;;;968:864:52;;;-1:-1:-1;;;;;968:864:52;;;;;;;15012:19:63;968:864:52;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;-1:-1:-1;;;968:864:52;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;3946:45:64;968:864:52;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15442:7:63:o;968:864:52:-;;;;-1:-1:-1;968:864:52;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;968:864:52;;;;;;;;3946:45:64;968:864:52;;15012:38:63;968:864:52;;3946:45:64;968:864:52;;;;;;;;;;;;-1:-1:-1;968:864:52;;;;;3946:45:64;968:864:52;;;15012:19:63;968:864:52;;;-1:-1:-1;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;15012:19:63;968:864:52;;;;;;;;;;;;3946:45:64;968:864:52;;;3946:45:64;968:864:52;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;968:864:52;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;3946:45:64;968:864:52;;-1:-1:-1;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;15012:19:63;968:864:52;;;;;;;;;;;;3946:45:64;968:864:52;;;3946:45:64;968:864:52;;;;;;;:::i;:::-;;;;15292:50:63;;;;15012:19;15292:50;15012:19;15292:50;;;;;;;:::i;:::-;;;;15008:102;968:864:52;;-1:-1:-1;;;15073:26:63;;15012:38;;15073:26;15012:38;;;;:19;:38;:19;:38;;;;;;;:::i;:::-;;;;968:864:52;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":149,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":3153,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":2655,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":331,"length":20},{"start":2391,"length":20}]}}},"methodIdentifiers":{"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"c62eb4d5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"applyCrossMessages\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"details\":\"It requires the caller to be the system actor.\",\"params\":{\"crossMsgs\":\"The array of cross-network messages to be applied.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"Applies top-down cross-net messages locally. This is invoked by IPC nodes when drawing messages from their parent subnet for local execution. That's why the sender is restricted to the system sender, because this method is implicitly invoked by the node during block production.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/XnetMessagingFacet.sol\":\"XnetMessagingFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgNonce"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"applyCrossMessages"}],"devdoc":{"kind":"dev","methods":{"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"details":"It requires the caller to be the system actor.","params":{"crossMsgs":"The array of cross-network messages to be applied."}}},"version":1},"userdoc":{"kind":"user","methods":{"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"Applies top-down cross-net messages locally. This is invoked by IPC nodes when drawing messages from their parent subnet for local execution. That's why the sender is restricted to the system sender, because this method is implicitly invoked by the node during block production."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/XnetMessagingFacet.sol":"XnetMessagingFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","id":40145,"exportedSymbols":{"CrossMsg":[49974],"CrossMsgHelper":[40781],"FilAddress":[1428],"GatewayActorModifiers":[43137],"IPCMsgType":[37364],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"LibGateway":[42944],"NotRegisteredSubnet":[37482],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorGetterFacet":[50887],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplySource":[50226],"SupplySourceHelper":[48398],"XnetMessagingFacet":[40144]},"nodeType":"SourceUnit","src":"46:1787:52","nodes":[{"id":40073,"nodeType":"PragmaDirective","src":"46:23:52","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40075,"nodeType":"ImportDirective","src":"71:75:52","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":40074,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"79:21:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40079,"nodeType":"ImportDirective","src":"147:75:52","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":40076,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"155:8:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40077,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"165:8:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40078,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"175:11:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40081,"nodeType":"ImportDirective","src":"223:52:52","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":40080,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"231:10:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40083,"nodeType":"ImportDirective","src":"276:54:52","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":40082,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"284:10:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40085,"nodeType":"ImportDirective","src":"331:79:52","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":40084,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"339:22:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40087,"nodeType":"ImportDirective","src":"411:48:52","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":40086,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"419:6:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40089,"nodeType":"ImportDirective","src":"461:56:52","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":40088,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"469:10:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40091,"nodeType":"ImportDirective","src":"518:60:52","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":40090,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"526:14:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40093,"nodeType":"ImportDirective","src":"579:60:52","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":40092,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"587:14:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40095,"nodeType":"ImportDirective","src":"640:68:52","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":40094,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"648:18:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40097,"nodeType":"ImportDirective","src":"709:54:52","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":40096,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"717:12:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40102,"nodeType":"ImportDirective","src":"765:133:52","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":40098,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"773:20:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40099,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"795:20:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40100,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"817:19:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40101,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"838:24:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40104,"nodeType":"ImportDirective","src":"900:66:52","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":40103,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"908:17:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40144,"nodeType":"ContractDefinition","src":"968:864:52","nodes":[{"id":40110,"nodeType":"UsingForDirective","src":"1027:34:52","nodes":[],"global":false,"libraryName":{"id":40107,"name":"SubnetIDHelper","nameLocations":["1033:14:52"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1033:14:52"},"typeName":{"id":40109,"nodeType":"UserDefinedTypeName","pathNode":{"id":40108,"name":"SubnetID","nameLocations":["1052:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1052:8:52"},"referencedDeclaration":50077,"src":"1052:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":40114,"nodeType":"UsingForDirective","src":"1066:34:52","nodes":[],"global":false,"libraryName":{"id":40111,"name":"CrossMsgHelper","nameLocations":["1072:14:52"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"1072:14:52"},"typeName":{"id":40113,"nodeType":"UserDefinedTypeName","pathNode":{"id":40112,"name":"CrossMsg","nameLocations":["1091:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1091:8:52"},"referencedDeclaration":49974,"src":"1091:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":40118,"nodeType":"UsingForDirective","src":"1105:42:52","nodes":[],"global":false,"libraryName":{"id":40115,"name":"SupplySourceHelper","nameLocations":["1111:18:52"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1111:18:52"},"typeName":{"id":40117,"nodeType":"UserDefinedTypeName","pathNode":{"id":40116,"name":"SupplySource","nameLocations":["1134:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1134:12:52"},"referencedDeclaration":50226,"src":"1134:12:52","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":40122,"nodeType":"UsingForDirective","src":"1152:40:52","nodes":[],"global":false,"libraryName":{"id":40119,"name":"StorableMsgHelper","nameLocations":["1158:17:52"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"1158:17:52"},"typeName":{"id":40121,"nodeType":"UserDefinedTypeName","pathNode":{"id":40120,"name":"StorableMsg","nameLocations":["1180:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"1180:11:52"},"referencedDeclaration":49991,"src":"1180:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":40143,"nodeType":"FunctionDefinition","src":"1661:169:52","nodes":[],"body":{"id":40142,"nodeType":"Block","src":"1745:85:52","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":40135,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"1780:1:52","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":40136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:11:52","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"1780:13:52","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":40137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1794:15:52","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47578,"src":"1780:29:52","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":40138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:31:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":40139,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40127,"src":"1813:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":40132,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"1755:10:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":40134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1766:13:52","memberName":"applyMessages","nodeType":"MemberAccess","referencedDeclaration":42752,"src":"1755:24:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory[] memory)"}},"id":40140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1755:68:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40141,"nodeType":"ExpressionStatement","src":"1755:68:52"}]},"documentation":{"id":40123,"nodeType":"StructuredDocumentation","src":"1198:458:52","text":"@notice Applies top-down cross-net messages locally. This is invoked by IPC nodes when drawing messages from\n their parent subnet for local execution. That's why the sender is restricted to the system sender,\n because this method is implicitly invoked by the node during block production.\n @dev It requires the caller to be the system actor.\n @param crossMsgs The array of cross-network messages to be applied."},"functionSelector":"c62eb4d5","implemented":true,"kind":"function","modifiers":[{"id":40130,"kind":"modifierInvocation","modifierName":{"id":40129,"name":"systemActorOnly","nameLocations":["1729:15:52"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"1729:15:52"},"nodeType":"ModifierInvocation","src":"1729:15:52"}],"name":"applyCrossMessages","nameLocation":"1670:18:52","parameters":{"id":40128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40127,"mutability":"mutable","name":"crossMsgs","nameLocation":"1709:9:52","nodeType":"VariableDeclaration","scope":40143,"src":"1689:29:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":40125,"nodeType":"UserDefinedTypeName","pathNode":{"id":40124,"name":"CrossMsg","nameLocations":["1689:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1689:8:52"},"referencedDeclaration":49974,"src":"1689:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":40126,"nodeType":"ArrayTypeName","src":"1689:10:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"1688:31:52"},"returnParameters":{"id":40131,"nodeType":"ParameterList","parameters":[],"src":"1745:0:52"},"scope":40144,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":40105,"name":"GatewayActorModifiers","nameLocations":["999:21:52"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"999:21:52"},"id":40106,"nodeType":"InheritanceSpecifier","src":"999:21:52"}],"canonicalName":"XnetMessagingFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[40144,43137],"name":"XnetMessagingFacet","nameLocation":"977:18:52","scope":40145,"usedErrors":[37420,37424,37482,37486]}],"license":"MIT OR Apache-2.0"},"id":52} \ No newline at end of file +{"abi":[{"type":"function","name":"applyCrossMessages","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgNonce","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"NotSystemActor","inputs":[]}],"bytecode":{"object":"0x608080604052346100165761163d908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c63430008130033","sourceMap":"968:864:52:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":177,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":3181,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":2683,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":359,"length":20},{"start":2419,"length":20}]}}},"deployedBytecode":{"object":"0x608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c63430008130033","sourceMap":"968:864:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4486:26:64;;:10;:26;;;968:864:52;4486:24:64;:26;:24;:26;:24;:26;;;;;;;;;;;968:864:52;4485:27:64;;4481:81;;968:864:52;;;;;;:::i;:::-;;1780:13;968:864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1780:31;;;;968:864;;;;;;:::i;:::-;1780:31;:29;;:31;;;;;;;;;;;968:864;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;14383:9:63;;14394:19;;;;;;968:864:52;;;14383:9:63;968:864:52;;;;;;;;14454:12:63;968:864:52;;;;;;;;14454:12:63;;;:::i;:::-;968:864:52;14383:9:63;;968:864:52;-1:-1:-1;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1780:31;;;;;;;;;;;;;:::i;:::-;;;968:864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1780:31;;;;968:864;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1780:31;968:864;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;-1:-1:-1;968:864:52;;;;;;;4481:81:64;968:864:52;-1:-1:-1;;;4535:16:64;;968:864:52;;4535:16:64;4486:26;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;968:864:52;;-1:-1:-1;968:864:52;;-1:-1:-1;968:864:52;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;-1:-1:-1;968:864:52;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;:::o;:::-;-1:-1:-1;;;;;968:864:52;;;;;;-1:-1:-1;;968:864:52;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;968:864:52;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;15328:13:63;968:864:52;;;;;;;;;;;;;;;;;;;;-1:-1:-1;968:864:52;;;-1:-1:-1;968:864:52;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;968:864:52;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;968:864:52;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;968:864:52;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;:::o;:::-;;;;;;;;;;;;14837:2300:63;15012:19;:16;;:19;;:28;:36;968:864:52;;;15012:19:63;968:864:52;;;;;;15012:38:63;;;;;;;;968:864:52;;;;;;:::i;:::-;15012:38:63;;;;;;;;;;3946:45:64;15012:38:63;;;14837:2300;15008:102;;;15012:19;15292:16;;:19;;:28;968:864:52;;;;;;;15292:50:63;;968:864:52;15012:38:63;15292:50;;968:864:52;;;;;;:::i;:::-;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;:::i;:::-;15292:50:63;;;;;;;;;;3946:45:64;15292:50:63;;;14837:2300;15291:51;;15287:172;;968:864:52;;3946:45:64;968:864:52;;;:::i;:::-;;;;15012:19:63;968:864:52;;;15678:16:63;15012:19;968:864:52;15678:16:63;;968:864:52;;;;;;;;;;;15678:41:63;;968:864:52;15012:38:63;15678:41;;968:864:52;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;15678:41:63;:26;;:41;;;;;;;3946:45:64;15678:41:63;;;14837:2300;968:864:52;;;;:::i;:::-;15746:19:63;15733:32;;15746:19;;968:864:52;;15012:19:63;968:864:52;;;;;;;;;;;13443:17:63;;;15012:38;13443:17;;968:864:52;;;;;;:::i;:::-;13443:17:63;;;;;;;;;;3946:45:64;13443:17:63;;;15729:1310;968:864:52;3946:45:64;968:864:52;3946:45:64;15012:19:63;968:864:52;;3946:45:64;968:864:52;;15012:19:63;:38;13480:9;;968:864:52;;;;:::i;:::-;;;;13480:19:63;;;;;;;;15012:38;13480:19;;968:864:52;;;;;;:::i;:::-;13480:19:63;;;;;;;;;;3946:45:64;13480:19:63;;;15729:1310;13479:20;15993:78;;968:864:52;16088:27:63;968:864:52;;;;-1:-1:-1;;;;;968:864:52;;;;;;16119:16:63;:22;:16;;:22;968:864:52;;16088:53:63;;16084:121;;968:864:52;16218:32:63;15012:19;16218:32;-1:-1:-1;;;16218:32:63;968:864:52;16218:32:63;;:::i;:::-;968:864:52;;;;-1:-1:-1;;;968:864:52;;;;;;:::i;:::-;;;;;;;;;;;;16453:20:63;;;15012:38;16453:20;;968:864:52;;;;;;:::i;:::-;16453:20:63;;;;;;;;;3946:45:64;16453:20:63;;;15729:1310;-1:-1:-1;968:864:52;;;-1:-1:-1;;;16430:59:63;;968:864:52;;;15012:38:63;;968:864:52;;-1:-1:-1;;;;;968:864:52;16430:59:63;;;;;;;3946:45:64;16430:59:63;;;15729:1310;16415:74;3946:45:64;16415:74:63;15729:1310;968:864:52;;;;;;;;;17100:30:63;;968:864:52;15012:38:63;17100:30;;968:864:52;15012:19:63;968:864:52;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;15012:19:63;968:864:52;;-1:-1:-1;;;;;968:864:52;;;;;17100:30:63;:16;;:30;;;;;;;;14837:2300;:::o;17100:30::-;;;3946:45:64;17100:30:63;;;;;;:::i;:::-;;;968:864:52;15012:19:63;968:864:52;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;15012:19:63;968:864:52;;;;;;;15012:19:63;968:864:52;;;;;;;:::i;:::-;14837:2300:63:o;17100:30::-;968:864:52;;;3946:45:64;968:864:52;;;;;16430:59:63;968:864:52;16430:59:63;;968:864:52;16430:59:63;;;;;;968:864:52;16430:59:63;;;:::i;:::-;;;968:864:52;;;;;;;;;;:::i;:::-;;;;;;;;;;;15012:19:63;968:864:52;;;;3946:45:64;968:864:52;;;;:::i;:::-;15012:19:63;968:864:52;;;16430:59:63;;;968:864:52;;;;;;;16430:59:63;;;-1:-1:-1;16430:59:63;;16453:20;;15012:19;16453:20;;15012:19;16453:20;;;;;;15012:19;16453:20;;;:::i;:::-;;;968:864:52;;;;;;;15012:38:63;968:864:52;;:::i;:::-;16453:20:63;;;;;;;-1:-1:-1;16453:20:63;;16084:121;968:864:52;;-1:-1:-1;;;16168:22:63;;15012:38;;16168:22;15993:78;968:864:52;;-1:-1:-1;;;16035:21:63;;15012:38;;16035:21;13480:19;;;;15012;13480;15012;13480;;;;;;;:::i;:::-;;;;13443:17;;15012:19;13443:17;;15012:19;13443:17;;;;;;15012:19;13443:17;;;:::i;:::-;;;968:864:52;;;;;;13443:17:63;;;;;;-1:-1:-1;13443:17:63;;15729:1310;968:864:52;;;;;;;;:::i;:::-;16510:31:63;16506:533;;15729:1310;3946:45:64;15729:1310:63;;;16506:533;968:864:52;16677:21:63;968:864:52;-1:-1:-1;;;;;968:864:52;;;;;16702:16:63;:22;:16;;:22;968:864:52;;16677:47:63;;16673:115;;16801:26;-1:-1:-1;;;16801:26:63;;:::i;:::-;968:864:52;;;;-1:-1:-1;;;968:864:52;;;16677:21:63;968:864:52;3946:45:64;15012:19:63;968:864:52;;;;;:::i;:::-;;;;;;3946:45:64;968:864:52;;;;;:::i;:::-;;;;4618:99:76;15012:19:63;4618:99:76;;968:864:52;16506:533:63;;;;15678:41;15012:19;15678:41;;15012:19;15678:41;;;;;;15012:19;15678:41;;;:::i;:::-;;;968:864:52;;;;;;;;;;;;15678:41:63;;;;;;;-1:-1:-1;15678:41:63;;15287:172;968:864:52;;;;;;2508:20:60;15012:19:63;2508:20:60;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;-1:-1:-1;;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2508:20:60;968:864:52;15012:19:63;968:864:52;;;;;;;;;;;2508:20:60;968:864:52;;2508:20:60;;;;;;:::i;:::-;968:864:52;2498:31:60;;3946:45:64;968:864:52;;15012:19:63;968:864:52;;3946:45:64;968:864:52;;;;;;;-1:-1:-1;;;;;968:864:52;;;-1:-1:-1;;;;;968:864:52;;;;;;;15012:19:63;968:864:52;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;-1:-1:-1;;;968:864:52;;;;15012:19:63;968:864:52;;;;;;;;;;;15287:172:63;968:864:52;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;3946:45:64;968:864:52;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;15012:38:63;968:864:52;;15012:19:63;968:864:52;;;;;;;-1:-1:-1;;;;;968:864:52;;;-1:-1:-1;;;;;968:864:52;;;;;;;15012:19:63;968:864:52;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;-1:-1:-1;;;968:864:52;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;3946:45:64;968:864:52;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15442:7:63:o;968:864:52:-;;;;-1:-1:-1;968:864:52;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;968:864:52;;;;;;;;3946:45:64;968:864:52;;15012:38:63;968:864:52;;3946:45:64;968:864:52;;;;;;;;;;;;-1:-1:-1;968:864:52;;;;;3946:45:64;968:864:52;;;15012:19:63;968:864:52;;;-1:-1:-1;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;15012:19:63;968:864:52;;;;;;;;;;;;3946:45:64;968:864:52;;;3946:45:64;968:864:52;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;968:864:52;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;3946:45:64;968:864:52;;-1:-1:-1;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;15012:19:63;968:864:52;;;;;;;;;;;;3946:45:64;968:864:52;;;3946:45:64;968:864:52;;;;;;;:::i;:::-;;;;15292:50:63;;;;15012:19;15292:50;15012:19;15292:50;;;;;;;:::i;:::-;;;;15008:102;968:864:52;;-1:-1:-1;;;15073:26:63;;15012:38;;15073:26;15012:38;;;;:19;:38;:19;:38;;;;;;;:::i;:::-;;;;968:864:52;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":149,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":3153,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":2655,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":331,"length":20},{"start":2391,"length":20}]}}},"methodIdentifiers":{"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"c62eb4d5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"applyCrossMessages\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"details\":\"It requires the caller to be the system actor.\",\"params\":{\"crossMsgs\":\"The array of cross-network messages to be applied.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"Applies top-down cross-net messages locally. This is invoked by IPC nodes when drawing messages from their parent subnet for local execution. That's why the sender is restricted to the system sender, because this method is implicitly invoked by the node during block production.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/XnetMessagingFacet.sol\":\"XnetMessagingFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgNonce"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"applyCrossMessages"}],"devdoc":{"kind":"dev","methods":{"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"details":"It requires the caller to be the system actor.","params":{"crossMsgs":"The array of cross-network messages to be applied."}}},"version":1},"userdoc":{"kind":"user","methods":{"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"Applies top-down cross-net messages locally. This is invoked by IPC nodes when drawing messages from their parent subnet for local execution. That's why the sender is restricted to the system sender, because this method is implicitly invoked by the node during block production."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/XnetMessagingFacet.sol":"XnetMessagingFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","id":40145,"exportedSymbols":{"CrossMsg":[49927],"CrossMsgHelper":[40725],"FilAddress":[1428],"GatewayActorModifiers":[43081],"IPCMsgType":[37364],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"LibGateway":[42888],"NotRegisteredSubnet":[37482],"StorableMsg":[49944],"StorableMsgHelper":[47414],"Subnet":[50044],"SubnetActorGetterFacet":[51235],"SubnetID":[50030],"SubnetIDHelper":[48025],"SupplySource":[50179],"SupplySourceHelper":[48351],"XnetMessagingFacet":[40144]},"nodeType":"SourceUnit","src":"46:1787:52","nodes":[{"id":40073,"nodeType":"PragmaDirective","src":"46:23:52","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40075,"nodeType":"ImportDirective","src":"71:75:52","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":43082,"symbolAliases":[{"foreign":{"id":40074,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43081,"src":"79:21:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40079,"nodeType":"ImportDirective","src":"147:75:52","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":40076,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"155:8:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40077,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"165:8:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40078,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"175:11:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40081,"nodeType":"ImportDirective","src":"223:52:52","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":42889,"symbolAliases":[{"foreign":{"id":40080,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"231:10:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40083,"nodeType":"ImportDirective","src":"276:54:52","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":40082,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"284:10:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40085,"nodeType":"ImportDirective","src":"331:79:52","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":40084,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"339:22:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40087,"nodeType":"ImportDirective","src":"411:48:52","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":40086,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"419:6:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40089,"nodeType":"ImportDirective","src":"461:56:52","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":40088,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"469:10:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40091,"nodeType":"ImportDirective","src":"518:60:52","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":40090,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"526:14:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40093,"nodeType":"ImportDirective","src":"579:60:52","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":40092,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"587:14:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40095,"nodeType":"ImportDirective","src":"640:68:52","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":40094,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"648:18:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40097,"nodeType":"ImportDirective","src":"709:54:52","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":40096,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"717:12:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40102,"nodeType":"ImportDirective","src":"765:133:52","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":40098,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"773:20:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40099,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"795:20:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40100,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"817:19:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40101,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"838:24:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40104,"nodeType":"ImportDirective","src":"900:66:52","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":40103,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"908:17:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40144,"nodeType":"ContractDefinition","src":"968:864:52","nodes":[{"id":40110,"nodeType":"UsingForDirective","src":"1027:34:52","nodes":[],"global":false,"libraryName":{"id":40107,"name":"SubnetIDHelper","nameLocations":["1033:14:52"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"1033:14:52"},"typeName":{"id":40109,"nodeType":"UserDefinedTypeName","pathNode":{"id":40108,"name":"SubnetID","nameLocations":["1052:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"1052:8:52"},"referencedDeclaration":50030,"src":"1052:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":40114,"nodeType":"UsingForDirective","src":"1066:34:52","nodes":[],"global":false,"libraryName":{"id":40111,"name":"CrossMsgHelper","nameLocations":["1072:14:52"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"1072:14:52"},"typeName":{"id":40113,"nodeType":"UserDefinedTypeName","pathNode":{"id":40112,"name":"CrossMsg","nameLocations":["1091:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"1091:8:52"},"referencedDeclaration":49927,"src":"1091:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":40118,"nodeType":"UsingForDirective","src":"1105:42:52","nodes":[],"global":false,"libraryName":{"id":40115,"name":"SupplySourceHelper","nameLocations":["1111:18:52"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"1111:18:52"},"typeName":{"id":40117,"nodeType":"UserDefinedTypeName","pathNode":{"id":40116,"name":"SupplySource","nameLocations":["1134:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"1134:12:52"},"referencedDeclaration":50179,"src":"1134:12:52","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":40122,"nodeType":"UsingForDirective","src":"1152:40:52","nodes":[],"global":false,"libraryName":{"id":40119,"name":"StorableMsgHelper","nameLocations":["1158:17:52"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"1158:17:52"},"typeName":{"id":40121,"nodeType":"UserDefinedTypeName","pathNode":{"id":40120,"name":"StorableMsg","nameLocations":["1180:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"1180:11:52"},"referencedDeclaration":49944,"src":"1180:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":40143,"nodeType":"FunctionDefinition","src":"1661:169:52","nodes":[],"body":{"id":40142,"nodeType":"Block","src":"1745:85:52","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":40135,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43026,"src":"1780:1:52","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43012_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":40136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:11:52","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42968,"src":"1780:13:52","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage","typeString":"struct SubnetID storage ref"}},"id":40137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1794:15:52","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47531,"src":"1780:29:52","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50030_memory_ptr_$returns$_t_struct$_SubnetID_$50030_memory_ptr_$attached_to$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":40138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:31:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":40139,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40127,"src":"1813:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":40132,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42888,"src":"1755:10:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42888_$","typeString":"type(library LibGateway)"}},"id":40134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1766:13:52","memberName":"applyMessages","nodeType":"MemberAccess","referencedDeclaration":42696,"src":"1755:24:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$50030_memory_ptr_$_t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory[] memory)"}},"id":40140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1755:68:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40141,"nodeType":"ExpressionStatement","src":"1755:68:52"}]},"documentation":{"id":40123,"nodeType":"StructuredDocumentation","src":"1198:458:52","text":"@notice Applies top-down cross-net messages locally. This is invoked by IPC nodes when drawing messages from\n their parent subnet for local execution. That's why the sender is restricted to the system sender,\n because this method is implicitly invoked by the node during block production.\n @dev It requires the caller to be the system actor.\n @param crossMsgs The array of cross-network messages to be applied."},"functionSelector":"c62eb4d5","implemented":true,"kind":"function","modifiers":[{"id":40130,"kind":"modifierInvocation","modifierName":{"id":40129,"name":"systemActorOnly","nameLocations":["1729:15:52"],"nodeType":"IdentifierPath","referencedDeclaration":43080,"src":"1729:15:52"},"nodeType":"ModifierInvocation","src":"1729:15:52"}],"name":"applyCrossMessages","nameLocation":"1670:18:52","parameters":{"id":40128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40127,"mutability":"mutable","name":"crossMsgs","nameLocation":"1709:9:52","nodeType":"VariableDeclaration","scope":40143,"src":"1689:29:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":40125,"nodeType":"UserDefinedTypeName","pathNode":{"id":40124,"name":"CrossMsg","nameLocations":["1689:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"1689:8:52"},"referencedDeclaration":49927,"src":"1689:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":40126,"nodeType":"ArrayTypeName","src":"1689:10:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"1688:31:52"},"returnParameters":{"id":40131,"nodeType":"ParameterList","parameters":[],"src":"1745:0:52"},"scope":40144,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":40105,"name":"GatewayActorModifiers","nameLocations":["999:21:52"],"nodeType":"IdentifierPath","referencedDeclaration":43081,"src":"999:21:52"},"id":40106,"nodeType":"InheritanceSpecifier","src":"999:21:52"}],"canonicalName":"XnetMessagingFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[40144,43081],"name":"XnetMessagingFacet","nameLocation":"977:18:52","scope":40145,"usedErrors":[37420,37424,37482,37486]}],"license":"MIT OR Apache-2.0"},"id":52} \ No newline at end of file